Funk-lab/stt/client/config/stt.example.toml
ALI YESILKAYA 9c335d169b
feat(stt-client): portail de services dans le HUD — tuiles cliquables + registre config-driven (#34)
Ajoute un panneau « Services » au HUD du client STT : une tuile par service du
homelab (Ghostfolio, Grafana, ArgoCD, n8n, Open WebUI, Prometheus, Alertmanager,
Traefik), un clic ouvre l'URL dans le navigateur habituel.

- stt/portal/ : registre piloté par [[services]] de stt.toml (id, name, url, icon,
  aliases) + résolution floue (registry.match_service) prête pour la voix.
  Ajouter un service = quelques lignes de config, zéro code.
- config.py : défauts homelab + doc dans stt.example.toml.
- ui/app.py : pousse la liste au HUD à la connexion, action de contrôle
  open-service → _open_url_external (xdg-open, session navigateur normale) + toast.
- hud/index.html : bouton header, drawer Services (voile partagé avec Réglages),
  grille de tuiles, toast de confirmation.
- bump 0.7.0 → 0.8.0.

Validé : registre (fuzzy-match FR/fautes/négatif), wiring backend, et HUD via
Playwright (rendu tuiles + clic émet open-service + toast, aucune erreur JS).

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 22:20:11 +02:00

58 lines
2.5 KiB
TOML

# Configuration du CLIENT STT — copier vers ~/.config/stt/stt.toml (`stt --setup` le génère).
# Reflète les défauts embarqués (stt/client/stt/config.py : DEFAULT_CONFIG).
# Le client n'a plus de cerveau : il envoie le texte au STT-server (in-cluster).
[server]
url = "http://stt.lab.local" # endpoint du STT-server (paramétrable)
timeout_sec = 90
model = "hermes-default" # modèle demandé au serveur
# Noms courts (--model / commande /model) : hermes=hermes-default, qwen=qwen3-8b,
# claude=claude-sonnet-4-6, opus=claude-opus-4-7. Sinon mets un alias LiteLLM brut.
[voice]
wake_word = "hermes" # "Ok Hermès"
whisper_model = "large-v3" # STT faster-whisper (CPU int8) — "small" pour tester
piper_voice = "fr_FR-upmc-medium" # TTS — ~/.local/share/piper/<voix>.onnx
language = "fr"
silence_sec = 1.2
min_speech_sec = 0.6
chat_timeout_sec = 60
# theme / avatar sont désormais réglés dans le HUD (drawer Réglages, mémorisé en
# localStorage) — ces deux clés sont gardées pour compat mais ignorées par le HUD.
[ui]
theme = "arc-reactor"
avatar = "default"
kiosk = true # (compat) plein écran si window_mode absent
window_mode = "kiosk" # "app" (fenêtre, type Discord) | "kiosk" (plein écran) | "none"
ws_host = "127.0.0.1"
ws_port = 9300 # websocket états ↔ HUD (doit matcher hud/index.html)
http_port = 9301 # HTTP statique qui sert le HUD
[memory]
enabled = true # cache local de conversation (brut, gitignoré)
local_db = "~/.local/share/stt/memory.sqlite"
# ---------------------------------------------------------------------------
# Portail de services — tuiles du HUD + commande vocale « ouvre <service> ».
# Définir [[services]] ici REMPLACE entièrement la liste par défaut (homelab Funk).
# Ajouter un service = un bloc de plus. Champs :
# id : identifiant unique (interne)
# name : libellé affiché sur la tuile
# url : ouverte dans ton navigateur normal au clic / à la voix
# icon : emoji de la tuile
# aliases : mots déclencheurs pour la voix (« ouvre les métriques » → grafana)
# ---------------------------------------------------------------------------
# [[services]]
# id = "grafana"
# name = "Grafana"
# url = "http://grafana.lab.local"
# icon = "📊"
# aliases = ["graphana", "metriques", "monitoring", "dashboard"]
#
# [[services]]
# id = "ghostfolio"
# name = "Ghostfolio"
# url = "http://ghostfolio.lab.local"
# icon = "💰"
# aliases = ["portefeuille", "bourse"]