OptionalConfigurationOpaque, backend-specific connection configuration (resolved credential references, region,
Chrome image, proxy settings, …) as a parsed JSON object. Typed as a record of unknown values
rather than any so it stays inspectable without losing type-safety at the boundary; the
driver narrows the fields it understands. Never carries inline secrets — credentials resolve
through MJ's credential system upstream and arrive here already resolved or as references.
OptionalContextThe MJ user the remote-browser session runs as. Every session is owned by a user and fully audited; the driver uses this for any server-side operations that require a context user.
The resolved control mode for this session (AgentOnly / ViewOnly / Collaborative) — the
provider default overridden per-channel / at runtime. The driver uses it to decide whether to
stand up live-view / takeover plumbing on connect.
The backend's SupportedFeatures — the capability flags the engine and the driver's
RequireFeature guard gate on. Sourced from the provider metadata row's typed
SupportedFeaturesObject accessor (never JSON.parse).
The backend's display name (e.g. 'Browserbase', 'Self-Hosted Chrome'), used in
capability-error messages and logging.
How the browser is hosted: 'SelfHost' (MJ orchestrates a lightweight headless-Chrome
container we connect to over CDP) or 'Service' (a browser-as-a-service exposes a CDP connect
endpoint). Mirrors MJ: AI Remote Browser Providers.ProviderType.
The set of host services a remote-browser driver sees while running.
The engine (
RemoteBrowserEngine, server package) constructs this and hands it to BaseRemoteBrowserProvider.Connect. It is deliberately small: a driver should depend only on what it truly needs, and everything richer (the realtime session, the channel plane, the control arbiter) is wired by the engine AROUND the driver, not handed into it. This keeps drivers thin and backend-focused.