Funk-lab/stt/client
alkatrazz e218d30d84 feat(stt-client): intentions vocales lecture seule — ouvrir, état du cluster, valeur Ghostfolio
Asa répond/agit en local (sans LLM) sur trois intentions déterministes, interceptées
dans engine._respond avant l'appel au STT-server :

  • « ouvre <service> »                 → ouvre la page dans le navigateur
  • « état du cluster / des services »  → résumé de santé parlé (depuis le poller)
  • « combien sur mon ghostfolio »      → valeur du portefeuille (API Ghostfolio)

- portal/intents.py : route_intent (ordre ghostfolio > statut > ouvrir) + summarize_status.
- portal/ghostfolio.py : client API config-driven (auth/anonymous → JWT → portfolio/details),
  lecture seule, dégradation propre si pas de token.
- voice/engine.py : attribut intent_router branché dans _respond (mode « portail »,
  court-circuite le LLM).
- ui/app.py : construit le routeur (services, ouverture, dernière santé, Ghostfolio).
- config : section [ghostfolio] (url, access_token vide par défaut, timeout).
- bump 0.10.0 → 0.11.0.

Stacked sur #36 (le résumé d'état utilise le StatusPoller). Validé : routage des
intents (ouvrir via alias, ghostfolio avec qualificatif, statut, hors-sujet → LLM),
résumé d'état, et interception moteur de bout en bout (LLM non appelé sur intent).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 23:30:31 +02:00
..
config feat(stt-client): intentions vocales lecture seule — ouvrir, état du cluster, valeur Ghostfolio 2026-06-20 23:30:31 +02:00
stt feat(stt-client): intentions vocales lecture seule — ouvrir, état du cluster, valeur Ghostfolio 2026-06-20 23:30:31 +02:00
pyproject.toml feat(stt-client): intentions vocales lecture seule — ouvrir, état du cluster, valeur Ghostfolio 2026-06-20 23:30:31 +02:00