roomkit 0.2.0__py3-none-any.whl → 0.2.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
roomkit/AGENTS.md CHANGED
@@ -44,6 +44,7 @@ src/roomkit/
44
44
  │ ├── base.py # Channel ABC
45
45
  │ ├── transport.py # TransportChannel (SMS, Email, etc.)
46
46
  │ ├── ai.py # AIChannel (intelligence layer)
47
+ │ ├── voice.py # VoiceChannel (real-time audio)
47
48
  │ └── websocket.py # WebSocketChannel
48
49
  ├── providers/
49
50
  │ ├── ai/base.py # AIProvider ABC, AIContext, AIResponse
@@ -66,6 +67,22 @@ src/roomkit/
66
67
  ├── realtime/
67
68
  │ ├── base.py # RealtimeBackend ABC, EphemeralEvent
68
69
  │ └── memory.py # InMemoryRealtime
70
+ ├── voice/
71
+ │ ├── __init__.py # Voice subsystem exports
72
+ │ ├── base.py # Shared types (AudioChunk, VoiceSession, callbacks)
73
+ │ ├── events.py # Voice-specific events
74
+ │ ├── stt/ # Speech-to-text providers
75
+ │ │ ├── base.py # STTProvider ABC
76
+ │ │ ├── mock.py # MockSTTProvider
77
+ │ │ └── deepgram.py # DeepgramSTTProvider
78
+ │ ├── tts/ # Text-to-speech providers
79
+ │ │ ├── base.py # TTSProvider ABC
80
+ │ │ ├── mock.py # MockTTSProvider
81
+ │ │ └── elevenlabs.py # ElevenLabsTTSProvider
82
+ │ └── backends/ # Voice transport backends
83
+ │ ├── base.py # VoiceBackend ABC
84
+ │ ├── mock.py # MockVoiceBackend, MockVoiceCall
85
+ │ └── fastrtc.py # FastRTCVoiceBackend (WebRTC)
69
86
  └── identity/
70
87
  ├── base.py # IdentityResolver ABC
71
88
  └── mock.py # MockIdentityResolver
roomkit/_version.py CHANGED
@@ -1 +1 @@
1
- __version__ = "0.2.0"
1
+ __version__ = "0.2.1"
roomkit/llms.txt CHANGED
@@ -1,7 +1,7 @@
1
1
  # RoomKit
2
2
 
3
3
  > RoomKit is a pure async Python library for building multi-channel conversation systems.
4
- > It provides room-based abstractions for managing conversations across SMS, Email, WebSocket,
4
+ > It provides room-based abstractions for managing conversations across SMS, Email, Voice, WebSocket,
5
5
  > AI, and other channels with pluggable storage, identity resolution, hooks, and realtime events.
6
6
  > Python 3.12+, Pydantic 2.x, fully typed, zero required dependencies beyond Pydantic.
7
7
 
@@ -25,7 +25,8 @@ with distributed implementations (Redis, PostgreSQL, etc.) for production deploy
25
25
  ## Channels
26
26
 
27
27
  - [Channel ABC](docs/api/channel.md): Base class for all channels - handle_inbound, deliver, on_event, capabilities
28
- - [Built-in Channels](docs/api/channels.md): SMSChannel, EmailChannel, AIChannel, WebSocketChannel, MessengerChannel, HTTPChannel, WhatsAppChannel
28
+ - [Built-in Channels](docs/api/channels.md): SMSChannel, EmailChannel, AIChannel, WebSocketChannel, VoiceChannel, MessengerChannel, HTTPChannel, WhatsAppChannel
29
+ - [Voice Channel](docs/api/providers-voice.md): VoiceBackend ABC, STTProvider, TTSProvider, DeepgramSTTProvider, ElevenLabsTTSProvider, FastRTCVoiceBackend - real-time voice with barge-in support
29
30
 
30
31
  ## Models
31
32
 
@@ -43,6 +44,7 @@ with distributed implementations (Redis, PostgreSQL, etc.) for production deploy
43
44
  - [Email Providers](docs/api/providers-email.md): EmailProvider ABC, ElasticEmailProvider
44
45
  - [HTTP Providers](docs/api/providers-http.md): HTTPProvider ABC, WebhookHTTPProvider - generic webhook integration
