Outbound PCM rate (Hz) — the AudioSource rate (model output rate).
Inbound PCM rate (Hz) — each AudioStream's resample target (model input rate).
Channel count.
The @livekit/rtc-node loader.
Video settings (see LiveKitRtcNodeRoomClientOptions); omit for a voice-only bot.
Connects to the room, publishes the bot's audio track, and wires inbound audio, video + roster events.
Disconnects: stops reading participant video and audio (every inbound audio stream is cancelled, and none opens after this), then releases the room. Tolerant of teardown errors.
Flushes all pending outbound audio — both our pre-capture outboundQueue and the audio
already buffered inside the LiveKit AudioSource. Called on barge-in (the user interrupts the
agent): without it, the agent keeps talking from buffered audio after the model has stopped
generating, so interruption appears not to work. Never throws.
Returns the current roster (remote participants — the bot excludes itself from addressing).
Returns a snapshot of room telemetry (inbound gaps, outbound underruns/captures, event-loop p99, and the participant-video counters while the agent watches the meeting).
Registers the inbound per-participant audio handler. "Latest handler wins."
Registers the handler for a change in what the room is shown of the avatar. "Latest handler wins."
Registers the room-disconnected handler.
Registers the participant-connected handler.
Registers the participant-disconnected handler.
Registers the inbound video handler: sampled JPEG frames from people who let agents see them. Fires only when the client was created with video options. "Latest handler wins."
Registers the handler for a camera or screen that stopped being read after sending frames. "Latest handler wins."
Enqueues one PCM frame for the bot's audio track (the agent's voice). The sync seam contract is preserved (never throws), but the frame is fed through drainOutbound so captures are serialized — see outboundQueue for why concurrent captures corrupt playout pacing.
Decodes and publishes one piece of the agent's live avatar (AvatarPublisher, created at the first piece): the face on a camera track published at its first frame, the voice through this client's voice queue, paced by the voice. It is the bot's only video out (through RtcNodeAvatarOutlet); the client publishes no raw camera frames and no screen share. Dropped before connect, and after the avatar was taken down before this client joined.
Publishes a reliable text message on the room data channel (the room-native "chat").
A real NativeRoomClient over
@livekit/rtc-node. One instance per room session. Constructed by CreateLiveKitRtcNodeModule'screateRoomClient, driven byLiveKitNativeMeetingSdk.