diff --git a/src/panels/helpers/messageRouter.ts b/src/panels/helpers/messageRouter.ts index 2f78904..c346df1 100644 --- a/src/panels/helpers/messageRouter.ts +++ b/src/panels/helpers/messageRouter.ts @@ -22,6 +22,12 @@ import { handleOpenFileDiff, startChangeSession, } from "../../utils/messageHandler"; +import { + loadPersonalRules, + savePersonalRule, + updatePersonalRule, + deletePersonalRule, +} from "../../utils/personalRulesManager"; import { compactDialog } from "../../services/apiClient"; import { ChatHistoryManager } from "../../utils/chatHistoryManager"; import { getCachedUserInfo } from "../../services/userService"; @@ -392,5 +398,63 @@ export async function handleWebviewMessage( vscode.env.openExternal(vscode.Uri.parse(message.url)); } break; + + case "loadPersonalRules": + { + const data = loadPersonalRules(); + panel.webview.postMessage({ + command: "personalRulesLoaded", + data: data, + }); + } + break; + + case "savePersonalRule": + { + const success = await savePersonalRule( + message.name, + message.content, + message.enabled, + ); + if (success) { + const data = loadPersonalRules(); + panel.webview.postMessage({ + command: "personalRulesLoaded", + data: data, + }); + } + } + break; + + case "updatePersonalRule": + { + const success = await updatePersonalRule( + message.filename, + message.name, + message.content, + message.enabled, + ); + if (success) { + const data = loadPersonalRules(); + panel.webview.postMessage({ + command: "personalRulesLoaded", + data: data, + }); + } + } + break; + + case "deletePersonalRule": + { + const success = await deletePersonalRule(message.filename); + if (success) { + const data = loadPersonalRules(); + panel.webview.postMessage({ + command: "personalRulesLoaded", + data: data, + }); + } + } + break; } }