The injected collaborators that drive the session.
Builds the realtime tool set registered with the provider.
Always includes the stable, target-independent INVOKE_TARGET_AGENT_TOOL_NAME tool, followed by any RealtimeSessionRunnerDeps.ExtraTools and then any contributed RealtimeSessionRunnerDeps.ServerChannelTools (the server-side interactive channels' dynamic vocabulary). This is the full set the provider sees — everything target-specific runs inside the delegated agent's own run and is never registered on the realtime socket.
The ordered tool definitions to register.
Convenience lifecycle: starts the session and immediately finalizes it.
This is primarily useful for tests and for callers that drive the session entirely through the injected handlers (which fire between Start and Stop). Most real callers will use Start then later Stop when the user hangs up or the session times out. If start fails, a failed result is returned with the error.
The final RealtimeSessionResult.
Closes the session and finalizes usage. Idempotent: a second call is a no-op.
Cancels any pending debounce timer, performs a final synchronous-cadence usage flush so no partial usage is lost, closes the underlying session, and returns the run result.
The final RealtimeSessionResult.
Orchestrates a single
BaseRealtimeModelduplex session for the Realtime agent type.Construct with a fully-populated RealtimeSessionRunnerDeps, then call Run to drive the session to completion, or Start/Stop to control it explicitly.