Skip to main content
Glama

Control computer

control_computer
Destructive

Inspect and control native desktop apps on a paired computer: capture UI/accessibility state, find elements, click, type, launch apps, manage windows, clipboard, and recordings.

Instructions

Use this for semantic inspection or control of native desktop applications on this computer: windows, accessibility/UI elements, waits, displays, app launch, text/input, clipboard, open/reveal, notifications, or short screen recording. Snapshot/find/wait operations observe state; clicks, typing, window close, app launch, clipboard writes, and recording can change local application state. Prefer semantic targets before raw coordinates.

Input Schema

NameRequiredDescriptionDefault
operationYesConcrete local runtime operation to execute in this domain.
parametersNoArguments for the selected operation; validated against that operation’s original closed schema.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv0.2.164
    • changedInput schema / allOf
      Previous value: -[
      -  {
      -    "if": {
      -      "properties": {
      -        "operation": {
      -          "const": "computer_snapshot"
      -        }
      -      },
      -      "required": [
      -        "operation"
      -      ]
      -    },
      -    "then": {
      -      "properties": {
      -        "parameters": {
      -          "additionalProperties": false,
      -          "properties": {
      -            "browser_max_nodes": {
      -              "description": "Maximum browser accessibility nodes; default 500, maximum 2000.",
      -              "type": "number"
      -            },
      -            "grid_columns": {
      -              "description": "Optional reference-grid column count returned as visual metadata; 0..20.",
      -              "type": "number"
      -            },
      -            "grid_rows": {
      -              "description": "Optional reference-grid row count returned as visual metadata; 0..20.",
      -              "type": "number"
      -            },
      -            "include_browser": {
      -              "description": "Include CDP browser accessibility when available. Default auto: only when the active app looks Chromium-based.",
      -              "type": "boolean"
      -            },
      -            "include_ocr": {
      -              "description": "Run optional local OCR. Default auto: only when native accessibility and browser DOM are unavailable. Requires tesseract on PATH.",
      -              "type": "boolean"
      -            },
      -            "include_screenshot": {
      -              "description": "Include real rendered desktop pixels; default true.",
      -              "type": "boolean"
      -            },
      -            "include_ui": {
      -              "description": "Include native accessibility tree; default true. False is the fast screenshot-only path.",
      -              "type": "boolean"
      -            },
      -            "max_ui_depth": {
      -              "description": "Maximum native accessibility depth; default 12.",
      -              "type": "number"
      -            },
      -            "max_ui_nodes": {
      -              "description": "Maximum native accessibility nodes; default 800.",
      -              "type": "number"
      -            },
      -            "ocr_language": {
      -              "description": "Tesseract language code, default eng; multiple languages may use eng+deu.",
      -              "type": "string"
      -            },
      -            "ocr_max_words": {
      -              "description": "Maximum OCR word boxes returned; default 2000, maximum 10000.",
      -              "type": "number"
      -            },
      -            "ocr_psm": {
      -              "description": "Tesseract page segmentation mode, 3..13; default 11.",
      -              "type": "number"
      -            },
      -            "ocr_timeout_ms": {
      -              "description": "OCR timeout, default 30000 ms, maximum 120000 ms.",
      -              "type": "number"
      -            },
      -            "screenshot_monitor": {
      -              "description": "Monitor name substring or \"primary\".",
      -              "type": "string"
      -            },
      -            "screenshot_monitor_index": {
      -              "description": "Zero-based monitor index.",
      -              "type": "number"
      -            },
      -            "screenshot_padding": {
      -              "description": "Pixels of context around a targeted screenshot; 0..200.",
      -              "type": "number"
      -            },
      -            "screenshot_region": {
      -              "description": "Virtual-desktop [left,top,right,bottom] region; takes precedence over full desktop.",
      -              "items": {
      -                "type": "number"
      -              },
      -              "maxItems": 4,
      -              "minItems": 4,
      -              "type": "array"
      -            },
      -            "screenshot_window_id": {
      -              "description": "Capture the window returned by list_windows instead of the whole desktop.",
      -              "type": "string"
      -            },
      -            "semantic_tree": {
      -              "description": "Include compact semantic hierarchy text alongside nodes; default true.",
      -              "type": "boolean"
      -            },
      -            "ui_browser_dom": {
      -              "description": "Prefer the native browser accessibility document subtree when the OS exposes one; on Windows this also enables the Firefox MSAA/IAccessible fallback.",
      -              "type": "boolean"
      -            },
      -            "ui_scope": {
      -              "description": "Accessibility scope for computer_snapshot. Default active keeps the compact snapshot fast; desktop requests all accessible applications/windows.",
      -              "enum": [
      -                "active",
      -                "desktop"
      -              ],
      -              "type": "string"
      -            }
      -          },
      -          "type": "object"
      -        }
      -      }
      -    }
      -  },
      -  {
      -    "if": {
      -      "properties": {
      -        "operation": {
      -          "const": "computer_action"
      -        }
      -      },
      -      "required": [
      -        "operation"
      -      ]
      -    },
      -    "then": {
      -      "properties": {
      -        "parameters": {
      -          "additionalProperties": false,
      -          "allOf": [
      -            {
      -              "if": {
      -                "properties": {
      -                  "target": {
      -                    "const": "window"
      -                  }
      -                },
      -                "required": [
      -                  "target"
      -                ]
      -              },
      -              "then": {
      -                "anyOf": [
      -                  {
      -                    "required": [
      -                      "window_id"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "pid"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "app"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "window_title"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "title"
      -                    ]
      -                  }
      -                ],
      -                "properties": {
      -                  "action": {
      -                    "enum": [
      -                      "type",
      -                      "focus",
      -                      "scroll",
      -                      "drag"
      -                    ]
      -                  }
      -                }
      -              }
      -            },
      -            {
      -              "if": {
      -                "properties": {
      -                  "action": {
      -                    "const": "click"
      -                  }
      -                },
      -                "required": [
      -                  "action"
      -                ]
      -              },
      -              "then": {
      -                "anyOf": [
      -                  {
      -                    "required": [
      -                      "id"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "label"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "name"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "role"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "automation_id"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "selector"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "browser_text"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "name"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "ocr_text"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "x",
      -                      "y"
      -                    ]
      -                  }
      -                ]
      -              }
      -            },
      -            {
      -              "if": {
      -                "properties": {
      -                  "action": {
      -                    "enum": [
      -                      "invoke",
      -                      "set_value",
      -                      "select",
      -                      "toggle",
      -                      "expand",
      -                      "collapse",
      -                      "scroll_into_view",
      -                      "set_range_value",
      -                      "add_to_selection",
      -                      "remove_from_selection"
      -                    ]
      -                  }
      -                },
      -                "required": [
      -                  "action"
      -                ]
      -              },
      -              "then": {
      -                "anyOf": [
      -                  {
      -                    "required": [
      -                      "id"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "label"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "name"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "role"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "automation_id"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "selector"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "browser_text"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "name"
      -                    ]
      -                  }
      -                ]
      -              }
      -            },
      -            {
      -              "if": {
      -                "properties": {
      -                  "action": {
      -                    "const": "focus"
      -                  }
      -                },
      -                "required": [
      -                  "action"
      -                ]
      -              },
      -              "then": {
      -                "anyOf": [
      -                  {
      -                    "required": [
      -                      "id"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "label"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "name"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "role"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "automation_id"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "selector"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "browser_text"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "name"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "window_id"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "pid"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "app"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "window_title"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "title"
      -                    ]
      -                  }
      -                ]
      -              }
      -            },
      -            {
      -              "if": {
      -                "properties": {
      -                  "action": {
      -                    "const": "type"
      -                  }
      -                },
      -                "required": [
      -                  "action"
      -                ]
      -              },
      -              "then": {
      -                "allOf": [
      -                  {
      -                    "anyOf": [
      -                      {
      -                        "required": [
      -                          "id"
      -                        ]
      -                      },
      -                      {
      -                        "required": [
      -                          "label"
      -                        ]
      -                      },
      -                      {
      -                        "required": [
      -                          "name"
      -                        ]
      -                      },
      -                      {
      -                        "required": [
      -                          "role"
      -                        ]
      -                      },
      -                      {
      -                        "required": [
      -                          "automation_id"
      -                        ]
      -                      },
      -                      {
      -                        "required": [
      -                          "selector"
      -                        ]
      -                      },
      -                      {
      -                        "required": [
      -                          "browser_text"
      -                        ]
      -                      },
      -                      {
      -                        "required": [
      -                          "name"
      -                        ]
      -                      },
      -                      {
      -                        "required": [
      -                          "window_id"
      -                        ]
      -                      },
      -                      {
      -                        "required": [
      -                          "pid"
      -                        ]
      -                      },
      -                      {
      -                        "required": [
      -                          "app"
      -                        ]
      -                      },
      -                      {
      -                        "required": [
      -                          "window_title"
      -                        ]
      -                      },
      -                      {
      -                        "required": [
      -                          "title"
      -                        ]
      -                      }
      -                    ]
      -                  },
      -                  {
      -                    "if": {
      -                      "properties": {
      -                        "target": {
      -                          "enum": [
      -                            "ui",
      -                            "ui_element"
      -                          ]
      -                        }
      -                      },
      -                      "required": [
      -                        "target"
      -                      ]
      -                    },
      -                    "then": {
      -                      "anyOf": [
      -                        {
      -                          "required": [
      -                            "id"
      -                          ]
      -                        },
      -                        {
      -                          "required": [
      -                            "label"
      -                          ]
      -                        },
      -                        {
      -                          "required": [
      -                            "name"
      -                          ]
      -                        },
      -                        {
      -                          "required": [
      -                            "role"
      -                          ]
      -                        },
      -                        {
      -                          "required": [
      -                            "automation_id"
      -                          ]
      -                        }
      -                      ]
      -                    }
      -                  },
      -                  {
      -                    "if": {
      -                      "properties": {
      -                        "target": {
      -                          "const": "browser"
      -                        }
      -                      },
      -                      "required": [
      -                        "target"
      -                      ]
      -                    },
      -                    "then": {
      -                      "anyOf": [
      -                        {
      -                          "required": [
      -                            "selector"
      -                          ]
      -                        },
      -                        {
      -                          "required": [
      -                            "browser_text"
      -                          ]
      -                        },
      -                        {
      -                          "required": [
      -                            "name"
      -                          ]
      -                        }
      -                      ]
      -                    }
      -                  }
      -                ],
      -                "properties": {
      -                  "target": {
      -                    "enum": [
      -                      "auto",
      -                      "ui",
      -                      "ui_element",
      -                      "browser",
      -                      "window"
      -                    ]
      -                  }
      -                },
      -                "required": [
      -                  "text"
      -                ]
      -              }
      -            },
      -            {
      -              "if": {
      -                "properties": {
      -                  "action": {
      -                    "const": "scroll"
      -                  }
      -                },
      -                "required": [
      -                  "action"
      -                ]
      -              },
      -              "then": {
      -                "allOf": [
      -                  {
      -                    "anyOf": [
      -                      {
      -                        "required": [
      -                          "delta_x"
      -                        ]
      -                      },
      -                      {
      -                        "required": [
      -                          "delta_y"
      -                        ]
      -                      },
      -                      {
      -                        "required": [
      -                          "delta"
      -                        ]
      -                      },
      -                      {
      -                        "required": [
      -                          "direction"
      -                        ]
      -                      }
      -                    ]
      -                  },
      -                  {
      -                    "if": {
      -                      "properties": {
      -                        "target": {
      -                          "enum": [
      -                            "ui",
      -                            "ui_element"
      -                          ]
      -                        }
      -                      },
      -                      "required": [
      -                        "target"
      -                      ]
      -                    },
      -                    "then": {
      -                      "anyOf": [
      -                        {
      -                          "required": [
      -                            "id"
      -                          ]
      -                        },
      -                        {
      -                          "required": [
      -                            "label"
      -                          ]
      -                        },
      -                        {
      -                          "required": [
      -                            "name"
      -                          ]
      -                        },
      -                        {
      -                          "required": [
      -                            "role"
      -                          ]
      -                        },
      -                        {
      -                          "required": [
      -                            "automation_id"
      -                          ]
      -                        }
      -                      ]
      -                    }
      -                  },
      -                  {
      -                    "if": {
      -                      "properties": {
      -                        "target": {
      -                          "const": "coordinates"
      -                        }
      -                      },
      -                      "required": [
      -                        "target"
      -                      ]
      -                    },
      -                    "then": {
      -                      "required": [
      -                        "x",
      -                        "y"
      -                      ]
      -                    }
      -                  }
      -                ],
      -                "properties": {
      -                  "target": {
      -                    "enum": [
      -                      "auto",
      -                      "ui",
      -                      "ui_element",
      -                      "browser",
      -                      "coordinates",
      -                      "window"
      -                    ]
      -                  }
      -                }
      -              }
      -            },
      -            {
      -              "if": {
      -                "properties": {
      -                  "action": {
      -                    "const": "drag"
      -                  }
      -                },
      -                "required": [
      -                  "action"
      -                ]
      -              },
      -              "then": {
      -                "allOf": [
      -                  {
      -                    "anyOf": [
      -                      {
      -                        "required": [
      -                          "from_id"
      -                        ]
      -                      },
      -                      {
      -                        "required": [
      -                          "from_x",
      -                          "from_y"
      -                        ]
      -                      }
      -                    ]
      -                  },
      -                  {
      -                    "anyOf": [
      -                      {
      -                        "required": [
      -                          "to_id"
      -                        ]
      -                      },
      -                      {
      -                        "required": [
      -                          "to_x",
      -                          "to_y"
      -                        ]
      -                      }
      -                    ]
      -                  },
      -                  {
      -                    "if": {
      -                      "properties": {
      -                        "target": {
      -                          "enum": [
      -                            "ui",
      -                            "ui_element"
      -                          ]
      -                        }
      -                      },
      -                      "required": [
      -                        "target"
      -                      ]
      -                    },
      -                    "then": {
      -                      "required": [
      -                        "from_id",
      -                        "to_id"
      -                      ]
      -                    }
      -                  },
      -                  {
      -                    "if": {
      -                      "properties": {
      -                        "target": {
      -                          "const": "coordinates"
      -                        }
      -                      },
      -                      "required": [
      -                        "target"
      -                      ]
      -                    },
      -                    "then": {
      -                      "required": [
      -                        "from_x",
      -                        "from_y",
      -                        "to_x",
      -                        "to_y"
      -                      ]
      -                    }
      -                  }
      -                ],
      -                "properties": {
      -                  "target": {
      -                    "enum": [
      -                      "auto",
      -                      "ui",
      -                      "ui_element",
      -                      "coordinates",
      -                      "window"
      -                    ]
      -                  }
      -                }
      -              }
      -            },
      -            {
      -              "if": {
      -                "properties": {
      -                  "action": {
      -                    "enum": [
      -                      "set_value",
      -                      "set_range_value"
      -                    ]
      -                  }
      -                },
      -                "required": [
      -                  "action"
      -                ]
      -              },
      -              "then": {
      -                "required": [
      -                  "value"
      -                ]
      -              }
      -            },
      -            {
      -              "if": {
      -                "properties": {
      -                  "action": {
      -                    "const": "multi_select"
      -                  }
      -                },
      -                "required": [
      -                  "action"
      -                ]
      -              },
      -              "then": {
      -                "required": [
      -                  "targets"
      -                ]
      -              }
      -            },
      -            {
      -              "if": {
      -                "properties": {
      -                  "action": {
      -                    "const": "multi_edit"
      -                  }
      -                },
      -                "required": [
      -                  "action"
      -                ]
      -              },
      -              "then": {
      -                "required": [
      -                  "edits"
      -                ]
      -              }
      -            }
      -          ],
      -          "properties": {
      -            "action": {
      -              "description": "Operation to perform; choose the narrowest action that directly matches the requested outcome.",
      -              "enum": [
      -                "click",
      -                "type",
      -                "invoke",
      -                "focus",
      -                "select",
      -                "scroll",
      -                "drag",
      -                "set_value",
      -                "toggle",
      -                "expand",
      -                "collapse",
      -                "scroll_into_view",
      -                "set_range_value",
      -                "add_to_selection",
      -                "remove_from_selection",
      -                "multi_select",
      -                "multi_edit"
      -              ],
      -              "type": "string"
      -            },
      -            "app": {
      -              "description": "Limit matching to an application/process name substring when available.",
      -              "type": "string"
      -            },
      -            "automation_id": {
      -              "description": "Windows AutomationId when available.",
      -              "type": "string"
      -            },
      -            "backend": {
      -              "description": "Input backend preference. auto uses proven local backends and already-authorized portal input; portal explicitly requests XDG RemoteDesktop consent on Wayland; x11 forces XWayland/xdotool only for operations where read-back testing shows it is reliable. GNOME Wayland keyboard/text deliberately reject x11.",
      -              "enum": [
      -                "auto",
      -                "x11",
      -                "portal"
      -              ],
      -              "type": "string"
      -            },
      -            "browser_text": {
      -              "description": "Visible browser text used only to locate a DOM target; for action=type, text remains the value to enter.",
      -              "type": "string"
      -            },
      -            "button": {
      -              "description": "Pointer button to use for click/down/up or drag gestures.",
      -              "enum": [
      -                "left",
      -                "right",
      -                "middle"
      -              ],
      -              "type": "string"
      -            },
      -            "clear": {
      -              "description": "For action=type, clear the current semantic/browser value before inserting text when supported.",
      -              "type": "boolean"
      -            },
      -            "delta": {
      -              "description": "Alias for delta_y.",
      -              "type": "number"
      -            },
      -            "delta_x": {
      -              "description": "Horizontal scroll delta; positive means right.",
      -              "type": "number"
      -            },
      -            "delta_y": {
      -              "description": "Vertical scroll delta; positive means down.",
      -              "type": "number"
      -            },
      -            "direction": {
      -              "description": "Human-readable scroll direction used with wheel_times instead of explicit deltas.",
      -              "enum": [
      -                "up",
      -                "down",
      -                "left",
      -                "right"
      -              ],
      -              "type": "string"
      -            },
      -            "duration_ms": {
      -              "description": "Drag movement duration.",
      -              "type": "number"
      -            },
      -            "edits": {
      -              "description": "Native semantic target + text entries for action=multi_edit.",
      -              "items": {
      -                "additionalProperties": false,
      -                "properties": {
      -                  "app": {
      -                    "description": "Limit matching to an application/process name substring when available.",
      -                    "type": "string"
      -                  },
      -                  "automation_id": {
      -                    "description": "Windows AutomationId when available.",
      -                    "type": "string"
      -                  },
      -                  "clear": {
      -                    "description": "Clear the current value before entering text; default true.",
      -                    "type": "boolean"
      -                  },
      -                  "id": {
      -                    "description": "Element id returned by ui_snapshot or ui_find. Linux ids are stable per-process accessibility paths and legacy linux:<index> ids remain accepted.",
      -                    "type": "string"
      -                  },
      -                  "label": {
      -                    "description": "Compact numeric label from the most recent ui_snapshot/ui_find; useful for repeated actions without repeating names or coordinates.",
      -                    "type": "number"
      -                  },
      -                  "method": {
      -                    "description": "Text-entry strategy; auto is recommended.",
      -                    "enum": [
      -                      "auto",
      -                      "accessibility",
      -                      "clipboard",
      -                      "keys"
      -                    ],
      -                    "type": "string"
      -                  },
      -                  "name": {
      -                    "description": "Accessible name/title substring.",
      -                    "type": "string"
      -                  },
      -                  "pid": {
      -                    "description": "Limit matching to one owning process id when available.",
      -                    "type": "number"
      -                  },
      -                  "role": {
      -                    "description": "Accessible role such as Button, Edit, textbox or AXButton.",
      -                    "type": "string"
      -                  },
      -                  "text": {
      -                    "description": "Replacement text for this semantic edit.",
      -                    "type": "string"
      -                  },
      -                  "window_title": {
      -                    "description": "Limit matching to a top-level accessibility window/frame title substring when available.",
      -                    "type": "string"
      -                  }
      -                },
      -                "required": [
      -                  "text"
      -                ],
      -                "type": "object"
      -              },
      -              "maxItems": 100,
      -              "minItems": 1,
      -              "type": "array"
      -            },
      -            "endpoint": {
      -              "description": "Loopback Chrome DevTools endpoint for a browser fallback.",
      -              "type": "string"
      -            },
      -            "from_id": {
      -              "description": "Source semantic UI element id for action=drag.",
      -              "type": "string"
      -            },
      -            "from_x": {
      -              "description": "Drag source X coordinate.",
      -              "type": "number"
      -            },
      -            "from_y": {
      -              "description": "Drag source Y coordinate.",
      -              "type": "number"
      -            },
      -            "hold_ms": {
      -              "description": "Delay after pointer down before moving during action=drag.",
      -              "type": "number"
      -            },
      -            "id": {
      -              "description": "Element id returned by ui_snapshot or ui_find. Linux ids are stable per-process accessibility paths and legacy linux:<index> ids remain accepted.",
      -              "type": "string"
      -            },
      -            "label": {
      -              "description": "Compact numeric label from the most recent ui_snapshot/ui_find; useful for repeated actions without repeating names or coordinates.",
      -              "type": "number"
      -            },
      -            "name": {
      -              "description": "Accessible name/title substring.",
      -              "type": "string"
      -            },
      -            "ocr_language": {
      -              "description": "Tesseract language code, default eng.",
      -              "type": "string"
      -            },
      -            "ocr_psm": {
      -              "description": "Tesseract page segmentation mode, default 11.",
      -              "type": "number"
      -            },
      -            "ocr_region": {
      -              "description": "Optional virtual-desktop [left,top,right,bottom] region to OCR. Prefer bounds from list_windows or computer_snapshot.",
      -              "items": {
      -                "type": "number"
      -              },
      -              "maxItems": 4,
      -              "minItems": 4,
      -              "type": "array"
      -            },
      -            "ocr_text": {
      -              "description": "Visible text to find in rendered pixels for the OCR click fallback.",
      -              "type": "string"
      -            },
      -            "ocr_timeout_ms": {
      -              "description": "OCR timeout in milliseconds.",
      -              "type": "number"
      -            },
      -            "option": {
      -              "description": "Option value for browser select.",
      -              "type": "string"
      -            },
      -            "pid": {
      -              "description": "Limit matching to one owning process id when available.",
      -              "type": "number"
      -            },
      -            "replace_selection": {
      -              "description": "For multi_select, select the first item before adding the rest; default true.",
      -              "type": "boolean"
      -            },
      -            "role": {
      -              "description": "Accessible role such as Button, Edit, textbox or AXButton.",
      -              "type": "string"
      -            },
      -            "selector": {
      -              "description": "CSS selector when the fallback target is a browser element.",
      -              "type": "string"
      -            },
      -            "target": {
      -              "description": "Optional target type. auto prefers native accessibility, then browser DOM/CDP, then OCR/coordinates where supported. Use window for explicit top-level window focus/text/scroll targeting.",
      -              "enum": [
      -                "auto",
      -                "ui",
      -                "ui_element",
      -                "browser",
      -                "ocr",
      -                "coordinates",
      -                "window"
      -              ],
      -              "type": "string"
      -            },
      -            "target_id": {
      -              "description": "Browser page target id returned by browser_tabs.",
      -              "type": "string"
      -            },
      -            "targets": {
      -              "description": "Native semantic targets for action=multi_select.",
      -              "items": {
      -                "additionalProperties": false,
      -                "properties": {
      -                  "app": {
      -                    "description": "Limit matching to an application/process name substring when available.",
      -                    "type": "string"
      -                  },
      -                  "automation_id": {
      -                    "description": "Windows AutomationId when available.",
      -                    "type": "string"
      -                  },
      -                  "id": {
      -                    "description": "Element id returned by ui_snapshot or ui_find. Linux ids are stable per-process accessibility paths and legacy linux:<index> ids remain accepted.",
      -                    "type": "string"
      -                  },
      -                  "label": {
      -                    "description": "Compact numeric label from the most recent ui_snapshot/ui_find; useful for repeated actions without repeating names or coordinates.",
      -                    "type": "number"
      -                  },
      -                  "name": {
      -                    "description": "Accessible name/title substring.",
      -                    "type": "string"
      -                  },
      -                  "pid": {
      -                    "description": "Limit matching to one owning process id when available.",
      -                    "type": "number"
      -                  },
      -                  "role": {
      -                    "description": "Accessible role such as Button, Edit, textbox or AXButton.",
      -                    "type": "string"
      -                  },
      -                  "window_title": {
      -                    "description": "Limit matching to a top-level accessibility window/frame title substring when available.",
      -                    "type": "string"
      -                  }
      -                },
      -                "type": "object"
      -              },
      -              "maxItems": 100,
      -              "minItems": 1,
      -              "type": "array"
      -            },
      -            "text": {
      -              "description": "Unicode text to enter for action=type, or text used by multi_edit.",
      -              "type": "string"
      -            },
      -            "title": {
      -              "description": "Optional browser page title substring or top-level window title when target=window.",
      -              "type": "string"
      -            },
      -            "to_id": {
      -              "description": "Destination semantic UI element id for action=drag.",
      -              "type": "string"
      -            },
      -            "to_x": {
      -              "description": "Drag destination X coordinate.",
      -              "type": "number"
      -            },
      -            "to_y": {
      -              "description": "Drag destination Y coordinate.",
      -              "type": "number"
      -            },
      -            "url_contains": {
      -              "description": "Browser URL substring used to select a page.",
      -              "type": "string"
      -            },
      -            "value": {
      -              "description": "New value for set_value, set_range_value, or select.",
      -              "type": "string"
      -            },
      -            "wheel_times": {
      -              "description": "Number of 120-unit wheel steps for direction; 1..50.",
      -              "type": "number"
      -            },
      -            "window_id": {
      -              "description": "Top-level window id returned by list_windows when target=window.",
      -              "type": "string"
      -            },
      -            "window_title": {
      -              "description": "Limit matching to a top-level accessibility window/frame title substring when available.",
      -              "type": "string"
      -            },
      -            "x": {
      -              "description": "Virtual-desktop X coordinate used by click/scroll coordinate targeting.",
      -              "type": "number"
      -            },
      -            "y": {
      -              "description": "Virtual-desktop Y coordinate used by click/scroll coordinate targeting.",
      -              "type": "number"
      -            }
      -          },
      -          "required": [
      -            "action"
      -          ],
      -          "type": "object"
      -        }
      -      },
      -      "required": [
      -        "parameters"
      -      ]
      -    }
      -  }
      -]New value: +[
      +  {
      +    "if": {
      +      "properties": {
      +        "operation": {
      +          "const": "computer_snapshot"
      +        }
      +      },
      +      "required": [
      +        "operation"
      +      ]
      +    },
      +    "then": {
      +      "properties": {
      +        "parameters": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "browser_max_nodes": {
      +              "description": "Maximum browser accessibility nodes; default 500, maximum 2000.",
      +              "type": "number"
      +            },
      +            "browser_readiness": {
      +              "description": "Opt-in bounded CDP readiness status: disabled, blocked endpoint, unavailable, invalid response, no tabs, or ready. No tab URLs or titles; never launches Chrome. Default false.",
      +              "type": "boolean"
      +            },
      +            "grid_columns": {
      +              "description": "Optional reference-grid column count returned as visual metadata; 0..20.",
      +              "type": "number"
      +            },
      +            "grid_rows": {
      +              "description": "Optional reference-grid row count returned as visual metadata; 0..20.",
      +              "type": "number"
      +            },
      +            "include_browser": {
      +              "description": "Include CDP browser accessibility when available. Default auto: only when the active app looks Chromium-based.",
      +              "type": "boolean"
      +            },
      +            "include_ocr": {
      +              "description": "Run optional local OCR. Default auto: only when native accessibility and browser DOM are unavailable. Requires tesseract on PATH.",
      +              "type": "boolean"
      +            },
      +            "include_screenshot": {
      +              "description": "Include real rendered desktop pixels; default true.",
      +              "type": "boolean"
      +            },
      +            "include_ui": {
      +              "description": "Include native accessibility tree; default true. False is the fast screenshot-only path.",
      +              "type": "boolean"
      +            },
      +            "max_ui_depth": {
      +              "description": "Maximum native accessibility depth; default 12.",
      +              "type": "number"
      +            },
      +            "max_ui_nodes": {
      +              "description": "Maximum native accessibility nodes; default 800.",
      +              "type": "number"
      +            },
      +            "ocr_language": {
      +              "description": "Tesseract language code, default eng; multiple languages may use eng+deu.",
      +              "type": "string"
      +            },
      +            "ocr_max_words": {
      +              "description": "Maximum OCR word boxes returned; default 2000, maximum 10000.",
      +              "type": "number"
      +            },
      +            "ocr_psm": {
      +              "description": "Tesseract page segmentation mode, 3..13; default 11.",
      +              "type": "number"
      +            },
      +            "ocr_timeout_ms": {
      +              "description": "OCR timeout, default 30000 ms, maximum 120000 ms.",
      +              "type": "number"
      +            },
      +            "screenshot_monitor": {
      +              "description": "Monitor name substring or \"primary\".",
      +              "type": "string"
      +            },
      +            "screenshot_monitor_index": {
      +              "description": "Zero-based monitor index.",
      +              "type": "number"
      +            },
      +            "screenshot_padding": {
      +              "description": "Pixels of context around a targeted screenshot; 0..200.",
      +              "type": "number"
      +            },
      +            "screenshot_region": {
      +              "description": "Virtual-desktop [left,top,right,bottom] region; takes precedence over full desktop.",
      +              "items": {
      +                "type": "number"
      +              },
      +              "maxItems": 4,
      +              "minItems": 4,
      +              "type": "array"
      +            },
      +            "screenshot_window_id": {
      +              "description": "Capture the window returned by list_windows instead of the whole desktop.",
      +              "type": "string"
      +            },
      +            "semantic_tree": {
      +              "description": "Include compact semantic hierarchy text alongside nodes; default true.",
      +              "type": "boolean"
      +            },
      +            "ui_browser_dom": {
      +              "description": "Prefer the native browser accessibility document subtree when the OS exposes one; on Windows this also enables the Firefox MSAA/IAccessible fallback.",
      +              "type": "boolean"
      +            },
      +            "ui_scope": {
      +              "description": "Accessibility scope for computer_snapshot. Default active keeps the compact snapshot fast; desktop requests all accessible applications/windows.",
      +              "enum": [
      +                "active",
      +                "desktop"
      +              ],
      +              "type": "string"
      +            }
      +          },
      +          "type": "object"
      +        }
      +      }
      +    }
      +  },
      +  {
      +    "if": {
      +      "properties": {
      +        "operation": {
      +          "const": "computer_action"
      +        }
      +      },
      +      "required": [
      +        "operation"
      +      ]
      +    },
      +    "then": {
      +      "properties": {
      +        "parameters": {
      +          "additionalProperties": false,
      +          "allOf": [
      +            {
      +              "if": {
      +                "properties": {
      +                  "target": {
      +                    "const": "window"
      +                  }
      +                },
      +                "required": [
      +                  "target"
      +                ]
      +              },
      +              "then": {
      +                "anyOf": [
      +                  {
      +                    "required": [
      +                      "window_id"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "pid"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "app"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "window_title"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "title"
      +                    ]
      +                  }
      +                ],
      +                "properties": {
      +                  "action": {
      +                    "enum": [
      +                      "type",
      +                      "focus",
      +                      "scroll",
      +                      "drag"
      +                    ]
      +                  }
      +                }
      +              }
      +            },
      +            {
      +              "if": {
      +                "properties": {
      +                  "action": {
      +                    "const": "click"
      +                  }
      +                },
      +                "required": [
      +                  "action"
      +                ]
      +              },
      +              "then": {
      +                "anyOf": [
      +                  {
      +                    "required": [
      +                      "id"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "label"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "name"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "role"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "automation_id"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "selector"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "browser_text"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "name"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "ocr_text"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "x",
      +                      "y"
      +                    ]
      +                  }
      +                ]
      +              }
      +            },
      +            {
      +              "if": {
      +                "properties": {
      +                  "action": {
      +                    "enum": [
      +                      "invoke",
      +                      "set_value",
      +                      "select",
      +                      "toggle",
      +                      "expand",
      +                      "collapse",
      +                      "scroll_into_view",
      +                      "set_range_value",
      +                      "add_to_selection",
      +                      "remove_from_selection"
      +                    ]
      +                  }
      +                },
      +                "required": [
      +                  "action"
      +                ]
      +              },
      +              "then": {
      +                "anyOf": [
      +                  {
      +                    "required": [
      +                      "id"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "label"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "name"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "role"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "automation_id"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "selector"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "browser_text"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "name"
      +                    ]
      +                  }
      +                ]
      +              }
      +            },
      +            {
      +              "if": {
      +                "properties": {
      +                  "action": {
      +                    "const": "focus"
      +                  }
      +                },
      +                "required": [
      +                  "action"
      +                ]
      +              },
      +              "then": {
      +                "anyOf": [
      +                  {
      +                    "required": [
      +                      "id"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "label"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "name"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "role"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "automation_id"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "selector"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "browser_text"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "name"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "window_id"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "pid"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "app"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "window_title"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "title"
      +                    ]
      +                  }
      +                ]
      +              }
      +            },
      +            {
      +              "if": {
      +                "properties": {
      +                  "action": {
      +                    "const": "type"
      +                  }
      +                },
      +                "required": [
      +                  "action"
      +                ]
      +              },
      +              "then": {
      +                "allOf": [
      +                  {
      +                    "anyOf": [
      +                      {
      +                        "required": [
      +                          "id"
      +                        ]
      +                      },
      +                      {
      +                        "required": [
      +                          "label"
      +                        ]
      +                      },
      +                      {
      +                        "required": [
      +                          "name"
      +                        ]
      +                      },
      +                      {
      +                        "required": [
      +                          "role"
      +                        ]
      +                      },
      +                      {
      +                        "required": [
      +                          "automation_id"
      +                        ]
      +                      },
      +                      {
      +                        "required": [
      +                          "selector"
      +                        ]
      +                      },
      +                      {
      +                        "required": [
      +                          "browser_text"
      +                        ]
      +                      },
      +                      {
      +                        "required": [
      +                          "name"
      +                        ]
      +                      },
      +                      {
      +                        "required": [
      +                          "window_id"
      +                        ]
      +                      },
      +                      {
      +                        "required": [
      +                          "pid"
      +                        ]
      +                      },
      +                      {
      +                        "required": [
      +                          "app"
      +                        ]
      +                      },
      +                      {
      +                        "required": [
      +                          "window_title"
      +                        ]
      +                      },
      +                      {
      +                        "required": [
      +                          "title"
      +                        ]
      +                      }
      +                    ]
      +                  },
      +                  {
      +                    "if": {
      +                      "properties": {
      +                        "target": {
      +                          "enum": [
      +                            "ui",
      +                            "ui_element"
      +                          ]
      +                        }
      +                      },
      +                      "required": [
      +                        "target"
      +                      ]
      +                    },
      +                    "then": {
      +                      "anyOf": [
      +                        {
      +                          "required": [
      +                            "id"
      +                          ]
      +                        },
      +                        {
      +                          "required": [
      +                            "label"
      +                          ]
      +                        },
      +                        {
      +                          "required": [
      +                            "name"
      +                          ]
      +                        },
      +                        {
      +                          "required": [
      +                            "role"
      +                          ]
      +                        },
      +                        {
      +                          "required": [
      +                            "automation_id"
      +                          ]
      +                        }
      +                      ]
      +                    }
      +                  },
      +                  {
      +                    "if": {
      +                      "properties": {
      +                        "target": {
      +                          "const": "browser"
      +                        }
      +                      },
      +                      "required": [
      +                        "target"
      +                      ]
      +                    },
      +                    "then": {
      +                      "anyOf": [
      +                        {
      +                          "required": [
      +                            "selector"
      +                          ]
      +                        },
      +                        {
      +                          "required": [
      +                            "browser_text"
      +                          ]
      +                        },
      +                        {
      +                          "required": [
      +                            "name"
      +                          ]
      +                        }
      +                      ]
      +                    }
      +                  }
      +                ],
      +                "properties": {
      +                  "target": {
      +                    "enum": [
      +                      "auto",
      +                      "ui",
      +                      "ui_element",
      +                      "browser",
      +                      "window"
      +                    ]
      +                  }
      +                },
      +                "required": [
      +                  "text"
      +                ]
      +              }
      +            },
      +            {
      +              "if": {
      +                "properties": {
      +                  "action": {
      +                    "const": "scroll"
      +                  }
      +                },
      +                "required": [
      +                  "action"
      +                ]
      +              },
      +              "then": {
      +                "allOf": [
      +                  {
      +                    "anyOf": [
      +                      {
      +                        "required": [
      +                          "delta_x"
      +                        ]
      +                      },
      +                      {
      +                        "required": [
      +                          "delta_y"
      +                        ]
      +                      },
      +                      {
      +                        "required": [
      +                          "delta"
      +                        ]
      +                      },
      +                      {
      +                        "required": [
      +                          "direction"
      +                        ]
      +                      }
      +                    ]
      +                  },
      +                  {
      +                    "if": {
      +                      "properties": {
      +                        "target": {
      +                          "enum": [
      +                            "ui",
      +                            "ui_element"
      +                          ]
      +                        }
      +                      },
      +                      "required": [
      +                        "target"
      +                      ]
      +                    },
      +                    "then": {
      +                      "anyOf": [
      +                        {
      +                          "required": [
      +                            "id"
      +                          ]
      +                        },
      +                        {
      +                          "required": [
      +                            "label"
      +                          ]
      +                        },
      +                        {
      +                          "required": [
      +                            "name"
      +                          ]
      +                        },
      +                        {
      +                          "required": [
      +                            "role"
      +                          ]
      +                        },
      +                        {
      +                          "required": [
      +                            "automation_id"
      +                          ]
      +                        }
      +                      ]
      +                    }
      +                  },
      +                  {
      +                    "if": {
      +                      "properties": {
      +                        "target": {
      +                          "const": "coordinates"
      +                        }
      +                      },
      +                      "required": [
      +                        "target"
      +                      ]
      +                    },
      +                    "then": {
      +                      "required": [
      +                        "x",
      +                        "y"
      +                      ]
      +                    }
      +                  }
      +                ],
      +                "properties": {
      +                  "target": {
      +                    "enum": [
      +                      "auto",
      +                      "ui",
      +                      "ui_element",
      +                      "browser",
      +                      "coordinates",
      +                      "window"
      +                    ]
      +                  }
      +                }
      +              }
      +            },
      +            {
      +              "if": {
      +                "properties": {
      +                  "action": {
      +                    "const": "drag"
      +                  }
      +                },
      +                "required": [
      +                  "action"
      +                ]
      +              },
      +              "then": {
      +                "allOf": [
      +                  {
      +                    "anyOf": [
      +                      {
      +                        "required": [
      +                          "from_id"
      +                        ]
      +                      },
      +                      {
      +                        "required": [
      +                          "from_x",
      +                          "from_y"
      +                        ]
      +                      }
      +                    ]
      +                  },
      +                  {
      +                    "anyOf": [
      +                      {
      +                        "required": [
      +                          "to_id"
      +                        ]
      +                      },
      +                      {
      +                        "required": [
      +                          "to_x",
      +                          "to_y"
      +                        ]
      +                      }
      +                    ]
      +                  },
      +                  {
      +                    "if": {
      +                      "properties": {
      +                        "target": {
      +                          "enum": [
      +                            "ui",
      +                            "ui_element"
      +                          ]
      +                        }
      +                      },
      +                      "required": [
      +                        "target"
      +                      ]
      +                    },
      +                    "then": {
      +                      "required": [
      +                        "from_id",
      +                        "to_id"
      +                      ]
      +                    }
      +                  },
      +                  {
      +                    "if": {
      +                      "properties": {
      +                        "target": {
      +                          "const": "coordinates"
      +                        }
      +                      },
      +                      "required": [
      +                        "target"
      +                      ]
      +                    },
      +                    "then": {
      +                      "required": [
      +                        "from_x",
      +                        "from_y",
      +                        "to_x",
      +                        "to_y"
      +                      ]
      +                    }
      +                  }
      +                ],
      +                "properties": {
      +                  "target": {
      +                    "enum": [
      +                      "auto",
      +                      "ui",
      +                      "ui_element",
      +                      "coordinates",
      +                      "window"
      +                    ]
      +                  }
      +                }
      +              }
      +            },
      +            {
      +              "if": {
      +                "properties": {
      +                  "action": {
      +                    "enum": [
      +                      "set_value",
      +                      "set_range_value"
      +                    ]
      +                  }
      +                },
      +                "required": [
      +                  "action"
      +                ]
      +              },
      +              "then": {
      +                "required": [
      +                  "value"
      +                ]
      +              }
      +            },
      +            {
      +              "if": {
      +                "properties": {
      +                  "action": {
      +                    "const": "multi_select"
      +                  }
      +                },
      +                "required": [
      +                  "action"
      +                ]
      +              },
      +              "then": {
      +                "required": [
      +                  "targets"
      +                ]
      +              }
      +            },
      +            {
      +              "if": {
      +                "properties": {
      +                  "action": {
      +                    "const": "multi_edit"
      +                  }
      +                },
      +                "required": [
      +                  "action"
      +                ]
      +              },
      +              "then": {
      +                "required": [
      +                  "edits"
      +                ]
      +              }
      +            }
      +          ],
      +          "properties": {
      +            "action": {
      +              "description": "Operation to perform; choose the narrowest action that directly matches the requested outcome.",
      +              "enum": [
      +                "click",
      +                "type",
      +                "invoke",
      +                "focus",
      +                "select",
      +                "scroll",
      +                "drag",
      +                "set_value",
      +                "toggle",
      +                "expand",
      +                "collapse",
      +                "scroll_into_view",
      +                "set_range_value",
      +                "add_to_selection",
      +                "remove_from_selection",
      +                "multi_select",
      +                "multi_edit"
      +              ],
      +              "type": "string"
      +            },
      +            "app": {
      +              "description": "Limit matching to an application/process name substring when available.",
      +              "type": "string"
      +            },
      +            "automation_id": {
      +              "description": "Windows AutomationId when available.",
      +              "type": "string"
      +            },
      +            "backend": {
      +              "description": "Input backend preference. auto uses proven local backends and already-authorized portal input; portal explicitly requests XDG RemoteDesktop consent on Wayland; x11 forces XWayland/xdotool only for operations where read-back testing shows it is reliable. GNOME Wayland keyboard/text deliberately reject x11.",
      +              "enum": [
      +                "auto",
      +                "x11",
      +                "portal"
      +              ],
      +              "type": "string"
      +            },
      +            "browser_text": {
      +              "description": "Visible browser text used only to locate a DOM target; for action=type, text remains the value to enter.",
      +              "type": "string"
      +            },
      +            "button": {
      +              "description": "Pointer button to use for click/down/up or drag gestures.",
      +              "enum": [
      +                "left",
      +                "right",
      +                "middle"
      +              ],
      +              "type": "string"
      +            },
      +            "clear": {
      +              "description": "For action=type, clear the current semantic/browser value before inserting text when supported.",
      +              "type": "boolean"
      +            },
      +            "delta": {
      +              "description": "Alias for delta_y.",
      +              "type": "number"
      +            },
      +            "delta_x": {
      +              "description": "Horizontal scroll delta; positive means right.",
      +              "type": "number"
      +            },
      +            "delta_y": {
      +              "description": "Vertical scroll delta; positive means down.",
      +              "type": "number"
      +            },
      +            "direction": {
      +              "description": "Human-readable scroll direction used with wheel_times instead of explicit deltas.",
      +              "enum": [
      +                "up",
      +                "down",
      +                "left",
      +                "right"
      +              ],
      +              "type": "string"
      +            },
      +            "duration_ms": {
      +              "description": "Drag movement duration.",
      +              "type": "number"
      +            },
      +            "edits": {
      +              "description": "Native semantic target + text entries for action=multi_edit.",
      +              "items": {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "app": {
      +                    "description": "Limit matching to an application/process name substring when available.",
      +                    "type": "string"
      +                  },
      +                  "automation_id": {
      +                    "description": "Windows AutomationId when available.",
      +                    "type": "string"
      +                  },
      +                  "clear": {
      +                    "description": "Clear the current value before entering text; default true.",
      +                    "type": "boolean"
      +                  },
      +                  "id": {
      +                    "description": "Element id returned by ui_snapshot or ui_find. Linux ids are stable per-process accessibility paths and legacy linux:<index> ids remain accepted.",
      +                    "type": "string"
      +                  },
      +                  "label": {
      +                    "description": "Compact numeric label from the most recent ui_snapshot/ui_find; useful for repeated actions without repeating names or coordinates.",
      +                    "type": "number"
      +                  },
      +                  "method": {
      +                    "description": "Text-entry strategy; auto is recommended.",
      +                    "enum": [
      +                      "auto",
      +                      "accessibility",
      +                      "clipboard",
      +                      "keys"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "name": {
      +                    "description": "Accessible name/title substring.",
      +                    "type": "string"
      +                  },
      +                  "pid": {
      +                    "description": "Limit matching to one owning process id when available.",
      +                    "type": "number"
      +                  },
      +                  "role": {
      +                    "description": "Accessible role such as Button, Edit, textbox or AXButton.",
      +                    "type": "string"
      +                  },
      +                  "text": {
      +                    "description": "Replacement text for this semantic edit.",
      +                    "type": "string"
      +                  },
      +                  "window_title": {
      +                    "description": "Limit matching to a top-level accessibility window/frame title substring when available.",
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "text"
      +                ],
      +                "type": "object"
      +              },
      +              "maxItems": 100,
      +              "minItems": 1,
      +              "type": "array"
      +            },
      +            "endpoint": {
      +              "description": "Loopback Chrome DevTools endpoint for a browser fallback.",
      +              "type": "string"
      +            },
      +            "from_id": {
      +              "description": "Source semantic UI element id for action=drag.",
      +              "type": "string"
      +            },
      +            "from_x": {
      +              "description": "Drag source X coordinate.",
      +              "type": "number"
      +            },
      +            "from_y": {
      +              "description": "Drag source Y coordinate.",
      +              "type": "number"
      +            },
      +            "hold_ms": {
      +              "description": "Delay after pointer down before moving during action=drag.",
      +              "type": "number"
      +            },
      +            "id": {
      +              "description": "Element id returned by ui_snapshot or ui_find. Linux ids are stable per-process accessibility paths and legacy linux:<index> ids remain accepted.",
      +              "type": "string"
      +            },
      +            "label": {
      +              "description": "Compact numeric label from the most recent ui_snapshot/ui_find; useful for repeated actions without repeating names or coordinates.",
      +              "type": "number"
      +            },
      +            "name": {
      +              "description": "Accessible name/title substring.",
      +              "type": "string"
      +            },
      +            "ocr_language": {
      +              "description": "Tesseract language code, default eng.",
      +              "type": "string"
      +            },
      +            "ocr_psm": {
      +              "description": "Tesseract page segmentation mode, default 11.",
      +              "type": "number"
      +            },
      +            "ocr_region": {
      +              "description": "Optional virtual-desktop [left,top,right,bottom] region to OCR. Prefer bounds from list_windows or computer_snapshot.",
      +              "items": {
      +                "type": "number"
      +              },
      +              "maxItems": 4,
      +              "minItems": 4,
      +              "type": "array"
      +            },
      +            "ocr_text": {
      +              "description": "Visible text to find in rendered pixels for the OCR click fallback.",
      +              "type": "string"
      +            },
      +            "ocr_timeout_ms": {
      +              "description": "OCR timeout in milliseconds.",
      +              "type": "number"
      +            },
      +            "option": {
      +              "description": "Option value for browser select.",
      +              "type": "string"
      +            },
      +            "pid": {
      +              "description": "Limit matching to one owning process id when available.",
      +              "type": "number"
      +            },
      +            "replace_selection": {
      +              "description": "For multi_select, select the first item before adding the rest; default true.",
      +              "type": "boolean"
      +            },
      +            "role": {
      +              "description": "Accessible role such as Button, Edit, textbox or AXButton.",
      +              "type": "string"
      +            },
      +            "selector": {
      +              "description": "CSS selector when the fallback target is a browser element.",
      +              "type": "string"
      +            },
      +            "target": {
      +              "description": "Optional target type. auto prefers native accessibility, then browser DOM/CDP, then OCR/coordinates where supported. Use window for explicit top-level window focus/text/scroll targeting.",
      +              "enum": [
      +                "auto",
      +                "ui",
      +                "ui_element",
      +                "browser",
      +                "ocr",
      +                "coordinates",
      +                "window"
      +              ],
      +              "type": "string"
      +            },
      +            "target_id": {
      +              "description": "Browser page target id returned by browser_tabs.",
      +              "type": "string"
      +            },
      +            "targets": {
      +              "description": "Native semantic targets for action=multi_select.",
      +              "items": {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "app": {
      +                    "description": "Limit matching to an application/process name substring when available.",
      +                    "type": "string"
      +                  },
      +                  "automation_id": {
      +                    "description": "Windows AutomationId when available.",
      +                    "type": "string"
      +                  },
      +                  "id": {
      +                    "description": "Element id returned by ui_snapshot or ui_find. Linux ids are stable per-process accessibility paths and legacy linux:<index> ids remain accepted.",
      +                    "type": "string"
      +                  },
      +                  "label": {
      +                    "description": "Compact numeric label from the most recent ui_snapshot/ui_find; useful for repeated actions without repeating names or coordinates.",
      +                    "type": "number"
      +                  },
      +                  "name": {
      +                    "description": "Accessible name/title substring.",
      +                    "type": "string"
      +                  },
      +                  "pid": {
      +                    "description": "Limit matching to one owning process id when available.",
      +                    "type": "number"
      +                  },
      +                  "role": {
      +                    "description": "Accessible role such as Button, Edit, textbox or AXButton.",
      +                    "type": "string"
      +                  },
      +                  "window_title": {
      +                    "description": "Limit matching to a top-level accessibility window/frame title substring when available.",
      +                    "type": "string"
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "maxItems": 100,
      +              "minItems": 1,
      +              "type": "array"
      +            },
      +            "text": {
      +              "description": "Unicode text to enter for action=type, or text used by multi_edit.",
      +              "type": "string"
      +            },
      +            "title": {
      +              "description": "Optional browser page title substring or top-level window title when target=window.",
      +              "type": "string"
      +            },
      +            "to_id": {
      +              "description": "Destination semantic UI element id for action=drag.",
      +              "type": "string"
      +            },
      +            "to_x": {
      +              "description": "Drag destination X coordinate.",
      +              "type": "number"
      +            },
      +            "to_y": {
      +              "description": "Drag destination Y coordinate.",
      +              "type": "number"
      +            },
      +            "url_contains": {
      +              "description": "Browser URL substring used to select a page.",
      +              "type": "string"
      +            },
      +            "value": {
      +              "description": "New value for set_value, set_range_value, or select.",
      +              "type": "string"
      +            },
      +            "wheel_times": {
      +              "description": "Number of 120-unit wheel steps for direction; 1..50.",
      +              "type": "number"
      +            },
      +            "window_id": {
      +              "description": "Top-level window id returned by list_windows when target=window.",
      +              "type": "string"
      +            },
      +            "window_title": {
      +              "description": "Limit matching to a top-level accessibility window/frame title substring when available.",
      +              "type": "string"
      +            },
      +            "x": {
      +              "description": "Virtual-desktop X coordinate used by click/scroll coordinate targeting.",
      +              "type": "number"
      +            },
      +            "y": {
      +              "description": "Virtual-desktop Y coordinate used by click/scroll coordinate targeting.",
      +              "type": "number"
      +            }
      +          },
      +          "required": [
      +            "action"
      +          ],
      +          "type": "object"
      +        }
      +      },
      +      "required": [
      +        "parameters"
      +      ]
      +    }
      +  }
      +]
    • changedOutput schema / oneOf
      Previous value: -[
      -  {
      -    "additionalProperties": true,
      -    "description": "Computer snapshot structured result for computer_snapshot. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.",
      -    "properties": {
      -      "active_window": {
      -        "additionalProperties": true,
      -        "description": "Active top-level window when known; null when accessibility state cannot be joined to top-level window enumeration.",
      -        "type": [
      -          "object",
      -          "null"
      -        ]
      -      },
      -      "browser": {
      -        "additionalProperties": true,
      -        "description": "Optional browser DOM/CDP snapshot.",
      -        "type": "object"
      -      },
      -      "bytes": {
      -        "description": "Serialized structured-result size when truncation metadata is returned.",
      -        "type": "number"
      -      },
      -      "clipboard": {
      -        "additionalProperties": true,
      -        "description": "Clipboard metadata only unless clipboard content was explicitly requested.",
      -        "type": "object"
      -      },
      -      "cursor": {
      -        "additionalProperties": true,
      -        "description": "Pointer position when available.",
      -        "type": "object"
      -      },
      -      "data": {
      -        "description": "Array/scalar payload wrapper used when the natural result is not an object."
      -      },
      -      "device": {
      -        "additionalProperties": true,
      -        "description": "Device/platform metadata for the captured computer state.",
      -        "type": "object"
      -      },
      -      "displays": {
      -        "description": "Display inventory used for virtual-desktop geometry.",
      -        "items": {
      -          "additionalProperties": true,
      -          "type": "object"
      -        },
      -        "type": "array"
      -      },
      -      "errors": {
      -        "description": "Non-fatal sub-capture errors.",
      -        "items": {
      -          "additionalProperties": true,
      -          "type": "object"
      -        },
      -        "type": "array"
      -      },
      -      "fallback_chain": {
      -        "additionalProperties": true,
      -        "description": "Which semantic/DOM/OCR/coordinate layers were requested and available.",
      -        "type": "object"
      -      },
      -      "ocr": {
      -        "additionalProperties": true,
      -        "description": "Optional OCR words/metadata.",
      -        "type": "object"
      -      },
      -      "preview": {
      -        "description": "Bounded JSON preview when the full structured mirror is too large.",
      -        "type": "string"
      -      },
      -      "text": {
      -        "description": "Human-readable structured mirror for text-only results.",
      -        "type": "string"
      -      },
      -      "truncated": {
      -        "description": "True when the structured mirror was bounded because the result was large.",
      -        "type": "boolean"
      -      },
      -      "ui": {
      -        "additionalProperties": true,
      -        "description": "Native accessibility snapshot and semantic tree.",
      -        "type": "object"
      -      },
      -      "windows": {
      -        "description": "Top-level windows with stable ids/PIDs/bounds when available.",
      -        "items": {
      -          "additionalProperties": true,
      -          "type": "object"
      -        },
      -        "type": "array"
      -      }
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": true,
      -    "description": "Computer action structured result for computer_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.",
      -    "properties": {
      -      "action": {
      -        "type": "string"
      -      },
      -      "bytes": {
      -        "description": "Serialized structured-result size when truncation metadata is returned.",
      -        "type": "number"
      -      },
      -      "capped": {
      -        "type": "boolean"
      -      },
      -      "completed": {
      -        "type": "number"
      -      },
      -      "count": {
      -        "type": "number"
      -      },
      -      "data": {
      -        "description": "Array/scalar payload wrapper used when the natural result is not an object."
      -      },
      -      "ok": {
      -        "type": "boolean"
      -      },
      -      "preview": {
      -        "description": "Bounded JSON preview when the full structured mirror is too large.",
      -        "type": "string"
      -      },
      -      "results": {
      -        "items": {
      -          "additionalProperties": true,
      -          "type": "object"
      -        },
      -        "type": "array"
      -      },
      -      "stopped_at": {
      -        "type": "number"
      -      },
      -      "text": {
      -        "description": "Human-readable structured mirror for text-only results.",
      -        "type": "string"
      -      },
      -      "truncated": {
      -        "description": "True when the structured mirror was bounded because the result was large.",
      -        "type": "boolean"
      -      },
      -      "waited_ms": {
      -        "type": "number"
      -      }
      -    },
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": true,
      +    "description": "Computer snapshot structured result for computer_snapshot. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.",
      +    "properties": {
      +      "active_window": {
      +        "additionalProperties": true,
      +        "description": "Active top-level window when known; null when accessibility state cannot be joined to top-level window enumeration.",
      +        "type": [
      +          "object",
      +          "null"
      +        ]
      +      },
      +      "browser": {
      +        "additionalProperties": true,
      +        "description": "Optional browser DOM/CDP snapshot.",
      +        "type": "object"
      +      },
      +      "browser_readiness": {
      +        "additionalProperties": true,
      +        "description": "Optional bounded local CDP readiness status and fallback hint; no tab titles or URLs.",
      +        "type": "object"
      +      },
      +      "bytes": {
      +        "description": "Serialized structured-result size when truncation metadata is returned.",
      +        "type": "number"
      +      },
      +      "clipboard": {
      +        "additionalProperties": true,
      +        "description": "Clipboard metadata only unless clipboard content was explicitly requested.",
      +        "type": "object"
      +      },
      +      "cursor": {
      +        "additionalProperties": true,
      +        "description": "Pointer position when available.",
      +        "type": "object"
      +      },
      +      "data": {
      +        "description": "Array/scalar payload wrapper used when the natural result is not an object."
      +      },
      +      "device": {
      +        "additionalProperties": true,
      +        "description": "Device/platform metadata for the captured computer state.",
      +        "type": "object"
      +      },
      +      "displays": {
      +        "description": "Display inventory used for virtual-desktop geometry.",
      +        "items": {
      +          "additionalProperties": true,
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "errors": {
      +        "description": "Non-fatal sub-capture errors.",
      +        "items": {
      +          "additionalProperties": true,
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "fallback_chain": {
      +        "additionalProperties": true,
      +        "description": "Which semantic/DOM/OCR/coordinate layers were requested and available.",
      +        "type": "object"
      +      },
      +      "ocr": {
      +        "additionalProperties": true,
      +        "description": "Optional OCR words/metadata.",
      +        "type": "object"
      +      },
      +      "preview": {
      +        "description": "Bounded JSON preview when the full structured mirror is too large.",
      +        "type": "string"
      +      },
      +      "text": {
      +        "description": "Human-readable structured mirror for text-only results.",
      +        "type": "string"
      +      },
      +      "truncated": {
      +        "description": "True when the structured mirror was bounded because the result was large.",
      +        "type": "boolean"
      +      },
      +      "ui": {
      +        "additionalProperties": true,
      +        "description": "Native accessibility snapshot and semantic tree.",
      +        "type": "object"
      +      },
      +      "windows": {
      +        "description": "Top-level windows with stable ids/PIDs/bounds when available.",
      +        "items": {
      +          "additionalProperties": true,
      +          "type": "object"
      +        },
      +        "type": "array"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": true,
      +    "description": "Computer action structured result for computer_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.",
      +    "properties": {
      +      "action": {
      +        "type": "string"
      +      },
      +      "bytes": {
      +        "description": "Serialized structured-result size when truncation metadata is returned.",
      +        "type": "number"
      +      },
      +      "capped": {
      +        "type": "boolean"
      +      },
      +      "completed": {
      +        "type": "number"
      +      },
      +      "count": {
      +        "type": "number"
      +      },
      +      "data": {
      +        "description": "Array/scalar payload wrapper used when the natural result is not an object."
      +      },
      +      "ok": {
      +        "type": "boolean"
      +      },
      +      "preview": {
      +        "description": "Bounded JSON preview when the full structured mirror is too large.",
      +        "type": "string"
      +      },
      +      "results": {
      +        "items": {
      +          "additionalProperties": true,
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "stopped_at": {
      +        "type": "number"
      +      },
      +      "text": {
      +        "description": "Human-readable structured mirror for text-only results.",
      +        "type": "string"
      +      },
      +      "truncated": {
      +        "description": "True when the structured mirror was bounded because the result was large.",
      +        "type": "boolean"
      +      },
      +      "waited_ms": {
      +        "type": "number"
      +      }
      +    },
      +    "type": "object"
      +  }
      +]
  2. Changed1 schema field changedv0.2.141
    • changedInput schema / allOf
      Previous value: -[
      -  {
      -    "if": {
      -      "properties": {
      -        "operation": {
      -          "const": "computer_snapshot"
      -        }
      -      },
      -      "required": [
      -        "operation"
      -      ]
      -    },
      -    "then": {
      -      "properties": {
      -        "parameters": {
      -          "additionalProperties": false,
      -          "properties": {
      -            "browser_max_nodes": {
      -              "description": "Maximum browser accessibility nodes; default 500, maximum 2000.",
      -              "type": "number"
      -            },
      -            "grid_columns": {
      -              "description": "Optional reference-grid column count returned as visual metadata; 0..20.",
      -              "type": "number"
      -            },
      -            "grid_rows": {
      -              "description": "Optional reference-grid row count returned as visual metadata; 0..20.",
      -              "type": "number"
      -            },
      -            "include_browser": {
      -              "description": "Include CDP browser accessibility when available. Default auto: only when the active app looks Chromium-based.",
      -              "type": "boolean"
      -            },
      -            "include_ocr": {
      -              "description": "Run optional local OCR. Default auto: only when native accessibility and browser DOM are unavailable. Requires tesseract on PATH.",
      -              "type": "boolean"
      -            },
      -            "include_screenshot": {
      -              "description": "Include real rendered desktop pixels; default true.",
      -              "type": "boolean"
      -            },
      -            "include_ui": {
      -              "description": "Include native accessibility tree; default true. False is the fast screenshot-only path.",
      -              "type": "boolean"
      -            },
      -            "max_ui_depth": {
      -              "description": "Maximum native accessibility depth; default 12.",
      -              "type": "number"
      -            },
      -            "max_ui_nodes": {
      -              "description": "Maximum native accessibility nodes; default 800.",
      -              "type": "number"
      -            },
      -            "ocr_language": {
      -              "description": "Tesseract language code, default eng; multiple languages may use eng+deu.",
      -              "type": "string"
      -            },
      -            "ocr_max_words": {
      -              "description": "Maximum OCR word boxes returned; default 2000, maximum 10000.",
      -              "type": "number"
      -            },
      -            "ocr_psm": {
      -              "description": "Tesseract page segmentation mode, 3..13; default 11.",
      -              "type": "number"
      -            },
      -            "ocr_timeout_ms": {
      -              "description": "OCR timeout, default 30000 ms, maximum 120000 ms.",
      -              "type": "number"
      -            },
      -            "screenshot_monitor": {
      -              "description": "Monitor name substring or \"primary\".",
      -              "type": "string"
      -            },
      -            "screenshot_monitor_index": {
      -              "description": "Zero-based monitor index.",
      -              "type": "number"
      -            },
      -            "screenshot_padding": {
      -              "description": "Pixels of context around a targeted screenshot; 0..200.",
      -              "type": "number"
      -            },
      -            "screenshot_region": {
      -              "description": "Virtual-desktop [left,top,right,bottom] region; takes precedence over full desktop.",
      -              "items": {
      -                "type": "number"
      -              },
      -              "maxItems": 4,
      -              "minItems": 4,
      -              "type": "array"
      -            },
      -            "screenshot_window_id": {
      -              "description": "Capture the window returned by list_windows instead of the whole desktop.",
      -              "type": "string"
      -            },
      -            "semantic_tree": {
      -              "description": "Include compact semantic hierarchy text alongside nodes; default true.",
      -              "type": "boolean"
      -            },
      -            "ui_browser_dom": {
      -              "description": "Prefer the native browser accessibility document subtree when the OS exposes one; on Windows this also enables the Firefox MSAA/IAccessible fallback.",
      -              "type": "boolean"
      -            },
      -            "ui_scope": {
      -              "description": "Accessibility scope for computer_snapshot. Default active keeps the compact snapshot fast; desktop requests all accessible applications/windows.",
      -              "enum": [
      -                "active",
      -                "desktop"
      -              ],
      -              "type": "string"
      -            }
      -          },
      -          "type": "object"
      -        }
      -      }
      -    }
      -  },
      -  {
      -    "if": {
      -      "properties": {
      -        "operation": {
      -          "const": "computer_action"
      -        }
      -      },
      -      "required": [
      -        "operation"
      -      ]
      -    },
      -    "then": {
      -      "properties": {
      -        "parameters": {
      -          "additionalProperties": false,
      -          "allOf": [
      -            {
      -              "if": {
      -                "properties": {
      -                  "action": {
      -                    "const": "click"
      -                  }
      -                },
      -                "required": [
      -                  "action"
      -                ]
      -              },
      -              "then": {
      -                "anyOf": [
      -                  {
      -                    "required": [
      -                      "id"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "label"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "name"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "role"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "automation_id"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "selector"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "browser_text"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "ocr_text"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "x",
      -                      "y"
      -                    ]
      -                  }
      -                ]
      -              }
      -            },
      -            {
      -              "if": {
      -                "properties": {
      -                  "action": {
      -                    "enum": [
      -                      "invoke",
      -                      "set_value",
      -                      "select",
      -                      "toggle",
      -                      "expand",
      -                      "collapse",
      -                      "scroll_into_view",
      -                      "set_range_value",
      -                      "add_to_selection",
      -                      "remove_from_selection"
      -                    ]
      -                  }
      -                },
      -                "required": [
      -                  "action"
      -                ]
      -              },
      -              "then": {
      -                "anyOf": [
      -                  {
      -                    "required": [
      -                      "id"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "label"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "name"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "role"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "automation_id"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "selector"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "browser_text"
      -                    ]
      -                  }
      -                ]
      -              }
      -            },
      -            {
      -              "if": {
      -                "properties": {
      -                  "action": {
      -                    "const": "focus"
      -                  }
      -                },
      -                "required": [
      -                  "action"
      -                ]
      -              },
      -              "then": {
      -                "anyOf": [
      -                  {
      -                    "required": [
      -                      "id"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "label"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "name"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "role"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "automation_id"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "selector"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "browser_text"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "pid"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "app"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "window_title"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "title"
      -                    ]
      -                  }
      -                ]
      -              }
      -            },
      -            {
      -              "if": {
      -                "properties": {
      -                  "action": {
      -                    "enum": [
      -                      "set_value",
      -                      "set_range_value"
      -                    ]
      -                  }
      -                },
      -                "required": [
      -                  "action"
      -                ]
      -              },
      -              "then": {
      -                "required": [
      -                  "value"
      -                ]
      -              }
      -            },
      -            {
      -              "if": {
      -                "properties": {
      -                  "action": {
      -                    "const": "multi_select"
      -                  }
      -                },
      -                "required": [
      -                  "action"
      -                ]
      -              },
      -              "then": {
      -                "required": [
      -                  "targets"
      -                ]
      -              }
      -            },
      -            {
      -              "if": {
      -                "properties": {
      -                  "action": {
      -                    "const": "multi_edit"
      -                  }
      -                },
      -                "required": [
      -                  "action"
      -                ]
      -              },
      -              "then": {
      -                "required": [
      -                  "edits"
      -                ]
      -              }
      -            }
      -          ],
      -          "properties": {
      -            "action": {
      -              "description": "Operation to perform; choose the narrowest action that directly matches the requested outcome.",
      -              "enum": [
      -                "click",
      -                "invoke",
      -                "focus",
      -                "set_value",
      -                "select",
      -                "toggle",
      -                "expand",
      -                "collapse",
      -                "scroll_into_view",
      -                "set_range_value",
      -                "add_to_selection",
      -                "remove_from_selection",
      -                "multi_select",
      -                "multi_edit"
      -              ],
      -              "type": "string"
      -            },
      -            "app": {
      -              "description": "Limit matching to an application/process name substring when available.",
      -              "type": "string"
      -            },
      -            "automation_id": {
      -              "description": "Windows AutomationId when available.",
      -              "type": "string"
      -            },
      -            "backend": {
      -              "description": "Input backend preference. auto uses proven local backends and already-authorized portal input; portal explicitly requests XDG RemoteDesktop consent on Wayland; x11 forces XWayland/xdotool only for operations where read-back testing shows it is reliable. GNOME Wayland keyboard/text deliberately reject x11.",
      -              "enum": [
      -                "auto",
      -                "x11",
      -                "portal"
      -              ],
      -              "type": "string"
      -            },
      -            "browser_text": {
      -              "description": "Visible browser text used to locate a DOM fallback target.",
      -              "type": "string"
      -            },
      -            "edits": {
      -              "description": "Native semantic target + text entries for action=multi_edit.",
      -              "items": {
      -                "additionalProperties": false,
      -                "properties": {
      -                  "app": {
      -                    "description": "Limit matching to an application/process name substring when available.",
      -                    "type": "string"
      -                  },
      -                  "automation_id": {
      -                    "description": "Windows AutomationId when available.",
      -                    "type": "string"
      -                  },
      -                  "clear": {
      -                    "description": "Clear the current value before entering text; default true.",
      -                    "type": "boolean"
      -                  },
      -                  "id": {
      -                    "description": "Element id returned by ui_snapshot or ui_find. Linux ids are stable per-process accessibility paths and legacy linux:<index> ids remain accepted.",
      -                    "type": "string"
      -                  },
      -                  "label": {
      -                    "description": "Compact numeric label from the most recent ui_snapshot/ui_find; useful for repeated actions without repeating names or coordinates.",
      -                    "type": "number"
      -                  },
      -                  "method": {
      -                    "description": "Text-entry strategy; auto is recommended.",
      -                    "enum": [
      -                      "auto",
      -                      "accessibility",
      -                      "clipboard",
      -                      "keys"
      -                    ],
      -                    "type": "string"
      -                  },
      -                  "name": {
      -                    "description": "Accessible name/title substring.",
      -                    "type": "string"
      -                  },
      -                  "pid": {
      -                    "description": "Limit matching to one owning process id when available.",
      -                    "type": "number"
      -                  },
      -                  "role": {
      -                    "description": "Accessible role such as Button, Edit, textbox or AXButton.",
      -                    "type": "string"
      -                  },
      -                  "text": {
      -                    "description": "Replacement text for this semantic edit.",
      -                    "type": "string"
      -                  },
      -                  "window_title": {
      -                    "description": "Limit matching to a top-level accessibility window/frame title substring when available.",
      -                    "type": "string"
      -                  }
      -                },
      -                "required": [
      -                  "text"
      -                ],
      -                "type": "object"
      -              },
      -              "maxItems": 100,
      -              "minItems": 1,
      -              "type": "array"
      -            },
      -            "endpoint": {
      -              "description": "Loopback Chrome DevTools endpoint for a browser fallback.",
      -              "type": "string"
      -            },
      -            "id": {
      -              "description": "Element id returned by ui_snapshot or ui_find. Linux ids are stable per-process accessibility paths and legacy linux:<index> ids remain accepted.",
      -              "type": "string"
      -            },
      -            "label": {
      -              "description": "Compact numeric label from the most recent ui_snapshot/ui_find; useful for repeated actions without repeating names or coordinates.",
      -              "type": "number"
      -            },
      -            "name": {
      -              "description": "Accessible name/title substring.",
      -              "type": "string"
      -            },
      -            "ocr_language": {
      -              "description": "Tesseract language code, default eng.",
      -              "type": "string"
      -            },
      -            "ocr_psm": {
      -              "description": "Tesseract page segmentation mode, default 11.",
      -              "type": "number"
      -            },
      -            "ocr_region": {
      -              "description": "Optional virtual-desktop [left,top,right,bottom] region to OCR. Prefer bounds from list_windows or computer_snapshot.",
      -              "items": {
      -                "type": "number"
      -              },
      -              "maxItems": 4,
      -              "minItems": 4,
      -              "type": "array"
      -            },
      -            "ocr_text": {
      -              "description": "Visible text to find in rendered pixels for the OCR click fallback.",
      -              "type": "string"
      -            },
      -            "ocr_timeout_ms": {
      -              "description": "OCR timeout in milliseconds.",
      -              "type": "number"
      -            },
      -            "option": {
      -              "description": "Option value for browser select.",
      -              "type": "string"
      -            },
      -            "pid": {
      -              "description": "Limit matching to one owning process id when available.",
      -              "type": "number"
      -            },
      -            "replace_selection": {
      -              "description": "For multi_select, select the first item before adding the rest; default true.",
      -              "type": "boolean"
      -            },
      -            "role": {
      -              "description": "Accessible role such as Button, Edit, textbox or AXButton.",
      -              "type": "string"
      -            },
      -            "selector": {
      -              "description": "CSS selector when the fallback target is a browser element.",
      -              "type": "string"
      -            },
      -            "target": {
      -              "description": "Optional target type. auto tries native accessibility first, then browser DOM/CDP, OCR text when requested, then coordinates for click.",
      -              "enum": [
      -                "auto",
      -                "ui",
      -                "ui_element",
      -                "browser",
      -                "ocr",
      -                "coordinates"
      -              ],
      -              "type": "string"
      -            },
      -            "target_id": {
      -              "description": "Browser page target id returned by browser_tabs.",
      -              "type": "string"
      -            },
      -            "targets": {
      -              "description": "Native semantic targets for action=multi_select.",
      -              "items": {
      -                "additionalProperties": false,
      -                "properties": {
      -                  "app": {
      -                    "description": "Limit matching to an application/process name substring when available.",
      -                    "type": "string"
      -                  },
      -                  "automation_id": {
      -                    "description": "Windows AutomationId when available.",
      -                    "type": "string"
      -                  },
      -                  "id": {
      -                    "description": "Element id returned by ui_snapshot or ui_find. Linux ids are stable per-process accessibility paths and legacy linux:<index> ids remain accepted.",
      -                    "type": "string"
      -                  },
      -                  "label": {
      -                    "description": "Compact numeric label from the most recent ui_snapshot/ui_find; useful for repeated actions without repeating names or coordinates.",
      -                    "type": "number"
      -                  },
      -                  "name": {
      -                    "description": "Accessible name/title substring.",
      -                    "type": "string"
      -                  },
      -                  "pid": {
      -                    "description": "Limit matching to one owning process id when available.",
      -                    "type": "number"
      -                  },
      -                  "role": {
      -                    "description": "Accessible role such as Button, Edit, textbox or AXButton.",
      -                    "type": "string"
      -                  },
      -                  "window_title": {
      -                    "description": "Limit matching to a top-level accessibility window/frame title substring when available.",
      -                    "type": "string"
      -                  }
      -                },
      -                "type": "object"
      -              },
      -              "maxItems": 100,
      -              "minItems": 1,
      -              "type": "array"
      -            },
      -            "text": {
      -              "description": "Text used by multi_edit or as a compatibility value for a semantic edit.",
      -              "type": "string"
      -            },
      -            "title": {
      -              "description": "Optional browser page title substring when target=browser.",
      -              "type": "string"
      -            },
      -            "url_contains": {
      -              "description": "Browser URL substring used to select a page.",
      -              "type": "string"
      -            },
      -            "value": {
      -              "description": "New value for set_value, set_range_value, or select.",
      -              "type": "string"
      -            },
      -            "window_title": {
      -              "description": "Limit matching to a top-level accessibility window/frame title substring when available.",
      -              "type": "string"
      -            },
      -            "x": {
      -              "description": "Virtual-desktop X coordinate used only by the final click fallback.",
      -              "type": "number"
      -            },
      -            "y": {
      -              "description": "Virtual-desktop Y coordinate used only by the final click fallback.",
      -              "type": "number"
      -            }
      -          },
      -          "required": [
      -            "action"
      -          ],
      -          "type": "object"
      -        }
      -      },
      -      "required": [
      -        "parameters"
      -      ]
      -    }
      -  }
      -]New value: +[
      +  {
      +    "if": {
      +      "properties": {
      +        "operation": {
      +          "const": "computer_snapshot"
      +        }
      +      },
      +      "required": [
      +        "operation"
      +      ]
      +    },
      +    "then": {
      +      "properties": {
      +        "parameters": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "browser_max_nodes": {
      +              "description": "Maximum browser accessibility nodes; default 500, maximum 2000.",
      +              "type": "number"
      +            },
      +            "grid_columns": {
      +              "description": "Optional reference-grid column count returned as visual metadata; 0..20.",
      +              "type": "number"
      +            },
      +            "grid_rows": {
      +              "description": "Optional reference-grid row count returned as visual metadata; 0..20.",
      +              "type": "number"
      +            },
      +            "include_browser": {
      +              "description": "Include CDP browser accessibility when available. Default auto: only when the active app looks Chromium-based.",
      +              "type": "boolean"
      +            },
      +            "include_ocr": {
      +              "description": "Run optional local OCR. Default auto: only when native accessibility and browser DOM are unavailable. Requires tesseract on PATH.",
      +              "type": "boolean"
      +            },
      +            "include_screenshot": {
      +              "description": "Include real rendered desktop pixels; default true.",
      +              "type": "boolean"
      +            },
      +            "include_ui": {
      +              "description": "Include native accessibility tree; default true. False is the fast screenshot-only path.",
      +              "type": "boolean"
      +            },
      +            "max_ui_depth": {
      +              "description": "Maximum native accessibility depth; default 12.",
      +              "type": "number"
      +            },
      +            "max_ui_nodes": {
      +              "description": "Maximum native accessibility nodes; default 800.",
      +              "type": "number"
      +            },
      +            "ocr_language": {
      +              "description": "Tesseract language code, default eng; multiple languages may use eng+deu.",
      +              "type": "string"
      +            },
      +            "ocr_max_words": {
      +              "description": "Maximum OCR word boxes returned; default 2000, maximum 10000.",
      +              "type": "number"
      +            },
      +            "ocr_psm": {
      +              "description": "Tesseract page segmentation mode, 3..13; default 11.",
      +              "type": "number"
      +            },
      +            "ocr_timeout_ms": {
      +              "description": "OCR timeout, default 30000 ms, maximum 120000 ms.",
      +              "type": "number"
      +            },
      +            "screenshot_monitor": {
      +              "description": "Monitor name substring or \"primary\".",
      +              "type": "string"
      +            },
      +            "screenshot_monitor_index": {
      +              "description": "Zero-based monitor index.",
      +              "type": "number"
      +            },
      +            "screenshot_padding": {
      +              "description": "Pixels of context around a targeted screenshot; 0..200.",
      +              "type": "number"
      +            },
      +            "screenshot_region": {
      +              "description": "Virtual-desktop [left,top,right,bottom] region; takes precedence over full desktop.",
      +              "items": {
      +                "type": "number"
      +              },
      +              "maxItems": 4,
      +              "minItems": 4,
      +              "type": "array"
      +            },
      +            "screenshot_window_id": {
      +              "description": "Capture the window returned by list_windows instead of the whole desktop.",
      +              "type": "string"
      +            },
      +            "semantic_tree": {
      +              "description": "Include compact semantic hierarchy text alongside nodes; default true.",
      +              "type": "boolean"
      +            },
      +            "ui_browser_dom": {
      +              "description": "Prefer the native browser accessibility document subtree when the OS exposes one; on Windows this also enables the Firefox MSAA/IAccessible fallback.",
      +              "type": "boolean"
      +            },
      +            "ui_scope": {
      +              "description": "Accessibility scope for computer_snapshot. Default active keeps the compact snapshot fast; desktop requests all accessible applications/windows.",
      +              "enum": [
      +                "active",
      +                "desktop"
      +              ],
      +              "type": "string"
      +            }
      +          },
      +          "type": "object"
      +        }
      +      }
      +    }
      +  },
      +  {
      +    "if": {
      +      "properties": {
      +        "operation": {
      +          "const": "computer_action"
      +        }
      +      },
      +      "required": [
      +        "operation"
      +      ]
      +    },
      +    "then": {
      +      "properties": {
      +        "parameters": {
      +          "additionalProperties": false,
      +          "allOf": [
      +            {
      +              "if": {
      +                "properties": {
      +                  "target": {
      +                    "const": "window"
      +                  }
      +                },
      +                "required": [
      +                  "target"
      +                ]
      +              },
      +              "then": {
      +                "anyOf": [
      +                  {
      +                    "required": [
      +                      "window_id"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "pid"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "app"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "window_title"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "title"
      +                    ]
      +                  }
      +                ],
      +                "properties": {
      +                  "action": {
      +                    "enum": [
      +                      "type",
      +                      "focus",
      +                      "scroll",
      +                      "drag"
      +                    ]
      +                  }
      +                }
      +              }
      +            },
      +            {
      +              "if": {
      +                "properties": {
      +                  "action": {
      +                    "const": "click"
      +                  }
      +                },
      +                "required": [
      +                  "action"
      +                ]
      +              },
      +              "then": {
      +                "anyOf": [
      +                  {
      +                    "required": [
      +                      "id"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "label"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "name"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "role"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "automation_id"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "selector"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "browser_text"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "name"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "ocr_text"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "x",
      +                      "y"
      +                    ]
      +                  }
      +                ]
      +              }
      +            },
      +            {
      +              "if": {
      +                "properties": {
      +                  "action": {
      +                    "enum": [
      +                      "invoke",
      +                      "set_value",
      +                      "select",
      +                      "toggle",
      +                      "expand",
      +                      "collapse",
      +                      "scroll_into_view",
      +                      "set_range_value",
      +                      "add_to_selection",
      +                      "remove_from_selection"
      +                    ]
      +                  }
      +                },
      +                "required": [
      +                  "action"
      +                ]
      +              },
      +              "then": {
      +                "anyOf": [
      +                  {
      +                    "required": [
      +                      "id"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "label"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "name"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "role"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "automation_id"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "selector"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "browser_text"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "name"
      +                    ]
      +                  }
      +                ]
      +              }
      +            },
      +            {
      +              "if": {
      +                "properties": {
      +                  "action": {
      +                    "const": "focus"
      +                  }
      +                },
      +                "required": [
      +                  "action"
      +                ]
      +              },
      +              "then": {
      +                "anyOf": [
      +                  {
      +                    "required": [
      +                      "id"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "label"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "name"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "role"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "automation_id"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "selector"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "browser_text"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "name"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "window_id"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "pid"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "app"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "window_title"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "title"
      +                    ]
      +                  }
      +                ]
      +              }
      +            },
      +            {
      +              "if": {
      +                "properties": {
      +                  "action": {
      +                    "const": "type"
      +                  }
      +                },
      +                "required": [
      +                  "action"
      +                ]
      +              },
      +              "then": {
      +                "allOf": [
      +                  {
      +                    "anyOf": [
      +                      {
      +                        "required": [
      +                          "id"
      +                        ]
      +                      },
      +                      {
      +                        "required": [
      +                          "label"
      +                        ]
      +                      },
      +                      {
      +                        "required": [
      +                          "name"
      +                        ]
      +                      },
      +                      {
      +                        "required": [
      +                          "role"
      +                        ]
      +                      },
      +                      {
      +                        "required": [
      +                          "automation_id"
      +                        ]
      +                      },
      +                      {
      +                        "required": [
      +                          "selector"
      +                        ]
      +                      },
      +                      {
      +                        "required": [
      +                          "browser_text"
      +                        ]
      +                      },
      +                      {
      +                        "required": [
      +                          "name"
      +                        ]
      +                      },
      +                      {
      +                        "required": [
      +                          "window_id"
      +                        ]
      +                      },
      +                      {
      +                        "required": [
      +                          "pid"
      +                        ]
      +                      },
      +                      {
      +                        "required": [
      +                          "app"
      +                        ]
      +                      },
      +                      {
      +                        "required": [
      +                          "window_title"
      +                        ]
      +                      },
      +                      {
      +                        "required": [
      +                          "title"
      +                        ]
      +                      }
      +                    ]
      +                  },
      +                  {
      +                    "if": {
      +                      "properties": {
      +                        "target": {
      +                          "enum": [
      +                            "ui",
      +                            "ui_element"
      +                          ]
      +                        }
      +                      },
      +                      "required": [
      +                        "target"
      +                      ]
      +                    },
      +                    "then": {
      +                      "anyOf": [
      +                        {
      +                          "required": [
      +                            "id"
      +                          ]
      +                        },
      +                        {
      +                          "required": [
      +                            "label"
      +                          ]
      +                        },
      +                        {
      +                          "required": [
      +                            "name"
      +                          ]
      +                        },
      +                        {
      +                          "required": [
      +                            "role"
      +                          ]
      +                        },
      +                        {
      +                          "required": [
      +                            "automation_id"
      +                          ]
      +                        }
      +                      ]
      +                    }
      +                  },
      +                  {
      +                    "if": {
      +                      "properties": {
      +                        "target": {
      +                          "const": "browser"
      +                        }
      +                      },
      +                      "required": [
      +                        "target"
      +                      ]
      +                    },
      +                    "then": {
      +                      "anyOf": [
      +                        {
      +                          "required": [
      +                            "selector"
      +                          ]
      +                        },
      +                        {
      +                          "required": [
      +                            "browser_text"
      +                          ]
      +                        },
      +                        {
      +                          "required": [
      +                            "name"
      +                          ]
      +                        }
      +                      ]
      +                    }
      +                  }
      +                ],
      +                "properties": {
      +                  "target": {
      +                    "enum": [
      +                      "auto",
      +                      "ui",
      +                      "ui_element",
      +                      "browser",
      +                      "window"
      +                    ]
      +                  }
      +                },
      +                "required": [
      +                  "text"
      +                ]
      +              }
      +            },
      +            {
      +              "if": {
      +                "properties": {
      +                  "action": {
      +                    "const": "scroll"
      +                  }
      +                },
      +                "required": [
      +                  "action"
      +                ]
      +              },
      +              "then": {
      +                "allOf": [
      +                  {
      +                    "anyOf": [
      +                      {
      +                        "required": [
      +                          "delta_x"
      +                        ]
      +                      },
      +                      {
      +                        "required": [
      +                          "delta_y"
      +                        ]
      +                      },
      +                      {
      +                        "required": [
      +                          "delta"
      +                        ]
      +                      },
      +                      {
      +                        "required": [
      +                          "direction"
      +                        ]
      +                      }
      +                    ]
      +                  },
      +                  {
      +                    "if": {
      +                      "properties": {
      +                        "target": {
      +                          "enum": [
      +                            "ui",
      +                            "ui_element"
      +                          ]
      +                        }
      +                      },
      +                      "required": [
      +                        "target"
      +                      ]
      +                    },
      +                    "then": {
      +                      "anyOf": [
      +                        {
      +                          "required": [
      +                            "id"
      +                          ]
      +                        },
      +                        {
      +                          "required": [
      +                            "label"
      +                          ]
      +                        },
      +                        {
      +                          "required": [
      +                            "name"
      +                          ]
      +                        },
      +                        {
      +                          "required": [
      +                            "role"
      +                          ]
      +                        },
      +                        {
      +                          "required": [
      +                            "automation_id"
      +                          ]
      +                        }
      +                      ]
      +                    }
      +                  },
      +                  {
      +                    "if": {
      +                      "properties": {
      +                        "target": {
      +                          "const": "coordinates"
      +                        }
      +                      },
      +                      "required": [
      +                        "target"
      +                      ]
      +                    },
      +                    "then": {
      +                      "required": [
      +                        "x",
      +                        "y"
      +                      ]
      +                    }
      +                  }
      +                ],
      +                "properties": {
      +                  "target": {
      +                    "enum": [
      +                      "auto",
      +                      "ui",
      +                      "ui_element",
      +                      "browser",
      +                      "coordinates",
      +                      "window"
      +                    ]
      +                  }
      +                }
      +              }
      +            },
      +            {
      +              "if": {
      +                "properties": {
      +                  "action": {
      +                    "const": "drag"
      +                  }
      +                },
      +                "required": [
      +                  "action"
      +                ]
      +              },
      +              "then": {
      +                "allOf": [
      +                  {
      +                    "anyOf": [
      +                      {
      +                        "required": [
      +                          "from_id"
      +                        ]
      +                      },
      +                      {
      +                        "required": [
      +                          "from_x",
      +                          "from_y"
      +                        ]
      +                      }
      +                    ]
      +                  },
      +                  {
      +                    "anyOf": [
      +                      {
      +                        "required": [
      +                          "to_id"
      +                        ]
      +                      },
      +                      {
      +                        "required": [
      +                          "to_x",
      +                          "to_y"
      +                        ]
      +                      }
      +                    ]
      +                  },
      +                  {
      +                    "if": {
      +                      "properties": {
      +                        "target": {
      +                          "enum": [
      +                            "ui",
      +                            "ui_element"
      +                          ]
      +                        }
      +                      },
      +                      "required": [
      +                        "target"
      +                      ]
      +                    },
      +                    "then": {
      +                      "required": [
      +                        "from_id",
      +                        "to_id"
      +                      ]
      +                    }
      +                  },
      +                  {
      +                    "if": {
      +                      "properties": {
      +                        "target": {
      +                          "const": "coordinates"
      +                        }
      +                      },
      +                      "required": [
      +                        "target"
      +                      ]
      +                    },
      +                    "then": {
      +                      "required": [
      +                        "from_x",
      +                        "from_y",
      +                        "to_x",
      +                        "to_y"
      +                      ]
      +                    }
      +                  }
      +                ],
      +                "properties": {
      +                  "target": {
      +                    "enum": [
      +                      "auto",
      +                      "ui",
      +                      "ui_element",
      +                      "coordinates",
      +                      "window"
      +                    ]
      +                  }
      +                }
      +              }
      +            },
      +            {
      +              "if": {
      +                "properties": {
      +                  "action": {
      +                    "enum": [
      +                      "set_value",
      +                      "set_range_value"
      +                    ]
      +                  }
      +                },
      +                "required": [
      +                  "action"
      +                ]
      +              },
      +              "then": {
      +                "required": [
      +                  "value"
      +                ]
      +              }
      +            },
      +            {
      +              "if": {
      +                "properties": {
      +                  "action": {
      +                    "const": "multi_select"
      +                  }
      +                },
      +                "required": [
      +                  "action"
      +                ]
      +              },
      +              "then": {
      +                "required": [
      +                  "targets"
      +                ]
      +              }
      +            },
      +            {
      +              "if": {
      +                "properties": {
      +                  "action": {
      +                    "const": "multi_edit"
      +                  }
      +                },
      +                "required": [
      +                  "action"
      +                ]
      +              },
      +              "then": {
      +                "required": [
      +                  "edits"
      +                ]
      +              }
      +            }
      +          ],
      +          "properties": {
      +            "action": {
      +              "description": "Operation to perform; choose the narrowest action that directly matches the requested outcome.",
      +              "enum": [
      +                "click",
      +                "type",
      +                "invoke",
      +                "focus",
      +                "select",
      +                "scroll",
      +                "drag",
      +                "set_value",
      +                "toggle",
      +                "expand",
      +                "collapse",
      +                "scroll_into_view",
      +                "set_range_value",
      +                "add_to_selection",
      +                "remove_from_selection",
      +                "multi_select",
      +                "multi_edit"
      +              ],
      +              "type": "string"
      +            },
      +            "app": {
      +              "description": "Limit matching to an application/process name substring when available.",
      +              "type": "string"
      +            },
      +            "automation_id": {
      +              "description": "Windows AutomationId when available.",
      +              "type": "string"
      +            },
      +            "backend": {
      +              "description": "Input backend preference. auto uses proven local backends and already-authorized portal input; portal explicitly requests XDG RemoteDesktop consent on Wayland; x11 forces XWayland/xdotool only for operations where read-back testing shows it is reliable. GNOME Wayland keyboard/text deliberately reject x11.",
      +              "enum": [
      +                "auto",
      +                "x11",
      +                "portal"
      +              ],
      +              "type": "string"
      +            },
      +            "browser_text": {
      +              "description": "Visible browser text used only to locate a DOM target; for action=type, text remains the value to enter.",
      +              "type": "string"
      +            },
      +            "button": {
      +              "description": "Pointer button to use for click/down/up or drag gestures.",
      +              "enum": [
      +                "left",
      +                "right",
      +                "middle"
      +              ],
      +              "type": "string"
      +            },
      +            "clear": {
      +              "description": "For action=type, clear the current semantic/browser value before inserting text when supported.",
      +              "type": "boolean"
      +            },
      +            "delta": {
      +              "description": "Alias for delta_y.",
      +              "type": "number"
      +            },
      +            "delta_x": {
      +              "description": "Horizontal scroll delta; positive means right.",
      +              "type": "number"
      +            },
      +            "delta_y": {
      +              "description": "Vertical scroll delta; positive means down.",
      +              "type": "number"
      +            },
      +            "direction": {
      +              "description": "Human-readable scroll direction used with wheel_times instead of explicit deltas.",
      +              "enum": [
      +                "up",
      +                "down",
      +                "left",
      +                "right"
      +              ],
      +              "type": "string"
      +            },
      +            "duration_ms": {
      +              "description": "Drag movement duration.",
      +              "type": "number"
      +            },
      +            "edits": {
      +              "description": "Native semantic target + text entries for action=multi_edit.",
      +              "items": {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "app": {
      +                    "description": "Limit matching to an application/process name substring when available.",
      +                    "type": "string"
      +                  },
      +                  "automation_id": {
      +                    "description": "Windows AutomationId when available.",
      +                    "type": "string"
      +                  },
      +                  "clear": {
      +                    "description": "Clear the current value before entering text; default true.",
      +                    "type": "boolean"
      +                  },
      +                  "id": {
      +                    "description": "Element id returned by ui_snapshot or ui_find. Linux ids are stable per-process accessibility paths and legacy linux:<index> ids remain accepted.",
      +                    "type": "string"
      +                  },
      +                  "label": {
      +                    "description": "Compact numeric label from the most recent ui_snapshot/ui_find; useful for repeated actions without repeating names or coordinates.",
      +                    "type": "number"
      +                  },
      +                  "method": {
      +                    "description": "Text-entry strategy; auto is recommended.",
      +                    "enum": [
      +                      "auto",
      +                      "accessibility",
      +                      "clipboard",
      +                      "keys"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "name": {
      +                    "description": "Accessible name/title substring.",
      +                    "type": "string"
      +                  },
      +                  "pid": {
      +                    "description": "Limit matching to one owning process id when available.",
      +                    "type": "number"
      +                  },
      +                  "role": {
      +                    "description": "Accessible role such as Button, Edit, textbox or AXButton.",
      +                    "type": "string"
      +                  },
      +                  "text": {
      +                    "description": "Replacement text for this semantic edit.",
      +                    "type": "string"
      +                  },
      +                  "window_title": {
      +                    "description": "Limit matching to a top-level accessibility window/frame title substring when available.",
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "text"
      +                ],
      +                "type": "object"
      +              },
      +              "maxItems": 100,
      +              "minItems": 1,
      +              "type": "array"
      +            },
      +            "endpoint": {
      +              "description": "Loopback Chrome DevTools endpoint for a browser fallback.",
      +              "type": "string"
      +            },
      +            "from_id": {
      +              "description": "Source semantic UI element id for action=drag.",
      +              "type": "string"
      +            },
      +            "from_x": {
      +              "description": "Drag source X coordinate.",
      +              "type": "number"
      +            },
      +            "from_y": {
      +              "description": "Drag source Y coordinate.",
      +              "type": "number"
      +            },
      +            "hold_ms": {
      +              "description": "Delay after pointer down before moving during action=drag.",
      +              "type": "number"
      +            },
      +            "id": {
      +              "description": "Element id returned by ui_snapshot or ui_find. Linux ids are stable per-process accessibility paths and legacy linux:<index> ids remain accepted.",
      +              "type": "string"
      +            },
      +            "label": {
      +              "description": "Compact numeric label from the most recent ui_snapshot/ui_find; useful for repeated actions without repeating names or coordinates.",
      +              "type": "number"
      +            },
      +            "name": {
      +              "description": "Accessible name/title substring.",
      +              "type": "string"
      +            },
      +            "ocr_language": {
      +              "description": "Tesseract language code, default eng.",
      +              "type": "string"
      +            },
      +            "ocr_psm": {
      +              "description": "Tesseract page segmentation mode, default 11.",
      +              "type": "number"
      +            },
      +            "ocr_region": {
      +              "description": "Optional virtual-desktop [left,top,right,bottom] region to OCR. Prefer bounds from list_windows or computer_snapshot.",
      +              "items": {
      +                "type": "number"
      +              },
      +              "maxItems": 4,
      +              "minItems": 4,
      +              "type": "array"
      +            },
      +            "ocr_text": {
      +              "description": "Visible text to find in rendered pixels for the OCR click fallback.",
      +              "type": "string"
      +            },
      +            "ocr_timeout_ms": {
      +              "description": "OCR timeout in milliseconds.",
      +              "type": "number"
      +            },
      +            "option": {
      +              "description": "Option value for browser select.",
      +              "type": "string"
      +            },
      +            "pid": {
      +              "description": "Limit matching to one owning process id when available.",
      +              "type": "number"
      +            },
      +            "replace_selection": {
      +              "description": "For multi_select, select the first item before adding the rest; default true.",
      +              "type": "boolean"
      +            },
      +            "role": {
      +              "description": "Accessible role such as Button, Edit, textbox or AXButton.",
      +              "type": "string"
      +            },
      +            "selector": {
      +              "description": "CSS selector when the fallback target is a browser element.",
      +              "type": "string"
      +            },
      +            "target": {
      +              "description": "Optional target type. auto prefers native accessibility, then browser DOM/CDP, then OCR/coordinates where supported. Use window for explicit top-level window focus/text/scroll targeting.",
      +              "enum": [
      +                "auto",
      +                "ui",
      +                "ui_element",
      +                "browser",
      +                "ocr",
      +                "coordinates",
      +                "window"
      +              ],
      +              "type": "string"
      +            },
      +            "target_id": {
      +              "description": "Browser page target id returned by browser_tabs.",
      +              "type": "string"
      +            },
      +            "targets": {
      +              "description": "Native semantic targets for action=multi_select.",
      +              "items": {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "app": {
      +                    "description": "Limit matching to an application/process name substring when available.",
      +                    "type": "string"
      +                  },
      +                  "automation_id": {
      +                    "description": "Windows AutomationId when available.",
      +                    "type": "string"
      +                  },
      +                  "id": {
      +                    "description": "Element id returned by ui_snapshot or ui_find. Linux ids are stable per-process accessibility paths and legacy linux:<index> ids remain accepted.",
      +                    "type": "string"
      +                  },
      +                  "label": {
      +                    "description": "Compact numeric label from the most recent ui_snapshot/ui_find; useful for repeated actions without repeating names or coordinates.",
      +                    "type": "number"
      +                  },
      +                  "name": {
      +                    "description": "Accessible name/title substring.",
      +                    "type": "string"
      +                  },
      +                  "pid": {
      +                    "description": "Limit matching to one owning process id when available.",
      +                    "type": "number"
      +                  },
      +                  "role": {
      +                    "description": "Accessible role such as Button, Edit, textbox or AXButton.",
      +                    "type": "string"
      +                  },
      +                  "window_title": {
      +                    "description": "Limit matching to a top-level accessibility window/frame title substring when available.",
      +                    "type": "string"
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "maxItems": 100,
      +              "minItems": 1,
      +              "type": "array"
      +            },
      +            "text": {
      +              "description": "Unicode text to enter for action=type, or text used by multi_edit.",
      +              "type": "string"
      +            },
      +            "title": {
      +              "description": "Optional browser page title substring or top-level window title when target=window.",
      +              "type": "string"
      +            },
      +            "to_id": {
      +              "description": "Destination semantic UI element id for action=drag.",
      +              "type": "string"
      +            },
      +            "to_x": {
      +              "description": "Drag destination X coordinate.",
      +              "type": "number"
      +            },
      +            "to_y": {
      +              "description": "Drag destination Y coordinate.",
      +              "type": "number"
      +            },
      +            "url_contains": {
      +              "description": "Browser URL substring used to select a page.",
      +              "type": "string"
      +            },
      +            "value": {
      +              "description": "New value for set_value, set_range_value, or select.",
      +              "type": "string"
      +            },
      +            "wheel_times": {
      +              "description": "Number of 120-unit wheel steps for direction; 1..50.",
      +              "type": "number"
      +            },
      +            "window_id": {
      +              "description": "Top-level window id returned by list_windows when target=window.",
      +              "type": "string"
      +            },
      +            "window_title": {
      +              "description": "Limit matching to a top-level accessibility window/frame title substring when available.",
      +              "type": "string"
      +            },
      +            "x": {
      +              "description": "Virtual-desktop X coordinate used by click/scroll coordinate targeting.",
      +              "type": "number"
      +            },
      +            "y": {
      +              "description": "Virtual-desktop Y coordinate used by click/scroll coordinate targeting.",
      +              "type": "number"
      +            }
      +          },
      +          "required": [
      +            "action"
      +          ],
      +          "type": "object"
      +        }
      +      },
      +      "required": [
      +        "parameters"
      +      ]
      +    }
      +  }
      +]
  3. Changed3 schema fields changedv0.2.131
    • changedInput schema / allOf
      Previous value: -[
      -  {
      -    "if": {
      -      "properties": {
      -        "operation": {
      -          "const": "computer_snapshot"
      -        }
      -      },
      -      "required": [
      -        "operation"
      -      ]
      -    },
      -    "then": {
      -      "properties": {
      -        "parameters": {
      -          "additionalProperties": false,
      -          "properties": {
      -            "browser_max_nodes": {
      -              "description": "Maximum browser accessibility nodes; default 500, maximum 2000.",
      -              "type": "number"
      -            },
      -            "grid_columns": {
      -              "description": "Optional reference-grid column count returned as visual metadata; 0..20.",
      -              "type": "number"
      -            },
      -            "grid_rows": {
      -              "description": "Optional reference-grid row count returned as visual metadata; 0..20.",
      -              "type": "number"
      -            },
      -            "include_browser": {
      -              "description": "Include CDP browser accessibility when available. Default auto: only when the active app looks Chromium-based.",
      -              "type": "boolean"
      -            },
      -            "include_ocr": {
      -              "description": "Run optional local OCR. Default auto: only when native accessibility and browser DOM are unavailable. Requires tesseract on PATH.",
      -              "type": "boolean"
      -            },
      -            "include_screenshot": {
      -              "description": "Include real rendered desktop pixels; default true.",
      -              "type": "boolean"
      -            },
      -            "include_ui": {
      -              "description": "Include native accessibility tree; default true. False is the fast screenshot-only path.",
      -              "type": "boolean"
      -            },
      -            "max_ui_depth": {
      -              "description": "Maximum native accessibility depth; default 12.",
      -              "type": "number"
      -            },
      -            "max_ui_nodes": {
      -              "description": "Maximum native accessibility nodes; default 800.",
      -              "type": "number"
      -            },
      -            "ocr_language": {
      -              "description": "Tesseract language code, default eng; multiple languages may use eng+deu.",
      -              "type": "string"
      -            },
      -            "ocr_max_words": {
      -              "description": "Maximum OCR word boxes returned; default 2000, maximum 10000.",
      -              "type": "number"
      -            },
      -            "ocr_psm": {
      -              "description": "Tesseract page segmentation mode, 3..13; default 11.",
      -              "type": "number"
      -            },
      -            "ocr_timeout_ms": {
      -              "description": "OCR timeout, default 30000 ms, maximum 120000 ms.",
      -              "type": "number"
      -            },
      -            "screenshot_monitor": {
      -              "description": "Monitor name substring or \"primary\".",
      -              "type": "string"
      -            },
      -            "screenshot_monitor_index": {
      -              "description": "Zero-based monitor index.",
      -              "type": "number"
      -            },
      -            "screenshot_padding": {
      -              "description": "Pixels of context around a targeted screenshot; 0..200.",
      -              "type": "number"
      -            },
      -            "screenshot_region": {
      -              "description": "Virtual-desktop [left,top,right,bottom] region; takes precedence over full desktop.",
      -              "items": {
      -                "type": "number"
      -              },
      -              "maxItems": 4,
      -              "minItems": 4,
      -              "type": "array"
      -            },
      -            "screenshot_window_id": {
      -              "description": "Capture the window returned by list_windows instead of the whole desktop.",
      -              "type": "string"
      -            },
      -            "semantic_tree": {
      -              "description": "Include compact semantic hierarchy text alongside nodes; default true.",
      -              "type": "boolean"
      -            },
      -            "ui_browser_dom": {
      -              "description": "Prefer the native browser accessibility document subtree when the OS exposes one; on Windows this also enables the Firefox MSAA/IAccessible fallback.",
      -              "type": "boolean"
      -            },
      -            "ui_scope": {
      -              "description": "Accessibility scope for computer_snapshot. Default active keeps the compact snapshot fast; desktop requests all accessible applications/windows.",
      -              "enum": [
      -                "active",
      -                "desktop"
      -              ],
      -              "type": "string"
      -            }
      -          },
      -          "type": "object"
      -        }
      -      }
      -    }
      -  },
      -  {
      -    "if": {
      -      "properties": {
      -        "operation": {
      -          "const": "computer_action"
      -        }
      -      },
      -      "required": [
      -        "operation"
      -      ]
      -    },
      -    "then": {
      -      "properties": {
      -        "parameters": {
      -          "additionalProperties": false,
      -          "allOf": [
      -            {
      -              "if": {
      -                "properties": {
      -                  "action": {
      -                    "const": "click"
      -                  }
      -                },
      -                "required": [
      -                  "action"
      -                ]
      -              },
      -              "then": {
      -                "anyOf": [
      -                  {
      -                    "required": [
      -                      "id"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "label"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "name"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "role"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "automation_id"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "selector"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "browser_text"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "ocr_text"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "x",
      -                      "y"
      -                    ]
      -                  }
      -                ]
      -              }
      -            },
      -            {
      -              "if": {
      -                "properties": {
      -                  "action": {
      -                    "enum": [
      -                      "invoke",
      -                      "set_value",
      -                      "select",
      -                      "toggle",
      -                      "expand",
      -                      "collapse",
      -                      "scroll_into_view",
      -                      "set_range_value",
      -                      "add_to_selection",
      -                      "remove_from_selection"
      -                    ]
      -                  }
      -                },
      -                "required": [
      -                  "action"
      -                ]
      -              },
      -              "then": {
      -                "anyOf": [
      -                  {
      -                    "required": [
      -                      "id"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "label"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "name"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "role"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "automation_id"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "selector"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "browser_text"
      -                    ]
      -                  }
      -                ]
      -              }
      -            },
      -            {
      -              "if": {
      -                "properties": {
      -                  "action": {
      -                    "const": "focus"
      -                  }
      -                },
      -                "required": [
      -                  "action"
      -                ]
      -              },
      -              "then": {
      -                "anyOf": [
      -                  {
      -                    "required": [
      -                      "id"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "label"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "name"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "role"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "automation_id"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "selector"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "browser_text"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "pid"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "app"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "window_title"
      -                    ]
      -                  },
      -                  {
      -                    "required": [
      -                      "title"
      -                    ]
      -                  }
      -                ]
      -              }
      -            },
      -            {
      -              "if": {
      -                "properties": {
      -                  "action": {
      -                    "enum": [
      -                      "set_value",
      -                      "set_range_value"
      -                    ]
      -                  }
      -                },
      -                "required": [
      -                  "action"
      -                ]
      -              },
      -              "then": {
      -                "required": [
      -                  "value"
      -                ]
      -              }
      -            },
      -            {
      -              "if": {
      -                "properties": {
      -                  "action": {
      -                    "const": "multi_select"
      -                  }
      -                },
      -                "required": [
      -                  "action"
      -                ]
      -              },
      -              "then": {
      -                "required": [
      -                  "targets"
      -                ]
      -              }
      -            },
      -            {
      -              "if": {
      -                "properties": {
      -                  "action": {
      -                    "const": "multi_edit"
      -                  }
      -                },
      -                "required": [
      -                  "action"
      -                ]
      -              },
      -              "then": {
      -                "required": [
      -                  "edits"
      -                ]
      -              }
      -            }
      -          ],
      -          "properties": {
      -            "action": {
      -              "description": "Operation to perform; choose the narrowest action that directly matches the requested outcome.",
      -              "enum": [
      -                "click",
      -                "invoke",
      -                "focus",
      -                "set_value",
      -                "select",
      -                "toggle",
      -                "expand",
      -                "collapse",
      -                "scroll_into_view",
      -                "set_range_value",
      -                "add_to_selection",
      -                "remove_from_selection",
      -                "multi_select",
      -                "multi_edit"
      -              ],
      -              "type": "string"
      -            },
      -            "app": {
      -              "description": "Limit matching to an application/process name substring when available.",
      -              "type": "string"
      -            },
      -            "automation_id": {
      -              "description": "Windows AutomationId when available.",
      -              "type": "string"
      -            },
      -            "backend": {
      -              "description": "Input backend preference. auto uses proven local backends and already-authorized portal input; portal explicitly requests XDG RemoteDesktop consent on Wayland; x11 forces XWayland/xdotool only for operations where read-back testing shows it is reliable. GNOME Wayland keyboard/text deliberately reject x11.",
      -              "enum": [
      -                "auto",
      -                "x11",
      -                "portal"
      -              ],
      -              "type": "string"
      -            },
      -            "browser_text": {
      -              "description": "Visible browser text used to locate a DOM fallback target.",
      -              "type": "string"
      -            },
      -            "edits": {
      -              "description": "Native semantic target + text entries for action=multi_edit.",
      -              "items": {
      -                "additionalProperties": false,
      -                "properties": {
      -                  "app": {
      -                    "description": "Limit matching to an application/process name substring when available.",
      -                    "type": "string"
      -                  },
      -                  "automation_id": {
      -                    "description": "Windows AutomationId when available.",
      -                    "type": "string"
      -                  },
      -                  "clear": {
      -                    "description": "Clear the current value before entering text; default true.",
      -                    "type": "boolean"
      -                  },
      -                  "id": {
      -                    "description": "Element id returned by ui_snapshot or ui_find. Linux ids are stable per-process accessibility paths and legacy linux:<index> ids remain accepted.",
      -                    "type": "string"
      -                  },
      -                  "label": {
      -                    "description": "Compact numeric label from the most recent ui_snapshot/ui_find; useful for repeated actions without repeating names or coordinates.",
      -                    "type": "number"
      -                  },
      -                  "method": {
      -                    "description": "Text-entry strategy; auto is recommended.",
      -                    "enum": [
      -                      "auto",
      -                      "accessibility",
      -                      "clipboard",
      -                      "keys"
      -                    ],
      -                    "type": "string"
      -                  },
      -                  "name": {
      -                    "description": "Accessible name/title substring.",
      -                    "type": "string"
      -                  },
      -                  "pid": {
      -                    "description": "Limit matching to one owning process id when available.",
      -                    "type": "number"
      -                  },
      -                  "role": {
      -                    "description": "Accessible role such as Button, Edit, textbox or AXButton.",
      -                    "type": "string"
      -                  },
      -                  "text": {
      -                    "description": "Replacement text for this semantic edit.",
      -                    "type": "string"
      -                  },
      -                  "window_title": {
      -                    "description": "Limit matching to a top-level accessibility window/frame title substring when available.",
      -                    "type": "string"
      -                  }
      -                },
      -                "required": [
      -                  "text"
      -                ],
      -                "type": "object"
      -              },
      -              "maxItems": 100,
      -              "minItems": 1,
      -              "type": "array"
      -            },
      -            "endpoint": {
      -              "description": "Loopback Chrome DevTools endpoint for a browser fallback.",
      -              "type": "string"
      -            },
      -            "id": {
      -              "description": "Element id returned by ui_snapshot or ui_find. Linux ids are stable per-process accessibility paths and legacy linux:<index> ids remain accepted.",
      -              "type": "string"
      -            },
      -            "label": {
      -              "description": "Compact numeric label from the most recent ui_snapshot/ui_find; useful for repeated actions without repeating names or coordinates.",
      -              "type": "number"
      -            },
      -            "name": {
      -              "description": "Accessible name/title substring.",
      -              "type": "string"
      -            },
      -            "ocr_language": {
      -              "description": "Tesseract language code, default eng.",
      -              "type": "string"
      -            },
      -            "ocr_psm": {
      -              "description": "Tesseract page segmentation mode, default 11.",
      -              "type": "number"
      -            },
      -            "ocr_region": {
      -              "description": "Optional virtual-desktop [left,top,right,bottom] region to OCR. Prefer bounds from list_windows or computer_snapshot.",
      -              "items": {
      -                "type": "number"
      -              },
      -              "maxItems": 4,
      -              "minItems": 4,
      -              "type": "array"
      -            },
      -            "ocr_text": {
      -              "description": "Visible text to find in rendered pixels for the OCR click fallback.",
      -              "type": "string"
      -            },
      -            "ocr_timeout_ms": {
      -              "description": "OCR timeout in milliseconds.",
      -              "type": "number"
      -            },
      -            "option": {
      -              "description": "Option value for browser select.",
      -              "type": "string"
      -            },
      -            "pid": {
      -              "description": "Limit matching to one owning process id when available.",
      -              "type": "number"
      -            },
      -            "replace_selection": {
      -              "description": "For multi_select, select the first item before adding the rest; default true.",
      -              "type": "boolean"
      -            },
      -            "role": {
      -              "description": "Accessible role such as Button, Edit, textbox or AXButton.",
      -              "type": "string"
      -            },
      -            "selector": {
      -              "description": "CSS selector when the fallback target is a browser element.",
      -              "type": "string"
      -            },
      -            "target": {
      -              "description": "Optional target type. auto tries native accessibility first, then browser DOM/CDP, OCR text when requested, then coordinates for click.",
      -              "enum": [
      -                "auto",
      -                "ui",
      -                "ui_element",
      -                "browser",
      -                "ocr",
      -                "coordinates"
      -              ],
      -              "type": "string"
      -            },
      -            "target_id": {
      -              "description": "Browser page target id returned by browser_tabs.",
      -              "type": "string"
      -            },
      -            "targets": {
      -              "description": "Native semantic targets for action=multi_select.",
      -              "items": {
      -                "additionalProperties": false,
      -                "properties": {
      -                  "app": {
      -                    "description": "Limit matching to an application/process name substring when available.",
      -                    "type": "string"
      -                  },
      -                  "automation_id": {
      -                    "description": "Windows AutomationId when available.",
      -                    "type": "string"
      -                  },
      -                  "id": {
      -                    "description": "Element id returned by ui_snapshot or ui_find. Linux ids are stable per-process accessibility paths and legacy linux:<index> ids remain accepted.",
      -                    "type": "string"
      -                  },
      -                  "label": {
      -                    "description": "Compact numeric label from the most recent ui_snapshot/ui_find; useful for repeated actions without repeating names or coordinates.",
      -                    "type": "number"
      -                  },
      -                  "name": {
      -                    "description": "Accessible name/title substring.",
      -                    "type": "string"
      -                  },
      -                  "pid": {
      -                    "description": "Limit matching to one owning process id when available.",
      -                    "type": "number"
      -                  },
      -                  "role": {
      -                    "description": "Accessible role such as Button, Edit, textbox or AXButton.",
      -                    "type": "string"
      -                  },
      -                  "window_title": {
      -                    "description": "Limit matching to a top-level accessibility window/frame title substring when available.",
      -                    "type": "string"
      -                  }
      -                },
      -                "type": "object"
      -              },
      -              "maxItems": 100,
      -              "minItems": 1,
      -              "type": "array"
      -            },
      -            "text": {
      -              "description": "Text used by multi_edit or as a compatibility value for a semantic edit.",
      -              "type": "string"
      -            },
      -            "title": {
      -              "description": "Optional browser page title substring when target=browser.",
      -              "type": "string"
      -            },
      -            "url_contains": {
      -              "description": "Browser URL substring used to select a page.",
      -              "type": "string"
      -            },
      -            "value": {
      -              "description": "New value for set_value, set_range_value, or select.",
      -              "type": "string"
      -            },
      -            "window_title": {
      -              "description": "Limit matching to a top-level accessibility window/frame title substring when available.",
      -              "type": "string"
      -            },
      -            "x": {
      -              "description": "Virtual-desktop X coordinate used only by the final click fallback.",
      -              "type": "number"
      -            },
      -            "y": {
      -              "description": "Virtual-desktop Y coordinate used only by the final click fallback.",
      -              "type": "number"
      -            }
      -          },
      -          "required": [
      -            "action"
      -          ],
      -          "type": "object"
      -        }
      -      },
      -      "required": [
      -        "parameters"
      -      ]
      -    }
      -  },
      -  {
      -    "if": {
      -      "properties": {
      -        "operation": {
      -          "const": "launch_app"
      -        }
      -      },
      -      "required": [
      -        "operation"
      -      ]
      -    },
      -    "then": {
      -      "properties": {
      -        "parameters": {
      -          "additionalProperties": false,
      -          "anyOf": [
      -            {
      -              "required": [
      -                "app"
      -              ]
      -            },
      -            {
      -              "required": [
      -                "path"
      -              ]
      -            }
      -          ],
      -          "properties": {
      -            "app": {
      -              "description": "Application name, friendly Start Menu name, or executable path.",
      -              "type": "string"
      -            },
      -            "args": {
      -              "description": "Argument array passed directly to the launched application; no shell parsing.",
      -              "items": {
      -                "type": "string"
      -              },
      -              "type": "array"
      -            },
      -            "cwd": {
      -              "description": "Optional permitted working directory for direct executable launch.",
      -              "type": "string"
      -            },
      -            "path": {
      -              "description": "Alias for app.",
      -              "type": "string"
      -            },
      -            "wait_for_window": {
      -              "description": "Optional application/title substring that must appear after launch.",
      -              "type": "string"
      -            },
      -            "wait_timeout_ms": {
      -              "description": "Maximum wait for wait_for_window; default 10000, maximum 120000.",
      -              "type": "number"
      -            }
      -          },
      -          "type": "object"
      -        }
      -      }
      -    }
      -  },
      -  {
      -    "if": {
      -      "properties": {
      -        "operation": {
      -          "const": "open_path"
      -        }
      -      },
      -      "required": [
      -        "operation"
      -      ]
      -    },
      -    "then": {
      -      "properties": {
      -        "parameters": {
      -          "additionalProperties": false,
      -          "properties": {
      -            "path": {
      -              "description": "File or directory to open.",
      -              "type": "string"
      -            }
      -          },
      -          "required": [
      -            "path"
      -          ],
      -          "type": "object"
      -        }
      -      },
      -      "required": [
      -        "parameters"
      -      ]
      -    }
      -  },
      -  {
      -    "if": {
      -      "properties": {
      -        "operation": {
      -          "const": "reveal_path"
      -        }
      -      },
      -      "required": [
      -        "operation"
      -      ]
      -    },
      -    "then": {
      -      "properties": {
      -        "parameters": {
      -          "additionalProperties": false,
      -          "properties": {
      -            "path": {
      -              "description": "File or directory to reveal.",
      -              "type": "string"
      -            }
      -          },
      -          "required": [
      -            "path"
      -          ],
      -          "type": "object"
      -        }
      -      },
      -      "required": [
      -        "parameters"
      -      ]
      -    }
      -  }
      -]New value: +[
      +  {
      +    "if": {
      +      "properties": {
      +        "operation": {
      +          "const": "computer_snapshot"
      +        }
      +      },
      +      "required": [
      +        "operation"
      +      ]
      +    },
      +    "then": {
      +      "properties": {
      +        "parameters": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "browser_max_nodes": {
      +              "description": "Maximum browser accessibility nodes; default 500, maximum 2000.",
      +              "type": "number"
      +            },
      +            "grid_columns": {
      +              "description": "Optional reference-grid column count returned as visual metadata; 0..20.",
      +              "type": "number"
      +            },
      +            "grid_rows": {
      +              "description": "Optional reference-grid row count returned as visual metadata; 0..20.",
      +              "type": "number"
      +            },
      +            "include_browser": {
      +              "description": "Include CDP browser accessibility when available. Default auto: only when the active app looks Chromium-based.",
      +              "type": "boolean"
      +            },
      +            "include_ocr": {
      +              "description": "Run optional local OCR. Default auto: only when native accessibility and browser DOM are unavailable. Requires tesseract on PATH.",
      +              "type": "boolean"
      +            },
      +            "include_screenshot": {
      +              "description": "Include real rendered desktop pixels; default true.",
      +              "type": "boolean"
      +            },
      +            "include_ui": {
      +              "description": "Include native accessibility tree; default true. False is the fast screenshot-only path.",
      +              "type": "boolean"
      +            },
      +            "max_ui_depth": {
      +              "description": "Maximum native accessibility depth; default 12.",
      +              "type": "number"
      +            },
      +            "max_ui_nodes": {
      +              "description": "Maximum native accessibility nodes; default 800.",
      +              "type": "number"
      +            },
      +            "ocr_language": {
      +              "description": "Tesseract language code, default eng; multiple languages may use eng+deu.",
      +              "type": "string"
      +            },
      +            "ocr_max_words": {
      +              "description": "Maximum OCR word boxes returned; default 2000, maximum 10000.",
      +              "type": "number"
      +            },
      +            "ocr_psm": {
      +              "description": "Tesseract page segmentation mode, 3..13; default 11.",
      +              "type": "number"
      +            },
      +            "ocr_timeout_ms": {
      +              "description": "OCR timeout, default 30000 ms, maximum 120000 ms.",
      +              "type": "number"
      +            },
      +            "screenshot_monitor": {
      +              "description": "Monitor name substring or \"primary\".",
      +              "type": "string"
      +            },
      +            "screenshot_monitor_index": {
      +              "description": "Zero-based monitor index.",
      +              "type": "number"
      +            },
      +            "screenshot_padding": {
      +              "description": "Pixels of context around a targeted screenshot; 0..200.",
      +              "type": "number"
      +            },
      +            "screenshot_region": {
      +              "description": "Virtual-desktop [left,top,right,bottom] region; takes precedence over full desktop.",
      +              "items": {
      +                "type": "number"
      +              },
      +              "maxItems": 4,
      +              "minItems": 4,
      +              "type": "array"
      +            },
      +            "screenshot_window_id": {
      +              "description": "Capture the window returned by list_windows instead of the whole desktop.",
      +              "type": "string"
      +            },
      +            "semantic_tree": {
      +              "description": "Include compact semantic hierarchy text alongside nodes; default true.",
      +              "type": "boolean"
      +            },
      +            "ui_browser_dom": {
      +              "description": "Prefer the native browser accessibility document subtree when the OS exposes one; on Windows this also enables the Firefox MSAA/IAccessible fallback.",
      +              "type": "boolean"
      +            },
      +            "ui_scope": {
      +              "description": "Accessibility scope for computer_snapshot. Default active keeps the compact snapshot fast; desktop requests all accessible applications/windows.",
      +              "enum": [
      +                "active",
      +                "desktop"
      +              ],
      +              "type": "string"
      +            }
      +          },
      +          "type": "object"
      +        }
      +      }
      +    }
      +  },
      +  {
      +    "if": {
      +      "properties": {
      +        "operation": {
      +          "const": "computer_action"
      +        }
      +      },
      +      "required": [
      +        "operation"
      +      ]
      +    },
      +    "then": {
      +      "properties": {
      +        "parameters": {
      +          "additionalProperties": false,
      +          "allOf": [
      +            {
      +              "if": {
      +                "properties": {
      +                  "action": {
      +                    "const": "click"
      +                  }
      +                },
      +                "required": [
      +                  "action"
      +                ]
      +              },
      +              "then": {
      +                "anyOf": [
      +                  {
      +                    "required": [
      +                      "id"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "label"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "name"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "role"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "automation_id"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "selector"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "browser_text"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "ocr_text"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "x",
      +                      "y"
      +                    ]
      +                  }
      +                ]
      +              }
      +            },
      +            {
      +              "if": {
      +                "properties": {
      +                  "action": {
      +                    "enum": [
      +                      "invoke",
      +                      "set_value",
      +                      "select",
      +                      "toggle",
      +                      "expand",
      +                      "collapse",
      +                      "scroll_into_view",
      +                      "set_range_value",
      +                      "add_to_selection",
      +                      "remove_from_selection"
      +                    ]
      +                  }
      +                },
      +                "required": [
      +                  "action"
      +                ]
      +              },
      +              "then": {
      +                "anyOf": [
      +                  {
      +                    "required": [
      +                      "id"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "label"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "name"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "role"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "automation_id"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "selector"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "browser_text"
      +                    ]
      +                  }
      +                ]
      +              }
      +            },
      +            {
      +              "if": {
      +                "properties": {
      +                  "action": {
      +                    "const": "focus"
      +                  }
      +                },
      +                "required": [
      +                  "action"
      +                ]
      +              },
      +              "then": {
      +                "anyOf": [
      +                  {
      +                    "required": [
      +                      "id"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "label"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "name"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "role"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "automation_id"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "selector"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "browser_text"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "pid"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "app"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "window_title"
      +                    ]
      +                  },
      +                  {
      +                    "required": [
      +                      "title"
      +                    ]
      +                  }
      +                ]
      +              }
      +            },
      +            {
      +              "if": {
      +                "properties": {
      +                  "action": {
      +                    "enum": [
      +                      "set_value",
      +                      "set_range_value"
      +                    ]
      +                  }
      +                },
      +                "required": [
      +                  "action"
      +                ]
      +              },
      +              "then": {
      +                "required": [
      +                  "value"
      +                ]
      +              }
      +            },
      +            {
      +              "if": {
      +                "properties": {
      +                  "action": {
      +                    "const": "multi_select"
      +                  }
      +                },
      +                "required": [
      +                  "action"
      +                ]
      +              },
      +              "then": {
      +                "required": [
      +                  "targets"
      +                ]
      +              }
      +            },
      +            {
      +              "if": {
      +                "properties": {
      +                  "action": {
      +                    "const": "multi_edit"
      +                  }
      +                },
      +                "required": [
      +                  "action"
      +                ]
      +              },
      +              "then": {
      +                "required": [
      +                  "edits"
      +                ]
      +              }
      +            }
      +          ],
      +          "properties": {
      +            "action": {
      +              "description": "Operation to perform; choose the narrowest action that directly matches the requested outcome.",
      +              "enum": [
      +                "click",
      +                "invoke",
      +                "focus",
      +                "set_value",
      +                "select",
      +                "toggle",
      +                "expand",
      +                "collapse",
      +                "scroll_into_view",
      +                "set_range_value",
      +                "add_to_selection",
      +                "remove_from_selection",
      +                "multi_select",
      +                "multi_edit"
      +              ],
      +              "type": "string"
      +            },
      +            "app": {
      +              "description": "Limit matching to an application/process name substring when available.",
      +              "type": "string"
      +            },
      +            "automation_id": {
      +              "description": "Windows AutomationId when available.",
      +              "type": "string"
      +            },
      +            "backend": {
      +              "description": "Input backend preference. auto uses proven local backends and already-authorized portal input; portal explicitly requests XDG RemoteDesktop consent on Wayland; x11 forces XWayland/xdotool only for operations where read-back testing shows it is reliable. GNOME Wayland keyboard/text deliberately reject x11.",
      +              "enum": [
      +                "auto",
      +                "x11",
      +                "portal"
      +              ],
      +              "type": "string"
      +            },
      +            "browser_text": {
      +              "description": "Visible browser text used to locate a DOM fallback target.",
      +              "type": "string"
      +            },
      +            "edits": {
      +              "description": "Native semantic target + text entries for action=multi_edit.",
      +              "items": {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "app": {
      +                    "description": "Limit matching to an application/process name substring when available.",
      +                    "type": "string"
      +                  },
      +                  "automation_id": {
      +                    "description": "Windows AutomationId when available.",
      +                    "type": "string"
      +                  },
      +                  "clear": {
      +                    "description": "Clear the current value before entering text; default true.",
      +                    "type": "boolean"
      +                  },
      +                  "id": {
      +                    "description": "Element id returned by ui_snapshot or ui_find. Linux ids are stable per-process accessibility paths and legacy linux:<index> ids remain accepted.",
      +                    "type": "string"
      +                  },
      +                  "label": {
      +                    "description": "Compact numeric label from the most recent ui_snapshot/ui_find; useful for repeated actions without repeating names or coordinates.",
      +                    "type": "number"
      +                  },
      +                  "method": {
      +                    "description": "Text-entry strategy; auto is recommended.",
      +                    "enum": [
      +                      "auto",
      +                      "accessibility",
      +                      "clipboard",
      +                      "keys"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "name": {
      +                    "description": "Accessible name/title substring.",
      +                    "type": "string"
      +                  },
      +                  "pid": {
      +                    "description": "Limit matching to one owning process id when available.",
      +                    "type": "number"
      +                  },
      +                  "role": {
      +                    "description": "Accessible role such as Button, Edit, textbox or AXButton.",
      +                    "type": "string"
      +                  },
      +                  "text": {
      +                    "description": "Replacement text for this semantic edit.",
      +                    "type": "string"
      +                  },
      +                  "window_title": {
      +                    "description": "Limit matching to a top-level accessibility window/frame title substring when available.",
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "text"
      +                ],
      +                "type": "object"
      +              },
      +              "maxItems": 100,
      +              "minItems": 1,
      +              "type": "array"
      +            },
      +            "endpoint": {
      +              "description": "Loopback Chrome DevTools endpoint for a browser fallback.",
      +              "type": "string"
      +            },
      +            "id": {
      +              "description": "Element id returned by ui_snapshot or ui_find. Linux ids are stable per-process accessibility paths and legacy linux:<index> ids remain accepted.",
      +              "type": "string"
      +            },
      +            "label": {
      +              "description": "Compact numeric label from the most recent ui_snapshot/ui_find; useful for repeated actions without repeating names or coordinates.",
      +              "type": "number"
      +            },
      +            "name": {
      +              "description": "Accessible name/title substring.",
      +              "type": "string"
      +            },
      +            "ocr_language": {
      +              "description": "Tesseract language code, default eng.",
      +              "type": "string"
      +            },
      +            "ocr_psm": {
      +              "description": "Tesseract page segmentation mode, default 11.",
      +              "type": "number"
      +            },
      +            "ocr_region": {
      +              "description": "Optional virtual-desktop [left,top,right,bottom] region to OCR. Prefer bounds from list_windows or computer_snapshot.",
      +              "items": {
      +                "type": "number"
      +              },
      +              "maxItems": 4,
      +              "minItems": 4,
      +              "type": "array"
      +            },
      +            "ocr_text": {
      +              "description": "Visible text to find in rendered pixels for the OCR click fallback.",
      +              "type": "string"
      +            },
      +            "ocr_timeout_ms": {
      +              "description": "OCR timeout in milliseconds.",
      +              "type": "number"
      +            },
      +            "option": {
      +              "description": "Option value for browser select.",
      +              "type": "string"
      +            },
      +            "pid": {
      +              "description": "Limit matching to one owning process id when available.",
      +              "type": "number"
      +            },
      +            "replace_selection": {
      +              "description": "For multi_select, select the first item before adding the rest; default true.",
      +              "type": "boolean"
      +            },
      +            "role": {
      +              "description": "Accessible role such as Button, Edit, textbox or AXButton.",
      +              "type": "string"
      +            },
      +            "selector": {
      +              "description": "CSS selector when the fallback target is a browser element.",
      +              "type": "string"
      +            },
      +            "target": {
      +              "description": "Optional target type. auto tries native accessibility first, then browser DOM/CDP, OCR text when requested, then coordinates for click.",
      +              "enum": [
      +                "auto",
      +                "ui",
      +                "ui_element",
      +                "browser",
      +                "ocr",
      +                "coordinates"
      +              ],
      +              "type": "string"
      +            },
      +            "target_id": {
      +              "description": "Browser page target id returned by browser_tabs.",
      +              "type": "string"
      +            },
      +            "targets": {
      +              "description": "Native semantic targets for action=multi_select.",
      +              "items": {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "app": {
      +                    "description": "Limit matching to an application/process name substring when available.",
      +                    "type": "string"
      +                  },
      +                  "automation_id": {
      +                    "description": "Windows AutomationId when available.",
      +                    "type": "string"
      +                  },
      +                  "id": {
      +                    "description": "Element id returned by ui_snapshot or ui_find. Linux ids are stable per-process accessibility paths and legacy linux:<index> ids remain accepted.",
      +                    "type": "string"
      +                  },
      +                  "label": {
      +                    "description": "Compact numeric label from the most recent ui_snapshot/ui_find; useful for repeated actions without repeating names or coordinates.",
      +                    "type": "number"
      +                  },
      +                  "name": {
      +                    "description": "Accessible name/title substring.",
      +                    "type": "string"
      +                  },
      +                  "pid": {
      +                    "description": "Limit matching to one owning process id when available.",
      +                    "type": "number"
      +                  },
      +                  "role": {
      +                    "description": "Accessible role such as Button, Edit, textbox or AXButton.",
      +                    "type": "string"
      +                  },
      +                  "window_title": {
      +                    "description": "Limit matching to a top-level accessibility window/frame title substring when available.",
      +                    "type": "string"
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "maxItems": 100,
      +              "minItems": 1,
      +              "type": "array"
      +            },
      +            "text": {
      +              "description": "Text used by multi_edit or as a compatibility value for a semantic edit.",
      +              "type": "string"
      +            },
      +            "title": {
      +              "description": "Optional browser page title substring when target=browser.",
      +              "type": "string"
      +            },
      +            "url_contains": {
      +              "description": "Browser URL substring used to select a page.",
      +              "type": "string"
      +            },
      +            "value": {
      +              "description": "New value for set_value, set_range_value, or select.",
      +              "type": "string"
      +            },
      +            "window_title": {
      +              "description": "Limit matching to a top-level accessibility window/frame title substring when available.",
      +              "type": "string"
      +            },
      +            "x": {
      +              "description": "Virtual-desktop X coordinate used only by the final click fallback.",
      +              "type": "number"
      +            },
      +            "y": {
      +              "description": "Virtual-desktop Y coordinate used only by the final click fallback.",
      +              "type": "number"
      +            }
      +          },
      +          "required": [
      +            "action"
      +          ],
      +          "type": "object"
      +        }
      +      },
      +      "required": [
      +        "parameters"
      +      ]
      +    }
      +  }
      +]
    • changedInput schema / properties / operation / enum
      Previous value: -[
      -  "computer_snapshot",
      -  "computer_action",
      -  "launch_app",
      -  "open_path",
      -  "reveal_path"
      -]New value: +[
      +  "computer_snapshot",
      +  "computer_action"
      +]
    • changedOutput schema / oneOf
      Previous value: -[
      -  {
      -    "additionalProperties": true,
      -    "description": "Computer snapshot structured result for computer_snapshot. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.",
      -    "properties": {
      -      "active_window": {
      -        "additionalProperties": true,
      -        "description": "Active top-level window when known; null when accessibility state cannot be joined to top-level window enumeration.",
      -        "type": [
      -          "object",
      -          "null"
      -        ]
      -      },
      -      "browser": {
      -        "additionalProperties": true,
      -        "description": "Optional browser DOM/CDP snapshot.",
      -        "type": "object"
      -      },
      -      "bytes": {
      -        "description": "Serialized structured-result size when truncation metadata is returned.",
      -        "type": "number"
      -      },
      -      "clipboard": {
      -        "additionalProperties": true,
      -        "description": "Clipboard metadata only unless clipboard content was explicitly requested.",
      -        "type": "object"
      -      },
      -      "cursor": {
      -        "additionalProperties": true,
      -        "description": "Pointer position when available.",
      -        "type": "object"
      -      },
      -      "data": {
      -        "description": "Array/scalar payload wrapper used when the natural result is not an object."
      -      },
      -      "device": {
      -        "additionalProperties": true,
      -        "description": "Device/platform metadata for the captured computer state.",
      -        "type": "object"
      -      },
      -      "displays": {
      -        "description": "Display inventory used for virtual-desktop geometry.",
      -        "items": {
      -          "additionalProperties": true,
      -          "type": "object"
      -        },
      -        "type": "array"
      -      },
      -      "errors": {
      -        "description": "Non-fatal sub-capture errors.",
      -        "items": {
      -          "additionalProperties": true,
      -          "type": "object"
      -        },
      -        "type": "array"
      -      },
      -      "fallback_chain": {
      -        "additionalProperties": true,
      -        "description": "Which semantic/DOM/OCR/coordinate layers were requested and available.",
      -        "type": "object"
      -      },
      -      "ocr": {
      -        "additionalProperties": true,
      -        "description": "Optional OCR words/metadata.",
      -        "type": "object"
      -      },
      -      "preview": {
      -        "description": "Bounded JSON preview when the full structured mirror is too large.",
      -        "type": "string"
      -      },
      -      "text": {
      -        "description": "Human-readable structured mirror for text-only results.",
      -        "type": "string"
      -      },
      -      "truncated": {
      -        "description": "True when the structured mirror was bounded because the result was large.",
      -        "type": "boolean"
      -      },
      -      "ui": {
      -        "additionalProperties": true,
      -        "description": "Native accessibility snapshot and semantic tree.",
      -        "type": "object"
      -      },
      -      "windows": {
      -        "description": "Top-level windows with stable ids/PIDs/bounds when available.",
      -        "items": {
      -          "additionalProperties": true,
      -          "type": "object"
      -        },
      -        "type": "array"
      -      }
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": true,
      -    "description": "Computer action structured result for computer_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.",
      -    "properties": {
      -      "action": {
      -        "type": "string"
      -      },
      -      "bytes": {
      -        "description": "Serialized structured-result size when truncation metadata is returned.",
      -        "type": "number"
      -      },
      -      "capped": {
      -        "type": "boolean"
      -      },
      -      "completed": {
      -        "type": "number"
      -      },
      -      "count": {
      -        "type": "number"
      -      },
      -      "data": {
      -        "description": "Array/scalar payload wrapper used when the natural result is not an object."
      -      },
      -      "ok": {
      -        "type": "boolean"
      -      },
      -      "preview": {
      -        "description": "Bounded JSON preview when the full structured mirror is too large.",
      -        "type": "string"
      -      },
      -      "results": {
      -        "items": {
      -          "additionalProperties": true,
      -          "type": "object"
      -        },
      -        "type": "array"
      -      },
      -      "stopped_at": {
      -        "type": "number"
      -      },
      -      "text": {
      -        "description": "Human-readable structured mirror for text-only results.",
      -        "type": "string"
      -      },
      -      "truncated": {
      -        "description": "True when the structured mirror was bounded because the result was large.",
      -        "type": "boolean"
      -      },
      -      "waited_ms": {
      -        "type": "number"
      -      }
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": true,
      -    "description": "Launch application structured result for launch_app. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.",
      -    "properties": {
      -      "bytes": {
      -        "description": "Serialized structured-result size when truncation metadata is returned.",
      -        "type": "number"
      -      },
      -      "data": {
      -        "description": "Array/scalar payload wrapper used when the natural result is not an object."
      -      },
      -      "preview": {
      -        "description": "Bounded JSON preview when the full structured mirror is too large.",
      -        "type": "string"
      -      },
      -      "text": {
      -        "description": "Human-readable launch result and optional ready-window confirmation.",
      -        "type": "string"
      -      },
      -      "truncated": {
      -        "description": "True when the structured mirror was bounded because the result was large.",
      -        "type": "boolean"
      -      }
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": true,
      -    "description": "Open path structured result for open_path. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.",
      -    "properties": {
      -      "bytes": {
      -        "description": "Serialized structured-result size when truncation metadata is returned.",
      -        "type": "number"
      -      },
      -      "data": {
      -        "description": "Array/scalar payload wrapper used when the natural result is not an object."
      -      },
      -      "preview": {
      -        "description": "Bounded JSON preview when the full structured mirror is too large.",
      -        "type": "string"
      -      },
      -      "text": {
      -        "type": "string"
      -      },
      -      "truncated": {
      -        "description": "True when the structured mirror was bounded because the result was large.",
      -        "type": "boolean"
      -      }
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": true,
      -    "description": "Reveal path structured result for reveal_path. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.",
      -    "properties": {
      -      "bytes": {
      -        "description": "Serialized structured-result size when truncation metadata is returned.",
      -        "type": "number"
      -      },
      -      "data": {
      -        "description": "Array/scalar payload wrapper used when the natural result is not an object."
      -      },
      -      "preview": {
      -        "description": "Bounded JSON preview when the full structured mirror is too large.",
      -        "type": "string"
      -      },
      -      "text": {
      -        "type": "string"
      -      },
      -      "truncated": {
      -        "description": "True when the structured mirror was bounded because the result was large.",
      -        "type": "boolean"
      -      }
      -    },
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": true,
      +    "description": "Computer snapshot structured result for computer_snapshot. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.",
      +    "properties": {
      +      "active_window": {
      +        "additionalProperties": true,
      +        "description": "Active top-level window when known; null when accessibility state cannot be joined to top-level window enumeration.",
      +        "type": [
      +          "object",
      +          "null"
      +        ]
      +      },
      +      "browser": {
      +        "additionalProperties": true,
      +        "description": "Optional browser DOM/CDP snapshot.",
      +        "type": "object"
      +      },
      +      "bytes": {
      +        "description": "Serialized structured-result size when truncation metadata is returned.",
      +        "type": "number"
      +      },
      +      "clipboard": {
      +        "additionalProperties": true,
      +        "description": "Clipboard metadata only unless clipboard content was explicitly requested.",
      +        "type": "object"
      +      },
      +      "cursor": {
      +        "additionalProperties": true,
      +        "description": "Pointer position when available.",
      +        "type": "object"
      +      },
      +      "data": {
      +        "description": "Array/scalar payload wrapper used when the natural result is not an object."
      +      },
      +      "device": {
      +        "additionalProperties": true,
      +        "description": "Device/platform metadata for the captured computer state.",
      +        "type": "object"
      +      },
      +      "displays": {
      +        "description": "Display inventory used for virtual-desktop geometry.",
      +        "items": {
      +          "additionalProperties": true,
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "errors": {
      +        "description": "Non-fatal sub-capture errors.",
      +        "items": {
      +          "additionalProperties": true,
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "fallback_chain": {
      +        "additionalProperties": true,
      +        "description": "Which semantic/DOM/OCR/coordinate layers were requested and available.",
      +        "type": "object"
      +      },
      +      "ocr": {
      +        "additionalProperties": true,
      +        "description": "Optional OCR words/metadata.",
      +        "type": "object"
      +      },
      +      "preview": {
      +        "description": "Bounded JSON preview when the full structured mirror is too large.",
      +        "type": "string"
      +      },
      +      "text": {
      +        "description": "Human-readable structured mirror for text-only results.",
      +        "type": "string"
      +      },
      +      "truncated": {
      +        "description": "True when the structured mirror was bounded because the result was large.",
      +        "type": "boolean"
      +      },
      +      "ui": {
      +        "additionalProperties": true,
      +        "description": "Native accessibility snapshot and semantic tree.",
      +        "type": "object"
      +      },
      +      "windows": {
      +        "description": "Top-level windows with stable ids/PIDs/bounds when available.",
      +        "items": {
      +          "additionalProperties": true,
      +          "type": "object"
      +        },
      +        "type": "array"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": true,
      +    "description": "Computer action structured result for computer_action. Stable fields are declared explicitly; platform-specific fields may be added. Large results may return truncated/bytes/preview instead of the full payload.",
      +    "properties": {
      +      "action": {
      +        "type": "string"
      +      },
      +      "bytes": {
      +        "description": "Serialized structured-result size when truncation metadata is returned.",
      +        "type": "number"
      +      },
      +      "capped": {
      +        "type": "boolean"
      +      },
      +      "completed": {
      +        "type": "number"
      +      },
      +      "count": {
      +        "type": "number"
      +      },
      +      "data": {
      +        "description": "Array/scalar payload wrapper used when the natural result is not an object."
      +      },
      +      "ok": {
      +        "type": "boolean"
      +      },
      +      "preview": {
      +        "description": "Bounded JSON preview when the full structured mirror is too large.",
      +        "type": "string"
      +      },
      +      "results": {
      +        "items": {
      +          "additionalProperties": true,
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "stopped_at": {
      +        "type": "number"
      +      },
      +      "text": {
      +        "description": "Human-readable structured mirror for text-only results.",
      +        "type": "string"
      +      },
      +      "truncated": {
      +        "description": "True when the structured mirror was bounded because the result was large.",
      +        "type": "boolean"
      +      },
      +      "waited_ms": {
      +        "type": "number"
      +      }
      +    },
      +    "type": "object"
      +  }
      +]
  4. Addedv0.2.88

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, readOnlyHint=false and openWorldHint=true as a blanket profile. The description adds real value by narrowing that blanket: snapshot/find/wait only observe state, while clicks, typing, window close, app launch, clipboard writes and recording mutate local application state. It does not disclose permission/consent prerequisites (e.g. portal consent) or failure modes, so not a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with capability scope before the read/write distinction and the targeting rule. The opening capability list is long but each item marks a real sub-domain. No filler or hedging.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a very broad automation tool with an output schema (so return values need not be explained) and annotations covering the safety profile, the description covers scope, mutation surface, and targeting strategy. It omits prerequisites such as accessibility permission or Wayland portal consent, and mentions 'waits', 'app launch' and 'notifications' that are not directly visible in the action enum.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3 and the schema carries the detail. The one genuinely additive clause, 'prefer semantic targets before raw coordinates', is partly redundant with the target parameter's own schema description ('auto prefers native accessibility, then browser DOM/CDP, then OCR/coordinates'). Net addition over structured fields is small.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb set and resource domain (semantic inspection or control of native desktop applications) and enumerates concrete capability areas: windows, accessibility/UI elements, waits, displays, app launch, text/input, clipboard, open/reveal, notifications, screen recording. That is far more than a restatement of the name. It stops short of a 5 because it never names a sibling tool, and app launch clearly overlaps run_terminal without being differentiated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives within-tool guidance (prefer semantic targets before raw coordinates) and splits operations into observing vs state-changing, which helps an agent decide whether calling is safe. It gives no when-not or alternative-tool routing, despite obvious overlap with run_terminal for launching apps and view_image for screenshots. Usage is implied rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.