Files
obelisk/app/preload.js
T
tommy0103 4eec6b38c9 feat(app): embed indexer in Electron with file-watching service and UI refinements
Extract schema DDL into scripts/schema.sql shared between CLI and app.
  Add an in-process chokidar-based indexer-service that watches ~/.claude/projects
  for JSONL changes, debounces, and triggers background rebuilds via a worker
  thread. Rename Usage view to Activity, flesh out MemoryDetail and SubagentDetail
  views, and refine App.vue layout/routing. The main process now starts/stops the
  indexer lifecycle and notifies renderer windows on index updates.
2026-06-13 03:42:01 +08:00

28 lines
1.7 KiB
JavaScript

const { contextBridge, ipcRenderer } = require('electron');
contextBridge.exposeInMainWorld('obelisk', {
getSessions: (opts) => ipcRenderer.invoke('db:getSessions', opts),
getSessionMessages: (id) => ipcRenderer.invoke('db:getSessionMessages', id),
getSessionToolCalls: (id) => ipcRenderer.invoke('db:getSessionToolCalls', id),
getSessionToolResults: (id) => ipcRenderer.invoke('db:getSessionToolResults', id),
getSessionSubagents: (id) => ipcRenderer.invoke('db:getSessionSubagents', id),
getSessionWorkflows: (id) => ipcRenderer.invoke('db:getSessionWorkflows', id),
getSubagentMessages: (agentId) => ipcRenderer.invoke('db:getSubagentMessages', agentId),
getSubagentToolCalls: (agentId) => ipcRenderer.invoke('db:getSubagentToolCalls', agentId),
getSubagentToolResults: (agentId) => ipcRenderer.invoke('db:getSubagentToolResults', agentId),
getSessionSummaries: (id) => ipcRenderer.invoke('db:getSessionSummaries', id),
getMessageFullText: (uuid) => ipcRenderer.invoke('db:getMessageFullText', uuid),
getMemories: () => ipcRenderer.invoke('db:getMemories'),
readMemoryFile: (path) => ipcRenderer.invoke('db:readMemoryFile', path),
archiveMemory: (id, reason) => ipcRenderer.invoke('db:archiveMemory', id, reason),
restoreMemory: (id) => ipcRenderer.invoke('db:restoreMemory', id),
getProjects: () => ipcRenderer.invoke('db:getProjects'),
getStats: () => ipcRenderer.invoke('db:getStats'),
getUsageStats: () => ipcRenderer.invoke('db:getUsageStats'),
onIndexUpdated: (callback) => {
const listener = () => callback();
ipcRenderer.on('obelisk:index-updated', listener);
return () => ipcRenderer.removeListener('obelisk:index-updated', listener);
},
});