supafone-labs 0.4.6 → 0.4.7

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.
Files changed (2) hide show
  1. package/README.md +51 -6
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -44,9 +44,50 @@ const directive = await supafone.whisper(
44
44
  ```
45
45
 
46
46
  Feed `directive` back into your agent however your platform injects context
47
- (Ultravox `inject_message`, Vapi `assistant_override`, ElevenLabs
48
- `contextual_update`, an OpenAI Realtime `session.update`, …). When it's empty,
49
- the agent is doing fine — say nothing.
47
+ (Ultravox `send_data_message`, Vapi `add-message`, ElevenLabs
48
+ `contextual_update`, an OpenAI Realtime `conversation.item.create`, …). When
49
+ it's empty, the agent is doing fine — say nothing. Which frameworks accept a
50
+ silent directive, and the exact primitive for each, is in
51
+ [Supported frameworks](#supported-frameworks) below.
52
+
53
+ ## Supported frameworks
54
+
55
+ Silent injection feeds the live agent hidden guidance it acts on but never
56
+ speaks. Two mechanisms cover every supported framework:
57
+
58
+ - **Mode A — native silent event:** speech-to-speech models take a vendor event
59
+ that adds context without triggering speech.
60
+ - **Mode B — own the LLM:** for STT→LLM→TTS pipelines, Supafone plugs in as the
61
+ LLM and splices a `system`/`developer` message into the prompt.
62
+
63
+ **Possible — 10 frameworks**, each with a real injection door:
64
+
65
+ | Framework | Mode | Exact primitive |
66
+ | --- | :--: | --- |
67
+ | Ultravox | A | `send_data_message` (`urgency:"later"`) — **live/proven today** |
68
+ | OpenAI Realtime | A | `conversation.item.create` (role `system`, no `response.create`) |
69
+ | Grok (xAI) | A | OpenAI-Realtime-compatible item inject |
70
+ | Gemini Live | A | `clientContent` (`turnComplete:false`, role `user`) |
71
+ | ElevenLabs | A | `contextual_update` |
72
+ | Inworld | A | OpenAI-Realtime-compatible item inject |
73
+ | Vapi | A+B | `add-message` (`triggerResponseEnabled:false`) or custom-LLM splice |
74
+ | Retell | B | `system` message into the custom-LLM turn |
75
+ | Deepgram | A+B | `UpdatePrompt`, or own the `think` LLM |
76
+ | LiveKit | B | inject into `chat_ctx` in-process |
77
+
78
+ **Impossible — Bland:** its live-call API is stop/listen/transfer only, with no
79
+ mid-call inject channel and no custom-LLM. Observe and score it, but you cannot
80
+ whisper to it live — a permanent vendor limitation, not a Supafone gap.
81
+ **Cartesia** (a TTS voice) and **Pipecat** (a DIY framework you own end to end)
82
+ are not conversational agents, so there is nothing to inject into.
83
+
84
+ Injection is *possible* for all 10, but managed delivery is wired end-to-end
85
+ **only for Ultravox today**; the other nine are supported via their native
86
+ primitive with managed delivery rolling out / BYO. A live test against any vendor
87
+ needs that vendor's key — free/trial tiers exist for all except OpenAI Realtime
88
+ (paid, no free tier). Full matrix:
89
+ [gitbook/framework-support.md](../gitbook/framework-support.md). *(The npm
90
+ package-page copy updates on the next release.)*
50
91
 
51
92
  ## Spawn a hosted Supafone agent
52
93
 
@@ -80,6 +121,10 @@ import { Supafone } from "supafone-labs";
80
121
  const supafone = new Supafone({
81
122
  apiKey: process.env.SUPAFONE_LABS_API_KEY || process.env.SUPAFONE_API_KEY!,
82
123
  supafoneApiKey: process.env.SUPAFONE_API_KEY!,
124
+ // voiceWatcher is on by default (also accepts voice_watcher; deprecated: labs).
125
+ // Every provisioned agent runs under the Voice Watcher framework (live
126
+ // supervision + QA + call scoring). Set false for a raw agent.
127
+ voiceWatcher: true,
83
128
  // Defaults to https://api.supafone.ai. Override for staging/local tests.
84
129
  // supafoneApiBaseUrl: "http://localhost:8000",
85
130
  });
@@ -228,9 +273,9 @@ npx tsx examples/smoke-hosted-agent.ts
228
273
  ```
229
274
 
230
275
  The script discovers capabilities, presets, and voices; creates a web intake
231
- agent; fetches it back; verifies `provider_accounts.mode` is
232
- `supafone_managed`; verifies no developer provider keys are required; and prints
233
- the returned widget snippet.
276
+ agent; fetches it back; verifies `runtime.telephony.mode` is `supafone_managed`
277
+ and the runtime is managed (`runtime.managed === true`, no developer Ultravox key
278
+ required); and prints the returned widget snippet.
234
279
 
235
280
  ## Hosted voices
236
281
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "supafone-labs",
3
- "version": "0.4.6",
3
+ "version": "0.4.7",
4
4
  "description": "The Supafone agent framework: create hosted voice/web/campaign agents with managed numbers, stages, tools, artifacts, and Supafone Pro watcher built in.",
5
5
  "type": "module",
6
6
  "main": "./dist/cjs/index.js",