Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/phonic-enable-watermarking.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@livekit/agents-plugin-phonic': patch
---

Add `enableWatermarking` realtime config option to gate Phonic's inaudible provenance watermark on generated audio.
3 changes: 2 additions & 1 deletion plugins/phonic/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ Set the `PHONIC_API_KEY` environment variable, or pass `apiKey` directly to `Rea
| `apiKey` | `string` | Phonic API key. Falls back to `PHONIC_API_KEY` environment variable |
| `model` | `string` | Model name (default: `merritt`) |
| `phonicAgent` | `string` | Phonic agent name. Options set explicitly here override agent settings |
| `voice` | `string` | Voice ID — `sabrina`, `grant`, `virginia`, `landon`, `eleanor`, `shelby`, `nolan` |
| `voice` | `string` | Voice ID — see [available voices](https://docs.phonic.ai/docs/build/agents/voices) |
| `welcomeMessage` | `string` | Message the agent says when the conversation starts. Ignored when `generateWelcomeMessage` is true |
| `generateWelcomeMessage` | `boolean` | Auto-generate the welcome message (ignores `welcomeMessage`) |
| `project` | `string` | Project name (default: `main`) |
Expand All @@ -109,6 +109,7 @@ Set the `PHONIC_API_KEY` environment variable, or pass `apiKey` directly to `Rea
| `pronunciationDictionary` | `{ word, pronunciation }[]` | Pronunciation entries; words must be unique |
| `templateVariables` | `Record<string, string>` | Variables substituted into the system prompt and welcome message |
| `enableRedaction` | `boolean` | Redact PII/PHI from transcripts and bleep it from audio after the conversation |
| `enableWatermarking` | `boolean` | Embed an inaudible provenance watermark in generated audio. Adds a very small amount of latency |
| `mcpServers` | `string[]` | Names of pre-configured MCP servers to make available (must be unique) |
| `observabilityIntegrations` | `'braintrust'[]` | Observability integrations to forward traces to |
| `configurationEndpoint` | `{ url, headers?, timeout_ms? }` \| `null` | Endpoint the agent calls to fetch per-conversation configuration |
Expand Down
7 changes: 7 additions & 0 deletions plugins/phonic/src/realtime/realtime_model.ts
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ export interface RealtimeModelOptions {
pronunciationDictionary?: Phonic.ConfigOptions['pronunciation_dictionary'];
templateVariables?: Phonic.ConfigOptions['template_variables'];
enableRedaction?: boolean;
enableWatermarking?: boolean;
mcpServers?: string[];
observabilityIntegrations?: Phonic.ConfigOptions['observability_integrations'];
configurationEndpoint?: Phonic.ConfigOptions['configuration_endpoint'];
Expand Down Expand Up @@ -277,6 +278,10 @@ export class RealtimeModel extends llm.RealtimeModel {
* When true, PII/PHI is redacted from transcripts and bleeped from audio after the conversation ends
*/
enableRedaction?: boolean;
/**
* When true, embeds an inaudible provenance watermark in the agent's generated audio. Adds a very small amount of latency
*/
enableWatermarking?: boolean;
/**
* Names of pre-configured MCP servers to make available to the assistant. Names must be unique
*/
Expand Down Expand Up @@ -378,6 +383,7 @@ export class RealtimeModel extends llm.RealtimeModel {
pronunciationDictionary: options.pronunciationDictionary,
templateVariables: options.templateVariables,
enableRedaction: options.enableRedaction,
enableWatermarking: options.enableWatermarking,
mcpServers: options.mcpServers,
observabilityIntegrations: options.observabilityIntegrations,
configurationEndpoint: options.configurationEndpoint,
Expand Down Expand Up @@ -1273,6 +1279,7 @@ export class RealtimeSession extends llm.RealtimeSession {
pronunciation_dictionary: this.options.pronunciationDictionary,
template_variables: this.options.templateVariables,
enable_redaction: this.options.enableRedaction,
enable_watermarking: this.options.enableWatermarking,
mcp_servers: this.options.mcpServers,
observability_integrations: this.options.observabilityIntegrations,
configuration_endpoint: this.options.configurationEndpoint,
Expand Down