96bf65a6f7
STT previously had no configuration surface outside hand-editing config.yaml — no category in the hermes tools picker, no provider matrix in the GUI capabilities tab, no status line in hermes setup. - TOOL_CATEGORIES['stt']: 7 provider rows (Local Whisper, Nous Subscription managed, OpenAI, Groq, xAI, ElevenLabs Scribe, DeepInfra) with key prompts, badges, and post-setup hooks - stt_provider marker wired through _write_provider_config, _configure_provider, _reconfigure_provider, and _is_provider_active — GUI and CLI share one write path (apply_provider_selection) - STT model picker (_configure_stt_model + STT_MODEL_CATALOG) runs after provider pick: local sizes, Groq whisper family, OpenAI whisper-1/gpt-4o-*/gpt-transcribe, ElevenLabs scribe (model_id key) - faster_whisper post-setup hook auto-installs the local backend; registered in _POST_SETUP_READY - stt is CONFIG-ONLY (_CONFIG_ONLY_TOOLSETS): it ships no tool schemas, so it is excluded from the per-platform enable checklist; the GUI toolset toggle writes stt.enabled instead of platform_toolsets - hermes setup shows a Speech-to-Text status line per provider - Mistral row omitted (mistralai PyPI quarantine), mirroring the dashboard stt.provider options Tests: tests/hermes_cli/test_stt_picker.py (20 cases) incl. invariant checks against agent.transcription_registry builtins and the runtime OPENAI_MODELS/GROQ_MODELS sets.