aboutsummaryrefslogtreecommitdiffstats
path: root/dist/main/preload.js
blob: 7978b5354257321908680266c37aeada40250600 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const electron_1 = require("electron");
const api = {
    // Projects
    listProjects: () => electron_1.ipcRenderer.invoke("projects:list"),
    createProject: (name, path) => electron_1.ipcRenderer.invoke("projects:create", name, path),
    deleteProject: (id) => electron_1.ipcRenderer.invoke("projects:delete", id),
    // Sessions
    listSessions: (projectId) => electron_1.ipcRenderer.invoke("sessions:list", projectId),
    createSession: (projectId, name) => electron_1.ipcRenderer.invoke("sessions:create", projectId, name),
    deleteSession: (id) => electron_1.ipcRenderer.invoke("sessions:delete", id),
    getSession: (id) => electron_1.ipcRenderer.invoke("sessions:get", id),
    // Messages
    listMessages: (sessionId) => electron_1.ipcRenderer.invoke("messages:list", sessionId),
    // Chat
    sendMessage: (sessionId, message) => electron_1.ipcRenderer.invoke("chat:send", sessionId, message),
    interruptSession: (sessionId) => electron_1.ipcRenderer.invoke("chat:interrupt", sessionId),
    // Workflow
    triggerReview: (sessionId) => electron_1.ipcRenderer.invoke("workflow:review", sessionId),
    advancePhase: (sessionId) => electron_1.ipcRenderer.invoke("workflow:advance", sessionId),
    setPermissionMode: (sessionId, mode) => electron_1.ipcRenderer.invoke("workflow:setPermissionMode", sessionId, mode),
    // Artifacts
    readArtifact: (projectPath, filename) => electron_1.ipcRenderer.invoke("artifact:read", projectPath, filename),
    writeArtifact: (projectPath, filename, content) => electron_1.ipcRenderer.invoke("artifact:write", projectPath, filename, content),
    // Events
    onClaudeMessage: (callback) => {
        const handler = (_, sessionId, message) => callback(sessionId, message);
        electron_1.ipcRenderer.on("claude:message", handler);
        return () => electron_1.ipcRenderer.removeListener("claude:message", handler);
    },
    // Dialogs
    selectDirectory: async () => {
        const result = await electron_1.ipcRenderer.invoke("dialog:selectDirectory");
        return result;
    },
};
electron_1.contextBridge.exposeInMainWorld("api", api);