fix(stt): check_voice_requirements() should recognize all STT providers

The /voice status command only checked for 'local', 'groq', and 'openai'
providers. Any other valid provider (local_command, mistral, xai,
elevenlabs, or custom command providers) fell through to the generic
MISSING message — even when transcription worked perfectly.

- Import _has_any_command_stt_provider (already defined, never imported)
- Add elif branches for local_command, mistral, xai, elevenlabs
- Add generic catch-all via _has_any_command_stt_provider() for
  arbitrary custom command providers
This commit is contained in:
Zehua Wang 2026-06-07 21:15:50 -04:00 committed by Teknium
parent 7d2b8a3cad
commit de057fe24f

View file

@ -1277,7 +1277,7 @@ def check_voice_requirements() -> Dict[str, Any]:
``missing_packages``, and ``details``.
"""
# Determine STT provider availability
from tools.transcription_tools import _get_provider, _load_stt_config, is_stt_enabled
from tools.transcription_tools import _get_provider, _has_any_command_stt_provider, _load_stt_config, is_stt_enabled
stt_config = _load_stt_config()
stt_enabled = is_stt_enabled(stt_config)
stt_provider = _get_provider(stt_config)
@ -1307,10 +1307,20 @@ def check_voice_requirements() -> Dict[str, Any]:
details_parts.append("STT provider: DISABLED in config (stt.enabled: false)")
elif stt_provider == "local":
details_parts.append("STT provider: OK (local faster-whisper)")
elif stt_provider == "local_command":
details_parts.append("STT provider: OK (local command)")
elif stt_provider == "groq":
details_parts.append("STT provider: OK (Groq)")
elif stt_provider == "openai":
details_parts.append("STT provider: OK (OpenAI)")
elif stt_provider == "mistral":
details_parts.append("STT provider: OK (Mistral Voxtral)")
elif stt_provider == "xai":
details_parts.append("STT provider: OK (xAI Grok STT)")
elif stt_provider == "elevenlabs":
details_parts.append("STT provider: OK (ElevenLabs Scribe)")
elif _has_any_command_stt_provider(stt_config):
details_parts.append(f"STT provider: OK ({stt_provider})")
else:
details_parts.append(
"STT provider: MISSING (uv pip install faster-whisper — "