Files
EveFlow/package.json
T
LogiFlowandClaude af8bdc5e9d feat: fin de phrase Silero, vision d'écran et actions locales (v2.3.0) (#13)
Écoute permanente
- Silero VAD dans le worker sherpa-onnx (vad.start/audio/stop) ; le renderer
  envoie des trames de 128 ms pendant la commande et reçoit le segment WAV
  complet (speech-start / segment). Repli sur le VAD énergétique si le modèle
  n'est pas installé ou si l'option est désactivée.
- Modèle « silero-vad » (0,6 Mo) dans le catalogue, section « Fin de phrase »
  dans Modèles locaux, réglage dans Paramètres → Micro.

Vision d'écran
- IPC system:screen-capture (desktopCapturer, JPEG 1600 px) ; bouton dans la
  barre de commande ; « regarde mon écran… » joint la capture à la question
  envoyée à Hermes (transport chat completions pour les images).

Actions locales
- IPC system:action à liste blanche : verrouiller la session, touches média
  (volume, mute, lecture, piste), ouvrir une application connue ou une URL
  http(s), presse-papiers, recherche de fichiers dans les dossiers utilisateur.
- Routeur d'intentions FR/EN exécuté avant Hermes (« coupe le son », « ouvre
  Spotify », « verrouille la session »…), résultat affiché et lu ; désactivable.

Correctif
- Chat completions : les premiers fragments SSE arrivés avant l'événement de
  démarrage étaient perdus (premier mot manquant) ; ils sont maintenant rejoués.

Tests : 26 tests unitaires (intentions locales ajoutées), e2e Electron sous
Xvfb avec les vrais modèles (Silero : un segment par phrase, 6,7 s d'audio
traités en 190 ms ; capture 109 ko reçue par Hermes ; intention locale
traitée sans Hermes).


Claude-Session: https://claude.ai/code/session_017Wn5VX9HNbJ7N54hR24u9Y

Co-authored-by: Claude <noreply@anthropic.com>
2026-09-03 20:46:26 +02:00

99 lines
3.0 KiB
JSON

{
"name": "eveflow",
"version": "2.3.0",
"releaseVersion": "2.3.0",
"description": "JARVIS-style desktop HUD for Hermes Agent: voice, streaming runs, scheduled jobs, skills and telemetry",
"main": "dist-electron/main.js",
"private": true,
"license": "MIT",
"scripts": {
"dev": "vite --host 127.0.0.1 --port 5173 --strictPort",
"build": "npm run typecheck && npm run build:renderer && npm run build:electron",
"build:renderer": "vite build",
"build:electron": "node scripts/build-electron.mjs",
"typecheck": "tsc -p tsconfig.json --noEmit && tsc -p tsconfig.electron.json --noEmit",
"test": "vitest run",
"test:watch": "vitest",
"electron": "electron .",
"start": "npm run build:electron && concurrently -k -s first \"npm run dev\" \"wait-on http://127.0.0.1:5173 && cross-env NODE_ENV=development VITE_DEV_SERVER_URL=http://127.0.0.1:5173 electron .\"",
"preview": "vite preview",
"dist": "node scripts/dist.mjs",
"typecheck:electron": "tsc -p tsconfig.electron.json --noEmit"
},
"build": {
"appId": "com.romik3.eveflow",
"productName": "EveFlow",
"copyright": "Copyright © 2026 R0m1k3",
"asar": true,
"directories": {
"output": "out",
"buildResources": "build"
},
"files": [
"dist-electron/**/*",
"dist/**/*",
"package.json"
],
"win": {
"target": "nsis",
"icon": "build/icon.png",
"requestedExecutionLevel": "asInvoker",
"signAndEditExecutable": false,
"verifyUpdateCodeSignature": false
},
"nsis": {
"oneClick": false,
"allowToChangeInstallationDirectory": true,
"createDesktopShortcut": true,
"createStartMenuShortcut": true,
"shortcutName": "EveFlow"
},
"extraResources": [
{
"from": "build/icon.png",
"to": "icon.png"
}
],
"asarUnpack": [
"dist-electron/voice-worker.js",
"node_modules/sherpa-onnx-node/**",
"node_modules/sherpa-onnx-win-x64/**",
"node_modules/sherpa-onnx-linux-x64/**",
"node_modules/sherpa-onnx-darwin-arm64/**",
"node_modules/sherpa-onnx-darwin-x64/**"
],
"npmRebuild": false
},
"dependencies": {
"@fontsource/orbitron": "^5.3.0",
"@fontsource/rajdhani": "^5.3.0",
"@fontsource/share-tech-mono": "^5.3.0",
"lucide-react": "^1.40.0",
"react": "^19.2.8",
"react-dom": "^19.2.8",
"react-markdown": "^10.1.0",
"remark-gfm": "^4.0.1",
"sherpa-onnx-node": "^1.13.7",
"zustand": "^5.0.15"
},
"devDependencies": {
"@types/node": "^24.0.0",
"@types/react": "^19.2.18",
"@types/react-dom": "^19.2.0",
"@types/unbzip2-stream": "^1.4.3",
"@vitejs/plugin-react": "^6.1.1",
"concurrently": "^10.0.5",
"cross-env": "^10.0.0",
"electron": "^44.1.1",
"electron-builder": "^26.15.3",
"esbuild": "^0.28.2",
"jsdom": "^30.0.1",
"tar": "^7.5.22",
"typescript": "^5.9.3",
"unbzip2-stream": "^1.4.3",
"vite": "^8.2.2",
"vitest": "^5.0.0",
"wait-on": "^9.1.0"
}
}