web-debug-mcp
This server is a local, evidence-first MCP debugger for web applications: it lets an agent reproduce and diagnose browser/framework issues in Chromium or Safari, capture redacted evidence, and verify fixes. n- Detect project capablities and start/status/close explicit local sessions (Chromium via executable/CP, Safari via WebDriver/BiDi).
Perform bounded browser actions with exact locators: navigate, click, fill, press, select, check, hover, scroll, wait, and reload.
Capture redacted evidence bundles covering DOM, console, network metadata, screenshots, accessiblity, debugger state, and framework runtime state.
Inspect framework/dev-server internals: React render causes/profiler data, Angular/Vue dev state, Vite module/HMR transforms, and Next.js routes/logs/traces/Server Actions.
Use Chromium debugging: set breakpoints, resume/step, and safely evaluate JavaScript (side effects opt-in).
Record and replay reproducble flows, seek retained frames, and run fix verification with bounded attempts returning verified/failed/inconclutive results.
Keep sessions scoped and redacted, with loopback-only safety defaults and no secret/raw-body collection.
Provides Next.js development-server metadata including route compilation, Server Action lookup, request-linked execution evidence, and bounded server-log tails.
Injects a development bridge to expose React component tree, hook values, source locations, render counts, commit summaries, profiler durations, flamegraph view, and inferred render causes from the DevTools hook.
Allows driving Safari through WebDriver with actions, DOM inspection, and screenshots, and collects BiDi console/network evidence when available, with fallback to Performance Resource Timing for network data.
Provides a Vite plugin that serves a read-only module graph endpoint, HMR status, transformed-code diffs, and source-map summaries for debugging Vite applications.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@web-debug-mcpDebug why clicking the submit button doesn't update the total"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
web-debug-mcp
An evidence-first, local MCP debugger for web applications.
web-debug-mcp gives Codex and other MCP clients one bounded workflow for reproducing a web issue, inspecting browser and framework runtime state, collecting redacted evidence, and verifying the same flow after a fix. It covers the browser, frontend runtime, dev server, and replay timeline through one small MCP surface.
Release 0.8.0 keeps the 13-tool catalog while adding identity-safe MCP startup recovery, bounded stale registry/sidecar reconciliation, schema-versioned doctor binding diagnostics, and a fail-closed Web Debug Gate 0 that never substitutes another browser runner when the requested MCP binding is unavailable.
Install as an MCP server
The core package is a standalone MCP server. The repository also includes an optional Web Debug plugin for Codex and ChatGPT: the MCP server provides callable debugging tools, while the bundled skill provides workflow guidance. Claude Code and other MCP clients can continue using the standalone server.
The published npm package runs locally over stdio and does not require a hosted service.
Codex CLI, desktop app, and IDE extension
From a terminal:
codex mcp add web-debug-mcp -- npx -y web-debug-mcp@0.8.0
codex mcp listThe Codex desktop app and IDE extension share the same MCP configuration. You can also open Settings → MCP servers → Add server, choose STDIO, use npx as the command, and add these arguments:
-y web-debug-mcp@0.8.0For a project-scoped Codex configuration, add this to ~/.codex/config.toml or a trusted project .codex/config.toml:
[mcp_servers.web_debug_mcp]
command = "npx"
args = ["-y", "web-debug-mcp@0.8.0"]
startup_timeout_sec = 20
tool_timeout_sec = 150
# Optional strict host policy: fail startup if this server cannot initialize.
required = trueVerify the connection with codex mcp list. In the Codex TUI, /mcp shows the active server.
MCP startup and binding recovery
An explicit Web Debug request is fail-closed: the bundled web_project_detect call is Gate 0. A doctor pass, a process visible in a terminal, or a loaded skill does not prove that the current Codex task has the Web Debug tool namespace. If Gate 0 is unavailable, report MCP_CLIENT_BINDING_UNAVAILABLE (or MCP_SERVER_STARTUP_UNAVAILABLE when the server reports a startup failure) and stop; do not substitute Playwright, Puppeteer, raw CDP, a direct MCP SDK client, a naked npx web-debug-mcp process, or web-debug-mcp cleanup.
The plugin-bundled .mcp.json intentionally contains only the supported launch command and timeouts. Codex currently documents required = true for a direct [mcp_servers.<name>] entry in config.toml, not for a plugin manifest field. To apply the strict policy, configure the direct server entry above and disable the duplicate plugin-provided server in the user plugin policy:
[plugins."web-debug@web-debug".mcp_servers.web-debug-mcp]
enabled = falseIf the server is missing from the current task after a repair, use Codex Settings → MCP servers → Restart (or restart the IDE extension), then retry Gate 0. A new task/session is the supported recovery when the current task does not refresh its tool binding. Codex CLI 0.152.0 or newer is the supported host baseline; 0.151.0 adds optional-MCP discovery grace, while older hosts are candidate-only for this recovery contract. See the Codex MCP configuration and Codex changelog.
Related MCP server: Kaboom Browser AI Devtools MCP
Use Web Debug as a plugin
This is the recommended single-install path for Codex and Claude Code. Installing Web Debug installs both workflow skills and the web-debug-mcp MCP server connection. It is not a skill-only package, and no separate MCP setup is required.
The same plugin package supports both Codex and Claude Code. Codex reads the Codex plugin manifest, Claude Code reads the Claude Code plugin manifest, and both use the same workflow skills and MCP configuration.
The plugin contains five pieces:
the web-debug plugin manifest;
the web-debug-workflow skill, which owns isolated browser-bug reproduction and fix verification;
the manual-parity-qualification skill, which maps reviewed manual/product requirements to repository-native qualification tests and non-executable crosswalk/run metadata;
the webmcp-tool-authoring skill, which provides authority-gated, direct-only WebMCP product guidance;
a bundled .mcp.json connection that starts the existing web-debug-mcp server.
The runtime flow is:
install Web Debug plugin
↓
Codex loads all three skills and the bundled MCP connection
↓
bug diagnosis → Codex starts web-debug-mcp over local stdio on demand
↓
web_project_detect → reproduce → web_issue_capture → fix verification
manual parity → reviewed baseline → native Playwright/API tests
↓
crosswalk/run validation → Web Debug only if browser diagnosis is neededThe stdio binary also exposes two package-only commands. web-debug-mcp doctor checks the exact project, explicit browser configuration, protocol-shaped CDP/WebDriver endpoints, optional loopback URL, Safari BiDi WebSocket availability, and detected Vite/Next readiness without launching an arbitrary browser. An executable-path result validates configuration only and remains a warning until a real session launches. web-debug-mcp cleanup [--all-idle] emits a bounded JSON report and signals only idle, owner-only registry records whose process identity is revalidated; it never scans or signals unregistered browser/debug processes.
Install from the Codex CLI
Add this repository’s marketplace, then install the web-debug plugin:
codex plugin marketplace add MarlonJD/web-debug-mcp --ref main
codex plugin list --available --marketplace web-debug
codex plugin add web-debug@web-debugInstall from the Codex desktop app
Run the marketplace command above once, open the Plugins Directory, refresh it if necessary, and install or enable Web Debug. Then start a new thread so the plugin’s skill and MCP tools are loaded.
Use the installed plugin
Start your local web application.
Ask Codex either to reproduce a browser issue or to build reviewed manual-parity qualification, for example: “Reproduce this local React bug and capture browser evidence” or “Turn these approved manual cases into a qualification crosswalk and native Playwright coverage.”
The plugin routes isolated bugs through project detection, an explicit local browser session, bounded actions, evidence capture, and recorded-flow fix verification. It routes qualification through reviewed requirements, repository-native tests, structural crosswalk/run validation, and diagnostic-only Web Debug escalation.
For live Chromium launch, provide an explicit executable path, for example:
WEB_DEBUG_CHROME_EXECUTABLE_PATH="/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" codexClose the session with web_session_close when debugging is complete.
The plugin runs the same local server as the standalone MCP install. It does not host a browser, upload evidence, or create a second tool catalog. The first MCP start uses npx to resolve the immutable web-debug-mcp@0.8.0 npm release; Node.js 20+, npm, and network access are required.
Boundary with Build Web Apps and native runners
Web Debug complements rather than replaces frontend build and test tooling:
Build Web Apps owns frontend authoring, dev-server work, generic rendered QA, and visual implementation.
Vitest, Go, and a project’s own Playwright commands own deterministic runner evidence.
Web Debug owns local browser-grounded evidence: live DOM/console/network state, CDP and framework diagnostics, semantic probes, replay, and bounded fix verification.
Manual Parity Qualification owns source/reviewer state, requirement-to-test crosswalks, mutation certainty, and truthful aggregate reporting around those native runners.
When a request explicitly names Web Debug, use the Web Debug workflow. For mixed work, establish an exact runner failure first, collect only the missing browser evidence with Web Debug, and rerun the relevant checks separately.
When approved manual cases do not exist, Manual Parity Qualification can derive source-linked candidate cases from product requirements, role matrices, state models, API contracts, existing tests, and exploration. Generated candidates never self-approve or become gating coverage. JSON is non-executable metadata only; selectors, browser actions, API calls, and assertions remain typed native test code. The bundled read-only validator checks reference closure, crosswalk completeness, evidence facets, mutation certainty, and aggregate arithmetic without authenticating reviewers or running tests.
Do not install both the plugin and a separate Codex or Claude Code MCP registration for web-debug-mcp unless you intentionally want duplicate MCP registrations. For other MCP clients, use the standalone MCP installation below.
Install in Claude Code
Add the repository marketplace from a Claude Code session, then install the plugin:
/plugin marketplace add MarlonJD/web-debug-mcp
/plugin install web-debug@web-debug
/reload-pluginsChoose the desired installation scope when Claude Code opens the plugin details. If the install summary says the plugin is already active, no reload is needed. The plugin’s MCP server starts automatically when the plugin is enabled, and its tools appear in /mcp. The bundled workflows can also be invoked directly as /web-debug:web-debug-workflow and /web-debug:manual-parity-qualification.
For local development or testing before publishing the repository, load the plugin directly:
claude --plugin-dir ./plugins/web-debugThis command loads the repository's plugin metadata, all three skills, and bundled web-debug-mcp@0.8.0 runtime.
Use the standalone MCP server in Claude Code
Install it for all projects on the machine:
claude mcp add --transport stdio --scope user web-debug-mcp -- npx -y web-debug-mcp@0.8.0
claude mcp listFor the current project only, use --scope project instead of --scope user; Claude Code writes the shared configuration to .mcp.json and asks for project approval. Use /mcp inside Claude Code to inspect the connected server and its tools.
To follow the latest npm release instead of the pinned command above, use npx -y web-debug-mcp.
When the agent should use it
Use it when a local web application is running and the task needs browser-grounded evidence, such as:
reproducing a DOM, console, network, screenshot, or JavaScript-debugger issue;
understanding React state, commits, render causes, or bounded flamegraph data;
inspecting bounded Angular development component/state changes through documented debug globals;
inspecting bounded Vue 3 development component/props/state updates through a safely chained DevTools hook;
investigating Vite module/HMR/transform behavior;
inspecting Next.js routes, logs, request traces, or Server Actions;
replaying and verifying a browser flow after a frontend fix.
Start with web_project_detect, then use web_session_start, web_browser_action, and web_issue_capture. Use web_next_inspect for Next-specific inspection and web_repro_record plus web_fix_verify for regression verification.
Do not use this server for native macOS/iOS build-debug work, production monitoring, arbitrary remote browser control, credentialed browser profiles, or application-state time travel. Those are outside this MCP's contract.
Official setup references: Codex MCP configuration, Codex plugin packaging, and Claude Code MCP configuration.
Why this project exists
Web debugging is usually split across several disconnected surfaces:
browser DevTools for DOM, console, network, screenshots, and JavaScript pauses;
React or framework tooling for component state and render behavior;
Vite or Next development servers for transforms, routes, logs, traces, and Server Actions;
a human-written reproduction that is often difficult to repeat after a change.
An agent can edit code without having a reliable, structured account of what happened in the running app. web-debug-mcp closes that gap. It turns a reproduction into bounded evidence that an agent can inspect, compare, and use for fix verification.
The project deliberately keeps one public MCP catalog. React, Angular, Vue, Vite, Next, Chromium, and Safari are internal adapters behind the same session and evidence contract, so adding framework context does not create overlapping MCP servers.
What MCP adds here
MCP is the transport and tool contract between an agent such as Codex and this debugging process. The server exposes typed, discoverable operations instead of asking the agent to parse terminal output or drive an unstructured DevTools UI.
The public tools cover:
project capability detection;
explicit Chromium or Safari session start and status;
bounded browser actions: navigate, click, fill, exact-locator probe waits, and reload;
deterministic locator actions for keyboard press, select, checked state, hover, and scroll-into-view;
issue capture with compact summary (default), explicit full evidence, selected surfaces, or cursor-based changed surfaces;
Chromium breakpoints, pause control, and guarded JavaScript evaluation;
Next route compilation and Server Action lookup;
replay frame inspection and safe-action restore;
reproducible flow recording and post-change verification;
session cleanup.
Every tool advertises and enforces its own concrete MCP data schema inside one canonical { ok, data, error, artifacts, warnings } structured envelope. Stable top-level and capture-profile fields are concrete; bounded deep runtime/upstream payloads such as evaluation values, debugger locals, framework trees, and Next metadata remain JSON leaves. Text content is only a bounded preview. Requests rejected by the MCP SDK before handler dispatch use the SDK protocol-validation error shape and have no tool structuredContent. Screenshot pixels are inlined only when small enough for the result budget; every accepted screenshot also receives a non-enumerable, identity-revalidated web-debug://artifact/... resource link. Screenshot retention is capped at 4 MiB per file and four files/16 MiB per session; quota pruning can expire an older resource before its one-hour maximum TTL. Long baseline and post-fix operations emit monotonic MCP progress when the client requests it.
Capture profiles
web_issue_capture defaults to { "view": { "profile": "summary" } }. Summary returns a compact DOM excerpt, counts, latest failures, runtime presence, replay bounds, warnings, and a reusable opaque cursor without producing screenshot pixels. Use an explicit profile when more detail is necessary:
full: every bounded surface plus an explicit screenshot attempt;include: only the unique namedsurfaces; includescreenshotto opt into pixels;delta: the current bounded values of selected surfaces whose digest changed sincecursor; omittedsurfacesmeans every evidence surface except replay and screenshot, whose capture side effects require explicit inclusion. This is not JSON Patch, an event stream, or browser-state time travel. Requested screenshots use a fresh artifact rather than pixel diffing, so each successfully captured screenshot is changed.
Surfaces are dom, console, network, debugger, react, angular, vue, next, vite, accessibility, replay, and screenshot. Each session retains at most eight reusable cursors. Unknown, evicted, cross-session, or browser-generation-stale cursors fail explicitly. Screenshot paths never appear in capture data; accepted pixels are delivered only through the envelope's artifact descriptors. Scenario baseline and fix verification still retain authoritative full evidence independently of the manual profile.
The MCP boundary is intentionally small. Framework-specific protocol details stay inside adapters, while session ownership, same-origin navigation, bounds, redaction, and recovery stay centralized.
How it differs from native macOS and iOS build/debug skills
web-debug-mcp complements Codex build/debug skills; it is not a replacement for them and it is not another Xcode automation layer.
Surface | Primary target | Main job | Typical evidence |
| macOS apps, Swift, Xcode, AppKit, SwiftUI | Build, run, package, and debug native macOS software | Xcode/SwiftPM builds, app launch state, macOS logs, window behavior, signing and packaging evidence |
| iOS apps and Simulator | Build, launch, inspect, test, and profile native iOS software | Simulator UI, |
| Local web apps in Chromium or Safari | Reproduce browser behavior and join browser evidence with bounded framework/runtime context | DOM, console, network metadata, CDP pauses, React commits, Angular DOM-host state, Vue component updates, Vite transforms, Next traces, screenshots, replay frames |
The difference is both the target and the integration model:
Native build skills are Codex workflows for operating native development environments and their simulators or app runtimes.
web-debug-mcpis a repository-owned MCP server that any compatible MCP client can call over stdio.Native skills help build and debug the app itself; this server observes a running web target and produces structured browser/runtime evidence.
A project may use both: a native skill for a macOS or iOS shell, and
web-debug-mcpfor a web frontend, embedded web surface, or local browser flow.
What it provides
Browser evidence
Chromium launch through an explicit executable path or attach through an explicit CDP endpoint.
Exact CSS, role, text, label, and test-id locators with fresh live count/visibility/enabled/checked/text probes.
Isolated loopback-only TLS opt-in with an approved origin, project-contained disposable Playwright auth state, named checkpoints, and bounded desktop/mobile viewport matrices.
Computed Chromium accessibility diagnostics with live-validated
uniqueAtCapturesuggestions; Safari stays CSS-only and reports these advanced capabilities as unavailable.Auth-seeded sessions suppress screenshots because screenshot pixels cannot be truthfully redacted.
Sessions or scenarios containing private fill/select values also suppress screenshots; structured values are redacted, but pixels are never claimed scrubbed.
Safari actions, DOM, screenshots, and explicit JavaScript evaluation through W3C WebDriver.
WebDriver BiDi console and network subscriptions where the installed Safari exposes them.
A disclosed, bounded Performance Resource Timing fallback for Safari versions that do not emit network events.
JavaScript breakpoints, pause reasons, call frames, scope values, and guarded evaluation in Chromium.
Same-origin navigation and bounded console/network metadata with redaction.
Opt-in Chrome WebMCP page actions through
document.modelContext: direct-only, explicit side-effect authorization, one attempt, opaque bounded string/null result, truthfulwebmcp-page-apiprovenance, and independent UI/domain evidence for mutations.Discover-only bounded WebMCP metadata through capture; metadata, schemas, annotations, and descriptions remain untrusted page content.
Top-level redirects, clicks, reloads, and secondary pages stay on the selected origin. Chromium combines selected-target CDP interception with a context-wide frame-less-document fallback and revalidates every final state; in attach mode that fallback disables HTTP cache for sibling pages until close. Safari WebDriver verifies and quarantines escaped state immediately after navigation because its compatibility transport has no reliable pre-request interception.
To exercise the page API locally, use a command-owned Chrome 151+ profile with the WebMCP testing flag enabled (chrome://flags/#enable-webmcp-testing). The direct action shape is bounded and explicit:
{
"kind": "webmcp",
"origin": "http://127.0.0.1:4173",
"name": "submit_payment",
"arguments": { "amount": 249.9 },
"allowSideEffects": true
}The page API is not browser-native provenance. Every attempted call is treated as potentially mutating, executes once, is excluded from replay/scenario actions, marks the timeline non-restorable, and suppresses subsequent screenshots.
React profiler and render-cause evidence
The injected development bridge observes React’s DevTools hook and returns:
component and hook state summaries;
prop and hook changes for the latest render;
inferred causes such as mount, props, state, props plus state, or parent;
bounded commit counts, changed-component counts, and durations;
a flat, depth-aware flamegraph view with actual, self, and tree duration summaries.
This is useful for locating re-render hotspots and distinguishing a state update from a prop or parent-driven render without exposing raw Fiber objects.
Angular development evidence
For detected Angular projects, Chromium injects a target-scoped read-only bridge before navigation. Development builds with documented window.ng globals return a bounded DOM-hosted component tree, own data properties, sample counts, and changed state keys. The bridge excludes accessors, methods, signals, injectors, and private Ivy fields. Angular CLI's encapsulated Vite server is not the Web Debug Vite endpoint, so Angular-only projects do not claim Vite module/HMR provenance.
Vue 3 development evidence
For detected Vue projects, Chromium injects a target-scoped bridge that observes the exact Vue 3 DevTools hook contract while preserving an existing hook. It returns bounded application/component trees, props, descriptor-backed state, source-file hints, update counts, and changed keys. It never falls back to DOM-private __vue* properties. Vue/Vite projects can additionally install webDebugVitePlugin() for the existing module/HMR provenance.
Vite provenance
The development-only webDebugVitePlugin() exposes a bounded local endpoint containing:
module and importer relationships;
HMR state and the changed module;
before/after transformed-code summaries;
a changed-block transform diff;
source-map presence, source names, mapping length, and file metadata.
This connects a browser symptom to the code Vite actually served, while keeping full source bodies and production exposure out of the default contract.
Next.js server evidence
The adapter speaks to Next’s local /_next/mcp endpoint and can return:
project metadata, routes, compilation issues, and bounded development logs;
request insights and normalized server request traces with bounded spans;
route compilation through
web_next_inspect;Server Action manifest resolution;
an observed browser
Next-ActionPOST linked to its Server Action resolution and matching server trace.
The suite observes and explains a Server Action request. It does not invoke arbitrary server actions on an agent’s behalf.
Replay and adaptive verification
Every manual action and representative capture can produce one of up to eight bounded replay frames. Verification attempts retain one capture-only frame with an attemptId; web_replay_seek can inspect it but restore remains fail-closed. Ordinary manual frames can use restore: true to reissue retained navigation, click, press, check, hover, scroll, observable wait, and reload actions only while the trustworthy session-start boundary is still retained. Fill and select values are sanitized before storage; truncated starts, sanitized inputs, or redacted navigation URLs fail closed during restore.
Recorded scenarios execute a bounded pre-fix baseline before they are stored. The contract separates a named failureSignature from acceptanceChecks and optional regressionChecks; web_fix_verify returns exactly verified, failed, or inconclusive, never an ambiguous boolean. Quick verification uses one attempt (15 seconds); declared asynchronous, timing, concurrency, browser-state, or server-state risk starts at standard (up to three attempts/60 seconds), and prior flakiness starts strict (up to five attempts/120 seconds). Retryable startup/readiness signals and conflicting baseline observations are recorded as escalation reasons. The MCP plugin allows 150 seconds so strict verification and bounded cleanup can finish, while requested progress reports phase start, attempt boundaries, and phase completion on a fixed monotonic scale.
Scenarios are session-owned and in-memory. The private executable URL retains its exact query for replay, while the public scenario URL is query-free; public actions replace fill/select values with a redaction marker, contract hashes contain only the sanitized contract, and build references are explicitly untrusted caller labels. Each result reports environment/target provenance, rates over decisive observations, per-attempt summaries, reset/isolation truth, cancellation or deadline state, and one bounded representative evidence bundle per phase. A full representative recapture is authoritative: drift or unavailable evidence is inconclusive, never verified. A scenario is not reusable across sessions, and closing destroys private actions, auth/start settings, target identity, secrets, and retained evidence before keeping only a bounded sanitized tombstone.
Scenario recording is intentionally not a test-definition generator. The project does not export or import YAML/JSON scenario files and does not provide a standalone or CI scenario runner. When a reproduced regression needs durable cross-session or CI coverage, encode it in the repository's native test suite; use this MCP workflow for browser-grounded reproduction, diagnosis, and same-session fix verification.
Recorded scenarios make the loop repeatable:
record flow → reproduce → capture evidence → change code → rerun flow → compare checksThe MCP flow is session-bound and explicit:
{
"sessionId": "<live-session-id>",
"name": "latest quote wins",
"url": "http://127.0.0.1:4188/",
"actions": [{"kind": "click", "locator": {"kind": "css", "value": "[data-testid='refresh-quote']"}}],
"failureSignature": [{"kind": "locatorText", "locator": {"kind": "css", "value": "body"}, "text": "Quote v2 applied", "match": "contains", "expected": "fail"}],
"acceptanceChecks": [{"kind": "locatorText", "locator": {"kind": "css", "value": "body"}, "text": "Quote v2 applied", "match": "contains"}, {"kind": "noConsoleErrors"}],
"risks": {"async": true}
}Wait actions must name an exact locator, probe property, and expected value; elapsed-only sleeps are rejected.
The action set is intentionally deterministic: press accepts a fixed navigation/editing key allowlist, select chooses one exact option value, check declares the desired boolean state, and scroll brings one exact locator into view. Fill and select values remain private to the live session and are never restorable from public replay.
Why use it?
Use this project when you want the debugging agent to have evidence rather than guesses:
shorten the reproduce–inspect–fix–verify loop;
keep browser state, framework state, and dev-server state in one response;
diagnose React re-render and HMR issues with source-oriented context;
connect a Next Server Action request to its route, manifest entry, and server spans;
retain a redacted reproduction within the live session so it can be inspected or safely replayed;
use exact semantic locators, named checkpoints, and bounded viewport matrices for repeatable responsive flows;
make cross-browser checks explicit instead of silently treating WebKit as Safari;
avoid installing several MCP servers that each own part of the same frontend workflow;
keep local debugging bounded and reviewable for agent-driven development.
Examples and evidence
The examples show the practical difference: a raw browser path can reproduce a symptom, while the MCP path joins browser state with React/Vite/Next runtime evidence, records the flow, and verifies the same interaction after a fix. The suite includes a stale React filter, an out-of-order async quote, and a responsive drawer visual bug at desktop and mobile sizes. See Examples and evidence for the before/after stories and representative evidence.
Useful application areas
React UI bugs, stale state, unexpected renders, and component performance investigations;
Angular development component/state regressions where a DOM-hosted tree is sufficient;
Vue 3 development component, props, state, and update regressions;
Vite HMR failures, transform regressions, importer/module-graph problems, and source-map questions;
Next.js App Router, route compilation, RSC, request-insight, and Server Action debugging;
browser console or network regressions tied to a reproducible interaction;
Safari compatibility checks where DOM, console, network metadata, or screenshots are enough;
regression verification after a frontend fix;
local bug reports that need a durable evidence bundle for another engineer or agent;
agent workflows that need a single, structured web-debugging capability.
Quick start
npm install --no-audit --no-fund
npm test
npm run typecheck
npm run build
npm run harness:checkCheck first-run readiness without starting a browser:
npm run build
node bin/web-debug-mcp.mjs doctor --project-root fixtures/react-vite --url http://127.0.0.1:4174/ --executable-path "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"For a live Chromium smoke, provide an explicit browser executable:
WEB_DEBUG_CHROME_EXECUTABLE_PATH="/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" npm run smoke:liveFor the framework fixtures:
npm run smoke:react-vite
npm run smoke:vue-vite
npm run smoke:angular
npm run smoke:next
npm run smoke:safariTo see the same debugging flows with and without the MCP evidence workflow:
WEB_DEBUG_CHROME_EXECUTABLE_PATH="/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" npm run demo:compareThe comparison demo measures repeatable local machine timings and evidence coverage for vanilla browser validation, React/Vite render diagnosis, Next.js Server Action linkage, a complex React filter repair, an out-of-order async quote repair, and a responsive visual drawer repair. See docs/demos/comparison.md for the scenario definitions and interpretation rules.
Run the MCP server after building:
node dist/index.jsTo exercise a local checkout through an MCP client, register that built file directly under a distinct name and do not enable the released plugin in the same client session:
codex mcp add web-debug-mcp-local -- node /absolute/path/to/web-debug-mcp/dist/index.js
claude mcp add --transport stdio --scope project web-debug-mcp-local -- node /absolute/path/to/web-debug-mcp/dist/index.jsReplace the placeholder with this checkout's absolute path, then verify serverInfo.version is 0.8.0. Disable the installed released plugin in that client session while exercising the local checkout so the same MCP catalog is not registered twice.
Then use the MCP client workflow:
Call
web_project_detect.Start an explicit local session with
web_session_start.Reproduce the issue with
web_browser_actionand, for Chromium, debugger tools.Capture
web_issue_captureat the failure point.Use
web_next_inspectfor a Next route or Server Action when applicable.Record and rerun a flow with
web_repro_recordandweb_fix_verify.Inspect or safely restore a retained frame with
web_replay_seek.Close the session with
web_session_close. UseartifactPolicy: "delete"to remove only that exact session artifact directory; the defaultretainkeeps non-empty evidence available for inspection and removes an empty directory.
For Vite, install the development-only plugin in vite.config.ts:
npm install --save-dev web-debug-mcp@0.8.0import { webDebugVitePlugin } from "web-debug-mcp/vite";
export default {
plugins: [webDebugVitePlugin()],
};Do not enable that plugin in a production server.
What to expect
A local process communicating over MCP stdio.
Explicit browser target selection; no arbitrary browser or target discovery.
Structured evidence with bounded arrays and text, redaction markers, and capability warnings.
MCP-native structured results, bounded text previews, progress notifications, and opaque screenshot resources.
Nullable framework fields when a development runtime does not expose a signal.
Chromium debugger depth and Safari WebDriver/BiDi coverage that differ by browser capability.
Temporary screenshot artifacts outside the project directory with explicit retain/delete close policy.
Safe replay that reissues a limited action set, not a magical snapshot restore.
A native harness status that distinguishes passing source checks from a historical, possibly stale certification window; neither proves production deployment or provider authentication.
What not to expect
This project is not:
a full replacement for Chrome DevTools, Safari Web Inspector, React DevTools, or an IDE;
an automatic code-fixing agent;
a complete React DevTools profiler/flamegraph implementation or perfect render-cause oracle;
a full source-map debugger or a distributed tracing backend;
an arbitrary Next server executor or a way to run credentialed Server Actions;
a Safari JavaScript debugger with Chromium CDP parity;
a production monitoring, incident-management, or hosted MCP service;
an unattended remote-browser controller;
a portable YAML/JSON browser-action DSL, MCP scenario importer, or cross-session/CI scenario runner; qualification JSON is non-executable metadata around repository-native tests;
a secret, cookie, browser-storage, or raw-response-body collector;
proof that a local smoke passed in production.
Remote CDP or WebDriver attachment requires explicit opt-in and an approved target. It is marked non-isolated. No external remote target or provider-backed production attestation is included in the current repository evidence.
Safety defaults
Browser URLs are loopback-only unless
allowRemoteis explicitly enabled.Top-level browser navigation remains on the session origin across initial redirects, actions, reloads, and secondary pages; cross-origin subresources remain available in ordinary sessions.
External attachments are marked non-isolated.
Console text, URLs, debugger locals, evaluated values, framework data, and replay frames are bounded and redacted.
Raw response bodies, cookies, authorization values, and browser storage are not collected by the core adapter.
Evaluation rejects side effects unless
allowSideEffects: trueis explicitly supplied.Direct WebMCP actions require
allowSideEffects: true, are never retried or stored as replay/scenario actions, mark the timeline non-restorable, and suppress later screenshots.readOnlyHintis untrusted metadata and never waives these rules.Framework HTTP bodies, WebDriver responses, evaluated values, error details, structured data, and complete MCP results have byte budgets; overflow fails with a stable error instead of partial success.
The Vite plugin is development-only and local by design.
Safari 27 note
Safari 27 includes Apple’s official Safari MCP server. The reviewed Safari 27 artifact failed this project's full transport cutover gate, so WebDriver/BiDi remains the sole internal Safari transport. If Safari MCP is separately configured, the bundled workflow skill may use only its handle-scoped create/navigate/console-summary/network-summary/close subset in a separate diagnostic tab. Ambient tools, full request details, evidence merging, and qualification PASS remain prohibited.
Verification status
Release 0.8.0 promotes the verified startup-recovery and fail-closed task-binding contract without changing the 13-tool browser/runtime surface or Safari cutover decision. Safari WebDriver/BiDi remains authoritative, and the optional external Safari MCP diagnostic subset remains separate. Exact archive, npm/GitHub, and installed Codex plugin evidence is recorded in the 0.8.0 release plan. The checked-in historical certification window remains stale; this release does not claim a current CERT000.
See ARCHITECTURE.md, the product contract, docs/SECURITY.md, docs/RELIABILITY.md, and docs/agent-harness/certification.md for implementation boundaries and operational details.
Exact locally verified versions are recorded in docs/COMPATIBILITY.md. npm run eval:catalog emits the three frozen agent repair contracts documented in docs/demos/agent-evaluation.md; it never calls a model automatically.
License
web-debug-mcp is licensed under the GNU General Public License, version 3 or any later version. See LICENSE.
SPDX-License-Identifier: GPL-3.0-or-later
Available Tools
13 toolsweb_breakpoint_setSet JavaScript breakpointA
Set a breakpoint by source URL and one-based line number through the local Chromium debugger.
| Name | Required | Description | Default |
|---|---|---|---|
| line | Yes | ||
| column | No | ||
| sessionId | Yes | ||
| sourceUrl | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| warnings | Yes | |
| artifacts | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose readOnlyHint=false, idempotentHint=false, and destructiveHint=false, so the description need not repeat those. It adds the useful context of operating 'through the local Chromium debugger.' Yet it does not mention that setting a breakpoint affects subsequent execution or that a session must already be running.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One tight sentence of 14 words carries the core purpose, key parameters, and mechanism with zero filler. The most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a small mutation tool with only 4 parameters and a provided output schema, the description is nearly sufficient. It lacks an explicit requirement for an active debug session, but the sessionId parameter and sibling tool set make that inferable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description carries the burden of explaining parameters. It clarifies sourceUrl and that line is one-based (matching the schema min=1), but gives no guidance on sessionId or the optional column meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Set'), a concrete resource ('breakpoint by source URL and one-based line number'), and the mechanism ('local Chromium debugger'). This clearly distinguishes it from sibling tools like web_debug_evaluate or web_debug_control, which perform different debug actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage context is implied: an agent can infer this is for pausing exection at a specific line in a supported debug session. However, it does not explicitly state when to choose this tool over alternatives, nor any preconditions like requiring an active web session.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
web_browser_actionPerform bounded browser actionADestructive
Navigate, click, fill, press, select, check, hover, scroll, wait, or reload with exact locators, or execute one explicitly authorized direct WebMCP page tool. WebMCP calls are bounded, opaque, non-replayable, and never retried.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | ||
| sessionId | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| warnings | Yes | |
| artifacts | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructive/open-world behavior; the description adds critical non-obvious policy: WebMCP calls are bounded, opaque, non-replayable, and never retried. It also warns that WebMCP execution requires explicit authorization. No contradiction with annotations exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences deliver a full action inventory plus WebMCP safety constraints. The information is front-loaded and every clause adds value; no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the large schema, the presence of an output schema, and annotations, the description covers the most important non-obvious behaviors. It could additionally mention that sessionId must come from an active web_session_start flow, but the schema URI/format and sibling tool names largely fill that gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has rich oneOf/const structure but 0% textual description coverage. The description adds useful hints like 'exact locators' and 'explicitly authorized' WebMCP, but it does not explain sessionId, locator-kind selection, or wait/timeout semantics. It partially compensates for the schema gap without covering all parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a concrete verb set ('Navigate, click, fill, press, select, check, hover, scroll, wait, or reload') and identifies the resource as a browser session/page. It also distinguishes this tool from sibling debug/session-management tools by scoping it to DOM actions and the special WebMCP page-tool case.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is clear: this is the tool for bounded browser interactions, and the description adds the important constraint that WebMCP/page-tool calls must be explicitly authorized. It does not explicitly name sibling alternatives or say when to prefer web_debug_* tools, so it stops short of full guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
web_debug_controlControl paused JavaScript debuggerBDestructive
Resume or step a paused local JavaScript target.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | ||
| sessionId | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| warnings | Yes | |
| artifacts | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotent=false, so the mutation risk is known. The description adds no extra behavioral context, such as what happens to the debugger session after resume, whether breakpoints persist, or side effects of stepping.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence where every word adds meaning, front-loading the operation and the required target state. There is no filler or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only two parameters and an output schema present, the tool is relatively simple and the description is adequate. However, it omits parameter roles and any guardrails about the session having to be active or currently paused, so an agent gets the gist but not full operational context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, and the description does not explain sessionId or the action parameter beyond the enum values already present in the schema. The enum values are readable, but the description does not compensate for the missing schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific debugger verbs ('Resume', 'step') and identifies the resource ('paused local JavaScript target'), which makes its purpose clear and distinguishable from siblings like web_debug_evaluate or web_breakpoint_set. The title reinforces the same operation without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'paused local JavaScript target' implies the tool should be used only when a debugger session is paused, so the usage context is present. However, it does not explicitly state when not to use the tool or mention alternatives for related tasks such as expression evaluation during a pause.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
web_debug_evaluateEvaluate JavaScript expressionADestructive
Evaluate an expression in the local page runtime. Side effects are rejected unless explicitly enabled.
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | ||
| expression | Yes | ||
| allowSideEffects | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| warnings | Yes | |
| artifacts | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds important behavioral context beyond the annotations: side effects are rejected by default and only allowed when explicitly enabled. This is valuable for a tool with destructiveHint=true and readOnlyHint=false, as it clarifies the default safety posture. It does not detail all consequences of enabling side effects, but the annotations already flag destructiveness.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded: the first sentence states the core action and target, and the second sentence provides a critical safety constraint. There is no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for understanding the basic operation and the default side-effect policy, and an output schema exists to document return values. However, it omits details such as session prerequisites, how to handle rejected side effects, and any limitations of evaluated expressions. Given the complexity and potential destructiveness of JavaScript evaluation, more context would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, so the description must compensate. It adds meaning to the expression parameter by specifying that it runs in the local page runtime, and it explains the allowSideEffects behavior by stating side effects are rejected unless explicitly enabled. However, the sessionId parameter is not described at all, and the description does not clarify how an active session is used or required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool evaluates an expression in the local page runtime, and the title adds that it is a JavaScript expression. This is a specific verb and resource, though it does not explicitly distinguish itself from sibling tools beyond the unique action of evaluating an expression.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as web_debug_control, web_next_inspect, or web_browser_action. The only usage-related hint is that side effects are rejected unless explicitly enabled, but there is no mention of appropriate scenarios or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
web_fix_verifyVerify web fix against recorded flowADestructive
Verify a stored pre-fix reproduction with adaptive bounded attempts and return verified, failed, or inconclusive evidence.
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | ||
| scenarioId | Yes | ||
| buildReference | No | ||
| requestedLevel | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| warnings | Yes | |
| artifacts | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry the risk profile (readOnly=false, destructiveHint=true, idempotentHint=false), so the description is not required to restate safety. It adds useful behavioral detail—'adaptive bounded attempts' and the outcome classification—but does not disclose what may be destroyed or how attempts are bounded, which matters for a destructive-flagged tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, about 18 words, front-loads the action and outcome; no filler or redundant phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With four parameters including a nested object and an enum, 0% parameter documentation in the schema, and a destructiveHint=true annotation, the description is too thin. The output schema likely covers return values, but parameter semantics, side effects, and when to choose this tool are all left to guesswork.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema parameter description coverage is 0%, and the description compensates almost none of that gap. It never maps 'stored pre-fix reproduction' to sessionId/scenarioId, nor explains buildReference or requestedLevel (quick/standard/strict), leaving agents to infer semantics from names and enums alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear verb ('Verify') with a specific resource ('stored pre-fix reproduction') and defines the outcome tri-state ('verified, failed, or inconclusive evidence'). This makes it distinct from sibling tools like web_repro_record or web_replay_seek, which are about capturing or replaying rather than confirming a fix.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage has to be inferred: it is for verifying a previously recorded pre-fix reproduction, presumably after a fix has been applied. No explicit when-to-use/when-not-to-use guidance or named alternatives is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
web_issue_captureCapture bounded web issue evidenceA
Capture redacted browser evidence with a compact summary by default, or explicitly request full, selected, or cursor-based changed surfaces. WebMCP metadata is discover-only and untrusted; screenshots are opt-in through full/include and remain suppressed for private input, auth-seeded sessions, or any session after a direct WebMCP attempt.
| Name | Required | Description | Default |
|---|---|---|---|
| view | No | ||
| sessionId | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| warnings | Yes | |
| artifacts | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds meaningful behavior beyond the annotations: evidence is redacted, screenshots are opt-in and suppressed in specific security-sensitive cases, and WebMCP metadata is discover-only and untrusted. It does not mention all possible side effects, but the provided caveats are substantial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: two sentences, front-loaded with the primary action and default behavior, followed by important caveats. Every sentence provides valued information and there is no padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the rich input schema, output schema, and annotations, the description covers the key behavioral constraints an agent needs: default mode, mode options, redaction, screenshot opt-in, and security-sensitive suppression. The main missing element is explicit guidance on when to choose this tool over siblings, which is reflected in the usage dimension.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description needed to compensate. It explains the conceptual view modes (summary default, full, selected, cursor-based changed surfaces) and connects screenshots to full/include, but it does not explicitly mention sessionId or the exact delta/include profile values. Some parameter meaning is added, but not enough to fully replace schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Capture redacted browser evidence') and distinguishes the default compact summary from full, selected, and cursor-based modes. It is clear about the tool's core purpose, but does not explicitly differentiate it from sibling tools like web_repro_record or web_debug_control.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description explains internal profile options but does not state when web_issue_capture should be preferred over sibling tools or when another tool would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
web_next_inspectInspect Next.js runtimeBDestructive
Compile one Next.js route or resolve one Server Action through the selected local Next development server.
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | ||
| inspection | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| warnings | Yes | |
| artifacts | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal destructiveHint=true, readOnlyHint=false, and openWorldHint=true, so the description does not need to restate the safety profile. It adds that the tool compiles routes or resolves Server Actions through a local dev server, which implies execution/behavioral effects. However, it does not explain what destructive side effects may occur, such as running server code with external impact.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one concise sentence with no filler. It front-loads the two concrete operations and scopes them to the selected local Next.js dev server. Every word contributes useful meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema and annotations supply some context, but the description is thin for a tool with two distinct operation modes and a destructive/open-world profile. It does not mention the need for an active session or that resolving a Server Action can execute arbitrary server-side code, leaving the agent to infer important preconditions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description only partially compensates. It explains the two inspection modes—compiling a route or resolving a Server Action—but never clarifies that sessionId identifies the selected dev server/session or how path/actionId map to the mode. The schema provides const values and required fields, but the description adds little beyond a high-level paraphrase.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Compile one Next.js route or resolve one Server Action through the selected local Next development server.' This clearly identifies what the tool does and distinguishes it from sibling browser/debug tools by focusing on Next.js runtime operations. It does not explicitly name sibling alternatives, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool instead of siblings like web_debug_evaluate or web_breakpoint_set. The phrase 'through the selected local Next development server' implies a session/context is required, but it does not state prerequisites, exclusions, or alternative conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
web_project_detectDetect web project eligibilityARead-onlyIdempotent
Inspect the exact root, distinguish confirmed application markers from weak dependency candidates, and report bounded workspace candidates without starting a process or selecting a child.
| Name | Required | Description | Default |
|---|---|---|---|
| projectRoot | No | /app |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| warnings | Yes | |
| artifacts | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false. The description adds useful behavioral detail by stating it inspects 'the exact root' and does not start a process or select a child, giving the agent confidence about non-side-effecting behavior. It does not contradict the annotations and adds meaningful behavioral nuance beyond them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler and begins with the key action, 'Inspect'. It packs multiple clauses – root inspection, marker distinction, candidate reporting, and non-actions – efficiently. It could be clearer if split, but it earns its space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema is present and annotations cover side-effecting safety, the description provides enough context for a low-complexity read-only tool: it reports candidates without side effects. It lacks explicit when-to-use guidance, but the title, siblings, and non-action phrasing fill most gaps. The description is close to complete for a tool of this simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage for projectRoot, so the description must compensate. The phrase 'Inspect the exact root' connects loosely to projectRoot but does not explain path format, whether it is absolute or relative, or the significance of the default '/app'. For a single self-named parameter this is minimally adequate but lacks real semantic depth.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names specific actions – 'inspect', 'distinguish', 'report' – and a clear resource, the project root. It also distinguishes itself from sibling tools by stating it works 'without starting a process or selecting a child', which separates it from session-start and child-inspection tools. The language is somewhat technical ('bounded workspace candidates'), but the core purpose is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies a pre-flight or eligibility-inspection step and explicitly says it does not start a process or select a child. However, it never directly states when to use this tool versus siblings such as web_session_start or web_next_inspect, so the agent must infer the intended usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
web_replay_seekSeek captured web replay frameADestructive
Return one retained, redacted replay frame; set restore=true to replay its safely restorable actions into the browser and mutate live state.
| Name | Required | Description | Default |
|---|---|---|---|
| restore | No | ||
| sessionId | Yes | ||
| frameIndex | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| warnings | Yes | |
| artifacts | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructive behavior (destructiveHint=true). The description adds the key conditional context: default is returning a frame, while restore=true mutates live state. It also discloses that frames are redacted and actions are 'safely restorable', giving useful behavioral nuance beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one concise sentence with the primary behavior front-loaded and the optional restore behavior attached to the relevant parameter. There is no filler or repetition of schema information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the return value does not need extensive explanation. The description covers the main risk (live mutation on restore) and the redacted nature of frames. It does not explain session/frame index validity explicitly, but the schema already encodes constraints, so the gap is minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains the restore parameter clearly, but sessionId and frameIndex are left entirely to their names and schema constraints. This is only partial parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Return one retained, redacted replay frame' and explains the optional restore behavior that replays actions and mutates live state. This clearly distinguishes it from siblings like web_repro_record or web_browser_action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool: to seek/return a replay frame, and set restore=true when replaying actions into the browser. However, it does not explicitly list alternative tools or state when not to use it, so some inference is required.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
web_repro_recordRecord reproducible web flowCDestructive
Execute and store a bounded pre-fix reproduction with exact locator checks, named ordered checkpoints, optional desktop/mobile viewport contracts and failure scope, and adaptive-risk signals.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| name | Yes | ||
| risks | No | ||
| actions | Yes | ||
| sessionId | Yes | ||
| viewports | No | ||
| checkpoints | No | ||
| buildReference | No | ||
| requestedLevel | No | ||
| acceptanceChecks | Yes | ||
| failureSignature | Yes | ||
| failureViewports | No | ||
| regressionChecks | No | ||
| serverStateReset | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| warnings | Yes | |
| artifacts | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=false, and destructiveHint=true, so the description's 'execute and store' is consistent with those. The description adds some context such as exact locator checks, named ordered checkpoints, viewport contracts, and adaptive-risk signals. However, it does not disclose specifics about side effects, what gets destroyed, or operational boundaries beyond what annotations state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense sentence with no filler words, which is concise in length. However, it crams many concepts together—'bounded pre-fix reproduction', 'exact locator checks', 'viewport contracts', 'failure scope', 'adaptive-risk signals'—making it hard to parse at a glance. It could be split into clearer, more digestible sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 14 parameters, 6 required, heavy nesting, and no parameter descriptions in the schema. The description only gives a high-level gloss and does not explain what constitutes a valid reproduction, how checkpoints relate to actions, what failureSignature means, or what the output will look like. Even with an output schema present, the input complexity demands more guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, but it barely does. It references checkpoints, viewports, failure scope, and risk signals, which map to some parameters, but it does not explain required parameters like sessionId, name, url, actions, acceptanceChecks, or failureSignature. Given the massive nested schema, this is a significant gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action: execute and store a reproduction of a web flow, with checkpoints, viewports, and failure scope. 'Pre-fix reproduction' and 'adaptive-risk signals' add distinguishing scope. However, it does not explicitly differentiate from sibling tools like web_replay_seek or web_fix_verify, and 'bounded pre-fix reproduction' is jargon-heavy.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus siblings such as web_browser_action, web_replay_seek, or web_fix_verify. It does not mention prerequisites like needing an active session, nor does it explain when recording is appropriate versus replaying or verifying. The only hint is the word 'record' in the title.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
web_session_closeClose web debug sessionADestructiveIdempotent
Close the selected session and release any browser resources owned by it.
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | ||
| artifactPolicy | No | retain |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| warnings | Yes | |
| artifacts | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true. The description adds useful behavioral context by stating that browser resources owned by the session are released, which goes beyond what annotations alone convey. It does not contradict any annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. 'Close the selected session' carries the main purpose, and 'release any browser resources owned by it' adds meaningful consequence without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter destructive tool with output schema and strong annotations, the description is mostly adequate. The main gap is that artifactPolicy is not described, so an agent cannot confidently know what 'delete' will destroy. Otherwise, safety and idempotency are covered by annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description does not explain either parameter. sessionId is inferable from the tool name, but artifactPolicy's retain/delete values are ambiguous: it is not stated what is retained or deleted, when the default applies, or how it interacts with closing the session.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a concrete action ('Close the selected session') and a resource ('session'), and adds a meaningful consequence: releasing browser resources. This distinguishes it from siblings like web_session_start and web_session_status, though 'selected' is slightly vague without referencing the sessionId parameter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the verb and title: call this when a session should be ended. However, the description provides no explicit when/when-not guidance, no mention of cleanup flow, and does not differentiate from related lifecycle tools such as web_debug_control or web_session_status.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
web_session_startStart web debug sessionADestructive
Start or attach to an explicitly selected local Chromium or Safari page using an explicit URL and CDP, WebDriver, or executable settings. Chromium can opt into one guarded HTTPS loopback origin and a project-contained disposable auth fixture; attached Chromium can supply targetId to pin the exact page. Safari remains strict and CSS-only.
| Name | Required | Description | Default |
|---|---|---|---|
| tls | No | strict | |
| url | Yes | ||
| browser | No | chromium | |
| headless | No | ||
| targetId | No | ||
| viewport | No | ||
| allowRemote | No | ||
| authFixture | No | ||
| cdpEndpoint | No | ||
| projectRoot | No | /app | |
| executablePath | No | ||
| webdriverEndpoint | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| warnings | Yes | |
| artifacts | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the operation as non-read-only, non-idempotent, and destructive, and the description adds useful behavioral nuance: optional guarded loopback TLS, a disposable auth fixture, targetId pinning for attached Chromium, and the stricter Safari/CSS-only path. These details shape agent expectations without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two dense sentences with no filler and starts with the action. Every clause adds a distinct constraint or mode, so it remains tightly packed despite the technical jargon.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 12-parameter tool with no schema-level descriptions, the description covers the core choices, browser differences, and attach behavior, while the output schema covers return details. It leaves some parameters (e.g., allowRemote, viewport) mostly to inference, but the remaining information is largely recoverable from names, defaults, and enums. This is adequate but not exhaustively complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the prose carries the semantic load. It meaningfully explains key parameters: CDP/WebDriver/executable settings, targetId for precise attachment, tls via guarded loopback, and authFixture/projectRoot through the disposable fixture. A few parameters like headless, viewport, and allowRemote rely on name/type inference, but the most decision-critical ones are covered.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a concrete action ('Start or attach'), a specific resource ('local Chromium or Safari page'), and the invocation route ('explicit URL and CDP, WebDriver, or executable settings'). This goes beyond the title and clearly distinguishes the tool from session-status, capture, and close siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The opening phrase makes the intended context clear: use this when a browser debugging session needs to be started or attached to a specific page. It does not explicitly name sibling tools or provide when-not-to-use guidance, but the transport-mode options and targetId attach behavior give enough contextual direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
web_session_statusRead web debug session statusARead-onlyIdempotent
List active sessions or read one summary with separate project eligibility and negotiated live runtime capabilities.
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| warnings | Yes | |
| artifacts | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive, so the safe-read behavior is covered. The description adds the two-mode behavior (list all vs read one) and the distinct content of the summary, which goes beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler and front-loads the core behavior. The specialized phrasing 'separate project eligibility and negotiated live runtime capabilities' is dense but not redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with one optional parameter and an output schema, the description is complete: it states the two calling modes and what the summary contains. The output schema handles return-value details, and annotations handle safety.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates by tying the optional sessionId to the two modes: omission lists active sessions, providing one reads a single summary. It doesn't spell out 'optional' but the grammatical structure conveys this.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('List active sessions or read one summary') and distinguishes two invocation modes, making it easy to tell apart from sibling tools like web_session_start, web_session_close, and web_debug_control. The phrase about project eligibility and negotiated runtime capabilities further specifies what kind of summary is returned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies that omitting sessionId lists active sessions and providing it reads one summary, but it never explicitly says when to prefer this tool over siblings or states exclusions. An agent can infer the read-only inspection use case from annotations, but the description itself gives no explicit when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
13 tool updates
v0.7.0- Changed
web_breakpoint_set7 fields changed- removed
Output schema / definitions / __schema1Removed value: -{ - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - }, - { - "items": { - "$ref": "#/definitions/__schema1" - }, - "type": "array" - }, - { - "additionalProperties": { - "$ref": "#/definitions/__schema1" - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - } - ] -} - added
Output schema / properties / data / additionalPropertiesAdded value: +false - removed
Output schema / properties / data / allOfRemoved value: -[ - { - "$ref": "#/definitions/__schema0" - } -] - added
Output schema / properties / data / propertiesAdded value: +{ + "column": { + "anyOf": [ + { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "id": { + "maxLength": 500, + "type": "string" + }, + "line": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "sourceUrl": { + "maxLength": 2560, + "type": "string" + } +} - added
Output schema / properties / data / requiredAdded value: +[ + "id", + "sourceUrl", + "line", + "column" +] - added
Output schema / properties / data / typeAdded value: +"object" - changed
Output schema / properties / error / properties / details / allOfPrevious value: -[ - { - "$ref": "#/definitions/__schema1" - } -]New value: +[ + { + "$ref": "#/definitions/__schema0" + } +]
- Changed
web_browser_action7 fields changed- added
Input schema / definitionsAdded value: +{ + "__schema0": { + "anyOf": [ + { + "type": "null" + }, + { + "type": "boolean" + }, + { + "type": "number" + }, + { + "type": "string" + }, + { + "items": { + "$ref": "#/definitions/__schema0" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/definitions/__schema0" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] + } +} - removed
Input schema / properties / action / anyOfRemoved value: -[ - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "navigate", - "type": "string" - }, - "url": { - "format": "uri", - "maxLength": 2048, - "type": "string" - } - }, - "required": [ - "kind", - "url" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "click", - "type": "string" - }, - "locator": { - "oneOf": [ - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "css", - "type": "string" - }, - "value": { - "maxLength": 500, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "role", - "type": "string" - }, - "name": { - "maxLength": 300, - "minLength": 1, - "type": "string" - }, - "role": { - "maxLength": 100, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "kind", - "role" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "text", - "type": "string" - }, - "text": { - "maxLength": 500, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "kind", - "text" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "label", - "type": "string" - }, - "text": { - "maxLength": 500, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "kind", - "text" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "testId", - "type": "string" - }, - "value": { - "maxLength": 500, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - } - ] - } - }, - "required": [ - "kind", - "locator" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "fill", - "type": "string" - }, - "locator": { - "oneOf": [ - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "css", - "type": "string" - }, - "value": { - "maxLength": 500, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "role", - "type": "string" - }, - "name": { - "maxLength": 300, - "minLength": 1, - "type": "string" - }, - "role": { - "maxLength": 100, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "kind", - "role" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "text", - "type": "string" - }, - "text": { - "maxLength": 500, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "kind", - "text" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "label", - "type": "string" - }, - "text": { - "maxLength": 500, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "kind", - "text" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "testId", - "type": "string" - }, - "value": { - "maxLength": 500, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - } - ] - }, - "value": { - "maxLength": 10000, - "type": "string" - } - }, - "required": [ - "kind", - "locator", - "value" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "key": { - "enum": [ - "Enter", - "Escape", - "Tab", - "ArrowUp", - "ArrowDown", - "ArrowLeft", - "ArrowRight", - "Backspace", - "Delete", - "Space" - ], - "type": "string" - }, - "kind": { - "const": "press", - "type": "string" - }, - "locator": { - "oneOf": [ - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "css", - "type": "string" - }, - "value": { - "maxLength": 500, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "role", - "type": "string" - }, - "name": { - "maxLength": 300, - "minLength": 1, - "type": "string" - }, - "role": { - "maxLength": 100, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "kind", - "role" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "text", - "type": "string" - }, - "text": { - "maxLength": 500, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "kind", - "text" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "label", - "type": "string" - }, - "text": { - "maxLength": 500, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "kind", - "text" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "testId", - "type": "string" - }, - "value": { - "maxLength": 500, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - } - ] - } - }, - "required": [ - "kind", - "locator", - "key" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "select", - "type": "string" - }, - "locator": { - "oneOf": [ - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "css", - "type": "string" - }, - "value": { - "maxLength": 500, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "role", - "type": "string" - }, - "name": { - "maxLength": 300, - "minLength": 1, - "type": "string" - }, - "role": { - "maxLength": 100, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "kind", - "role" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "text", - "type": "string" - }, - "text": { - "maxLength": 500, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "kind", - "text" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "label", - "type": "string" - }, - "text": { - "maxLength": 500, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "kind", - "text" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "testId", - "type": "string" - }, - "value": { - "maxLength": 500, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - } - ] - }, - "value": { - "maxLength": 500, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "kind", - "locator", - "value" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "checked": { - "type": "boolean" - }, - "kind": { - "const": "check", - "type": "string" - }, - "locator": { - "oneOf": [ - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "css", - "type": "string" - }, - "value": { - "maxLength": 500, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "role", - "type": "string" - }, - "name": { - "maxLength": 300, - "minLength": 1, - "type": "string" - }, - "role": { - "maxLength": 100, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "kind", - "role" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "text", - "type": "string" - }, - "text": { - "maxLength": 500, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "kind", - "text" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "label", - "type": "string" - }, - "text": { - "maxLength": 500, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "kind", - "text" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "testId", - "type": "string" - }, - "value": { - "maxLength": 500, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - } - ] - } - }, - "required": [ - "kind", - "locator", - "checked" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "hover", - "type": "string" - }, - "locator": { - "oneOf": [ - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "css", - "type": "string" - }, - "value": { - "maxLength": 500, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "role", - "type": "string" - }, - "name": { - "maxLength": 300, - "minLength": 1, - "type": "string" - }, - "role": { - "maxLength": 100, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "kind", - "role" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "text", - "type": "string" - }, - "text": { - "maxLength": 500, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "kind", - "text" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "label", - "type": "string" - }, - "text": { - "maxLength": 500, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "kind", - "text" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "testId", - "type": "string" - }, - "value": { - "maxLength": 500, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - } - ] - } - }, - "required": [ - "kind", - "locator" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "scroll", - "type": "string" - }, - "locator": { - "oneOf": [ - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "css", - "type": "string" - }, - "value": { - "maxLength": 500, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "role", - "type": "string" - }, - "name": { - "maxLength": 300, - "minLength": 1, - "type": "string" - }, - "role": { - "maxLength": 100, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "kind", - "role" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "text", - "type": "string" - }, - "text": { - "maxLength": 500, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "kind", - "text" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "label", - "type": "string" - }, - "text": { - "maxLength": 500, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "kind", - "text" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "testId", - "type": "string" - }, - "value": { - "maxLength": 500, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - } - ] - } - }, - "required": [ - "kind", - "locator" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "expected": { - "anyOf": [ - { - "maxLength": 500, - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - }, - "kind": { - "const": "wait", - "type": "string" - }, - "locator": { - "oneOf": [ - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "css", - "type": "string" - }, - "value": { - "maxLength": 500, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "role", - "type": "string" - }, - "name": { - "maxLength": 300, - "minLength": 1, - "type": "string" - }, - "role": { - "maxLength": 100, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "kind", - "role" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "text", - "type": "string" - }, - "text": { - "maxLength": 500, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "kind", - "text" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "label", - "type": "string" - }, - "text": { - "maxLength": 500, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "kind", - "text" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "testId", - "type": "string" - }, - "value": { - "maxLength": 500, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "kind", - "value" - ], - "type": "object" - } - ] - }, - "property": { - "enum": [ - "count", - "visible", - "enabled", - "checked", - "text" - ], - "type": "string" - }, - "timeoutMs": { - "maximum": 30000, - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "kind", - "locator", - "property", - "expected" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "reload", - "type": "string" - } - }, - "required": [ - "kind" - ], - "type": "object" - } -] - added
Input schema / properties / action / oneOfAdded value: +[ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "navigate", + "type": "string" + }, + "url": { + "maxLength": 2560, + "type": "string" + } + }, + "required": [ + "kind", + "url" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "click", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + } + }, + "required": [ + "kind", + "locator" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "fill", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + }, + "value": { + "type": "string" + } + }, + "required": [ + "kind", + "locator", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 40, + "type": "string" + }, + "kind": { + "const": "press", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + } + }, + "required": [ + "kind", + "locator", + "key" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "select", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + }, + "value": { + "type": "string" + } + }, + "required": [ + "kind", + "locator", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "checked": { + "type": "boolean" + }, + "kind": { + "const": "check", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + } + }, + "required": [ + "kind", + "locator", + "checked" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "hover", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + } + }, + "required": [ + "kind", + "locator" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "scroll", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + } + }, + "required": [ + "kind", + "locator" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "expected": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "kind": { + "const": "wait", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + }, + "property": { + "enum": [ + "count", + "visible", + "enabled", + "checked", + "text" + ], + "type": "string" + }, + "timeoutMs": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + } + }, + "required": [ + "kind", + "locator", + "property", + "expected" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "reload", + "type": "string" + } + }, + "required": [ + "kind" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "allowSideEffects": { + "const": true, + "type": "boolean" + }, + "arguments": { + "additionalProperties": { + "$ref": "#/definitions/__schema0" + }, + "propertyNames": { + "maxLength": 100, + "type": "string" + }, + "type": "object" + }, + "kind": { + "const": "webmcp", + "type": "string" + }, + "name": { + "maxLength": 100, + "minLength": 1, + "type": "string" + }, + "origin": { + "format": "uri", + "maxLength": 2560, + "type": "string" + }, + "timeoutMs": { + "maximum": 30000, + "minimum": 1, + "type": "integer" + } + }, + "required": [ + "kind", + "origin", + "name", + "arguments", + "allowSideEffects" + ], + "type": "object" + } +] - removed
Output schema / definitions / __schema1Removed value: -{ - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - }, - { - "items": { - "$ref": "#/definitions/__schema1" - }, - "type": "array" - }, - { - "additionalProperties": { - "$ref": "#/definitions/__schema1" - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - } - ] -} - removed
Output schema / properties / data / allOfRemoved value: -[ - { - "$ref": "#/definitions/__schema0" - } -] - added
Output schema / properties / data / oneOfAdded value: +[ + { + "additionalProperties": false, + "properties": { + "kind": { + "enum": [ + "navigate", + "click", + "fill", + "press", + "select", + "check", + "hover", + "scroll", + "wait", + "reload" + ], + "type": "string" + }, + "schemaVersion": { + "const": 1, + "type": "number" + }, + "title": { + "maxLength": 300, + "type": "string" + }, + "url": { + "maxLength": 2560, + "type": "string" + } + }, + "required": [ + "schemaVersion", + "kind", + "url", + "title" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "webmcp", + "type": "string" + }, + "schemaVersion": { + "const": 1, + "type": "number" + }, + "title": { + "maxLength": 300, + "type": "string" + }, + "toolResult": { + "anyOf": [ + { + "maxLength": 8192, + "type": "string" + }, + { + "type": "null" + } + ] + }, + "url": { + "maxLength": 2560, + "type": "string" + } + }, + "required": [ + "schemaVersion", + "kind", + "url", + "title", + "toolResult" + ], + "type": "object" + } +] - changed
Output schema / properties / error / properties / details / allOfPrevious value: -[ - { - "$ref": "#/definitions/__schema1" - } -]New value: +[ + { + "$ref": "#/definitions/__schema0" + } +]
- Changed
web_debug_control5 fields changed- added
Output schema / properties / data / additionalPropertiesAdded value: +false - removed
Output schema / properties / data / allOfRemoved value: -[ - { - "$ref": "#/definitions/__schema0" - } -] - added
Output schema / properties / data / propertiesAdded value: +{ + "breakpoints": { + "items": { + "additionalProperties": false, + "properties": { + "column": { + "anyOf": [ + { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "id": { + "maxLength": 500, + "type": "string" + }, + "line": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "sourceUrl": { + "maxLength": 2560, + "type": "string" + } + }, + "required": [ + "id", + "sourceUrl", + "line", + "column" + ], + "type": "object" + }, + "maxItems": 100, + "type": "array" + }, + "callFrames": { + "items": { + "additionalProperties": false, + "properties": { + "column": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "functionName": { + "maxLength": 500, + "type": "string" + }, + "line": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "locals": { + "additionalProperties": { + "$ref": "#/definitions/__schema0" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "scopeNames": { + "items": { + "maxLength": 100, + "type": "string" + }, + "maxItems": 50, + "type": "array" + }, + "url": { + "maxLength": 2560, + "type": "string" + } + }, + "required": [ + "functionName", + "url", + "line", + "column", + "scopeNames", + "locals" + ], + "type": "object" + }, + "maxItems": 50, + "type": "array" + }, + "paused": { + "type": "boolean" + }, + "reason": { + "anyOf": [ + { + "maxLength": 500, + "type": "string" + }, + { + "type": "null" + } + ] + } +} - added
Output schema / properties / data / requiredAdded value: +[ + "paused", + "reason", + "callFrames", + "breakpoints" +] - added
Output schema / properties / data / typeAdded value: +"object"
- Changed
web_debug_evaluate5 fields changed- added
Output schema / properties / data / additionalPropertiesAdded value: +false - removed
Output schema / properties / data / allOfRemoved value: -[ - { - "$ref": "#/definitions/__schema0" - } -] - added
Output schema / properties / data / propertiesAdded value: +{ + "description": { + "anyOf": [ + { + "maxLength": 2000, + "type": "string" + }, + { + "type": "null" + } + ] + }, + "type": { + "anyOf": [ + { + "maxLength": 100, + "type": "string" + }, + { + "type": "null" + } + ] + }, + "value": { + "$ref": "#/definitions/__schema0" + } +} - added
Output schema / properties / data / requiredAdded value: +[ + "value", + "type", + "description" +] - added
Output schema / properties / data / typeAdded value: +"object"
- Changed
web_fix_verify27 fields changed- added
Output schema / definitions / __schema10Added value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/definitions/__schema10" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/definitions/__schema10" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] +} - added
Output schema / definitions / __schema11Added value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/definitions/__schema11" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/definitions/__schema11" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] +} - added
Output schema / definitions / __schema12Added value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/definitions/__schema12" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/definitions/__schema12" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] +} - added
Output schema / definitions / __schema13Added value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/definitions/__schema13" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/definitions/__schema13" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] +} - added
Output schema / definitions / __schema14Added value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/definitions/__schema14" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/definitions/__schema14" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] +} - added
Output schema / definitions / __schema15Added value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/definitions/__schema15" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/definitions/__schema15" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] +} - added
Output schema / definitions / __schema16Added value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/definitions/__schema16" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/definitions/__schema16" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] +} - added
Output schema / definitions / __schema17Added value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/definitions/__schema17" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/definitions/__schema17" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] +} - added
Output schema / definitions / __schema18Added value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/definitions/__schema18" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/definitions/__schema18" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] +} - added
Output schema / definitions / __schema19Added value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/definitions/__schema19" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/definitions/__schema19" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] +} - added
Output schema / definitions / __schema2Added value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/definitions/__schema2" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/definitions/__schema2" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] +} - added
Output schema / definitions / __schema20Added value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/definitions/__schema20" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/definitions/__schema20" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] +} - added
Output schema / definitions / __schema21Added value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/definitions/__schema21" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/definitions/__schema21" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] +} - added
Output schema / definitions / __schema22Added value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/definitions/__schema22" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/definitions/__schema22" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] +} - added
Output schema / definitions / __schema3Added value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/definitions/__schema3" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/definitions/__schema3" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] +} - added
Output schema / definitions / __schema4Added value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/definitions/__schema4" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/definitions/__schema4" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] +} - added
Output schema / definitions / __schema5Added value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/definitions/__schema5" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/definitions/__schema5" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] +} - added
Output schema / definitions / __schema6Added value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/definitions/__schema6" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/definitions/__schema6" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] +} - added
Output schema / definitions / __schema7Added value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/definitions/__schema7" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/definitions/__schema7" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] +} - added
Output schema / definitions / __schema8Added value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/definitions/__schema8" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/definitions/__schema8" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] +} - added
Output schema / definitions / __schema9Added value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/definitions/__schema9" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/definitions/__schema9" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] +} - added
Output schema / properties / data / additionalPropertiesAdded value: +false - removed
Output schema / properties / data / allOfRemoved value: -[ - { - "$ref": "#/definitions/__schema0" - } -] - added
Output schema / properties / data / propertiesAdded value: +{ + "baseline": { + "$ref": "#/definitions/__schema12" + }, + "budget": { + "$ref": "#/definitions/__schema15" + }, + "buildReference": { + "$ref": "#/definitions/__schema19" + }, + "cleanup": { + "$ref": "#/definitions/__schema16" + }, + "contractHash": { + "maxLength": 64, + "minLength": 64, + "type": "string" + }, + "environmentFingerprint": { + "additionalProperties": false, + "properties": { + "adapterMode": { + "anyOf": [ + { + "enum": [ + "launch", + "attach", + "webdriver" + ], + "type": "string" + }, + { + "type": "null" + } + ] + }, + "architecture": { + "maxLength": 100, + "type": "string" + }, + "authFixture": { + "enum": [ + "seeded-disposable", + "none" + ], + "type": "string" + }, + "browser": { + "anyOf": [ + { + "enum": [ + "chromium", + "safari" + ], + "type": "string" + }, + { + "type": "null" + } + ] + }, + "browserVersion": { + "anyOf": [ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } + ] + }, + "descriptor": { + "maxLength": 500, + "type": "string" + }, + "isolated": { + "type": "boolean" + }, + "nodeVersion": { + "maxLength": 100, + "type": "string" + }, + "origin": { + "maxLength": 2560, + "type": "string" + }, + "path": { + "maxLength": 2560, + "type": "string" + }, + "platform": { + "maxLength": 100, + "type": "string" + }, + "projectAmbiguous": { + "type": "boolean" + }, + "projectConfidence": { + "enum": [ + "high", + "medium", + "low", + "none" + ], + "type": "string" + }, + "projectFrameworks": { + "items": { + "enum": [ + "vanilla", + "react", + "angular", + "vue", + "vite", + "next" + ], + "type": "string" + }, + "maxItems": 6, + "type": "array" + }, + "projectRoot": { + "maxLength": 4096, + "type": "string" + }, + "remote": { + "type": "boolean" + }, + "runtimeCapabilityStates": { + "additionalProperties": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "runtimeTransport": { + "anyOf": [ + { + "enum": [ + "chromium-launch", + "chromium-cdp-attach", + "safari-webdriver" + ], + "type": "string" + }, + { + "type": "null" + } + ] + }, + "schemaVersion": { + "const": 4, + "type": "number" + }, + "targetId": { + "anyOf": [ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } + ] + }, + "tls": { + "enum": [ + "strict", + "allow-insecure-loopback" + ], + "type": "string" + }, + "viewport": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "height": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "width": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + } + }, + "required": [ + "width", + "height" + ], + "type": "object" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "schemaVersion", + "projectRoot", + "descriptor", + "projectFrameworks", + "projectConfidence", + "projectAmbiguous", + "origin", + "path", + "browser", + "browserVersion", + "adapterMode", + "targetId", + "remote", + "isolated", + "viewport", + "tls", + "authFixture", + "runtimeTransport", + "runtimeCapabilityStates", + "nodeVersion", + "platform", + "architecture" + ], + "type": "object" + }, + "escalations": { + "items": { + "maxLength": 500, + "type": "string" + }, + "maxItems": 100, + "type": "array" + }, + "evidence": { + "additionalProperties": false, + "properties": { + "baseline": { + "anyOf": [ + { + "$ref": "#/definitions/__schema17" + }, + { + "type": "null" + } + ] + }, + "postFix": { + "anyOf": [ + { + "$ref": "#/definitions/__schema18" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "baseline", + "postFix" + ], + "type": "object" + }, + "flaky": { + "type": "boolean" + }, + "isolation": { + "$ref": "#/definitions/__schema20" + }, + "level": { + "enum": [ + "quick", + "standard", + "strict" + ], + "type": "string" + }, + "observedRates": { + "$ref": "#/definitions/__schema14" + }, + "outcome": { + "enum": [ + "verified", + "failed", + "inconclusive" + ], + "type": "string" + }, + "persistence": { + "const": "in-memory", + "type": "string" + }, + "postFix": { + "$ref": "#/definitions/__schema13" + }, + "requestedLevel": { + "enum": [ + "quick", + "standard", + "strict" + ], + "type": "string" + }, + "scenario": { + "additionalProperties": false, + "properties": { + "acceptanceChecks": { + "items": { + "$ref": "#/definitions/__schema1" + }, + "maxItems": 64, + "type": "array" + }, + "actions": { + "items": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "navigate", + "type": "string" + }, + "url": { + "maxLength": 2560, + "type": "string" + } + }, + "required": [ + "kind", + "url" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "click", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + } + }, + "required": [ + "kind", + "locator" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "fill", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + }, + "value": { + "type": "string" + } + }, + "required": [ + "kind", + "locator", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 40, + "type": "string" + }, + "kind": { + "const": "press", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + } + }, + "required": [ + "kind", + "locator", + "key" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "select", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + }, + "value": { + "type": "string" + } + }, + "required": [ + "kind", + "locator", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "checked": { + "type": "boolean" + }, + "kind": { + "const": "check", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + } + }, + "required": [ + "kind", + "locator", + "checked" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "hover", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + } + }, + "required": [ + "kind", + "locator" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "scroll", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + } + }, + "required": [ + "kind", + "locator" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "expected": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "kind": { + "const": "wait", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + }, + "property": { + "enum": [ + "count", + "visible", + "enabled", + "checked", + "text" + ], + "type": "string" + }, + "timeoutMs": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + } + }, + "required": [ + "kind", + "locator", + "property", + "expected" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "reload", + "type": "string" + } + }, + "required": [ + "kind" + ], + "type": "object" + } + ] + }, + "maxItems": 100, + "type": "array" + }, + "authFixture": { + "enum": [ + "seeded-disposable", + "none" + ], + "type": "string" + }, + "baseline": { + "additionalProperties": false, + "properties": { + "attempts": { + "items": { + "$ref": "#/definitions/__schema8" + }, + "maxItems": 5, + "type": "array" + }, + "budget": { + "$ref": "#/definitions/__schema7" + }, + "evidence": { + "anyOf": [ + { + "$ref": "#/definitions/__schema10" + }, + { + "type": "null" + } + ] + }, + "flaky": { + "type": "boolean" + }, + "level": { + "enum": [ + "quick", + "standard", + "strict" + ], + "type": "string" + }, + "observedRate": { + "$ref": "#/definitions/__schema9" + }, + "status": { + "enum": [ + "reproduced", + "not_reproduced", + "inconclusive" + ], + "type": "string" + }, + "termination": { + "maxLength": 500, + "type": "string" + }, + "truncation": { + "allOf": [ + { + "$ref": "#/definitions/__schema11" + } + ] + }, + "viewportConsensus": { + "additionalProperties": { + "type": "string" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "warnings": { + "items": { + "maxLength": 500, + "type": "string" + }, + "maxItems": 100, + "type": "array" + } + }, + "required": [ + "status", + "level", + "flaky", + "budget", + "attempts", + "observedRate", + "evidence", + "warnings", + "termination" + ], + "type": "object" + }, + "buildReference": { + "$ref": "#/definitions/__schema6" + }, + "checkpoints": { + "items": { + "$ref": "#/definitions/__schema3" + }, + "maxItems": 16, + "type": "array" + }, + "contractHash": { + "maxLength": 64, + "minLength": 64, + "type": "string" + }, + "createdAt": { + "maxLength": 100, + "type": "string" + }, + "environmentFingerprint": { + "additionalProperties": false, + "properties": { + "adapterMode": { + "anyOf": [ + { + "enum": [ + "launch", + "attach", + "webdriver" + ], + "type": "string" + }, + { + "type": "null" + } + ] + }, + "architecture": { + "maxLength": 100, + "type": "string" + }, + "authFixture": { + "enum": [ + "seeded-disposable", + "none" + ], + "type": "string" + }, + "browser": { + "anyOf": [ + { + "enum": [ + "chromium", + "safari" + ], + "type": "string" + }, + { + "type": "null" + } + ] + }, + "browserVersion": { + "anyOf": [ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } + ] + }, + "descriptor": { + "maxLength": 500, + "type": "string" + }, + "isolated": { + "type": "boolean" + }, + "nodeVersion": { + "maxLength": 100, + "type": "string" + }, + "origin": { + "maxLength": 2560, + "type": "string" + }, + "path": { + "maxLength": 2560, + "type": "string" + }, + "platform": { + "maxLength": 100, + "type": "string" + }, + "projectAmbiguous": { + "type": "boolean" + }, + "projectConfidence": { + "enum": [ + "high", + "medium", + "low", + "none" + ], + "type": "string" + }, + "projectFrameworks": { + "items": { + "enum": [ + "vanilla", + "react", + "angular", + "vue", + "vite", + "next" + ], + "type": "string" + }, + "maxItems": 6, + "type": "array" + }, + "projectRoot": { + "maxLength": 4096, + "type": "string" + }, + "remote": { + "type": "boolean" + }, + "runtimeCapabilityStates": { + "additionalProperties": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "runtimeTransport": { + "anyOf": [ + { + "enum": [ + "chromium-launch", + "chromium-cdp-attach", + "safari-webdriver" + ], + "type": "string" + }, + { + "type": "null" + } + ] + }, + "schemaVersion": { + "const": 4, + "type": "number" + }, + "targetId": { + "anyOf": [ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } + ] + }, + "tls": { + "enum": [ + "strict", + "allow-insecure-loopback" + ], + "type": "string" + }, + "viewport": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "height": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "width": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + } + }, + "required": [ + "width", + "height" + ], + "type": "object" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "schemaVersion", + "projectRoot", + "descriptor", + "projectFrameworks", + "projectConfidence", + "projectAmbiguous", + "origin", + "path", + "browser", + "browserVersion", + "adapterMode", + "targetId", + "remote", + "isolated", + "viewport", + "tls", + "authFixture", + "runtimeTransport", + "runtimeCapabilityStates", + "nodeVersion", + "platform", + "architecture" + ], + "type": "object" + }, + "failureSignature": { + "items": { + "$ref": "#/definitions/__schema0" + }, + "maxItems": 64, + "type": "array" + }, + "failureViewports": { + "items": { + "maxLength": 40, + "type": "string" + }, + "maxItems": 4, + "type": "array" + }, + "id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "name": { + "maxLength": 200, + "type": "string" + }, + "persistence": { + "const": "in-memory", + "type": "string" + }, + "regressionChecks": { + "items": { + "$ref": "#/definitions/__schema2" + }, + "maxItems": 64, + "type": "array" + }, + "requestedLevel": { + "enum": [ + "quick", + "standard", + "strict" + ], + "type": "string" + }, + "risks": { + "$ref": "#/definitions/__schema4" + }, + "schemaVersion": { + "const": 6, + "type": "number" + }, + "serverStateReset": { + "additionalProperties": false, + "properties": { + "action": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "navigate", + "type": "string" + }, + "url": { + "maxLength": 2560, + "type": "string" + } + }, + "required": [ + "kind", + "url" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "click", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + } + }, + "required": [ + "kind", + "locator" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "fill", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + }, + "value": { + "type": "string" + } + }, + "required": [ + "kind", + "locator", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 40, + "type": "string" + }, + "kind": { + "const": "press", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + } + }, + "required": [ + "kind", + "locator", + "key" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "select", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + }, + "value": { + "type": "string" + } + }, + "required": [ + "kind", + "locator", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "checked": { + "type": "boolean" + }, + "kind": { + "const": "check", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + } + }, + "required": [ + "kind", + "locator", + "checked" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "hover", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + } + }, + "required": [ + "kind", + "locator" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "scroll", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + } + }, + "required": [ + "kind", + "locator" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "expected": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "kind": { + "const": "wait", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + }, + "property": { + "enum": [ + "count", + "visible", + "enabled", + "checked", + "text" + ], + "type": "string" + }, + "timeoutMs": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + } + }, + "required": [ + "kind", + "locator", + "property", + "expected" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "reload", + "type": "string" + } + }, + "required": [ + "kind" + ], + "type": "object" + } + ] + }, + "readyCheck": { + "allOf": [ + { + "$ref": "#/definitions/__schema5" + } + ] + } + }, + "type": "object" + }, + "sessionId": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "tls": { + "enum": [ + "strict", + "allow-insecure-loopback" + ], + "type": "string" + }, + "url": { + "maxLength": 2560, + "type": "string" + }, + "viewports": { + "items": { + "additionalProperties": false, + "properties": { + "height": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "name": { + "maxLength": 40, + "type": "string" + }, + "width": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + } + }, + "required": [ + "width", + "height", + "name" + ], + "type": "object" + }, + "maxItems": 4, + "type": "array" + } + }, + "required": [ + "schemaVersion", + "id", + "sessionId", + "name", + "url", + "actions", + "failureSignature", + "acceptanceChecks", + "regressionChecks", + "checkpoints", + "viewports", + "authFixture", + "tls", + "risks", + "requestedLevel", + "buildReference", + "environmentFingerprint", + "contractHash", + "persistence", + "createdAt", + "baseline" + ], + "type": "object" + }, + "schemaVersion": { + "const": 6, + "type": "number" + }, + "termination": { + "maxLength": 500, + "type": "string" + }, + "truncation": { + "$ref": "#/definitions/__schema21" + }, + "warnings": { + "items": { + "maxLength": 500, + "type": "string" + }, + "maxItems": 100, + "type": "array" + } +} - added
Output schema / properties / data / requiredAdded value: +[ + "schemaVersion", + "outcome", + "level", + "requestedLevel", + "escalations", + "flaky", + "scenario", + "baseline", + "postFix", + "observedRates", + "budget", + "cleanup", + "evidence", + "environmentFingerprint", + "contractHash", + "buildReference", + "isolation", + "persistence", + "warnings", + "termination", + "truncation" +] - added
Output schema / properties / data / typeAdded value: +"object" - changed
Output schema / properties / error / properties / details / allOfPrevious value: -[ - { - "$ref": "#/definitions/__schema1" - } -]New value: +[ + { + "$ref": "#/definitions/__schema22" + } +]
- Changed
web_issue_capture18 fields changed- added
Input schema / additionalPropertiesAdded value: +false - removed
Input schema / properties / captureScreenshotRemoved value: -{ - "default": true, - "type": "boolean" -} - added
Input schema / properties / viewAdded value: +{ + "default": { + "profile": "summary" + }, + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "profile": { + "const": "summary", + "type": "string" + } + }, + "required": [ + "profile" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "profile": { + "const": "full", + "type": "string" + } + }, + "required": [ + "profile" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "profile": { + "const": "include", + "type": "string" + }, + "surfaces": { + "items": { + "enum": [ + "dom", + "console", + "network", + "debugger", + "react", + "angular", + "vue", + "next", + "vite", + "accessibility", + "replay", + "screenshot", + "webmcp" + ], + "type": "string" + }, + "maxItems": 13, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "profile", + "surfaces" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "cursor": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "profile": { + "const": "delta", + "type": "string" + }, + "surfaces": { + "items": { + "enum": [ + "dom", + "console", + "network", + "debugger", + "react", + "angular", + "vue", + "next", + "vite", + "accessibility", + "replay", + "screenshot", + "webmcp" + ], + "type": "string" + }, + "maxItems": 13, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "profile", + "cursor" + ], + "type": "object" + } + ] +} - added
Output schema / definitions / __schema10Added value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/definitions/__schema10" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/definitions/__schema10" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] +} - added
Output schema / definitions / __schema11Added value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/definitions/__schema11" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/definitions/__schema11" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] +} - added
Output schema / definitions / __schema12Added value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/definitions/__schema12" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/definitions/__schema12" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] +} - added
Output schema / definitions / __schema13Added value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/definitions/__schema13" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/definitions/__schema13" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] +} - added
Output schema / definitions / __schema2Added value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/definitions/__schema2" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/definitions/__schema2" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] +} - added
Output schema / definitions / __schema3Added value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/definitions/__schema3" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/definitions/__schema3" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] +} - added
Output schema / definitions / __schema4Added value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/definitions/__schema4" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/definitions/__schema4" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] +} - added
Output schema / definitions / __schema5Added value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/definitions/__schema5" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/definitions/__schema5" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] +} - added
Output schema / definitions / __schema6Added value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/definitions/__schema6" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/definitions/__schema6" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] +} - added
Output schema / definitions / __schema7Added value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/definitions/__schema7" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/definitions/__schema7" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] +} - added
Output schema / definitions / __schema8Added value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/definitions/__schema8" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/definitions/__schema8" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] +} - added
Output schema / definitions / __schema9Added value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/definitions/__schema9" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/definitions/__schema9" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] +} - removed
Output schema / properties / data / allOfRemoved value: -[ - { - "$ref": "#/definitions/__schema0" - } -] - added
Output schema / properties / data / oneOfAdded value: +[ + { + "additionalProperties": false, + "properties": { + "capturedAt": { + "maxLength": 100, + "type": "string" + }, + "cursor": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "profile": { + "const": "summary", + "type": "string" + }, + "project": { + "additionalProperties": false, + "properties": { + "ambiguous": { + "type": "boolean" + }, + "confidence": { + "enum": [ + "high", + "medium", + "low", + "none" + ], + "type": "string" + }, + "frameworks": { + "items": { + "enum": [ + "vanilla", + "react", + "angular", + "vue", + "vite", + "next" + ], + "type": "string" + }, + "maxItems": 6, + "type": "array" + }, + "projectCapabilities": { + "additionalProperties": false, + "properties": { + "angular": { + "type": "boolean" + }, + "browserTarget": { + "type": "boolean" + }, + "next": { + "type": "boolean" + }, + "react": { + "type": "boolean" + }, + "serverRuntime": { + "type": "boolean" + }, + "vite": { + "type": "boolean" + }, + "vue": { + "type": "boolean" + } + }, + "required": [ + "browserTarget", + "react", + "angular", + "vue", + "vite", + "next", + "serverRuntime" + ], + "type": "object" + } + }, + "required": [ + "frameworks", + "confidence", + "ambiguous", + "projectCapabilities" + ], + "type": "object" + }, + "redaction": { + "additionalProperties": false, + "properties": { + "applied": { + "const": true, + "type": "boolean" + }, + "policy": { + "const": "default-sensitive-fields", + "type": "string" + } + }, + "required": [ + "applied", + "policy" + ], + "type": "object" + }, + "schemaVersion": { + "const": 5, + "type": "number" + }, + "session": { + "additionalProperties": false, + "properties": { + "id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "projectCapabilities": { + "additionalProperties": false, + "properties": { + "angular": { + "type": "boolean" + }, + "browserTarget": { + "type": "boolean" + }, + "next": { + "type": "boolean" + }, + "react": { + "type": "boolean" + }, + "serverRuntime": { + "type": "boolean" + }, + "vite": { + "type": "boolean" + }, + "vue": { + "type": "boolean" + } + }, + "required": [ + "browserTarget", + "react", + "angular", + "vue", + "vite", + "next", + "serverRuntime" + ], + "type": "object" + }, + "runtimeCapabilities": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "accessibility": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "actions": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "authSeeding": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "browser": { + "enum": [ + "chromium", + "safari" + ], + "type": "string" + }, + "console": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "dom": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "evaluation": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "javascriptDebugger": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "locators": { + "additionalProperties": false, + "properties": { + "css": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "semantic": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + } + }, + "required": [ + "css", + "semantic" + ], + "type": "object" + }, + "network": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "pageRuntimeEnrichment": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "schemaVersion": { + "const": 2, + "type": "number" + }, + "screenshots": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "tlsBypass": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "transport": { + "enum": [ + "chromium-launch", + "chromium-cdp-attach", + "safari-webdriver" + ], + "type": "string" + }, + "viewportMatrix": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "webmcp": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + } + }, + "required": [ + "schemaVersion", + "browser", + "transport", + "actions", + "locators", + "dom", + "console", + "network", + "screenshots", + "javascriptDebugger", + "evaluation", + "accessibility", + "pageRuntimeEnrichment", + "viewportMatrix", + "tlsBypass", + "authSeeding", + "webmcp" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "status": { + "enum": [ + "starting", + "ready", + "paused", + "failed", + "closed" + ], + "type": "string" + }, + "target": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "browser": { + "enum": [ + "chromium", + "safari" + ], + "type": "string" + }, + "isolated": { + "type": "boolean" + }, + "mode": { + "enum": [ + "launch", + "attach", + "webdriver" + ], + "type": "string" + }, + "remote": { + "type": "boolean" + }, + "schemaVersion": { + "const": 1, + "type": "number" + }, + "viewport": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "height": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "width": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + } + }, + "required": [ + "width", + "height" + ], + "type": "object" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "schemaVersion", + "browser", + "remote", + "viewport", + "isolated" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "url": { + "maxLength": 2560, + "type": "string" + } + }, + "required": [ + "id", + "url", + "status", + "target", + "projectCapabilities", + "runtimeCapabilities" + ], + "type": "object" + }, + "summary": { + "additionalProperties": false, + "properties": { + "bodyText": { + "maxLength": 1000, + "type": "string" + }, + "console": { + "additionalProperties": false, + "properties": { + "errors": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "latestErrors": { + "items": { + "additionalProperties": false, + "properties": { + "column": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "level": { + "enum": [ + "log", + "info", + "debug", + "warning", + "error", + "pageerror" + ], + "type": "string" + }, + "line": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "text": { + "maxLength": 2000, + "type": "string" + }, + "url": { + "maxLength": 2560, + "type": "string" + } + }, + "required": [ + "level", + "text" + ], + "type": "object" + }, + "maxItems": 3, + "type": "array" + }, + "total": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "warnings": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "total", + "errors", + "warnings", + "latestErrors" + ], + "type": "object" + }, + "debugger": { + "additionalProperties": false, + "properties": { + "breakpoints": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "callFrames": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "paused": { + "type": "boolean" + }, + "reason": { + "anyOf": [ + { + "maxLength": 500, + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "paused", + "reason", + "callFrames", + "breakpoints" + ], + "type": "object" + }, + "domElements": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "network": { + "additionalProperties": false, + "properties": { + "failed": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "latestFailures": { + "items": { + "additionalProperties": false, + "properties": { + "failure": { + "maxLength": 500, + "type": "string" + }, + "method": { + "maxLength": 50, + "type": "string" + }, + "nextActionId": { + "maxLength": 200, + "type": "string" + }, + "ok": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "requestId": { + "maxLength": 500, + "type": "string" + }, + "resourceType": { + "maxLength": 100, + "type": "string" + }, + "status": { + "anyOf": [ + { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "url": { + "maxLength": 2560, + "type": "string" + } + }, + "required": [ + "requestId", + "method", + "url", + "resourceType", + "status", + "ok" + ], + "type": "object" + }, + "maxItems": 3, + "type": "array" + }, + "pending": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "total": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "total", + "failed", + "pending", + "latestFailures" + ], + "type": "object" + }, + "observations": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "console": { + "$ref": "#/definitions/__schema2" + }, + "dom": { + "$ref": "#/definitions/__schema1" + }, + "url": { + "$ref": "#/definitions/__schema0" + } + }, + "required": [ + "url", + "dom", + "console" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "replay": { + "additionalProperties": false, + "properties": { + "frames": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "newestIndex": { + "anyOf": [ + { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "oldestIndex": { + "anyOf": [ + { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "restorable": { + "type": "boolean" + }, + "restoreBlockedReason": { + "anyOf": [ + { + "maxLength": 100, + "type": "string" + }, + { + "type": "null" + } + ] + }, + "truncated": { + "type": "boolean" + } + }, + "required": [ + "frames", + "truncated", + "oldestIndex", + "newestIndex", + "restorable", + "restoreBlockedReason" + ], + "type": "object" + }, + "runtimes": { + "additionalProperties": false, + "properties": { + "accessibility": { + "enum": [ + "present", + "not-detected", + "unavailable" + ], + "type": "string" + }, + "angular": { + "enum": [ + "present", + "not-detected", + "unavailable" + ], + "type": "string" + }, + "next": { + "enum": [ + "present", + "not-detected", + "unavailable" + ], + "type": "string" + }, + "react": { + "enum": [ + "present", + "not-detected", + "unavailable" + ], + "type": "string" + }, + "vite": { + "enum": [ + "present", + "not-detected", + "unavailable" + ], + "type": "string" + }, + "vue": { + "enum": [ + "present", + "not-detected", + "unavailable" + ], + "type": "string" + } + }, + "required": [ + "react", + "angular", + "vue", + "next", + "vite", + "accessibility" + ], + "type": "object" + }, + "title": { + "maxLength": 300, + "type": "string" + }, + "viewport": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "height": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "width": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + } + }, + "required": [ + "width", + "height" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "webmcp": { + "additionalProperties": false, + "properties": { + "callableTools": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + }, + "truncated": { + "type": "boolean" + } + }, + "required": [ + "state", + "callableTools", + "truncated" + ], + "type": "object" + } + }, + "required": [ + "title", + "viewport", + "bodyText", + "domElements", + "console", + "network", + "debugger", + "runtimes", + "replay", + "webmcp", + "observations" + ], + "type": "object" + }, + "truncation": { + "additionalProperties": false, + "properties": { + "applied": { + "type": "boolean" + }, + "omittedSurfaces": { + "items": { + "enum": [ + "dom", + "console", + "network", + "debugger", + "react", + "angular", + "vue", + "next", + "vite", + "accessibility", + "replay", + "screenshot", + "webmcp" + ], + "type": "string" + }, + "maxItems": 13, + "type": "array" + } + }, + "required": [ + "applied", + "omittedSurfaces" + ], + "type": "object" + }, + "warnings": { + "items": { + "maxLength": 500, + "type": "string" + }, + "maxItems": 10, + "type": "array" + } + }, + "required": [ + "schemaVersion", + "capturedAt", + "cursor", + "session", + "project", + "summary", + "redaction", + "warnings", + "truncation", + "profile" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "capturedAt": { + "maxLength": 100, + "type": "string" + }, + "cursor": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "details": { + "additionalProperties": false, + "properties": { + "accessibility": { + "anyOf": [ + { + "$ref": "#/definitions/__schema9" + }, + { + "type": "null" + } + ] + }, + "angular": { + "anyOf": [ + { + "$ref": "#/definitions/__schema5" + }, + { + "type": "null" + } + ] + }, + "console": { + "items": { + "additionalProperties": false, + "properties": { + "column": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "level": { + "enum": [ + "log", + "info", + "debug", + "warning", + "error", + "pageerror" + ], + "type": "string" + }, + "line": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "text": { + "maxLength": 2000, + "type": "string" + }, + "url": { + "maxLength": 2560, + "type": "string" + } + }, + "required": [ + "level", + "text" + ], + "type": "object" + }, + "maxItems": 100, + "type": "array" + }, + "debugger": { + "additionalProperties": false, + "properties": { + "breakpoints": { + "items": { + "additionalProperties": false, + "properties": { + "column": { + "anyOf": [ + { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "id": { + "maxLength": 500, + "type": "string" + }, + "line": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "sourceUrl": { + "maxLength": 2560, + "type": "string" + } + }, + "required": [ + "id", + "sourceUrl", + "line", + "column" + ], + "type": "object" + }, + "maxItems": 100, + "type": "array" + }, + "callFrames": { + "items": { + "additionalProperties": false, + "properties": { + "column": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "functionName": { + "maxLength": 500, + "type": "string" + }, + "line": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "locals": { + "additionalProperties": { + "$ref": "#/definitions/__schema3" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "scopeNames": { + "items": { + "maxLength": 100, + "type": "string" + }, + "maxItems": 50, + "type": "array" + }, + "url": { + "maxLength": 2560, + "type": "string" + } + }, + "required": [ + "functionName", + "url", + "line", + "column", + "scopeNames", + "locals" + ], + "type": "object" + }, + "maxItems": 50, + "type": "array" + }, + "paused": { + "type": "boolean" + }, + "reason": { + "anyOf": [ + { + "maxLength": 500, + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "paused", + "reason", + "callFrames", + "breakpoints" + ], + "type": "object" + }, + "dom": { + "additionalProperties": false, + "properties": { + "bodyText": { + "maxLength": 4000, + "type": "string" + }, + "elements": { + "items": { + "additionalProperties": false, + "properties": { + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "role": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "tag": { + "type": "string" + }, + "text": { + "type": "string" + } + }, + "required": [ + "tag", + "id", + "role", + "text" + ], + "type": "object" + }, + "maxItems": 50, + "type": "array" + } + }, + "required": [ + "bodyText", + "elements" + ], + "type": "object" + }, + "network": { + "items": { + "additionalProperties": false, + "properties": { + "failure": { + "maxLength": 500, + "type": "string" + }, + "method": { + "maxLength": 50, + "type": "string" + }, + "nextActionId": { + "maxLength": 200, + "type": "string" + }, + "ok": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "requestId": { + "maxLength": 500, + "type": "string" + }, + "resourceType": { + "maxLength": 100, + "type": "string" + }, + "status": { + "anyOf": [ + { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "url": { + "maxLength": 2560, + "type": "string" + } + }, + "required": [ + "requestId", + "method", + "url", + "resourceType", + "status", + "ok" + ], + "type": "object" + }, + "maxItems": 100, + "type": "array" + }, + "next": { + "anyOf": [ + { + "$ref": "#/definitions/__schema7" + }, + { + "type": "null" + } + ] + }, + "react": { + "anyOf": [ + { + "$ref": "#/definitions/__schema4" + }, + { + "type": "null" + } + ] + }, + "replay": { + "additionalProperties": false, + "properties": { + "enabled": { + "const": true, + "type": "boolean" + }, + "frames": { + "items": { + "additionalProperties": false, + "properties": { + "action": { + "anyOf": [ + { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "navigate", + "type": "string" + }, + "url": { + "maxLength": 2560, + "type": "string" + } + }, + "required": [ + "kind", + "url" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "click", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + } + }, + "required": [ + "kind", + "locator" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "fill", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + }, + "value": { + "type": "string" + } + }, + "required": [ + "kind", + "locator", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 40, + "type": "string" + }, + "kind": { + "const": "press", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + } + }, + "required": [ + "kind", + "locator", + "key" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "select", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + }, + "value": { + "type": "string" + } + }, + "required": [ + "kind", + "locator", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "checked": { + "type": "boolean" + }, + "kind": { + "const": "check", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + } + }, + "required": [ + "kind", + "locator", + "checked" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "hover", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + } + }, + "required": [ + "kind", + "locator" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "scroll", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + } + }, + "required": [ + "kind", + "locator" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "expected": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "kind": { + "const": "wait", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + }, + "property": { + "enum": [ + "count", + "visible", + "enabled", + "checked", + "text" + ], + "type": "string" + }, + "timeoutMs": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + } + }, + "required": [ + "kind", + "locator", + "property", + "expected" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "reload", + "type": "string" + } + }, + "required": [ + "kind" + ], + "type": "object" + } + ] + }, + { + "type": "null" + } + ] + }, + "angular": { + "anyOf": [ + { + "$ref": "#/definitions/__schema11" + }, + { + "type": "null" + } + ] + }, + "attemptId": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "capturedAt": { + "maxLength": 100, + "type": "string" + }, + "console": { + "items": { + "additionalProperties": false, + "properties": { + "column": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "level": { + "enum": [ + "log", + "info", + "debug", + "warning", + "error", + "pageerror" + ], + "type": "string" + }, + "line": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "text": { + "maxLength": 2000, + "type": "string" + }, + "url": { + "maxLength": 2560, + "type": "string" + } + }, + "required": [ + "level", + "text" + ], + "type": "object" + }, + "maxItems": 20, + "type": "array" + }, + "debugger": { + "additionalProperties": false, + "properties": { + "breakpoints": { + "items": { + "additionalProperties": false, + "properties": { + "column": { + "anyOf": [ + { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "id": { + "maxLength": 500, + "type": "string" + }, + "line": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "sourceUrl": { + "maxLength": 2560, + "type": "string" + } + }, + "required": [ + "id", + "sourceUrl", + "line", + "column" + ], + "type": "object" + }, + "maxItems": 100, + "type": "array" + }, + "callFrames": { + "items": { + "additionalProperties": false, + "properties": { + "column": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "functionName": { + "maxLength": 500, + "type": "string" + }, + "line": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "locals": { + "additionalProperties": { + "$ref": "#/definitions/__schema3" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "scopeNames": { + "items": { + "maxLength": 100, + "type": "string" + }, + "maxItems": 50, + "type": "array" + }, + "url": { + "maxLength": 2560, + "type": "string" + } + }, + "required": [ + "functionName", + "url", + "line", + "column", + "scopeNames", + "locals" + ], + "type": "object" + }, + "maxItems": 50, + "type": "array" + }, + "paused": { + "type": "boolean" + }, + "reason": { + "anyOf": [ + { + "maxLength": 500, + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "paused", + "reason", + "callFrames", + "breakpoints" + ], + "type": "object" + }, + "dom": { + "additionalProperties": false, + "properties": { + "bodyText": { + "maxLength": 4000, + "type": "string" + }, + "elements": { + "items": { + "additionalProperties": false, + "properties": { + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "role": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "tag": { + "type": "string" + }, + "text": { + "type": "string" + } + }, + "required": [ + "tag", + "id", + "role", + "text" + ], + "type": "object" + }, + "maxItems": 50, + "type": "array" + } + }, + "required": [ + "bodyText", + "elements" + ], + "type": "object" + }, + "index": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "network": { + "items": { + "additionalProperties": false, + "properties": { + "failure": { + "maxLength": 500, + "type": "string" + }, + "method": { + "maxLength": 50, + "type": "string" + }, + "nextActionId": { + "maxLength": 200, + "type": "string" + }, + "ok": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "requestId": { + "maxLength": 500, + "type": "string" + }, + "resourceType": { + "maxLength": 100, + "type": "string" + }, + "status": { + "anyOf": [ + { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "url": { + "maxLength": 2560, + "type": "string" + } + }, + "required": [ + "requestId", + "method", + "url", + "resourceType", + "status", + "ok" + ], + "type": "object" + }, + "maxItems": 20, + "type": "array" + }, + "react": { + "anyOf": [ + { + "$ref": "#/definitions/__schema10" + }, + { + "type": "null" + } + ] + }, + "title": { + "maxLength": 300, + "type": "string" + }, + "trigger": { + "enum": [ + "action", + "capture" + ], + "type": "string" + }, + "url": { + "maxLength": 2560, + "type": "string" + }, + "vue": { + "anyOf": [ + { + "$ref": "#/definitions/__schema12" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "index", + "attemptId", + "capturedAt", + "trigger", + "action", + "url", + "title", + "dom", + "console", + "network", + "debugger", + "react", + "angular", + "vue" + ], + "type": "object" + }, + "maxItems": 8, + "type": "array" + }, + "maxFrames": { + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" + }, + "restorable": { + "type": "boolean" + }, + "restoreBlockedReason": { + "anyOf": [ + { + "maxLength": 100, + "type": "string" + }, + { + "type": "null" + } + ] + }, + "truncated": { + "type": "boolean" + } + }, + "required": [ + "enabled", + "maxFrames", + "truncated", + "restorable", + "restoreBlockedReason", + "frames" + ], + "type": "object" + }, + "screenshot": { + "additionalProperties": false, + "properties": { + "status": { + "enum": [ + "captured", + "suppressed", + "unavailable" + ], + "type": "string" + } + }, + "required": [ + "status" + ], + "type": "object" + }, + "vite": { + "anyOf": [ + { + "$ref": "#/definitions/__schema8" + }, + { + "type": "null" + } + ] + }, + "vue": { + "anyOf": [ + { + "$ref": "#/definitions/__schema6" + }, + { + "type": "null" + } + ] + }, + "webmcp": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "observedAt": { + "maxLength": 100, + "type": "string" + }, + "provenance": { + "const": "webmcp-page-api", + "type": "string" + }, + "tools": { + "items": { + "additionalProperties": false, + "properties": { + "annotations": { + "additionalProperties": false, + "properties": { + "readOnlyHint": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "untrustedContentHint": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "readOnlyHint", + "untrustedContentHint" + ], + "type": "object" + }, + "description": { + "maxLength": 500, + "type": "string" + }, + "inputSchemaJson": { + "anyOf": [ + { + "maxLength": 8192, + "type": "string" + }, + { + "type": "null" + } + ] + }, + "name": { + "maxLength": 100, + "type": "string" + }, + "origin": { + "maxLength": 2048, + "type": "string" + }, + "title": { + "anyOf": [ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } + ] + }, + "untrusted": { + "const": true, + "type": "boolean" + } + }, + "required": [ + "origin", + "name", + "title", + "description", + "inputSchemaJson", + "annotations", + "untrusted" + ], + "type": "object" + }, + "maxItems": 16, + "type": "array" + }, + "total": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "truncated": { + "type": "boolean" + } + }, + "required": [ + "provenance", + "observedAt", + "total", + "truncated", + "tools" + ], + "type": "object" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + "profile": { + "const": "full", + "type": "string" + }, + "project": { + "additionalProperties": false, + "properties": { + "ambiguous": { + "type": "boolean" + }, + "confidence": { + "enum": [ + "high", + "medium", + "low", + "none" + ], + "type": "string" + }, + "frameworks": { + "items": { + "enum": [ + "vanilla", + "react", + "angular", + "vue", + "vite", + "next" + ], + "type": "string" + }, + "maxItems": 6, + "type": "array" + }, + "projectCapabilities": { + "additionalProperties": false, + "properties": { + "angular": { + "type": "boolean" + }, + "browserTarget": { + "type": "boolean" + }, + "next": { + "type": "boolean" + }, + "react": { + "type": "boolean" + }, + "serverRuntime": { + "type": "boolean" + }, + "vite": { + "type": "boolean" + }, + "vue": { + "type": "boolean" + } + }, + "required": [ + "browserTarget", + "react", + "angular", + "vue", + "vite", + "next", + "serverRuntime" + ], + "type": "object" + } + }, + "required": [ + "frameworks", + "confidence", + "ambiguous", + "projectCapabilities" + ], + "type": "object" + }, + "redaction": { + "additionalProperties": false, + "properties": { + "applied": { + "const": true, + "type": "boolean" + }, + "policy": { + "const": "default-sensitive-fields", + "type": "string" + } + }, + "required": [ + "applied", + "policy" + ], + "type": "object" + }, + "schemaVersion": { + "const": 5, + "type": "number" + }, + "session": { + "additionalProperties": false, + "properties": { + "id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "projectCapabilities": { + "additionalProperties": false, + "properties": { + "angular": { + "type": "boolean" + }, + "browserTarget": { + "type": "boolean" + }, + "next": { + "type": "boolean" + }, + "react": { + "type": "boolean" + }, + "serverRuntime": { + "type": "boolean" + }, + "vite": { + "type": "boolean" + }, + "vue": { + "type": "boolean" + } + }, + "required": [ + "browserTarget", + "react", + "angular", + "vue", + "vite", + "next", + "serverRuntime" + ], + "type": "object" + }, + "runtimeCapabilities": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "accessibility": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "actions": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "authSeeding": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "browser": { + "enum": [ + "chromium", + "safari" + ], + "type": "string" + }, + "console": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "dom": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "evaluation": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "javascriptDebugger": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "locators": { + "additionalProperties": false, + "properties": { + "css": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "semantic": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + } + }, + "required": [ + "css", + "semantic" + ], + "type": "object" + }, + "network": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "pageRuntimeEnrichment": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "schemaVersion": { + "const": 2, + "type": "number" + }, + "screenshots": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "tlsBypass": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "transport": { + "enum": [ + "chromium-launch", + "chromium-cdp-attach", + "safari-webdriver" + ], + "type": "string" + }, + "viewportMatrix": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "webmcp": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + } + }, + "required": [ + "schemaVersion", + "browser", + "transport", + "actions", + "locators", + "dom", + "console", + "network", + "screenshots", + "javascriptDebugger", + "evaluation", + "accessibility", + "pageRuntimeEnrichment", + "viewportMatrix", + "tlsBypass", + "authSeeding", + "webmcp" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "status": { + "enum": [ + "starting", + "ready", + "paused", + "failed", + "closed" + ], + "type": "string" + }, + "target": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "browser": { + "enum": [ + "chromium", + "safari" + ], + "type": "string" + }, + "isolated": { + "type": "boolean" + }, + "mode": { + "enum": [ + "launch", + "attach", + "webdriver" + ], + "type": "string" + }, + "remote": { + "type": "boolean" + }, + "schemaVersion": { + "const": 1, + "type": "number" + }, + "viewport": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "height": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "width": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + } + }, + "required": [ + "width", + "height" + ], + "type": "object" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "schemaVersion", + "browser", + "remote", + "viewport", + "isolated" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "url": { + "maxLength": 2560, + "type": "string" + } + }, + "required": [ + "id", + "url", + "status", + "target", + "projectCapabilities", + "runtimeCapabilities" + ], + "type": "object" + }, + "summary": { + "additionalProperties": false, + "properties": { + "bodyText": { + "maxLength": 1000, + "type": "string" + }, + "console": { + "additionalProperties": false, + "properties": { + "errors": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "latestErrors": { + "items": { + "additionalProperties": false, + "properties": { + "column": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "level": { + "enum": [ + "log", + "info", + "debug", + "warning", + "error", + "pageerror" + ], + "type": "string" + }, + "line": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "text": { + "maxLength": 2000, + "type": "string" + }, + "url": { + "maxLength": 2560, + "type": "string" + } + }, + "required": [ + "level", + "text" + ], + "type": "object" + }, + "maxItems": 3, + "type": "array" + }, + "total": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "warnings": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "total", + "errors", + "warnings", + "latestErrors" + ], + "type": "object" + }, + "debugger": { + "additionalProperties": false, + "properties": { + "breakpoints": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "callFrames": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "paused": { + "type": "boolean" + }, + "reason": { + "anyOf": [ + { + "maxLength": 500, + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "paused", + "reason", + "callFrames", + "breakpoints" + ], + "type": "object" + }, + "domElements": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "network": { + "additionalProperties": false, + "properties": { + "failed": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "latestFailures": { + "items": { + "additionalProperties": false, + "properties": { + "failure": { + "maxLength": 500, + "type": "string" + }, + "method": { + "maxLength": 50, + "type": "string" + }, + "nextActionId": { + "maxLength": 200, + "type": "string" + }, + "ok": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "requestId": { + "maxLength": 500, + "type": "string" + }, + "resourceType": { + "maxLength": 100, + "type": "string" + }, + "status": { + "anyOf": [ + { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "url": { + "maxLength": 2560, + "type": "string" + } + }, + "required": [ + "requestId", + "method", + "url", + "resourceType", + "status", + "ok" + ], + "type": "object" + }, + "maxItems": 3, + "type": "array" + }, + "pending": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "total": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "total", + "failed", + "pending", + "latestFailures" + ], + "type": "object" + }, + "observations": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "console": { + "$ref": "#/definitions/__schema2" + }, + "dom": { + "$ref": "#/definitions/__schema1" + }, + "url": { + "$ref": "#/definitions/__schema0" + } + }, + "required": [ + "url", + "dom", + "console" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "replay": { + "additionalProperties": false, + "properties": { + "frames": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "newestIndex": { + "anyOf": [ + { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "oldestIndex": { + "anyOf": [ + { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "restorable": { + "type": "boolean" + }, + "restoreBlockedReason": { + "anyOf": [ + { + "maxLength": 100, + "type": "string" + }, + { + "type": "null" + } + ] + }, + "truncated": { + "type": "boolean" + } + }, + "required": [ + "frames", + "truncated", + "oldestIndex", + "newestIndex", + "restorable", + "restoreBlockedReason" + ], + "type": "object" + }, + "runtimes": { + "additionalProperties": false, + "properties": { + "accessibility": { + "enum": [ + "present", + "not-detected", + "unavailable" + ], + "type": "string" + }, + "angular": { + "enum": [ + "present", + "not-detected", + "unavailable" + ], + "type": "string" + }, + "next": { + "enum": [ + "present", + "not-detected", + "unavailable" + ], + "type": "string" + }, + "react": { + "enum": [ + "present", + "not-detected", + "unavailable" + ], + "type": "string" + }, + "vite": { + "enum": [ + "present", + "not-detected", + "unavailable" + ], + "type": "string" + }, + "vue": { + "enum": [ + "present", + "not-detected", + "unavailable" + ], + "type": "string" + } + }, + "required": [ + "react", + "angular", + "vue", + "next", + "vite", + "accessibility" + ], + "type": "object" + }, + "title": { + "maxLength": 300, + "type": "string" + }, + "viewport": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "height": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "width": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + } + }, + "required": [ + "width", + "height" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "webmcp": { + "additionalProperties": false, + "properties": { + "callableTools": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + }, + "truncated": { + "type": "boolean" + } + }, + "required": [ + "state", + "callableTools", + "truncated" + ], + "type": "object" + } + }, + "required": [ + "title", + "viewport", + "bodyText", + "domElements", + "console", + "network", + "debugger", + "runtimes", + "replay", + "webmcp", + "observations" + ], + "type": "object" + }, + "truncation": { + "additionalProperties": false, + "properties": { + "applied": { + "type": "boolean" + }, + "omittedSurfaces": { + "items": { + "enum": [ + "dom", + "console", + "network", + "debugger", + "react", + "angular", + "vue", + "next", + "vite", + "accessibility", + "replay", + "screenshot", + "webmcp" + ], + "type": "string" + }, + "maxItems": 13, + "type": "array" + } + }, + "required": [ + "applied", + "omittedSurfaces" + ], + "type": "object" + }, + "warnings": { + "items": { + "maxLength": 500, + "type": "string" + }, + "maxItems": 10, + "type": "array" + } + }, + "required": [ + "schemaVersion", + "capturedAt", + "cursor", + "session", + "project", + "summary", + "redaction", + "warnings", + "truncation", + "profile", + "details" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "capturedAt": { + "maxLength": 100, + "type": "string" + }, + "cursor": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "details": { + "additionalProperties": false, + "properties": { + "accessibility": { + "anyOf": [ + { + "$ref": "#/definitions/__schema9" + }, + { + "type": "null" + } + ] + }, + "angular": { + "anyOf": [ + { + "$ref": "#/definitions/__schema5" + }, + { + "type": "null" + } + ] + }, + "console": { + "items": { + "additionalProperties": false, + "properties": { + "column": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "level": { + "enum": [ + "log", + "info", + "debug", + "warning", + "error", + "pageerror" + ], + "type": "string" + }, + "line": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "text": { + "maxLength": 2000, + "type": "string" + }, + "url": { + "maxLength": 2560, + "type": "string" + } + }, + "required": [ + "level", + "text" + ], + "type": "object" + }, + "maxItems": 100, + "type": "array" + }, + "debugger": { + "additionalProperties": false, + "properties": { + "breakpoints": { + "items": { + "additionalProperties": false, + "properties": { + "column": { + "anyOf": [ + { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "id": { + "maxLength": 500, + "type": "string" + }, + "line": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "sourceUrl": { + "maxLength": 2560, + "type": "string" + } + }, + "required": [ + "id", + "sourceUrl", + "line", + "column" + ], + "type": "object" + }, + "maxItems": 100, + "type": "array" + }, + "callFrames": { + "items": { + "additionalProperties": false, + "properties": { + "column": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "functionName": { + "maxLength": 500, + "type": "string" + }, + "line": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "locals": { + "additionalProperties": { + "$ref": "#/definitions/__schema3" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "scopeNames": { + "items": { + "maxLength": 100, + "type": "string" + }, + "maxItems": 50, + "type": "array" + }, + "url": { + "maxLength": 2560, + "type": "string" + } + }, + "required": [ + "functionName", + "url", + "line", + "column", + "scopeNames", + "locals" + ], + "type": "object" + }, + "maxItems": 50, + "type": "array" + }, + "paused": { + "type": "boolean" + }, + "reason": { + "anyOf": [ + { + "maxLength": 500, + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "paused", + "reason", + "callFrames", + "breakpoints" + ], + "type": "object" + }, + "dom": { + "additionalProperties": false, + "properties": { + "bodyText": { + "maxLength": 4000, + "type": "string" + }, + "elements": { + "items": { + "additionalProperties": false, + "properties": { + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "role": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "tag": { + "type": "string" + }, + "text": { + "type": "string" + } + }, + "required": [ + "tag", + "id", + "role", + "text" + ], + "type": "object" + }, + "maxItems": 50, + "type": "array" + } + }, + "required": [ + "bodyText", + "elements" + ], + "type": "object" + }, + "network": { + "items": { + "additionalProperties": false, + "properties": { + "failure": { + "maxLength": 500, + "type": "string" + }, + "method": { + "maxLength": 50, + "type": "string" + }, + "nextActionId": { + "maxLength": 200, + "type": "string" + }, + "ok": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "requestId": { + "maxLength": 500, + "type": "string" + }, + "resourceType": { + "maxLength": 100, + "type": "string" + }, + "status": { + "anyOf": [ + { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "url": { + "maxLength": 2560, + "type": "string" + } + }, + "required": [ + "requestId", + "method", + "url", + "resourceType", + "status", + "ok" + ], + "type": "object" + }, + "maxItems": 100, + "type": "array" + }, + "next": { + "anyOf": [ + { + "$ref": "#/definitions/__schema7" + }, + { + "type": "null" + } + ] + }, + "react": { + "anyOf": [ + { + "$ref": "#/definitions/__schema4" + }, + { + "type": "null" + } + ] + }, + "replay": { + "additionalProperties": false, + "properties": { + "enabled": { + "const": true, + "type": "boolean" + }, + "frames": { + "items": { + "additionalProperties": false, + "properties": { + "action": { + "anyOf": [ + { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "navigate", + "type": "string" + }, + "url": { + "maxLength": 2560, + "type": "string" + } + }, + "required": [ + "kind", + "url" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "click", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + } + }, + "required": [ + "kind", + "locator" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "fill", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + }, + "value": { + "type": "string" + } + }, + "required": [ + "kind", + "locator", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 40, + "type": "string" + }, + "kind": { + "const": "press", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + } + }, + "required": [ + "kind", + "locator", + "key" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "select", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + }, + "value": { + "type": "string" + } + }, + "required": [ + "kind", + "locator", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "checked": { + "type": "boolean" + }, + "kind": { + "const": "check", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + } + }, + "required": [ + "kind", + "locator", + "checked" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "hover", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + } + }, + "required": [ + "kind", + "locator" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "scroll", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + } + }, + "required": [ + "kind", + "locator" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "expected": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "kind": { + "const": "wait", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + }, + "property": { + "enum": [ + "count", + "visible", + "enabled", + "checked", + "text" + ], + "type": "string" + }, + "timeoutMs": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + } + }, + "required": [ + "kind", + "locator", + "property", + "expected" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "reload", + "type": "string" + } + }, + "required": [ + "kind" + ], + "type": "object" + } + ] + }, + { + "type": "null" + } + ] + }, + "angular": { + "anyOf": [ + { + "$ref": "#/definitions/__schema11" + }, + { + "type": "null" + } + ] + }, + "attemptId": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "capturedAt": { + "maxLength": 100, + "type": "string" + }, + "console": { + "items": { + "additionalProperties": false, + "properties": { + "column": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "level": { + "enum": [ + "log", + "info", + "debug", + "warning", + "error", + "pageerror" + ], + "type": "string" + }, + "line": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "text": { + "maxLength": 2000, + "type": "string" + }, + "url": { + "maxLength": 2560, + "type": "string" + } + }, + "required": [ + "level", + "text" + ], + "type": "object" + }, + "maxItems": 20, + "type": "array" + }, + "debugger": { + "additionalProperties": false, + "properties": { + "breakpoints": { + "items": { + "additionalProperties": false, + "properties": { + "column": { + "anyOf": [ + { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "id": { + "maxLength": 500, + "type": "string" + }, + "line": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "sourceUrl": { + "maxLength": 2560, + "type": "string" + } + }, + "required": [ + "id", + "sourceUrl", + "line", + "column" + ], + "type": "object" + }, + "maxItems": 100, + "type": "array" + }, + "callFrames": { + "items": { + "additionalProperties": false, + "properties": { + "column": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "functionName": { + "maxLength": 500, + "type": "string" + }, + "line": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "locals": { + "additionalProperties": { + "$ref": "#/definitions/__schema3" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "scopeNames": { + "items": { + "maxLength": 100, + "type": "string" + }, + "maxItems": 50, + "type": "array" + }, + "url": { + "maxLength": 2560, + "type": "string" + } + }, + "required": [ + "functionName", + "url", + "line", + "column", + "scopeNames", + "locals" + ], + "type": "object" + }, + "maxItems": 50, + "type": "array" + }, + "paused": { + "type": "boolean" + }, + "reason": { + "anyOf": [ + { + "maxLength": 500, + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "paused", + "reason", + "callFrames", + "breakpoints" + ], + "type": "object" + }, + "dom": { + "additionalProperties": false, + "properties": { + "bodyText": { + "maxLength": 4000, + "type": "string" + }, + "elements": { + "items": { + "additionalProperties": false, + "properties": { + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "role": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "tag": { + "type": "string" + }, + "text": { + "type": "string" + } + }, + "required": [ + "tag", + "id", + "role", + "text" + ], + "type": "object" + }, + "maxItems": 50, + "type": "array" + } + }, + "required": [ + "bodyText", + "elements" + ], + "type": "object" + }, + "index": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "network": { + "items": { + "additionalProperties": false, + "properties": { + "failure": { + "maxLength": 500, + "type": "string" + }, + "method": { + "maxLength": 50, + "type": "string" + }, + "nextActionId": { + "maxLength": 200, + "type": "string" + }, + "ok": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "requestId": { + "maxLength": 500, + "type": "string" + }, + "resourceType": { + "maxLength": 100, + "type": "string" + }, + "status": { + "anyOf": [ + { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "url": { + "maxLength": 2560, + "type": "string" + } + }, + "required": [ + "requestId", + "method", + "url", + "resourceType", + "status", + "ok" + ], + "type": "object" + }, + "maxItems": 20, + "type": "array" + }, + "react": { + "anyOf": [ + { + "$ref": "#/definitions/__schema10" + }, + { + "type": "null" + } + ] + }, + "title": { + "maxLength": 300, + "type": "string" + }, + "trigger": { + "enum": [ + "action", + "capture" + ], + "type": "string" + }, + "url": { + "maxLength": 2560, + "type": "string" + }, + "vue": { + "anyOf": [ + { + "$ref": "#/definitions/__schema12" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "index", + "attemptId", + "capturedAt", + "trigger", + "action", + "url", + "title", + "dom", + "console", + "network", + "debugger", + "react", + "angular", + "vue" + ], + "type": "object" + }, + "maxItems": 8, + "type": "array" + }, + "maxFrames": { + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" + }, + "restorable": { + "type": "boolean" + }, + "restoreBlockedReason": { + "anyOf": [ + { + "maxLength": 100, + "type": "string" + }, + { + "type": "null" + } + ] + }, + "truncated": { + "type": "boolean" + } + }, + "required": [ + "enabled", + "maxFrames", + "truncated", + "restorable", + "restoreBlockedReason", + "frames" + ], + "type": "object" + }, + "screenshot": { + "additionalProperties": false, + "properties": { + "status": { + "enum": [ + "captured", + "suppressed", + "unavailable" + ], + "type": "string" + } + }, + "required": [ + "status" + ], + "type": "object" + }, + "vite": { + "anyOf": [ + { + "$ref": "#/definitions/__schema8" + }, + { + "type": "null" + } + ] + }, + "vue": { + "anyOf": [ + { + "$ref": "#/definitions/__schema6" + }, + { + "type": "null" + } + ] + }, + "webmcp": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "observedAt": { + "maxLength": 100, + "type": "string" + }, + "provenance": { + "const": "webmcp-page-api", + "type": "string" + }, + "tools": { + "items": { + "additionalProperties": false, + "properties": { + "annotations": { + "additionalProperties": false, + "properties": { + "readOnlyHint": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "untrustedContentHint": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "readOnlyHint", + "untrustedContentHint" + ], + "type": "object" + }, + "description": { + "maxLength": 500, + "type": "string" + }, + "inputSchemaJson": { + "anyOf": [ + { + "maxLength": 8192, + "type": "string" + }, + { + "type": "null" + } + ] + }, + "name": { + "maxLength": 100, + "type": "string" + }, + "origin": { + "maxLength": 2048, + "type": "string" + }, + "title": { + "anyOf": [ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } + ] + }, + "untrusted": { + "const": true, + "type": "boolean" + } + }, + "required": [ + "origin", + "name", + "title", + "description", + "inputSchemaJson", + "annotations", + "untrusted" + ], + "type": "object" + }, + "maxItems": 16, + "type": "array" + }, + "total": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "truncated": { + "type": "boolean" + } + }, + "required": [ + "provenance", + "observedAt", + "total", + "truncated", + "tools" + ], + "type": "object" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + "includedSurfaces": { + "items": { + "enum": [ + "dom", + "console", + "network", + "debugger", + "react", + "angular", + "vue", + "next", + "vite", + "accessibility", + "replay", + "screenshot", + "webmcp" + ], + "type": "string" + }, + "maxItems": 13, + "minItems": 1, + "type": "array" + }, + "profile": { + "const": "include", + "type": "string" + }, + "project": { + "additionalProperties": false, + "properties": { + "ambiguous": { + "type": "boolean" + }, + "confidence": { + "enum": [ + "high", + "medium", + "low", + "none" + ], + "type": "string" + }, + "frameworks": { + "items": { + "enum": [ + "vanilla", + "react", + "angular", + "vue", + "vite", + "next" + ], + "type": "string" + }, + "maxItems": 6, + "type": "array" + }, + "projectCapabilities": { + "additionalProperties": false, + "properties": { + "angular": { + "type": "boolean" + }, + "browserTarget": { + "type": "boolean" + }, + "next": { + "type": "boolean" + }, + "react": { + "type": "boolean" + }, + "serverRuntime": { + "type": "boolean" + }, + "vite": { + "type": "boolean" + }, + "vue": { + "type": "boolean" + } + }, + "required": [ + "browserTarget", + "react", + "angular", + "vue", + "vite", + "next", + "serverRuntime" + ], + "type": "object" + } + }, + "required": [ + "frameworks", + "confidence", + "ambiguous", + "projectCapabilities" + ], + "type": "object" + }, + "redaction": { + "additionalProperties": false, + "properties": { + "applied": { + "const": true, + "type": "boolean" + }, + "policy": { + "const": "default-sensitive-fields", + "type": "string" + } + }, + "required": [ + "applied", + "policy" + ], + "type": "object" + }, + "schemaVersion": { + "const": 5, + "type": "number" + }, + "session": { + "additionalProperties": false, + "properties": { + "id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "projectCapabilities": { + "additionalProperties": false, + "properties": { + "angular": { + "type": "boolean" + }, + "browserTarget": { + "type": "boolean" + }, + "next": { + "type": "boolean" + }, + "react": { + "type": "boolean" + }, + "serverRuntime": { + "type": "boolean" + }, + "vite": { + "type": "boolean" + }, + "vue": { + "type": "boolean" + } + }, + "required": [ + "browserTarget", + "react", + "angular", + "vue", + "vite", + "next", + "serverRuntime" + ], + "type": "object" + }, + "runtimeCapabilities": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "accessibility": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "actions": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "authSeeding": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "browser": { + "enum": [ + "chromium", + "safari" + ], + "type": "string" + }, + "console": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "dom": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "evaluation": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "javascriptDebugger": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "locators": { + "additionalProperties": false, + "properties": { + "css": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "semantic": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + } + }, + "required": [ + "css", + "semantic" + ], + "type": "object" + }, + "network": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "pageRuntimeEnrichment": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "schemaVersion": { + "const": 2, + "type": "number" + }, + "screenshots": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "tlsBypass": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "transport": { + "enum": [ + "chromium-launch", + "chromium-cdp-attach", + "safari-webdriver" + ], + "type": "string" + }, + "viewportMatrix": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "webmcp": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + } + }, + "required": [ + "schemaVersion", + "browser", + "transport", + "actions", + "locators", + "dom", + "console", + "network", + "screenshots", + "javascriptDebugger", + "evaluation", + "accessibility", + "pageRuntimeEnrichment", + "viewportMatrix", + "tlsBypass", + "authSeeding", + "webmcp" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "status": { + "enum": [ + "starting", + "ready", + "paused", + "failed", + "closed" + ], + "type": "string" + }, + "target": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "browser": { + "enum": [ + "chromium", + "safari" + ], + "type": "string" + }, + "isolated": { + "type": "boolean" + }, + "mode": { + "enum": [ + "launch", + "attach", + "webdriver" + ], + "type": "string" + }, + "remote": { + "type": "boolean" + }, + "schemaVersion": { + "const": 1, + "type": "number" + }, + "viewport": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "height": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "width": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + } + }, + "required": [ + "width", + "height" + ], + "type": "object" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "schemaVersion", + "browser", + "remote", + "viewport", + "isolated" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "url": { + "maxLength": 2560, + "type": "string" + } + }, + "required": [ + "id", + "url", + "status", + "target", + "projectCapabilities", + "runtimeCapabilities" + ], + "type": "object" + }, + "summary": { + "additionalProperties": false, + "properties": { + "bodyText": { + "maxLength": 1000, + "type": "string" + }, + "console": { + "additionalProperties": false, + "properties": { + "errors": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "latestErrors": { + "items": { + "additionalProperties": false, + "properties": { + "column": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "level": { + "enum": [ + "log", + "info", + "debug", + "warning", + "error", + "pageerror" + ], + "type": "string" + }, + "line": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "text": { + "maxLength": 2000, + "type": "string" + }, + "url": { + "maxLength": 2560, + "type": "string" + } + }, + "required": [ + "level", + "text" + ], + "type": "object" + }, + "maxItems": 3, + "type": "array" + }, + "total": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "warnings": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "total", + "errors", + "warnings", + "latestErrors" + ], + "type": "object" + }, + "debugger": { + "additionalProperties": false, + "properties": { + "breakpoints": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "callFrames": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "paused": { + "type": "boolean" + }, + "reason": { + "anyOf": [ + { + "maxLength": 500, + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "paused", + "reason", + "callFrames", + "breakpoints" + ], + "type": "object" + }, + "domElements": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "network": { + "additionalProperties": false, + "properties": { + "failed": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "latestFailures": { + "items": { + "additionalProperties": false, + "properties": { + "failure": { + "maxLength": 500, + "type": "string" + }, + "method": { + "maxLength": 50, + "type": "string" + }, + "nextActionId": { + "maxLength": 200, + "type": "string" + }, + "ok": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "requestId": { + "maxLength": 500, + "type": "string" + }, + "resourceType": { + "maxLength": 100, + "type": "string" + }, + "status": { + "anyOf": [ + { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "url": { + "maxLength": 2560, + "type": "string" + } + }, + "required": [ + "requestId", + "method", + "url", + "resourceType", + "status", + "ok" + ], + "type": "object" + }, + "maxItems": 3, + "type": "array" + }, + "pending": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "total": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "total", + "failed", + "pending", + "latestFailures" + ], + "type": "object" + }, + "observations": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "console": { + "$ref": "#/definitions/__schema2" + }, + "dom": { + "$ref": "#/definitions/__schema1" + }, + "url": { + "$ref": "#/definitions/__schema0" + } + }, + "required": [ + "url", + "dom", + "console" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "replay": { + "additionalProperties": false, + "properties": { + "frames": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "newestIndex": { + "anyOf": [ + { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "oldestIndex": { + "anyOf": [ + { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "restorable": { + "type": "boolean" + }, + "restoreBlockedReason": { + "anyOf": [ + { + "maxLength": 100, + "type": "string" + }, + { + "type": "null" + } + ] + }, + "truncated": { + "type": "boolean" + } + }, + "required": [ + "frames", + "truncated", + "oldestIndex", + "newestIndex", + "restorable", + "restoreBlockedReason" + ], + "type": "object" + }, + "runtimes": { + "additionalProperties": false, + "properties": { + "accessibility": { + "enum": [ + "present", + "not-detected", + "unavailable" + ], + "type": "string" + }, + "angular": { + "enum": [ + "present", + "not-detected", + "unavailable" + ], + "type": "string" + }, + "next": { + "enum": [ + "present", + "not-detected", + "unavailable" + ], + "type": "string" + }, + "react": { + "enum": [ + "present", + "not-detected", + "unavailable" + ], + "type": "string" + }, + "vite": { + "enum": [ + "present", + "not-detected", + "unavailable" + ], + "type": "string" + }, + "vue": { + "enum": [ + "present", + "not-detected", + "unavailable" + ], + "type": "string" + } + }, + "required": [ + "react", + "angular", + "vue", + "next", + "vite", + "accessibility" + ], + "type": "object" + }, + "title": { + "maxLength": 300, + "type": "string" + }, + "viewport": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "height": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "width": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + } + }, + "required": [ + "width", + "height" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "webmcp": { + "additionalProperties": false, + "properties": { + "callableTools": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + }, + "truncated": { + "type": "boolean" + } + }, + "required": [ + "state", + "callableTools", + "truncated" + ], + "type": "object" + } + }, + "required": [ + "title", + "viewport", + "bodyText", + "domElements", + "console", + "network", + "debugger", + "runtimes", + "replay", + "webmcp", + "observations" + ], + "type": "object" + }, + "truncation": { + "additionalProperties": false, + "properties": { + "applied": { + "type": "boolean" + }, + "omittedSurfaces": { + "items": { + "enum": [ + "dom", + "console", + "network", + "debugger", + "react", + "angular", + "vue", + "next", + "vite", + "accessibility", + "replay", + "screenshot", + "webmcp" + ], + "type": "string" + }, + "maxItems": 13, + "type": "array" + } + }, + "required": [ + "applied", + "omittedSurfaces" + ], + "type": "object" + }, + "warnings": { + "items": { + "maxLength": 500, + "type": "string" + }, + "maxItems": 10, + "type": "array" + } + }, + "required": [ + "schemaVersion", + "capturedAt", + "cursor", + "session", + "project", + "summary", + "redaction", + "warnings", + "truncation", + "profile", + "includedSurfaces", + "details" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "capturedAt": { + "maxLength": 100, + "type": "string" + }, + "changedSurfaces": { + "items": { + "enum": [ + "dom", + "console", + "network", + "debugger", + "react", + "angular", + "vue", + "next", + "vite", + "accessibility", + "replay", + "screenshot", + "webmcp" + ], + "type": "string" + }, + "maxItems": 13, + "type": "array" + }, + "cursor": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "details": { + "additionalProperties": false, + "properties": { + "accessibility": { + "anyOf": [ + { + "$ref": "#/definitions/__schema9" + }, + { + "type": "null" + } + ] + }, + "angular": { + "anyOf": [ + { + "$ref": "#/definitions/__schema5" + }, + { + "type": "null" + } + ] + }, + "console": { + "items": { + "additionalProperties": false, + "properties": { + "column": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "level": { + "enum": [ + "log", + "info", + "debug", + "warning", + "error", + "pageerror" + ], + "type": "string" + }, + "line": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "text": { + "maxLength": 2000, + "type": "string" + }, + "url": { + "maxLength": 2560, + "type": "string" + } + }, + "required": [ + "level", + "text" + ], + "type": "object" + }, + "maxItems": 100, + "type": "array" + }, + "debugger": { + "additionalProperties": false, + "properties": { + "breakpoints": { + "items": { + "additionalProperties": false, + "properties": { + "column": { + "anyOf": [ + { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "id": { + "maxLength": 500, + "type": "string" + }, + "line": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "sourceUrl": { + "maxLength": 2560, + "type": "string" + } + }, + "required": [ + "id", + "sourceUrl", + "line", + "column" + ], + "type": "object" + }, + "maxItems": 100, + "type": "array" + }, + "callFrames": { + "items": { + "additionalProperties": false, + "properties": { + "column": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "functionName": { + "maxLength": 500, + "type": "string" + }, + "line": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "locals": { + "additionalProperties": { + "$ref": "#/definitions/__schema3" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "scopeNames": { + "items": { + "maxLength": 100, + "type": "string" + }, + "maxItems": 50, + "type": "array" + }, + "url": { + "maxLength": 2560, + "type": "string" + } + }, + "required": [ + "functionName", + "url", + "line", + "column", + "scopeNames", + "locals" + ], + "type": "object" + }, + "maxItems": 50, + "type": "array" + }, + "paused": { + "type": "boolean" + }, + "reason": { + "anyOf": [ + { + "maxLength": 500, + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "paused", + "reason", + "callFrames", + "breakpoints" + ], + "type": "object" + }, + "dom": { + "additionalProperties": false, + "properties": { + "bodyText": { + "maxLength": 4000, + "type": "string" + }, + "elements": { + "items": { + "additionalProperties": false, + "properties": { + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "role": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "tag": { + "type": "string" + }, + "text": { + "type": "string" + } + }, + "required": [ + "tag", + "id", + "role", + "text" + ], + "type": "object" + }, + "maxItems": 50, + "type": "array" + } + }, + "required": [ + "bodyText", + "elements" + ], + "type": "object" + }, + "network": { + "items": { + "additionalProperties": false, + "properties": { + "failure": { + "maxLength": 500, + "type": "string" + }, + "method": { + "maxLength": 50, + "type": "string" + }, + "nextActionId": { + "maxLength": 200, + "type": "string" + }, + "ok": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "requestId": { + "maxLength": 500, + "type": "string" + }, + "resourceType": { + "maxLength": 100, + "type": "string" + }, + "status": { + "anyOf": [ + { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "url": { + "maxLength": 2560, + "type": "string" + } + }, + "required": [ + "requestId", + "method", + "url", + "resourceType", + "status", + "ok" + ], + "type": "object" + }, + "maxItems": 100, + "type": "array" + }, + "next": { + "anyOf": [ + { + "$ref": "#/definitions/__schema7" + }, + { + "type": "null" + } + ] + }, + "react": { + "anyOf": [ + { + "$ref": "#/definitions/__schema4" + }, + { + "type": "null" + } + ] + }, + "replay": { + "additionalProperties": false, + "properties": { + "enabled": { + "const": true, + "type": "boolean" + }, + "frames": { + "items": { + "additionalProperties": false, + "properties": { + "action": { + "anyOf": [ + { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "navigate", + "type": "string" + }, + "url": { + "maxLength": 2560, + "type": "string" + } + }, + "required": [ + "kind", + "url" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "click", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + } + }, + "required": [ + "kind", + "locator" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "fill", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + }, + "value": { + "type": "string" + } + }, + "required": [ + "kind", + "locator", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 40, + "type": "string" + }, + "kind": { + "const": "press", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + } + }, + "required": [ + "kind", + "locator", + "key" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "select", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + }, + "value": { + "type": "string" + } + }, + "required": [ + "kind", + "locator", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "checked": { + "type": "boolean" + }, + "kind": { + "const": "check", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + } + }, + "required": [ + "kind", + "locator", + "checked" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "hover", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + } + }, + "required": [ + "kind", + "locator" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "scroll", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + } + }, + "required": [ + "kind", + "locator" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "expected": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "kind": { + "const": "wait", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + }, + "property": { + "enum": [ + "count", + "visible", + "enabled", + "checked", + "text" + ], + "type": "string" + }, + "timeoutMs": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + } + }, + "required": [ + "kind", + "locator", + "property", + "expected" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "reload", + "type": "string" + } + }, + "required": [ + "kind" + ], + "type": "object" + } + ] + }, + { + "type": "null" + } + ] + }, + "angular": { + "anyOf": [ + { + "$ref": "#/definitions/__schema11" + }, + { + "type": "null" + } + ] + }, + "attemptId": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "capturedAt": { + "maxLength": 100, + "type": "string" + }, + "console": { + "items": { + "additionalProperties": false, + "properties": { + "column": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "level": { + "enum": [ + "log", + "info", + "debug", + "warning", + "error", + "pageerror" + ], + "type": "string" + }, + "line": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "text": { + "maxLength": 2000, + "type": "string" + }, + "url": { + "maxLength": 2560, + "type": "string" + } + }, + "required": [ + "level", + "text" + ], + "type": "object" + }, + "maxItems": 20, + "type": "array" + }, + "debugger": { + "additionalProperties": false, + "properties": { + "breakpoints": { + "items": { + "additionalProperties": false, + "properties": { + "column": { + "anyOf": [ + { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "id": { + "maxLength": 500, + "type": "string" + }, + "line": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "sourceUrl": { + "maxLength": 2560, + "type": "string" + } + }, + "required": [ + "id", + "sourceUrl", + "line", + "column" + ], + "type": "object" + }, + "maxItems": 100, + "type": "array" + }, + "callFrames": { + "items": { + "additionalProperties": false, + "properties": { + "column": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "functionName": { + "maxLength": 500, + "type": "string" + }, + "line": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "locals": { + "additionalProperties": { + "$ref": "#/definitions/__schema3" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "scopeNames": { + "items": { + "maxLength": 100, + "type": "string" + }, + "maxItems": 50, + "type": "array" + }, + "url": { + "maxLength": 2560, + "type": "string" + } + }, + "required": [ + "functionName", + "url", + "line", + "column", + "scopeNames", + "locals" + ], + "type": "object" + }, + "maxItems": 50, + "type": "array" + }, + "paused": { + "type": "boolean" + }, + "reason": { + "anyOf": [ + { + "maxLength": 500, + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "paused", + "reason", + "callFrames", + "breakpoints" + ], + "type": "object" + }, + "dom": { + "additionalProperties": false, + "properties": { + "bodyText": { + "maxLength": 4000, + "type": "string" + }, + "elements": { + "items": { + "additionalProperties": false, + "properties": { + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "role": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "tag": { + "type": "string" + }, + "text": { + "type": "string" + } + }, + "required": [ + "tag", + "id", + "role", + "text" + ], + "type": "object" + }, + "maxItems": 50, + "type": "array" + } + }, + "required": [ + "bodyText", + "elements" + ], + "type": "object" + }, + "index": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "network": { + "items": { + "additionalProperties": false, + "properties": { + "failure": { + "maxLength": 500, + "type": "string" + }, + "method": { + "maxLength": 50, + "type": "string" + }, + "nextActionId": { + "maxLength": 200, + "type": "string" + }, + "ok": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "requestId": { + "maxLength": 500, + "type": "string" + }, + "resourceType": { + "maxLength": 100, + "type": "string" + }, + "status": { + "anyOf": [ + { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "url": { + "maxLength": 2560, + "type": "string" + } + }, + "required": [ + "requestId", + "method", + "url", + "resourceType", + "status", + "ok" + ], + "type": "object" + }, + "maxItems": 20, + "type": "array" + }, + "react": { + "anyOf": [ + { + "$ref": "#/definitions/__schema10" + }, + { + "type": "null" + } + ] + }, + "title": { + "maxLength": 300, + "type": "string" + }, + "trigger": { + "enum": [ + "action", + "capture" + ], + "type": "string" + }, + "url": { + "maxLength": 2560, + "type": "string" + }, + "vue": { + "anyOf": [ + { + "$ref": "#/definitions/__schema12" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "index", + "attemptId", + "capturedAt", + "trigger", + "action", + "url", + "title", + "dom", + "console", + "network", + "debugger", + "react", + "angular", + "vue" + ], + "type": "object" + }, + "maxItems": 8, + "type": "array" + }, + "maxFrames": { + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" + }, + "restorable": { + "type": "boolean" + }, + "restoreBlockedReason": { + "anyOf": [ + { + "maxLength": 100, + "type": "string" + }, + { + "type": "null" + } + ] + }, + "truncated": { + "type": "boolean" + } + }, + "required": [ + "enabled", + "maxFrames", + "truncated", + "restorable", + "restoreBlockedReason", + "frames" + ], + "type": "object" + }, + "screenshot": { + "additionalProperties": false, + "properties": { + "status": { + "enum": [ + "captured", + "suppressed", + "unavailable" + ], + "type": "string" + } + }, + "required": [ + "status" + ], + "type": "object" + }, + "vite": { + "anyOf": [ + { + "$ref": "#/definitions/__schema8" + }, + { + "type": "null" + } + ] + }, + "vue": { + "anyOf": [ + { + "$ref": "#/definitions/__schema6" + }, + { + "type": "null" + } + ] + }, + "webmcp": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "observedAt": { + "maxLength": 100, + "type": "string" + }, + "provenance": { + "const": "webmcp-page-api", + "type": "string" + }, + "tools": { + "items": { + "additionalProperties": false, + "properties": { + "annotations": { + "additionalProperties": false, + "properties": { + "readOnlyHint": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "untrustedContentHint": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "readOnlyHint", + "untrustedContentHint" + ], + "type": "object" + }, + "description": { + "maxLength": 500, + "type": "string" + }, + "inputSchemaJson": { + "anyOf": [ + { + "maxLength": 8192, + "type": "string" + }, + { + "type": "null" + } + ] + }, + "name": { + "maxLength": 100, + "type": "string" + }, + "origin": { + "maxLength": 2048, + "type": "string" + }, + "title": { + "anyOf": [ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } + ] + }, + "untrusted": { + "const": true, + "type": "boolean" + } + }, + "required": [ + "origin", + "name", + "title", + "description", + "inputSchemaJson", + "annotations", + "untrusted" + ], + "type": "object" + }, + "maxItems": 16, + "type": "array" + }, + "total": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "truncated": { + "type": "boolean" + } + }, + "required": [ + "provenance", + "observedAt", + "total", + "truncated", + "tools" + ], + "type": "object" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + "fromCursor": { + "maxLength": 200, + "type": "string" + }, + "profile": { + "const": "delta", + "type": "string" + }, + "project": { + "additionalProperties": false, + "properties": { + "ambiguous": { + "type": "boolean" + }, + "confidence": { + "enum": [ + "high", + "medium", + "low", + "none" + ], + "type": "string" + }, + "frameworks": { + "items": { + "enum": [ + "vanilla", + "react", + "angular", + "vue", + "vite", + "next" + ], + "type": "string" + }, + "maxItems": 6, + "type": "array" + }, + "projectCapabilities": { + "additionalProperties": false, + "properties": { + "angular": { + "type": "boolean" + }, + "browserTarget": { + "type": "boolean" + }, + "next": { + "type": "boolean" + }, + "react": { + "type": "boolean" + }, + "serverRuntime": { + "type": "boolean" + }, + "vite": { + "type": "boolean" + }, + "vue": { + "type": "boolean" + } + }, + "required": [ + "browserTarget", + "react", + "angular", + "vue", + "vite", + "next", + "serverRuntime" + ], + "type": "object" + } + }, + "required": [ + "frameworks", + "confidence", + "ambiguous", + "projectCapabilities" + ], + "type": "object" + }, + "redaction": { + "additionalProperties": false, + "properties": { + "applied": { + "const": true, + "type": "boolean" + }, + "policy": { + "const": "default-sensitive-fields", + "type": "string" + } + }, + "required": [ + "applied", + "policy" + ], + "type": "object" + }, + "schemaVersion": { + "const": 5, + "type": "number" + }, + "session": { + "additionalProperties": false, + "properties": { + "id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "projectCapabilities": { + "additionalProperties": false, + "properties": { + "angular": { + "type": "boolean" + }, + "browserTarget": { + "type": "boolean" + }, + "next": { + "type": "boolean" + }, + "react": { + "type": "boolean" + }, + "serverRuntime": { + "type": "boolean" + }, + "vite": { + "type": "boolean" + }, + "vue": { + "type": "boolean" + } + }, + "required": [ + "browserTarget", + "react", + "angular", + "vue", + "vite", + "next", + "serverRuntime" + ], + "type": "object" + }, + "runtimeCapabilities": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "accessibility": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "actions": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "authSeeding": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "browser": { + "enum": [ + "chromium", + "safari" + ], + "type": "string" + }, + "console": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "dom": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "evaluation": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "javascriptDebugger": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "locators": { + "additionalProperties": false, + "properties": { + "css": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "semantic": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + } + }, + "required": [ + "css", + "semantic" + ], + "type": "object" + }, + "network": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "pageRuntimeEnrichment": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "schemaVersion": { + "const": 2, + "type": "number" + }, + "screenshots": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "tlsBypass": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "transport": { + "enum": [ + "chromium-launch", + "chromium-cdp-attach", + "safari-webdriver" + ], + "type": "string" + }, + "viewportMatrix": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "webmcp": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + } + }, + "required": [ + "schemaVersion", + "browser", + "transport", + "actions", + "locators", + "dom", + "console", + "network", + "screenshots", + "javascriptDebugger", + "evaluation", + "accessibility", + "pageRuntimeEnrichment", + "viewportMatrix", + "tlsBypass", + "authSeeding", + "webmcp" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "status": { + "enum": [ + "starting", + "ready", + "paused", + "failed", + "closed" + ], + "type": "string" + }, + "target": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "browser": { + "enum": [ + "chromium", + "safari" + ], + "type": "string" + }, + "isolated": { + "type": "boolean" + }, + "mode": { + "enum": [ + "launch", + "attach", + "webdriver" + ], + "type": "string" + }, + "remote": { + "type": "boolean" + }, + "schemaVersion": { + "const": 1, + "type": "number" + }, + "viewport": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "height": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "width": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + } + }, + "required": [ + "width", + "height" + ], + "type": "object" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "schemaVersion", + "browser", + "remote", + "viewport", + "isolated" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "url": { + "maxLength": 2560, + "type": "string" + } + }, + "required": [ + "id", + "url", + "status", + "target", + "projectCapabilities", + "runtimeCapabilities" + ], + "type": "object" + }, + "summary": { + "additionalProperties": false, + "properties": { + "bodyText": { + "maxLength": 1000, + "type": "string" + }, + "console": { + "additionalProperties": false, + "properties": { + "errors": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "latestErrors": { + "items": { + "additionalProperties": false, + "properties": { + "column": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "level": { + "enum": [ + "log", + "info", + "debug", + "warning", + "error", + "pageerror" + ], + "type": "string" + }, + "line": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "text": { + "maxLength": 2000, + "type": "string" + }, + "url": { + "maxLength": 2560, + "type": "string" + } + }, + "required": [ + "level", + "text" + ], + "type": "object" + }, + "maxItems": 3, + "type": "array" + }, + "total": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "warnings": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "total", + "errors", + "warnings", + "latestErrors" + ], + "type": "object" + }, + "debugger": { + "additionalProperties": false, + "properties": { + "breakpoints": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "callFrames": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "paused": { + "type": "boolean" + }, + "reason": { + "anyOf": [ + { + "maxLength": 500, + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "paused", + "reason", + "callFrames", + "breakpoints" + ], + "type": "object" + }, + "domElements": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "network": { + "additionalProperties": false, + "properties": { + "failed": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "latestFailures": { + "items": { + "additionalProperties": false, + "properties": { + "failure": { + "maxLength": 500, + "type": "string" + }, + "method": { + "maxLength": 50, + "type": "string" + }, + "nextActionId": { + "maxLength": 200, + "type": "string" + }, + "ok": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "requestId": { + "maxLength": 500, + "type": "string" + }, + "resourceType": { + "maxLength": 100, + "type": "string" + }, + "status": { + "anyOf": [ + { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "url": { + "maxLength": 2560, + "type": "string" + } + }, + "required": [ + "requestId", + "method", + "url", + "resourceType", + "status", + "ok" + ], + "type": "object" + }, + "maxItems": 3, + "type": "array" + }, + "pending": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "total": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "total", + "failed", + "pending", + "latestFailures" + ], + "type": "object" + }, + "observations": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "console": { + "$ref": "#/definitions/__schema2" + }, + "dom": { + "$ref": "#/definitions/__schema1" + }, + "url": { + "$ref": "#/definitions/__schema0" + } + }, + "required": [ + "url", + "dom", + "console" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "replay": { + "additionalProperties": false, + "properties": { + "frames": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "newestIndex": { + "anyOf": [ + { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "oldestIndex": { + "anyOf": [ + { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "restorable": { + "type": "boolean" + }, + "restoreBlockedReason": { + "anyOf": [ + { + "maxLength": 100, + "type": "string" + }, + { + "type": "null" + } + ] + }, + "truncated": { + "type": "boolean" + } + }, + "required": [ + "frames", + "truncated", + "oldestIndex", + "newestIndex", + "restorable", + "restoreBlockedReason" + ], + "type": "object" + }, + "runtimes": { + "additionalProperties": false, + "properties": { + "accessibility": { + "enum": [ + "present", + "not-detected", + "unavailable" + ], + "type": "string" + }, + "angular": { + "enum": [ + "present", + "not-detected", + "unavailable" + ], + "type": "string" + }, + "next": { + "enum": [ + "present", + "not-detected", + "unavailable" + ], + "type": "string" + }, + "react": { + "enum": [ + "present", + "not-detected", + "unavailable" + ], + "type": "string" + }, + "vite": { + "enum": [ + "present", + "not-detected", + "unavailable" + ], + "type": "string" + }, + "vue": { + "enum": [ + "present", + "not-detected", + "unavailable" + ], + "type": "string" + } + }, + "required": [ + "react", + "angular", + "vue", + "next", + "vite", + "accessibility" + ], + "type": "object" + }, + "title": { + "maxLength": 300, + "type": "string" + }, + "viewport": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "height": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "width": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + } + }, + "required": [ + "width", + "height" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "webmcp": { + "additionalProperties": false, + "properties": { + "callableTools": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + }, + "truncated": { + "type": "boolean" + } + }, + "required": [ + "state", + "callableTools", + "truncated" + ], + "type": "object" + } + }, + "required": [ + "title", + "viewport", + "bodyText", + "domElements", + "console", + "network", + "debugger", + "runtimes", + "replay", + "webmcp", + "observations" + ], + "type": "object" + }, + "truncation": { + "additionalProperties": false, + "properties": { + "applied": { + "type": "boolean" + }, + "omittedSurfaces": { + "items": { + "enum": [ + "dom", + "console", + "network", + "debugger", + "react", + "angular", + "vue", + "next", + "vite", + "accessibility", + "replay", + "screenshot", + "webmcp" + ], + "type": "string" + }, + "maxItems": 13, + "type": "array" + } + }, + "required": [ + "applied", + "omittedSurfaces" + ], + "type": "object" + }, + "unchangedSurfaces": { + "items": { + "enum": [ + "dom", + "console", + "network", + "debugger", + "react", + "angular", + "vue", + "next", + "vite", + "accessibility", + "replay", + "screenshot", + "webmcp" + ], + "type": "string" + }, + "maxItems": 13, + "type": "array" + }, + "warnings": { + "items": { + "maxLength": 500, + "type": "string" + }, + "maxItems": 10, + "type": "array" + } + }, + "required": [ + "schemaVersion", + "capturedAt", + "cursor", + "session", + "project", + "summary", + "redaction", + "warnings", + "truncation", + "profile", + "fromCursor", + "changedSurfaces", + "unchangedSurfaces", + "details" + ], + "type": "object" + } +] - changed
Output schema / properties / error / properties / details / allOfPrevious value: -[ - { - "$ref": "#/definitions/__schema1" - } -]New value: +[ + { + "$ref": "#/definitions/__schema13" + } +]
- Changed
web_next_inspect5 fields changed- added
Output schema / properties / data / additionalPropertiesAdded value: +false - removed
Output schema / properties / data / allOfRemoved value: -[ - { - "$ref": "#/definitions/__schema0" - } -] - added
Output schema / properties / data / propertiesAdded value: +{ + "detected": { + "const": true, + "type": "boolean" + }, + "endpoint": { + "maxLength": 2560, + "type": "string" + }, + "kind": { + "enum": [ + "compileRoute", + "resolveServerAction" + ], + "type": "string" + }, + "result": { + "anyOf": [ + { + "$ref": "#/definitions/__schema0" + }, + { + "type": "null" + } + ] + }, + "warnings": { + "items": { + "maxLength": 500, + "type": "string" + }, + "maxItems": 20, + "type": "array" + } +} - added
Output schema / properties / data / requiredAdded value: +[ + "detected", + "endpoint", + "kind", + "result", + "warnings" +] - added
Output schema / properties / data / typeAdded value: +"object"
- Changed
web_project_detect7 fields changed- removed
Output schema / definitions / __schema1Removed value: -{ - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - }, - { - "items": { - "$ref": "#/definitions/__schema1" - }, - "type": "array" - }, - { - "additionalProperties": { - "$ref": "#/definitions/__schema1" - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - } - ] -} - added
Output schema / properties / data / additionalPropertiesAdded value: +false - removed
Output schema / properties / data / allOfRemoved value: -[ - { - "$ref": "#/definitions/__schema0" - } -] - added
Output schema / properties / data / propertiesAdded value: +{ + "ambiguous": { + "type": "boolean" + }, + "confidence": { + "enum": [ + "high", + "medium", + "low", + "none" + ], + "type": "string" + }, + "frameworkDetections": { + "items": { + "additionalProperties": false, + "properties": { + "confidence": { + "enum": [ + "high", + "medium", + "low" + ], + "type": "string" + }, + "framework": { + "enum": [ + "vanilla", + "react", + "angular", + "vue", + "vite", + "next" + ], + "type": "string" + }, + "provenance": { + "items": { + "additionalProperties": false, + "properties": { + "source": { + "enum": [ + "config", + "entry", + "script", + "dependency", + "devDependency", + "peerDependency" + ], + "type": "string" + }, + "value": { + "maxLength": 300, + "type": "string" + } + }, + "required": [ + "source", + "value" + ], + "type": "object" + }, + "maxItems": 8, + "type": "array" + }, + "selected": { + "type": "boolean" + } + }, + "required": [ + "framework", + "confidence", + "selected", + "provenance" + ], + "type": "object" + }, + "maxItems": 6, + "type": "array" + }, + "frameworks": { + "items": { + "enum": [ + "vanilla", + "react", + "angular", + "vue", + "vite", + "next" + ], + "type": "string" + }, + "maxItems": 6, + "type": "array" + }, + "kind": { + "enum": [ + "application", + "workspace", + "library", + "unknown" + ], + "type": "string" + }, + "markers": { + "items": { + "maxLength": 300, + "type": "string" + }, + "maxItems": 32, + "type": "array" + }, + "packageManager": { + "anyOf": [ + { + "enum": [ + "npm", + "pnpm", + "yarn", + "bun" + ], + "type": "string" + }, + { + "type": "null" + } + ] + }, + "projectCapabilities": { + "additionalProperties": false, + "properties": { + "angular": { + "type": "boolean" + }, + "browserTarget": { + "type": "boolean" + }, + "next": { + "type": "boolean" + }, + "react": { + "type": "boolean" + }, + "serverRuntime": { + "type": "boolean" + }, + "vite": { + "type": "boolean" + }, + "vue": { + "type": "boolean" + } + }, + "required": [ + "browserTarget", + "react", + "angular", + "vue", + "vite", + "next", + "serverRuntime" + ], + "type": "object" + }, + "projectRoot": { + "maxLength": 4096, + "type": "string" + }, + "schemaVersion": { + "const": 2, + "type": "number" + }, + "warnings": { + "items": { + "maxLength": 500, + "type": "string" + }, + "maxItems": 20, + "type": "array" + }, + "workspace": { + "additionalProperties": false, + "properties": { + "candidates": { + "items": { + "additionalProperties": false, + "properties": { + "ambiguous": { + "type": "boolean" + }, + "confidence": { + "enum": [ + "high", + "medium", + "low", + "none" + ], + "type": "string" + }, + "frameworks": { + "items": { + "enum": [ + "vanilla", + "react", + "angular", + "vue", + "vite", + "next" + ], + "type": "string" + }, + "maxItems": 6, + "type": "array" + }, + "markers": { + "items": { + "maxLength": 300, + "type": "string" + }, + "maxItems": 12, + "type": "array" + }, + "projectRoot": { + "maxLength": 4096, + "type": "string" + } + }, + "required": [ + "projectRoot", + "frameworks", + "confidence", + "ambiguous", + "markers" + ], + "type": "object" + }, + "maxItems": 32, + "type": "array" + }, + "declared": { + "type": "boolean" + }, + "truncated": { + "type": "boolean" + }, + "unsupportedPatterns": { + "items": { + "maxLength": 300, + "type": "string" + }, + "maxItems": 32, + "type": "array" + } + }, + "required": [ + "declared", + "candidates", + "truncated", + "unsupportedPatterns" + ], + "type": "object" + } +} - added
Output schema / properties / data / requiredAdded value: +[ + "schemaVersion", + "projectRoot", + "packageManager", + "kind", + "frameworks", + "markers", + "confidence", + "ambiguous", + "frameworkDetections", + "workspace", + "projectCapabilities", + "warnings" +] - added
Output schema / properties / data / typeAdded value: +"object" - changed
Output schema / properties / error / properties / details / allOfPrevious value: -[ - { - "$ref": "#/definitions/__schema1" - } -]New value: +[ + { + "$ref": "#/definitions/__schema0" + } +]
- Changed
web_replay_seek9 fields changed- added
Output schema / definitions / __schema2Added value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/definitions/__schema2" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/definitions/__schema2" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] +} - added
Output schema / definitions / __schema3Added value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/definitions/__schema3" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/definitions/__schema3" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] +} - added
Output schema / definitions / __schema4Added value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/definitions/__schema4" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/definitions/__schema4" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] +} - added
Output schema / properties / data / additionalPropertiesAdded value: +false - removed
Output schema / properties / data / allOfRemoved value: -[ - { - "$ref": "#/definitions/__schema0" - } -] - added
Output schema / properties / data / propertiesAdded value: +{ + "availableFrames": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "frame": { + "additionalProperties": false, + "properties": { + "action": { + "anyOf": [ + { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "navigate", + "type": "string" + }, + "url": { + "maxLength": 2560, + "type": "string" + } + }, + "required": [ + "kind", + "url" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "click", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + } + }, + "required": [ + "kind", + "locator" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "fill", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + }, + "value": { + "type": "string" + } + }, + "required": [ + "kind", + "locator", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 40, + "type": "string" + }, + "kind": { + "const": "press", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + } + }, + "required": [ + "kind", + "locator", + "key" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "select", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + }, + "value": { + "type": "string" + } + }, + "required": [ + "kind", + "locator", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "checked": { + "type": "boolean" + }, + "kind": { + "const": "check", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + } + }, + "required": [ + "kind", + "locator", + "checked" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "hover", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + } + }, + "required": [ + "kind", + "locator" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "scroll", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + } + }, + "required": [ + "kind", + "locator" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "expected": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "kind": { + "const": "wait", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + }, + "property": { + "enum": [ + "count", + "visible", + "enabled", + "checked", + "text" + ], + "type": "string" + }, + "timeoutMs": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + } + }, + "required": [ + "kind", + "locator", + "property", + "expected" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "reload", + "type": "string" + } + }, + "required": [ + "kind" + ], + "type": "object" + } + ] + }, + { + "type": "null" + } + ] + }, + "angular": { + "anyOf": [ + { + "$ref": "#/definitions/__schema2" + }, + { + "type": "null" + } + ] + }, + "attemptId": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "capturedAt": { + "maxLength": 100, + "type": "string" + }, + "console": { + "items": { + "additionalProperties": false, + "properties": { + "column": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "level": { + "enum": [ + "log", + "info", + "debug", + "warning", + "error", + "pageerror" + ], + "type": "string" + }, + "line": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "text": { + "maxLength": 2000, + "type": "string" + }, + "url": { + "maxLength": 2560, + "type": "string" + } + }, + "required": [ + "level", + "text" + ], + "type": "object" + }, + "maxItems": 20, + "type": "array" + }, + "debugger": { + "additionalProperties": false, + "properties": { + "breakpoints": { + "items": { + "additionalProperties": false, + "properties": { + "column": { + "anyOf": [ + { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "id": { + "maxLength": 500, + "type": "string" + }, + "line": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "sourceUrl": { + "maxLength": 2560, + "type": "string" + } + }, + "required": [ + "id", + "sourceUrl", + "line", + "column" + ], + "type": "object" + }, + "maxItems": 100, + "type": "array" + }, + "callFrames": { + "items": { + "additionalProperties": false, + "properties": { + "column": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "functionName": { + "maxLength": 500, + "type": "string" + }, + "line": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "locals": { + "additionalProperties": { + "$ref": "#/definitions/__schema0" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "scopeNames": { + "items": { + "maxLength": 100, + "type": "string" + }, + "maxItems": 50, + "type": "array" + }, + "url": { + "maxLength": 2560, + "type": "string" + } + }, + "required": [ + "functionName", + "url", + "line", + "column", + "scopeNames", + "locals" + ], + "type": "object" + }, + "maxItems": 50, + "type": "array" + }, + "paused": { + "type": "boolean" + }, + "reason": { + "anyOf": [ + { + "maxLength": 500, + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "paused", + "reason", + "callFrames", + "breakpoints" + ], + "type": "object" + }, + "dom": { + "additionalProperties": false, + "properties": { + "bodyText": { + "maxLength": 4000, + "type": "string" + }, + "elements": { + "items": { + "additionalProperties": false, + "properties": { + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "role": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "tag": { + "type": "string" + }, + "text": { + "type": "string" + } + }, + "required": [ + "tag", + "id", + "role", + "text" + ], + "type": "object" + }, + "maxItems": 50, + "type": "array" + } + }, + "required": [ + "bodyText", + "elements" + ], + "type": "object" + }, + "index": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "network": { + "items": { + "additionalProperties": false, + "properties": { + "failure": { + "maxLength": 500, + "type": "string" + }, + "method": { + "maxLength": 50, + "type": "string" + }, + "nextActionId": { + "maxLength": 200, + "type": "string" + }, + "ok": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "requestId": { + "maxLength": 500, + "type": "string" + }, + "resourceType": { + "maxLength": 100, + "type": "string" + }, + "status": { + "anyOf": [ + { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "url": { + "maxLength": 2560, + "type": "string" + } + }, + "required": [ + "requestId", + "method", + "url", + "resourceType", + "status", + "ok" + ], + "type": "object" + }, + "maxItems": 20, + "type": "array" + }, + "react": { + "anyOf": [ + { + "$ref": "#/definitions/__schema1" + }, + { + "type": "null" + } + ] + }, + "title": { + "maxLength": 300, + "type": "string" + }, + "trigger": { + "enum": [ + "action", + "capture" + ], + "type": "string" + }, + "url": { + "maxLength": 2560, + "type": "string" + }, + "vue": { + "anyOf": [ + { + "$ref": "#/definitions/__schema3" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "index", + "attemptId", + "capturedAt", + "trigger", + "action", + "url", + "title", + "dom", + "console", + "network", + "debugger", + "react", + "angular", + "vue" + ], + "type": "object" + }, + "newestFrameIndex": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "oldestFrameIndex": { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "restorable": { + "type": "boolean" + }, + "restoreBlockedReason": { + "anyOf": [ + { + "maxLength": 100, + "type": "string" + }, + { + "type": "null" + } + ] + }, + "restored": { + "type": "boolean" + }, + "schemaVersion": { + "const": 1, + "type": "number" + }, + "sessionId": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + } +} - added
Output schema / properties / data / requiredAdded value: +[ + "schemaVersion", + "sessionId", + "frame", + "restored", + "restorable", + "restoreBlockedReason", + "availableFrames", + "oldestFrameIndex", + "newestFrameIndex" +] - added
Output schema / properties / data / typeAdded value: +"object" - changed
Output schema / properties / error / properties / details / allOfPrevious value: -[ - { - "$ref": "#/definitions/__schema1" - } -]New value: +[ + { + "$ref": "#/definitions/__schema4" + } +]
- Changed
web_repro_record17 fields changed- added
Output schema / definitions / __schema10Added value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/definitions/__schema10" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/definitions/__schema10" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] +} - added
Output schema / definitions / __schema11Added value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/definitions/__schema11" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/definitions/__schema11" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] +} - added
Output schema / definitions / __schema12Added value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/definitions/__schema12" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/definitions/__schema12" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] +} - added
Output schema / definitions / __schema2Added value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/definitions/__schema2" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/definitions/__schema2" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] +} - added
Output schema / definitions / __schema3Added value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/definitions/__schema3" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/definitions/__schema3" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] +} - added
Output schema / definitions / __schema4Added value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/definitions/__schema4" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/definitions/__schema4" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] +} - added
Output schema / definitions / __schema5Added value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/definitions/__schema5" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/definitions/__schema5" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] +} - added
Output schema / definitions / __schema6Added value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/definitions/__schema6" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/definitions/__schema6" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] +} - added
Output schema / definitions / __schema7Added value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/definitions/__schema7" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/definitions/__schema7" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] +} - added
Output schema / definitions / __schema8Added value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/definitions/__schema8" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/definitions/__schema8" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] +} - added
Output schema / definitions / __schema9Added value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + }, + { + "items": { + "$ref": "#/definitions/__schema9" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "#/definitions/__schema9" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + ] +} - added
Output schema / properties / data / additionalPropertiesAdded value: +false - removed
Output schema / properties / data / allOfRemoved value: -[ - { - "$ref": "#/definitions/__schema0" - } -] - added
Output schema / properties / data / propertiesAdded value: +{ + "acceptanceChecks": { + "items": { + "$ref": "#/definitions/__schema1" + }, + "maxItems": 64, + "type": "array" + }, + "actions": { + "items": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "navigate", + "type": "string" + }, + "url": { + "maxLength": 2560, + "type": "string" + } + }, + "required": [ + "kind", + "url" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "click", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + } + }, + "required": [ + "kind", + "locator" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "fill", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + }, + "value": { + "type": "string" + } + }, + "required": [ + "kind", + "locator", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 40, + "type": "string" + }, + "kind": { + "const": "press", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + } + }, + "required": [ + "kind", + "locator", + "key" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "select", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + }, + "value": { + "type": "string" + } + }, + "required": [ + "kind", + "locator", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "checked": { + "type": "boolean" + }, + "kind": { + "const": "check", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + } + }, + "required": [ + "kind", + "locator", + "checked" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "hover", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + } + }, + "required": [ + "kind", + "locator" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "scroll", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + } + }, + "required": [ + "kind", + "locator" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "expected": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "kind": { + "const": "wait", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + }, + "property": { + "enum": [ + "count", + "visible", + "enabled", + "checked", + "text" + ], + "type": "string" + }, + "timeoutMs": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + } + }, + "required": [ + "kind", + "locator", + "property", + "expected" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "reload", + "type": "string" + } + }, + "required": [ + "kind" + ], + "type": "object" + } + ] + }, + "maxItems": 100, + "type": "array" + }, + "authFixture": { + "enum": [ + "seeded-disposable", + "none" + ], + "type": "string" + }, + "baseline": { + "additionalProperties": false, + "properties": { + "attempts": { + "items": { + "$ref": "#/definitions/__schema8" + }, + "maxItems": 5, + "type": "array" + }, + "budget": { + "$ref": "#/definitions/__schema7" + }, + "evidence": { + "anyOf": [ + { + "$ref": "#/definitions/__schema10" + }, + { + "type": "null" + } + ] + }, + "flaky": { + "type": "boolean" + }, + "level": { + "enum": [ + "quick", + "standard", + "strict" + ], + "type": "string" + }, + "observedRate": { + "$ref": "#/definitions/__schema9" + }, + "status": { + "enum": [ + "reproduced", + "not_reproduced", + "inconclusive" + ], + "type": "string" + }, + "termination": { + "maxLength": 500, + "type": "string" + }, + "truncation": { + "allOf": [ + { + "$ref": "#/definitions/__schema11" + } + ] + }, + "viewportConsensus": { + "additionalProperties": { + "type": "string" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "warnings": { + "items": { + "maxLength": 500, + "type": "string" + }, + "maxItems": 100, + "type": "array" + } + }, + "required": [ + "status", + "level", + "flaky", + "budget", + "attempts", + "observedRate", + "evidence", + "warnings", + "termination" + ], + "type": "object" + }, + "buildReference": { + "$ref": "#/definitions/__schema6" + }, + "checkpoints": { + "items": { + "$ref": "#/definitions/__schema3" + }, + "maxItems": 16, + "type": "array" + }, + "contractHash": { + "maxLength": 64, + "minLength": 64, + "type": "string" + }, + "createdAt": { + "maxLength": 100, + "type": "string" + }, + "environmentFingerprint": { + "additionalProperties": false, + "properties": { + "adapterMode": { + "anyOf": [ + { + "enum": [ + "launch", + "attach", + "webdriver" + ], + "type": "string" + }, + { + "type": "null" + } + ] + }, + "architecture": { + "maxLength": 100, + "type": "string" + }, + "authFixture": { + "enum": [ + "seeded-disposable", + "none" + ], + "type": "string" + }, + "browser": { + "anyOf": [ + { + "enum": [ + "chromium", + "safari" + ], + "type": "string" + }, + { + "type": "null" + } + ] + }, + "browserVersion": { + "anyOf": [ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } + ] + }, + "descriptor": { + "maxLength": 500, + "type": "string" + }, + "isolated": { + "type": "boolean" + }, + "nodeVersion": { + "maxLength": 100, + "type": "string" + }, + "origin": { + "maxLength": 2560, + "type": "string" + }, + "path": { + "maxLength": 2560, + "type": "string" + }, + "platform": { + "maxLength": 100, + "type": "string" + }, + "projectAmbiguous": { + "type": "boolean" + }, + "projectConfidence": { + "enum": [ + "high", + "medium", + "low", + "none" + ], + "type": "string" + }, + "projectFrameworks": { + "items": { + "enum": [ + "vanilla", + "react", + "angular", + "vue", + "vite", + "next" + ], + "type": "string" + }, + "maxItems": 6, + "type": "array" + }, + "projectRoot": { + "maxLength": 4096, + "type": "string" + }, + "remote": { + "type": "boolean" + }, + "runtimeCapabilityStates": { + "additionalProperties": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "runtimeTransport": { + "anyOf": [ + { + "enum": [ + "chromium-launch", + "chromium-cdp-attach", + "safari-webdriver" + ], + "type": "string" + }, + { + "type": "null" + } + ] + }, + "schemaVersion": { + "const": 4, + "type": "number" + }, + "targetId": { + "anyOf": [ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } + ] + }, + "tls": { + "enum": [ + "strict", + "allow-insecure-loopback" + ], + "type": "string" + }, + "viewport": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "height": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "width": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + } + }, + "required": [ + "width", + "height" + ], + "type": "object" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "schemaVersion", + "projectRoot", + "descriptor", + "projectFrameworks", + "projectConfidence", + "projectAmbiguous", + "origin", + "path", + "browser", + "browserVersion", + "adapterMode", + "targetId", + "remote", + "isolated", + "viewport", + "tls", + "authFixture", + "runtimeTransport", + "runtimeCapabilityStates", + "nodeVersion", + "platform", + "architecture" + ], + "type": "object" + }, + "failureSignature": { + "items": { + "$ref": "#/definitions/__schema0" + }, + "maxItems": 64, + "type": "array" + }, + "failureViewports": { + "items": { + "maxLength": 40, + "type": "string" + }, + "maxItems": 4, + "type": "array" + }, + "id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "name": { + "maxLength": 200, + "type": "string" + }, + "persistence": { + "const": "in-memory", + "type": "string" + }, + "regressionChecks": { + "items": { + "$ref": "#/definitions/__schema2" + }, + "maxItems": 64, + "type": "array" + }, + "requestedLevel": { + "enum": [ + "quick", + "standard", + "strict" + ], + "type": "string" + }, + "risks": { + "$ref": "#/definitions/__schema4" + }, + "schemaVersion": { + "const": 6, + "type": "number" + }, + "serverStateReset": { + "additionalProperties": false, + "properties": { + "action": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "navigate", + "type": "string" + }, + "url": { + "maxLength": 2560, + "type": "string" + } + }, + "required": [ + "kind", + "url" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "click", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + } + }, + "required": [ + "kind", + "locator" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "fill", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + }, + "value": { + "type": "string" + } + }, + "required": [ + "kind", + "locator", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "key": { + "maxLength": 40, + "type": "string" + }, + "kind": { + "const": "press", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + } + }, + "required": [ + "kind", + "locator", + "key" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "select", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + }, + "value": { + "type": "string" + } + }, + "required": [ + "kind", + "locator", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "checked": { + "type": "boolean" + }, + "kind": { + "const": "check", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + } + }, + "required": [ + "kind", + "locator", + "checked" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "hover", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + } + }, + "required": [ + "kind", + "locator" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "scroll", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + } + }, + "required": [ + "kind", + "locator" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "expected": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "kind": { + "const": "wait", + "type": "string" + }, + "locator": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "css", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "role", + "type": "string" + }, + "name": { + "maxLength": 300, + "type": "string" + }, + "role": { + "maxLength": 100, + "type": "string" + } + }, + "required": [ + "kind", + "role" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "text", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "label", + "type": "string" + }, + "text": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "testId", + "type": "string" + }, + "value": { + "maxLength": 500, + "type": "string" + } + }, + "required": [ + "kind", + "value" + ], + "type": "object" + } + ] + }, + "property": { + "enum": [ + "count", + "visible", + "enabled", + "checked", + "text" + ], + "type": "string" + }, + "timeoutMs": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + } + }, + "required": [ + "kind", + "locator", + "property", + "expected" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "reload", + "type": "string" + } + }, + "required": [ + "kind" + ], + "type": "object" + } + ] + }, + "readyCheck": { + "allOf": [ + { + "$ref": "#/definitions/__schema5" + } + ] + } + }, + "type": "object" + }, + "sessionId": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "tls": { + "enum": [ + "strict", + "allow-insecure-loopback" + ], + "type": "string" + }, + "url": { + "maxLength": 2560, + "type": "string" + }, + "viewports": { + "items": { + "additionalProperties": false, + "properties": { + "height": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "name": { + "maxLength": 40, + "type": "string" + }, + "width": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + } + }, + "required": [ + "width", + "height", + "name" + ], + "type": "object" + }, + "maxItems": 4, + "type": "array" + } +} - added
Output schema / properties / data / requiredAdded value: +[ + "schemaVersion", + "id", + "sessionId", + "name", + "url", + "actions", + "failureSignature", + "acceptanceChecks", + "regressionChecks", + "checkpoints", + "viewports", + "authFixture", + "tls", + "risks", + "requestedLevel", + "buildReference", + "environmentFingerprint", + "contractHash", + "persistence", + "createdAt", + "baseline" +] - added
Output schema / properties / data / typeAdded value: +"object" - changed
Output schema / properties / error / properties / details / allOfPrevious value: -[ - { - "$ref": "#/definitions/__schema1" - } -]New value: +[ + { + "$ref": "#/definitions/__schema12" + } +]
- Changed
web_session_close7 fields changed- removed
Output schema / definitions / __schema1Removed value: -{ - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - }, - { - "items": { - "$ref": "#/definitions/__schema1" - }, - "type": "array" - }, - { - "additionalProperties": { - "$ref": "#/definitions/__schema1" - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - } - ] -} - added
Output schema / properties / data / additionalPropertiesAdded value: +false - removed
Output schema / properties / data / allOfRemoved value: -[ - { - "$ref": "#/definitions/__schema0" - } -] - added
Output schema / properties / data / propertiesAdded value: +{ + "artifactDir": { + "maxLength": 4096, + "type": "string" + }, + "artifactState": { + "enum": [ + "retained", + "deleted" + ], + "type": "string" + }, + "authFixture": { + "enum": [ + "seeded-disposable", + "none" + ], + "type": "string" + }, + "createdAt": { + "maxLength": 100, + "type": "string" + }, + "id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "projectCapabilities": { + "additionalProperties": false, + "properties": { + "angular": { + "type": "boolean" + }, + "browserTarget": { + "type": "boolean" + }, + "next": { + "type": "boolean" + }, + "react": { + "type": "boolean" + }, + "serverRuntime": { + "type": "boolean" + }, + "vite": { + "type": "boolean" + }, + "vue": { + "type": "boolean" + } + }, + "required": [ + "browserTarget", + "react", + "angular", + "vue", + "vite", + "next", + "serverRuntime" + ], + "type": "object" + }, + "projectRoot": { + "maxLength": 4096, + "type": "string" + }, + "runtimeCapabilities": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "accessibility": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "actions": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "authSeeding": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "browser": { + "enum": [ + "chromium", + "safari" + ], + "type": "string" + }, + "console": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "dom": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "evaluation": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "javascriptDebugger": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "locators": { + "additionalProperties": false, + "properties": { + "css": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "semantic": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + } + }, + "required": [ + "css", + "semantic" + ], + "type": "object" + }, + "network": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "pageRuntimeEnrichment": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "schemaVersion": { + "const": 2, + "type": "number" + }, + "screenshots": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "tlsBypass": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "transport": { + "enum": [ + "chromium-launch", + "chromium-cdp-attach", + "safari-webdriver" + ], + "type": "string" + }, + "viewportMatrix": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "webmcp": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + } + }, + "required": [ + "schemaVersion", + "browser", + "transport", + "actions", + "locators", + "dom", + "console", + "network", + "screenshots", + "javascriptDebugger", + "evaluation", + "accessibility", + "pageRuntimeEnrichment", + "viewportMatrix", + "tlsBypass", + "authSeeding", + "webmcp" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "schemaVersion": { + "const": 3, + "type": "number" + }, + "status": { + "enum": [ + "starting", + "ready", + "paused", + "failed", + "closed" + ], + "type": "string" + }, + "target": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "browser": { + "enum": [ + "chromium", + "safari" + ], + "type": "string" + }, + "isolated": { + "type": "boolean" + }, + "isolation": { + "additionalProperties": false, + "properties": { + "browserProcess": { + "type": "boolean" + }, + "cache": { + "type": "boolean" + }, + "context": { + "type": "boolean" + }, + "navigation": { + "type": "boolean" + }, + "profile": { + "type": "boolean" + }, + "serverState": { + "type": "boolean" + }, + "serviceWorkers": { + "type": "boolean" + }, + "storage": { + "type": "boolean" + } + }, + "required": [ + "browserProcess", + "context", + "profile", + "storage", + "cache", + "serviceWorkers", + "navigation", + "serverState" + ], + "type": "object" + }, + "mode": { + "enum": [ + "launch", + "attach", + "webdriver" + ], + "type": "string" + }, + "remote": { + "type": "boolean" + }, + "schemaVersion": { + "const": 1, + "type": "number" + }, + "targetId": { + "maxLength": 200, + "type": "string" + }, + "title": { + "maxLength": 300, + "type": "string" + }, + "url": { + "maxLength": 2560, + "type": "string" + }, + "viewport": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "height": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "width": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + } + }, + "required": [ + "width", + "height" + ], + "type": "object" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "schemaVersion", + "browser", + "remote", + "url", + "title", + "viewport", + "isolated" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "tls": { + "enum": [ + "strict", + "allow-insecure-loopback" + ], + "type": "string" + }, + "url": { + "maxLength": 2560, + "type": "string" + }, + "warnings": { + "items": { + "maxLength": 500, + "type": "string" + }, + "maxItems": 100, + "type": "array" + } +} - added
Output schema / properties / data / requiredAdded value: +[ + "schemaVersion", + "id", + "projectRoot", + "url", + "status", + "createdAt", + "artifactDir", + "target", + "projectCapabilities", + "runtimeCapabilities", + "warnings" +] - added
Output schema / properties / data / typeAdded value: +"object" - changed
Output schema / properties / error / properties / details / allOfPrevious value: -[ - { - "$ref": "#/definitions/__schema1" - } -]New value: +[ + { + "$ref": "#/definitions/__schema0" + } +]
- Changed
web_session_start7 fields changed- removed
Output schema / definitions / __schema1Removed value: -{ - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - }, - { - "items": { - "$ref": "#/definitions/__schema1" - }, - "type": "array" - }, - { - "additionalProperties": { - "$ref": "#/definitions/__schema1" - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - } - ] -} - added
Output schema / properties / data / additionalPropertiesAdded value: +false - removed
Output schema / properties / data / allOfRemoved value: -[ - { - "$ref": "#/definitions/__schema0" - } -] - added
Output schema / properties / data / propertiesAdded value: +{ + "artifactDir": { + "maxLength": 4096, + "type": "string" + }, + "artifactState": { + "enum": [ + "retained", + "deleted" + ], + "type": "string" + }, + "authFixture": { + "enum": [ + "seeded-disposable", + "none" + ], + "type": "string" + }, + "createdAt": { + "maxLength": 100, + "type": "string" + }, + "id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "projectCapabilities": { + "additionalProperties": false, + "properties": { + "angular": { + "type": "boolean" + }, + "browserTarget": { + "type": "boolean" + }, + "next": { + "type": "boolean" + }, + "react": { + "type": "boolean" + }, + "serverRuntime": { + "type": "boolean" + }, + "vite": { + "type": "boolean" + }, + "vue": { + "type": "boolean" + } + }, + "required": [ + "browserTarget", + "react", + "angular", + "vue", + "vite", + "next", + "serverRuntime" + ], + "type": "object" + }, + "projectRoot": { + "maxLength": 4096, + "type": "string" + }, + "runtimeCapabilities": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "accessibility": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "actions": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "authSeeding": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "browser": { + "enum": [ + "chromium", + "safari" + ], + "type": "string" + }, + "console": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "dom": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "evaluation": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "javascriptDebugger": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "locators": { + "additionalProperties": false, + "properties": { + "css": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "semantic": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + } + }, + "required": [ + "css", + "semantic" + ], + "type": "object" + }, + "network": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "pageRuntimeEnrichment": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "schemaVersion": { + "const": 2, + "type": "number" + }, + "screenshots": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "tlsBypass": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "transport": { + "enum": [ + "chromium-launch", + "chromium-cdp-attach", + "safari-webdriver" + ], + "type": "string" + }, + "viewportMatrix": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "webmcp": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + } + }, + "required": [ + "schemaVersion", + "browser", + "transport", + "actions", + "locators", + "dom", + "console", + "network", + "screenshots", + "javascriptDebugger", + "evaluation", + "accessibility", + "pageRuntimeEnrichment", + "viewportMatrix", + "tlsBypass", + "authSeeding", + "webmcp" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "schemaVersion": { + "const": 3, + "type": "number" + }, + "status": { + "enum": [ + "starting", + "ready", + "paused", + "failed", + "closed" + ], + "type": "string" + }, + "target": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "browser": { + "enum": [ + "chromium", + "safari" + ], + "type": "string" + }, + "isolated": { + "type": "boolean" + }, + "isolation": { + "additionalProperties": false, + "properties": { + "browserProcess": { + "type": "boolean" + }, + "cache": { + "type": "boolean" + }, + "context": { + "type": "boolean" + }, + "navigation": { + "type": "boolean" + }, + "profile": { + "type": "boolean" + }, + "serverState": { + "type": "boolean" + }, + "serviceWorkers": { + "type": "boolean" + }, + "storage": { + "type": "boolean" + } + }, + "required": [ + "browserProcess", + "context", + "profile", + "storage", + "cache", + "serviceWorkers", + "navigation", + "serverState" + ], + "type": "object" + }, + "mode": { + "enum": [ + "launch", + "attach", + "webdriver" + ], + "type": "string" + }, + "remote": { + "type": "boolean" + }, + "schemaVersion": { + "const": 1, + "type": "number" + }, + "targetId": { + "maxLength": 200, + "type": "string" + }, + "title": { + "maxLength": 300, + "type": "string" + }, + "url": { + "maxLength": 2560, + "type": "string" + }, + "viewport": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "height": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "width": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + } + }, + "required": [ + "width", + "height" + ], + "type": "object" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "schemaVersion", + "browser", + "remote", + "url", + "title", + "viewport", + "isolated" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "tls": { + "enum": [ + "strict", + "allow-insecure-loopback" + ], + "type": "string" + }, + "url": { + "maxLength": 2560, + "type": "string" + }, + "warnings": { + "items": { + "maxLength": 500, + "type": "string" + }, + "maxItems": 100, + "type": "array" + } +} - added
Output schema / properties / data / requiredAdded value: +[ + "schemaVersion", + "id", + "projectRoot", + "url", + "status", + "createdAt", + "artifactDir", + "target", + "projectCapabilities", + "runtimeCapabilities", + "warnings" +] - added
Output schema / properties / data / typeAdded value: +"object" - changed
Output schema / properties / error / properties / details / allOfPrevious value: -[ - { - "$ref": "#/definitions/__schema1" - } -]New value: +[ + { + "$ref": "#/definitions/__schema0" + } +]
- Changed
web_session_status4 fields changed- removed
Output schema / definitions / __schema1Removed value: -{ - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - }, - { - "items": { - "$ref": "#/definitions/__schema1" - }, - "type": "array" - }, - { - "additionalProperties": { - "$ref": "#/definitions/__schema1" - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - } - ] -} - removed
Output schema / properties / data / allOfRemoved value: -[ - { - "$ref": "#/definitions/__schema0" - } -] - added
Output schema / properties / data / anyOfAdded value: +[ + { + "additionalProperties": false, + "properties": { + "artifactDir": { + "maxLength": 4096, + "type": "string" + }, + "artifactState": { + "enum": [ + "retained", + "deleted" + ], + "type": "string" + }, + "authFixture": { + "enum": [ + "seeded-disposable", + "none" + ], + "type": "string" + }, + "createdAt": { + "maxLength": 100, + "type": "string" + }, + "id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "projectCapabilities": { + "additionalProperties": false, + "properties": { + "angular": { + "type": "boolean" + }, + "browserTarget": { + "type": "boolean" + }, + "next": { + "type": "boolean" + }, + "react": { + "type": "boolean" + }, + "serverRuntime": { + "type": "boolean" + }, + "vite": { + "type": "boolean" + }, + "vue": { + "type": "boolean" + } + }, + "required": [ + "browserTarget", + "react", + "angular", + "vue", + "vite", + "next", + "serverRuntime" + ], + "type": "object" + }, + "projectRoot": { + "maxLength": 4096, + "type": "string" + }, + "runtimeCapabilities": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "accessibility": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "actions": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "authSeeding": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "browser": { + "enum": [ + "chromium", + "safari" + ], + "type": "string" + }, + "console": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "dom": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "evaluation": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "javascriptDebugger": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "locators": { + "additionalProperties": false, + "properties": { + "css": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "semantic": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + } + }, + "required": [ + "css", + "semantic" + ], + "type": "object" + }, + "network": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "pageRuntimeEnrichment": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "schemaVersion": { + "const": 2, + "type": "number" + }, + "screenshots": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "tlsBypass": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "transport": { + "enum": [ + "chromium-launch", + "chromium-cdp-attach", + "safari-webdriver" + ], + "type": "string" + }, + "viewportMatrix": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "webmcp": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + } + }, + "required": [ + "schemaVersion", + "browser", + "transport", + "actions", + "locators", + "dom", + "console", + "network", + "screenshots", + "javascriptDebugger", + "evaluation", + "accessibility", + "pageRuntimeEnrichment", + "viewportMatrix", + "tlsBypass", + "authSeeding", + "webmcp" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "schemaVersion": { + "const": 3, + "type": "number" + }, + "status": { + "enum": [ + "starting", + "ready", + "paused", + "failed", + "closed" + ], + "type": "string" + }, + "target": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "browser": { + "enum": [ + "chromium", + "safari" + ], + "type": "string" + }, + "isolated": { + "type": "boolean" + }, + "isolation": { + "additionalProperties": false, + "properties": { + "browserProcess": { + "type": "boolean" + }, + "cache": { + "type": "boolean" + }, + "context": { + "type": "boolean" + }, + "navigation": { + "type": "boolean" + }, + "profile": { + "type": "boolean" + }, + "serverState": { + "type": "boolean" + }, + "serviceWorkers": { + "type": "boolean" + }, + "storage": { + "type": "boolean" + } + }, + "required": [ + "browserProcess", + "context", + "profile", + "storage", + "cache", + "serviceWorkers", + "navigation", + "serverState" + ], + "type": "object" + }, + "mode": { + "enum": [ + "launch", + "attach", + "webdriver" + ], + "type": "string" + }, + "remote": { + "type": "boolean" + }, + "schemaVersion": { + "const": 1, + "type": "number" + }, + "targetId": { + "maxLength": 200, + "type": "string" + }, + "title": { + "maxLength": 300, + "type": "string" + }, + "url": { + "maxLength": 2560, + "type": "string" + }, + "viewport": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "height": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "width": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + } + }, + "required": [ + "width", + "height" + ], + "type": "object" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "schemaVersion", + "browser", + "remote", + "url", + "title", + "viewport", + "isolated" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "tls": { + "enum": [ + "strict", + "allow-insecure-loopback" + ], + "type": "string" + }, + "url": { + "maxLength": 2560, + "type": "string" + }, + "warnings": { + "items": { + "maxLength": 500, + "type": "string" + }, + "maxItems": 100, + "type": "array" + } + }, + "required": [ + "schemaVersion", + "id", + "projectRoot", + "url", + "status", + "createdAt", + "artifactDir", + "target", + "projectCapabilities", + "runtimeCapabilities", + "warnings" + ], + "type": "object" + }, + { + "items": { + "additionalProperties": false, + "properties": { + "artifactDir": { + "maxLength": 4096, + "type": "string" + }, + "artifactState": { + "enum": [ + "retained", + "deleted" + ], + "type": "string" + }, + "authFixture": { + "enum": [ + "seeded-disposable", + "none" + ], + "type": "string" + }, + "createdAt": { + "maxLength": 100, + "type": "string" + }, + "id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "projectCapabilities": { + "additionalProperties": false, + "properties": { + "angular": { + "type": "boolean" + }, + "browserTarget": { + "type": "boolean" + }, + "next": { + "type": "boolean" + }, + "react": { + "type": "boolean" + }, + "serverRuntime": { + "type": "boolean" + }, + "vite": { + "type": "boolean" + }, + "vue": { + "type": "boolean" + } + }, + "required": [ + "browserTarget", + "react", + "angular", + "vue", + "vite", + "next", + "serverRuntime" + ], + "type": "object" + }, + "projectRoot": { + "maxLength": 4096, + "type": "string" + }, + "runtimeCapabilities": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "accessibility": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "actions": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "authSeeding": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "browser": { + "enum": [ + "chromium", + "safari" + ], + "type": "string" + }, + "console": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "dom": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "evaluation": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "javascriptDebugger": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "locators": { + "additionalProperties": false, + "properties": { + "css": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "semantic": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + } + }, + "required": [ + "css", + "semantic" + ], + "type": "object" + }, + "network": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "pageRuntimeEnrichment": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "schemaVersion": { + "const": 2, + "type": "number" + }, + "screenshots": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "tlsBypass": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "transport": { + "enum": [ + "chromium-launch", + "chromium-cdp-attach", + "safari-webdriver" + ], + "type": "string" + }, + "viewportMatrix": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + }, + "webmcp": { + "additionalProperties": false, + "properties": { + "provenance": { + "items": { + "enum": [ + "playwright", + "chromium-cdp", + "safari-webdriver", + "safari-bidi", + "performance-resource-timing", + "session-policy", + "webmcp-page-api" + ], + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "reason": { + "maxLength": 500, + "type": "string" + }, + "state": { + "enum": [ + "supported", + "degraded", + "unsupported" + ], + "type": "string" + } + }, + "required": [ + "state", + "provenance" + ], + "type": "object" + } + }, + "required": [ + "schemaVersion", + "browser", + "transport", + "actions", + "locators", + "dom", + "console", + "network", + "screenshots", + "javascriptDebugger", + "evaluation", + "accessibility", + "pageRuntimeEnrichment", + "viewportMatrix", + "tlsBypass", + "authSeeding", + "webmcp" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "schemaVersion": { + "const": 3, + "type": "number" + }, + "status": { + "enum": [ + "starting", + "ready", + "paused", + "failed", + "closed" + ], + "type": "string" + }, + "target": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "browser": { + "enum": [ + "chromium", + "safari" + ], + "type": "string" + }, + "isolated": { + "type": "boolean" + }, + "isolation": { + "additionalProperties": false, + "properties": { + "browserProcess": { + "type": "boolean" + }, + "cache": { + "type": "boolean" + }, + "context": { + "type": "boolean" + }, + "navigation": { + "type": "boolean" + }, + "profile": { + "type": "boolean" + }, + "serverState": { + "type": "boolean" + }, + "serviceWorkers": { + "type": "boolean" + }, + "storage": { + "type": "boolean" + } + }, + "required": [ + "browserProcess", + "context", + "profile", + "storage", + "cache", + "serviceWorkers", + "navigation", + "serverState" + ], + "type": "object" + }, + "mode": { + "enum": [ + "launch", + "attach", + "webdriver" + ], + "type": "string" + }, + "remote": { + "type": "boolean" + }, + "schemaVersion": { + "const": 1, + "type": "number" + }, + "targetId": { + "maxLength": 200, + "type": "string" + }, + "title": { + "maxLength": 300, + "type": "string" + }, + "url": { + "maxLength": 2560, + "type": "string" + }, + "viewport": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "height": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "width": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + } + }, + "required": [ + "width", + "height" + ], + "type": "object" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "schemaVersion", + "browser", + "remote", + "url", + "title", + "viewport", + "isolated" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "tls": { + "enum": [ + "strict", + "allow-insecure-loopback" + ], + "type": "string" + }, + "url": { + "maxLength": 2560, + "type": "string" + }, + "warnings": { + "items": { + "maxLength": 500, + "type": "string" + }, + "maxItems": 100, + "type": "array" + } + }, + "required": [ + "schemaVersion", + "id", + "projectRoot", + "url", + "status", + "createdAt", + "artifactDir", + "target", + "projectCapabilities", + "runtimeCapabilities", + "warnings" + ], + "type": "object" + }, + "maxItems": 8, + "type": "array" + } +] - changed
Output schema / properties / error / properties / details / allOfPrevious value: -[ - { - "$ref": "#/definitions/__schema1" - } -]New value: +[ + { + "$ref": "#/definitions/__schema0" + } +]
13 tool updates
v0.5.0-next.0- First observed
web_breakpoint_set - First observed
web_browser_action - First observed
web_debug_control - First observed
web_debug_evaluate - First observed
web_fix_verify - First observed
web_issue_capture - First observed
web_next_inspect - First observed
web_project_detect - First observed
web_replay_seek - First observed
web_repro_record - First observed
web_session_close - First observed
web_session_start - First observed
web_session_status
TDQS
Tools are largely distinct: session lifecycle, browser actions, reproduction recording/verification, and debugger control each occupy clear roles. The closest pairs are web_repro_record/web_fix_verify and web_browser_action/web_replay_seek, but their descriptions frame them as complementary rather than interchangeable.
All tools share the web_ prefix and snake_case, giving the set a recognizable identity. The pattern is mostly <area>_<action> (session_start, breakpoint_set, fix_verify), with a couple of noun-like entries such as web_browser_action and web_session_status that are still predictable in context.
13 tools is within the ideal range for a debugging server with multiple workflows (session management, reproduction, browser interaction, source inspection, live debugging). Every tool appears to add a distinct capability rather than duplicating another.
The surface covers the core debugging loop: start a session, act in the browser, record/verify reproductions, capture evidence, inspect Next.js, and control a paused debugger. Minor gaps exist, such as no explicit breakpoint removal or network/console inspection, but agents can work around them.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server to assist with JxBrowser development.
Live browser debugging for AI assistants — DOM, console, network via MCP.
MCP server for understanding Javascript internals from ECMAScript specification.
Hosted real Google Chrome MCP with per-user persistent state. Navigate, click, type, screenshot.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA Chrome DevTools Protocol-based MCP server that enables AI coding assistants to control browsers for JavaScript debugging, reverse engineering, web scraping, and API debugging.1,2911Apache 2.0
- AlicenseNot gradedqualityCmaintenanceMCP server for browser debugging, inspection, and verification that streams console logs, network errors, and user actions into AI coding assistants.65AGPL 3.0
- FlicenseBqualityDmaintenanceA local MCP server that enables Codex to inspect and interact with Chrome tabs through the Chrome DevTools Protocol, primarily for collecting authorized Brightspace course materials into local folders.16-
- AlicenseNot gradedqualityBmaintenanceAn instrumented local browser daemon MCP server that lets coding agents verify UIs in one call, with console, network, layout, accessibility, and coverage checks, plus debugging tools. It provides named isolated sessions and a CLI+MCP duality for the same verbs.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/MarlonJD/web-debug-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server