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.

    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.

    • Whether this driver's sessions can render a live avatar for the model, on the endpoint the driver serves.

      Defaults to false: a driver whose models render no avatar says nothing more, and may ignore an avatar request. A driver that renders one for some models (Gemini Enterprise) overrides it. The client-session service reads it to tell a call or a meeting that asked for an avatar "this voice model can't show an avatar" (RealtimeAvatarUnavailableReason 'endpoint'), whichever driver serves it.

      Parameters

      • _model: string

        The provider's API name for the model.

      Returns boolean

      true when sessions on this model can render a live avatar; false otherwise.