feat(tts): add websocket transport option for xAI TTS (#548)

* feat(tts): add websocket transport option for xAI TTS

xAI's pipecat service ships two implementations: XAIHttpTTSService
(batch REST, used by the existing xAI integration) and XAITTSService
(realtime WebSocket streaming). This adds a transport field on
XAITTSConfiguration ("http", default, unchanged behavior | "websocket")
and wires the latter into create_tts_service(), so live voice calls can
opt into lower time-to-first-byte streaming instead of request/response.

Originally built and battle-tested independently against v1.41.0 in a
production deployment (7 live Telnyx calls, 2026-07-15) before this PR
existed; ported onto current main and given a config toggle instead of
a second provider entry so it composes with the existing xAI HTTP path
rather than duplicating it.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

* refactor(tts): use websocket-only xAI TTS, drop the transport toggle

---------

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Co-authored-by: Sabiha Khan <sabihak89@gmail.com>
This commit is contained in:
Flowentlabs 2026-07-21 08:00:49 +02:00 committed by GitHub
parent 177bbe6885
commit 94dce42209
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 13 additions and 27 deletions

4
ui/package-lock.json generated
View file

@ -1,12 +1,12 @@
{
"name": "ui",
"version": "1.41.0",
"version": "1.42.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "ui",
"version": "1.41.0",
"version": "1.42.0",
"dependencies": {
"@calcom/embed-react": "^1.5.3",
"@dagrejs/dagre": "^1.1.4",