Last add error, shown under the picker.
True while an Add request is in flight.
The MODEL override chosen in the "Add an agent" picker (dev-only; null = co-agent/target default).
The target id chosen in the "Add an agent" picker.
The addressing mode chosen in the "Add an agent" picker (null = Auto).
The turn mode chosen in the "Add an agent" picker (null = the room's default).
The VOICE override chosen in the "Add an agent" picker (dev-only; null = co-agent/target default).
The agent to voice (agent mode) — the Realtime Co-Agent / voice front-end.
The agent's display name (bot name + addressing).
The agent bots currently bridged into the room (the first is the one started on join).
Why the server could not record the user's last choice of what the agent sees, shown over the room until they
dismiss it or choose again; null when there is nothing to say.
Resolve the connection automatically on init.
Target agents the user can ADD in-room (id + name). The host (e.g. the Explorer resource) supplies these.
Active Realtime models + their voices, supplied by the host (for the add-agent dropdowns).
The host's own words for why the room shows an agent without its avatar, per reason (for example its product's name
for "this app"), shown as written; {Agent} stands for the agent's name. unknown words a reason the room doesn't
know, such as a newer bot's. A reason it leaves out keeps the stock line, which names the agent.
Whether the dev model/voice pickers are shown in the in-room "Add an agent" control. The HOST
computes this (the Realtime: Advanced Session Controls authorization) and passes it down — this
generic component never evaluates authorizations itself.
Emitted when the room connects.
Max time to wait for the connection to start before surfacing a retryable error, so a hung or very
slow server (e.g. an agent bot that can't reach the LiveKit media path) doesn't spin forever. Set
0 to disable the client-side timeout.
Emitted for inbound data-channel messages.
What went wrong with the user's microphone, camera, speaker or share while the room was connected, such as a share
the browser refused, shown over the room until they dismiss it, ask for another change to their devices, or leave;
null when there is nothing to say. A share picker the user closed is no error, so it says nothing.
Emitted when the room disconnects.
The display name the local user joins as. Defaults to the authenticated user server-side.
Show the in-room "Agents" panel to add/remove agents (agent mode only).
Offer "End meeting for everyone" in the control bar's Zoom-style leave menu. When on (default) and a
room is resolved, ending tears down every agent in the room server-side (by name — so it works even
when this client only joined). Set false for contexts where only the local user should ever leave.
Start the initial agent able to bring a person, a phone number or another agent into this same room (a "transfer to a human" that the visitor never leaves the room for). Honoured only when the server has handoff configured; otherwise ignored.
Show the "Invite" pill that copies a join link to this room.
Enable the server-authorized recording control (composite egress).
Show the turn-taking panel (floor holder, hand-offs, backchannels, loop cap) and per-agent mode pickers.
True while an "End meeting" (stop all agents + leave) is in flight.
The token/session-resolution error, if any.
Emitted on room errors (and on token/session-resolution failures).
True briefly after the invite link is copied (drives the "Link copied" pill state).
Emitted (with the room name) when the user clicks "Invite people". The host (e.g. the Explorer resource) opens an MJ user-picker and calls the invite mutation — kept out of this generic component, which knows nothing about MJ users.
Whether a recording is currently in progress.
Whether the binding is resolving the token/session.
Whether to start an agent in the room ('agent'), just join an existing room ('join'), or open the preview room
('preview': no token, no agent session, no recording). Read when the room is created.
Emitted when a participant joins.
Emitted when a participant leaves.
Where the user put picture-in-picture boxes, by participant identity, as saved for them.
If specified, this provider will be used for communication and for all metadata purposes. By default, if not provided, the Metadata and RunView classes are used for this and the default GraphQLDataProvider is used which is connected to the same back-end MJAPI instance as the Metadata and RunView classes. If you want to have this component connect to a different MJAPI back-end, create an instance of a ProviderBase sub-class like GraphQLDataProvider/etc, and configure it as appropriate to connect to the MJAPI back-end you want to use, and then pass it in here.
Per-session Realtime MODEL override for the INITIAL agent (from the host's pre-join picker).
Per-session VOICE override for the INITIAL agent (from the host's pre-join picker).
The MJ: Files id of this room's meeting recording, when one exists — set when a recording is STOPPED
(the server registers the egress MP4 and returns its file id) or resolved for an already-recorded room
on join. Drives the MJStorageMediaPlayerComponent playback panel.
The display name passed to the room.
The resolved room name (for recording and agent-vision calls).
The room name. Required for 'join' mode; optional for 'agent' (server generates one).
OptionalRoomAdvanced livekit-client room options merged into the constructed Room (overrides speech defaults).
Each seated agent's turn-taking badge, keyed by lowercase bridge-session id.
Whether the user hid their self-view, as saved for them; given to the room, and saved again as they change it.
The resolved LiveKit server URL.
Emitted once the agent room session is started (agent mode).
Whether the floating agents panel is open.
Whether the recording playback panel is shown (dismissable).
Whether the turn-taking panel is open.
The TARGET agent the co-agent voices — the one being "called". The Realtime Co-Agent delegates to
it via invoke-target-agent; without it the agent has nobody to speak for and stays idle.
Where the user moved participants' tiles, as saved for them; given to the room, and saved again as they change.
The resolved access token.
How the agent decides it was addressed: Auto (the default: the model's own judgement when it can give it,
name matching otherwise), ModelSide, or Regex. Applies to the INITIAL agent; agents added in-room pick their own.
ReadonlyTurnThe addressing choices for the add-agent picker.
The latest turn-taking poll error, shown in the panel.
Turn-taking mode for the agent.
ReadonlyTurnThe turn-mode choices for the add-agent picker.
The label on the turn-taking pill; names the floor holder when there is one.
How often the turn-taking panel refreshes, in ms (clamped to a sensible minimum).
The room's latest turn-taking state (null until the first poll of a room with agents answers).
Exposed for template use — platform-safe UUID equality (SQL upper vs PG lower).
Performs a case-insensitive comparison of two UUID strings. Handles null/undefined gracefully — two nullish values are considered equal, but a nullish value is never equal to a non-nullish value.
First UUID to compare
Second UUID to compare
true if the UUIDs are equal (case-insensitive), false otherwise
StaticɵdirStaticɵfacUse AddError.
Use AddingAgent.
Use AddModelId.
Use AddTargetId.
Use AddVoice.
Use AddVoices.
Voices for the model chosen in the add-agent picker (empty when no model picked or it has none).
Use AgentsInRoom.
Use AvailableToAdd.
Available agents not already in the room (by target id) — the "Add" picker options.
The notices over the room that an agent's avatar can't be shown, oldest first: one per agent per join, for everyone in the room, from the agent's bot. Each hides itself after a while or when dismissed.
Use EndingMeeting.
Use InviteCopied.
Use InviteUrl.
Builds the shareable invite URL for THIS room: the current page URL with a room=<roomName> query
param. Opening it lands the invitee on the Live Room in join mode for the same room.
Use IsRecording.
Use Loading.
Returns either the default Metadata provider or the one specified in the Provider property, if it was specified
Use RecordingFileId.
Use ResolvedDisplayName.
Use ResolvedRoomName.
Returns either the default RunQuery provider or the one specified in the Provider property, if it was specified
Returns either the default RunView provider or the one specified in the Provider property, if it was specified
Use ServerUrl.
Use ShowAgentsPanel.
Use ShowRecordingPanel.
Use Token.
Adds another agent to the SAME room — starts a new bridge (the co-agent voicing the chosen target) and appends it to the roster. The new bot joins the live room alongside the existing participants.
A notice's line, naming the agent, in the host's words when it gave some (AvatarNoticeLabels).
Copies inviteUrl to the clipboard and flips the pill to "Link copied" briefly.
End meeting (the Zoom/Teams "End for all", reached from the control-bar leave menu): tears down EVERY agent in the room server-side — by room name, so it works even when this client only joined the room and never tracked the bridge ids locally — then disconnects the local user. Contrast with Leave (the other menu item → LiveKitRoomComponent.Leave), which only disconnects YOU and lets the meeting continue; the server then auto-leaves the agents once the last human is gone, so neither path strands billable agent sessions in an empty room.
A callback method that is invoked immediately after the default change detector has checked the directive's data-bound properties for the first time, and before any of the view or content children have been checked. It is invoked only once when the directive is instantiated.
Records the add-agent MODEL choice; clears the voice so it can't outlive a model switch.
Picker selection handler for the in-room "Add an agent" control (native select; no FormsModule dep).
Records the add-agent addressing choice.
Records the add-agent turn-mode choice.
Records the add-agent VOICE choice: the picked option, found by its position (two personas can share a voice id, so the value can't tell them apart; option 0 is "Default voice"), and its voice id.
The user chose whether agents may see their camera and screen. The preview room records it at once. In a meeting, MJAPI records it, since a participant's token can't change its own attributes, and the room shows the change when LiveKit reports it; when MJAPI can't, a notice says why.
The user dismissed an agent's avatar notice: it does not show again in this join.
The user asked for a change to their devices (turned the microphone, camera or share on or off, or switched a device): the device notice goes, since it was about an earlier request. Should this one fail too, its own shows.
The user moved or resized a box, or reset the layout: keep the boxes and save them.
The room disconnected: its notices go, and joining again shows each agent's once more.
The room reported an error: the host hears it (ErrorOccurred), and a device error while the room is connected shows over the room (DeviceNotice), the latest in place of any earlier one. Until the room connects, it shows its own connection overlay, which says why a join failed.
The room's state changed: a notice shows for each agent whose bot newly says the meeting can't show its avatar.
The user hid their self-view, showed it again, or reset the layout: keep it and save it. When saving fails, it still holds for this session.
The user moved a tile or reset the layout: keep the room's moves and save them.
Use OnToggleRecording.
Toggles room recording via the RealtimeBridge GraphQL surface (server-authorized egress).
Removes an agent from the room — stops its bridge and drops it from the roster.
Resolves the connection (mints a token and, in agent mode, starts the agent session). A new join, too.
Opens or closes the turn-taking panel, starting or stopping the live refresh to match.
mj-livekit-agent-room— the MemberJunction binding for the LiveKit room UI. It resolves a scoped access token (and, in'agent'mode, starts the agent's presence in the room) via the RealtimeBridge GraphQL surface, then renders LiveKitRoomComponent with the resolved connection. All the rich feature gates of the generic component are forwarded; MJ user/provider context is threaded in.Public members are PascalCase (MJ convention); private members are camelCase.