---
title: "Read telemetry events for a browser session"
method: GET
path: "/browsers/{id}/telemetry/events"
tags: ["Browser Telemetry"]
---

# Read telemetry events for a browser session

`GET /browsers/{id}/telemetry/events`

Reads a page of telemetry events for the browser session. To page through results, pass the X-Next-Offset value from the previous response as offset and repeat while X-Has-More is true. Returns an empty list when telemetry data is unavailable.

## Path parameters

- `id` string, required

## Query parameters

- `offset` integer
- `since` string
- `until` string
- `limit` integer
- `category` string[]
- `order` string

## Response `200`

A page of telemetry events.

- BrowserTelemetryEventEnvelope[]
  - `event` union, required — Union type representing any browser telemetry event. Discriminated on `type`. Each event's `category` determines when it is captured. The CDP collector-health events (monitor_disconnected, monitor_reconnected, monitor_reconnect_failed, monitor_init_failed) use the `monitor` category, which is not user-configurable: it flows automatically whenever any CDP category (console, network, page, interaction) is captured, and is silent otherwise. monitor_screenshot uses the opt-in `screenshot` category. All other event types are controlled by their per-category enable/disable flags.
    - BrowserConsoleLogEvent — A browser console log event (console.log, console.info, console.warn, etc.).
      - `category` 'console', required
      - `data` object — Browser event context stamped by the browser monitor onto all CDP-sourced events. Identifies the target, frame, and navigation epoch in which the event occurred.
        - `frame_id` string — CDP frame identifier within the target.
        - `loader_id` string — CDP document loader identifier, reset on each navigation.
        - `nav_seq` integer — Monotonically increasing navigation sequence number, incremented on each top-level navigation within the target.
        - `session_id` string — CDP session identifier for the target connection.
        - `target_id` string — Browser target identifier (stable across navigations within a tab).
        - `target_type` 'page' | 'background_page' | 'service_worker' | 'shared_worker' | 'other' — CDP target type of the page that produced the event.
        - `url` string — URL relevant to this event — page URL for navigation and page events, request URL for network events.
        - `args` string[] — All console arguments coerced to strings.
        - `level` string — CDP Runtime.consoleAPICalled type, passed through unfiltered from Chrome. error is routed to console_error events instead; all other CDP console types appear here. See CDP spec for the full enum.
        - `stack_trace` BrowserCallStack — CDP Runtime.StackTrace representing the JavaScript call stack at the time of an event. Fields use CDP naming conventions rather than snake_case to match the Chrome DevTools Protocol wire format.
          - `callFrames` object[], required — Ordered list of call frames, outermost first.
            - `columnNumber` integer, required — Zero-based column number within the line.
            - `functionName` string, required — JavaScript function name, or empty string for anonymous functions.
            - `lineNumber` integer, required — Zero-based line number within the script.
            - `scriptId` string, required — CDP script identifier.
            - `url` string, required — URL or name of the script file.
          - `description` string — Optional label for the stack trace (e.g. async cause).
          - `parent` BrowserCallStack — recursive
        - `text` string — First console argument coerced to string.
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `event` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — Event producer. cdp: Chrome DevTools Protocol events from the browser. kernel_api: Kernel API server. extension: injected Chrome extension. local_process: system process running alongside the browser.
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `truncated` boolean — True if the data field was truncated due to size limits.
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'console_log', required
    - BrowserConsoleErrorEvent — A browser console error or uncaught JavaScript exception event. Emitted from two distinct CDP sources with different data shapes. Runtime.consoleAPICalled (console.error calls) produces level, text, args, and stack_trace. Runtime.exceptionThrown (uncaught exceptions) produces text, line, column, source_url, and stack_trace. Fields not applicable to the source are absent.
      - `category` 'console', required
      - `data` object — Browser event context stamped by the browser monitor onto all CDP-sourced events. Identifies the target, frame, and navigation epoch in which the event occurred.
        - `frame_id` string — CDP frame identifier within the target.
        - `loader_id` string — CDP document loader identifier, reset on each navigation.
        - `nav_seq` integer — Monotonically increasing navigation sequence number, incremented on each top-level navigation within the target.
        - `session_id` string — CDP session identifier for the target connection.
        - `target_id` string — Browser target identifier (stable across navigations within a tab).
        - `target_type` 'page' | 'background_page' | 'service_worker' | 'shared_worker' | 'other' — CDP target type of the page that produced the event.
        - `url` string — URL relevant to this event — page URL for navigation and page events, request URL for network events.
        - `args` string[] — All console arguments coerced to strings. Present only when sourced from Runtime.consoleAPICalled.
        - `column` integer — Column number in the script where the exception was thrown. Present only when sourced from Runtime.exceptionThrown.
        - `level` string — CDP console type value, always "error". Present only when sourced from Runtime.consoleAPICalled.
        - `line` integer — Line number in the script where the exception was thrown. Present only when sourced from Runtime.exceptionThrown.
        - `source_url` string — URL of the script file that threw the exception. Present only when sourced from Runtime.exceptionThrown.
        - `stack_trace` BrowserCallStack — CDP Runtime.StackTrace representing the JavaScript call stack at the time of an event. Fields use CDP naming conventions rather than snake_case to match the Chrome DevTools Protocol wire format.
          - `callFrames` object[], required — Ordered list of call frames, outermost first.
            - `columnNumber` integer, required — Zero-based column number within the line.
            - `functionName` string, required — JavaScript function name, or empty string for anonymous functions.
            - `lineNumber` integer, required — Zero-based line number within the script.
            - `scriptId` string, required — CDP script identifier.
            - `url` string, required — URL or name of the script file.
          - `description` string — Optional label for the stack trace (e.g. async cause).
          - `parent` BrowserCallStack — recursive
        - `text` string, required — Human-readable error text, as the browser console would display it. For console.error() calls, the first argument coerced to a string. For uncaught exceptions, the prefix and error message, e.g. "Uncaught Error: boom" or "Uncaught (in promise) TypeError: x is not a function".
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `event` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — Event producer. cdp: Chrome DevTools Protocol events from the browser. kernel_api: Kernel API server. extension: injected Chrome extension. local_process: system process running alongside the browser.
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `truncated` boolean — True if the data field was truncated due to size limits.
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'console_error', required
    - BrowserNetworkRequestEvent — A browser network request sent event.
      - `category` 'network', required
      - `data` object — Browser event context stamped by the browser monitor onto all CDP-sourced events. Identifies the target, frame, and navigation epoch in which the event occurred.
        - `frame_id` string — CDP frame identifier within the target.
        - `loader_id` string — CDP document loader identifier, reset on each navigation.
        - `nav_seq` integer — Monotonically increasing navigation sequence number, incremented on each top-level navigation within the target.
        - `session_id` string — CDP session identifier for the target connection.
        - `target_id` string — Browser target identifier (stable across navigations within a tab).
        - `target_type` 'page' | 'background_page' | 'service_worker' | 'shared_worker' | 'other' — CDP target type of the page that produced the event.
        - `url` string — URL relevant to this event — page URL for navigation and page events, request URL for network events.
        - `document_url` string — URL of the document that initiated the request.
        - `headers` BrowserHttpHeaders — HTTP headers map forwarded as-is from CDP without normalization. Values are typically strings but may be any JSON type.
        - `initiator_type` string — CDP Initiator.type indicating what caused the request, passed through as-is from Chrome. Known values include script, parser, preload, and other.
        - `is_redirect` boolean — True if this request is the result of a redirect.
        - `method` string — HTTP method as sent on the wire (e.g. GET, POST).
        - `post_data` string — Request body for POST/PUT requests, if available.
        - `redirect_url` string — Original URL before the redirect, present when is_redirect is true.
        - `request_id` string — CDP request identifier, unique within the session.
        - `resource_type` string — CDP Network.ResourceType for the request, passed through as-is from Chrome. Known values include Document, Fetch, XHR, Script, Stylesheet, Image, Media, Font, TextTrack, EventSource, WebSocket, Manifest, Prefetch, Other, and more.
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `event` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — Event producer. cdp: Chrome DevTools Protocol events from the browser. kernel_api: Kernel API server. extension: injected Chrome extension. local_process: system process running alongside the browser.
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `truncated` boolean — True if the data field was truncated due to size limits.
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'network_request', required
    - BrowserNetworkResponseEvent — A browser network response received event. Fired after the response body is fully received, not when headers arrive.
      - `category` 'network', required
      - `data` object — Browser event context stamped by the browser monitor onto all CDP-sourced events. Identifies the target, frame, and navigation epoch in which the event occurred.
        - `frame_id` string — CDP frame identifier within the target.
        - `loader_id` string — CDP document loader identifier, reset on each navigation.
        - `nav_seq` integer — Monotonically increasing navigation sequence number, incremented on each top-level navigation within the target.
        - `session_id` string — CDP session identifier for the target connection.
        - `target_id` string — Browser target identifier (stable across navigations within a tab).
        - `target_type` 'page' | 'background_page' | 'service_worker' | 'shared_worker' | 'other' — CDP target type of the page that produced the event.
        - `url` string — URL relevant to this event — page URL for navigation and page events, request URL for network events.
        - `body` string — Truncated response body, present only for text MIME types.
        - `headers` BrowserHttpHeaders — HTTP headers map forwarded as-is from CDP without normalization. Values are typically strings but may be any JSON type.
        - `method` string — HTTP method of the original request.
        - `mime_type` string — MIME type of the response (e.g. text/html, application/json).
        - `request_id` string — CDP request identifier matching the originating network_request event.
        - `resource_type` string — CDP Network.ResourceType for the request, passed through as-is from Chrome. Known values include Document, Fetch, XHR, Script, Stylesheet, Image, Media, Font, TextTrack, EventSource, WebSocket, Manifest, Prefetch, Other, and more.
        - `status` integer — HTTP response status code.
        - `status_text` string — HTTP response status text (e.g. OK, Not Found).
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `event` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — Event producer. cdp: Chrome DevTools Protocol events from the browser. kernel_api: Kernel API server. extension: injected Chrome extension. local_process: system process running alongside the browser.
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `truncated` boolean — True if the data field was truncated due to size limits.
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'network_response', required
    - BrowserNetworkLoadingFailedEvent — A browser network loading failed event. If the request was already in flight when CDP attached (no prior network_request was emitted for it), url, frame_id, loader_id, and resource_type are absent; BrowserEventContext is partially populated in that case.
      - `category` 'network', required
      - `data` object — Browser event context stamped by the browser monitor onto all CDP-sourced events. Identifies the target, frame, and navigation epoch in which the event occurred.
        - `frame_id` string — CDP frame identifier within the target.
        - `loader_id` string — CDP document loader identifier, reset on each navigation.
        - `nav_seq` integer — Monotonically increasing navigation sequence number, incremented on each top-level navigation within the target.
        - `session_id` string — CDP session identifier for the target connection.
        - `target_id` string — Browser target identifier (stable across navigations within a tab).
        - `target_type` 'page' | 'background_page' | 'service_worker' | 'shared_worker' | 'other' — CDP target type of the page that produced the event.
        - `url` string — URL relevant to this event — page URL for navigation and page events, request URL for network events.
        - `canceled` boolean — True if the request was canceled by the browser or page script.
        - `error_text` string — Network error description (e.g. net::ERR_CONNECTION_REFUSED).
        - `request_id` string — CDP request identifier matching the originating network_request event.
        - `resource_type` string — CDP Network.ResourceType for the request, passed through as-is from Chrome. Known values include Document, Fetch, XHR, Script, Stylesheet, Image, Media, Font, TextTrack, EventSource, WebSocket, Manifest, Prefetch, Other, and more.
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `event` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — Event producer. cdp: Chrome DevTools Protocol events from the browser. kernel_api: Kernel API server. extension: injected Chrome extension. local_process: system process running alongside the browser.
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `truncated` boolean — True if the data field was truncated due to size limits.
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'network_loading_failed', required
    - BrowserNetworkIdleEvent — A browser network idle event emitted after a 500ms quiet period with no in-flight HTTP requests.
      - `category` 'network', required
      - `data` BrowserEventContext — Browser event context stamped by the browser monitor onto all CDP-sourced events. Identifies the target, frame, and navigation epoch in which the event occurred.
        - `frame_id` string — CDP frame identifier within the target.
        - `loader_id` string — CDP document loader identifier, reset on each navigation.
        - `nav_seq` integer — Monotonically increasing navigation sequence number, incremented on each top-level navigation within the target.
        - `session_id` string — CDP session identifier for the target connection.
        - `target_id` string — Browser target identifier (stable across navigations within a tab).
        - `target_type` 'page' | 'background_page' | 'service_worker' | 'shared_worker' | 'other' — CDP target type of the page that produced the event.
        - `url` string — URL relevant to this event — page URL for navigation and page events, request URL for network events.
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `event` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — Event producer. cdp: Chrome DevTools Protocol events from the browser. kernel_api: Kernel API server. extension: injected Chrome extension. local_process: system process running alongside the browser.
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `truncated` boolean — True if the data field was truncated due to size limits.
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'network_idle', required
    - BrowserProxyErrorEvent — A branded proxy-layer failure observed by the browser. Emitted when the metro egress host-proxy serves a branded 5xx error page whose response carries the X-Kernel-Proxy-Error header. Low-volume and carries a typed code. Its value is per-session and per-URL attribution for sessions that already capture the network stream: proxy failures are only observable while the CDP network collector is running, so this is an opt-in refinement of the raw network events rather than a default-on alerting signal.
      - `category` 'network', required
      - `data` object — Browser event context stamped by the browser monitor onto all CDP-sourced events. Identifies the target, frame, and navigation epoch in which the event occurred.
        - `frame_id` string — CDP frame identifier within the target.
        - `loader_id` string — CDP document loader identifier, reset on each navigation.
        - `nav_seq` integer — Monotonically increasing navigation sequence number, incremented on each top-level navigation within the target.
        - `session_id` string — CDP session identifier for the target connection.
        - `target_id` string — Browser target identifier (stable across navigations within a tab).
        - `target_type` 'page' | 'background_page' | 'service_worker' | 'shared_worker' | 'other' — CDP target type of the page that produced the event.
        - `url` string — URL relevant to this event — page URL for navigation and page events, request URL for network events.
        - `code` 'destination_blocked' | 'provider_blacklisted' | 'provider_unreachable' | 'proxy_unavailable' | 'upstream_timeout' | 'upstream_dns_failure' | 'upstream_connect_failed', required — Proxy-layer error code: the X-Kernel-Proxy-Error response header value from a branded 5xx error page served by the metro egress host-proxy. Values mirror what the proxy emits: destination_blocked, provider_blacklisted, provider_unreachable, proxy_unavailable, upstream_timeout, upstream_dns_failure, upstream_connect_failed. Unknown header values are dropped.
        - `method` string — HTTP method of the failed request, when known.
        - `request_id` string, required — CDP request identifier matching the originating request.
        - `resource_type` string — CDP Network.ResourceType for the request, when known.
        - `status` integer, required — HTTP response status of the branded error page (502).
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `event` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — Event producer. cdp: Chrome DevTools Protocol events from the browser. kernel_api: Kernel API server. extension: injected Chrome extension. local_process: system process running alongside the browser.
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `truncated` boolean — True if the data field was truncated due to size limits.
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'proxy_error', required
    - BrowserPageNavigationEvent — A browser page navigation started event (CDP Page.frameNavigated). Carries nav context fields inline but not nav_seq, as this event resets the navigation epoch.
      - `category` 'page', required
      - `data` object
        - `frame_id` string — CDP frame identifier of the navigated frame.
        - `loader_id` string — New CDP document loader identifier assigned for this navigation.
        - `parent_frame_id` string — Parent frame identifier for subframe navigations; absent for top-level navigations.
        - `session_id` string — CDP session identifier.
        - `target_id` string — Browser target identifier.
        - `target_type` 'page' | 'background_page' | 'service_worker' | 'shared_worker' | 'other' — CDP target type of the page that produced the event.
        - `url` string — URL navigated to.
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `event` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — Event producer. cdp: Chrome DevTools Protocol events from the browser. kernel_api: Kernel API server. extension: injected Chrome extension. local_process: system process running alongside the browser.
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `truncated` boolean — True if the data field was truncated due to size limits.
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'page_navigation', required
    - BrowserPageDomContentLoadedEvent — A browser DOMContentLoaded event (CDP Page.domContentEventFired).
      - `category` 'page', required
      - `data` object — Browser event context stamped by the browser monitor onto all CDP-sourced events. Identifies the target, frame, and navigation epoch in which the event occurred.
        - `frame_id` string — CDP frame identifier within the target.
        - `loader_id` string — CDP document loader identifier, reset on each navigation.
        - `nav_seq` integer — Monotonically increasing navigation sequence number, incremented on each top-level navigation within the target.
        - `session_id` string — CDP session identifier for the target connection.
        - `target_id` string — Browser target identifier (stable across navigations within a tab).
        - `target_type` 'page' | 'background_page' | 'service_worker' | 'shared_worker' | 'other' — CDP target type of the page that produced the event.
        - `url` string — URL relevant to this event — page URL for navigation and page events, request URL for network events.
        - `cdp_timestamp` number — Chrome monotonic clock value in seconds at which DOMContentLoaded fired, relative to browser process start (not Unix epoch). Use ts for wall-clock time.
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `event` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — Event producer. cdp: Chrome DevTools Protocol events from the browser. kernel_api: Kernel API server. extension: injected Chrome extension. local_process: system process running alongside the browser.
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `truncated` boolean — True if the data field was truncated due to size limits.
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'page_dom_content_loaded', required
    - BrowserPageLoadEvent — A browser page load event (CDP Page.loadEventFired).
      - `category` 'page', required
      - `data` object — Browser event context stamped by the browser monitor onto all CDP-sourced events. Identifies the target, frame, and navigation epoch in which the event occurred.
        - `frame_id` string — CDP frame identifier within the target.
        - `loader_id` string — CDP document loader identifier, reset on each navigation.
        - `nav_seq` integer — Monotonically increasing navigation sequence number, incremented on each top-level navigation within the target.
        - `session_id` string — CDP session identifier for the target connection.
        - `target_id` string — Browser target identifier (stable across navigations within a tab).
        - `target_type` 'page' | 'background_page' | 'service_worker' | 'shared_worker' | 'other' — CDP target type of the page that produced the event.
        - `url` string — URL relevant to this event — page URL for navigation and page events, request URL for network events.
        - `cdp_timestamp` number — Chrome monotonic clock value in seconds at which the load event fired, relative to browser process start (not Unix epoch). Use ts for wall-clock time.
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `event` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — Event producer. cdp: Chrome DevTools Protocol events from the browser. kernel_api: Kernel API server. extension: injected Chrome extension. local_process: system process running alongside the browser.
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `truncated` boolean — True if the data field was truncated due to size limits.
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'page_load', required
    - BrowserPageTabOpenedEvent — A new browser tab or target was opened (CDP Target.attachedToTarget for page targets). Fires before a CDP session is attached to the new target, so session_id, frame_id, loader_id, and nav_seq are absent; this event does not compose BrowserEventContext. Consumers reading context fields generically should treat it as a special case.
      - `category` 'page', required
      - `data` object
        - `opener_id` string — Target identifier of the tab that opened this one, if any.
        - `target_id` string — CDP target identifier for the newly opened tab.
        - `target_type` 'page' | 'background_page' | 'service_worker' | 'shared_worker' | 'other' — CDP target type of the page that produced the event.
        - `title` string — Initial page title of the new tab.
        - `url` string — Initial URL of the new tab.
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `event` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — Event producer. cdp: Chrome DevTools Protocol events from the browser. kernel_api: Kernel API server. extension: injected Chrome extension. local_process: system process running alongside the browser.
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `truncated` boolean — True if the data field was truncated due to size limits.
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'page_tab_opened', required
    - BrowserPageCrashedEvent — A page's renderer process crashed (an "Aw, Snap!" failure) while the browser process itself stayed alive. Reported on the crashed page's session, with the session and target ids on `source.metadata`. Captured only while the `page` category is enabled.
      - `category` 'page', required
      - `data` object
        - `target_id` string, required — CDP target identifier of the crashed page.
        - `target_type` 'page' | 'background_page' | 'service_worker' | 'shared_worker' | 'other', required — CDP target type of the page that produced the event.
        - `url` string, required — URL the page was on when its renderer process crashed.
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `event` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — Event producer. cdp: Chrome DevTools Protocol events from the browser. kernel_api: Kernel API server. extension: injected Chrome extension. local_process: system process running alongside the browser.
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `truncated` boolean — True if the data field was truncated due to size limits.
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'page_crashed', required
    - BrowserPageLayoutShiftEvent — A browser cumulative layout shift (CLS) event from the Performance Timeline API.
      - `category` 'page', required
      - `data` object — Browser event context stamped by the browser monitor onto all CDP-sourced events. Identifies the target, frame, and navigation epoch in which the event occurred.
        - `frame_id` string — CDP frame identifier within the target.
        - `loader_id` string — CDP document loader identifier, reset on each navigation.
        - `nav_seq` integer — Monotonically increasing navigation sequence number, incremented on each top-level navigation within the target.
        - `session_id` string — CDP session identifier for the target connection.
        - `target_id` string — Browser target identifier (stable across navigations within a tab).
        - `target_type` 'page' | 'background_page' | 'service_worker' | 'shared_worker' | 'other' — CDP target type of the page that produced the event.
        - `url` string — URL relevant to this event — page URL for navigation and page events, request URL for network events.
        - `duration` number — Duration of the layout shift entry in milliseconds (always 0 for layout shifts per spec).
        - `layout_shift_details` object — PerformanceLayoutShift attributes from the Performance Timeline entry.
          - `had_recent_input` boolean — True if the layout shift was preceded by user input within 500ms, excluding it from CLS.
          - `value` number — Layout shift score for this entry (contribution to CLS).
        - `source_frame_id` string — CDP frame identifier of the frame where the layout shift occurred.
        - `time` number — Performance Timeline timestamp of the layout shift in milliseconds.
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `event` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — Event producer. cdp: Chrome DevTools Protocol events from the browser. kernel_api: Kernel API server. extension: injected Chrome extension. local_process: system process running alongside the browser.
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `truncated` boolean — True if the data field was truncated due to size limits.
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'page_layout_shift', required
    - BrowserPageLcpEvent — A browser Largest Contentful Paint (LCP) event from the Performance Timeline API.
      - `category` 'page', required
      - `data` object — Browser event context stamped by the browser monitor onto all CDP-sourced events. Identifies the target, frame, and navigation epoch in which the event occurred.
        - `frame_id` string — CDP frame identifier within the target.
        - `loader_id` string — CDP document loader identifier, reset on each navigation.
        - `nav_seq` integer — Monotonically increasing navigation sequence number, incremented on each top-level navigation within the target.
        - `session_id` string — CDP session identifier for the target connection.
        - `target_id` string — Browser target identifier (stable across navigations within a tab).
        - `target_type` 'page' | 'background_page' | 'service_worker' | 'shared_worker' | 'other' — CDP target type of the page that produced the event.
        - `url` string — URL relevant to this event — page URL for navigation and page events, request URL for network events.
        - `lcp_details` object — LargestContentfulPaint attributes from the Performance Timeline entry.
          - `element_id` string — id attribute of the LCP element, if present.
          - `load_time` number — Load time of the LCP element in milliseconds.
          - `node_id` integer — CDP DOM node identifier of the LCP element.
          - `render_time` number — Render time of the LCP element in milliseconds; 0 for cross-origin images without Timing-Allow-Origin.
          - `size` number — Visible area of the LCP element in pixels squared.
          - `url` string — URL of the LCP element for image or video elements.
        - `source_frame_id` string — CDP frame identifier of the frame where the LCP element was rendered.
        - `time` number — Performance Timeline timestamp of the LCP entry in milliseconds.
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `event` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — Event producer. cdp: Chrome DevTools Protocol events from the browser. kernel_api: Kernel API server. extension: injected Chrome extension. local_process: system process running alongside the browser.
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `truncated` boolean — True if the data field was truncated due to size limits.
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'page_lcp', required
    - BrowserPageLayoutSettledEvent — A browser layout settled event emitted 1 second after page load with no intervening layout shifts, indicating visual stability. Each layout shift resets the 1-second timer.
      - `category` 'page', required
      - `data` BrowserEventContext — Browser event context stamped by the browser monitor onto all CDP-sourced events. Identifies the target, frame, and navigation epoch in which the event occurred.
        - `frame_id` string — CDP frame identifier within the target.
        - `loader_id` string — CDP document loader identifier, reset on each navigation.
        - `nav_seq` integer — Monotonically increasing navigation sequence number, incremented on each top-level navigation within the target.
        - `session_id` string — CDP session identifier for the target connection.
        - `target_id` string — Browser target identifier (stable across navigations within a tab).
        - `target_type` 'page' | 'background_page' | 'service_worker' | 'shared_worker' | 'other' — CDP target type of the page that produced the event.
        - `url` string — URL relevant to this event — page URL for navigation and page events, request URL for network events.
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `event` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — Event producer. cdp: Chrome DevTools Protocol events from the browser. kernel_api: Kernel API server. extension: injected Chrome extension. local_process: system process running alongside the browser.
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `truncated` boolean — True if the data field was truncated due to size limits.
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'page_layout_settled', required
    - BrowserPageNavigationSettledEvent — Emitted when page_dom_content_loaded and page_layout_settled have both fired for the same navigation, indicating the page is loaded and visually stable. Independent of network_idle; a single pending request does not block it.
      - `category` 'page', required
      - `data` BrowserEventContext — Browser event context stamped by the browser monitor onto all CDP-sourced events. Identifies the target, frame, and navigation epoch in which the event occurred.
        - `frame_id` string — CDP frame identifier within the target.
        - `loader_id` string — CDP document loader identifier, reset on each navigation.
        - `nav_seq` integer — Monotonically increasing navigation sequence number, incremented on each top-level navigation within the target.
        - `session_id` string — CDP session identifier for the target connection.
        - `target_id` string — Browser target identifier (stable across navigations within a tab).
        - `target_type` 'page' | 'background_page' | 'service_worker' | 'shared_worker' | 'other' — CDP target type of the page that produced the event.
        - `url` string — URL relevant to this event — page URL for navigation and page events, request URL for network events.
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `event` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — Event producer. cdp: Chrome DevTools Protocol events from the browser. kernel_api: Kernel API server. extension: injected Chrome extension. local_process: system process running alongside the browser.
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `truncated` boolean — True if the data field was truncated due to size limits.
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'page_navigation_settled', required
    - BrowserInteractionClickEvent — A browser user click event captured via injected page script.
      - `category` 'interaction', required
      - `data` object — Browser event context stamped by the browser monitor onto all CDP-sourced events. Identifies the target, frame, and navigation epoch in which the event occurred.
        - `frame_id` string — CDP frame identifier within the target.
        - `loader_id` string — CDP document loader identifier, reset on each navigation.
        - `nav_seq` integer — Monotonically increasing navigation sequence number, incremented on each top-level navigation within the target.
        - `session_id` string — CDP session identifier for the target connection.
        - `target_id` string — Browser target identifier (stable across navigations within a tab).
        - `target_type` 'page' | 'background_page' | 'service_worker' | 'shared_worker' | 'other' — CDP target type of the page that produced the event.
        - `url` string — URL relevant to this event — page URL for navigation and page events, request URL for network events.
        - `selector` string — CSS selector path to the clicked element.
        - `tag` string — HTML tag name of the clicked element in uppercase (e.g. BUTTON, A, DIV).
        - `text` string — Visible text content of the clicked element, trimmed.
        - `true` integer — Viewport y-coordinate of the click in CSS pixels.
        - `x` integer — Viewport x-coordinate of the click in CSS pixels.
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `event` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — Event producer. cdp: Chrome DevTools Protocol events from the browser. kernel_api: Kernel API server. extension: injected Chrome extension. local_process: system process running alongside the browser.
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `truncated` boolean — True if the data field was truncated due to size limits.
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'interaction_click', required
    - BrowserInteractionKeyEvent — A browser keyboard event captured via injected page script.
      - `category` 'interaction', required
      - `data` object — Browser event context stamped by the browser monitor onto all CDP-sourced events. Identifies the target, frame, and navigation epoch in which the event occurred.
        - `frame_id` string — CDP frame identifier within the target.
        - `loader_id` string — CDP document loader identifier, reset on each navigation.
        - `nav_seq` integer — Monotonically increasing navigation sequence number, incremented on each top-level navigation within the target.
        - `session_id` string — CDP session identifier for the target connection.
        - `target_id` string — Browser target identifier (stable across navigations within a tab).
        - `target_type` 'page' | 'background_page' | 'service_worker' | 'shared_worker' | 'other' — CDP target type of the page that produced the event.
        - `url` string — URL relevant to this event — page URL for navigation and page events, request URL for network events.
        - `key` string — Key value from the KeyboardEvent (e.g. Enter, Backspace, a).
        - `selector` string — CSS selector path to the element that had focus when the key was pressed.
        - `tag` string — HTML tag name of the focused element in uppercase (e.g. INPUT, TEXTAREA, DIV).
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `event` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — Event producer. cdp: Chrome DevTools Protocol events from the browser. kernel_api: Kernel API server. extension: injected Chrome extension. local_process: system process running alongside the browser.
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `truncated` boolean — True if the data field was truncated due to size limits.
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'interaction_key', required
    - BrowserInteractionScrollSettledEvent — A browser scroll settled event emitted after scroll position stops changing, captured via injected page script.
      - `category` 'interaction', required
      - `data` object — Browser event context stamped by the browser monitor onto all CDP-sourced events. Identifies the target, frame, and navigation epoch in which the event occurred.
        - `frame_id` string — CDP frame identifier within the target.
        - `loader_id` string — CDP document loader identifier, reset on each navigation.
        - `nav_seq` integer — Monotonically increasing navigation sequence number, incremented on each top-level navigation within the target.
        - `session_id` string — CDP session identifier for the target connection.
        - `target_id` string — Browser target identifier (stable across navigations within a tab).
        - `target_type` 'page' | 'background_page' | 'service_worker' | 'shared_worker' | 'other' — CDP target type of the page that produced the event.
        - `url` string — URL relevant to this event — page URL for navigation and page events, request URL for network events.
        - `from_x` integer — Scroll x-position at the start of the scroll gesture in CSS pixels.
        - `from_y` integer — Scroll y-position at the start of the scroll gesture in CSS pixels.
        - `target_selector` string — CSS selector path to the scrolled element.
        - `to_x` integer — Final scroll x-position after the gesture settled in CSS pixels.
        - `to_y` integer — Final scroll y-position after the gesture settled in CSS pixels.
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `event` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — Event producer. cdp: Chrome DevTools Protocol events from the browser. kernel_api: Kernel API server. extension: injected Chrome extension. local_process: system process running alongside the browser.
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `truncated` boolean — True if the data field was truncated due to size limits.
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'interaction_scroll_settled', required
    - BrowserMonitorScreenshotEvent — A periodic screenshot of the browser viewport.
      - `category` 'screenshot', required
      - `data` object
        - `png` string, byte — Base64-encoded PNG screenshot of the browser viewport.
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `event` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — Event producer. cdp: Chrome DevTools Protocol events from the browser. kernel_api: Kernel API server. extension: injected Chrome extension. local_process: system process running alongside the browser.
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `truncated` boolean — True if the data field was truncated due to size limits.
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'monitor_screenshot', required
    - BrowserMonitorDisconnectedEvent — The CDP connection to Chrome was lost. Telemetry events may be dropped until monitor_reconnected arrives. Treat any in-progress computed state (network_idle, page_layout_settled) as unreliable until then.
      - `category` 'monitor', required
      - `data` object
        - `reason` 'chrome_restarted' — Reason for the disconnection. chrome_restarted: Chrome process restarted.
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `event` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — Event producer. cdp: Chrome DevTools Protocol events from the browser. kernel_api: Kernel API server. extension: injected Chrome extension. local_process: system process running alongside the browser.
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `truncated` boolean — True if the data field was truncated due to size limits.
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'monitor_disconnected', required
    - BrowserMonitorReconnectedEvent — The CDP connection to Chrome was successfully re-established after a disconnection. Events emitted during the gap are lost. Computed state is reset, so navigation and network tracking restart fresh from this point.
      - `category` 'monitor', required
      - `data` object
        - `reconnect_duration_ms` integer — Wall-clock time in milliseconds taken to reconnect after the disconnection.
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `event` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — Event producer. cdp: Chrome DevTools Protocol events from the browser. kernel_api: Kernel API server. extension: injected Chrome extension. local_process: system process running alongside the browser.
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `truncated` boolean — True if the data field was truncated due to size limits.
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'monitor_reconnected', required
    - BrowserMonitorReconnectFailedEvent — The CDP connection to Chrome could not be re-established after exhausting all reconnection attempts. No further telemetry events will arrive on this session.
      - `category` 'monitor', required
      - `data` object
        - `reason` 'reconnect_exhausted' — Reason for the reconnection failure. reconnect_exhausted: all retry attempts were used up without successfully restoring the CDP connection.
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `event` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — Event producer. cdp: Chrome DevTools Protocol events from the browser. kernel_api: Kernel API server. extension: injected Chrome extension. local_process: system process running alongside the browser.
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `truncated` boolean — True if the data field was truncated due to size limits.
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'monitor_reconnect_failed', required
    - BrowserMonitorInitFailedEvent — The CDP session could not be initialized.
      - `category` 'monitor', required
      - `data` object
        - `step` string — The CDP method or initialization step that failed (e.g. Target.setAutoAttach).
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `event` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — Event producer. cdp: Chrome DevTools Protocol events from the browser. kernel_api: Kernel API server. extension: injected Chrome extension. local_process: system process running alongside the browser.
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `truncated` boolean — True if the data field was truncated due to size limits.
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'monitor_init_failed', required
    - BrowserApiCallEvent — An agent-driven HTTP call that drives the browser, handled by the in-VM API server. Calls that manage the VM instead emit platform_api_call.
      - `category` 'control', required
      - `data` object
        - `code` string — Source submitted to the Playwright code-execution endpoint, capped at 8192 bytes like every other captured string. A capped value is cut on a character boundary and ends in `...[truncated]`. Absent for every other operation.
        - `duration_ms` number, required — Wall-clock duration of the handler in milliseconds.
        - `operation_id` string, required — Matched route's operation, named as the in-VM API names its handler (e.g. ProcessExec, TakeScreenshot).
        - `request_id` string, required — Per-request identifier from the in-VM API request middleware.
        - `status` integer, required — HTTP response status code.
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `event` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — Event producer. cdp: Chrome DevTools Protocol events from the browser. kernel_api: Kernel API server. extension: injected Chrome extension. local_process: system process running alongside the browser.
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `truncated` boolean — True if the data field was truncated due to size limits.
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'api_call', required
    - BrowserPlatformApiCallEvent — An HTTP call that manages the browser VM rather than driving the browser, handled by the in-VM API server — recording lifecycle, filesystem and process management, telemetry and browser configuration. Mostly platform-induced (e.g. profile save, replay capture) rather than agent actions.
      - `category` 'platform', required
      - `data` object
        - `duration_ms` number, required — Wall-clock duration of the handler in milliseconds.
        - `operation_id` string, required — Matched route's operation, named as the in-VM API names its handler (e.g. ProcessExec, StartRecording).
        - `request_id` string, required — Per-request identifier from the in-VM API request middleware.
        - `status` integer, required — HTTP response status code.
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `event` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — Event producer. cdp: Chrome DevTools Protocol events from the browser. kernel_api: Kernel API server. extension: injected Chrome extension. local_process: system process running alongside the browser.
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `truncated` boolean — True if the data field was truncated due to size limits.
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'platform_api_call', required
    - BrowserCdpCommandEvent — A browser-control command a client sent over the CDP WebSocket proxy: input gestures, navigation, dialog handling, file selection and screenshots. Configuration commands and the DOM/Runtime traffic a client library issues on the caller's behalf are not reported. One event per browser-control command that reached the browser. The command stream is not sampled, coalesced or reordered. An event is lost only when the method is excluded by telemetry configuration, when the command's arguments do not decode, or when classification cannot keep up. Exclusions are counted in `cdp_disconnect.telemetry_excluded`; the rest in `cdp_disconnect.telemetry_dropped`.
      - `category` 'control', required
      - `data` union, required — Per-command payload for `cdp_command` events, discriminated by `method`. Each variant carries only the arguments approved for that command: values that could hold a secret — typed and composition text, URLs, referrers, scripts, templates, file paths, drag contents and autofill values — are replaced by a length, a count, a presence flag, an enum or a URL scheme and host.
        - BrowserCdpInputDispatchMouseEventCommandData — Sanitized `Input.dispatchMouseEvent` arguments. Canonical input: `Input.dispatchMouseEvent` in devtools-protocol@2d019e73, pinned at https://github.com/ChromeDevTools/devtools-protocol/blob/2d019e73eb371d1d6985d26d395d78bd8f8a22ba/json/browser_protocol.json. Every argument of this command has a retained or redacted decision in lib/devtoolsproxy/testdata/cdp_arguments.yaml.
          - `button` 'none' | 'left' | 'middle' | 'right' | 'back' | 'forward' | 'other' — Mouse button named by a command. Canonical values from devtools-protocol@2d019e73. `other` stands for a value outside that set, so a client cannot put an arbitrary string into the stream.
          - `buttons` integer — Bit field of buttons held down. Non-zero on a `mouseMoved` means the move is a drag path.
          - `click_count` integer — Number of times the button was clicked (2 is a double click).
          - `command_id` integer — The command's JSON-RPC id, so the command can be joined to the result the browser returned for it. Absent when the client sent none.
          - `connection_id` string — Identifies the CDP proxy connection the command arrived on, matching `cdp_connect` and `cdp_disconnect`. Two clients driving the same browser are told apart by this.
          - `delta_x` number, double — Horizontal scroll delta, for `mouseWheel`.
          - `delta_y` number, double — Vertical scroll delta, for `mouseWheel`.
          - `event_type` 'mousePressed' | 'mouseReleased' | 'mouseMoved' | 'mouseWheel' | 'other', required — Mouse event phase. Canonical values from devtools-protocol@2d019e73. `other` stands for a value outside that set, so a client cannot put an arbitrary string into the stream.
          - `force` number, double — Normalized pressure, 0 to 1.
          - `method` 'Input.dispatchMouseEvent', required
          - `modifiers` integer — Bit field of held modifier keys (1=Alt, 2=Ctrl, 4=Meta, 8=Shift).
          - `pointer_type` 'mouse' | 'pen' | 'other' — Pointer that generated an input event. Canonical values from devtools-protocol@2d019e73. `other` stands for a value outside that set, so a client cannot put an arbitrary string into the stream.
          - `session_id` string — CDP session identifier the command was addressed to. Absent for browser-level commands. Clipped to 128 characters.
          - `tangential_pressure` number, double — Normalized tangential pressure, -1 to 1.
          - `tilt_x` number, double — Pen tilt from the Y-Z plane, in degrees.
          - `tilt_y` number, double — Pen tilt from the X-Z plane, in degrees.
          - `true` number, double — Viewport y coordinate in CSS pixels.
          - `twist` integer — Pen clockwise rotation, in degrees.
          - `x` number, double — Viewport x coordinate in CSS pixels.
        - BrowserCdpInputDispatchKeyEventCommandData — Sanitized `Input.dispatchKeyEvent` arguments. Canonical input: `Input.dispatchKeyEvent` in devtools-protocol@2d019e73, pinned at https://github.com/ChromeDevTools/devtools-protocol/blob/2d019e73eb371d1d6985d26d395d78bd8f8a22ba/json/browser_protocol.json. Every argument of this command has a retained or redacted decision in lib/devtoolsproxy/testdata/cdp_arguments.yaml.
          - `auto_repeat` boolean — Whether the event was generated by key repeat.
          - `command_count` integer — Number of editing commands (e.g. `selectAll`) carried by the event.
          - `command_id` integer — The command's JSON-RPC id, so the command can be joined to the result the browser returned for it. Absent when the client sent none.
          - `connection_id` string — Identifies the CDP proxy connection the command arrived on, matching `cdp_connect` and `cdp_disconnect`. Two clients driving the same browser are told apart by this.
          - `event_type` 'keyDown' | 'keyUp' | 'rawKeyDown' | 'char' | 'other', required — Key event phase. Canonical values from devtools-protocol@2d019e73. `other` stands for a value outside that set, so a client cannot put an arbitrary string into the stream.
          - `is_keypad` boolean — Whether the key is on the numeric keypad.
          - `is_system_key` boolean — Whether the event is a system key event.
          - `location` integer — Keyboard location (1=left, 2=right, 3=numpad).
          - `method` 'Input.dispatchKeyEvent', required
          - `modifiers` integer — Bit field of held modifier keys (1=Alt, 2=Ctrl, 4=Meta, 8=Shift).
          - `named_key` string — Key that commands the page rather than typing into it (e.g. `Enter`, `Tab`, `ArrowDown`, `F5`). Keys that produce a character are never captured; those are counted by `text_length`.
          - `session_id` string — CDP session identifier the command was addressed to. Absent for browser-level commands. Clipped to 128 characters.
          - `text_length` integer — Number of characters the command submitted. The text itself is never captured.
        - BrowserCdpInputInsertTextCommandData — Sanitized `Input.insertText` arguments. Canonical input: `Input.insertText` in devtools-protocol@2d019e73, pinned at https://github.com/ChromeDevTools/devtools-protocol/blob/2d019e73eb371d1d6985d26d395d78bd8f8a22ba/json/browser_protocol.json. Every argument of this command has a retained or redacted decision in lib/devtoolsproxy/testdata/cdp_arguments.yaml.
          - `command_id` integer — The command's JSON-RPC id, so the command can be joined to the result the browser returned for it. Absent when the client sent none.
          - `connection_id` string — Identifies the CDP proxy connection the command arrived on, matching `cdp_connect` and `cdp_disconnect`. Two clients driving the same browser are told apart by this.
          - `method` 'Input.insertText', required
          - `session_id` string — CDP session identifier the command was addressed to. Absent for browser-level commands. Clipped to 128 characters.
          - `text_length` integer, required — Number of characters inserted. The text itself is never captured.
        - BrowserCdpInputImeSetCompositionCommandData — Sanitized `Input.imeSetComposition` arguments. Canonical input: `Input.imeSetComposition` in devtools-protocol@2d019e73, pinned at https://github.com/ChromeDevTools/devtools-protocol/blob/2d019e73eb371d1d6985d26d395d78bd8f8a22ba/json/browser_protocol.json. Every argument of this command has a retained or redacted decision in lib/devtoolsproxy/testdata/cdp_arguments.yaml.
          - `command_id` integer — The command's JSON-RPC id, so the command can be joined to the result the browser returned for it. Absent when the client sent none.
          - `connection_id` string — Identifies the CDP proxy connection the command arrived on, matching `cdp_connect` and `cdp_disconnect`. Two clients driving the same browser are told apart by this.
          - `method` 'Input.imeSetComposition', required
          - `replacement_end` integer — Replacement range end offset.
          - `replacement_start` integer — Replacement range start offset.
          - `selection_end` integer — Selection end offset within the composition.
          - `selection_start` integer — Selection start offset within the composition.
          - `session_id` string — CDP session identifier the command was addressed to. Absent for browser-level commands. Clipped to 128 characters.
          - `text_length` integer, required — Number of characters in the composition. The text itself is never captured.
        - BrowserCdpInputDispatchTouchEventCommandData — Sanitized `Input.dispatchTouchEvent` arguments. Canonical input: `Input.dispatchTouchEvent` in devtools-protocol@2d019e73, pinned at https://github.com/ChromeDevTools/devtools-protocol/blob/2d019e73eb371d1d6985d26d395d78bd8f8a22ba/json/browser_protocol.json. Every argument of this command has a retained or redacted decision in lib/devtoolsproxy/testdata/cdp_arguments.yaml.
          - `command_id` integer — The command's JSON-RPC id, so the command can be joined to the result the browser returned for it. Absent when the client sent none.
          - `connection_id` string — Identifies the CDP proxy connection the command arrived on, matching `cdp_connect` and `cdp_disconnect`. Two clients driving the same browser are told apart by this.
          - `event_type` 'touchStart' | 'touchEnd' | 'touchMove' | 'touchCancel' | 'other', required — Touch event phase. Canonical values from devtools-protocol@2d019e73. `other` stands for a value outside that set, so a client cannot put an arbitrary string into the stream.
          - `force` number, double — Normalized pressure of the first touch point, 0 to 1.
          - `method` 'Input.dispatchTouchEvent', required
          - `modifiers` integer — Bit field of held modifier keys (1=Alt, 2=Ctrl, 4=Meta, 8=Shift).
          - `radius_x` number, double — Horizontal radius of the first touch point.
          - `radius_y` number, double — Vertical radius of the first touch point.
          - `rotation_angle` number, double — Rotation of the first touch point, in degrees.
          - `session_id` string — CDP session identifier the command was addressed to. Absent for browser-level commands. Clipped to 128 characters.
          - `tangential_pressure` number, double — Normalized tangential pressure of the first touch point, -1 to 1.
          - `tilt_x` number, double — Tilt of the first touch point from the Y-Z plane, in degrees.
          - `tilt_y` number, double — Tilt of the first touch point from the X-Z plane, in degrees.
          - `touch_point_count` integer, required — Number of active touch points the command carried.
          - `true` number, double — Viewport y coordinate of the first touch point.
          - `twist` integer — Clockwise rotation of the first touch point, in degrees.
          - `x` number, double — Viewport x coordinate of the first touch point. Touch coordinates live inside `touchPoints`, so this is the primary point rather than a command-level argument.
        - BrowserCdpInputDispatchDragEventCommandData — Sanitized `Input.dispatchDragEvent` arguments. Canonical input: `Input.dispatchDragEvent` in devtools-protocol@2d019e73, pinned at https://github.com/ChromeDevTools/devtools-protocol/blob/2d019e73eb371d1d6985d26d395d78bd8f8a22ba/json/browser_protocol.json. Every argument of this command has a retained or redacted decision in lib/devtoolsproxy/testdata/cdp_arguments.yaml.
          - `command_id` integer — The command's JSON-RPC id, so the command can be joined to the result the browser returned for it. Absent when the client sent none.
          - `connection_id` string — Identifies the CDP proxy connection the command arrived on, matching `cdp_connect` and `cdp_disconnect`. Two clients driving the same browser are told apart by this.
          - `drag_file_count` integer — Number of files in the drag payload. File paths are never captured.
          - `drag_item_count` integer — Number of items in the drag payload. Item contents are never captured.
          - `drag_mime_categories` BrowserCdpDragMimeCategory[] — Distinct top-level MIME categories of the drag items (e.g. `text`, `image`, `application`). Subtypes and contents are never captured. A value the protocol does not define is reported as `other`.
          - `drag_operations_mask` integer — Bit field of allowed drag operations (1=copy, 2=link, 16=move).
          - `event_type` 'dragEnter' | 'dragOver' | 'drop' | 'dragCancel' | 'other', required — Drag event phase. Canonical values from devtools-protocol@2d019e73. `other` stands for a value outside that set, so a client cannot put an arbitrary string into the stream.
          - `method` 'Input.dispatchDragEvent', required
          - `modifiers` integer — Bit field of held modifier keys (1=Alt, 2=Ctrl, 4=Meta, 8=Shift).
          - `session_id` string — CDP session identifier the command was addressed to. Absent for browser-level commands. Clipped to 128 characters.
          - `true` number, double — Viewport y coordinate in CSS pixels.
          - `x` number, double — Viewport x coordinate in CSS pixels.
        - BrowserCdpInputCancelDraggingCommandData — Sanitized `Input.cancelDragging` arguments. Canonical input: `Input.cancelDragging` in devtools-protocol@2d019e73, pinned at https://github.com/ChromeDevTools/devtools-protocol/blob/2d019e73eb371d1d6985d26d395d78bd8f8a22ba/json/browser_protocol.json. Every argument of this command has a retained or redacted decision in lib/devtoolsproxy/testdata/cdp_arguments.yaml.
          - `command_id` integer — The command's JSON-RPC id, so the command can be joined to the result the browser returned for it. Absent when the client sent none.
          - `connection_id` string — Identifies the CDP proxy connection the command arrived on, matching `cdp_connect` and `cdp_disconnect`. Two clients driving the same browser are told apart by this.
          - `method` 'Input.cancelDragging', required
          - `session_id` string — CDP session identifier the command was addressed to. Absent for browser-level commands. Clipped to 128 characters.
        - BrowserCdpInputEmulateTouchFromMouseEventCommandData — Sanitized `Input.emulateTouchFromMouseEvent` arguments. Canonical input: `Input.emulateTouchFromMouseEvent` in devtools-protocol@2d019e73, pinned at https://github.com/ChromeDevTools/devtools-protocol/blob/2d019e73eb371d1d6985d26d395d78bd8f8a22ba/json/browser_protocol.json. Every argument of this command has a retained or redacted decision in lib/devtoolsproxy/testdata/cdp_arguments.yaml.
          - `button` 'none' | 'left' | 'middle' | 'right' | 'back' | 'forward' | 'other' — Mouse button named by a command. Canonical values from devtools-protocol@2d019e73. `other` stands for a value outside that set, so a client cannot put an arbitrary string into the stream.
          - `click_count` integer — Number of times the button was clicked.
          - `command_id` integer — The command's JSON-RPC id, so the command can be joined to the result the browser returned for it. Absent when the client sent none.
          - `connection_id` string — Identifies the CDP proxy connection the command arrived on, matching `cdp_connect` and `cdp_disconnect`. Two clients driving the same browser are told apart by this.
          - `delta_x` number, double — Horizontal scroll delta.
          - `delta_y` number, double — Vertical scroll delta.
          - `event_type` 'mousePressed' | 'mouseReleased' | 'mouseMoved' | 'mouseWheel' | 'other', required — Mouse event phase. Canonical values from devtools-protocol@2d019e73. `other` stands for a value outside that set, so a client cannot put an arbitrary string into the stream.
          - `method` 'Input.emulateTouchFromMouseEvent', required
          - `modifiers` integer — Bit field of held modifier keys (1=Alt, 2=Ctrl, 4=Meta, 8=Shift).
          - `session_id` string — CDP session identifier the command was addressed to. Absent for browser-level commands. Clipped to 128 characters.
          - `true` number, double — Viewport y coordinate in CSS pixels.
          - `x` number, double — Viewport x coordinate in CSS pixels.
        - BrowserCdpInputSynthesizePinchGestureCommandData — Sanitized `Input.synthesizePinchGesture` arguments. Canonical input: `Input.synthesizePinchGesture` in devtools-protocol@2d019e73, pinned at https://github.com/ChromeDevTools/devtools-protocol/blob/2d019e73eb371d1d6985d26d395d78bd8f8a22ba/json/browser_protocol.json. Every argument of this command has a retained or redacted decision in lib/devtoolsproxy/testdata/cdp_arguments.yaml.
          - `command_id` integer — The command's JSON-RPC id, so the command can be joined to the result the browser returned for it. Absent when the client sent none.
          - `connection_id` string — Identifies the CDP proxy connection the command arrived on, matching `cdp_connect` and `cdp_disconnect`. Two clients driving the same browser are told apart by this.
          - `gesture_source_type` 'default' | 'touch' | 'mouse' | 'other' — Input source a synthesized gesture emulates. Canonical values from devtools-protocol@2d019e73. `other` stands for a value outside that set, so a client cannot put an arbitrary string into the stream.
          - `method` 'Input.synthesizePinchGesture', required
          - `relative_speed` integer — Relative pointer speed, in pixels per second.
          - `scale_factor` number, double — Relative scale of the pinch (>1 zooms in).
          - `session_id` string — CDP session identifier the command was addressed to. Absent for browser-level commands. Clipped to 128 characters.
          - `true` number, double — Viewport y coordinate in CSS pixels.
          - `x` number, double — Viewport x coordinate in CSS pixels.
        - BrowserCdpInputSynthesizeScrollGestureCommandData — Sanitized `Input.synthesizeScrollGesture` arguments. Canonical input: `Input.synthesizeScrollGesture` in devtools-protocol@2d019e73, pinned at https://github.com/ChromeDevTools/devtools-protocol/blob/2d019e73eb371d1d6985d26d395d78bd8f8a22ba/json/browser_protocol.json. Every argument of this command has a retained or redacted decision in lib/devtoolsproxy/testdata/cdp_arguments.yaml.
          - `command_id` integer — The command's JSON-RPC id, so the command can be joined to the result the browser returned for it. Absent when the client sent none.
          - `connection_id` string — Identifies the CDP proxy connection the command arrived on, matching `cdp_connect` and `cdp_disconnect`. Two clients driving the same browser are told apart by this.
          - `gesture_source_type` 'default' | 'touch' | 'mouse' | 'other' — Input source a synthesized gesture emulates. Canonical values from devtools-protocol@2d019e73. `other` stands for a value outside that set, so a client cannot put an arbitrary string into the stream.
          - `method` 'Input.synthesizeScrollGesture', required
          - `prevent_fling` boolean — Whether fling was suppressed.
          - `repeat_count` integer — Number of additional repeats of the scroll.
          - `repeat_delay_ms` integer — Delay between repeats, in milliseconds.
          - `session_id` string — CDP session identifier the command was addressed to. Absent for browser-level commands. Clipped to 128 characters.
          - `speed` integer — Swipe speed in pixels per second.
          - `true` number, double — Viewport y coordinate in CSS pixels.
          - `x` number, double — Viewport x coordinate in CSS pixels.
          - `x_distance` number, double — Horizontal scroll distance in CSS pixels; positive scrolls left.
          - `x_overscroll` number, double — Additional horizontal distance scrolled past the end.
          - `y_distance` number, double — Vertical scroll distance in CSS pixels; positive scrolls up.
          - `y_overscroll` number, double — Additional vertical distance scrolled past the end.
        - BrowserCdpInputSynthesizeTapGestureCommandData — Sanitized `Input.synthesizeTapGesture` arguments. Canonical input: `Input.synthesizeTapGesture` in devtools-protocol@2d019e73, pinned at https://github.com/ChromeDevTools/devtools-protocol/blob/2d019e73eb371d1d6985d26d395d78bd8f8a22ba/json/browser_protocol.json. Every argument of this command has a retained or redacted decision in lib/devtoolsproxy/testdata/cdp_arguments.yaml.
          - `command_id` integer — The command's JSON-RPC id, so the command can be joined to the result the browser returned for it. Absent when the client sent none.
          - `connection_id` string — Identifies the CDP proxy connection the command arrived on, matching `cdp_connect` and `cdp_disconnect`. Two clients driving the same browser are told apart by this.
          - `duration` integer — Duration between touchdown and touchup, in milliseconds.
          - `gesture_source_type` 'default' | 'touch' | 'mouse' | 'other' — Input source a synthesized gesture emulates. Canonical values from devtools-protocol@2d019e73. `other` stands for a value outside that set, so a client cannot put an arbitrary string into the stream.
          - `method` 'Input.synthesizeTapGesture', required
          - `session_id` string — CDP session identifier the command was addressed to. Absent for browser-level commands. Clipped to 128 characters.
          - `tap_count` integer — Number of times to tap (2 is a double tap).
          - `true` number, double — Viewport y coordinate in CSS pixels.
          - `x` number, double — Viewport x coordinate in CSS pixels.
        - BrowserCdpDomSetFileInputFilesCommandData — Sanitized `DOM.setFileInputFiles` arguments. Canonical input: `DOM.setFileInputFiles` in devtools-protocol@2d019e73, pinned at https://github.com/ChromeDevTools/devtools-protocol/blob/2d019e73eb371d1d6985d26d395d78bd8f8a22ba/json/browser_protocol.json. Every argument of this command has a retained or redacted decision in lib/devtoolsproxy/testdata/cdp_arguments.yaml.
          - `backend_node_id` integer — Opaque backend DOM node identifier the command targeted.
          - `command_id` integer — The command's JSON-RPC id, so the command can be joined to the result the browser returned for it. Absent when the client sent none.
          - `connection_id` string — Identifies the CDP proxy connection the command arrived on, matching `cdp_connect` and `cdp_disconnect`. Two clients driving the same browser are told apart by this.
          - `file_count` integer, required — Number of files handed to the input. File paths are never captured.
          - `method` 'DOM.setFileInputFiles', required
          - `node_id` integer — Opaque DOM node identifier the command targeted.
          - `object_id` string — Opaque Runtime remote object identifier the command targeted. Clipped to 128 characters; a longer value is not a real identifier.
          - `session_id` string — CDP session identifier the command was addressed to. Absent for browser-level commands. Clipped to 128 characters.
        - BrowserCdpDomFocusCommandData — Sanitized `DOM.focus` arguments. Canonical input: `DOM.focus` in devtools-protocol@2d019e73, pinned at https://github.com/ChromeDevTools/devtools-protocol/blob/2d019e73eb371d1d6985d26d395d78bd8f8a22ba/json/browser_protocol.json. Every argument of this command has a retained or redacted decision in lib/devtoolsproxy/testdata/cdp_arguments.yaml.
          - `backend_node_id` integer — Opaque backend DOM node identifier the command targeted.
          - `command_id` integer — The command's JSON-RPC id, so the command can be joined to the result the browser returned for it. Absent when the client sent none.
          - `connection_id` string — Identifies the CDP proxy connection the command arrived on, matching `cdp_connect` and `cdp_disconnect`. Two clients driving the same browser are told apart by this.
          - `method` 'DOM.focus', required
          - `node_id` integer — Opaque DOM node identifier the command targeted.
          - `object_id` string — Opaque Runtime remote object identifier the command targeted. Clipped to 128 characters; a longer value is not a real identifier.
          - `session_id` string — CDP session identifier the command was addressed to. Absent for browser-level commands. Clipped to 128 characters.
        - BrowserCdpDomScrollIntoViewIfNeededCommandData — Sanitized `DOM.scrollIntoViewIfNeeded` arguments. Canonical input: `DOM.scrollIntoViewIfNeeded` in devtools-protocol@2d019e73, pinned at https://github.com/ChromeDevTools/devtools-protocol/blob/2d019e73eb371d1d6985d26d395d78bd8f8a22ba/json/browser_protocol.json. Every argument of this command has a retained or redacted decision in lib/devtoolsproxy/testdata/cdp_arguments.yaml.
          - `backend_node_id` integer — Opaque backend DOM node identifier the command targeted.
          - `command_id` integer — The command's JSON-RPC id, so the command can be joined to the result the browser returned for it. Absent when the client sent none.
          - `connection_id` string — Identifies the CDP proxy connection the command arrived on, matching `cdp_connect` and `cdp_disconnect`. Two clients driving the same browser are told apart by this.
          - `method` 'DOM.scrollIntoViewIfNeeded', required
          - `node_id` integer — Opaque DOM node identifier the command targeted.
          - `object_id` string — Opaque Runtime remote object identifier the command targeted. Clipped to 128 characters; a longer value is not a real identifier.
          - `rect_height` number, double — Height of the rect the command scrolled to.
          - `rect_width` number, double — Width of the rect the command scrolled to.
          - `rect_x` number, double — X offset of the rect the command scrolled to, relative to the node.
          - `rect_y` number, double — Y offset of the rect the command scrolled to, relative to the node.
          - `session_id` string — CDP session identifier the command was addressed to. Absent for browser-level commands. Clipped to 128 characters.
        - BrowserCdpPageBringToFrontCommandData — Sanitized `Page.bringToFront` arguments. Canonical input: `Page.bringToFront` in devtools-protocol@2d019e73, pinned at https://github.com/ChromeDevTools/devtools-protocol/blob/2d019e73eb371d1d6985d26d395d78bd8f8a22ba/json/browser_protocol.json. Every argument of this command has a retained or redacted decision in lib/devtoolsproxy/testdata/cdp_arguments.yaml.
          - `command_id` integer — The command's JSON-RPC id, so the command can be joined to the result the browser returned for it. Absent when the client sent none.
          - `connection_id` string — Identifies the CDP proxy connection the command arrived on, matching `cdp_connect` and `cdp_disconnect`. Two clients driving the same browser are told apart by this.
          - `method` 'Page.bringToFront', required
          - `session_id` string — CDP session identifier the command was addressed to. Absent for browser-level commands. Clipped to 128 characters.
        - BrowserCdpPageCaptureScreenshotCommandData — Sanitized `Page.captureScreenshot` arguments. Canonical input: `Page.captureScreenshot` in devtools-protocol@2d019e73, pinned at https://github.com/ChromeDevTools/devtools-protocol/blob/2d019e73eb371d1d6985d26d395d78bd8f8a22ba/json/browser_protocol.json. Every argument of this command has a retained or redacted decision in lib/devtoolsproxy/testdata/cdp_arguments.yaml.
          - `capture_beyond_viewport` boolean — Whether the capture extended past the viewport.
          - `clip_height` number, double — Clip region height in CSS pixels.
          - `clip_scale` number, double — Clip region page scale factor.
          - `clip_width` number, double — Clip region width in CSS pixels.
          - `clip_x` number, double — Clip region x offset in CSS pixels.
          - `clip_y` number, double — Clip region y offset in CSS pixels.
          - `command_id` integer — The command's JSON-RPC id, so the command can be joined to the result the browser returned for it. Absent when the client sent none.
          - `connection_id` string — Identifies the CDP proxy connection the command arrived on, matching `cdp_connect` and `cdp_disconnect`. Two clients driving the same browser are told apart by this.
          - `format` 'jpeg' | 'png' | 'webp' | 'other' — Image format requested for a screenshot. Canonical values from devtools-protocol@2d019e73. `other` stands for a value outside that set, so a client cannot put an arbitrary string into the stream.
          - `from_surface` boolean — Whether the capture was taken from the surface rather than the view.
          - `method` 'Page.captureScreenshot', required
          - `optimize_for_speed` boolean — Whether encoding favored speed over size.
          - `quality` integer — Compression quality, 0 to 100, for lossy formats.
          - `session_id` string — CDP session identifier the command was addressed to. Absent for browser-level commands. Clipped to 128 characters.
        - BrowserCdpPageCaptureSnapshotCommandData — Sanitized `Page.captureSnapshot` arguments. Canonical input: `Page.captureSnapshot` in devtools-protocol@2d019e73, pinned at https://github.com/ChromeDevTools/devtools-protocol/blob/2d019e73eb371d1d6985d26d395d78bd8f8a22ba/json/browser_protocol.json. Every argument of this command has a retained or redacted decision in lib/devtoolsproxy/testdata/cdp_arguments.yaml.
          - `command_id` integer — The command's JSON-RPC id, so the command can be joined to the result the browser returned for it. Absent when the client sent none.
          - `connection_id` string — Identifies the CDP proxy connection the command arrived on, matching `cdp_connect` and `cdp_disconnect`. Two clients driving the same browser are told apart by this.
          - `format` 'mhtml' | 'other' — Format requested for a page snapshot. Canonical values from devtools-protocol@2d019e73. `other` stands for a value outside that set, so a client cannot put an arbitrary string into the stream.
          - `method` 'Page.captureSnapshot', required
          - `session_id` string — CDP session identifier the command was addressed to. Absent for browser-level commands. Clipped to 128 characters.
        - BrowserCdpPageHandleJavaScriptDialogCommandData — Sanitized `Page.handleJavaScriptDialog` arguments. Canonical input: `Page.handleJavaScriptDialog` in devtools-protocol@2d019e73, pinned at https://github.com/ChromeDevTools/devtools-protocol/blob/2d019e73eb371d1d6985d26d395d78bd8f8a22ba/json/browser_protocol.json. Every argument of this command has a retained or redacted decision in lib/devtoolsproxy/testdata/cdp_arguments.yaml.
          - `accept` boolean, required — Whether the dialog was accepted or dismissed.
          - `command_id` integer — The command's JSON-RPC id, so the command can be joined to the result the browser returned for it. Absent when the client sent none.
          - `connection_id` string — Identifies the CDP proxy connection the command arrived on, matching `cdp_connect` and `cdp_disconnect`. Two clients driving the same browser are told apart by this.
          - `method` 'Page.handleJavaScriptDialog', required
          - `prompt_text_length` integer — Number of characters entered into a prompt dialog. The text itself is never captured.
          - `session_id` string — CDP session identifier the command was addressed to. Absent for browser-level commands. Clipped to 128 characters.
        - BrowserCdpPageNavigateCommandData — Sanitized `Page.navigate` arguments. Canonical input: `Page.navigate` in devtools-protocol@2d019e73, pinned at https://github.com/ChromeDevTools/devtools-protocol/blob/2d019e73eb371d1d6985d26d395d78bd8f8a22ba/json/browser_protocol.json. Every argument of this command has a retained or redacted decision in lib/devtoolsproxy/testdata/cdp_arguments.yaml.
          - `command_id` integer — The command's JSON-RPC id, so the command can be joined to the result the browser returned for it. Absent when the client sent none.
          - `connection_id` string — Identifies the CDP proxy connection the command arrived on, matching `cdp_connect` and `cdp_disconnect`. Two clients driving the same browser are told apart by this.
          - `frame_id` string — Opaque frame identifier. Clipped to 128 characters; a longer value is not a real identifier.
          - `method` 'Page.navigate', required
          - `referrer_policy` 'noReferrer' | 'noReferrerWhenDowngrade' | 'origin' | 'originWhenCrossOrigin' | 'sameOrigin' | 'strictOrigin' | 'strictOriginWhenCrossOrigin' | 'unsafeUrl' | 'other' — Referrer policy named by a navigation. Canonical values from devtools-protocol@2d019e73. `other` stands for a value outside that set, so a client cannot put an arbitrary string into the stream.
          - `referrer_present` boolean — Whether the command carried a referrer. The referrer itself is never captured.
          - `session_id` string — CDP session identifier the command was addressed to. Absent for browser-level commands. Clipped to 128 characters.
          - `transition_type` 'link' | 'typed' | 'address_bar' | 'auto_bookmark' | 'auto_subframe' | 'manual_subframe' | 'generated' | 'auto_toplevel' | 'form_submit' | 'reload' | 'keyword' | 'keyword_generated' | 'other' — Navigation reason reported by the caller. Canonical values from devtools-protocol@2d019e73. `other` stands for a value outside that set, so a client cannot put an arbitrary string into the stream.
          - `url_scheme` string — Scheme of the destination URL (e.g. `https`, `about`, `data`). The rest of the URL is never captured.
        - BrowserCdpPageNavigateToHistoryEntryCommandData — Sanitized `Page.navigateToHistoryEntry` arguments. Canonical input: `Page.navigateToHistoryEntry` in devtools-protocol@2d019e73, pinned at https://github.com/ChromeDevTools/devtools-protocol/blob/2d019e73eb371d1d6985d26d395d78bd8f8a22ba/json/browser_protocol.json. Every argument of this command has a retained or redacted decision in lib/devtoolsproxy/testdata/cdp_arguments.yaml.
          - `command_id` integer — The command's JSON-RPC id, so the command can be joined to the result the browser returned for it. Absent when the client sent none.
          - `connection_id` string — Identifies the CDP proxy connection the command arrived on, matching `cdp_connect` and `cdp_disconnect`. Two clients driving the same browser are told apart by this.
          - `entry_id` integer, required — History entry the command navigated to.
          - `method` 'Page.navigateToHistoryEntry', required
          - `session_id` string — CDP session identifier the command was addressed to. Absent for browser-level commands. Clipped to 128 characters.
        - BrowserCdpPageReloadCommandData — Sanitized `Page.reload` arguments. Canonical input: `Page.reload` in devtools-protocol@2d019e73, pinned at https://github.com/ChromeDevTools/devtools-protocol/blob/2d019e73eb371d1d6985d26d395d78bd8f8a22ba/json/browser_protocol.json. Every argument of this command has a retained or redacted decision in lib/devtoolsproxy/testdata/cdp_arguments.yaml.
          - `command_id` integer — The command's JSON-RPC id, so the command can be joined to the result the browser returned for it. Absent when the client sent none.
          - `connection_id` string — Identifies the CDP proxy connection the command arrived on, matching `cdp_connect` and `cdp_disconnect`. Two clients driving the same browser are told apart by this.
          - `ignore_cache` boolean — Whether the reload bypassed the cache.
          - `loader_id` string — Opaque document loader identifier. Clipped to 128 characters; a longer value is not a real identifier.
          - `method` 'Page.reload', required
          - `script_length` integer — Number of characters in the injected script.
          - `session_id` string — CDP session identifier the command was addressed to. Absent for browser-level commands. Clipped to 128 characters.
        - BrowserCdpPagePrintToPdfCommandData — Sanitized `Page.printToPDF` arguments. Canonical input: `Page.printToPDF` in devtools-protocol@2d019e73, pinned at https://github.com/ChromeDevTools/devtools-protocol/blob/2d019e73eb371d1d6985d26d395d78bd8f8a22ba/json/browser_protocol.json. Every argument of this command has a retained or redacted decision in lib/devtoolsproxy/testdata/cdp_arguments.yaml.
          - `command_id` integer — The command's JSON-RPC id, so the command can be joined to the result the browser returned for it. Absent when the client sent none.
          - `connection_id` string — Identifies the CDP proxy connection the command arrived on, matching `cdp_connect` and `cdp_disconnect`. Two clients driving the same browser are told apart by this.
          - `display_header_footer` boolean — Whether a header and footer were rendered.
          - `footer_template_present` boolean — Whether a footer template was supplied. The template itself is never captured.
          - `generate_document_outline` boolean — Whether a document outline was embedded.
          - `generate_tagged_pdf` boolean — Whether a tagged (accessible) PDF was requested.
          - `header_template_present` boolean — Whether a header template was supplied. The template itself is never captured.
          - `landscape` boolean — Whether the page was laid out in landscape.
          - `margin_bottom` number, double — Bottom margin in inches.
          - `margin_left` number, double — Left margin in inches.
          - `margin_right` number, double — Right margin in inches.
          - `margin_top` number, double — Top margin in inches.
          - `method` 'Page.printToPDF', required
          - `page_ranges_present` boolean — Whether a page range was supplied.
          - `paper_height` number, double — Paper height in inches.
          - `paper_width` number, double — Paper width in inches.
          - `prefer_css_page_size` boolean — Whether the CSS page size was preferred over the paper size.
          - `print_background` boolean — Whether background graphics were printed.
          - `scale` number, double — Page render scale.
          - `session_id` string — CDP session identifier the command was addressed to. Absent for browser-level commands. Clipped to 128 characters.
          - `transfer_mode` 'ReturnAsBase64' | 'ReturnAsStream' | 'other' — How a generated PDF is returned. Canonical values from devtools-protocol@2d019e73. `other` stands for a value outside that set, so a client cannot put an arbitrary string into the stream.
        - BrowserCdpPageStartScreencastCommandData — Sanitized `Page.startScreencast` arguments. Canonical input: `Page.startScreencast` in devtools-protocol@2d019e73, pinned at https://github.com/ChromeDevTools/devtools-protocol/blob/2d019e73eb371d1d6985d26d395d78bd8f8a22ba/json/browser_protocol.json. Every argument of this command has a retained or redacted decision in lib/devtoolsproxy/testdata/cdp_arguments.yaml.
          - `command_id` integer — The command's JSON-RPC id, so the command can be joined to the result the browser returned for it. Absent when the client sent none.
          - `connection_id` string — Identifies the CDP proxy connection the command arrived on, matching `cdp_connect` and `cdp_disconnect`. Two clients driving the same browser are told apart by this.
          - `every_nth_frame` integer — Frame sampling interval.
          - `format` 'jpeg' | 'png' | 'other' — Frame format requested for a screencast. Canonical values from devtools-protocol@2d019e73. `other` stands for a value outside that set, so a client cannot put an arbitrary string into the stream.
          - `max_height` integer — Maximum frame height in pixels.
          - `max_width` integer — Maximum frame width in pixels.
          - `method` 'Page.startScreencast', required
          - `quality` integer — Compression quality, 0 to 100.
          - `session_id` string — CDP session identifier the command was addressed to. Absent for browser-level commands. Clipped to 128 characters.
        - BrowserCdpPageStopScreencastCommandData — Sanitized `Page.stopScreencast` arguments. Canonical input: `Page.stopScreencast` in devtools-protocol@2d019e73, pinned at https://github.com/ChromeDevTools/devtools-protocol/blob/2d019e73eb371d1d6985d26d395d78bd8f8a22ba/json/browser_protocol.json. Every argument of this command has a retained or redacted decision in lib/devtoolsproxy/testdata/cdp_arguments.yaml.
          - `command_id` integer — The command's JSON-RPC id, so the command can be joined to the result the browser returned for it. Absent when the client sent none.
          - `connection_id` string — Identifies the CDP proxy connection the command arrived on, matching `cdp_connect` and `cdp_disconnect`. Two clients driving the same browser are told apart by this.
          - `method` 'Page.stopScreencast', required
          - `session_id` string — CDP session identifier the command was addressed to. Absent for browser-level commands. Clipped to 128 characters.
        - BrowserCdpPageStopLoadingCommandData — Sanitized `Page.stopLoading` arguments. Canonical input: `Page.stopLoading` in devtools-protocol@2d019e73, pinned at https://github.com/ChromeDevTools/devtools-protocol/blob/2d019e73eb371d1d6985d26d395d78bd8f8a22ba/json/browser_protocol.json. Every argument of this command has a retained or redacted decision in lib/devtoolsproxy/testdata/cdp_arguments.yaml.
          - `command_id` integer — The command's JSON-RPC id, so the command can be joined to the result the browser returned for it. Absent when the client sent none.
          - `connection_id` string — Identifies the CDP proxy connection the command arrived on, matching `cdp_connect` and `cdp_disconnect`. Two clients driving the same browser are told apart by this.
          - `method` 'Page.stopLoading', required
          - `session_id` string — CDP session identifier the command was addressed to. Absent for browser-level commands. Clipped to 128 characters.
        - BrowserCdpPageCloseCommandData — Sanitized `Page.close` arguments. Canonical input: `Page.close` in devtools-protocol@2d019e73, pinned at https://github.com/ChromeDevTools/devtools-protocol/blob/2d019e73eb371d1d6985d26d395d78bd8f8a22ba/json/browser_protocol.json. Every argument of this command has a retained or redacted decision in lib/devtoolsproxy/testdata/cdp_arguments.yaml.
          - `command_id` integer — The command's JSON-RPC id, so the command can be joined to the result the browser returned for it. Absent when the client sent none.
          - `connection_id` string — Identifies the CDP proxy connection the command arrived on, matching `cdp_connect` and `cdp_disconnect`. Two clients driving the same browser are told apart by this.
          - `method` 'Page.close', required
          - `session_id` string — CDP session identifier the command was addressed to. Absent for browser-level commands. Clipped to 128 characters.
        - BrowserCdpPageSetWebLifecycleStateCommandData — Sanitized `Page.setWebLifecycleState` arguments. Canonical input: `Page.setWebLifecycleState` in devtools-protocol@2d019e73, pinned at https://github.com/ChromeDevTools/devtools-protocol/blob/2d019e73eb371d1d6985d26d395d78bd8f8a22ba/json/browser_protocol.json. Every argument of this command has a retained or redacted decision in lib/devtoolsproxy/testdata/cdp_arguments.yaml.
          - `command_id` integer — The command's JSON-RPC id, so the command can be joined to the result the browser returned for it. Absent when the client sent none.
          - `connection_id` string — Identifies the CDP proxy connection the command arrived on, matching `cdp_connect` and `cdp_disconnect`. Two clients driving the same browser are told apart by this.
          - `method` 'Page.setWebLifecycleState', required
          - `session_id` string — CDP session identifier the command was addressed to. Absent for browser-level commands. Clipped to 128 characters.
          - `state` 'frozen' | 'active' | 'other', required — Page lifecycle state applied. Canonical values from devtools-protocol@2d019e73. `other` stands for a value outside that set, so a client cannot put an arbitrary string into the stream.
        - BrowserCdpTargetActivateTargetCommandData — Sanitized `Target.activateTarget` arguments. Canonical input: `Target.activateTarget` in devtools-protocol@2d019e73, pinned at https://github.com/ChromeDevTools/devtools-protocol/blob/2d019e73eb371d1d6985d26d395d78bd8f8a22ba/json/browser_protocol.json. Every argument of this command has a retained or redacted decision in lib/devtoolsproxy/testdata/cdp_arguments.yaml.
          - `command_id` integer — The command's JSON-RPC id, so the command can be joined to the result the browser returned for it. Absent when the client sent none.
          - `connection_id` string — Identifies the CDP proxy connection the command arrived on, matching `cdp_connect` and `cdp_disconnect`. Two clients driving the same browser are told apart by this.
          - `method` 'Target.activateTarget', required
          - `session_id` string — CDP session identifier the command was addressed to. Absent for browser-level commands. Clipped to 128 characters.
          - `target_id` string, required — Opaque target identifier. Clipped to 128 characters; a longer value is not a real identifier.
        - BrowserCdpTargetCloseTargetCommandData — Sanitized `Target.closeTarget` arguments. Canonical input: `Target.closeTarget` in devtools-protocol@2d019e73, pinned at https://github.com/ChromeDevTools/devtools-protocol/blob/2d019e73eb371d1d6985d26d395d78bd8f8a22ba/json/browser_protocol.json. Every argument of this command has a retained or redacted decision in lib/devtoolsproxy/testdata/cdp_arguments.yaml.
          - `command_id` integer — The command's JSON-RPC id, so the command can be joined to the result the browser returned for it. Absent when the client sent none.
          - `connection_id` string — Identifies the CDP proxy connection the command arrived on, matching `cdp_connect` and `cdp_disconnect`. Two clients driving the same browser are told apart by this.
          - `method` 'Target.closeTarget', required
          - `session_id` string — CDP session identifier the command was addressed to. Absent for browser-level commands. Clipped to 128 characters.
          - `target_id` string, required — Opaque target identifier. Clipped to 128 characters; a longer value is not a real identifier.
        - BrowserCdpTargetCreateTargetCommandData — Sanitized `Target.createTarget` arguments. Canonical input: `Target.createTarget` in devtools-protocol@2d019e73, pinned at https://github.com/ChromeDevTools/devtools-protocol/blob/2d019e73eb371d1d6985d26d395d78bd8f8a22ba/json/browser_protocol.json. Every argument of this command has a retained or redacted decision in lib/devtoolsproxy/testdata/cdp_arguments.yaml.
          - `background` boolean — Whether the target was created in the background.
          - `browser_context_id` string — Opaque browser context identifier. Clipped to 128 characters; a longer value is not a real identifier.
          - `command_id` integer — The command's JSON-RPC id, so the command can be joined to the result the browser returned for it. Absent when the client sent none.
          - `connection_id` string — Identifies the CDP proxy connection the command arrived on, matching `cdp_connect` and `cdp_disconnect`. Two clients driving the same browser are told apart by this.
          - `enable_begin_frame_control` boolean — Whether BeginFrame control was enabled (headless only).
          - `focus` boolean — Whether the new target was focused.
          - `for_tab` boolean — Whether a tab target rather than a page target was created.
          - `height` integer — Window height in DIP.
          - `hidden` boolean — Whether the target was created hidden.
          - `left` integer — Window x position in screen coordinates.
          - `method` 'Target.createTarget', required
          - `new_window` boolean — Whether a new window was requested.
          - `session_id` string — CDP session identifier the command was addressed to. Absent for browser-level commands. Clipped to 128 characters.
          - `top` integer — Window y position in screen coordinates.
          - `url_scheme` string — Scheme of the destination URL (e.g. `https`, `about`, `data`). The rest of the URL is never captured.
          - `width` integer — Window width in DIP.
          - `window_state` 'normal' | 'minimized' | 'maximized' | 'fullscreen' | 'other' — Browser window state requested. Canonical values from devtools-protocol@2d019e73. `other` stands for a value outside that set, so a client cannot put an arbitrary string into the stream.
        - BrowserCdpTargetCreateBrowserContextCommandData — Sanitized `Target.createBrowserContext` arguments. Canonical input: `Target.createBrowserContext` in devtools-protocol@2d019e73, pinned at https://github.com/ChromeDevTools/devtools-protocol/blob/2d019e73eb371d1d6985d26d395d78bd8f8a22ba/json/browser_protocol.json. Every argument of this command has a retained or redacted decision in lib/devtoolsproxy/testdata/cdp_arguments.yaml.
          - `command_id` integer — The command's JSON-RPC id, so the command can be joined to the result the browser returned for it. Absent when the client sent none.
          - `connection_id` string — Identifies the CDP proxy connection the command arrived on, matching `cdp_connect` and `cdp_disconnect`. Two clients driving the same browser are told apart by this.
          - `dispose_on_detach` boolean — Whether the context is disposed when the debugging session detaches.
          - `method` 'Target.createBrowserContext', required
          - `proxy_bypass_list_present` boolean — Whether a proxy bypass list was configured.
          - `proxy_server_present` boolean — Whether a proxy was configured. The proxy address is never captured.
          - `session_id` string — CDP session identifier the command was addressed to. Absent for browser-level commands. Clipped to 128 characters.
          - `universal_network_access_origin_count` integer — Number of origins granted universal network access. The origins themselves are never captured.
        - BrowserCdpTargetDisposeBrowserContextCommandData — Sanitized `Target.disposeBrowserContext` arguments. Canonical input: `Target.disposeBrowserContext` in devtools-protocol@2d019e73, pinned at https://github.com/ChromeDevTools/devtools-protocol/blob/2d019e73eb371d1d6985d26d395d78bd8f8a22ba/json/browser_protocol.json. Every argument of this command has a retained or redacted decision in lib/devtoolsproxy/testdata/cdp_arguments.yaml.
          - `browser_context_id` string, required — Opaque browser context identifier. Clipped to 128 characters; a longer value is not a real identifier.
          - `command_id` integer — The command's JSON-RPC id, so the command can be joined to the result the browser returned for it. Absent when the client sent none.
          - `connection_id` string — Identifies the CDP proxy connection the command arrived on, matching `cdp_connect` and `cdp_disconnect`. Two clients driving the same browser are told apart by this.
          - `method` 'Target.disposeBrowserContext', required
          - `session_id` string — CDP session identifier the command was addressed to. Absent for browser-level commands. Clipped to 128 characters.
        - BrowserCdpTargetOpenDevToolsCommandData — Sanitized `Target.openDevTools` arguments. Canonical input: `Target.openDevTools` in devtools-protocol@2d019e73, pinned at https://github.com/ChromeDevTools/devtools-protocol/blob/2d019e73eb371d1d6985d26d395d78bd8f8a22ba/json/browser_protocol.json. Every argument of this command has a retained or redacted decision in lib/devtoolsproxy/testdata/cdp_arguments.yaml.
          - `command_id` integer — The command's JSON-RPC id, so the command can be joined to the result the browser returned for it. Absent when the client sent none.
          - `connection_id` string — Identifies the CDP proxy connection the command arrived on, matching `cdp_connect` and `cdp_disconnect`. Two clients driving the same browser are told apart by this.
          - `method` 'Target.openDevTools', required
          - `panel_id` string — DevTools panel opened. Clipped to 128 characters; a longer value is not a real identifier.
          - `session_id` string — CDP session identifier the command was addressed to. Absent for browser-level commands. Clipped to 128 characters.
          - `target_id` string, required — Opaque target identifier. Clipped to 128 characters; a longer value is not a real identifier.
        - BrowserCdpBrowserCancelDownloadCommandData — Sanitized `Browser.cancelDownload` arguments. Canonical input: `Browser.cancelDownload` in devtools-protocol@2d019e73, pinned at https://github.com/ChromeDevTools/devtools-protocol/blob/2d019e73eb371d1d6985d26d395d78bd8f8a22ba/json/browser_protocol.json. Every argument of this command has a retained or redacted decision in lib/devtoolsproxy/testdata/cdp_arguments.yaml.
          - `browser_context_id` string — Opaque browser context identifier. Clipped to 128 characters; a longer value is not a real identifier.
          - `command_id` integer — The command's JSON-RPC id, so the command can be joined to the result the browser returned for it. Absent when the client sent none.
          - `connection_id` string — Identifies the CDP proxy connection the command arrived on, matching `cdp_connect` and `cdp_disconnect`. Two clients driving the same browser are told apart by this.
          - `download_guid` string, required — Opaque identifier of the download that was cancelled. Clipped to 128 characters; a longer value is not a real identifier.
          - `method` 'Browser.cancelDownload', required
          - `session_id` string — CDP session identifier the command was addressed to. Absent for browser-level commands. Clipped to 128 characters.
        - BrowserCdpBrowserCloseCommandData — Sanitized `Browser.close` arguments. Canonical input: `Browser.close` in devtools-protocol@2d019e73, pinned at https://github.com/ChromeDevTools/devtools-protocol/blob/2d019e73eb371d1d6985d26d395d78bd8f8a22ba/json/browser_protocol.json. Every argument of this command has a retained or redacted decision in lib/devtoolsproxy/testdata/cdp_arguments.yaml.
          - `command_id` integer — The command's JSON-RPC id, so the command can be joined to the result the browser returned for it. Absent when the client sent none.
          - `connection_id` string — Identifies the CDP proxy connection the command arrived on, matching `cdp_connect` and `cdp_disconnect`. Two clients driving the same browser are told apart by this.
          - `method` 'Browser.close', required
          - `session_id` string — CDP session identifier the command was addressed to. Absent for browser-level commands. Clipped to 128 characters.
        - BrowserCdpBrowserSetWindowBoundsCommandData — Sanitized `Browser.setWindowBounds` arguments. Canonical input: `Browser.setWindowBounds` in devtools-protocol@2d019e73, pinned at https://github.com/ChromeDevTools/devtools-protocol/blob/2d019e73eb371d1d6985d26d395d78bd8f8a22ba/json/browser_protocol.json. Every argument of this command has a retained or redacted decision in lib/devtoolsproxy/testdata/cdp_arguments.yaml.
          - `command_id` integer — The command's JSON-RPC id, so the command can be joined to the result the browser returned for it. Absent when the client sent none.
          - `connection_id` string — Identifies the CDP proxy connection the command arrived on, matching `cdp_connect` and `cdp_disconnect`. Two clients driving the same browser are told apart by this.
          - `height` integer — Window height in DIP.
          - `left` integer — Window x position in screen coordinates.
          - `method` 'Browser.setWindowBounds', required
          - `session_id` string — CDP session identifier the command was addressed to. Absent for browser-level commands. Clipped to 128 characters.
          - `top` integer — Window y position in screen coordinates.
          - `width` integer — Window width in DIP.
          - `window_id` integer, required — Browser window identifier.
          - `window_state` 'normal' | 'minimized' | 'maximized' | 'fullscreen' | 'other' — Browser window state requested. Canonical values from devtools-protocol@2d019e73. `other` stands for a value outside that set, so a client cannot put an arbitrary string into the stream.
        - BrowserCdpBrowserSetContentsSizeCommandData — Sanitized `Browser.setContentsSize` arguments. Canonical input: `Browser.setContentsSize` in devtools-protocol@2d019e73, pinned at https://github.com/ChromeDevTools/devtools-protocol/blob/2d019e73eb371d1d6985d26d395d78bd8f8a22ba/json/browser_protocol.json. Every argument of this command has a retained or redacted decision in lib/devtoolsproxy/testdata/cdp_arguments.yaml.
          - `command_id` integer — The command's JSON-RPC id, so the command can be joined to the result the browser returned for it. Absent when the client sent none.
          - `connection_id` string — Identifies the CDP proxy connection the command arrived on, matching `cdp_connect` and `cdp_disconnect`. Two clients driving the same browser are told apart by this.
          - `height` integer — Contents height in DIP.
          - `method` 'Browser.setContentsSize', required
          - `session_id` string — CDP session identifier the command was addressed to. Absent for browser-level commands. Clipped to 128 characters.
          - `width` integer — Contents width in DIP.
          - `window_id` integer, required — Browser window identifier.
        - BrowserCdpAutofillTriggerCommandData — Sanitized `Autofill.trigger` arguments. Canonical input: `Autofill.trigger` in devtools-protocol@2d019e73, pinned at https://github.com/ChromeDevTools/devtools-protocol/blob/2d019e73eb371d1d6985d26d395d78bd8f8a22ba/json/browser_protocol.json. Every argument of this command has a retained or redacted decision in lib/devtoolsproxy/testdata/cdp_arguments.yaml.
          - `address_field_count` integer — Number of address fields the command filled. Their names and values are never captured.
          - `command_id` integer — The command's JSON-RPC id, so the command can be joined to the result the browser returned for it. Absent when the client sent none.
          - `connection_id` string — Identifies the CDP proxy connection the command arrived on, matching `cdp_connect` and `cdp_disconnect`. Two clients driving the same browser are told apart by this.
          - `field_id` integer, required — Opaque backend node identifier of the field that was autofilled.
          - `frame_id` string — Opaque frame identifier. Clipped to 128 characters; a longer value is not a real identifier.
          - `method` 'Autofill.trigger', required
          - `mode` 'card' | 'address' — Which kind of value autofill filled. Canonical values from devtools-protocol@2d019e73.
          - `session_id` string — CDP session identifier the command was addressed to. Absent for browser-level commands. Clipped to 128 characters.
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `event` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — Event producer. cdp: Chrome DevTools Protocol events from the browser. kernel_api: Kernel API server. extension: injected Chrome extension. local_process: system process running alongside the browser.
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `truncated` boolean — True if the data field was truncated due to size limits.
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'cdp_command', required
    - BrowserCdpConnectEvent — An external client (e.g. customer SDK, Playwright, Puppeteer) connected to the CDP WebSocket proxy on this VM.
      - `category` 'connection', required
      - `data` object
        - `connection_id` string — Identifies this CDP proxy connection, matching the connection_id on the cdp_command events that arrived on it. Two clients driving the same browser are told apart by this.
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `event` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — Event producer. cdp: Chrome DevTools Protocol events from the browser. kernel_api: Kernel API server. extension: injected Chrome extension. local_process: system process running alongside the browser.
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `truncated` boolean — True if the data field was truncated due to size limits.
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'cdp_connect', required
    - BrowserCdpDisconnectEvent — An external client disconnected from the CDP WebSocket proxy on this VM. Pair with the immediately preceding cdp_connect on the same stream.
      - `category` 'connection', required
      - `data` object
        - `connection_id` string — Identifies this CDP proxy connection, matching the connection_id on the cdp_command events that arrived on it. Two clients driving the same browser are told apart by this.
        - `duration_ms` number, required — Wall-clock duration of the connection in milliseconds.
        - `message_count` integer, required — Number of CDP messages relayed across the connection in either direction.
        - `reason` 'client_close' | 'upstream_changed' | 'upstream_error' | 'context_cancelled', required — Why the connection ended. client_close: the client initiated the close. upstream_changed: Chromium restarted mid-session and the proxy tore down so the client could reconnect against the new upstream. upstream_error: upstream dial or message pump errored. context_cancelled: the request context was cancelled (typically server shutdown).
        - `telemetry_dropped` integer — Number of forwarded client frames the classifier never saw, because it could not keep up or because classification failed. An upper bound on lost commands rather than a count: a saturated queue turns away whatever arrives next, which may be library traffic that would have produced no event. Telemetry loss only; every command was still relayed to the browser. Absent on events from a browser image predating the field, which is not the same as zero.
        - `telemetry_excluded` integer — Number of forwarded client commands that produced no cdp_command event because their method is listed in control.cdp.excluded_methods. Configuration rather than loss, so it is counted apart from telemetry_dropped.
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `event` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — Event producer. cdp: Chrome DevTools Protocol events from the browser. kernel_api: Kernel API server. extension: injected Chrome extension. local_process: system process running alongside the browser.
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `truncated` boolean — True if the data field was truncated due to size limits.
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'cdp_disconnect', required
    - BrowserLiveViewConnectEvent — A live view client connected to the headful browser's WebRTC server. Headful only; not emitted for headless images.
      - `category` 'connection', required
      - `data` object
        - `session_id` string, required — Live view session identifier. Stable across reconnects, so a transient network blip can emit two events with the same session_id.
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `event` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — Event producer. cdp: Chrome DevTools Protocol events from the browser. kernel_api: Kernel API server. extension: injected Chrome extension. local_process: system process running alongside the browser.
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `truncated` boolean — True if the data field was truncated due to size limits.
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'live_view_connect', required
    - BrowserLiveViewDisconnectEvent — A live view client disconnected from the headful browser's WebRTC server. Pair with live_view_connect by session_id.
      - `category` 'connection', required
      - `data` object
        - `duration_ms` number, required — Wall-clock duration of the connection in milliseconds.
        - `session_id` string, required — Live view session identifier; matches the corresponding live_view_connect event.
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `event` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — Event producer. cdp: Chrome DevTools Protocol events from the browser. kernel_api: Kernel API server. extension: injected Chrome extension. local_process: system process running alongside the browser.
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `truncated` boolean — True if the data field was truncated due to size limits.
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'live_view_disconnect', required
    - BrowserCaptchaSolveResultEvent — A captcha solve attempt reached a terminal outcome.
      - `category` 'captcha', required
      - `data` object
        - `captcha_type` 'hcaptcha' | 'recaptcha_v2' | 'recaptcha_v3' | 'turnstile' | 'geetest' | 'other', required — Captcha vendor family. Provider-specific task names are normalized into this set; anything not covered is reported as other.
        - `duration_ms` number, required — Wall-clock duration from solve start to terminal outcome.
        - `error_code` string — Solver-specific error code on failure (e.g. ERROR_CAPTCHA_UNSOLVABLE). Absent on success.
        - `status` 'success' | 'failure' | 'timeout' | 'abandoned', required — Terminal outcome. success: solver returned a usable solution. failure: solver returned an error (see error_code). timeout: solver did not return within the caller's wait budget. abandoned: caller cancelled or the page navigated away mid-solve.
        - `task_id` string — Solver-assigned identifier. Opaque, useful for support cross-references.
        - `website_host` string — Host of the page where the captcha was solved.
        - `website_path` string — Path of the page where the captcha was solved. Query string excluded.
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `event` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — Event producer. cdp: Chrome DevTools Protocol events from the browser. kernel_api: Kernel API server. extension: injected Chrome extension. local_process: system process running alongside the browser.
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `truncated` boolean — True if the data field was truncated due to size limits.
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'captcha_solve_result', required
    - BrowserSystemOomKillEvent — The Linux kernel OOM-killer terminated a process inside the VM. Fires for any process killed by the kernel due to memory exhaustion, including Chrome renderer subprocesses that are not supervised.
      - `category` 'system', required
      - `data` object
        - `constraint` 'none' | 'memcg' | 'cpuset' | 'memory_policy' — Why the kernel decided to OOM-kill. none means global memory exhaustion; memcg means a cgroup memory limit was hit; cpuset / memory_policy are NUMA/policy-driven kills. Absent on kernels older than 5.0.
        - `mem_free_kb` integer — Free system memory in KiB at the time of the kill. Assumes a 4 KiB page size. Does not include reclaimable caches. Absent if the kernel did not emit a parseable Mem-Info section.
        - `mem_total_kb` integer — Total system memory in KiB at the time of the kill. Assumes a 4 KiB page size. Absent if the kernel did not emit a parseable Mem-Info section.
        - `pid` integer, required — PID of the killed process.
        - `process_name` string, required — Comm of the killed process as reported by the kernel (max 15 chars, truncated by the kernel).
        - `rss_kb` integer, required — Resident set size of the killed process in KiB (sum of anon-rss, file-rss, and shmem-rss).
        - `top_tasks` object[] — Top processes by resident-set-size at the moment of the kill, sorted descending. Empty if the kernel did not emit the Tasks state table. Capped at 5 entries.
          - `name` string, required — Comm of the process (max 15 chars, truncated by the kernel).
          - `pid` integer, required — PID of the process.
          - `rss_kb` integer, required — Resident set size in KiB at the moment of the kill.
        - `trigger_pid` integer — PID of the triggering process. Absent if the kernel did not emit the standard header line.
        - `trigger_process_name` string — Comm of the process whose allocation request caused the kernel to invoke the OOM-killer. Often the same as process_name but can differ. Max 15 chars.
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `event` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — Event producer. cdp: Chrome DevTools Protocol events from the browser. kernel_api: Kernel API server. extension: injected Chrome extension. local_process: system process running alongside the browser.
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `truncated` boolean — True if the data field was truncated due to size limits.
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'system_oom_kill', required
    - BrowserServiceCrashedEvent — A managed service exited unexpectedly. Intentional stops do not produce this event; only unexpected exits and terminal restart-give-up transitions do.
      - `category` 'system', required
      - `data` object
        - `phase` 'startup' | 'running' | 'gave_up', required — Lifecycle phase the crash occurred in. startup: the process died before reaching a healthy running state. running: a previously healthy process died unexpectedly. gave_up: the process manager exhausted its restart attempts and stopped trying.
        - `pid` integer — PID of the crashed process. Absent when the process manager gave up after exhausting restart attempts.
        - `service_name` string, required — Program name of the crashed service (e.g. chromium, mutter, kernel-images-api).
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `event` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — Event producer. cdp: Chrome DevTools Protocol events from the browser. kernel_api: Kernel API server. extension: injected Chrome extension. local_process: system process running alongside the browser.
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `truncated` boolean — True if the data field was truncated due to size limits.
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'service_crashed', required
  - `seq` integer, required — Process-monotonic sequence number assigned by the browser VM. Pass as Last-Event-ID on reconnect to resume without gaps. Gaps in received seq values indicate dropped events.

## Other responses

- `400` — Bad Request – invalid input
- `401` — Unauthorized – missing or invalid authorization token
- `403` — Forbidden – insufficient permissions or plan
- `404` — Resource not found
- `500` — Internal Server Error

---

[API](https://skmtc.net/onkernel/apis/kernel-api.md) · [All operations](https://skmtc.net/onkernel/apis/kernel-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/onkernel/kernel-api/revisions/858365328f92/schema)
