Member Junction
    Preparing search index...

    Pure facilitator state — the ordered hand-raise queue, who is speaking, the roster, mute state, and a single agenda timer. No I/O, no realtime/bridge coupling; mutated by the channel server from the bridge event stream and the agent's tool calls, then snapshotted via BuildPerception.

    All time-based behavior reads the injected MeetingControlsClock, so a test can advance time deterministically and assert exact wait / elapsed / remaining values.

    Index

    Constructors

    Methods

    • "Calls on" a participant: removes them from the hand-raise queue (lowering their hand) and returns them. When participantId is omitted, calls on the FRONT of the queue (next in line). Returns undefined when there is no one to call on (empty queue, or the named id isn't queued).

      Parameters

      • OptionalparticipantId: string

        Optional specific participant to call on; defaults to the queue front.

      Returns HandRaiseQueueEntry

      The participant called on, or undefined.

    • Removes a participant from the hand-raise queue (the explicit LowerHand tool, and the implicit lower when they are called on). Preserves the order of everyone else.

      Parameters

      • participantId: string

        The participant whose hand to lower.

      Returns boolean

      true when they were in the queue and were removed, false otherwise.

    • Marks a participant muted by the channel (the agent's MuteParticipant tool). The actual platform mute is the driver's job; this mirrors the intent so the perception feed reflects it.

      Parameters

      • participantId: string

        The participant to mark muted.

      Returns boolean

      true when the participant is on the roster (and was marked), false otherwise.

    • Adds a participant to the hand-raise queue (idempotent — a second raise by someone already in the queue keeps their ORIGINAL position and raise time, never jumping them forward). A raise by someone not on the roster is ignored (the bridge should roster them first).

      Parameters

      • participantId: string

        The participant raising their hand.

      Returns boolean

      true when the queue changed (a new raise landed), false otherwise.

    • Replaces the roster wholesale with a fresh snapshot from the bridge. Participants who left the meeting (no longer in the snapshot) are pruned from the queue, the speaking set, and the mute set so stale ids never linger in the perception feed.

      Parameters

      Returns void

    • Replaces the set of currently-speaking participants (from the bridge's diarization stream).

      Parameters

      • participantIds: string[]

        The ids now speaking.

      Returns void

    • Sets (or resets) the agenda timer to durationSeconds, starting now. A non-positive duration clears the timer. Setting a new timer replaces any existing one.

      Parameters

      • durationSeconds: number

        The timer duration in seconds; <= 0 clears it.

      Returns void