openmcp-client/service/src/panel/panel.controller.ts

91 lines
2.5 KiB
TypeScript

import { Controller, RequestClientType } from "../common";
import { PostMessageble } from "../hook/adapter";
import { systemPromptDB } from "../hook/db";
import { loadTabSaveConfig, saveTabSaveConfig } from "./panel.service";
export class PanelController {
@Controller('panel/save')
async savePanel(client: RequestClientType, data: any, webview: PostMessageble) {
const serverInfo = client?.getServerVersion();
saveTabSaveConfig(serverInfo, data);
return {
code: 200,
msg: 'Settings saved successfully'
};
}
@Controller('panel/load')
async loadPanel(client: RequestClientType, data: any, webview: PostMessageble) {
const serverInfo = client?.getServerVersion();
const config = loadTabSaveConfig(serverInfo);
return {
code: 200,
msg: config
};
}
@Controller('system-prompts/set')
async setSystemPrompt(client: RequestClientType, data: any, webview: PostMessageble) {
const { name, content } = data;
await systemPromptDB.insert({
id: name,
name,
content
});
return {
code: 200,
msg: 'Settings saved successfully'
}
}
@Controller('system-prompts/delete')
async deleteSystemPrompt(client: RequestClientType, data: any, webview: PostMessageble) {
const { name } = data;
await systemPromptDB.delete(name);
return {
code: 200,
msg: 'Settings saved successfully'
}
}
@Controller('system-prompts/save')
async saveSystemPrompts(client: RequestClientType, data: any, webview: PostMessageble) {
const { prompts } = data;
await Promise.all(prompts.map((prompt: any) => {
systemPromptDB.insert({
id: prompt.name,
name: prompt.name,
content: prompt.content
})
}));
return {
code: 200,
msg: 'Settings saved successfully'
}
}
@Controller('system-prompts/load')
async loadSystemPrompts(client: RequestClientType, data: any, webview: PostMessageble) {
const queryPrompts = await systemPromptDB.findAll();
const prompts = [];
for (const prompt of queryPrompts) {
prompts.push({
name: prompt.name,
content: prompt.content
})
}
return {
code: 200,
msg: prompts
}
}
}