Resolved credentials + raw-audio opts + the native module specifier.
The native-addon loader (defaults to the lazy specifier loader).
Returns the current roster from the native client, mapped to DiscordMember.
Loads the native addon, constructs a client, wires its callbacks, and joins the voice channel with the resolved bot token. Brings BOTH hearing and the agent's voice online.
The bridge's join args (guild id, voice-channel id, bot name, auth).
The bot user + voice-channel identifiers.
Leaves the voice channel and releases the native client. Tolerant of teardown errors.
Mutes a member via the native control (requires the bot have the guild's "Mute Members" permission). No-ops (without throwing) before joinVoiceChannel.
The user to mute.
Registers the inbound per-user audio handler (the diarized hearing path).
Registers the voice-connection-dropped handler.
Registers the member-leave handler.
Posts a message to the associated text channel via the native client. No-ops (without throwing) before joinVoiceChannel.
The chat message text.
Sends one raw PCM frame as the bot's outbound audio — the agent's real voice into the channel, via the native audio-player send path. No-ops (without throwing) before joinVoiceChannel so an early model frame never crashes the session.
The PCM audio bytes to speak into the channel.
A real, two-way IDiscordVoiceSdk over a native Discord voice addon (Opus send + receive).
Gives the agent both hearing (per-user inbound audio → diarized DiscordAudioFrames) and a voice (sendAudioFrame → the native audio-player send path), plus working member controls (chat / mute) and roster events. Construct via BindDiscordNative (the factory the bridge's
SetSdkFactorywants), not directly, so config resolution + the lazy loader wire consistently.