voice-runtime 1.0.1 → 1.1.0

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.
package/README.md CHANGED
@@ -8,23 +8,29 @@
8
8
  [TVIC](https://github.com/Kkartik14/TVIC), a provider-neutral runtime for realtime
9
9
  voice agents with bring-your-own telephony, speech, model, and synthesis providers.
10
10
 
11
+ New to the package? Start with the [beginner's guide](https://github.com/Kkartik14/TVIC/blob/main/docs/getting-started.md).
12
+ Use the [voice-agent guide](https://github.com/Kkartik14/TVIC/blob/main/docs/building-a-voice-agent.md)
13
+ for application design, [providers](https://github.com/Kkartik14/TVIC/blob/main/docs/providers.md)
14
+ for model setup, and [transports](https://github.com/Kkartik14/TVIC/blob/main/docs/transports.md)
15
+ for browser and phone connections.
16
+
11
17
  ## Status
12
18
 
13
- `voice-runtime@1.0.0` is the public Node.js entry point for the TVIC runtime. It
14
- declares Node.js 20 or newer, ships both ESM and CommonJS entry points, and is
15
- server-side only. The main CI compatibility matrix exercises Node 22, 24, and 26;
16
- Node 20 remains the package engine floor.
19
+ `voice-runtime@1.0.1` is the public Node.js entry point for the TVIC runtime. It
20
+ supports Node.js 22, 24, and 26, ships both ESM and CommonJS entry points, and is
21
+ server-side only. The main CI compatibility matrix exercises all three supported
22
+ lines.
17
23
 
18
24
  Browser audio connects to a Node server through the browser-audio transport
19
25
  adapter. Browser code does not import this package directly.
20
26
 
21
- The stable managed API assembles the STT → LLM → TTS pipeline from a prompt and
27
+ The stable managed API assembles the STT -> LLM -> TTS pipeline from a prompt and
22
28
  provider configuration. The host application still owns its HTTP server,
23
29
  webhook authentication, browser-session authentication, and domain tools.
24
30
 
25
- If you are new to voice systems, read the [beginner guide on GitHub](https://github.com/Kkartik14/TVIC/blob/main/docs/start-here.md)
26
- before using the lower-level examples. The [provider guide](https://github.com/Kkartik14/TVIC/blob/main/docs/providers.md)
27
- explains credentials, model selection, and maturity labels.
31
+ For a system overview, read [How it works](https://github.com/Kkartik14/TVIC/blob/main/docs/how-it-works.md).
32
+ For testing and deployment, read the [testing guide](https://github.com/Kkartik14/TVIC/blob/main/docs/testing.md)
33
+ and [deployment guide](https://github.com/Kkartik14/TVIC/blob/main/docs/deploying.md).
28
34
 
29
35
  ## Install
30
36
 
@@ -48,12 +54,13 @@ The command asks for `y` before writing `.claude/skills/tvic/SKILL.md` for Claud
48
54
  Code and `.agents/skills/tvic/SKILL.md` for Codex and OpenRouter-compatible
49
55
  agents. It does not run automatically during `npm install`, write to a home
50
56
  directory, or overwrite an existing skill without `--force`. Use
51
- `npx voice-runtime skills install --yes` in automation. See the [AI agent skills
52
- guide](https://github.com/Kkartik14/TVIC/blob/main/docs/agent-skills.md).
57
+ `npx voice-runtime skills install --yes` in automation. See the [AI coding-agent
58
+ guide](https://github.com/Kkartik14/TVIC/blob/main/docs/ai-coding-agents.md) and
59
+ [skills reference](https://github.com/Kkartik14/TVIC/blob/main/docs/agent-skills.md).
53
60
 
54
61
  ## Prompt-first agent
55
62
 
56
- The prompt-first API assembles the STT → LLM → TTS pipeline. It still needs an
63
+ The prompt-first API assembles the STT -> LLM -> TTS pipeline. It still needs an
57
64
  authenticated transport `CallHandle`; `npm install` does not create a public
58
65
  audio endpoint or a phone call for your application.
59
66
 
@@ -66,9 +73,9 @@ const agent = createVoiceAgent({
66
73
  telephony: { provider: "web-client-audio" },
67
74
  stt: { provider: "deepgram", apiKey: process.env.DEEPGRAM_API_KEY },
68
75
  llm: {
69
- provider: "openai",
70
- apiKey: process.env.OPENAI_API_KEY,
71
- model: "gpt-4.1-mini",
76
+ provider: "groq",
77
+ apiKey: process.env.GROQ_API_KEY,
78
+ model: "openai/gpt-oss-20b",
72
79
  },
73
80
  tts: {
74
81
  provider: "cartesia",
@@ -153,13 +160,16 @@ outside the realtime critical path.
153
160
 
154
161
  Each stage is configured independently. Built-in options currently include:
155
162
 
163
+ The complete matrix, catalog dates, official provider links, and live-test
164
+ guidance are in the [provider guide](https://github.com/Kkartik14/TVIC/blob/main/docs/providers.md).
165
+
156
166
  - STT: Deepgram, Sarvam, ElevenLabs Scribe, AssemblyAI, and Soniox.
157
- - LLM: OpenAI Responses.
167
+ - LLM: Groq Chat Completions (the reference path) and an optional OpenAI Responses adapter.
158
168
  - TTS: Cartesia and ElevenLabs.
159
169
  - Transport: browser audio and inbound Twilio Media Streams.
160
170
 
161
171
  Maturity is intentionally explicit: Web Client Audio and inbound Twilio Media
162
- Streams are the stable transport paths in `1.0.0`. The paid STT, LLM,
172
+ Streams are the stable transport paths in `1.0.1`. The paid STT, LLM,
163
173
  and TTS adapters are currently `experimental`. Their deterministic protocol
164
174
  coverage passes, but each still needs a credential-gated live-service check
165
175
  before release notes can call it stable. The root export `PROVIDER_STABILITY`
@@ -176,6 +186,7 @@ created.
176
186
  | ElevenLabs | `ELEVENLABS_API_KEY` |
177
187
  | AssemblyAI | `ASSEMBLYAI_API_KEY` |
178
188
  | Soniox | `SONIOX_API_KEY` |
189
+ | Groq | `GROQ_API_KEY` |
179
190
  | OpenAI | `OPENAI_API_KEY` |
180
191
  | Cartesia | `CARTESIA_API_KEY` |
181
192
 
@@ -183,7 +194,7 @@ STT, LLM, and TTS models are independent settings. TTS voice selection is also
183
194
  independent. Built-in TTS can read `CARTESIA_VOICE_ID` or
184
195
  `ELEVENLABS_VOICE_ID` for its voice. For complete provider-specific control,
185
196
  pass a constructed provider instance instead of a built-in configuration object.
186
- Built-in STT and OpenAI-compatible LLM configurations reject models outside the
197
+ Built-in STT and LLM configurations reject models outside the
187
198
  dated TVIC catalog unless `allowUnknownModel: true` is explicitly set.
188
199
 
189
200
  Tools are application-owned functions. Define their schema and executor once,
@@ -207,7 +218,7 @@ const bookAppointment = defineTool<{ date: string }, { booked: boolean }>({
207
218
  const providers = {
208
219
  telephony: { provider: "web-client-audio" as const },
209
220
  stt: { provider: "deepgram" as const, apiKey: process.env.DEEPGRAM_API_KEY },
210
- llm: { provider: "openai" as const, apiKey: process.env.OPENAI_API_KEY },
221
+ llm: { provider: "groq" as const, apiKey: process.env.GROQ_API_KEY },
211
222
  tts: {
212
223
  provider: "cartesia" as const,
213
224
  apiKey: process.env.CARTESIA_API_KEY,
@@ -230,9 +241,13 @@ application's responsibility.
230
241
 
231
242
  Advanced runtime, media, provider, normalized-error, and durable-adapter APIs
232
243
  are exported from the package root. There are no advanced subpath imports in
233
- 1.0.0. This lets a developer start with `createVoiceAgent` and later own
244
+ 1.0.1. This lets a developer start with `createVoiceAgent` and later own
234
245
  the runtime/session/pipeline boundaries without changing package names.
235
246
 
247
+ Read the [voice-agent guide](https://github.com/Kkartik14/TVIC/blob/main/docs/building-a-voice-agent.md)
248
+ for the managed to composable migration path and the [API reference](https://github.com/Kkartik14/TVIC/blob/main/docs/api-reference.md)
249
+ for the root exports.
250
+
236
251
  The host remains responsible for creating authenticated transport connections,
237
252
  owning HTTP/webhook lifecycle, and implementing application-domain tools. TVIC
238
253
  does not automatically create public unauthenticated endpoints or choose a
@@ -244,6 +259,9 @@ The root also exposes the PostgreSQL and Redis durability building blocks. The
244
259
  database drivers are intentionally injected, so install and configure `pg` and
245
260
  `redis` in your application:
246
261
 
262
+ The [persistence guide](https://github.com/Kkartik14/TVIC/blob/main/docs/persistence.md)
263
+ covers migrations, memory scopes, Docker, ownership, and production retention.
264
+
247
265
  ```ts
248
266
  import {
249
267
  createPostgresMemory,