Mints one session.
The inputs the runtime resolved for this start.
The provider the session runs on.
The minted session, including ClientPolicyJson when the launcher's mint scoped channels,
AvatarStatusJson when the server reports the session's avatar status, and Transport and RelayUrl for a
session that runs through MJAPI's realtime relay.
The stock launcher: mints through the
StartRealtimeClientSessionGraphQL mutation on the session's provider. This is what every host gets unless it installs another.When the session has channel candidates it asks the server to scope them (
channelCandidatesJson) and to return the resolved policy (ClientPolicyJson). It also asks for the session's live-avatar status (AvatarStatusJson), which the call reads to say why it shows no avatar, and for how the browser reaches the provider (TransportandRelayUrl), which a relay session's client driver connects with. A host that shows no agent video (RealtimeSessionLaunchRequest.ShowsAgentVideofalse) says so (showsAgentVideo: false), so the server asks the model for no avatar. A server that predates an extension rejects it at validation, in which case the launcher mints without that extension alone (the runtime then resolves the channel scope locally, shows no avatar notice, treats every session as direct, or leaves the avatar to the browser's audio-only fallback at connect) — a new client must keep working against an older server, and a failed mint over an optional extension would be the worst way to find out they differ. Each fallback is remembered per launcher instance so a long-lived runtime asks once.