@lobehub/chat 1.39.3 → 1.40.1

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 (175) hide show
  1. package/.env.example +19 -8
  2. package/.eslintignore +1 -1
  3. package/CHANGELOG.md +58 -0
  4. package/changelog/v1.json +21 -0
  5. package/docs/.cdn.cache.json +25 -0
  6. package/docs/changelog/2023-09-09-plugin-system.mdx +1 -1
  7. package/docs/changelog/2023-09-09-plugin-system.zh-CN.mdx +1 -1
  8. package/docs/changelog/2024-09-20-artifacts.mdx +1 -1
  9. package/docs/changelog/2024-09-20-artifacts.zh-CN.mdx +1 -1
  10. package/docs/changelog/2024-10-27-pin-assistant.mdx +2 -2
  11. package/docs/changelog/2024-10-27-pin-assistant.zh-CN.mdx +2 -2
  12. package/docs/changelog/2024-11-06-share-text-json.mdx +2 -2
  13. package/docs/changelog/2024-11-06-share-text-json.zh-CN.mdx +2 -2
  14. package/docs/changelog/index.json +16 -16
  15. package/locales/ar/changelog.json +18 -0
  16. package/locales/ar/common.json +1 -0
  17. package/locales/ar/metadata.json +4 -0
  18. package/locales/bg-BG/changelog.json +18 -0
  19. package/locales/bg-BG/common.json +1 -0
  20. package/locales/bg-BG/metadata.json +4 -0
  21. package/locales/de-DE/changelog.json +18 -0
  22. package/locales/de-DE/common.json +1 -0
  23. package/locales/de-DE/metadata.json +4 -0
  24. package/locales/en-US/changelog.json +18 -0
  25. package/locales/en-US/common.json +1 -0
  26. package/locales/en-US/metadata.json +4 -0
  27. package/locales/es-ES/changelog.json +18 -0
  28. package/locales/es-ES/common.json +1 -0
  29. package/locales/es-ES/metadata.json +4 -0
  30. package/locales/fa-IR/changelog.json +18 -0
  31. package/locales/fa-IR/common.json +1 -0
  32. package/locales/fa-IR/metadata.json +4 -0
  33. package/locales/fr-FR/changelog.json +18 -0
  34. package/locales/fr-FR/common.json +1 -0
  35. package/locales/fr-FR/metadata.json +4 -0
  36. package/locales/it-IT/changelog.json +18 -0
  37. package/locales/it-IT/common.json +1 -0
  38. package/locales/it-IT/metadata.json +4 -0
  39. package/locales/ja-JP/changelog.json +18 -0
  40. package/locales/ja-JP/common.json +1 -0
  41. package/locales/ja-JP/metadata.json +4 -0
  42. package/locales/ko-KR/changelog.json +18 -0
  43. package/locales/ko-KR/common.json +1 -0
  44. package/locales/ko-KR/metadata.json +4 -0
  45. package/locales/nl-NL/changelog.json +18 -0
  46. package/locales/nl-NL/common.json +1 -0
  47. package/locales/nl-NL/metadata.json +4 -0
  48. package/locales/pl-PL/changelog.json +18 -0
  49. package/locales/pl-PL/common.json +1 -0
  50. package/locales/pl-PL/metadata.json +4 -0
  51. package/locales/pt-BR/changelog.json +18 -0
  52. package/locales/pt-BR/common.json +1 -0
  53. package/locales/pt-BR/metadata.json +4 -0
  54. package/locales/ru-RU/changelog.json +18 -0
  55. package/locales/ru-RU/common.json +1 -0
  56. package/locales/ru-RU/metadata.json +4 -0
  57. package/locales/tr-TR/changelog.json +18 -0
  58. package/locales/tr-TR/common.json +1 -0
  59. package/locales/tr-TR/metadata.json +4 -0
  60. package/locales/vi-VN/changelog.json +18 -0
  61. package/locales/vi-VN/common.json +1 -0
  62. package/locales/vi-VN/metadata.json +4 -0
  63. package/locales/zh-CN/changelog.json +18 -0
  64. package/locales/zh-CN/common.json +1 -0
  65. package/locales/zh-CN/metadata.json +4 -0
  66. package/locales/zh-TW/changelog.json +18 -0
  67. package/locales/zh-TW/common.json +1 -0
  68. package/locales/zh-TW/metadata.json +4 -0
  69. package/package.json +6 -1
  70. package/scripts/cdnWorkflow/index.ts +217 -0
  71. package/scripts/cdnWorkflow/optimized.ts +21 -0
  72. package/scripts/cdnWorkflow/s3/index.ts +120 -0
  73. package/scripts/cdnWorkflow/s3/types.ts +25 -0
  74. package/scripts/cdnWorkflow/s3/utils.ts +106 -0
  75. package/scripts/cdnWorkflow/uploader.ts +73 -0
  76. package/scripts/cdnWorkflow/utils.ts +93 -0
  77. package/src/app/(main)/(mobile)/me/(home)/__tests__/useCategory.test.tsx +25 -12
  78. package/src/app/(main)/(mobile)/me/(home)/features/useCategory.tsx +19 -9
  79. package/src/app/(main)/_layout/Desktop.tsx +4 -1
  80. package/src/app/(main)/_layout/Mobile.tsx +2 -1
  81. package/src/app/(main)/changelog/_layout/Desktop.tsx +25 -0
  82. package/src/app/(main)/changelog/_layout/Mobile/Header.tsx +33 -0
  83. package/src/app/(main)/changelog/_layout/Mobile/index.tsx +21 -0
  84. package/src/app/(main)/changelog/error.tsx +5 -0
  85. package/src/app/(main)/changelog/features/GridLayout.tsx +22 -0
  86. package/src/app/(main)/changelog/features/Hero.tsx +40 -0
  87. package/src/app/(main)/changelog/features/Post.tsx +56 -0
  88. package/src/app/(main)/changelog/features/PublishedTime.tsx +50 -0
  89. package/src/app/(main)/changelog/features/VersionTag.tsx +27 -0
  90. package/src/app/(main)/changelog/layout.tsx +10 -0
  91. package/src/app/(main)/changelog/loading.tsx +3 -0
  92. package/src/app/(main)/changelog/modal/page.tsx +23 -0
  93. package/src/app/(main)/changelog/not-found.tsx +3 -0
  94. package/src/app/(main)/changelog/page.tsx +73 -0
  95. package/src/app/(main)/chat/(workspace)/_layout/Desktop/HotKeys.tsx +7 -0
  96. package/src/app/(main)/chat/(workspace)/page.tsx +9 -2
  97. package/src/app/(main)/settings/about/features/Version.tsx +2 -2
  98. package/src/app/@modal/(.)changelog/modal/features/Cover.tsx +48 -0
  99. package/src/app/@modal/(.)changelog/modal/features/Hero.tsx +29 -0
  100. package/src/app/@modal/(.)changelog/modal/features/Pagination.tsx +54 -0
  101. package/src/app/@modal/(.)changelog/modal/features/Post.tsx +57 -0
  102. package/src/app/@modal/(.)changelog/modal/features/PublishedTime.tsx +50 -0
  103. package/src/app/@modal/(.)changelog/modal/features/ReadDetail.tsx +94 -0
  104. package/src/app/@modal/(.)changelog/modal/features/UpdateChangelogStatus.tsx +21 -0
  105. package/src/app/@modal/(.)changelog/modal/features/VersionTag.tsx +27 -0
  106. package/src/app/@modal/(.)changelog/modal/layout.tsx +39 -0
  107. package/src/app/@modal/(.)changelog/modal/loading.tsx +10 -0
  108. package/src/app/@modal/(.)changelog/modal/page.tsx +37 -0
  109. package/src/app/@modal/(.)settings/modal/layout.tsx +19 -16
  110. package/src/app/@modal/_layout/ModalLayout.tsx +63 -0
  111. package/src/app/@modal/chat/(.)settings/modal/layout.tsx +20 -17
  112. package/src/app/@modal/layout.tsx +5 -69
  113. package/src/components/mdx/Image.tsx +50 -0
  114. package/src/components/mdx/index.tsx +2 -0
  115. package/src/const/hotkeys.ts +1 -0
  116. package/src/const/url.ts +1 -0
  117. package/src/features/ChangelogModal/index.tsx +22 -0
  118. package/src/features/User/UserPanel/useMenu.tsx +50 -46
  119. package/src/features/User/__tests__/useMenu.test.tsx +7 -6
  120. package/src/hooks/useInterceptingRoutes.ts +1 -6
  121. package/src/hooks/useShare.tsx +1 -0
  122. package/src/libs/agent-runtime/openai/index.ts +2 -0
  123. package/src/locales/default/changelog.ts +18 -0
  124. package/src/locales/default/common.ts +1 -0
  125. package/src/locales/default/index.ts +2 -0
  126. package/src/locales/default/metadata.ts +4 -0
  127. package/src/server/metadata.ts +5 -3
  128. package/src/server/routers/edge/appStatus.ts +3 -0
  129. package/src/server/routers/edge/index.ts +2 -0
  130. package/src/server/routers/lambda/agent.ts +1 -1
  131. package/src/server/services/changelog/index.test.ts +310 -0
  132. package/src/server/services/changelog/index.ts +196 -0
  133. package/src/server/services/discover/index.test.ts +0 -1
  134. package/src/server/sitemap.ts +4 -1
  135. package/src/services/__tests__/chat.test.ts +1 -1
  136. package/src/services/__tests__/global.test.ts +5 -2
  137. package/src/services/_auth.ts +1 -1
  138. package/src/services/agent.ts +25 -21
  139. package/src/services/chat.ts +2 -2
  140. package/src/services/file/ClientS3/index.ts +6 -6
  141. package/src/services/file/client.ts +14 -15
  142. package/src/services/file/server.ts +20 -25
  143. package/src/services/global.ts +2 -2
  144. package/src/services/import/client.ts +6 -5
  145. package/src/services/import/server.ts +6 -5
  146. package/src/services/import/type.ts +7 -0
  147. package/src/services/knowledgeBase.ts +19 -19
  148. package/src/services/message/_deprecated.ts +5 -0
  149. package/src/services/message/client.ts +52 -48
  150. package/src/services/message/server.ts +50 -53
  151. package/src/services/message/type.ts +2 -2
  152. package/src/services/plugin/client.ts +16 -22
  153. package/src/services/plugin/server.ts +15 -19
  154. package/src/services/rag.ts +18 -18
  155. package/src/services/ragEval.ts +29 -26
  156. package/src/services/session/_deprecated.ts +2 -2
  157. package/src/services/session/client.ts +55 -81
  158. package/src/services/session/server.ts +50 -74
  159. package/src/services/session/type.ts +4 -6
  160. package/src/services/share.ts +4 -4
  161. package/src/services/textToImage.ts +5 -2
  162. package/src/services/thread/client.ts +9 -15
  163. package/src/services/thread/server.ts +10 -15
  164. package/src/services/topic/client.ts +25 -25
  165. package/src/services/topic/server.ts +25 -42
  166. package/src/services/trace.ts +4 -4
  167. package/src/services/user/client.ts +13 -17
  168. package/src/services/user/server.ts +9 -13
  169. package/src/services/user/type.ts +1 -1
  170. package/src/store/chat/slices/message/reducer.ts +3 -2
  171. package/src/store/global/action.ts +27 -22
  172. package/src/store/global/initialState.ts +1 -0
  173. package/src/types/changelog.ts +6 -0
  174. package/src/types/message/index.ts +10 -8
  175. package/src/app/@modal/features/InterceptingContext.tsx +0 -9