45
46
  - [Messenger Providers](docs/api/providers-messenger.md): MessengerProvider ABC, FacebookMessengerProvider
47
+ - [Voice Providers](docs/api/providers-voice.md): VoiceBackend, STTProvider (Deepgram), TTSProvider (ElevenLabs), FastRTCVoiceBackend
46
48
 
47
49
  ## Optional
48
50
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: roomkit
3
- Version: 0.2.0
3
+ Version: 0.2.1
4
4
  Summary: Pure async Python library for multi-channel conversations
5
5
  Project-URL: Homepage, https://roomkit.live
6
6
  Project-URL: Repository, https://github.com/sboily/roomkit
@@ -92,14 +92,14 @@ Description-Content-Type: text/markdown
92
92
 
93
93
  Pure async Python 3.12+ library for multi-channel conversations.
94
94
 
95
- RoomKit gives you a single abstraction — the **room** — to orchestrate messages across SMS, RCS, Email, WhatsApp, Messenger, WebSocket, HTTP webhooks, and AI channels. Events flow in through any channel, get validated by hooks, and broadcast to every other channel in the room with automatic content transcoding.
95
+ RoomKit gives you a single abstraction — the **room** — to orchestrate messages across SMS, RCS, Email, WhatsApp, Messenger, Voice, WebSocket, HTTP webhooks, and AI channels. Events flow in through any channel, get validated by hooks, and broadcast to every other channel in the room with automatic content transcoding.
96
96
 
97
97
  ```
98
98
  Inbound ──► Hook pipeline ──► Store ──► Broadcast to all channels
99
99
 
100
- ┌──────────┬──────────┬────────┼────────┬────────┐
101
- ▼ ▼ ▼ ▼ ▼ ▼
102
- SMS/RCS WebSocket Email Messenger AI Webhook
100
+ ┌──────────┬──────────┬────────┼────────┬────────┬────────┐
101
+ ▼ ▼ ▼ ▼ ▼ ▼
102
+ SMS/RCS WebSocket Email Messenger Voice AI Webhook
103
103
  ```
104
104
 
