Fonctions documentées: VoiceBot et orchestration
Contrat et décision VoiceBot7 composants
Ingress VoiceBot API v1 et SDKCode
- Rôle / owner
- Contrat protégé entre Navy Phone et VoiceBot. Owner API VoiceBot.
- Interfaces / confiance
- Les 11 routes passent par
getSessionavant token/fetch;interrupted_previous_assistanttraverse bridge, SDK, API, runtime et moteur.
- État / dépendances
- Session autorisée, organisation, identité machine distincte et readiness exigeant
interruption_context=true. Réponse bornée à 1 MiB.
- HA / panne
- 401 stable si anonyme, expiré ou restreint. Session store, identité machine ou capacité d’interruption indisponible: refus sans inventer un contexte.
- Sécurité / preuve / source
- Allowlists de headers dans les deux sens. Gate sécurité courante: 84 fichiers et 974 tests verts; 128 sources et 19 sources média verrouillées. Produit séparé: 31 pass + 1 skipped, 344 pass + 3 skipped sur 347 tests. Code local, aucun service déployé.
Sessions et tours préparésCode
- Rôle / owner
- Machine d’état prepared-turn et settlement. Owner VoiceBot.
- Interfaces / confiance
- API produit avec token opaque, révision optimiste et issues
committed,cancelledoufailed.
- État / dépendances
- Un
cancelled+replayedadopte la révision retournée tout en restant annulé. Prepare abortable: 6 s par défaut, borne 0,5 à 15 s.
- HA / panne
- ACK indéterminé fail-closed; timeout ACK 3 s par défaut, borne 0,25 à 10 s. Aucun commit sur issue annulée ou inconnue.
- Sécurité / preuve / source
- Suites Navy 398/4 147 et typecheck verts; produit séparé 31 pass + 1 skipped, 344 pass + 3 skipped sur 347 tests et typecheck vert. Source:
turn-settlement.ts, bridge et SDK. Aucun runtime déployé.
VAD, gestion de tour et barge-inCode
- Rôle / owner
- Début/fin de parole, annulation et contexte d’interruption. Owner média Navy Phone.
- Interfaces / confiance
- Frames PCM, VAD, génération, AbortSignal, clear/FLUSH_MEDIA et
interrupted_previous_assistant.
- État / dépendances
- Une annulation confirmée garde la connexion ouverte et ne valide pas l’ancien tour.
- HA / panne
cancelledne ferme plus 1011;failedreste fail-closed. Le nouveau tour sait que la réponse précédente a été interrompue.
- Sécurité / preuve / source
- Contrat traversant bridge, SDK, API, runtime et moteur; readiness exige
interruption_context=true. Code et tests, sans arrêt acoustique, cloud, PSTN ou humain.
Orchestrateur conversationnelCode
- Rôle / owner
- Choisit protocole, faits, outils, dialogue et handoff. Owner VoiceBot.
- Interfaces / confiance
- STT final, contexte d’interruption, session, RAG, LLM et garde via contrats internes.
- État / dépendances
- Les demandes d’attente répondent sans question. Pendant heatwave-outreach, gas/flood/seveso/fire annoncé interrompt le questionnaire.
- HA / panne
- Hazard+vital choisit le protocole hazard univoque ou une guidance générique fail-safe. Repli borné si modèle ou contexte indisponible.
- Sécurité / preuve / source
- Produit séparé: 31 pass + 1 skipped, 344 pass + 3 skipped sur 347 tests, typecheck vert. Comportement de code uniquement, aucun dialogue humain ou pilote de crise.
Garde déterministeCode / contrat
- Rôle / owner
- Décide autorisation, correction, question, refus ou handoff avant action et restitution.
- Interfaces / confiance
- Proposition LLM, protocole, faits, provenance et état courant.
- État / dépendances
- Version de policy, raison et décision; pas un filtre unique post-LLM.
- HA / panne
- Erreur ou fait manquant = fail-closed/handoff.
- Sécurité / preuve / source
- Décision auditée et déterministe aux zones critiques. Source: runtime map, gates produit.
Graph RAG, corpus et protocolesCode / contenu
- Rôle / owner
- Faits sourcés, navigation de protocole et réponses contrôlées. Owner contenu VoiceBot.
- Interfaces / confiance
- Retrieval interne; endpoint/vector store cible à figer.
- État / dépendances
- Documents, version, source, fraîcheur et embeddings.
- HA / panne
- Source absente = clarification/handoff, jamais fait inventé.
- Sécurité / preuve / source
- Isolation tenant, chiffrement et double revue. Source: README VoiceBot et corpus gouverné.
Sentinelle vocale consultativeLab partiel
- Rôle / owner
- Signal hors bande destiné à la revue humaine, jamais à une décision automatique. Owner supervision vocale et sécurité de crise.
- Interfaces / confiance
- Extrait audio borné vers sidecar loopback authentifié; identifiants opaques. Le transcript principal ne doit pas être envoyé au sidecar.
- État / dépendances
- Derrière
SENTINEL_ENABLED; une divergence Whisper est testée. Le sidecar indiquenot-configuredouverified-models-no-adapteret refuse/analyzeavec 503.
- HA / panne
- Fail-open pour la conversation: perte, timeout ou saturation retire seulement le signal consultatif. Faux positifs et négatifs ne doivent jamais bloquer seuls un appelant.
- Sécurité / preuve / source
- Aucun anti-spoof ou replay opérationnel. Modèles, biais, langues, consentement, rétention et revue humaine restent NO-GO. Sources:
lib/sentinel*.ts,scripts/sentinel-server.py.