@@ -1,30 +1,23 @@
1
1
  /* eslint-disable @typescript-eslint/no-unused-vars */
2
2
  import { INBOX_SESSION_ID } from '@/const/session';
3
- import { MessageItem } from '@/database/schemas';
4
3
  import { lambdaClient } from '@/libs/trpc/client';
5
- import {
6
- ChatMessage,
7
- ChatMessageError,
8
- ChatTTS,
9
- ChatTranslate,
10
- CreateMessageParams,
11
- } from '@/types/message';
4
+ import { ChatMessage, ChatMessageError, ChatTranslate } from '@/types/message';
12
5
 
13
6
  import { IMessageService } from './type';
14
7
 
15
8
  export class ServerService implements IMessageService {
16
- createMessage({ sessionId, ...params }: CreateMessageParams): Promise<string> {
9
+ createMessage: IMessageService['createMessage'] = async ({ sessionId, ...params }) => {
17
10
  return lambdaClient.message.createMessage.mutate({
18
11
  ...params,
19
12
  sessionId: this.toDbSessionId(sessionId),
20
13
  });
21
- }
14
+ };
22
15
 
23
- batchCreateMessages(messages: MessageItem[]): Promise<any> {
16
+ batchCreateMessages: IMessageService['batchCreateMessages'] = async (messages) => {
24
17
  return lambdaClient.message.batchCreateMessages.mutate(messages);
25
- }
18
+ };
26
19
 
27
- getMessages = async (sessionId?: string, topicId?: string | undefined) => {
20
+ getMessages: IMessageService['getMessages'] = async (sessionId, topicId) => {
28
21
  const data = await lambdaClient.message.getMessages.query({
29
22
  sessionId: this.toDbSessionId(sessionId),
30
23
  topicId,
@@ -33,85 +26,89 @@ export class ServerService implements IMessageService {
33
26
  return data as unknown as ChatMessage[];
34
27
  };
35
28
 
36
- getAllMessages(): Promise<ChatMessage[]> {
29
+ getAllMessages: IMessageService['getAllMessages'] = async () => {
37
30
  return lambdaClient.message.getAllMessages.query();
38
- }
31
+ };
39
32
 
40
- getAllMessagesInSession(sessionId: string): Promise<ChatMessage[]> {
33
+ getAllMessagesInSession: IMessageService['getAllMessagesInSession'] = async (sessionId) => {
41
34
  return lambdaClient.message.getAllMessagesInSession.query({
42
35
  sessionId: this.toDbSessionId(sessionId),
43
36
  });
44
- }
37
+ };
45
38
 
46
- countMessages(): Promise<number> {
39
+ countMessages: IMessageService['countMessages'] = async () => {
47
40
  return lambdaClient.message.count.query();
48
- }
49
- countTodayMessages(): Promise<number> {
41
+ };
42
+
43
+ countTodayMessages: IMessageService['countTodayMessages'] = async () => {
50
44
  return lambdaClient.message.countToday.query();
51
- }
45
+ };
52
46
 
53
- updateMessageError(id: string, error: ChatMessageError): Promise<any> {
47
+ updateMessageError: IMessageService['updateMessageError'] = async (id, error) => {
54
48
  return lambdaClient.message.update.mutate({ id, value: { error } });
55
- }
49
+ };
56
50
 
57
- async updateMessagePluginError(id: string, error: ChatMessageError): Promise<any> {
51
+ updateMessagePluginError = async (id: string, error: ChatMessageError): Promise<any> => {
58
52
  return lambdaClient.message.update.mutate({ id, value: { pluginError: error } });
59
- }
53
+ };
60
54
 
61
- async updateMessagePluginArguments(
62
- id: string,
63
- value: string | Record<string, any>,
64
- ): Promise<any> {
55
+ updateMessagePluginArguments: IMessageService['updateMessagePluginArguments'] = async (
56
+ id,
57
+ value,
58
+ ) => {
65
59
  const args = typeof value === 'string' ? value : JSON.stringify(value);
66
-
67
60
  return lambdaClient.message.updateMessagePlugin.mutate({ id, value: { arguments: args } });
68
- }
61
+ };
69
62
 
70
- updateMessage(id: string, message: Partial<MessageItem>): Promise<any> {
63
+ updateMessage: IMessageService['updateMessage'] = async (id, message) => {
71
64
  return lambdaClient.message.update.mutate({ id, value: message });
72
- }
65
+ };
73
66
 
74
- updateMessageTranslate(id: string, translate: Partial<ChatTranslate> | false): Promise<any> {
67
+ updateMessageTranslate: IMessageService['updateMessageTranslate'] = async (id, translate) => {
75
68
  return lambdaClient.message.updateTranslate.mutate({ id, value: translate as ChatTranslate });
76
- }
69
+ };
77
70
 
78
- updateMessageTTS(id: string, tts: Partial<ChatTTS> | false): Promise<any> {
71
+ updateMessageTTS: IMessageService['updateMessageTTS'] = async (id, tts) => {
79
72
  return lambdaClient.message.updateTTS.mutate({ id, value: tts });
80
- }
73
+ };
81
74
 
82
- updateMessagePluginState(id: string, value: any): Promise<any> {
75
+ updateMessagePluginState: IMessageService['updateMessagePluginState'] = async (id, value) => {
83
76
  return lambdaClient.message.updatePluginState.mutate({ id, value });
84
- }
77
+ };
85
78
 
86
- removeMessage(id: string): Promise<any> {
79
+ removeMessage: IMessageService['removeMessage'] = async (id) => {
87
80
  return lambdaClient.message.removeMessage.mutate({ id });
88
- }
81
+ };
89
82
 
90
- removeMessages(ids: string[]): Promise<any> {
83
+ removeMessages: IMessageService['removeMessages'] = async (ids) => {
91
84
  return lambdaClient.message.removeMessages.mutate({ ids });
92
- }
85
+ };
93
86
 
94
- removeMessagesByAssistant(sessionId: string, topicId?: string | undefined): Promise<any> {
87
+ removeMessagesByAssistant: IMessageService['removeMessagesByAssistant'] = async (
88
+ sessionId,
89
+ topicId,
90
+ ) => {
95
91
  return lambdaClient.message.removeMessagesByAssistant.mutate({
96
92
  sessionId: this.toDbSessionId(sessionId),
97
93
  topicId,
98
94
  });
99
- }
100
- removeAllMessages(): Promise<any> {
95
+ };
96
+
97
+ removeAllMessages: IMessageService['removeAllMessages'] = async () => {
101
98
  return lambdaClient.message.removeAllMessages.mutate();
102
- }
99
+ };
103
100
 
104
- private toDbSessionId(sessionId: string | undefined) {
101
+ private toDbSessionId = (sessionId: string | undefined) => {
105
102
  return sessionId === INBOX_SESSION_ID ? null : sessionId;
106
- }
103
+ };
107
104
 
108
- async hasMessages() {
105
+ hasMessages: IMessageService['hasMessages'] = async () => {
109
106
  const number = await this.countMessages();
110
107
  return number > 0;
111
- }
108
+ };
112
109
 
113
- async messageCountToCheckTrace() {
110
+ messageCountToCheckTrace: IMessageService['messageCountToCheckTrace'] = async () => {
114
111
  const number = await this.countMessages();
115
112
  return number >= 4;
116
- }
113
+ };
117
114
  }
@@ -24,11 +24,11 @@ export interface IMessageService {
24
24
  updateMessageTTS(id: string, tts: Partial<ChatTTS> | false): Promise<any>;
25
25
  updateMessageTranslate(id: string, translate: Partial<ChatTranslate> | false): Promise<any>;
26
26
  updateMessagePluginState(id: string, value: Record<string, any>): Promise<any>;
27
-
27
+ updateMessagePluginArguments(id: string, value: string | Record<string, any>): Promise<any>;
28
28
  removeMessage(id: string): Promise<any>;
29
29
  removeMessages(ids: string[]): Promise<any>;
30
30
  removeMessagesByAssistant(assistantId: string, topicId?: string): Promise<any>;
31
31
  removeAllMessages(): Promise<any>;
32
-
32
+ messageCountToCheckTrace(): Promise<boolean>;
33
33
  hasMessages(): Promise<boolean>;
34
34
  }
@@ -1,51 +1,45 @@
1
- import { LobeChatPluginManifest } from '@lobehub/chat-plugin-sdk';
2
-
3
1
  import { clientDB } from '@/database/client/db';
4
2
  import { PluginModel } from '@/database/server/models/plugin';
5
3
  import { BaseClientService } from '@/services/baseClientService';
6
4
  import { LobeTool } from '@/types/tool';
7
- import { LobeToolCustomPlugin } from '@/types/tool/plugin';
8
5
 
9
- import { IPluginService, InstallPluginParams } from './type';
6
+ import { IPluginService } from './type';
10
7
 
11
8
  export class ClientService extends BaseClientService implements IPluginService {
12
9
  private get pluginModel(): PluginModel {
13
10
  return new PluginModel(clientDB as any, this.userId);
14
11
  }
15
12
 
16
- installPlugin = async (plugin: InstallPluginParams) => {
13
+ installPlugin: IPluginService['installPlugin'] = async (plugin) => {
17
14
  await this.pluginModel.create(plugin);
18
- return;
19
15
  };
20
16
 
21
- getInstalledPlugins = () => {
17
+ getInstalledPlugins: IPluginService['getInstalledPlugins'] = () => {
22
18
  return this.pluginModel.query() as Promise<LobeTool[]>;
23
19
  };
24
20
 
25
- async uninstallPlugin(identifier: string) {
21
+ uninstallPlugin: IPluginService['uninstallPlugin'] = async (identifier) => {
26
22
  await this.pluginModel.delete(identifier);
27
- return;
28
- }
23
+ };
29
24
 
30
- async createCustomPlugin(customPlugin: LobeToolCustomPlugin) {
25
+ createCustomPlugin: IPluginService['createCustomPlugin'] = async (customPlugin) => {
31
26
  await this.pluginModel.create({ ...customPlugin, type: 'customPlugin' });
32
- return;
33
- }
27
+ };
34
28
 
35
- async updatePlugin(id: string, value: LobeToolCustomPlugin) {
29
+ updatePlugin: IPluginService['updatePlugin'] = async (id, value) => {
36
30
  await this.pluginModel.update(id, value);
37
- return;
38
- }
39
- async updatePluginManifest(id: string, manifest: LobeChatPluginManifest) {
31
+ };
32
+
33
+ updatePluginManifest: IPluginService['updatePluginManifest'] = async (id, manifest) => {
40
34
  await this.pluginModel.update(id, { manifest });
41
- }
35
+ };
42
36
 
43
- async removeAllPlugins() {
37
+ removeAllPlugins: IPluginService['removeAllPlugins'] = async () => {
44
38
  await this.pluginModel.deleteAll();
45
- }
39
+ };
46
40
 
47
41
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
48
- async updatePluginSettings(id: string, settings: any, _?: AbortSignal) {
42
+ updatePluginSettings: IPluginService['updatePluginSettings'] = async (id, settings, _?) => {
49
43
  await this.pluginModel.update(id, { settings });
50
- }
44
+ };
51
45
  }
@@ -1,46 +1,42 @@
1
- import { LobeChatPluginManifest } from '@lobehub/chat-plugin-sdk';
2
-
3
1
  import { lambdaClient } from '@/libs/trpc/client';
4
- import { LobeTool } from '@/types/tool';
5
- import { LobeToolCustomPlugin } from '@/types/tool/plugin';
6
2
 
7
- import { IPluginService, InstallPluginParams } from './type';
3
+ import { IPluginService } from './type';
8
4
 
9
5
  export class ServerService implements IPluginService {
10
- installPlugin = async (plugin: InstallPluginParams) => {
6
+ installPlugin: IPluginService['installPlugin'] = async (plugin) => {
11
7
  await lambdaClient.plugin.createOrInstallPlugin.mutate(plugin);
12
8
  };
13
9
 
14
- getInstalledPlugins = (): Promise<LobeTool[]> => {
10
+ getInstalledPlugins: IPluginService['getInstalledPlugins'] = () => {
15
11
  return lambdaClient.plugin.getPlugins.query();
16
12
  };
17
13
 
18
- async uninstallPlugin(identifier: string) {
14
+ uninstallPlugin: IPluginService['uninstallPlugin'] = async (identifier) => {
19
15
  await lambdaClient.plugin.removePlugin.mutate({ id: identifier });
20
- }
16
+ };
21
17
 
22
- async createCustomPlugin(customPlugin: LobeToolCustomPlugin) {
18
+ createCustomPlugin: IPluginService['createCustomPlugin'] = async (customPlugin) => {
23
19
  await lambdaClient.plugin.createPlugin.mutate({ ...customPlugin, type: 'customPlugin' });
24
- }
20
+ };
25
21
 
26
- async updatePlugin(id: string, value: LobeToolCustomPlugin) {
22
+ updatePlugin: IPluginService['updatePlugin'] = async (id, value) => {
27
23
  await lambdaClient.plugin.updatePlugin.mutate({
28
24
  customParams: value.customParams,
29
25
  id,
30
26
  manifest: value.manifest,
31
27
  settings: value.settings,
32
28
  });
33
- }
29
+ };
34
30
 
35
- async updatePluginManifest(id: string, manifest: LobeChatPluginManifest) {
31
+ updatePluginManifest: IPluginService['updatePluginManifest'] = async (id, manifest) => {
36
32
  await lambdaClient.plugin.updatePlugin.mutate({ id, manifest });
37
- }
33
+ };
38
34
 
39
- async removeAllPlugins() {
35
+ removeAllPlugins: IPluginService['removeAllPlugins'] = async () => {
40
36
  await lambdaClient.plugin.removeAllPlugins.mutate();
41
- }
37
+ };
42
38
 
43
- async updatePluginSettings(id: string, settings: any, signal?: AbortSignal) {
39
+ updatePluginSettings: IPluginService['updatePluginSettings'] = async (id, settings, signal) => {
44
40
  await lambdaClient.plugin.updatePlugin.mutate({ id, settings }, { signal });
45
- }
41
+ };
46
42
  }
@@ -2,29 +2,29 @@ import { lambdaClient } from '@/libs/trpc/client';
2
2
  import { SemanticSearchSchemaType } from '@/types/rag';
3
3
 
4
4
  class RAGService {
5
- async createParseFileTask(id: string, skipExist?: boolean) {
6
- return await lambdaClient.chunk.createParseFileTask.mutate({ id, skipExist });
7
- }
5
+ createParseFileTask = async (id: string, skipExist?: boolean) => {
6
+ return lambdaClient.chunk.createParseFileTask.mutate({ id, skipExist });
7
+ };
8
8
 
9
- async retryParseFile(id: string) {
10
- return await lambdaClient.chunk.retryParseFileTask.mutate({ id });
11
- }
9
+ retryParseFile = async (id: string) => {
10
+ return lambdaClient.chunk.retryParseFileTask.mutate({ id });
11
+ };
12
12
 
13
- async createEmbeddingChunksTask(id: string) {
14
- return await lambdaClient.chunk.createEmbeddingChunksTask.mutate({ id });
15
- }
13
+ createEmbeddingChunksTask = async (id: string) => {
14
+ return lambdaClient.chunk.createEmbeddingChunksTask.mutate({ id });
15
+ };
16
16
 
17
- async semanticSearch(query: string, fileIds?: string[]) {
18
- return await lambdaClient.chunk.semanticSearch.mutate({ fileIds, query });
19
- }
17
+ semanticSearch = async (query: string, fileIds?: string[]) => {
18
+ return lambdaClient.chunk.semanticSearch.mutate({ fileIds, query });
19
+ };
20
20
 
21
- async semanticSearchForChat(params: SemanticSearchSchemaType) {
22
- return await lambdaClient.chunk.semanticSearchForChat.mutate(params);
23
- }
21
+ semanticSearchForChat = async (params: SemanticSearchSchemaType) => {
22
+ return lambdaClient.chunk.semanticSearchForChat.mutate(params);
23
+ };
24
24
 
25
- async deleteMessageRagQuery(id: string) {
26
- return await lambdaClient.message.removeMessageQuery.mutate({ id });
27
- }
25
+ deleteMessageRagQuery = async (id: string) => {
26
+ return lambdaClient.message.removeMessageQuery.mutate({ id });
27
+ };
28
28
  }
29
29
 
30
30
  export const ragService = new RAGService();
@@ -11,57 +11,60 @@ import {
11
11
 
12
12
  class RAGEvalService {
13
13
  // Dataset
14
- async createDataset(params: CreateNewEvalDatasets): Promise<number | undefined> {
15
- return await lambdaClient.ragEval.createDataset.mutate(params);
16
- }
14
+ createDataset = async (params: CreateNewEvalDatasets): Promise<number | undefined> => {
15
+ return lambdaClient.ragEval.createDataset.mutate(params);
16
+ };
17
17
 
18
- async getDatasets(knowledgeBaseId: string): Promise<RAGEvalDataSetItem[]> {
18
+ getDatasets = async (knowledgeBaseId: string): Promise<RAGEvalDataSetItem[]> => {
19
19
  return lambdaClient.ragEval.getDatasets.query({ knowledgeBaseId });
20
- }
20
+ };
21
21
 
22
- async removeDataset(id: number): Promise<void> {
22
+ removeDataset = async (id: number): Promise<void> => {
23
23
  await lambdaClient.ragEval.removeDataset.mutate({ id });
24
- }
24
+ };
25
25
 
26
- async updateDataset(id: number, value: Partial<typeof insertEvalDatasetsSchema>): Promise<void> {
26
+ updateDataset = async (
27
+ id: number,
28
+ value: Partial<typeof insertEvalDatasetsSchema>,
29
+ ): Promise<void> => {
27
30
  await lambdaClient.ragEval.updateDataset.mutate({ id, value });
28
- }
31
+ };
29
32
 
30
33
  // Dataset Records
31
- async getDatasetRecords(datasetId: number): Promise<EvalDatasetRecord[]> {
34
+ getDatasetRecords = async (datasetId: number): Promise<EvalDatasetRecord[]> => {
32
35
  return lambdaClient.ragEval.getDatasetRecords.query({ datasetId });
33
- }
36
+ };
34
37
 
35
- async removeDatasetRecord(id: number): Promise<void> {
38
+ removeDatasetRecord = async (id: number): Promise<void> => {
36
39
  await lambdaClient.ragEval.removeDatasetRecords.mutate({ id });
37
- }
40
+ };
38
41
 
39
- async importDatasetRecords(datasetId: number, file: File): Promise<void> {
42
+ importDatasetRecords = async (datasetId: number, file: File): Promise<void> => {
40
43
  const { path } = await uploadService.uploadWithProgress(file, { directory: 'ragEval' });
41
44
 
42
45
  await lambdaClient.ragEval.importDatasetRecords.mutate({ datasetId, pathname: path });
43
- }
46
+ };
44
47
 
45
48
  // Evaluation
46
- async createEvaluation(params: CreateNewEvalEvaluation): Promise<number | undefined> {
47
- return await lambdaClient.ragEval.createEvaluation.mutate(params);
48
- }
49
+ createEvaluation = async (params: CreateNewEvalEvaluation): Promise<number | undefined> => {
50
+ return lambdaClient.ragEval.createEvaluation.mutate(params);
51
+ };
49
52
 
50
- async getEvaluationList(knowledgeBaseId: string): Promise<RAGEvalEvaluationItem[]> {
53
+ getEvaluationList = async (knowledgeBaseId: string): Promise<RAGEvalEvaluationItem[]> => {
51
54
  return lambdaClient.ragEval.getEvaluationList.query({ knowledgeBaseId });
52
- }
55
+ };
53
56
 
54
- async startEvaluationTask(id: number) {
57
+ startEvaluationTask = async (id: number) => {
55
58
  return lambdaClient.ragEval.startEvaluationTask.mutate({ id });
56
- }
59
+ };
57
60
 
58
- async removeEvaluation(id: number): Promise<void> {
61
+ removeEvaluation = async (id: number): Promise<void> => {
59
62
  await lambdaClient.ragEval.removeEvaluation.mutate({ id });
60
- }
63
+ };
61
64
 
62
- async checkEvaluationStatus(id: number): Promise<{ success: boolean }> {
65
+ checkEvaluationStatus = async (id: number): Promise<{ success: boolean }> => {
63
66
  return lambdaClient.ragEval.checkEvaluationStatus.query({ id });
64
- }
67
+ };
65
68
  }
66
69
 
67
70
  export const ragEvalService = new RAGEvalService();
@@ -75,7 +75,7 @@ export class ClientService implements ISessionService {
75
75
 
76
76
  async getAllAgents(): Promise<LobeSessions> {
77
77
  // TODO: add a filter to get only agents
78
- return await SessionModel.query();
78
+ return SessionModel.query();
79
79
  }
80
80
 
81
81
  async countSessions() {
@@ -162,7 +162,7 @@ export class ClientService implements ISessionService {
162
162
  }
163
163
 
164
164
  async removeSessionGroup(id: string, removeChildren?: boolean) {
165
- return await SessionGroupModel.delete(id, removeChildren);
165
+ return SessionGroupModel.delete(id, removeChildren);
166
166
  }
167
167
 
168
168
  async updateSessionGroup(id: string, data: Partial<SessionGroupItem>) {