name: health_report description: Single-call end-to-end driver diagnostics. Designed to let downstream consumers ship one stable call instead of stitching together check_permissions, doctor, version, bundle attribution, and platform capability status. On macOS, prompt-capable direct capture is deliberately skipped; use `cua-driver permissions grant` to verify it explicitly. cua-driver owns the health model; consumers stay thin. Input — all optional: { "include": ["", ...], // run only these "skip": ["", ...] // skip these } If both are given, `include` wins. Canonical check names: macOS : binary_version, platform_supported, session_active, bundle_identity, tcc_accessibility, tcc_screen_recording, ax_capability, screen_capture_capability Windows: binary_version, platform_supported, session_active, ax_capability (via UIA), screen_capture_capability (via DXGI) Linux : binary_version, platform_supported, session_active, ax_capability (via AT-SPI), screen_capture_capability (via X11) Output — stable contract, schema_version="1": { "schema_version": "1", "platform": "darwin" | "win32" | "linux", "driver_version": "", "overall": "ok" | "degraded" | "failed", "checks": [ { "name": "", "status": "pass" | "fail" | "skip", "message": "", "hint": "", "data": { /* check-specific structured fields */ } }, ... ] } `overall` rules: - `ok` — every non-skipped check passes - `degraded` — at least one non-core check fails (binary is still usable) - `failed` — any core check fails (binary_version, platform_supported, session_active) Stability: schema_version="1" is the contract. Future breaking changes will be `"2"`. Adding new check names under the same schema_version is non-breaking; consumers must tolerate unknown check names. input_schema: { "additionalProperties": false, "properties": { "include": { "description": "Only run these checks (canonical names). Wins over `skip`.", "items": { "type": "string" }, "type": "array" }, "skip": { "description": "Skip these checks (canonical names). Ignored when `include` is set.", "items": { "type": "string" }, "type": "array" } }, "type": "object" }