105
105
  **Website:** [www.roomkit.live](https://www.roomkit.live) | **Docs:** [www.roomkit.live/docs](https://www.roomkit.live/docs/)
@@ -166,6 +166,7 @@ pip install roomkit[websocket] # WebSocket event source
166
166
  pip install roomkit[anthropic] # Anthropic Claude AI
167
167
  pip install roomkit[openai] # OpenAI GPT
168
168
  pip install roomkit[gemini] # Google Gemini AI
169
+ pip install roomkit[fastrtc] # FastRTC voice backend
169
170
  pip install roomkit[providers] # all transport providers
170
171
  pip install roomkit[all] # everything
171
172
  ```
@@ -193,10 +194,11 @@ Each channel is a thin adapter between the room and an external transport. All c
193
194
  | **WebSocket** | `websocket` | text, rich, media | Real-time with typing, reactions |
194
195
  | **Messenger** | `messenger` | text, rich, media, template | Buttons, quick replies |
195
196
  | **WhatsApp** | `whatsapp` | text, rich, media, location, template | Buttons, templates |
197
+ | **Voice** | `voice` | audio, text | STT/TTS, barge-in, FastRTC streaming |
196
198
  | **HTTP** | `webhook` | text, rich | Generic webhook for any system |
197
199
  | **AI** | `ai` | text, rich | Intelligence layer (not transport) |
198
200
 
199
- Channels have two categories: **transport** (delivers to external systems) and **intelligence** (generates content, like AI).
201
+ Channels have two categories: **transport** (delivers to external systems) and **intelligence** (generates content, like AI). The Voice channel bridges real-time audio with the room-based conversation model.
200
202
 
201
203
  ## Providers
202
204
 
@@ -226,6 +228,14 @@ Providers handle the actual API calls. Every provider has a mock counterpart for
226
228
  | `OpenAIAIProvider` | GPT-4, vision, tools | `roomkit[openai]` |
227
229
  | `GeminiAIProvider` | Gemini, vision, tools | `roomkit[gemini]` |
228
230
 
231
+ ### Voice Providers
232
+
233
+ | Provider | Role | Dependency |
234
+ |----------|------|------------|
235
+ | `DeepgramSTTProvider` | Speech-to-text | `roomkit[httpx]` |
236
+ | `ElevenLabsTTSProvider` | Text-to-speech | `roomkit[httpx]` |
237
+ | `FastRTCVoiceBackend` | WebRTC audio transport | `roomkit[fastrtc]` |
238
+
229
239
  ### Other Providers
230
240
 
231
241
  | Provider | Channel | Dependency |
@@ -551,6 +561,7 @@ src/roomkit/
551
561
  realtime/ Ephemeral events (typing, presence, read receipts)
552
562
  sources/ Event-driven sources (WebSocket, custom)
553
563
  store/ Storage abstraction and in-memory implementation
564
+ voice/ Voice subsystem (stt/, tts/, backends/)
554
565
  ```
555
566
 
556
567
  ## Documentation
@@ -1,5 +1,5 @@
1
1
  roomkit/__init__.py,sha256=B66rQGsO7QhuLoO56fCWy0x0mmO-s8AkCDiv4QbqEzc,11236
2
- roomkit/_version.py,sha256=Zn1KFblwuFHiDRdRAiRnDBRkbPttWh44jKa5zG2ov0E,22
2
+ roomkit/_version.py,sha256=HfjVOrpTnmZ-xVFCYSVmX50EXaBQeJteUHG-PD6iQs8,22
3
3
  roomkit/ai_docs.py,sha256=mnKnwraTD5J38vm7Rm_q-2BYPBh2vXQ7OgT8i-B_niY,2336
4
4
  roomkit/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
5
  roomkit/channels/__init__.py,sha256=FQYB5c_y8dxyB7Os0l7o157-LVlneQrGltxF18HMugk,5023
@@ -123,9 +123,9 @@ roomkit/voice/tts/__init__.py,sha256=rv-e3wk_w7XU-mtHx3c2QeM4u6NWmDlXhIhiLltEe0A
123
123
  roomkit/voice/tts/base.py,sha256=kvY5YgjxZzz_G0V1wNregR_ZpjMjCnjpy3cYQg-6S2M,1696
124
124
  roomkit/voice/tts/elevenlabs.py,sha256=Y9iS7hZw1xEMZWLX_iIdmQUJOU8Xl7SB9eviFd0zrXc,10870
125
125
  roomkit/voice/tts/mock.py,sha256=NUxqmwOepIZAtDV3YYg15G7t8GaMOJdwsQ0ORJmbWBY,1654
126
- roomkit/AGENTS.md,sha256=lETRMzpOTJ7ilhbm3_ufZYu5Y7Q0nTlIEU2-oT2XN8Q,10490
127
- roomkit/llms.txt,sha256=QWeLJaSnt2nKUmmQxChnEFPO675ikMFm0TDHMdEKn8s,4039
128
- roomkit-0.2.0.dist-info/METADATA,sha256=z8NeIwyffJBz0h68vvwgFSuz7VykiT5PYNEQatAafWs,19738
129
- roomkit-0.2.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
130
- roomkit-0.2.0.dist-info/licenses/LICENSE,sha256=GIXnbN1bOyI_7Ydnf7EXBxrFi344wlsdVV4acemzRcE,1070
131
- roomkit-0.2.0.dist-info/RECORD,,
126
+ roomkit/AGENTS.md,sha256=tT_A7GSFhX03s665mUoDhpH-41g6ZLHe5hwQHfjq1Mw,11467
127
+ roomkit/llms.txt,sha256=w2ktaQsxhTtuoGF17_x_xJj_VrRQrxA_BBJNXxowGVU,4390
128
+ roomkit-0.2.1.dist-info/METADATA,sha256=7NzG2a9e6sAmlqmAXlOAupmHdaAA2u0h28JrvAdAP38,20359
129
+ roomkit-0.2.1.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
130
+ roomkit-0.2.1.dist-info/licenses/LICENSE,sha256=GIXnbN1bOyI_7Ydnf7EXBxrFi344wlsdVV4acemzRcE,1070
131
+ roomkit-0.2.1.dist-info/RECORD,,