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 getSession avant token/fetch; interrupted_previous_assistant traverse 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é.

Ouvrir la fiche composant

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, cancelled ou failed.
État / dépendances
Un cancelled+replayed adopte 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é.

Ouvrir la fiche composant

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
cancelled ne ferme plus 1011; failed reste 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.

Ouvrir la fiche composant

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.

Ouvrir la fiche composant

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.

Ouvrir la fiche composant

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é.

Ouvrir la fiche composant

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 indique not-configured ou verified-models-no-adapter et refuse /analyze avec 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.

Ouvrir la fiche composant