> ## Documentation Index
> Fetch the complete documentation index at: https://kernel.sh/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Stream telemetry events via SSE

> Streams browser telemetry events as a server-sent events (SSE) stream. The stream closes when the browser session terminates. Each event frame includes an id: field containing a monotonically increasing sequence number; pass it as Last-Event-ID on reconnect to resume without gaps. The event: field is never set; all frames carry JSON in the data: field. A keepalive comment frame is sent every 15 seconds when no events arrive. Returns 404 if the browser session does not exist. If telemetry was not enabled on the session, the stream opens but no events are delivered. Fresh connections only see new events; pass replay=all to start from the oldest retained event instead.




## OpenAPI

````yaml https://api.onkernel.com/spec.json get /browsers/{id}/telemetry/stream
openapi: 3.1.0
info:
  description: Developer tools and cloud infrastructure for AI agents to use web browsers
  title: Kernel API
  version: 0.1.0
servers:
  - description: API Server
    url: https://api.onkernel.com
security:
  - bearerAuth: []
tags:
  - description: Create and manage browser sessions.
    name: Browsers
  - description: Control mouse, keyboard, and screen on the browser instance.
    name: Browser Computer Controls
  - description: Execute Playwright code against the browser instance.
    name: Browser Playwright
  - description: Read, write, and manage files on the browser instance.
    name: Browser Filesystem
  - description: Execute and manage processes on the browser instance.
    name: Browser Processes
  - description: Record and manage browser session video replays.
    name: Browser Replays
  - description: Stream logs from the browser instance.
    name: Browser Logs
  - description: >-
      Stream live telemetry events from a browser session, and manage the
      destinations sessions export them to.
    name: Browser Telemetry
  - description: Create, list, retrieve, and delete browser profiles.
    name: Profiles
  - description: Create and manage proxy configurations for routing browser traffic.
    name: Proxies
  - description: Create, list, retrieve, and delete browser extensions.
    name: Extensions
  - description: Create and manage browser pools for acquiring and releasing browsers.
    name: Browser Pools
  - description: Inspect the identity and authorization context for the current request.
    name: Authentication
  - description: >-
      Create and manage auth connections for automated credential capture and
      login.
    name: Managed Auth
  - description: Create and manage credentials for authentication.
    name: Credentials
  - description: Configure external credential providers like 1Password.
    name: Credential Providers
  - description: List applications and versions.
    name: Apps
  - description: Create and manage app deployments and stream deployment events.
    name: Deployments
  - description: Invoke actions and stream or query invocation status and events.
    name: Invocations
  - description: Read and manage organization-level limits.
    name: Organization
  - description: |
      Create and manage projects for resource isolation within an organization.
      When projects are disabled for the organization, project operations return
      `404` with code `projects_disabled`.
    name: Projects
  - description: Create and manage API keys for organization and project-scoped access.
    name: API Keys
  - description: Read audit log records for the authenticated organization.
    name: Audit Logs
  - description: Resolve browser and proxy recommendations for bot-protected sites.
    name: Site Configs
paths:
  /browsers/{id}/telemetry/stream:
    get:
      tags:
        - Browser Telemetry
      summary: Stream telemetry events via SSE
      description: >
        Streams browser telemetry events as a server-sent events (SSE) stream.
        The stream closes when the browser session terminates. Each event frame
        includes an id: field containing a monotonically increasing sequence
        number; pass it as Last-Event-ID on reconnect to resume without gaps.
        The event: field is never set; all frames carry JSON in the data: field.
        A keepalive comment frame is sent every 15 seconds when no events
        arrive. Returns 404 if the browser session does not exist. If telemetry
        was not enabled on the session, the stream opens but no events are
        delivered. Fresh connections only see new events; pass replay=all to
        start from the oldest retained event instead.
      operationId: streamBrowserTelemetry
      parameters:
        - description: Browser session ID
          in: path
          name: id
          required: true
          schema:
            type: string
        - description: >-
            Last event sequence number for SSE reconnection (sent by SSE clients
            on reconnect). Takes precedence over replay when both are present,
            so reconnect resumes instead of re-replaying.
          in: header
          name: Last-Event-ID
          schema:
            type: string
        - description: >-
            Pass `all` to start from the oldest retained event instead of only
            new events; any other value is treated as from-now. The buffer is
            bounded, so the first event id may be greater than 1 if older events
            were evicted.
          in: query
          name: replay
          schema:
            type: string
      responses:
        '200':
          content:
            text/event-stream:
              schema:
                $ref: '#/components/schemas/BrowserTelemetryEventEnvelope'
          description: SSE stream of telemetry events
          headers:
            X-SSE-Content-Type:
              description: Media type of SSE data events (always application/json).
              schema:
                const: application/json
                type: string
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalError'
      security:
        - bearerAuth: []
