Member Junction
    Preparing search index...

    Interface RealtimeTrackDescriptor

    What a track IS — the negotiable description of one directional stream of one modality.

    Used in three roles, which is why every field past the first two is optional: a model DECLARES what it supports, a session REQUESTS what it wants, and the driver REPORTS what it established.

    interface RealtimeTrackDescriptor {
        Direction: RealtimeTrackDirection;
        Encoding?: string;
        Label?: string;
        Modality: RealtimeModalityKey;
        Rate?: number;
        Required?: boolean;
        RequiresConsent?: boolean;
        SourceID?: string;
        UsageBasis?: readonly RealtimeTrackUsageBasis[];
    }
    Index

    Properties

    Which way samples flow, relative to the model.

    Encoding?: string

    Wire encoding, where it is negotiable or worth pinning — 'audio/pcm;rate=16000', 'image/jpeg', 'video/vp8'. Absent on a request means "the profile's default".

    Label?: string

    A human-readable name for the source feeding this track ("Whiteboard", "Camera"). Used in context notes that tell the model what it is looking at, and in the UI's "agent can see" list.

    The modality this track carries.

    Rate?: number

    Sample or frame cadence where meaningful — fps for video, Hz for audio.

    Required?: boolean

    Whether this track is required for the session to proceed (true) or optional/best-effort (false). When optional, failure to establish the track does not terminate the session.

    RequiresConsent?: boolean

    Whether establishing this track needs an explicit human grant — camera, screen capture, microphone, biosignals.

    A track property rather than per-modality special-casing in the UI, so a host can prompt generically and the audit trail is uniform across modalities we have not invented yet.

    SourceID?: string

    Which SOURCE feeds this track, when more than one independent stream of the same modality and direction can exist (several inbound video streams on a model that accepts them). Absent means "the one stream of this modality and direction", which is every track today: a model that accepts a single inbound video stream gets one track, and an arbiter decides which source is written to it (VideoSourceArbiter in @memberjunction/ai-realtime-client).

    The id is opaque to the model session; it is a correlation key between a source (a camera, a shared screen, a whiteboard) and the stream it occupies. Two requested tracks with the same modality and direction but different SourceIDs are distinct streams, not duplicates.

    UsageBasis?: readonly RealtimeTrackUsageBasis[]

    How this track is metered. Absent means the session's own basis applies.