Member Junction
    Preparing search index...

    Class BaseRealtimeModelAbstract

    Base AI model class, used for everything else in the MemberJunction AI environment

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    SupportsDynamicToolSet?: boolean = false

    Whether this driver subclass supports dynamic, multi-tool sets projected into the realtime session (e.g. direct action invocation on realtime co-agents).

    Static capability descriptor read before a session instance exists. Default: absent / false. Subclasses that support dynamic toolsets declare public static readonly SupportsDynamicToolSet = true;.

    Accessors

    • get SupportedVoices(): RealtimeVoiceOption[]

      Static fallback list of provider-native voices supported by this driver when metadata personas are not present or sparse.

      NOTE: Database metadata (MJ: AI Personas + AI Model Personas) is authoritative where configured. At runtime, GetRealtimeModelVoices unions metadata personas with this driver fallback list so that newly uncatalogued provider voices remain selectable while catalogued personas carry curated names/descriptions.

      Returns RealtimeVoiceOption[]

      The supported voice ids (id + human label), or [] when none are declared.

    • get SupportsClientDirect(): boolean

      Whether this driver can mint an ephemeral, server-scoped client credential for a client-direct realtime session (the browser opens its own provider socket using a short-lived token the server minted).

      Defaults to false. Providers that support browser-direct sessions override this to true and implement CreateClientSession. The server-bridged topology (where the provider socket lives on the server, via StartSession) is supported by every driver regardless of this flag.

      Returns boolean

      true if CreateClientSession is supported; false otherwise.

    • get SupportsVideo(): boolean

      Whether this driver's sessions carry a video track in addition to audio — i.e. the model accepts video input (it can "see" the user's camera) and/or emits video output (a talking-head avatar / generated video), in sync with audio.

      Defaults to false (audio-only — today's realtime models). Video-capable drivers (a native multimodal realtime model, or an avatar provider) override this to true. The session's media plane is media-tagged (IRealtimeSession.SendInput takes a RealtimeMediaKind; IRealtimeSession.OnVideoOutput delivers video-out), so a video session reuses the entire realtime contract — only the media frames gain a video kind. Resolution prefers a video-capable model when an agent requests video, and degrades to audio-only otherwise.

      Returns boolean

      true if sessions can carry video; false (audio-only) otherwise.

    Methods

    • Mints an ephemeral, server-scoped client credential plus a provider-native session config for a client-direct realtime session.

      In the client-direct topology the browser owns the provider socket (e.g. WebRTC), but the server still controls the prompt and tool set: it mints a short-lived token and hands back a ClientRealtimeSessionConfig whose SessionConfig the matching client driver applies when it opens its socket. This keeps prompt/tool authority server-side even though the media plane is client-direct.

      Not every provider supports this (some only expose a server-bridged socket), so this is a concrete method that throws by default rather than an abstract one — that would force every existing and future driver to implement it. Providers that support it override SupportsClientDirect to true and override this method.

      Parameters

      Returns Promise<ClientRealtimeSessionConfig>

      A promise resolving to the minted ClientRealtimeSessionConfig.

      Always, unless overridden by a provider that supports client-direct sessions.

    • Optional WebRTC SDP exchange seam for drivers that support server-brokered WebRTC topologies.

      Parameters

      • _offerSdp: string

        The local SDP offer generated by the browser.

      • Optional_sessionConfig: Record<string, unknown>

        The session configuration to initialize the session with.

      Returns Promise<{ answerSdp: string; prebillSeconds: number; sessionId: string }>

      The answer SDP, provider session ID, and any prebill accounting.