Returns the current huddle participant roster (including the bot).
The current participants.
Joins the huddle and brings the bot online (signaling and media). Returns the bot's participant id + the huddle id.
⚠️ The media half of the join is the gating unknown (see the REAL-API RISK at the top of this file). Signaling/membership is on firm public-API ground; media may require a Chime-level path.
Join parameters (channel id, huddle id, bot name, auth).
The bot participant + huddle handles.
Leaves the huddle (and tears down the bot's media leg) and releases SDK resources.
Mutes a participant in the huddle (subject to the bot holding the relevant authority).
The participant to mute.
Registers a callback for inbound raw per-participant audio frames (what the agent hears, carrying the speaker label for diarization). "Latest handler wins."
⚠️ Requires the huddle media path (Chime) — see the REAL-API RISK at the top of this file.
Invoked with each inbound audio frame.
Registers a callback for native raised-hand signals. "Latest handler wins."
⚠️ Slack does not surface a first-class huddle raise-hand event to apps on every workspace/build; partial — the adapter wires it where available and the driver tolerates the signal never firing.
Invoked with the participant id and whether the hand is now raised.
Registers a callback fired when the huddle ends (starter ended / all participants left). "Latest handler wins."
Invoked when the huddle has ended.
Registers a callback fired when a participant joins the huddle. "Latest handler wins."
Invoked with the participant who joined.
Registers a callback fired when a participant leaves the huddle. "Latest handler wins."
Invoked with the participant id that left.
Posts a message to the huddle's thread / channel (everyone), via chat.postMessage.
The chat message text.
Sends one raw PCM audio frame as the bot's outbound audio (the agent's voice into the huddle), over the huddle media pipeline.
⚠️ Requires the huddle media path (Chime) — see the REAL-API RISK at the top of this file.
The PCM audio bytes to send.
The minimal Slack huddle SDK surface the import('./slack-bridge').SlackBridge depends on. Production binds this to a real Slack Web API + Events adapter plus the (gating-unknown) huddle media path; tests inject a
FakeSlackHuddleSdk.🚨 See the REAL-API RISK at the top of this file: the media operations (join media half, sendAudioFrame, onAudioFrame) depend on a huddle bot-join-with-media path Slack does not publicly document — this seam is built ready for it, but production binding must verify/obtain it.