Feature index

Every capability in the system, one line each, with a link to where it is documented in depth. If it is not on this page, Elle does not do it.

Voice conversation

FeatureWhat it doesWhere
Instant greetingDeterministic opening line the moment the call connects; no LLM round-trip, no dead airVoice pipeline
Uninterruptible greetingThree coordinated layers guarantee the opening message always plays to the endVoice pipeline
Sentence streamingElle starts speaking the first finished sentence while the rest is still generating; ≈1s to first wordVoice pipeline
Barge-inCallers interrupt mid-sentence; one turnSeq increment cancels LLM, TTS, and playback togetherVoice pipeline
Echo suppressionElle's own line-echo never registers as caller speech; exact matching mid-call, loose matching during the greeting onlyVoice pipeline
Utterance mergingA caller talking in bursts gets one coherent answer, not stacked replies; one LLM call instead of severalVoice pipeline
Drift-corrected pacingAudio ships to Twilio in exact 20 ms frames on a wall-clock schedule; no stutter, no slurVoice pipeline
Turn-failure recoveryA provider hiccup gets one fast retry, then a spoken apology in the caller's language; the call never dropsVoice pipeline
Warm TTS socketsOne WebSocket per voice for the whole call, pre-warmed while the LLM thinksVoice pipeline

Languages

FeatureWhat it doesWhere
Bilingual calls (EN/ES)Code-switching STT tags every word; the caller changes language mid-sentence and Elle followsBilingual mode
Per-language house voiceEnglish and Spanish Aura voices, chosen per reply chunk; Spanish socket connects lazilyBilingual mode
Greeting inviteThe greeting closes with one Spanish sentence, spoken by the Spanish voiceBilingual mode
Mirror ruleOne persona instruction keeps every reply in exactly the caller's language, on every channelBilingual mode

Knowledge and persona

FeatureWhat it doesWhere
Grounded answersEverything about the owner comes from the markdown knowledge base; anything absent is 'I don't know'Data and knowledge
BM25 retrievalLexical RAG with no vector database; instant, offline, debuggable by readingData and knowledge
Inline grounding on the phoneThe whole knowledge base rides the (cached) prompt, removing a retrieval round-trip per turnCost engineering
Caller memoryPer-number facts recalled on the next contact, on any channelDatabase
Identity hard ruleStored notes are never the current speaker's identity; no name until stated in this conversationBooking

Booking and SMS

FeatureWhat it doesWhere
Tentative bookingFree/busy-checked calendar holds, explicitly pending until the owner confirmsBooking
Verbal SMS consentFull carrier-required consent script spoken on-call; a clear yes triggers the confirmation text and the audit ledgerBooking
Bookings by textThe SMS agent checks, reschedules, and cancels bookings conversationallyChannels
Owner-directed outreachThe owner names a person and topic on the private channel; Elle sends a compliant first text and recognizes the replyChannels

Web

FeatureWhat it doesWhere
Website chatSame brain and grounding as the phone, embedded on the owner's siteChannels
Live call pairingA spoken code joins a browser: transcripts stream both ways in real timeChannels
Typed input into callsMessages typed in the paired browser become spoken turns Elle answers out loudChannels
On-screen visualsshow_work and show_choices put screenshots and tappable options on the paired screenChannels

Operations and control

FeatureWhat it doesWhere
Runtime architecture switchThe owner flips cascade/demo voice stacks from the private channel; takes effect next call, survives restartsArchitecture
Prompt caching (3 layers)Cross-call static block, per-call conversation breakpoint, turn batching; ~85% off the LLM lineCost engineering
Owner call report"Has anyone called?" on the private intake channel returns each call with duration, repeat-caller history, per-call notes, and any bookingChannels
Live status probes/admin/status proves Calendar and the intake bot actually work, not just that they are configuredOperations
Call log with transcripts/admin/calls answers 'who called?' without log spelunkingOperations
Token telemetry[llm] lines log input/cacheRead/cacheWrite/output per call; caching is verified, not assumedCost engineering
Offline verification suitesSeven fake-backed suites assert the orchestration before any deployCode reference
Call recording (off by default)App-side stereo WAV + transcript sidecar to GCS; consent-firstCompliance

Protection

FeatureWhat it doesWhere
Webhook signaturesEvery Twilio webhook validated; forgeries droppedSecurity
Media-stream tokenThe raw audio socket requires a fresh HMAC token minted per callSecurity
API rate limitsPer-IP windows on chat and pairing; message length capsSecurity
Repeat-caller tiersNormal → limited → blocked by call count; blocked calls never start the paid pipelineSecurity
Silent-call hangupA caller who says nothing for 75s (a robocall probe) is disconnectedSecurity
Global duration capNo call can exceed the ceiling (default 10 min); autodialers cannot run an open-ended billSecurity
Two-gate owner channelSecret header plus owner-id allowlist; everyone else is silently droppedSecurity
Timing-safe adminOwner views 404 without the token; comparison closes the timing channelSecurity