diff options
Diffstat (limited to 'src/main/ipc/handlers.ts')
| -rw-r--r-- | src/main/ipc/handlers.ts | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/main/ipc/handlers.ts b/src/main/ipc/handlers.ts index 774eb63..bc7d78d 100644 --- a/src/main/ipc/handlers.ts +++ b/src/main/ipc/handlers.ts | |||
| @@ -2,8 +2,10 @@ import { ipcMain, dialog, type BrowserWindow } from "electron"; | |||
| 2 | import * as projects from "../db/projects"; | 2 | import * as projects from "../db/projects"; |
| 3 | import * as sessions from "../db/sessions"; | 3 | import * as sessions from "../db/sessions"; |
| 4 | import * as claude from "../claude"; | 4 | import * as claude from "../claude"; |
| 5 | import * as settingsDb from "../db/settings"; | ||
| 5 | import { createSessionBranch, ensureGitIgnore } from "../git"; | 6 | import { createSessionBranch, ensureGitIgnore } from "../git"; |
| 6 | import type { UserPermissionMode } from "../claude/phases"; | 7 | import type { UserPermissionMode } from "../claude/phases"; |
| 8 | import { getDefaultSystemPromptTemplate } from "../claude/phases"; | ||
| 7 | 9 | ||
| 8 | export function registerIpcHandlers(mainWindow: BrowserWindow): void { | 10 | export function registerIpcHandlers(mainWindow: BrowserWindow): void { |
| 9 | // Projects | 11 | // Projects |
| @@ -155,6 +157,24 @@ export function registerIpcHandlers(mainWindow: BrowserWindow): void { | |||
| 155 | claude.writeClaudeMd(projectPath, content); | 157 | claude.writeClaudeMd(projectPath, content); |
| 156 | }); | 158 | }); |
| 157 | 159 | ||
| 160 | // Settings | ||
| 161 | ipcMain.handle("settings:get", (_, keys: string[]) => | ||
| 162 | settingsDb.getSettings(keys) | ||
| 163 | ); | ||
| 164 | ipcMain.handle("settings:set", (_, key: string, value: string) => | ||
| 165 | settingsDb.setSetting(key, value) | ||
| 166 | ); | ||
| 167 | ipcMain.handle("settings:delete", (_, key: string) => | ||
| 168 | settingsDb.deleteSetting(key) | ||
| 169 | ); | ||
| 170 | |||
| 171 | // Returns default prompt text (with {{artifactDir}} placeholder) for all phases | ||
| 172 | ipcMain.handle("settings:getDefaultPrompts", () => ({ | ||
| 173 | research: getDefaultSystemPromptTemplate("research"), | ||
| 174 | plan: getDefaultSystemPromptTemplate("plan"), | ||
| 175 | implement: getDefaultSystemPromptTemplate("implement"), | ||
| 176 | })); | ||
| 177 | |||
| 158 | // Dialogs | 178 | // Dialogs |
| 159 | ipcMain.handle("dialog:selectDirectory", async () => { | 179 | ipcMain.handle("dialog:selectDirectory", async () => { |
| 160 | const result = await dialog.showOpenDialog(mainWindow, { | 180 | const result = await dialog.showOpenDialog(mainWindow, { |
