lobe-chat

Форк
0
42 строки · 1.3 Кб
1
import { LobeChatPluginManifest } from '@lobehub/chat-plugin-sdk';
2

3
import { PluginModel } from '@/database/client/models/plugin';
4
import { LobeTool } from '@/types/tool';
5
import { LobeToolCustomPlugin } from '@/types/tool/plugin';
6

7
import { IPluginService, InstallPluginParams } from './type';
8

9
export class ClientService implements IPluginService {
10
  installPlugin = async (plugin: InstallPluginParams) => {
11
    return PluginModel.create(plugin);
12
  };
13

14
  getInstalledPlugins = () => {
15
    return PluginModel.getList() as Promise<LobeTool[]>;
16
  };
17

18
  uninstallPlugin(identifier: string) {
19
    return PluginModel.delete(identifier);
20
  }
21

22
  async createCustomPlugin(customPlugin: LobeToolCustomPlugin) {
23
    return PluginModel.create({ ...customPlugin, type: 'customPlugin' });
24
  }
25

26
  async updatePlugin(id: string, value: LobeToolCustomPlugin) {
27
    await PluginModel.update(id, value);
28
    return;
29
  }
30
  async updatePluginManifest(id: string, manifest: LobeChatPluginManifest) {
31
    await PluginModel.update(id, { manifest });
32
  }
33

34
  async removeAllPlugins() {
35
    return PluginModel.clear();
36
  }
37

38
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
39
  async updatePluginSettings(id: string, settings: any, _?: AbortSignal) {
40
    await PluginModel.update(id, { settings });
41
  }
42
}
43

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.