@plumbus/voice-livekit 0.1.2

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 (101) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.md +146 -0
  3. package/dist/.tsbuildinfo +1 -0
  4. package/dist/client/client-noise-cancellation.d.ts +15 -0
  5. package/dist/client/client-noise-cancellation.d.ts.map +1 -0
  6. package/dist/client/client-noise-cancellation.js +54 -0
  7. package/dist/client/client-noise-cancellation.js.map +1 -0
  8. package/dist/client/livekit-session.d.ts +21 -0
  9. package/dist/client/livekit-session.d.ts.map +1 -0
  10. package/dist/client/livekit-session.js +206 -0
  11. package/dist/client/livekit-session.js.map +1 -0
  12. package/dist/client/pcm-resample.d.ts +7 -0
  13. package/dist/client/pcm-resample.d.ts.map +1 -0
  14. package/dist/client/pcm-resample.js +87 -0
  15. package/dist/client/pcm-resample.js.map +1 -0
  16. package/dist/client/session-helpers.d.ts +19 -0
  17. package/dist/client/session-helpers.d.ts.map +1 -0
  18. package/dist/client/session-helpers.js +70 -0
  19. package/dist/client/session-helpers.js.map +1 -0
  20. package/dist/client.d.ts +5 -0
  21. package/dist/client.d.ts.map +1 -0
  22. package/dist/client.js +4 -0
  23. package/dist/client.js.map +1 -0
  24. package/dist/cost/record-livekit-transport.d.ts +9 -0
  25. package/dist/cost/record-livekit-transport.d.ts.map +1 -0
  26. package/dist/cost/record-livekit-transport.js +29 -0
  27. package/dist/cost/record-livekit-transport.js.map +1 -0
  28. package/dist/credentials.d.ts +3 -0
  29. package/dist/credentials.d.ts.map +1 -0
  30. package/dist/credentials.js +8 -0
  31. package/dist/credentials.js.map +1 -0
  32. package/dist/descriptor.d.ts +3 -0
  33. package/dist/descriptor.d.ts.map +1 -0
  34. package/dist/descriptor.js +14 -0
  35. package/dist/descriptor.js.map +1 -0
  36. package/dist/index.d.ts +15 -0
  37. package/dist/index.d.ts.map +1 -0
  38. package/dist/index.js +12 -0
  39. package/dist/index.js.map +1 -0
  40. package/dist/noise-cancellation/create-inbound-audio-stream.d.ts +9 -0
  41. package/dist/noise-cancellation/create-inbound-audio-stream.d.ts.map +1 -0
  42. package/dist/noise-cancellation/create-inbound-audio-stream.js +13 -0
  43. package/dist/noise-cancellation/create-inbound-audio-stream.js.map +1 -0
  44. package/dist/noise-cancellation/oss/client-rnnoise-processor.d.ts +2 -0
  45. package/dist/noise-cancellation/oss/client-rnnoise-processor.d.ts.map +1 -0
  46. package/dist/noise-cancellation/oss/client-rnnoise-processor.js +2 -0
  47. package/dist/noise-cancellation/oss/client-rnnoise-processor.js.map +1 -0
  48. package/dist/noise-cancellation/oss/dtln-frame-processor.d.ts +10 -0
  49. package/dist/noise-cancellation/oss/dtln-frame-processor.d.ts.map +1 -0
  50. package/dist/noise-cancellation/oss/dtln-frame-processor.js +118 -0
  51. package/dist/noise-cancellation/oss/dtln-frame-processor.js.map +1 -0
  52. package/dist/noise-cancellation/oss/rnnoise-frame-processor.d.ts +9 -0
  53. package/dist/noise-cancellation/oss/rnnoise-frame-processor.d.ts.map +1 -0
  54. package/dist/noise-cancellation/oss/rnnoise-frame-processor.js +149 -0
  55. package/dist/noise-cancellation/oss/rnnoise-frame-processor.js.map +1 -0
  56. package/dist/noise-cancellation/resolve-noise-cancellation.d.ts +5 -0
  57. package/dist/noise-cancellation/resolve-noise-cancellation.d.ts.map +1 -0
  58. package/dist/noise-cancellation/resolve-noise-cancellation.js +38 -0
  59. package/dist/noise-cancellation/resolve-noise-cancellation.js.map +1 -0
  60. package/dist/pricing.d.ts +8 -0
  61. package/dist/pricing.d.ts.map +1 -0
  62. package/dist/pricing.js +19 -0
  63. package/dist/pricing.js.map +1 -0
  64. package/dist/runtime/consume-audio-stream.d.ts +3 -0
  65. package/dist/runtime/consume-audio-stream.d.ts.map +1 -0
  66. package/dist/runtime/consume-audio-stream.js +15 -0
  67. package/dist/runtime/consume-audio-stream.js.map +1 -0
  68. package/dist/runtime/livekit-agent-worker.d.ts +32 -0
  69. package/dist/runtime/livekit-agent-worker.d.ts.map +1 -0
  70. package/dist/runtime/livekit-agent-worker.js +491 -0
  71. package/dist/runtime/livekit-agent-worker.js.map +1 -0
  72. package/dist/runtime/optional-cloud-registrations.d.ts +12 -0
  73. package/dist/runtime/optional-cloud-registrations.d.ts.map +1 -0
  74. package/dist/runtime/optional-cloud-registrations.js +67 -0
  75. package/dist/runtime/optional-cloud-registrations.js.map +1 -0
  76. package/dist/runtime/parse-participant-context.d.ts +16 -0
  77. package/dist/runtime/parse-participant-context.d.ts.map +1 -0
  78. package/dist/runtime/parse-participant-context.js +61 -0
  79. package/dist/runtime/parse-participant-context.js.map +1 -0
  80. package/dist/runtime/voice-room-worker.d.ts +55 -0
  81. package/dist/runtime/voice-room-worker.d.ts.map +1 -0
  82. package/dist/runtime/voice-room-worker.js +151 -0
  83. package/dist/runtime/voice-room-worker.js.map +1 -0
  84. package/dist/transport/livekit-transport.d.ts +37 -0
  85. package/dist/transport/livekit-transport.d.ts.map +1 -0
  86. package/dist/transport/livekit-transport.js +324 -0
  87. package/dist/transport/livekit-transport.js.map +1 -0
  88. package/dist/types.d.ts +77 -0
  89. package/dist/types.d.ts.map +1 -0
  90. package/dist/types.js +2 -0
  91. package/dist/types.js.map +1 -0
  92. package/dist/worker.d.ts +4 -0
  93. package/dist/worker.d.ts.map +1 -0
  94. package/dist/worker.js +3 -0
  95. package/dist/worker.js.map +1 -0
  96. package/instructions/README.md +27 -0
  97. package/instructions/agent-worker.md +56 -0
  98. package/instructions/client-session.md +46 -0
  99. package/instructions/framework.md +111 -0
  100. package/instructions/noise-cancellation.md +55 -0
  101. package/package.json +83 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"livekit-transport.js","sourceRoot":"","sources":["../../src/transport/livekit-transport.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ import type { ContextDependencies } from '@plumbus/core';
2
+ import type { VoiceProviderRegistry } from '@plumbus/voice';
3
+ import type { TransportProvider, VoiceDefinition, VoiceProvidersConfig, VoiceSessionBudgetConfig } from '@plumbus/voice/provider-kit';
4
+ /** Session metadata returned by LiveKit `mintSession`. */
5
+ export interface LiveKitSessionMetadata {
6
+ url: string;
7
+ room: string;
8
+ token: string;
9
+ identity: string;
10
+ audioFormat: string;
11
+ audioTrackName: string;
12
+ mode: string;
13
+ }
14
+ export interface ConnectLiveKitWorkerArgs {
15
+ voiceName: string;
16
+ room?: string;
17
+ identity?: string;
18
+ token?: string;
19
+ participantName?: string;
20
+ metadata?: string;
21
+ attributes?: Record<string, string>;
22
+ audioTrackName?: string;
23
+ agentAudioTrackName?: string;
24
+ dataTopic?: string;
25
+ signal?: AbortSignal;
26
+ onAudio?: (audio: Uint8Array) => Promise<void> | void;
27
+ onData?: (payload: unknown) => Promise<void> | void;
28
+ }
29
+ /** Opaque room handle — concrete LiveKit `Room` stays in the transport impl. */
30
+ export interface LiveKitWorkerRoom {
31
+ disconnect(): Promise<void>;
32
+ }
33
+ export interface LiveKitWorkerConnection {
34
+ room: LiveKitWorkerRoom;
35
+ disconnect(): Promise<void>;
36
+ }
37
+ export interface LiveKitTransportProvider extends TransportProvider {
38
+ connectWorker(args: ConnectLiveKitWorkerArgs): Promise<LiveKitWorkerConnection>;
39
+ publishAudio(audio: Uint8Array): Promise<void>;
40
+ sendData(payload: unknown): Promise<void>;
41
+ }
42
+ export interface MintLiveKitParticipantTokenArgs {
43
+ apiKey: string;
44
+ apiSecret: string;
45
+ room: string;
46
+ identity: string;
47
+ participantName?: string;
48
+ ttlSeconds?: number;
49
+ metadata?: string;
50
+ attributes?: Record<string, string>;
51
+ agentName?: string;
52
+ agentMetadata?: string;
53
+ }
54
+ export interface StartVoiceAgentWorkerOptions {
55
+ voices: VoiceDefinition[];
56
+ providers: VoiceProvidersConfig;
57
+ createDependencies: (auth: {
58
+ userId: string;
59
+ tenantId?: string;
60
+ roles: string[];
61
+ scopes: string[];
62
+ provider: string;
63
+ }) => ContextDependencies;
64
+ signal?: AbortSignal;
65
+ registry?: VoiceProviderRegistry;
66
+ sessionBudget?: VoiceSessionBudgetConfig;
67
+ agentName?: string;
68
+ wsURL?: string;
69
+ apiKey?: string;
70
+ apiSecret?: string;
71
+ bootstrapModule?: string;
72
+ }
73
+ export interface VoiceAgentWorkerHandle {
74
+ started: boolean;
75
+ stop(): Promise<void>;
76
+ }
77
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ export { bootstrapVoiceAgentConfigsFromModule, createVoiceAgentEntry, PLUMBUS_VOICE_AGENT_BOOTSTRAP_MODULE_ENV, startVoiceAgentWorker, stopActiveVoiceAgentSessions, } from './runtime/livekit-agent-worker.js';
2
+ export type { JoinVoiceRoomSessionOptions, StartVoiceWorkerOptions, VoiceRoomSessionHandle, VoiceWorkerHandle, } from './runtime/voice-room-worker.js';
3
+ export { joinVoiceRoomSession, startVoiceWorker, } from './runtime/voice-room-worker.js';
4
+ //# sourceMappingURL=worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oCAAoC,EACpC,qBAAqB,EACrB,wCAAwC,EACxC,qBAAqB,EACrB,4BAA4B,GAC7B,MAAM,mCAAmC,CAAC;AAC3C,YAAY,EACV,2BAA2B,EAC3B,uBAAuB,EACvB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,gCAAgC,CAAC"}
package/dist/worker.js ADDED
@@ -0,0 +1,3 @@
1
+ export { bootstrapVoiceAgentConfigsFromModule, createVoiceAgentEntry, PLUMBUS_VOICE_AGENT_BOOTSTRAP_MODULE_ENV, startVoiceAgentWorker, stopActiveVoiceAgentSessions, } from './runtime/livekit-agent-worker.js';
2
+ export { joinVoiceRoomSession, startVoiceWorker, } from './runtime/voice-room-worker.js';
3
+ //# sourceMappingURL=worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker.js","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oCAAoC,EACpC,qBAAqB,EACrB,wCAAwC,EACxC,qBAAqB,EACrB,4BAA4B,GAC7B,MAAM,mCAAmC,CAAC;AAO3C,OAAO,EACL,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,gCAAgC,CAAC"}
@@ -0,0 +1,27 @@
1
+ # @plumbus/voice-livekit — Agent Instructions
2
+
3
+ **After `pnpm add @plumbus/voice-livekit`, open this file first:**
4
+
5
+ `node_modules/@plumbus/voice-livekit/instructions/README.md`
6
+
7
+ Then read the topic file for your task. Do not invent LiveKit wiring from memory.
8
+
9
+ | File | When to read | Exact consumer path |
10
+ |---|---|---|
11
+ | [framework.md](./framework.md) | Install, peers, registration, env, exports | `node_modules/@plumbus/voice-livekit/instructions/framework.md` |
12
+ | [client-session.md](./client-session.md) | Browser PTT / continuous session | `node_modules/@plumbus/voice-livekit/instructions/client-session.md` |
13
+ | [agent-worker.md](./agent-worker.md) | `plumbus voice worker` / agent entry | `node_modules/@plumbus/voice-livekit/instructions/agent-worker.md` |
14
+ | [noise-cancellation.md](./noise-cancellation.md) | Krisp / RNNoise / DTLN on LiveKit | `node_modules/@plumbus/voice-livekit/instructions/noise-cancellation.md` |
15
+
16
+ Parent voice recipes (always install `@plumbus/voice` too):
17
+ `node_modules/@plumbus/voice/instructions/README.md`
18
+
19
+ Package overview: [../README.md](../README.md). Concept docs: `docs/voice/livekit-continuous-voice.md`.
20
+
21
+ ## Critical rules
22
+
23
+ - **Install only for `transport.provider: 'livekit'`** — built-in `websocket` stays on `@plumbus/voice`.
24
+ - **Register explicitly** — `createProviderRegistry({ transport: { livekit: LIVEKIT_TRANSPORT_REGISTRATION } })` and pass that registry to routes/workers. Install alone does **not** register.
25
+ - **Browser** → `@plumbus/voice-livekit/client`. **Worker** → `@plumbus/voice-livekit` or `./worker`.
26
+ - **CLI/workers** need `app/voice/registry.ts` exporting `voiceProviderRegistry`.
27
+ - **Business logic stays in `brain.run` / capabilities** — this package adapts LiveKit rooms and audio I/O only.
@@ -0,0 +1,56 @@
1
+ # LiveKit agent worker — Agent Recipe
2
+
3
+ Use this when starting a LiveKit Agents worker for continuous/room voice (`plumbus voice worker` or programmatic start).
4
+
5
+ **Exact path in a consumer app:**
6
+
7
+ `node_modules/@plumbus/voice-livekit/instructions/agent-worker.md`
8
+
9
+ ## Rules
10
+
11
+ 1. Import worker APIs from `@plumbus/voice-livekit` or `@plumbus/voice-livekit/worker`.
12
+ 2. Pass an explicit `registry` that includes `LIVEKIT_TRANSPORT_REGISTRATION` (and any STT/TTS registrations the voice uses).
13
+ 3. CLI/workers load `app/voice/registry.ts` via `loadAppVoiceRegistry()` — export `voiceProviderRegistry` there. There is no soft auto-register.
14
+ 4. Require `LIVEKIT_URL`, `LIVEKIT_API_KEY`, `LIVEKIT_API_SECRET`.
15
+
16
+ ## CLI
17
+
18
+ ```bash
19
+ plumbus voice worker
20
+ ```
21
+
22
+ The command lives in `@plumbus/core` and dynamically imports this package. Missing package → `voice.provider_package_missing`. Missing `app/voice/registry.ts` → hard failure (no fallback registry).
23
+
24
+ ## Programmatic entry
25
+
26
+ ```ts
27
+ import { startVoiceAgentWorker, createVoiceAgentEntry } from '@plumbus/voice-livekit';
28
+ // or: from '@plumbus/voice-livekit/worker'
29
+ ```
30
+
31
+ Use `createVoiceAgentEntry` for the LiveKit Agents entrypoint; `startVoiceAgentWorker` for the process bootstrap used by the CLI.
32
+
33
+ ## App registry (required)
34
+
35
+ ```ts
36
+ // app/voice/registry.ts
37
+ import { createProviderRegistry } from '@plumbus/voice';
38
+ import { LIVEKIT_TRANSPORT_REGISTRATION } from '@plumbus/voice-livekit';
39
+ // + STT/TTS *_REGISTRATION imports for providers the voice uses
40
+
41
+ export const voiceProviderRegistry = createProviderRegistry({
42
+ transport: { livekit: LIVEKIT_TRANSPORT_REGISTRATION },
43
+ // stt: { … }, tts: { … },
44
+ });
45
+ ```
46
+
47
+ ## Related recipes
48
+
49
+ | Task | Read |
50
+ |---|---|
51
+ | Install / register transport | [`framework.md`](./framework.md) |
52
+ | Browser session | [`client-session.md`](./client-session.md) |
53
+ | Agent NC | [`noise-cancellation.md`](./noise-cancellation.md) |
54
+ | Parent voice defining/routes | `node_modules/@plumbus/voice/instructions/defining-voices.md` |
55
+
56
+ Concept docs (monorepo): `docs/voice/livekit-continuous-voice.md`.
@@ -0,0 +1,46 @@
1
+ # LiveKit browser session — Agent Recipe
2
+
3
+ Use this after installing `@plumbus/voice-livekit` when wiring a **browser** PTT or continuous client.
4
+
5
+ **Exact path in a consumer app:**
6
+
7
+ `node_modules/@plumbus/voice-livekit/instructions/client-session.md`
8
+
9
+ ## Rules
10
+
11
+ 1. Import session helpers from **`@plumbus/voice-livekit/client` only** — never import the package root into a browser bundle.
12
+ 2. Install `livekit-client` for the browser (optional peer).
13
+ 3. Mint tokens via Plumbus `POST /api/voice/:name/token` — do not hand-roll LiveKit JWTs for Plumbus voice sessions.
14
+ 4. Client noise cancellation is applied by the session helper when the token payload includes serialized NC options.
15
+
16
+ ## Minimal wire-up
17
+
18
+ ```ts
19
+ import { createLiveKitVoiceSession } from '@plumbus/voice-livekit/client';
20
+
21
+ const session = await createLiveKitVoiceSession({
22
+ // fields from /api/voice/:name/token response (url, token, noiseCancellation, …)
23
+ });
24
+ await session.connect();
25
+ // … push-to-talk / continuous UI …
26
+ await session.disconnect();
27
+ ```
28
+
29
+ Optional explicit client NC:
30
+
31
+ ```ts
32
+ import { applyClientNoiseCancellation } from '@plumbus/voice-livekit/client';
33
+ ```
34
+
35
+ Prefer letting `createLiveKitVoiceSession` apply NC from the token response.
36
+
37
+ ## Related recipes
38
+
39
+ | Task | Read |
40
+ |---|---|
41
+ | Install / register transport | [`framework.md`](./framework.md) |
42
+ | Agent worker / `plumbus voice worker` | [`agent-worker.md`](./agent-worker.md) |
43
+ | Noise cancellation matrix | [`noise-cancellation.md`](./noise-cancellation.md) |
44
+ | Parent voice security / routes | `node_modules/@plumbus/voice/instructions/security.md` |
45
+
46
+ Concept docs (monorepo): `docs/voice/livekit-continuous-voice.md`.
@@ -0,0 +1,111 @@
1
+ # @plumbus/voice-livekit — Framework
2
+
3
+ **Exact path in a consumer app:** `node_modules/@plumbus/voice-livekit/instructions/framework.md`
4
+
5
+ Index: `node_modules/@plumbus/voice-livekit/instructions/README.md`
6
+
7
+ `@plumbus/voice-livekit` is the **LiveKit transport + agent worker + browser session** adapter for `@plumbus/voice`. Install it when a voice uses `transport.provider: 'livekit'`.
8
+
9
+ ## When not to use
10
+
11
+ - Do **not** install this package for `transport.provider: 'websocket'` — WebSocket transport stays built into `@plumbus/voice`.
12
+ - Do **not** import `@livekit/*` / `livekit-client` / `livekit-server-sdk` directly for Plumbus voice sessions; use this package's exports (`./client`, agent worker, registration).
13
+ - Skip it for browser-only PTT prototypes that should stay on `websocket` + `web-speech` + `browser-tts`.
14
+
15
+ **Peers (copy literals):**
16
+
17
+ ```json
18
+ "@plumbus/core": "0.6.x",
19
+ "@plumbus/voice": "0.4.x"
20
+ ```
21
+
22
+ Optional peers: `livekit-client` `^2.0.0` (browser), `@livekit/krisp-noise-filter` `^0.4.0` (client Krisp), `fastify` `^5.0.0`.
23
+
24
+ ## Install
25
+
26
+ ```bash
27
+ pnpm add @plumbus/voice @plumbus/voice-livekit
28
+ ```
29
+
30
+ For browser PTT/continuous clients also install `livekit-client`.
31
+
32
+ ## Quick start
33
+
34
+ ```ts
35
+ import { createProviderRegistry, defineVoice, registerVoiceRoutes } from '@plumbus/voice';
36
+ import { LIVEKIT_TRANSPORT_REGISTRATION } from '@plumbus/voice-livekit';
37
+
38
+ const registry = createProviderRegistry({
39
+ transport: { livekit: LIVEKIT_TRANSPORT_REGISTRATION },
40
+ });
41
+
42
+ export const supportVoice = defineVoice({
43
+ name: 'support',
44
+ // …
45
+ transport: { provider: 'livekit', mode: 'continuous' },
46
+ brain: { async run(ctx, args) { /* app logic */ return 'ok'; } },
47
+ });
48
+ ```
49
+
50
+ Register `LIVEKIT_TRANSPORT_REGISTRATION` with `createProviderRegistry({ transport: { livekit: LIVEKIT_TRANSPORT_REGISTRATION } })`.
51
+
52
+ ## Subpaths
53
+
54
+ | Import | Exports |
55
+ |---|---|
56
+ | `@plumbus/voice-livekit` | `LIVEKIT_TRANSPORT_REGISTRATION`, `mintLiveKitParticipantToken`, agent worker APIs, NC helpers |
57
+ | `@plumbus/voice-livekit/client` | `createLiveKitVoiceSession`, `applyClientNoiseCancellation` |
58
+ | `@plumbus/voice-livekit/worker` | `startVoiceAgentWorker`, `createVoiceAgentEntry`, bootstrap helpers |
59
+
60
+ **Browser critical:** `@plumbus/voice-livekit/client` must not import `@plumbus/core` or `@plumbus/voice` package roots. It uses `@plumbus/core/errors` and `@plumbus/voice/noise-cancellation`. Importing the roots pulls the CLI / server runtime into the Next client graph and breaks Turbopack.
61
+
62
+ ## Key exports
63
+
64
+ | Export | Role |
65
+ |---|---|
66
+ | `LIVEKIT_TRANSPORT_REGISTRATION` | Factory + descriptor for the provider registry |
67
+ | `LIVEKIT_TRANSPORT_DESCRIPTOR` | Catalog entry (`id: 'livekit'`) |
68
+ | `recordLiveKitTransportCost` / `LIVEKIT_VOICE_PRICING` | Transport cost helper + pricing |
69
+ | `parseLiveKitParticipantContext` | Participant metadata → brain input |
70
+ | `startVoiceAgentWorker` / `createVoiceAgentEntry` | LiveKit Agents worker entry |
71
+ | `createLiveKitVoiceSession` | Browser room session (`./client`) |
72
+
73
+ ## Env vars
74
+
75
+ | Variable | Required | Purpose |
76
+ |---|---|---|
77
+ | `LIVEKIT_URL` | yes | LiveKit WebSocket URL (`wss://…`) |
78
+ | `LIVEKIT_API_KEY` | yes | API key for token minting / worker |
79
+ | `LIVEKIT_API_SECRET` | yes | API secret for token minting / worker |
80
+ | `LIVEKIT_LOG_LEVEL` | no | Agent logger level |
81
+ | `PLUMBUS_VOICE_AGENT_BOOTSTRAP_MODULE` | child workers | Absolute path to bootstrap module |
82
+
83
+ ## CLI commands
84
+
85
+ | Command | Requires this package |
86
+ |---|---|
87
+ | `plumbus voice worker` | yes — agent dispatch and room-join both need the LiveKit transport |
88
+
89
+ The command lives in `@plumbus/core` and dynamically imports this package for `startVoiceAgentWorker` / `joinVoiceRoomSession`. Without it installed, the CLI fails with `voice.provider_package_missing` and an install hint.
90
+
91
+ ## Read next (by task)
92
+
93
+ | Task | File |
94
+ |---|---|
95
+ | Browser session | [`client-session.md`](./client-session.md) |
96
+ | Agent worker / CLI | [`agent-worker.md`](./agent-worker.md) |
97
+ | Noise cancellation | [`noise-cancellation.md`](./noise-cancellation.md) |
98
+
99
+ ## Docs
100
+
101
+ - `docs/voice/livekit-continuous-voice.md`, `docs/voice/transports.md`, `docs/voice/noise-cancellation.md`
102
+ - `docs/upgrading-voice-provider-packages.md` — the three moved import paths (`./client` session + sync agent helpers)
103
+ - Package overview: [`../README.md`](../README.md)
104
+
105
+ ## Framework-first
106
+
107
+ Keep app logic in Plumbus primitives (`defineCapability`, `ctx.*`, voice `brain`). This package only adapts LiveKit rooms, tokens, and audio pipelines to the voice transport contract.
108
+
109
+ ## Ecosystem
110
+
111
+ `@plumbus/voice-livekit` is one package in the Plumbus framework. For the full list of packages and when to use each, see the [Plumbus monorepo README](https://github.com/plumbus-framework/plumbus#packages).
@@ -0,0 +1,55 @@
1
+ # LiveKit noise cancellation — Agent Recipe
2
+
3
+ Use this when configuring `transport.options.noiseCancellation` for a LiveKit voice.
4
+
5
+ **Exact path in a consumer app:**
6
+
7
+ `node_modules/@plumbus/voice-livekit/instructions/noise-cancellation.md`
8
+
9
+ Parent overview (same config shape, package boundary):
10
+ `node_modules/@plumbus/voice/instructions/noise-cancellation.md`
11
+
12
+ ## Rules
13
+
14
+ 1. **One NC chain per session** — never stack client + agent NC on the same path.
15
+ 2. Client apply: `applyClientNoiseCancellation` from `@plumbus/voice-livekit/client`.
16
+ 3. Agent inbound: `createInboundAudioStream` / `resolveAgentNoiseCancellationOption` from `@plumbus/voice-livekit`.
17
+ 4. Parse/serialize helpers stay on `@plumbus/voice`; engines live here.
18
+
19
+ ## Config
20
+
21
+ ```ts
22
+ transport: {
23
+ provider: 'livekit',
24
+ options: {
25
+ noiseCancellation: {
26
+ placement: 'off' | 'client' | 'agent',
27
+ engine?: 'krisp' | 'dtln' | 'rnnoise',
28
+ model?: 'standard' | 'bvc' | 'lite',
29
+ dtlnModelDir?: string, // agent + dtln only
30
+ },
31
+ },
32
+ }
33
+ ```
34
+
35
+ ## Matrix
36
+
37
+ | placement | engine | model | Extra package | LiveKit Cloud |
38
+ |---|---|---|---|---|
39
+ | `client` | `krisp` | `standard` \| `bvc` | `@livekit/krisp-noise-filter` | Required |
40
+ | `client` | `rnnoise` | `standard` \| `lite` | `@shiguredo/rnnoise-wasm` | No |
41
+ | `agent` | `krisp` | `standard` \| `bvc` | `@livekit/noise-cancellation-node` | Required |
42
+ | `agent` | `dtln` | `standard` | ONNX Runtime + model dir | No |
43
+ | `agent` | `rnnoise` | `standard` \| `lite` | `@shiguredo/rnnoise-wasm` | No |
44
+
45
+ Token responses include serialized NC so `createLiveKitVoiceSession()` can apply client engines automatically.
46
+
47
+ ## Related recipes
48
+
49
+ | Task | Read |
50
+ |---|---|
51
+ | Browser session | [`client-session.md`](./client-session.md) |
52
+ | Agent worker | [`agent-worker.md`](./agent-worker.md) |
53
+ | Install / register | [`framework.md`](./framework.md) |
54
+
55
+ Concept docs (monorepo): `docs/voice/noise-cancellation.md`.
package/package.json ADDED
@@ -0,0 +1,83 @@
1
+ {
2
+ "name": "@plumbus/voice-livekit",
3
+ "version": "0.1.2",
4
+ "description": "LiveKit transport, agent worker, and browser session helpers for @plumbus/voice.",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "default": "./dist/index.js"
12
+ },
13
+ "./client": {
14
+ "types": "./dist/client.d.ts",
15
+ "default": "./dist/client.js"
16
+ },
17
+ "./worker": {
18
+ "types": "./dist/worker.d.ts",
19
+ "default": "./dist/worker.js"
20
+ }
21
+ },
22
+ "files": [
23
+ "dist",
24
+ "instructions",
25
+ "README.md",
26
+ "CHANGELOG.md"
27
+ ],
28
+ "repository": {
29
+ "type": "git",
30
+ "url": "https://github.com/plumbus-framework/plumbus.git",
31
+ "directory": "packages/voice-livekit"
32
+ },
33
+ "publishConfig": {
34
+ "access": "public"
35
+ },
36
+ "engines": {
37
+ "node": ">=20.6.0"
38
+ },
39
+ "peerDependencies": {
40
+ "@plumbus/core": "0.6.x",
41
+ "@plumbus/voice": "0.4.x",
42
+ "fastify": "^5.0.0",
43
+ "livekit-client": "^2.0.0",
44
+ "@livekit/krisp-noise-filter": "^0.4.0"
45
+ },
46
+ "peerDependenciesMeta": {
47
+ "fastify": {
48
+ "optional": true
49
+ },
50
+ "livekit-client": {
51
+ "optional": true
52
+ },
53
+ "@livekit/krisp-noise-filter": {
54
+ "optional": true
55
+ }
56
+ },
57
+ "dependencies": {
58
+ "@livekit/agents": "^1.4.6",
59
+ "@livekit/krisp-noise-filter": "^0.4.3",
60
+ "@livekit/noise-cancellation-node": "^0.1.9",
61
+ "@livekit/rtc-node": "^0.13.29",
62
+ "@shiguredo/rnnoise-wasm": "^2025.1.5",
63
+ "livekit-server-sdk": "^2.15.4",
64
+ "ws": "^8.21.0"
65
+ },
66
+ "devDependencies": {
67
+ "fastify": "^5.0.0",
68
+ "livekit-client": "^2.19.2",
69
+ "tsx": "^4.21.0",
70
+ "vitest": "^3.2.4",
71
+ "@plumbus/core": "0.6.14",
72
+ "@plumbus/voice": "0.4.3"
73
+ },
74
+ "license": "MIT",
75
+ "scripts": {
76
+ "build": "tsc -b",
77
+ "test": "vitest run",
78
+ "lint": "biome lint src",
79
+ "format": "biome format --write src",
80
+ "format:check": "biome format src",
81
+ "typecheck": "tsc --noEmit"
82
+ }
83
+ }