preload.js
1 const { contextBridge, ipcRenderer } = require('electron'); 2 3 contextBridge.exposeInMainWorld('electron', { 4 fileSystem: { 5 getMediaFilePath: (repoName, fileName) => ipcRenderer.invoke('get-media-file-path', repoName, fileName), 6 getDreamSongMediaFilePath: (repoName, fileName) => ipcRenderer.invoke('get-dreamsong-media-file-path', repoName, fileName), 7 getFileStats: (filePath) => ipcRenderer.invoke('get-file-stats', filePath), 8 readMetadata: (repoName) => ipcRenderer.invoke('read-metadata', repoName), 9 writeMetadata: (repoName, metadata) => ipcRenderer.invoke('write-metadata', repoName, metadata), 10 readFile: (filePath) => ipcRenderer.invoke('read-file', filePath), 11 readDreamSongCanvas: (repoName) => ipcRenderer.invoke('read-dreamsong-canvas', repoName), 12 listFiles: (repoName) => ipcRenderer.invoke('list-files', repoName), 13 renameRepo: (oldName, newName) => ipcRenderer.invoke('rename-repo', oldName, newName), 14 createNewNode: (nodeName) => ipcRenderer.invoke('create-new-node', nodeName), 15 addFileToNode: (nodeName, file) => ipcRenderer.invoke('add-file-to-node', nodeName, file), 16 processFile: (repoName, file, processorRepo) => { 17 console.log(`Invoking process-file from preload.js for repo: ${repoName}, file: ${file}, processor: ${processorRepo}`); 18 return ipcRenderer.invoke('process-file', repoName, file, processorRepo); 19 }, 20 stageFile: (nodeName, fileName) => ipcRenderer.invoke('stage-file', nodeName, fileName), 21 commitChanges: (nodeName, commitMessage) => ipcRenderer.invoke('commit-changes', nodeName, commitMessage), 22 getAllRepoNamesAndTypes: () => ipcRenderer.invoke('get-all-repo-names-and-types'), 23 addSubmodule: (parentRepoName, submoduleRepoName) => ipcRenderer.invoke('add-submodule', parentRepoName, submoduleRepoName), 24 updateSubmodules: (repoName) => ipcRenderer.invoke('update-submodules', repoName), 25 copyRepositoryToDreamVault: (sourcePath, repoName) => ipcRenderer.invoke('copy-repository-to-dreamvault', sourcePath, repoName), 26 unbundleRepositoryToDreamVault: (bundlePath, repoName) => ipcRenderer.invoke('unbundle-repository-to-dreamvault', bundlePath, repoName), 27 handleZipArchive: (zipPath) => ipcRenderer.invoke('handle-zip-archive', zipPath), 28 getPersonNodes: () => ipcRenderer.invoke('get-person-nodes'), 29 createEmailDraft: (repoName, personName) => ipcRenderer.invoke('create-email-draft', repoName, personName), 30 triggerCoherenceBeacon: (repoName) => ipcRenderer.invoke('trigger-coherence-beacon', repoName), 31 openFile: (repoName, fileName) => ipcRenderer.invoke('open-file', repoName, fileName), 32 runAider: (repoName) => ipcRenderer.invoke('run-aider', repoName), 33 openCanvas: (repoName) => ipcRenderer.invoke('open-canvas', repoName), 34 }, 35 getDreamVaultPath: () => ipcRenderer.invoke('get-dream-vault-path'), 36 setDreamVaultPath: (path) => ipcRenderer.invoke('set-dream-vault-path', path), 37 scanDreamVault: () => ipcRenderer.invoke('scan-dream-vault'), 38 openDirectoryDialog: () => ipcRenderer.invoke('open-directory-dialog'), 39 isElectron: true, 40 openInFinder: (repoName) => ipcRenderer.invoke('open-in-finder', repoName), 41 openInGitFox: (repoName) => ipcRenderer.invoke('open-in-gitfox', repoName), 42 }); 43