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 +17 -0
- roomkit/_version.py +1 -1
- roomkit/llms.txt +4 -2
- {roomkit-0.2.0.dist-info → roomkit-0.2.1.dist-info}/METADATA +17 -6
- {roomkit-0.2.0.dist-info → roomkit-0.2.1.dist-info}/RECORD +7 -7
- {roomkit-0.2.0.dist-info → roomkit-0.2.1.dist-info}/WHEEL +0 -0
- {roomkit-0.2.0.dist-info → roomkit-0.2.1.dist-info}/licenses/LICENSE +0 -0
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.
|
|
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.
|
|
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
|
|
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=
|
|
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=
|
|
127
|
-
roomkit/llms.txt,sha256=
|
|
128
|
-
roomkit-0.2.
|
|
129
|
-
roomkit-0.2.
|
|
130
|
-
roomkit-0.2.
|
|
131
|
-
roomkit-0.2.
|
|
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,,
|
|
File without changes
|
|
File without changes
|