/ public / preload.js
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