copilot-api / desktop /electron /preload.ts
imspsycho's picture
Initial upload from Google Colab
98c9143 verified
Raw
History Blame Contribute Delete
2.31 kB
import { contextBridge, ipcRenderer } from 'electron'
contextBridge.exposeInMainWorld('electronAPI', {
getDeviceCode: () => ipcRenderer.invoke('auth:get-device-code'),
saveToken: (token: string) => ipcRenderer.invoke('auth:save-token', token),
checkSavedToken: () => ipcRenderer.invoke('auth:check-saved'),
logout: () => ipcRenderer.invoke('auth:logout'),
startServer: (port: number) => ipcRenderer.invoke('server:start', port),
stopServer: () => ipcRenderer.invoke('server:stop'),
getSettings: () => ipcRenderer.invoke('settings:get'),
saveSettings: (settings: unknown) => ipcRenderer.invoke('settings:save', settings),
getModelMappingsConfig: () => ipcRenderer.invoke('config:get-model-mappings'),
saveModelMappings: (modelMappings: Record<string, string>) =>
ipcRenderer.invoke('config:save-model-mappings', modelMappings),
openUrl: (url: string) => ipcRenderer.invoke('shell:open-url', url),
fetchUsage: () => ipcRenderer.invoke('server:fetch-usage'),
fetchModels: () => ipcRenderer.invoke('server:fetch-models'),
fetchTokenUsage: (period: string) => ipcRenderer.invoke('server:fetch-token-usage', period),
fetchTokenUsageDaily: (period: string) => ipcRenderer.invoke('server:fetch-token-usage-daily', period),
fetchTokenUsageEvents: (period: string, page: number, pageSize: number) =>
ipcRenderer.invoke('server:fetch-token-usage-events', period, page, pageSize),
getServerAuthInfo: () => ipcRenderer.invoke('server:get-auth-info'),
getLogs: () => ipcRenderer.invoke('server:get-logs'),
onAuthSuccess: (callback: (result: unknown) => void) => {
const handler = (_event: Electron.IpcRendererEvent, result: unknown) => callback(result)
ipcRenderer.on('auth:success', handler)
return () => ipcRenderer.off('auth:success', handler)
},
onServerStatus: (callback: (status: unknown) => void) => {
const handler = (_event: Electron.IpcRendererEvent, status: unknown) => callback(status)
ipcRenderer.on('server:status', handler)
return () => ipcRenderer.off('server:status', handler)
},
onServerLog: (callback: (log: string) => void) => {
const handler = (_event: Electron.IpcRendererEvent, log: string) => callback(log)
ipcRenderer.on('server:log', handler)
return () => ipcRenderer.off('server:log', handler)
}
})