1
import { LobeChatPluginManifest } from '@lobehub/chat-plugin-sdk';
3
import { lambdaClient } from '@/libs/trpc/client';
4
import { LobeTool } from '@/types/tool';
5
import { LobeToolCustomPlugin } from '@/types/tool/plugin';
7
import { IPluginService, InstallPluginParams } from './type';
9
export class ServerService implements IPluginService {
10
installPlugin = async (plugin: InstallPluginParams) => {
11
await lambdaClient.plugin.createOrInstallPlugin.mutate(plugin);
14
getInstalledPlugins = (): Promise<LobeTool[]> => {
15
return lambdaClient.plugin.getPlugins.query();
18
async uninstallPlugin(identifier: string) {
19
await lambdaClient.plugin.removePlugin.mutate({ id: identifier });
22
async createCustomPlugin(customPlugin: LobeToolCustomPlugin) {
23
await lambdaClient.plugin.createPlugin.mutate({ ...customPlugin, type: 'customPlugin' });
26
async updatePlugin(id: string, value: LobeToolCustomPlugin) {
27
await lambdaClient.plugin.updatePlugin.mutate({
28
customParams: value.customParams,
30
manifest: value.manifest,
31
settings: value.settings,
35
async updatePluginManifest(id: string, manifest: LobeChatPluginManifest) {
36
await lambdaClient.plugin.updatePlugin.mutate({ id, manifest });
39
async removeAllPlugins() {
40
await lambdaClient.plugin.removeAllPlugins.mutate();
43
async updatePluginSettings(id: string, settings: any, signal?: AbortSignal) {
44
await lambdaClient.plugin.updatePlugin.mutate({ id, settings }, { signal });