feat: implement file sharing, SVG image rendering, avatar emotional animations, live telemetry, and dynamic TTS description with cyberpunk playback controls

This commit is contained in:
Michael committed 2026-05-20 15:59:16 +02:00
1 parent d77ace03cd
commit bf247e7e5f
9 files changed
+1676 -99

No files matched your search

+31
View File
@@ -0,0 +1,31 @@
const { contextBridge, ipcRenderer } = require('electron');
// Exposition sécurisée via contextBridge (Zéro Trust contextIsolation)
contextBridge.exposeInMainWorld('electronAPI', {
windowControl: (action) => ipcRenderer.send('window-control', action),
setWindowMode: (mode) => ipcRenderer.send('set-window-mode', mode),
onWindowModeChanged: (callback) => {
const subscription = (event, mode) => callback(mode);
ipcRenderer.on('window-mode-changed', subscription);
return () => ipcRenderer.removeListener('window-mode-changed', subscription);
},
// Logging : envoie une entrée structurée vers le processus principal pour écriture disque
writeLog: (entry) => ipcRenderer.send('write-log', entry),
// Webhook : abonnement aux events pushés par Hermes
onHermesPush: (callback) => {
const subscription = (event, data) => callback(data);
ipcRenderer.on('hermes-push', subscription);
return () => ipcRenderer.removeListener('hermes-push', subscription);
},
// Store persistant fichier — indépendant de l'origine HTTP/file://
storeGet: (key) => ipcRenderer.invoke('store-get', key),
storeSet: (key, value) => ipcRenderer.invoke('store-set', key, value),
// Lecture de fichier local sécurisée
readLocalFile: (filePath) => ipcRenderer.invoke('read-local-file', filePath),
// Télémétrie réelle système
getSystemMetrics: () => ipcRenderer.invoke('get-system-metrics'),
// Écriture de fichier partagé
writeSharedFile: (filename, content, isBase64) => ipcRenderer.invoke('write-shared-file', filename, content, isBase64),
// Ouverture de fichier local
openLocalFile: (filePath) => ipcRenderer.invoke('open-local-file', filePath),
});