Member Junction
    Preparing search index...

    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.

    Hierarchy (View Summary)

    Implements

    • OnInit
    Index

    Constructors

    Properties

    addError: string | null = null

    Last add error, shown under the picker.

    addingAgent: boolean = false

    True while an Add request is in flight.

    addModelId: string | null = null

    The MODEL override chosen in the "Add an agent" picker (dev-only; null = co-agent/target default).

    addTargetId: string | null = null

    The target id chosen in the "Add an agent" picker.

    addVoice: string | null = null

    The VOICE override chosen in the "Add an agent" picker (dev-only; null = co-agent/target default).

    AgentAvatarUrl: string | null = null

    LiveKitRoomComponent.AgentAvatarUrl

    AgentID: string | null = null

    The agent to voice (agent mode) — the Realtime Co-Agent / voice front-end.

    AgentName: string | null = null

    The agent's display name (bot name + addressing).

    agentsInRoom: AgentInRoom[] = []

    The agent bots currently bridged into the room (the first is the one started on join).

    AutoStart: boolean = true

    Resolve the connection automatically on init.

    AvailableAgents: { ID: string; Name: string }[] = []

    Target agents the user can ADD in-room (id + name). The host (e.g. the Explorer resource) supplies these.

    AvailableModels: RealtimeModelVoices[] = []

    Active Realtime models + their voices, supplied by the host (for the add-agent dropdowns).

    CanPickModelVoice: boolean = false

    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.

    Connected: EventEmitter<LiveKitRoomState> = ...

    Emitted when the room connects.

    ConnectTimeoutMs: number = 25000

    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.

    DataReceived: EventEmitter<LiveKitDataMessage> = ...

    Emitted for inbound data-channel messages.

    Disconnected: EventEmitter<LiveKitDisconnectedEvent> = ...

    Emitted when the room disconnects.

    DisplayName: string | null = null

    The display name the local user joins as. Defaults to the authenticated user server-side.

    E2EEPassphrase: string | null = null

    LiveKitRoomComponent.E2EEPassphrase

    E2EEWorker: Worker | null = null

    LiveKitRoomComponent.E2EEWorker

    EnableAgentManagement: boolean = true

    Show the in-room "Agents" panel to add/remove agents (agent mode only).

    EnableBackgroundEffects: boolean = false

    LiveKitRoomComponent.EnableBackgroundEffects

    EnableCameraControl: boolean = true

    LiveKitRoomComponent.EnableCameraControl

    EnableDeviceSettings: boolean = true

    LiveKitRoomComponent.EnableDeviceSettings

    EnableEndForAll: boolean = true

    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.

    EnableInvite: boolean = true

    Show the "Invite" pill that copies a join link to this room.

    EnableLayoutSwitcher: boolean = true

    LiveKitRoomComponent.EnableLayoutSwitcher

    EnableLeaveControl: boolean = true

    LiveKitRoomComponent.EnableLeaveControl

    EnableMicrophoneControl: boolean = true

    LiveKitRoomComponent.EnableMicrophoneControl

    EnableNoiseFilter: boolean = false

    LiveKitRoomComponent.EnableNoiseFilter

    EnablePinning: boolean = true

    LiveKitRoomComponent.EnablePinning

    EnableRecording: boolean = false

    Enable the server-authorized recording control (composite egress).

    EnableScreenShareControl: boolean = true

    LiveKitRoomComponent.EnableScreenShareControl

    endingMeeting: boolean = false

    True while an "End meeting" (stop all agents + leave) is in flight.

    errorMessage: string | null = null

    The token/session-resolution error, if any.

    ErrorOccurred: EventEmitter<LiveKitRoomError> = ...

    Emitted on room errors (and on token/session-resolution failures).

    inviteCopied: boolean = false

    True briefly after the invite link is copied (drives the "Link copied" pill state).

    InvitePeopleRequested: EventEmitter<string> = ...

    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.

    isRecording: boolean = false

    Whether a recording is currently in progress.

    Layout: LiveKitRoomLayout = 'grid'

    LiveKitRoomComponent.Layout

    loading: boolean = false

    Whether the binding is resolving the token/session.

    Mode: MJLiveKitConnectionMode = 'agent'

    Whether to start an agent in the room ('agent') or just join an existing room ('join').

    ParticipantJoined: EventEmitter<LiveKitParticipantJoinedEvent> = ...

    Emitted when a participant joins.

    ParticipantLeft: EventEmitter<LiveKitParticipantLeftEvent> = ...

    Emitted when a participant leaves.

    Provider: IMetadataProvider | null

    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.

    RealtimeModelID: string | null = null

    Per-session Realtime MODEL override for the INITIAL agent (from the host's pre-join picker).

    RealtimeVoice: string | null = null

    Per-session VOICE override for the INITIAL agent (from the host's pre-join picker).

    recordingFileId: string | null = null

    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.

    resolvedDisplayName: string | null = null

    The display name passed to the room.

    resolvedRoomName: string | null = null

    The resolved room name (for recording calls).

    RoomName: string | null = null

    The room name. Required for 'join' mode; optional for 'agent' (server generates one).

    serverUrl: string | null = null

    The resolved LiveKit server URL.

    SessionStarted: EventEmitter<MJLiveKitSessionStartedEvent> = ...

    Emitted once the agent room session is started (agent mode).

    showAgentsPanel: boolean = false

    Whether the floating agents panel is open.

    ShowAgentState: boolean = false

    LiveKitRoomComponent.ShowAgentState

    ShowChat: boolean = true

    LiveKitRoomComponent.ShowChat

    ShowControlBar: boolean = true

    LiveKitRoomComponent.ShowControlBar

    ShowHeader: boolean = true

    LiveKitRoomComponent.ShowHeader

    ShowParticipantsPanel: boolean = true

    LiveKitRoomComponent.ShowParticipantsPanel

    ShowPreJoin: boolean = false

    LiveKitRoomComponent.ShowPreJoin

    showRecordingPanel: boolean = true

    Whether the recording playback panel is shown (dismissable).

    ShowWhiteboard: boolean = false

    LiveKitRoomComponent.ShowWhiteboard

    StartWithCamera: boolean = false

    LiveKitRoomComponent.StartWithCamera

    StartWithMicrophone: boolean = true

    LiveKitRoomComponent.StartWithMicrophone

    TargetAgentID: string | null = null

    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.

    Title: string | null = null

    LiveKitRoomComponent.Title

    token: string | null = null

    The resolved access token.

    TurnMode: "Passive" | "Active" | "Hybrid" | null = null

    Turn-taking mode for the agent.

    UUIDsEqual: (
        uuid1: string | null | undefined,
        uuid2: string | null | undefined,
    ) => boolean = UUIDsEqual

    Exposed for template use — platform-safe UUID equality (SQL upper vs PG lower).

    Type Declaration

      • (uuid1: string | null | undefined, uuid2: string | null | undefined): boolean
      • 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.

        Parameters

        • uuid1: string | null | undefined

          First UUID to compare

        • uuid2: string | null | undefined

          Second UUID to compare

        Returns boolean

        true if the UUIDs are equal (case-insensitive), false otherwise

        // Cross-platform comparison (SQL Server uppercase vs PostgreSQL lowercase)
        UUIDsEqual('A1B2C3D4-E5F6-7890-ABCD-EF1234567890',
        'a1b2c3d4-e5f6-7890-abcd-ef1234567890') // true

        UUIDsEqual(null, null) // true
        UUIDsEqual(null, 'some-id') // false
        UUIDsEqual('abc', 'ABC') // true
    "ɵdir": unknown
    "ɵfac": unknown

    Accessors

    • get inviteUrl(): string

      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.

      Returns string

    • get ProviderToUse(): IMetadataProvider

      Returns either the default Metadata provider or the one specified in the Provider property, if it was specified

      Returns IMetadataProvider

    • get RunQueryToUse(): IRunQueryProvider

      Returns either the default RunQuery provider or the one specified in the Provider property, if it was specified

      Returns IRunQueryProvider

    • get RunReportToUse(): IRunReportProvider

      Returns either the default RunReport provider or the one specified in the Provider property, if it was specified

      Returns IRunReportProvider

    • get RunViewToUse(): IRunViewProvider

      Returns either the default RunView provider or the one specified in the Provider property, if it was specified

      Returns IRunViewProvider

    Methods

    • 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.

      Returns Promise<void>

    • 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.

      Returns Promise<void>

    • 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.

      Returns void