components:
  schemas:
    BrowserTelemetryEventEnvelope:
      additionalProperties: false
      description: >
        Envelope wrapping a browser telemetry event with its monotonic sequence
        number. Each SSE data: frame carries one envelope as JSON. The seq value
        is also emitted as the SSE id: field so clients can pass it as
        Last-Event-ID on reconnect.
      properties:
        event:
          $ref: '#/components/schemas/BrowserTelemetryEvent'
        seq:
          description: >
            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.
          format: int64
          minimum: 1
          type: integer
      required:
        - seq
        - event
      type: object
    BrowserTelemetryEvent:
      description: >
        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.
      discriminator:
        mapping:
          api_call:
            $ref: '#/components/schemas/BrowserApiCallEvent'
          captcha_solve_result:
            $ref: '#/components/schemas/BrowserCaptchaSolveResultEvent'
          cdp_command:
            $ref: '#/components/schemas/BrowserCdpCommandEvent'
          cdp_connect:
            $ref: '#/components/schemas/BrowserCdpConnectEvent'
          cdp_disconnect:
            $ref: '#/components/schemas/BrowserCdpDisconnectEvent'
          console_error:
            $ref: '#/components/schemas/BrowserConsoleErrorEvent'
          console_log:
            $ref: '#/components/schemas/BrowserConsoleLogEvent'
          interaction_click:
            $ref: '#/components/schemas/BrowserInteractionClickEvent'
          interaction_key:
            $ref: '#/components/schemas/BrowserInteractionKeyEvent'
          interaction_scroll_settled:
            $ref: '#/components/schemas/BrowserInteractionScrollSettledEvent'
          live_view_connect:
            $ref: '#/components/schemas/BrowserLiveViewConnectEvent'
          live_view_disconnect:
            $ref: '#/components/schemas/BrowserLiveViewDisconnectEvent'
          monitor_disconnected:
            $ref: '#/components/schemas/BrowserMonitorDisconnectedEvent'
          monitor_init_failed:
            $ref: '#/components/schemas/BrowserMonitorInitFailedEvent'
          monitor_reconnect_failed:
            $ref: '#/components/schemas/BrowserMonitorReconnectFailedEvent'
          monitor_reconnected:
            $ref: '#/components/schemas/BrowserMonitorReconnectedEvent'
          monitor_screenshot:
            $ref: '#/components/schemas/BrowserMonitorScreenshotEvent'
          network_idle:
            $ref: '#/components/schemas/BrowserNetworkIdleEvent'
          network_loading_failed:
            $ref: '#/components/schemas/BrowserNetworkLoadingFailedEvent'
          network_request:
            $ref: '#/components/schemas/BrowserNetworkRequestEvent'
          network_response:
            $ref: '#/components/schemas/BrowserNetworkResponseEvent'
          page_crashed:
            $ref: '#/components/schemas/BrowserPageCrashedEvent'
          page_dom_content_loaded:
            $ref: '#/components/schemas/BrowserPageDomContentLoadedEvent'
          page_layout_settled:
            $ref: '#/components/schemas/BrowserPageLayoutSettledEvent'
          page_layout_shift:
            $ref: '#/components/schemas/BrowserPageLayoutShiftEvent'
          page_lcp:
            $ref: '#/components/schemas/BrowserPageLcpEvent'
          page_load:
            $ref: '#/components/schemas/BrowserPageLoadEvent'
          page_navigation:
            $ref: '#/components/schemas/BrowserPageNavigationEvent'
          page_navigation_settled:
            $ref: '#/components/schemas/BrowserPageNavigationSettledEvent'
          page_tab_opened:
            $ref: '#/components/schemas/BrowserPageTabOpenedEvent'
          platform_api_call:
            $ref: '#/components/schemas/BrowserPlatformApiCallEvent'
          proxy_error:
            $ref: '#/components/schemas/BrowserProxyErrorEvent'
          service_crashed:
            $ref: '#/components/schemas/BrowserServiceCrashedEvent'
          system_oom_kill:
            $ref: '#/components/schemas/BrowserSystemOomKillEvent'
        propertyName: type
      oneOf:
        - $ref: '#/components/schemas/BrowserConsoleLogEvent'
        - $ref: '#/components/schemas/BrowserConsoleErrorEvent'
        - $ref: '#/components/schemas/BrowserNetworkRequestEvent'
        - $ref: '#/components/schemas/BrowserNetworkResponseEvent'
        - $ref: '#/components/schemas/BrowserNetworkLoadingFailedEvent'
        - $ref: '#/components/schemas/BrowserNetworkIdleEvent'
        - $ref: '#/components/schemas/BrowserProxyErrorEvent'
        - $ref: '#/components/schemas/BrowserPageNavigationEvent'
        - $ref: '#/components/schemas/BrowserPageDomContentLoadedEvent'
        - $ref: '#/components/schemas/BrowserPageLoadEvent'
        - $ref: '#/components/schemas/BrowserPageTabOpenedEvent'
        - $ref: '#/components/schemas/BrowserPageCrashedEvent'
        - $ref: '#/components/schemas/BrowserPageLayoutShiftEvent'
        - $ref: '#/components/schemas/BrowserPageLcpEvent'
        - $ref: '#/components/schemas/BrowserPageLayoutSettledEvent'
        - $ref: '#/components/schemas/BrowserPageNavigationSettledEvent'
        - $ref: '#/components/schemas/BrowserInteractionClickEvent'
        - $ref: '#/components/schemas/BrowserInteractionKeyEvent'
        - $ref: '#/components/schemas/BrowserInteractionScrollSettledEvent'
        - $ref: '#/components/schemas/BrowserMonitorScreenshotEvent'
        - $ref: '#/components/schemas/BrowserMonitorDisconnectedEvent'
        - $ref: '#/components/schemas/BrowserMonitorReconnectedEvent'
        - $ref: '#/components/schemas/BrowserMonitorReconnectFailedEvent'
        - $ref: '#/components/schemas/BrowserMonitorInitFailedEvent'
        - $ref: '#/components/schemas/BrowserApiCallEvent'
        - $ref: '#/components/schemas/BrowserPlatformApiCallEvent'
        - $ref: '#/components/schemas/BrowserCdpCommandEvent'
        - $ref: '#/components/schemas/BrowserCdpConnectEvent'
        - $ref: '#/components/schemas/BrowserCdpDisconnectEvent'
        - $ref: '#/components/schemas/BrowserLiveViewConnectEvent'
        - $ref: '#/components/schemas/BrowserLiveViewDisconnectEvent'
        - $ref: '#/components/schemas/BrowserCaptchaSolveResultEvent'
        - $ref: '#/components/schemas/BrowserSystemOomKillEvent'
        - $ref: '#/components/schemas/BrowserServiceCrashedEvent'
    Error:
      properties:
        code:
          description: Application-specific error code (machine-readable)
          example: bad_request
          type: string
        details:
          description: Additional error details (for multiple errors)
          items:
            $ref: '#/components/schemas/ErrorDetail'
          type: array
        inner_error:
          $ref: '#/components/schemas/ErrorDetail'
        message:
          description: Human-readable error description for debugging
          example: 'Missing required field: app_name'
          type: string
      required:
        - code
        - message
      type: object
    BrowserApiCallEvent:
      description: >-
        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.
      properties:
        category:
          const: control
          type: string
        data:
          additionalProperties: false
          properties:
            code:
              description: >-
                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.
              type: string
            duration_ms:
              description: Wall-clock duration of the handler in milliseconds.
              type: number
            operation_id:
              description: >-
                Matched route's operation, named as the in-VM API names its
                handler (e.g. ProcessExec, TakeScreenshot).
              type: string
            request_id:
              description: Per-request identifier from the in-VM API request middleware.
              type: string
            status:
              description: HTTP response status code.
              type: integer
          required:
            - request_id
            - operation_id
            - status
            - duration_ms
          type: object
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        truncated:
          description: True if the data field was truncated due to size limits.
          type: boolean
        ts:
          description: Event timestamp in Unix microseconds.
          format: int64
          type: integer
        type:
          const: api_call
          type: string
      required:
        - ts
        - type
        - category
        - source
      type: object
    BrowserCaptchaSolveResultEvent:
      description: A captcha solve attempt reached a terminal outcome.
      properties:
        category:
          const: captcha
          type: string
        data:
          additionalProperties: false
          properties:
            captcha_type:
              description: >-
                Captcha vendor family. Provider-specific task names are
                normalized into this set; anything not covered is reported as
                other.
              enum:
                - hcaptcha
                - recaptcha_v2
                - recaptcha_v3
                - turnstile
                - geetest
                - other
              type: string
              x-go-type: string
            duration_ms:
              description: Wall-clock duration from solve start to terminal outcome.
              type: number
            error_code:
              description: >-
                Solver-specific error code on failure (e.g.
                ERROR_CAPTCHA_UNSOLVABLE). Absent on success.
              type: string
            status:
              description: >-
                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.
              enum:
                - success
                - failure
                - timeout
                - abandoned
              type: string
              x-go-type: string
            task_id:
              description: >-
                Solver-assigned identifier. Opaque, useful for support
                cross-references.
              type: string
            website_host:
              description: Host of the page where the captcha was solved.
              type: string
            website_path:
              description: >-
                Path of the page where the captcha was solved. Query string
                excluded.
              type: string
          required:
            - captcha_type
            - status
            - duration_ms
          type: object
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        truncated:
          description: True if the data field was truncated due to size limits.
          type: boolean
        ts:
          description: Event timestamp in Unix microseconds.
          format: int64
          type: integer
        type:
          const: captcha_solve_result
          type: string
      required:
        - ts
        - type
        - category
        - source
      type: object
    BrowserCdpCommandEvent:
      description: >
        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`.
      properties:
        category:
          const: control
          type: string
        data:
          $ref: '#/components/schemas/BrowserCdpCommandEventData'
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        truncated:
          description: True if the data field was truncated due to size limits.
          type: boolean
        ts:
          description: Event timestamp in Unix microseconds.
          format: int64
          type: integer
        type:
          const: cdp_command
          type: string
      required:
        - ts
        - type
        - category
        - source
        - data
      type: object
    BrowserCdpConnectEvent:
      description: >-
        An external client (e.g. customer SDK, Playwright, Puppeteer) connected
        to the CDP WebSocket proxy on this VM.
      properties:
        category:
          const: connection
          type: string
        data:
          additionalProperties: false
          properties:
            connection_id:
              description: >-
                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.
              maxLength: 128
              type: string
          type: object
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        truncated:
          description: True if the data field was truncated due to size limits.
          type: boolean
        ts:
          description: Event timestamp in Unix microseconds.
          format: int64
          type: integer
        type:
          const: cdp_connect
          type: string
      required:
        - ts
        - type
        - category
        - source
      type: object
    BrowserCdpDisconnectEvent:
      description: >-
        An external client disconnected from the CDP WebSocket proxy on this VM.
        Pair with the immediately preceding cdp_connect on the same stream.
      properties:
        category:
          const: connection
          type: string
        data:
          additionalProperties: false
          properties:
            connection_id:
              description: >-
                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.
              maxLength: 128
              type: string
            duration_ms:
              description: Wall-clock duration of the connection in milliseconds.
              type: number
            message_count:
              description: >-
                Number of CDP messages relayed across the connection in either
                direction.
              type: integer
            reason:
              description: >-
                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).
              enum:
                - client_close
                - upstream_changed
                - upstream_error
                - context_cancelled
              type: string
              x-go-type: string
            telemetry_dropped:
              description: >-
                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.
              type: integer
            telemetry_excluded:
              description: >-
                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.
              type: integer
          required:
            - duration_ms
            - message_count
            - reason
          type: object
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        truncated:
          description: True if the data field was truncated due to size limits.
          type: boolean
        ts:
          description: Event timestamp in Unix microseconds.
          format: int64
          type: integer
        type:
          const: cdp_disconnect
          type: string
      required:
        - ts
        - type
        - category
        - source
      type: object
    BrowserConsoleErrorEvent:
      description: >
        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.
      properties:
        category:
          const: console
          type: string
        data:
          allOf:
            - $ref: '#/components/schemas/BrowserEventContext'
            - properties:
                args:
                  description: >-
                    All console arguments coerced to strings. Present only when
                    sourced from Runtime.consoleAPICalled.
                  items:
                    type: string
                  type: array
                column:
                  description: >-
                    Column number in the script where the exception was thrown.
                    Present only when sourced from Runtime.exceptionThrown.
                  type: integer
                level:
                  description: >-
                    CDP console type value, always "error". Present only when
                    sourced from Runtime.consoleAPICalled.
                  type: string
                line:
                  description: >-
                    Line number in the script where the exception was thrown.
                    Present only when sourced from Runtime.exceptionThrown.
                  type: integer
                source_url:
                  description: >-
                    URL of the script file that threw the exception. Present
                    only when sourced from Runtime.exceptionThrown.
                  type: string
                stack_trace:
                  $ref: '#/components/schemas/BrowserCallStack'
                text:
                  description: >
                    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".
                  type: string
              required:
                - text
              type: object
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        truncated:
          description: True if the data field was truncated due to size limits.
          type: boolean
        ts:
          description: Event timestamp in Unix microseconds.
          format: int64
          type: integer
        type:
          const: console_error
          type: string
      required:
        - ts
        - type
        - category
        - source
      title: console_error
      type: object
    BrowserConsoleLogEvent:
      description: >-
        A browser console log event (console.log, console.info, console.warn,
        etc.).
      properties:
        category:
          const: console
          type: string
        data:
          allOf:
            - $ref: '#/components/schemas/BrowserEventContext'
            - properties:
                args:
                  description: All console arguments coerced to strings.
                  items:
                    type: string
                  type: array
                level:
                  description: >-
                    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.
                  type: string
                stack_trace:
                  $ref: '#/components/schemas/BrowserCallStack'
                text:
                  description: First console argument coerced to string.
                  type: string
              type: object
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        truncated:
          description: True if the data field was truncated due to size limits.
          type: boolean
        ts:
          description: Event timestamp in Unix microseconds.
          format: int64
          type: integer
        type:
          const: console_log
          type: string
      required:
        - ts
        - type
        - category
        - source
      title: console_log
      type: object
    BrowserInteractionClickEvent:
      description: A browser user click event captured via injected page script.
      properties:
        category:
          const: interaction
          type: string
        data:
          allOf:
            - $ref: '#/components/schemas/BrowserEventContext'
            - properties:
                selector:
                  description: CSS selector path to the clicked element.
                  type: string
                tag:
                  description: >-
                    HTML tag name of the clicked element in uppercase (e.g.
                    BUTTON, A, DIV).
                  type: string
                text:
                  description: Visible text content of the clicked element, trimmed.
                  type: string
                'true':
                  description: Viewport y-coordinate of the click in CSS pixels.
                  type: integer
                x:
                  description: Viewport x-coordinate of the click in CSS pixels.
                  type: integer
              type: object
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        truncated:
          description: True if the data field was truncated due to size limits.
          type: boolean
        ts:
          description: Event timestamp in Unix microseconds.
          format: int64
          type: integer
        type:
          const: interaction_click
          type: string
      required:
        - ts
        - type
        - category
        - source
      title: interaction_click
      type: object
    BrowserInteractionKeyEvent:
      description: A browser keyboard event captured via injected page script.
      properties:
        category:
          const: interaction
          type: string
        data:
          allOf:
            - $ref: '#/components/schemas/BrowserEventContext'
            - properties:
                key:
                  description: Key value from the KeyboardEvent (e.g. Enter, Backspace, a).
                  type: string
                selector:
                  description: >-
                    CSS selector path to the element that had focus when the key
                    was pressed.
                  type: string
                tag:
                  description: >-
                    HTML tag name of the focused element in uppercase (e.g.
                    INPUT, TEXTAREA, DIV).
                  type: string
              type: object
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        truncated:
          description: True if the data field was truncated due to size limits.
          type: boolean
        ts:
          description: Event timestamp in Unix microseconds.
          format: int64
          type: integer
        type:
          const: interaction_key
          type: string
      required:
        - ts
        - type
        - category
        - source
      title: interaction_key
      type: object
    BrowserInteractionScrollSettledEvent:
      description: >-
        A browser scroll settled event emitted after scroll position stops
        changing, captured via injected page script.
      properties:
        category:
          const: interaction
          type: string
        data:
          allOf:
            - $ref: '#/components/schemas/BrowserEventContext'
            - properties:
                from_x:
                  description: >-
                    Scroll x-position at the start of the scroll gesture in CSS
                    pixels.
                  type: integer
                from_y:
                  description: >-
                    Scroll y-position at the start of the scroll gesture in CSS
                    pixels.
                  type: integer
                target_selector:
                  description: CSS selector path to the scrolled element.
                  type: string
                to_x:
                  description: >-
                    Final scroll x-position after the gesture settled in CSS
                    pixels.
                  type: integer
                to_y:
                  description: >-
                    Final scroll y-position after the gesture settled in CSS
                    pixels.
                  type: integer
              type: object
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        truncated:
          description: True if the data field was truncated due to size limits.
          type: boolean
        ts:
          description: Event timestamp in Unix microseconds.
          format: int64
          type: integer
        type:
          const: interaction_scroll_settled
          type: string
      required:
        - ts
        - type
        - category
        - source
      title: interaction_scroll_settled
      type: object
    BrowserLiveViewConnectEvent:
      description: >-
        A live view client connected to the headful browser's WebRTC server.
        Headful only; not emitted for headless images.
      properties:
        category:
          const: connection
          type: string
        data:
          additionalProperties: false
          properties:
            session_id:
              description: >-
                Live view session identifier. Stable across reconnects, so a
                transient network blip can emit two events with the same
                session_id.
              type: string
          required:
            - session_id
          type: object
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        truncated:
          description: True if the data field was truncated due to size limits.
          type: boolean
        ts:
          description: Event timestamp in Unix microseconds.
          format: int64
          type: integer
        type:
          const: live_view_connect
          type: string
      required:
        - ts
        - type
        - category
        - source
      type: object
    BrowserLiveViewDisconnectEvent:
      description: >-
        A live view client disconnected from the headful browser's WebRTC
        server. Pair with live_view_connect by session_id.
      properties:
        category:
          const: connection
          type: string
        data:
          additionalProperties: false
          properties:
            duration_ms:
              description: Wall-clock duration of the connection in milliseconds.
              type: number
            session_id:
              description: >-
                Live view session identifier; matches the corresponding
                live_view_connect event.
              type: string
          required:
            - session_id
            - duration_ms
          type: object
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        truncated:
          description: True if the data field was truncated due to size limits.
          type: boolean
        ts:
          description: Event timestamp in Unix microseconds.
          format: int64
          type: integer
        type:
          const: live_view_disconnect
          type: string
      required:
        - ts
        - type
        - category
        - source
      type: object
    BrowserMonitorDisconnectedEvent:
      description: >-
        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.
      properties:
        category:
          const: monitor
          type: string
        data:
          additionalProperties: false
          properties:
            reason:
              description: >-
                Reason for the disconnection. chrome_restarted: Chrome process
                restarted.
              enum:
                - chrome_restarted
              type: string
          type: object
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        truncated:
          description: True if the data field was truncated due to size limits.
          type: boolean
        ts:
          description: Event timestamp in Unix microseconds.
          format: int64
          type: integer
        type:
          const: monitor_disconnected
          type: string
      required:
        - ts
        - type
        - category
        - source
      title: monitor_disconnected
      type: object
    BrowserMonitorInitFailedEvent:
      description: The CDP session could not be initialized.
      properties:
        category:
          const: monitor
          type: string
        data:
          additionalProperties: false
          properties:
            step:
              description: >-
                The CDP method or initialization step that failed (e.g.
                Target.setAutoAttach).
              type: string
          type: object
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        truncated:
          description: True if the data field was truncated due to size limits.
          type: boolean
        ts:
          description: Event timestamp in Unix microseconds.
          format: int64
          type: integer
        type:
          const: monitor_init_failed
          type: string
      required:
        - ts
        - type
        - category
        - source
      title: monitor_init_failed
      type: object
    BrowserMonitorReconnectFailedEvent:
      description: >-
        The CDP connection to Chrome could not be re-established after
        exhausting all reconnection attempts. No further telemetry events will
        arrive on this session.
      properties:
        category:
          const: monitor
          type: string
        data:
          additionalProperties: false
          properties:
            reason:
              description: >-
                Reason for the reconnection failure. reconnect_exhausted: all
                retry attempts were used up without successfully restoring the
                CDP connection.
              enum:
                - reconnect_exhausted
              type: string
          type: object
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        truncated:
          description: True if the data field was truncated due to size limits.
          type: boolean
        ts:
          description: Event timestamp in Unix microseconds.
          format: int64
          type: integer
        type:
          const: monitor_reconnect_failed
          type: string
      required:
        - ts
        - type
        - category
        - source
      title: monitor_reconnect_failed
      type: object
    BrowserMonitorReconnectedEvent:
      description: >-
        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.
      properties:
        category:
          const: monitor
          type: string
        data:
          additionalProperties: false
          properties:
            reconnect_duration_ms:
              description: >-
                Wall-clock time in milliseconds taken to reconnect after the
                disconnection.
              format: int64
              type: integer
          type: object
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        truncated:
          description: True if the data field was truncated due to size limits.
          type: boolean
        ts:
          description: Event timestamp in Unix microseconds.
          format: int64
          type: integer
        type:
          const: monitor_reconnected
          type: string
      required:
        - ts
        - type
        - category
        - source
      title: monitor_reconnected
      type: object
    BrowserMonitorScreenshotEvent:
      description: A periodic screenshot of the browser viewport.
      properties:
        category:
          const: screenshot
          type: string
        data:
          additionalProperties: false
          properties:
            png:
              contentEncoding: base64
              description: Base64-encoded PNG screenshot of the browser viewport.
              type: string
          type: object
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        truncated:
          description: True if the data field was truncated due to size limits.
          type: boolean
        ts:
          description: Event timestamp in Unix microseconds.
          format: int64
          type: integer
        type:
          const: monitor_screenshot
          type: string
      required:
        - ts
        - type
        - category
        - source
      title: monitor_screenshot
      type: object
    BrowserNetworkIdleEvent:
      description: >-
        A browser network idle event emitted after a 500ms quiet period with no
        in-flight HTTP requests.
      properties:
        category:
          const: network
          type: string
        data:
          $ref: '#/components/schemas/BrowserEventContext'
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        truncated:
          description: True if the data field was truncated due to size limits.
          type: boolean
        ts:
          description: Event timestamp in Unix microseconds.
          format: int64
          type: integer
        type:
          const: network_idle
          type: string
      required:
        - ts
        - type
        - category
        - source
      title: network_idle
      type: object
    BrowserNetworkLoadingFailedEvent:
      description: >-
        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.
      properties:
        category:
          const: network
          type: string
        data:
          allOf:
            - $ref: '#/components/schemas/BrowserEventContext'
            - properties:
                canceled:
                  description: >-
                    True if the request was canceled by the browser or page
                    script.
                  type: boolean
                error_text:
                  description: >-
                    Network error description (e.g.
                    net::ERR_CONNECTION_REFUSED).
                  type: string
                request_id:
                  description: >-
                    CDP request identifier matching the originating
                    network_request event.
                  type: string
                resource_type:
                  description: >-
                    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.
                  type: string
              type: object
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        truncated:
          description: True if the data field was truncated due to size limits.
          type: boolean
        ts:
          description: Event timestamp in Unix microseconds.
          format: int64
          type: integer
        type:
          const: network_loading_failed
          type: string
      required:
        - ts
        - type
        - category
        - source
      title: network_loading_failed
      type: object
    BrowserNetworkRequestEvent:
      description: A browser network request sent event.
      properties:
        category:
          const: network
          type: string
        data:
          allOf:
            - $ref: '#/components/schemas/BrowserEventContext'
            - properties:
                document_url:
                  description: URL of the document that initiated the request.
                  type: string
                headers:
                  $ref: '#/components/schemas/BrowserHttpHeaders'
                  description: Request headers.
                initiator_type:
                  description: >-
                    CDP Initiator.type indicating what caused the request,
                    passed through as-is from Chrome. Known values include
                    script, parser, preload, and other.
                  type: string
                is_redirect:
                  description: True if this request is the result of a redirect.
                  type: boolean
                method:
                  description: HTTP method as sent on the wire (e.g. GET, POST).
                  type: string
                post_data:
                  description: Request body for POST/PUT requests, if available.
                  type: string
                redirect_url:
                  description: >-
                    Original URL before the redirect, present when is_redirect
                    is true.
                  type: string
                request_id:
                  description: CDP request identifier, unique within the session.
                  type: string
                resource_type:
                  description: >-
                    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.
                  type: string
              type: object
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        truncated:
          description: True if the data field was truncated due to size limits.
          type: boolean
        ts:
          description: Event timestamp in Unix microseconds.
          format: int64
          type: integer
        type:
          const: network_request
          type: string
      required:
        - ts
        - type
        - category
        - source
      title: network_request
      type: object
    BrowserNetworkResponseEvent:
      description: >-
        A browser network response received event. Fired after the response body
        is fully received, not when headers arrive.
      properties:
        category:
          const: network
          type: string
        data:
          allOf:
            - $ref: '#/components/schemas/BrowserEventContext'
            - properties:
                body:
                  description: Truncated response body, present only for text MIME types.
                  type: string
                headers:
                  $ref: '#/components/schemas/BrowserHttpHeaders'
                  description: Response headers.
                method:
                  description: HTTP method of the original request.
                  type: string
                mime_type:
                  description: >-
                    MIME type of the response (e.g. text/html,
                    application/json).
                  type: string
                request_id:
                  description: >-
                    CDP request identifier matching the originating
                    network_request event.
                  type: string
                resource_type:
                  description: >-
                    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.
                  type: string
                status:
                  description: HTTP response status code.
                  type: integer
                status_text:
                  description: HTTP response status text (e.g. OK, Not Found).
                  type: string
              type: object
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        truncated:
          description: True if the data field was truncated due to size limits.
          type: boolean
        ts:
          description: Event timestamp in Unix microseconds.
          format: int64
          type: integer
        type:
          const: network_response
          type: string
      required:
        - ts
        - type
        - category
        - source
      title: network_response
      type: object
    BrowserPageCrashedEvent:
      description: >
        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.
      properties:
        category:
          const: page
          type: string
        data:
          additionalProperties: false
          properties:
            target_id:
              description: CDP target identifier of the crashed page.
              type: string
            target_type:
              $ref: '#/components/schemas/BrowserTargetType'
            url:
              description: URL the page was on when its renderer process crashed.
              type: string
          required:
            - target_id
            - target_type
            - url
          type: object
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        truncated:
          description: True if the data field was truncated due to size limits.
          type: boolean
        ts:
          description: Event timestamp in Unix microseconds.
          format: int64
          type: integer
        type:
          const: page_crashed
          type: string
      required:
        - ts
        - type
        - category
        - source
      title: page_crashed
      type: object
    BrowserPageDomContentLoadedEvent:
      description: A browser DOMContentLoaded event (CDP Page.domContentEventFired).
      properties:
        category:
          const: page
          type: string
        data:
          allOf:
            - $ref: '#/components/schemas/BrowserEventContext'
            - properties:
                cdp_timestamp:
                  description: >-
                    Chrome monotonic clock value in seconds at which
                    DOMContentLoaded fired, relative to browser process start
                    (not Unix epoch). Use ts for wall-clock time.
                  type: number
              type: object
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        truncated:
          description: True if the data field was truncated due to size limits.
          type: boolean
        ts:
          description: Event timestamp in Unix microseconds.
          format: int64
          type: integer
        type:
          const: page_dom_content_loaded
          type: string
      required:
        - ts
        - type
        - category
        - source
      title: page_dom_content_loaded
      type: object
    BrowserPageLayoutSettledEvent:
      description: >-
        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.
      properties:
        category:
          const: page
          type: string
        data:
          $ref: '#/components/schemas/BrowserEventContext'
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        truncated:
          description: True if the data field was truncated due to size limits.
          type: boolean
        ts:
          description: Event timestamp in Unix microseconds.
          format: int64
          type: integer
        type:
          const: page_layout_settled
          type: string
      required:
        - ts
        - type
        - category
        - source
      title: page_layout_settled
      type: object
    BrowserPageLayoutShiftEvent:
      description: >-
        A browser cumulative layout shift (CLS) event from the Performance
        Timeline API.
      properties:
        category:
          const: page
          type: string
        data:
          allOf:
            - $ref: '#/components/schemas/BrowserEventContext'
            - properties:
                duration:
                  description: >-
                    Duration of the layout shift entry in milliseconds (always 0
                    for layout shifts per spec).
                  type: number
                layout_shift_details:
                  additionalProperties: false
                  description: >-
                    PerformanceLayoutShift attributes from the Performance
                    Timeline entry.
                  properties:
                    had_recent_input:
                      description: >-
                        True if the layout shift was preceded by user input
                        within 500ms, excluding it from CLS.
                      type: boolean
                    value:
                      description: Layout shift score for this entry (contribution to CLS).
                      type: number
                  type: object
                source_frame_id:
                  description: >-
                    CDP frame identifier of the frame where the layout shift
                    occurred.
                  type: string
                time:
                  description: >-
                    Performance Timeline timestamp of the layout shift in
                    milliseconds.
                  type: number
              type: object
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        truncated:
          description: True if the data field was truncated due to size limits.
          type: boolean
        ts:
          description: Event timestamp in Unix microseconds.
          format: int64
          type: integer
        type:
          const: page_layout_shift
          type: string
      required:
        - ts
        - type
        - category
        - source
      title: page_layout_shift
      type: object
    BrowserPageLcpEvent:
      description: >-
        A browser Largest Contentful Paint (LCP) event from the Performance
        Timeline API.
      properties:
        category:
          const: page
          type: string
        data:
          allOf:
            - $ref: '#/components/schemas/BrowserEventContext'
            - properties:
                lcp_details:
                  additionalProperties: false
                  description: >-
                    LargestContentfulPaint attributes from the Performance
                    Timeline entry.
                  properties:
                    element_id:
                      description: id attribute of the LCP element, if present.
                      type: string
                    load_time:
                      description: Load time of the LCP element in milliseconds.
                      type: number
                    node_id:
                      description: CDP DOM node identifier of the LCP element.
                      type: integer
                    render_time:
                      description: >-
                        Render time of the LCP element in milliseconds; 0 for
                        cross-origin images without Timing-Allow-Origin.
                      type: number
                    size:
                      description: Visible area of the LCP element in pixels squared.
                      type: number
                    url:
                      description: URL of the LCP element for image or video elements.
                      type: string
                  type: object
                source_frame_id:
                  description: >-
                    CDP frame identifier of the frame where the LCP element was
                    rendered.
                  type: string
                time:
                  description: >-
                    Performance Timeline timestamp of the LCP entry in
                    milliseconds.
                  type: number
              type: object
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        truncated:
          description: True if the data field was truncated due to size limits.
          type: boolean
        ts:
          description: Event timestamp in Unix microseconds.
          format: int64
          type: integer
        type:
          const: page_lcp
          type: string
      required:
        - ts
        - type
        - category
        - source
      title: page_lcp
      type: object
    BrowserPageLoadEvent:
      description: A browser page load event (CDP Page.loadEventFired).
      properties:
        category:
          const: page
          type: string
        data:
          allOf:
            - $ref: '#/components/schemas/BrowserEventContext'
            - properties:
                cdp_timestamp:
                  description: >-
                    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.
                  type: number
              type: object
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        truncated:
          description: True if the data field was truncated due to size limits.
          type: boolean
        ts:
          description: Event timestamp in Unix microseconds.
          format: int64
          type: integer
        type:
          const: page_load
          type: string
      required:
        - ts
        - type
        - category
        - source
      title: page_load
      type: object
    BrowserPageNavigationEvent:
      description: >-
        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.
      properties:
        category:
          const: page
          type: string
        data:
          additionalProperties: false
          properties:
            frame_id:
              description: CDP frame identifier of the navigated frame.
              type: string
            loader_id:
              description: New CDP document loader identifier assigned for this navigation.
              type: string
            parent_frame_id:
              description: >-
                Parent frame identifier for subframe navigations; absent for
                top-level navigations.
              type: string
            session_id:
              description: CDP session identifier.
              type: string
            target_id:
              description: Browser target identifier.
              type: string
            target_type:
              $ref: '#/components/schemas/BrowserTargetType'
            url:
              description: URL navigated to.
              type: string
          type: object
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        truncated:
          description: True if the data field was truncated due to size limits.
          type: boolean
        ts:
          description: Event timestamp in Unix microseconds.
          format: int64
          type: integer
        type:
          const: page_navigation
          type: string
      required:
        - ts
        - type
        - category
        - source
      title: page_navigation
      type: object
    BrowserPageNavigationSettledEvent:
      description: >-
        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.
      properties:
        category:
          const: page
          type: string
        data:
          $ref: '#/components/schemas/BrowserEventContext'
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        truncated:
          description: True if the data field was truncated due to size limits.
          type: boolean
        ts:
          description: Event timestamp in Unix microseconds.
          format: int64
          type: integer
        type:
          const: page_navigation_settled
          type: string
      required:
        - ts
        - type
        - category
        - source
      title: page_navigation_settled
      type: object
    BrowserPageTabOpenedEvent:
      description: >-
        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.
      properties:
        category:
          const: page
          type: string
        data:
          additionalProperties: false
          properties:
            opener_id:
              description: Target identifier of the tab that opened this one, if any.
              type: string
            target_id:
              description: CDP target identifier for the newly opened tab.
              type: string
            target_type:
              $ref: '#/components/schemas/BrowserTargetType'
            title:
              description: Initial page title of the new tab.
              type: string
            url:
              description: Initial URL of the new tab.
              type: string
          type: object
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        truncated:
          description: True if the data field was truncated due to size limits.
          type: boolean
        ts:
          description: Event timestamp in Unix microseconds.
          format: int64
          type: integer
        type:
          const: page_tab_opened
          type: string
      required:
        - ts
        - type
        - category
        - source
      title: page_tab_opened
      type: object
    BrowserPlatformApiCallEvent:
      description: >-
        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.
      properties:
        category:
          const: platform
          type: string
        data:
          additionalProperties: false
          properties:
            duration_ms:
              description: Wall-clock duration of the handler in milliseconds.
              type: number
            operation_id:
              description: >-
                Matched route's operation, named as the in-VM API names its
                handler (e.g. ProcessExec, StartRecording).
              type: string
            request_id:
              description: Per-request identifier from the in-VM API request middleware.
              type: string
            status:
              description: HTTP response status code.
              type: integer
          required:
            - request_id
            - operation_id
            - status
            - duration_ms
          type: object
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        truncated:
          description: True if the data field was truncated due to size limits.
          type: boolean
        ts:
          description: Event timestamp in Unix microseconds.
          format: int64
          type: integer
        type:
          const: platform_api_call
          type: string
      required:
        - ts
        - type
        - category
        - source
      type: object
    BrowserProxyErrorEvent:
      description: >
        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.
      properties:
        category:
          const: network
          type: string
        data:
          allOf:
            - $ref: '#/components/schemas/BrowserEventContext'
            - properties:
                code:
                  description: >
                    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.
                  enum:
                    - destination_blocked
                    - provider_blacklisted
                    - provider_unreachable
                    - proxy_unavailable
                    - upstream_timeout
                    - upstream_dns_failure
                    - upstream_connect_failed
                  type: string
                method:
                  description: HTTP method of the failed request, when known.
                  type: string
                request_id:
                  description: CDP request identifier matching the originating request.
                  type: string
                resource_type:
                  description: CDP Network.ResourceType for the request, when known.
                  type: string
                status:
                  description: HTTP response status of the branded error page (502).
                  type: integer
              required:
                - request_id
                - code
                - status
              type: object
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        truncated:
          description: True if the data field was truncated due to size limits.
          type: boolean
        ts:
          description: Event timestamp in Unix microseconds.
          format: int64
          type: integer
        type:
          const: proxy_error
          type: string
      required:
        - ts
        - type
        - category
        - source
      title: proxy_error
      type: object
    BrowserServiceCrashedEvent:
      description: >-
        A managed service exited unexpectedly. Intentional stops do not produce
        this event; only unexpected exits and terminal restart-give-up
        transitions do.
      properties:
        category:
          const: system
          type: string
        data:
          additionalProperties: false
          properties:
            phase:
              description: >-
                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.
              enum:
                - startup
                - running
                - gave_up
              type: string
              x-go-type: string
            pid:
              description: >-
                PID of the crashed process. Absent when the process manager gave
                up after exhausting restart attempts.
              type: integer
            service_name:
              description: >-
                Program name of the crashed service (e.g. chromium, mutter,
                kernel-images-api).
              type: string
          required:
            - service_name
            - phase
          type: object
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        truncated:
          description: True if the data field was truncated due to size limits.
          type: boolean
        ts:
          description: Event timestamp in Unix microseconds.
          format: int64
          type: integer
        type:
          const: service_crashed
          type: string
      required:
        - ts
        - type
        - category
        - source
      type: object
    BrowserSystemOomKillEvent:
      description: >-
        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.
      properties:
        category:
          const: system
          type: string
        data:
          additionalProperties: false
          properties:
            constraint:
              description: >-
                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.
              enum:
                - none
                - memcg
                - cpuset
                - memory_policy
              type: string
              x-go-type: string
            mem_free_kb:
              description: >-
                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.
              type: integer
            mem_total_kb:
              description: >-
                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.
              type: integer
            pid:
              description: PID of the killed process.
              type: integer
            process_name:
              description: >-
                Comm of the killed process as reported by the kernel (max 15
                chars, truncated by the kernel).
              type: string
            rss_kb:
              description: >-
                Resident set size of the killed process in KiB (sum of anon-rss,
                file-rss, and shmem-rss).
              type: integer
            top_tasks:
              description: >-
                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.
              items:
                additionalProperties: false
                properties:
                  name:
                    description: >-
                      Comm of the process (max 15 chars, truncated by the
                      kernel).
                    type: string
                  pid:
                    description: PID of the process.
                    type: integer
                  rss_kb:
                    description: Resident set size in KiB at the moment of the kill.
                    type: integer
                required:
                  - pid
                  - name
                  - rss_kb
                type: object
              maxItems: 5
              type: array
            trigger_pid:
              description: >-
                PID of the triggering process. Absent if the kernel did not emit
                the standard header line.
              type: integer
            trigger_process_name:
              description: >-
                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.
              type: string
          required:
            - process_name
            - pid
            - rss_kb
          type: object
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        truncated:
          description: True if the data field was truncated due to size limits.
          type: boolean
        ts:
          description: Event timestamp in Unix microseconds.
          format: int64
          type: integer
        type:
          const: system_oom_kill
          type: string
      required:
        - ts
        - type
        - category
        - source
      type: object
    ErrorDetail:
      properties:
        code:
          description: Lower-level error code providing more specific detail
          example: invalid_input
          type: string
        message:
          description: Further detail about the error
          example: Provided version string is not semver compliant
          type: string
      type: object
    BrowserEventSource:
      description: Provenance metadata identifying which producer emitted the event.
      properties:
        event:
          description: >-
            Producer-specific event name (e.g. Runtime.consoleAPICalled for
            CDP-sourced console events, Runtime.exceptionThrown for uncaught
            exceptions).
          type: string
        kind:
          description: >-
            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.
          enum:
            - cdp
            - kernel_api
            - extension
            - local_process
          type: string
        metadata:
          additionalProperties:
            type: string
          description: Producer-specific context (e.g. CDP target/session/frame IDs).
          type: object
      required:
        - kind
      type: object
    BrowserCdpCommandEventData:
      description: >
        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.
      discriminator:
        mapping:
          Autofill.trigger:
            $ref: '#/components/schemas/BrowserCdpAutofillTriggerCommandData'
          Browser.cancelDownload:
            $ref: '#/components/schemas/BrowserCdpBrowserCancelDownloadCommandData'
          Browser.close:
            $ref: '#/components/schemas/BrowserCdpBrowserCloseCommandData'
          Browser.setContentsSize:
            $ref: '#/components/schemas/BrowserCdpBrowserSetContentsSizeCommandData'
          Browser.setWindowBounds:
            $ref: '#/components/schemas/BrowserCdpBrowserSetWindowBoundsCommandData'
          DOM.focus:
            $ref: '#/components/schemas/BrowserCdpDomFocusCommandData'
          DOM.scrollIntoViewIfNeeded:
            $ref: >-
              #/components/schemas/BrowserCdpDomScrollIntoViewIfNeededCommandData
          DOM.setFileInputFiles:
            $ref: '#/components/schemas/BrowserCdpDomSetFileInputFilesCommandData'
          Input.cancelDragging:
            $ref: '#/components/schemas/BrowserCdpInputCancelDraggingCommandData'
          Input.dispatchDragEvent:
            $ref: '#/components/schemas/BrowserCdpInputDispatchDragEventCommandData'
          Input.dispatchKeyEvent:
            $ref: '#/components/schemas/BrowserCdpInputDispatchKeyEventCommandData'
          Input.dispatchMouseEvent:
            $ref: '#/components/schemas/BrowserCdpInputDispatchMouseEventCommandData'
          Input.dispatchTouchEvent:
            $ref: '#/components/schemas/BrowserCdpInputDispatchTouchEventCommandData'
          Input.emulateTouchFromMouseEvent:
            $ref: >-
              #/components/schemas/BrowserCdpInputEmulateTouchFromMouseEventCommandData
          Input.imeSetComposition:
            $ref: '#/components/schemas/BrowserCdpInputImeSetCompositionCommandData'
          Input.insertText:
            $ref: '#/components/schemas/BrowserCdpInputInsertTextCommandData'
          Input.synthesizePinchGesture:
            $ref: >-
              #/components/schemas/BrowserCdpInputSynthesizePinchGestureCommandData
          Input.synthesizeScrollGesture:
            $ref: >-
              #/components/schemas/BrowserCdpInputSynthesizeScrollGestureCommandData
          Input.synthesizeTapGesture:
            $ref: >-
              #/components/schemas/BrowserCdpInputSynthesizeTapGestureCommandData
          Page.bringToFront:
            $ref: '#/components/schemas/BrowserCdpPageBringToFrontCommandData'
          Page.captureScreenshot:
            $ref: '#/components/schemas/BrowserCdpPageCaptureScreenshotCommandData'
          Page.captureSnapshot:
            $ref: '#/components/schemas/BrowserCdpPageCaptureSnapshotCommandData'
          Page.close:
            $ref: '#/components/schemas/BrowserCdpPageCloseCommandData'
          Page.handleJavaScriptDialog:
            $ref: >-
              #/components/schemas/BrowserCdpPageHandleJavaScriptDialogCommandData
          Page.navigate:
            $ref: '#/components/schemas/BrowserCdpPageNavigateCommandData'
          Page.navigateToHistoryEntry:
            $ref: >-
              #/components/schemas/BrowserCdpPageNavigateToHistoryEntryCommandData
          Page.printToPDF:
            $ref: '#/components/schemas/BrowserCdpPagePrintToPdfCommandData'
          Page.reload:
            $ref: '#/components/schemas/BrowserCdpPageReloadCommandData'
          Page.setWebLifecycleState:
            $ref: '#/components/schemas/BrowserCdpPageSetWebLifecycleStateCommandData'
          Page.startScreencast:
            $ref: '#/components/schemas/BrowserCdpPageStartScreencastCommandData'
          Page.stopLoading:
            $ref: '#/components/schemas/BrowserCdpPageStopLoadingCommandData'
          Page.stopScreencast:
            $ref: '#/components/schemas/BrowserCdpPageStopScreencastCommandData'
          Target.activateTarget:
            $ref: '#/components/schemas/BrowserCdpTargetActivateTargetCommandData'
          Target.closeTarget:
            $ref: '#/components/schemas/BrowserCdpTargetCloseTargetCommandData'
          Target.createBrowserContext:
            $ref: >-
              #/components/schemas/BrowserCdpTargetCreateBrowserContextCommandData
          Target.createTarget:
            $ref: '#/components/schemas/BrowserCdpTargetCreateTargetCommandData'
          Target.disposeBrowserContext:
            $ref: >-
              #/components/schemas/BrowserCdpTargetDisposeBrowserContextCommandData
          Target.openDevTools:
            $ref: '#/components/schemas/BrowserCdpTargetOpenDevToolsCommandData'
        propertyName: method
      oneOf:
        - $ref: '#/components/schemas/BrowserCdpInputDispatchMouseEventCommandData'
        - $ref: '#/components/schemas/BrowserCdpInputDispatchKeyEventCommandData'
        - $ref: '#/components/schemas/BrowserCdpInputInsertTextCommandData'
        - $ref: '#/components/schemas/BrowserCdpInputImeSetCompositionCommandData'
        - $ref: '#/components/schemas/BrowserCdpInputDispatchTouchEventCommandData'
        - $ref: '#/components/schemas/BrowserCdpInputDispatchDragEventCommandData'
        - $ref: '#/components/schemas/BrowserCdpInputCancelDraggingCommandData'
        - $ref: >-
            #/components/schemas/BrowserCdpInputEmulateTouchFromMouseEventCommandData
        - $ref: >-
            #/components/schemas/BrowserCdpInputSynthesizePinchGestureCommandData
        - $ref: >-
            #/components/schemas/BrowserCdpInputSynthesizeScrollGestureCommandData
        - $ref: '#/components/schemas/BrowserCdpInputSynthesizeTapGestureCommandData'
        - $ref: '#/components/schemas/BrowserCdpDomSetFileInputFilesCommandData'
        - $ref: '#/components/schemas/BrowserCdpDomFocusCommandData'
        - $ref: '#/components/schemas/BrowserCdpDomScrollIntoViewIfNeededCommandData'
        - $ref: '#/components/schemas/BrowserCdpPageBringToFrontCommandData'
        - $ref: '#/components/schemas/BrowserCdpPageCaptureScreenshotCommandData'
        - $ref: '#/components/schemas/BrowserCdpPageCaptureSnapshotCommandData'
        - $ref: '#/components/schemas/BrowserCdpPageHandleJavaScriptDialogCommandData'
        - $ref: '#/components/schemas/BrowserCdpPageNavigateCommandData'
        - $ref: '#/components/schemas/BrowserCdpPageNavigateToHistoryEntryCommandData'
        - $ref: '#/components/schemas/BrowserCdpPageReloadCommandData'
        - $ref: '#/components/schemas/BrowserCdpPagePrintToPdfCommandData'
        - $ref: '#/components/schemas/BrowserCdpPageStartScreencastCommandData'
        - $ref: '#/components/schemas/BrowserCdpPageStopScreencastCommandData'
        - $ref: '#/components/schemas/BrowserCdpPageStopLoadingCommandData'
        - $ref: '#/components/schemas/BrowserCdpPageCloseCommandData'
        - $ref: '#/components/schemas/BrowserCdpPageSetWebLifecycleStateCommandData'
        - $ref: '#/components/schemas/BrowserCdpTargetActivateTargetCommandData'
        - $ref: '#/components/schemas/BrowserCdpTargetCloseTargetCommandData'
        - $ref: '#/components/schemas/BrowserCdpTargetCreateTargetCommandData'
        - $ref: '#/components/schemas/BrowserCdpTargetCreateBrowserContextCommandData'
        - $ref: >-
            #/components/schemas/BrowserCdpTargetDisposeBrowserContextCommandData
        - $ref: '#/components/schemas/BrowserCdpTargetOpenDevToolsCommandData'
        - $ref: '#/components/schemas/BrowserCdpBrowserCancelDownloadCommandData'
        - $ref: '#/components/schemas/BrowserCdpBrowserCloseCommandData'
        - $ref: '#/components/schemas/BrowserCdpBrowserSetWindowBoundsCommandData'
        - $ref: '#/components/schemas/BrowserCdpBrowserSetContentsSizeCommandData'
        - $ref: '#/components/schemas/BrowserCdpAutofillTriggerCommandData'
    BrowserEventContext:
      description: >-
        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.
      properties:
        frame_id:
          description: CDP frame identifier within the target.
          type: string
        loader_id:
          description: CDP document loader identifier, reset on each navigation.
          type: string
        nav_seq:
          description: >-
            Monotonically increasing navigation sequence number, incremented on
            each top-level navigation within the target.
          format: int64
          type: integer
        session_id:
          description: CDP session identifier for the target connection.
          type: string
        target_id:
          description: Browser target identifier (stable across navigations within a tab).
          type: string
        target_type:
          $ref: '#/components/schemas/BrowserTargetType'
        url:
          description: >-
            URL relevant to this event — page URL for navigation and page
            events, request URL for network events.
          type: string
      type: object
    BrowserCallStack:
      description: >-
        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.
      properties:
        callFrames:
          description: Ordered list of call frames, outermost first.
          items:
            properties:
              columnNumber:
                description: Zero-based column number within the line.
                type: integer
              functionName:
                description: >-
                  JavaScript function name, or empty string for anonymous
                  functions.
                type: string
              lineNumber:
                description: Zero-based line number within the script.
                type: integer
              scriptId:
                description: CDP script identifier.
                type: string
              url:
                description: URL or name of the script file.
                type: string
            required:
              - functionName
              - scriptId
              - url
              - lineNumber
              - columnNumber
            type: object
          type: array
        description:
          description: Optional label for the stack trace (e.g. async cause).
          type: string
        parent:
          $ref: '#/components/schemas/BrowserCallStack'
          description: Parent stack trace for async stacks.
      required:
        - callFrames
      type: object
    BrowserHttpHeaders:
      additionalProperties: true
      description: >-
        HTTP headers map forwarded as-is from CDP without normalization. Values
        are typically strings but may be any JSON type.
      type: object
    BrowserTargetType:
      description: CDP target type of the page that produced the event.
      enum:
        - page
        - background_page
        - service_worker
        - shared_worker
        - other
      type: string
    BrowserCdpAutofillTriggerCommandData:
      additionalProperties: false
      description: >
        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.
      properties:
        address_field_count:
          description: >
            Number of address fields the command filled. Their names and values
            are never captured.
          type: integer
        command_id:
          description: >
            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.
          format: int64
          type: integer
        connection_id:
          description: >
            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.
          maxLength: 128
          type: string
        field_id:
          description: |
            Opaque backend node identifier of the field that was autofilled.
          type: integer
        frame_id:
          description: >
            Opaque frame identifier. Clipped to 128 characters; a longer value
            is not a real identifier.
          maxLength: 128
          type: string
        method:
          const: Autofill.trigger
          type: string
        mode:
          $ref: '#/components/schemas/BrowserCdpAutofillMode'
          description: >
            What was filled: `card` or `address`. The values themselves are
            never captured.
        session_id:
          description: >
            CDP session identifier the command was addressed to. Absent for
            browser-level commands. Clipped to 128 characters.
          maxLength: 128
          type: string
      required:
        - method
        - field_id
      type: object
    BrowserCdpBrowserCancelDownloadCommandData:
      additionalProperties: false
      description: >
        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.
      properties:
        browser_context_id:
          description: >
            Opaque browser context identifier. Clipped to 128 characters; a
            longer value is not a real identifier.
          maxLength: 128
          type: string
        command_id:
          description: >
            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.
          format: int64
          type: integer
        connection_id:
          description: >
            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.
          maxLength: 128
          type: string
        download_guid:
          description: >
            Opaque identifier of the download that was cancelled. Clipped to 128
            characters; a longer value is not a real identifier.
          maxLength: 128
          type: string
        method:
          const: Browser.cancelDownload
          type: string
        session_id:
          description: >
            CDP session identifier the command was addressed to. Absent for
            browser-level commands. Clipped to 128 characters.
          maxLength: 128
          type: string
      required:
        - method
        - download_guid
      type: object
    BrowserCdpBrowserCloseCommandData:
      additionalProperties: false
      description: >
        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.
      properties:
        command_id:
          description: >
            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.
          format: int64
          type: integer
        connection_id:
          description: >
            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.
          maxLength: 128
          type: string
        method:
          const: Browser.close
          type: string
        session_id:
          description: >
            CDP session identifier the command was addressed to. Absent for
            browser-level commands. Clipped to 128 characters.
          maxLength: 128
          type: string
      required:
        - method
      type: object
    BrowserCdpBrowserSetContentsSizeCommandData:
      additionalProperties: false
      description: >
        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.
      properties:
        command_id:
          description: >
            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.
          format: int64
          type: integer
        connection_id:
          description: >
            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.
          maxLength: 128
          type: string
        height:
          description: |
            Contents height in DIP.
          type: integer
        method:
          const: Browser.setContentsSize
          type: string
        session_id:
          description: >
            CDP session identifier the command was addressed to. Absent for
            browser-level commands. Clipped to 128 characters.
          maxLength: 128
          type: string
        width:
          description: |
            Contents width in DIP.
          type: integer
        window_id:
          description: |
            Browser window identifier.
          type: integer
      required:
        - method
        - window_id
      type: object
    BrowserCdpBrowserSetWindowBoundsCommandData:
      additionalProperties: false
      description: >
        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.
      properties:
        command_id:
          description: >
            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.
          format: int64
          type: integer
        connection_id:
          description: >
            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.
          maxLength: 128
          type: string
        height:
          description: |
            Window height in DIP.
          type: integer
        left:
          description: |
            Window x position in screen coordinates.
          type: integer
        method:
          const: Browser.setWindowBounds
          type: string
        session_id:
          description: >
            CDP session identifier the command was addressed to. Absent for
            browser-level commands. Clipped to 128 characters.
          maxLength: 128
          type: string
        top:
          description: |
            Window y position in screen coordinates.
          type: integer
        width:
          description: |
            Window width in DIP.
          type: integer
        window_id:
          description: |
            Browser window identifier.
          type: integer
        window_state:
          $ref: '#/components/schemas/BrowserCdpWindowState'
          description: >
            Window state requested (`normal`, `minimized`, `maximized`,
            `fullscreen`). A value the protocol does not define is reported as
            `other`.
      required:
        - method
        - window_id
      type: object
    BrowserCdpDomFocusCommandData:
      additionalProperties: false
      description: >
        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.
      properties:
        backend_node_id:
          description: |
            Opaque backend DOM node identifier the command targeted.
          type: integer
        command_id:
          description: >
            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.
          format: int64
          type: integer
        connection_id:
          description: >
            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.
          maxLength: 128
          type: string
        method:
          const: DOM.focus
          type: string
        node_id:
          description: |
            Opaque DOM node identifier the command targeted.
          type: integer
        object_id:
          description: >
            Opaque Runtime remote object identifier the command targeted.
            Clipped to 128 characters; a longer value is not a real identifier.
          maxLength: 128
          type: string
        session_id:
          description: >
            CDP session identifier the command was addressed to. Absent for
            browser-level commands. Clipped to 128 characters.
          maxLength: 128
          type: string
      required:
        - method
      type: object
    BrowserCdpDomScrollIntoViewIfNeededCommandData:
      additionalProperties: false
      description: >
        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.
      properties:
        backend_node_id:
          description: |
            Opaque backend DOM node identifier the command targeted.
          type: integer
        command_id:
          description: >
            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.
          format: int64
          type: integer
        connection_id:
          description: >
            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.
          maxLength: 128
          type: string
        method:
          const: DOM.scrollIntoViewIfNeeded
          type: string
        node_id:
          description: |
            Opaque DOM node identifier the command targeted.
          type: integer
        object_id:
          description: >
            Opaque Runtime remote object identifier the command targeted.
            Clipped to 128 characters; a longer value is not a real identifier.
          maxLength: 128
          type: string
        rect_height:
          description: |
            Height of the rect the command scrolled to.
          format: double
          type: number
        rect_width:
          description: |
            Width of the rect the command scrolled to.
          format: double
          type: number
        rect_x:
          description: |
            X offset of the rect the command scrolled to, relative to the node.
          format: double
          type: number
        rect_y:
          description: |
            Y offset of the rect the command scrolled to, relative to the node.
          format: double
          type: number
        session_id:
          description: >
            CDP session identifier the command was addressed to. Absent for
            browser-level commands. Clipped to 128 characters.
          maxLength: 128
          type: string
      required:
        - method
      type: object
    BrowserCdpDomSetFileInputFilesCommandData:
      additionalProperties: false
      description: >
        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.
      properties:
        backend_node_id:
          description: |
            Opaque backend DOM node identifier the command targeted.
          type: integer
        command_id:
          description: >
            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.
          format: int64
          type: integer
        connection_id:
          description: >
            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.
          maxLength: 128
          type: string
        file_count:
          description: |
            Number of files handed to the input. File paths are never captured.
          type: integer
        method:
          const: DOM.setFileInputFiles
          type: string
        node_id:
          description: |
            Opaque DOM node identifier the command targeted.
          type: integer
        object_id:
          description: >
            Opaque Runtime remote object identifier the command targeted.
            Clipped to 128 characters; a longer value is not a real identifier.
          maxLength: 128
          type: string
        session_id:
          description: >
            CDP session identifier the command was addressed to. Absent for
            browser-level commands. Clipped to 128 characters.
          maxLength: 128
          type: string
      required:
        - method
        - file_count
      type: object
    BrowserCdpInputCancelDraggingCommandData:
      additionalProperties: false
      description: >
        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.
      properties:
        command_id:
          description: >
            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.
          format: int64
          type: integer
        connection_id:
          description: >
            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.
          maxLength: 128
          type: string
        method:
          const: Input.cancelDragging
          type: string
        session_id:
          description: >
            CDP session identifier the command was addressed to. Absent for
            browser-level commands. Clipped to 128 characters.
          maxLength: 128
          type: string
      required:
        - method
      type: object
    BrowserCdpInputDispatchDragEventCommandData:
      additionalProperties: false
      description: >
        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.
      properties:
        command_id:
          description: >
            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.
          format: int64
          type: integer
        connection_id:
          description: >
            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.
          maxLength: 128
          type: string
        drag_file_count:
          description: |
            Number of files in the drag payload. File paths are never captured.
          type: integer
        drag_item_count:
          description: >
            Number of items in the drag payload. Item contents are never
            captured.
          type: integer
        drag_mime_categories:
          description: >
            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`.
          items:
            $ref: '#/components/schemas/BrowserCdpDragMimeCategory'
          type: array
        drag_operations_mask:
          description: |
            Bit field of allowed drag operations (1=copy, 2=link, 16=move).
          type: integer
        event_type:
          $ref: '#/components/schemas/BrowserCdpDragEventType'
          description: >
            Drag event phase: `dragEnter`, `dragOver`, `drop` or `dragCancel`. A
            value the protocol does not define is reported as `other`.
        method:
          const: Input.dispatchDragEvent
          type: string
        modifiers:
          description: |
            Bit field of held modifier keys (1=Alt, 2=Ctrl, 4=Meta, 8=Shift).
          type: integer
        session_id:
          description: >
            CDP session identifier the command was addressed to. Absent for
            browser-level commands. Clipped to 128 characters.
          maxLength: 128
          type: string
        'true':
          description: |
            Viewport y coordinate in CSS pixels.
          format: double
          type: number
        x:
          description: |
            Viewport x coordinate in CSS pixels.
          format: double
          type: number
      required:
        - method
        - event_type
      type: object
    BrowserCdpInputDispatchKeyEventCommandData:
      additionalProperties: false
      description: >
        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.
      properties:
        auto_repeat:
          description: |
            Whether the event was generated by key repeat.
          type: boolean
        command_count:
          description: |
            Number of editing commands (e.g. `selectAll`) carried by the event.
          type: integer
        command_id:
          description: >
            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.
          format: int64
          type: integer
        connection_id:
          description: >
            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.
          maxLength: 128
          type: string
        event_type:
          $ref: '#/components/schemas/BrowserCdpKeyEventType'
          description: >
            Key event phase: `keyDown`, `keyUp`, `rawKeyDown` or `char`. A value
            the protocol does not define is reported as `other`.
        is_keypad:
          description: |
            Whether the key is on the numeric keypad.
          type: boolean
        is_system_key:
          description: |
            Whether the event is a system key event.
          type: boolean
        location:
          description: |
            Keyboard location (1=left, 2=right, 3=numpad).
          type: integer
        method:
          const: Input.dispatchKeyEvent
          type: string
        modifiers:
          description: |
            Bit field of held modifier keys (1=Alt, 2=Ctrl, 4=Meta, 8=Shift).
          type: integer
        named_key:
          description: >
            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`.
          type: string
        session_id:
          description: >
            CDP session identifier the command was addressed to. Absent for
            browser-level commands. Clipped to 128 characters.
          maxLength: 128
          type: string
        text_length:
          description: >
            Number of characters the command submitted. The text itself is never
            captured.
          type: integer
      required:
        - method
        - event_type
      type: object
    BrowserCdpInputDispatchMouseEventCommandData:
      additionalProperties: false
      description: >
        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.
      properties:
        button:
          $ref: '#/components/schemas/BrowserCdpMouseButton'
          description: >
            Button named by the command (`none`, `left`, `middle`, `right`,
            `back`, `forward`). A value the protocol does not define is reported
            as `other`.
        buttons:
          description: >
            Bit field of buttons held down. Non-zero on a `mouseMoved` means the
            move is a drag path.
          type: integer
        click_count:
          description: |
            Number of times the button was clicked (2 is a double click).
          type: integer
        command_id:
          description: >
            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.
          format: int64
          type: integer
        connection_id:
          description: >
            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.
          maxLength: 128
          type: string
        delta_x:
          description: |
            Horizontal scroll delta, for `mouseWheel`.
          format: double
          type: number
        delta_y:
          description: |
            Vertical scroll delta, for `mouseWheel`.
          format: double
          type: number
        event_type:
          $ref: '#/components/schemas/BrowserCdpMouseEventType'
          description: >
            Mouse event phase: `mousePressed`, `mouseReleased`, `mouseMoved` or
            `mouseWheel`. A value the protocol does not define is reported as
            `other`.
        force:
          description: |
            Normalized pressure, 0 to 1.
          format: double
          type: number
        method:
          const: Input.dispatchMouseEvent
          type: string
        modifiers:
          description: |
            Bit field of held modifier keys (1=Alt, 2=Ctrl, 4=Meta, 8=Shift).
          type: integer
        pointer_type:
          $ref: '#/components/schemas/BrowserCdpPointerType'
          description: >
            Pointer that generated the event (`mouse` or `pen`). A value the
            protocol does not define is reported as `other`.
        session_id:
          description: >
            CDP session identifier the command was addressed to. Absent for
            browser-level commands. Clipped to 128 characters.
          maxLength: 128
          type: string
        tangential_pressure:
          description: |
            Normalized tangential pressure, -1 to 1.
          format: double
          type: number
        tilt_x:
          description: |
            Pen tilt from the Y-Z plane, in degrees.
          format: double
          type: number
        tilt_y:
          description: |
            Pen tilt from the X-Z plane, in degrees.
          format: double
          type: number
        'true':
          description: |
            Viewport y coordinate in CSS pixels.
          format: double
          type: number
        twist:
          description: |
            Pen clockwise rotation, in degrees.
          type: integer
        x:
          description: |
            Viewport x coordinate in CSS pixels.
          format: double
          type: number
      required:
        - method
        - event_type
      type: object
    BrowserCdpInputDispatchTouchEventCommandData:
      additionalProperties: false
      description: >
        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.
      properties:
        command_id:
          description: >
            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.
          format: int64
          type: integer
        connection_id:
          description: >
            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.
          maxLength: 128
          type: string
        event_type:
          $ref: '#/components/schemas/BrowserCdpTouchEventType'
          description: >
            Touch event phase: `touchStart`, `touchEnd`, `touchMove` or
            `touchCancel`. A value the protocol does not define is reported as
            `other`.
        force:
          description: |
            Normalized pressure of the first touch point, 0 to 1.
          format: double
          type: number
        method:
          const: Input.dispatchTouchEvent
          type: string
        modifiers:
          description: |
            Bit field of held modifier keys (1=Alt, 2=Ctrl, 4=Meta, 8=Shift).
          type: integer
        radius_x:
          description: |
            Horizontal radius of the first touch point.
          format: double
          type: number
        radius_y:
          description: |
            Vertical radius of the first touch point.
          format: double
          type: number
        rotation_angle:
          description: |
            Rotation of the first touch point, in degrees.
          format: double
          type: number
        session_id:
          description: >
            CDP session identifier the command was addressed to. Absent for
            browser-level commands. Clipped to 128 characters.
          maxLength: 128
          type: string
        tangential_pressure:
          description: |
            Normalized tangential pressure of the first touch point, -1 to 1.
          format: double
          type: number
        tilt_x:
          description: |
            Tilt of the first touch point from the Y-Z plane, in degrees.
          format: double
          type: number
        tilt_y:
          description: |
            Tilt of the first touch point from the X-Z plane, in degrees.
          format: double
          type: number
        touch_point_count:
          description: |
            Number of active touch points the command carried.
          type: integer
        'true':
          description: |
            Viewport y coordinate of the first touch point.
          format: double
          type: number
        twist:
          description: |
            Clockwise rotation of the first touch point, in degrees.
          type: integer
        x:
          description: >
            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.
          format: double
          type: number
      required:
        - method
        - event_type
        - touch_point_count
      type: object
    BrowserCdpInputEmulateTouchFromMouseEventCommandData:
      additionalProperties: false
      description: >
        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.
      properties:
        button:
          $ref: '#/components/schemas/BrowserCdpMouseButton'
          description: >
            Button named by the command. A value the protocol does not define is
            reported as `other`.
        click_count:
          description: |
            Number of times the button was clicked.
          type: integer
        command_id:
          description: >
            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.
          format: int64
          type: integer
        connection_id:
          description: >
            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.
          maxLength: 128
          type: string
        delta_x:
          description: |
            Horizontal scroll delta.
          format: double
          type: number
        delta_y:
          description: |
            Vertical scroll delta.
          format: double
          type: number
        event_type:
          $ref: '#/components/schemas/BrowserCdpMouseEventType'
          description: >
            Mouse event phase being emulated as touch. A value the protocol does
            not define is reported as `other`.
        method:
          const: Input.emulateTouchFromMouseEvent
          type: string
        modifiers:
          description: |
            Bit field of held modifier keys (1=Alt, 2=Ctrl, 4=Meta, 8=Shift).
          type: integer
        session_id:
          description: >
            CDP session identifier the command was addressed to. Absent for
            browser-level commands. Clipped to 128 characters.
          maxLength: 128
          type: string
        'true':
          description: |
            Viewport y coordinate in CSS pixels.
          format: double
          type: number
        x:
          description: |
            Viewport x coordinate in CSS pixels.
          format: double
          type: number
      required:
        - method
        - event_type
      type: object
    BrowserCdpInputImeSetCompositionCommandData:
      additionalProperties: false
      description: >
        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.
      properties:
        command_id:
          description: >
            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.
          format: int64
          type: integer
        connection_id:
          description: >
            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.
          maxLength: 128
          type: string
        method:
          const: Input.imeSetComposition
          type: string
        replacement_end:
          description: |
            Replacement range end offset.
          type: integer
        replacement_start:
          description: |
            Replacement range start offset.
          type: integer
        selection_end:
          description: |
            Selection end offset within the composition.
          type: integer
        selection_start:
          description: |
            Selection start offset within the composition.
          type: integer
        session_id:
          description: >
            CDP session identifier the command was addressed to. Absent for
            browser-level commands. Clipped to 128 characters.
          maxLength: 128
          type: string
        text_length:
          description: >
            Number of characters in the composition. The text itself is never
            captured.
          type: integer
      required:
        - method
        - text_length
      type: object
    BrowserCdpInputInsertTextCommandData:
      additionalProperties: false
      description: >
        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.
      properties:
        command_id:
          description: >
            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.
          format: int64
          type: integer
        connection_id:
          description: >
            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.
          maxLength: 128
          type: string
        method:
          const: Input.insertText
          type: string
        session_id:
          description: >
            CDP session identifier the command was addressed to. Absent for
            browser-level commands. Clipped to 128 characters.
          maxLength: 128
          type: string
        text_length:
          description: |
            Number of characters inserted. The text itself is never captured.
          type: integer
      required:
        - method
        - text_length
      type: object
    BrowserCdpInputSynthesizePinchGestureCommandData:
      additionalProperties: false
      description: >
        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.
      properties:
        command_id:
          description: >
            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.
          format: int64
          type: integer
        connection_id:
          description: >
            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.
          maxLength: 128
          type: string
        gesture_source_type:
          $ref: '#/components/schemas/BrowserCdpGestureSourceType'
          description: >
            Input source the synthesized gesture emulates. A value the protocol
            does not define is reported as `other`.
        method:
          const: Input.synthesizePinchGesture
          type: string
        relative_speed:
          description: |
            Relative pointer speed, in pixels per second.
          type: integer
        scale_factor:
          description: |
            Relative scale of the pinch (>1 zooms in).
          format: double
          type: number
        session_id:
          description: >
            CDP session identifier the command was addressed to. Absent for
            browser-level commands. Clipped to 128 characters.
          maxLength: 128
          type: string
        'true':
          description: |
            Viewport y coordinate in CSS pixels.
          format: double
          type: number
        x:
          description: |
            Viewport x coordinate in CSS pixels.
          format: double
          type: number
      required:
        - method
      type: object
    BrowserCdpInputSynthesizeScrollGestureCommandData:
      additionalProperties: false
      description: >
        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.
      properties:
        command_id:
          description: >
            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.
          format: int64
          type: integer
        connection_id:
          description: >
            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.
          maxLength: 128
          type: string
        gesture_source_type:
          $ref: '#/components/schemas/BrowserCdpGestureSourceType'
          description: >
            Input source the synthesized gesture emulates. A value the protocol
            does not define is reported as `other`.
        method:
          const: Input.synthesizeScrollGesture
          type: string
        prevent_fling:
          description: |
            Whether fling was suppressed.
          type: boolean
        repeat_count:
          description: |
            Number of additional repeats of the scroll.
          type: integer
        repeat_delay_ms:
          description: |
            Delay between repeats, in milliseconds.
          type: integer
        session_id:
          description: >
            CDP session identifier the command was addressed to. Absent for
            browser-level commands. Clipped to 128 characters.
          maxLength: 128
          type: string
        speed:
          description: |
            Swipe speed in pixels per second.
          type: integer
        'true':
          description: |
            Viewport y coordinate in CSS pixels.
          format: double
          type: number
        x:
          description: |
            Viewport x coordinate in CSS pixels.
          format: double
          type: number
        x_distance:
          description: |
            Horizontal scroll distance in CSS pixels; positive scrolls left.
          format: double
          type: number
        x_overscroll:
          description: |
            Additional horizontal distance scrolled past the end.
          format: double
          type: number
        y_distance:
          description: |
            Vertical scroll distance in CSS pixels; positive scrolls up.
          format: double
          type: number
        y_overscroll:
          description: |
            Additional vertical distance scrolled past the end.
          format: double
          type: number
      required:
        - method
      type: object
    BrowserCdpInputSynthesizeTapGestureCommandData:
      additionalProperties: false
      description: >
        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.
      properties:
        command_id:
          description: >
            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.
          format: int64
          type: integer
        connection_id:
          description: >
            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.
          maxLength: 128
          type: string
        duration:
          description: |
            Duration between touchdown and touchup, in milliseconds.
          type: integer
        gesture_source_type:
          $ref: '#/components/schemas/BrowserCdpGestureSourceType'
          description: >
            Input source the synthesized gesture emulates. A value the protocol
            does not define is reported as `other`.
        method:
          const: Input.synthesizeTapGesture
          type: string
        session_id:
          description: >
            CDP session identifier the command was addressed to. Absent for
            browser-level commands. Clipped to 128 characters.
          maxLength: 128
          type: string
        tap_count:
          description: |
            Number of times to tap (2 is a double tap).
          type: integer
        'true':
          description: |
            Viewport y coordinate in CSS pixels.
          format: double
          type: number
        x:
          description: |
            Viewport x coordinate in CSS pixels.
          format: double
          type: number
      required:
        - method
      type: object
    BrowserCdpPageBringToFrontCommandData:
      additionalProperties: false
      description: >
        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.
      properties:
        command_id:
          description: >
            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.
          format: int64
          type: integer
        connection_id:
          description: >
            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.
          maxLength: 128
          type: string
        method:
          const: Page.bringToFront
          type: string
        session_id:
          description: >
            CDP session identifier the command was addressed to. Absent for
            browser-level commands. Clipped to 128 characters.
          maxLength: 128
          type: string
      required:
        - method
      type: object
    BrowserCdpPageCaptureScreenshotCommandData:
      additionalProperties: false
      description: >
        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.
      properties:
        capture_beyond_viewport:
          description: |
            Whether the capture extended past the viewport.
          type: boolean
        clip_height:
          description: |
            Clip region height in CSS pixels.
          format: double
          type: number
        clip_scale:
          description: |
            Clip region page scale factor.
          format: double
          type: number
        clip_width:
          description: |
            Clip region width in CSS pixels.
          format: double
          type: number
        clip_x:
          description: |
            Clip region x offset in CSS pixels.
          format: double
          type: number
        clip_y:
          description: |
            Clip region y offset in CSS pixels.
          format: double
          type: number
        command_id:
          description: >
            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.
          format: int64
          type: integer
        connection_id:
          description: >
            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.
          maxLength: 128
          type: string
        format:
          $ref: '#/components/schemas/BrowserCdpScreenshotFormat'
          description: >
            Image format requested (`jpeg`, `png` or `webp`). A value the
            protocol does not define is reported as `other`.
        from_surface:
          description: |
            Whether the capture was taken from the surface rather than the view.
          type: boolean
        method:
          const: Page.captureScreenshot
          type: string
        optimize_for_speed:
          description: |
            Whether encoding favored speed over size.
          type: boolean
        quality:
          description: |
            Compression quality, 0 to 100, for lossy formats.
          type: integer
        session_id:
          description: >
            CDP session identifier the command was addressed to. Absent for
            browser-level commands. Clipped to 128 characters.
          maxLength: 128
          type: string
      required:
        - method
      type: object
    BrowserCdpPageCaptureSnapshotCommandData:
      additionalProperties: false
      description: >
        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.
      properties:
        command_id:
          description: >
            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.
          format: int64
          type: integer
        connection_id:
          description: >
            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.
          maxLength: 128
          type: string
        format:
          $ref: '#/components/schemas/BrowserCdpSnapshotFormat'
          description: >
            Snapshot format requested (`mhtml`). A value the protocol does not
            define is reported as `other`.
        method:
          const: Page.captureSnapshot
          type: string
        session_id:
          description: >
            CDP session identifier the command was addressed to. Absent for
            browser-level commands. Clipped to 128 characters.
          maxLength: 128
          type: string
      required:
        - method
      type: object
    BrowserCdpPageCloseCommandData:
      additionalProperties: false
      description: >
        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.
      properties:
        command_id:
          description: >
            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.
          format: int64
          type: integer
        connection_id:
          description: >
            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.
          maxLength: 128
          type: string
        method:
          const: Page.close
          type: string
        session_id:
          description: >
            CDP session identifier the command was addressed to. Absent for
            browser-level commands. Clipped to 128 characters.
          maxLength: 128
          type: string
      required:
        - method
      type: object
    BrowserCdpPageHandleJavaScriptDialogCommandData:
      additionalProperties: false
      description: >
        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.
      properties:
        accept:
          description: |
            Whether the dialog was accepted or dismissed.
          type: boolean
        command_id:
          description: >
            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.
          format: int64
          type: integer
        connection_id:
          description: >
            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.
          maxLength: 128
          type: string
        method:
          const: Page.handleJavaScriptDialog
          type: string
        prompt_text_length:
          description: >
            Number of characters entered into a prompt dialog. The text itself
            is never captured.
          type: integer
        session_id:
          description: >
            CDP session identifier the command was addressed to. Absent for
            browser-level commands. Clipped to 128 characters.
          maxLength: 128
          type: string
      required:
        - method
        - accept
      type: object
    BrowserCdpPageNavigateCommandData:
      additionalProperties: false
      description: >
        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.
      properties:
        command_id:
          description: >
            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.
          format: int64
          type: integer
        connection_id:
          description: >
            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.
          maxLength: 128
          type: string
        frame_id:
          description: >
            Opaque frame identifier. Clipped to 128 characters; a longer value
            is not a real identifier.
          maxLength: 128
          type: string
        method:
          const: Page.navigate
          type: string
        referrer_policy:
          $ref: '#/components/schemas/BrowserCdpReferrerPolicy'
          description: >
            Referrer policy named by the command. A value the protocol does not
            define is reported as `other`.
        referrer_present:
          description: >
            Whether the command carried a referrer. The referrer itself is never
            captured.
          type: boolean
        session_id:
          description: >
            CDP session identifier the command was addressed to. Absent for
            browser-level commands. Clipped to 128 characters.
          maxLength: 128
          type: string
        transition_type:
          $ref: '#/components/schemas/BrowserCdpTransitionType'
          description: >
            Navigation reason reported by the caller (e.g. `link`, `typed`,
            `reload`). A value the protocol does not define is reported as
            `other`.
        url_scheme:
          description: >
            Scheme of the destination URL (e.g. `https`, `about`, `data`). The
            rest of the URL is never captured.
          maxLength: 32
          type: string
      required:
        - method
      type: object
    BrowserCdpPageNavigateToHistoryEntryCommandData:
      additionalProperties: false
      description: >
        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.
      properties:
        command_id:
          description: >
            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.
          format: int64
          type: integer
        connection_id:
          description: >
            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.
          maxLength: 128
          type: string
        entry_id:
          description: |
            History entry the command navigated to.
          type: integer
        method:
          const: Page.navigateToHistoryEntry
          type: string
        session_id:
          description: >
            CDP session identifier the command was addressed to. Absent for
            browser-level commands. Clipped to 128 characters.
          maxLength: 128
          type: string
      required:
        - method
        - entry_id
      type: object
    BrowserCdpPagePrintToPdfCommandData:
      additionalProperties: false
      description: >
        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.
      properties:
        command_id:
          description: >
            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.
          format: int64
          type: integer
        connection_id:
          description: >
            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.
          maxLength: 128
          type: string
        display_header_footer:
          description: |
            Whether a header and footer were rendered.
          type: boolean
        footer_template_present:
          description: >
            Whether a footer template was supplied. The template itself is never
            captured.
          type: boolean
        generate_document_outline:
          description: |
            Whether a document outline was embedded.
          type: boolean
        generate_tagged_pdf:
          description: |
            Whether a tagged (accessible) PDF was requested.
          type: boolean
        header_template_present:
          description: >
            Whether a header template was supplied. The template itself is never
            captured.
          type: boolean
        landscape:
          description: |
            Whether the page was laid out in landscape.
          type: boolean
        margin_bottom:
          description: |
            Bottom margin in inches.
          format: double
          type: number
        margin_left:
          description: |
            Left margin in inches.
          format: double
          type: number
        margin_right:
          description: |
            Right margin in inches.
          format: double
          type: number
        margin_top:
          description: |
            Top margin in inches.
          format: double
          type: number
        method:
          const: Page.printToPDF
          type: string
        page_ranges_present:
          description: |
            Whether a page range was supplied.
          type: boolean
        paper_height:
          description: |
            Paper height in inches.
          format: double
          type: number
        paper_width:
          description: |
            Paper width in inches.
          format: double
          type: number
        prefer_css_page_size:
          description: |
            Whether the CSS page size was preferred over the paper size.
          type: boolean
        print_background:
          description: |
            Whether background graphics were printed.
          type: boolean
        scale:
          description: |
            Page render scale.
          format: double
          type: number
        session_id:
          description: >
            CDP session identifier the command was addressed to. Absent for
            browser-level commands. Clipped to 128 characters.
          maxLength: 128
          type: string
        transfer_mode:
          $ref: '#/components/schemas/BrowserCdpPdfTransferMode'
          description: >
            How the PDF was returned (`ReturnAsBase64` or `ReturnAsStream`). A
            value the protocol does not define is reported as `other`.
      required:
        - method
      type: object
    BrowserCdpPageReloadCommandData:
      additionalProperties: false
      description: >
        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.
      properties:
        command_id:
          description: >
            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.
          format: int64
          type: integer
        connection_id:
          description: >
            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.
          maxLength: 128
          type: string
        ignore_cache:
          description: |
            Whether the reload bypassed the cache.
          type: boolean
        loader_id:
          description: >
            Opaque document loader identifier. Clipped to 128 characters; a
            longer value is not a real identifier.
          maxLength: 128
          type: string
        method:
          const: Page.reload
          type: string
        script_length:
          description: |
            Number of characters in the injected script.
          type: integer
        session_id:
          description: >
            CDP session identifier the command was addressed to. Absent for
            browser-level commands. Clipped to 128 characters.
          maxLength: 128
          type: string
      required:
        - method
      type: object
    BrowserCdpPageSetWebLifecycleStateCommandData:
      additionalProperties: false
      description: >
        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.
      properties:
        command_id:
          description: >
            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.
          format: int64
          type: integer
        connection_id:
          description: >
            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.
          maxLength: 128
          type: string
        method:
          const: Page.setWebLifecycleState
          type: string
        session_id:
          description: >
            CDP session identifier the command was addressed to. Absent for
            browser-level commands. Clipped to 128 characters.
          maxLength: 128
          type: string
        state:
          $ref: '#/components/schemas/BrowserCdpWebLifecycleState'
          description: >
            Lifecycle state applied (`frozen` or `active`). A value the protocol
            does not define is reported as `other`.
      required:
        - method
        - state
      type: object
    BrowserCdpPageStartScreencastCommandData:
      additionalProperties: false
      description: >
        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.
      properties:
        command_id:
          description: >
            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.
          format: int64
          type: integer
        connection_id:
          description: >
            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.
          maxLength: 128
          type: string
        every_nth_frame:
          description: |
            Frame sampling interval.
          type: integer
        format:
          $ref: '#/components/schemas/BrowserCdpScreencastFormat'
          description: >
            Frame format requested (`jpeg` or `png`). A value the protocol does
            not define is reported as `other`.
        max_height:
          description: |
            Maximum frame height in pixels.
          type: integer
        max_width:
          description: |
            Maximum frame width in pixels.
          type: integer
        method:
          const: Page.startScreencast
          type: string
        quality:
          description: |
            Compression quality, 0 to 100.
          type: integer
        session_id:
          description: >
            CDP session identifier the command was addressed to. Absent for
            browser-level commands. Clipped to 128 characters.
          maxLength: 128
          type: string
      required:
        - method
      type: object
    BrowserCdpPageStopLoadingCommandData:
      additionalProperties: false
      description: >
        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.
      properties:
        command_id:
          description: >
            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.
          format: int64
          type: integer
        connection_id:
          description: >
            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.
          maxLength: 128
          type: string
        method:
          const: Page.stopLoading
          type: string
        session_id:
          description: >
            CDP session identifier the command was addressed to. Absent for
            browser-level commands. Clipped to 128 characters.
          maxLength: 128
          type: string
      required:
        - method
      type: object
    BrowserCdpPageStopScreencastCommandData:
      additionalProperties: false
      description: >
        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.
      properties:
        command_id:
          description: >
            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.
          format: int64
          type: integer
        connection_id:
          description: >
            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.
          maxLength: 128
          type: string
        method:
          const: Page.stopScreencast
          type: string
        session_id:
          description: >
            CDP session identifier the command was addressed to. Absent for
            browser-level commands. Clipped to 128 characters.
          maxLength: 128
          type: string
      required:
        - method
      type: object
    BrowserCdpTargetActivateTargetCommandData:
      additionalProperties: false
      description: >
        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.
      properties:
        command_id:
          description: >
            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.
          format: int64
          type: integer
        connection_id:
          description: >
            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.
          maxLength: 128
          type: string
        method:
          const: Target.activateTarget
          type: string
        session_id:
          description: >
            CDP session identifier the command was addressed to. Absent for
            browser-level commands. Clipped to 128 characters.
          maxLength: 128
          type: string
        target_id:
          description: >
            Opaque target identifier. Clipped to 128 characters; a longer value
            is not a real identifier.
          maxLength: 128
          type: string
      required:
        - method
        - target_id
      type: object
    BrowserCdpTargetCloseTargetCommandData:
      additionalProperties: false
      description: >
        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.
      properties:
        command_id:
          description: >
            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.
          format: int64
          type: integer
        connection_id:
          description: >
            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.
          maxLength: 128
          type: string
        method:
          const: Target.closeTarget
          type: string
        session_id:
          description: >
            CDP session identifier the command was addressed to. Absent for
            browser-level commands. Clipped to 128 characters.
          maxLength: 128
          type: string
        target_id:
          description: >
            Opaque target identifier. Clipped to 128 characters; a longer value
            is not a real identifier.
          maxLength: 128
          type: string
      required:
        - method
        - target_id
      type: object
    BrowserCdpTargetCreateBrowserContextCommandData:
      additionalProperties: false
      description: >
        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.
      properties:
        command_id:
          description: >
            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.
          format: int64
          type: integer
        connection_id:
          description: >
            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.
          maxLength: 128
          type: string
        dispose_on_detach:
          description: |
            Whether the context is disposed when the debugging session detaches.
          type: boolean
        method:
          const: Target.createBrowserContext
          type: string
        proxy_bypass_list_present:
          description: |
            Whether a proxy bypass list was configured.
          type: boolean
        proxy_server_present:
          description: |
            Whether a proxy was configured. The proxy address is never captured.
          type: boolean
        session_id:
          description: >
            CDP session identifier the command was addressed to. Absent for
            browser-level commands. Clipped to 128 characters.
          maxLength: 128
          type: string
        universal_network_access_origin_count:
          description: >
            Number of origins granted universal network access. The origins
            themselves are never captured.
          type: integer
      required:
        - method
      type: object
    BrowserCdpTargetCreateTargetCommandData:
      additionalProperties: false
      description: >
        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.
      properties:
        background:
          description: |
            Whether the target was created in the background.
          type: boolean
        browser_context_id:
          description: >
            Opaque browser context identifier. Clipped to 128 characters; a
            longer value is not a real identifier.
          maxLength: 128
          type: string
        command_id:
          description: >
            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.
          format: int64
          type: integer
        connection_id:
          description: >
            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.
          maxLength: 128
          type: string
        enable_begin_frame_control:
          description: |
            Whether BeginFrame control was enabled (headless only).
          type: boolean
        focus:
          description: |
            Whether the new target was focused.
          type: boolean
        for_tab:
          description: |
            Whether a tab target rather than a page target was created.
          type: boolean
        height:
          description: |
            Window height in DIP.
          type: integer
        hidden:
          description: |
            Whether the target was created hidden.
          type: boolean
        left:
          description: |
            Window x position in screen coordinates.
          type: integer
        method:
          const: Target.createTarget
          type: string
        new_window:
          description: |
            Whether a new window was requested.
          type: boolean
        session_id:
          description: >
            CDP session identifier the command was addressed to. Absent for
            browser-level commands. Clipped to 128 characters.
          maxLength: 128
          type: string
        top:
          description: |
            Window y position in screen coordinates.
          type: integer
        url_scheme:
          description: >
            Scheme of the destination URL (e.g. `https`, `about`, `data`). The
            rest of the URL is never captured.
          maxLength: 32
          type: string
        width:
          description: |
            Window width in DIP.
          type: integer
        window_state:
          $ref: '#/components/schemas/BrowserCdpWindowState'
          description: >
            Window state requested (`normal`, `minimized`, `maximized`,
            `fullscreen`). A value the protocol does not define is reported as
            `other`.
      required:
        - method
      type: object
    BrowserCdpTargetDisposeBrowserContextCommandData:
      additionalProperties: false
      description: >
        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.
      properties:
        browser_context_id:
          description: >
            Opaque browser context identifier. Clipped to 128 characters; a
            longer value is not a real identifier.
          maxLength: 128
          type: string
        command_id:
          description: >
            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.
          format: int64
          type: integer
        connection_id:
          description: >
            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.
          maxLength: 128
          type: string
        method:
          const: Target.disposeBrowserContext
          type: string
        session_id:
          description: >
            CDP session identifier the command was addressed to. Absent for
            browser-level commands. Clipped to 128 characters.
          maxLength: 128
          type: string
      required:
        - method
        - browser_context_id
      type: object
    BrowserCdpTargetOpenDevToolsCommandData:
      additionalProperties: false
      description: >
        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.
      properties:
        command_id:
          description: >
            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.
          format: int64
          type: integer
        connection_id:
          description: >
            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.
          maxLength: 128
          type: string
        method:
          const: Target.openDevTools
          type: string
        panel_id:
          description: >
            DevTools panel opened. Clipped to 128 characters; a longer value is
            not a real identifier.
          maxLength: 128
          type: string
        session_id:
          description: >
            CDP session identifier the command was addressed to. Absent for
            browser-level commands. Clipped to 128 characters.
          maxLength: 128
          type: string
        target_id:
          description: >
            Opaque target identifier. Clipped to 128 characters; a longer value
            is not a real identifier.
          maxLength: 128
          type: string
      required:
        - method
        - target_id
      type: object
    BrowserCdpAutofillMode:
      description: >
        Which kind of value autofill filled. Canonical values from
        devtools-protocol@2d019e73.
      enum:
        - card
        - address
      type: string
    BrowserCdpWindowState:
      description: >
        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.
      enum:
        - normal
        - minimized
        - maximized
        - fullscreen
        - other
      type: string
      x-enum-varnames:
        - BrowserCdpWindowStateNormal
        - BrowserCdpWindowStateMinimized
        - BrowserCdpWindowStateMaximized
        - BrowserCdpWindowStateFullscreen
        - BrowserCdpWindowStateOther
    BrowserCdpDragMimeCategory:
      description: >
        Top-level MIME category of a drag item, from the IANA registry rather
        than the protocol; a drag item's subtype names the file, so only the
        category is reported. `other` stands for a value outside that set, so a
        client cannot put an arbitrary string into the stream.
      enum:
        - text
        - image
        - audio
        - video
        - application
        - font
        - model
        - multipart
        - message
        - other
      type: string
      x-enum-varnames:
        - BrowserCdpDragMimeCategoryText
        - BrowserCdpDragMimeCategoryImage
        - BrowserCdpDragMimeCategoryAudio
        - BrowserCdpDragMimeCategoryVideo
        - BrowserCdpDragMimeCategoryApplication
        - BrowserCdpDragMimeCategoryFont
        - BrowserCdpDragMimeCategoryModel
        - BrowserCdpDragMimeCategoryMultipart
        - BrowserCdpDragMimeCategoryMessage
        - BrowserCdpDragMimeCategoryOther
    BrowserCdpDragEventType:
      description: >
        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.
      enum:
        - dragEnter
        - dragOver
        - drop
        - dragCancel
        - other
      type: string
      x-enum-varnames:
        - BrowserCdpDragEventTypeDragEnter
        - BrowserCdpDragEventTypeDragOver
        - BrowserCdpDragEventTypeDrop
        - BrowserCdpDragEventTypeDragCancel
        - BrowserCdpDragEventTypeOther
    BrowserCdpKeyEventType:
      description: >
        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.
      enum:
        - keyDown
        - keyUp
        - rawKeyDown
        - char
        - other
      type: string
      x-enum-varnames:
        - BrowserCdpKeyEventTypeKeyDown
        - BrowserCdpKeyEventTypeKeyUp
        - BrowserCdpKeyEventTypeRawKeyDown
        - BrowserCdpKeyEventTypeChar
        - BrowserCdpKeyEventTypeOther
    BrowserCdpMouseButton:
      description: >
        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.
      enum:
        - none
        - left
        - middle
        - right
        - back
        - forward
        - other
      type: string
      x-enum-varnames:
        - BrowserCdpMouseButtonNone
        - BrowserCdpMouseButtonLeft
        - BrowserCdpMouseButtonMiddle
        - BrowserCdpMouseButtonRight
        - BrowserCdpMouseButtonBack
        - BrowserCdpMouseButtonForward
        - BrowserCdpMouseButtonOther
    BrowserCdpMouseEventType:
      description: >
        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.
      enum:
        - mousePressed
        - mouseReleased
        - mouseMoved
        - mouseWheel
        - other
      type: string
      x-enum-varnames:
        - BrowserCdpMouseEventTypeMousePressed
        - BrowserCdpMouseEventTypeMouseReleased
        - BrowserCdpMouseEventTypeMouseMoved
        - BrowserCdpMouseEventTypeMouseWheel
        - BrowserCdpMouseEventTypeOther
    BrowserCdpPointerType:
      description: >
        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.
      enum:
        - mouse
        - pen
        - other
      type: string
      x-enum-varnames:
        - BrowserCdpPointerTypeMouse
        - BrowserCdpPointerTypePen
        - BrowserCdpPointerTypeOther
    BrowserCdpTouchEventType:
      description: >
        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.
      enum:
        - touchStart
        - touchEnd
        - touchMove
        - touchCancel
        - other
      type: string
      x-enum-varnames:
        - BrowserCdpTouchEventTypeTouchStart
        - BrowserCdpTouchEventTypeTouchEnd
        - BrowserCdpTouchEventTypeTouchMove
        - BrowserCdpTouchEventTypeTouchCancel
        - BrowserCdpTouchEventTypeOther
    BrowserCdpGestureSourceType:
      description: >
        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.
      enum:
        - default
        - touch
        - mouse
        - other
      type: string
      x-enum-varnames:
        - BrowserCdpGestureSourceTypeDefault
        - BrowserCdpGestureSourceTypeTouch
        - BrowserCdpGestureSourceTypeMouse
        - BrowserCdpGestureSourceTypeOther
    BrowserCdpScreenshotFormat:
      description: >
        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.
      enum:
        - jpeg
        - png
        - webp
        - other
      type: string
      x-enum-varnames:
        - BrowserCdpScreenshotFormatJpeg
        - BrowserCdpScreenshotFormatPng
        - BrowserCdpScreenshotFormatWebp
        - BrowserCdpScreenshotFormatOther
    BrowserCdpSnapshotFormat:
      description: >
        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.
      enum:
        - mhtml
        - other
      type: string
      x-enum-varnames:
        - BrowserCdpSnapshotFormatMhtml
        - BrowserCdpSnapshotFormatOther
    BrowserCdpReferrerPolicy:
      description: >
        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.
      enum:
        - noReferrer
        - noReferrerWhenDowngrade
        - origin
        - originWhenCrossOrigin
        - sameOrigin
        - strictOrigin
        - strictOriginWhenCrossOrigin
        - unsafeUrl
        - other
      type: string
      x-enum-varnames:
        - BrowserCdpReferrerPolicyNoReferrer
        - BrowserCdpReferrerPolicyNoReferrerWhenDowngrade
        - BrowserCdpReferrerPolicyOrigin
        - BrowserCdpReferrerPolicyOriginWhenCrossOrigin
        - BrowserCdpReferrerPolicySameOrigin
        - BrowserCdpReferrerPolicyStrictOrigin
        - BrowserCdpReferrerPolicyStrictOriginWhenCrossOrigin
        - BrowserCdpReferrerPolicyUnsafeUrl
        - BrowserCdpReferrerPolicyOther
    BrowserCdpTransitionType:
      description: >
        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.
      enum:
        - link
        - typed
        - address_bar
        - auto_bookmark
        - auto_subframe
        - manual_subframe
        - generated
        - auto_toplevel
        - form_submit
        - reload
        - keyword
        - keyword_generated
        - other
      type: string
      x-enum-varnames:
        - BrowserCdpTransitionTypeLink
        - BrowserCdpTransitionTypeTyped
        - BrowserCdpTransitionTypeAddressBar
        - BrowserCdpTransitionTypeAutoBookmark
        - BrowserCdpTransitionTypeAutoSubframe
        - BrowserCdpTransitionTypeManualSubframe
        - BrowserCdpTransitionTypeGenerated
        - BrowserCdpTransitionTypeAutoToplevel
        - BrowserCdpTransitionTypeFormSubmit
        - BrowserCdpTransitionTypeReload
        - BrowserCdpTransitionTypeKeyword
        - BrowserCdpTransitionTypeKeywordGenerated
        - BrowserCdpTransitionTypeOther
    BrowserCdpPdfTransferMode:
      description: >
        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.
      enum:
        - ReturnAsBase64
        - ReturnAsStream
        - other
      type: string
      x-enum-varnames:
        - BrowserCdpPdfTransferModeReturnAsBase64
        - BrowserCdpPdfTransferModeReturnAsStream
        - BrowserCdpPdfTransferModeOther
    BrowserCdpWebLifecycleState:
      description: >
        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.
      enum:
        - frozen
        - active
        - other
      type: string
      x-enum-varnames:
        - BrowserCdpWebLifecycleStateFrozen
        - BrowserCdpWebLifecycleStateActive
        - BrowserCdpWebLifecycleStateOther
    BrowserCdpScreencastFormat:
      description: >
        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.
      enum:
        - jpeg
        - png
        - other
      type: string
      x-enum-varnames:
        - BrowserCdpScreencastFormatJpeg
        - BrowserCdpScreencastFormatPng
        - BrowserCdpScreencastFormatOther
  responses:
    Unauthorized:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
      description: Unauthorized – missing or invalid authorization token
    Forbidden:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
      description: Forbidden – insufficient permissions or plan
    NotFound:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
      description: Resource not found
    InternalError:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
      description: Internal Server Error
  securitySchemes:
    bearerAuth:
      scheme: bearer
      type: http

````