ReadonlyCapabilitiesThe facilitator capabilities the loopback advertises (mute supported, so the gated tool appears).
ReadonlyMutedParticipant ids this source was asked to mute, in order — a capture sink for assertions.
Drives a platform hand-raise/lower signal into the channel.
Drives a roster snapshot into the channel.
Drives a speaking-set change into the channel.
Mutes a participant on the platform (the actuation behind the agent's MuteParticipant tool).
Capability-gated by Capabilities; the channel checks the capability before calling this.
The participant to mute.
A promise resolving once the mute request has been issued.
Registers a handler for hand-raise/lower signals the PLATFORM surfaces (e.g. a participant uses
the conferencing app's native "raise hand"). raised = true enqueues, false dequeues.
Invoked with the participant id and whether the hand is now raised.
Registers a handler for roster changes. Fired with the FULL current roster on every change.
Invoked with the full current roster on every change.
Registers a handler for diarized speaking changes — the set of participant ids currently speaking.
Invoked with the speaking participant ids on every change.
A trivial in-memory IBridgeMeetingControlsEventSource for tests — the loopback driver's optional facilitator surface. It records the registered perception handlers and exposes
Emit*helpers so a test can drive roster / speaking / hand-raise signals into the Meeting Controls channel, and records mute requests. A real driver (e.g.ZoomBridge) implements this by adapting its native participant/event stream; the loopback version proves the bridge → channel-plane wiring with no platform.