OptionalAgentThe agent to voice, by id (preferred).
OptionalAgentThe agent to voice, by name (fallback when no id).
OptionalAgentThe MJ: AI Agent Sessions id this bridge belongs to. Threaded into the co-agent observability run so
the voice session's runs (and the target-agent runs delegated under it) group under the same session —
identically to the native-chat surface. Without it the co-agent run can't record its session.
OptionalContextThe user the session runs as (scopes memory + DB ops).
OptionalMeetingMulti-agent meeting mode. Set true when the agent joins a room that already has other agents,
so it disables blind auto-response and speaks only when addressed (the room coordinator decides this).
Flows to params.data.realtimeMeetingMode. See plans/realtime/multi-agent-meeting-turn-taking.md.
OptionalMetadataThe request-scoped metadata provider (multi-provider safe). Falls back to the global default.
OptionalRealtimeOptional per-session Realtime MODEL override (an MJ: AI Models Name or ID) — a dev choosing a
specific realtime model for THIS agent in the room. Wins over the co-agent config's modelPreference.
OptionalRealtimeOptional per-session VOICE override (a provider-native voice id, e.g. OpenAI echo/shimmer) — how
two agents in the same room are given distinct voices. Replaces the config's per-provider voice.
OptionalRoomThe transport endpoint being joined (room/meeting/number) — informational here; not required.
OptionalSelfThe names the agent answers to (display name + aliases) — phrasing for the meeting prompt only.
OptionalTargetThe TARGET agent the co-agent voices — the one the user is actually "calling". The Realtime
Co-Agent is a voice front-end that delegates to this agent via invoke-target-agent; without a
target it has nobody to speak for and stays idle. Flows to params.data.targetAgentID.
The context a bridge passes to CreateBridgeRealtimeSession. Structurally compatible with the LiveKit coordinator's
RealtimeSessionStartContext(and any future bridge's equivalent) so this factory can be bound directly viaSetSessionFactory(...)without the consumer adapting shapes.