mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-07-29 18:46:59 +00:00
The wake loop is wake → record → STT → agent → TTS. Arming without either end configured gives a mic that hears you and then does nothing perceivable — a useless experience. check_wake_word_requirements now probes both (same probes /voice uses: stt.enabled + provider != none; check_tts_requirements) and refuses with a pointer to `hermes tools` naming exactly which half is missing. The desktop ear hides (available: false already hides the button), /wake on prints the hint on CLI/TUI. wake.start also validates requirements BEFORE persisting wake_word.enabled, so a refused gesture can't leave config claiming on while nothing can ever arm. Tests: per-half and both-missing hint assertions; existing requirements tests pinned via _voice_loop_ready so they don't depend on the test venv's installed voice stack. E2E: stt.enabled=false in a real config -> unavailable with the speech-to-text hint. |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| _stdin_recovery.py | ||
| compute_host.py | ||
| entry.py | ||
| event_publisher.py | ||
| git_probe.py | ||
| host_supervisor.py | ||
| loop_noise.py | ||
| project_tree.py | ||
| render.py | ||
| server.py | ||
| slash_worker.py | ||
| synthetic_turn.py | ||
| transport.py | ||
| turn_marker.py | ||
| ws.py | ||