mirror of
https://github.com/R0m1k3/EveFlow.git
synced 2026-10-19 13:18:14 +02:00
feat!: rebuild EveFlow as a JARVIS-style voice HUD for Hermes Agent (v2.0.0)
Complete rewrite of the application: - Toolchain: Electron 44, Vite 8, React 19, TypeScript 5.9, Zustand, Vitest; main process rewritten in TypeScript (electron/), typed IPC contract (shared/), sandboxed renderer with webSecurity on and an HTTP/SSE proxy in the main process. - Voice: AudioWorklet microphone capture at 16 kHz with adaptive energy VAD and auto-stop, WAV encoder, OpenAI-compatible STT, TTS queue with sentence-level streaming, prefetch and Web Audio playback feeding an analyser; hands-free mode, global push-to-talk hotkey, system-voice fallback. - Hermes: full API client (capabilities, health, models, skills, toolsets, sessions, jobs) with automatic transport selection: runs API (SSE lifecycle, approvals, steer, stop) > sessions stream > chat completions with local tools; tolerant event normalisation; webhook receiver hardened (secret, size limit). - UI: JARVIS arc-reactor core on Canvas 2D reacting to the real audio signal, holographic HUD layout (transcript, core, Hermes ops panel with tools/crons/ skills/sessions/link tabs, telemetry), settings drawer, approval modals, compact floating widget, four themes, tray icon and global shortcuts. - Removed the 3D Eve robot, three.js and legacy assets; migrated 1.x settings. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017Wn5VX9HNbJ7N54hR24u9Y
This commit is contained in:
239 files changed
+11351
-86495
No files matched your search
@@ -0,0 +1,61 @@
|
||||
.compact-root {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
border-radius: 18px;
|
||||
overflow: hidden;
|
||||
background: linear-gradient(180deg, rgba(5, 12, 22, var(--compact-opacity, 0.92)), rgba(2, 6, 12, var(--compact-opacity, 0.92)));
|
||||
border: 1px solid rgba(var(--accent-rgb), 0.3);
|
||||
box-shadow: 0 20px 60px rgba(0, 0, 0, 0.6), 0 0 30px rgba(var(--accent-rgb), 0.12);
|
||||
backdrop-filter: blur(16px);
|
||||
}
|
||||
.compact-head {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
padding: 8px 8px 8px 14px;
|
||||
-webkit-app-region: drag;
|
||||
font-family: var(--font-display);
|
||||
font-size: 11px;
|
||||
letter-spacing: 0.3em;
|
||||
color: var(--ink-0);
|
||||
}
|
||||
.compact-head > * {
|
||||
-webkit-app-region: no-drag;
|
||||
}
|
||||
.compact-head .title {
|
||||
flex: 1;
|
||||
-webkit-app-region: drag;
|
||||
}
|
||||
.compact-core {
|
||||
position: relative;
|
||||
height: 220px;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
.compact-core canvas {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: block;
|
||||
}
|
||||
.compact-core .core-caption {
|
||||
bottom: 6px;
|
||||
}
|
||||
.compact-body {
|
||||
flex: 1;
|
||||
min-height: 0;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
border-top: 1px solid var(--line);
|
||||
}
|
||||
.compact-body .command-bar {
|
||||
padding: 8px 10px 10px;
|
||||
}
|
||||
.compact-body .command-input {
|
||||
min-height: 40px;
|
||||
font-size: 14px;
|
||||
padding: 9px 12px;
|
||||
}
|
||||
.compact-body .bubble {
|
||||
font-size: 13px;
|
||||
padding: 8px 11px;
|
||||
}
|
||||
Reference in new issue
Block a user