Member Junction
    Preparing search index...

    Boundary the runtime subscribes to for session lifecycle.

    Hosts supply an implementation that pushes events from their realtime session source — the Angular host's RealtimeSessionsAdapter bridges RealtimeSessionService's SessionStarted$ / ActiveChannels$ / SessionEnded$ observables; a Node CLI or React app would write a different implementation.

    Single-observable contract. One SessionLifecycle$ stream carries all three event kinds (a discriminated union). Subscribers narrow with the kind tag.

    runtime.UseSessionsAdapter(new RealtimeSessionsAdapter(realtimeSessionService));
    
    // When a future video session service ships, merge it with voice — the
    // runtime contract doesn't change.
    class MultiModalSessionsAdapter implements ISessionsAdapter {
    public readonly SessionLifecycle$ = merge(
    this.voice.SessionLifecycle$,
    this.video.SessionLifecycle$,
    );
    constructor(private voice: RealtimeSessionsAdapter, private video: VideoSessionsAdapter) {}
    }
    interface ISessionsAdapter {
        SessionLifecycle$: Observable<SessionLifecycleEvent>;
    }

    Implemented by

    Index

    Properties

    SessionLifecycle$: Observable<SessionLifecycleEvent>

    Push stream of session lifecycle events. Subscribers are typically the runtime's SessionsObserver, which re-broadcasts to widget consumers via ConversationsRuntime.Instance.Sessions.SessionLifecycle$.