Resolved credentials + the native module specifier.
The native-module loader (defaults to the lazy specifier loader).
Loads the native module, constructs a room client, wires its callbacks, and connects to the room with the resolved access token. Brings BOTH hearing and the agent's voice online.
The bridge's connect args (room ws URL, signed access token, bot name).
The bot/room identifiers.
Disconnects from the room and releases the native client. Tolerant of teardown errors.
Flushes the agent's queued outbound audio (barge-in). No-ops before connect.
Returns the current roster from the native client, mapped to LiveKitParticipant.
Registers the inbound per-participant audio handler (the diarized hearing path).
Registers the handler for a change in what the room client shows of the avatar.
Registers the room-disconnected handler.
Registers the participant-join handler.
Registers the participant-leave handler.
Registers the handler for a camera or screen the room client stopped reading.
Registers the inbound video handler: sampled frames from people who let agents see them (the seeing path).
Publishes one raw PCM frame on the bot's audio track — the agent's real voice into the room, via the native publish path. No-ops (without throwing) before connect so an early model frame never crashes the session.
The PCM audio bytes to publish into the room.
Hands one piece of the agent's live avatar to the native room client, which decodes and publishes it: the bot's only video out. Dropped before connect or when the wrapper publishes no avatars.
The avatar piece.
Sends a reliable text message on the room data channel via the native client — the room-native "chat". No-ops (without throwing) before connect.
The data/chat message text.
A real, two-way ILiveKitRoomSdk over the native LiveKit Node room SDK (publish + subscribe).
Gives the agent both hearing (per-participant subscribed audio → diarized LiveKitAudioFrames) and a voice (publishAudioFrame → the native publish path), plus its live avatar (publishAvatarMedia), the data-channel chat, and roster events. Construct via BindLiveKitNative (the factory the bridge's
SetSdkFactorywants), not directly, so config resolution + the lazy loader wire consistently.