changedInput schema / oneOf
Previous value: -[
- {
- "additionalProperties": false,
- "properties": {
- "action": {
- "const": "raw"
- },
- "amount": {
- "default": 3,
- "description": "Number of scroll steps (default 3)",
- "type": "integer"
- },
- "direction": {
- "description": "Scroll direction",
- "enum": [
- "up",
- "down",
- "left",
- "right"
- ],
- "type": "string"
- },
- "homing": {
- "default": true,
- "description": "Apply window-movement homing correction to (x,y) before scrolling. Default true."
- },
- "hwnd": {
- "description": "Direct window handle ID (takes precedence over windowTitle).",
- "type": "string"
- },
- "speed": {
- "description": "Cursor movement speed in px/sec (0=teleport, omit=default)",
- "type": "number"
- },
- "windowTitle": {
- "description": "Partial window title. When provided, the server focuses this window first.",
- "type": "string"
- },
- "x": {
- "description": "X coordinate to scroll at (moves cursor there first)",
- "type": "number"
- },
- "y": {
- "description": "Y coordinate to scroll at",
- "type": "number"
- }
- },
- "required": [
- "action",
- "direction"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "action": {
- "const": "to_element"
- },
- "block": {
- "default": "center",
- "description": "Vertical alignment after scroll — start/center/end/nearest (Chrome path only, default: center)",
- "enum": [
- "start",
- "center",
- "end",
- "nearest"
- ],
- "type": "string"
- },
- "name": {
- "description": "Partial name/label of the element (UIA name match). Use for native app elements. At least one of name or selector must be provided.",
- "type": "string"
- },
- "port": {
- "default": 9222,
- "description": "CDP port for Chrome path (default 9222)",
- "maximum": 65535,
- "minimum": 1,
- "type": "integer"
- },
- "selector": {
- "description": "CSS selector for the element (Chrome/Edge only). At least one of name or selector must be provided.",
- "type": "string"
- },
- "tabId": {
- "description": "Tab ID (Chrome path only). Omit for first page tab.",
- "type": "string"
- },
- "windowTitle": {
- "description": "Partial window title (required for native path when name is used)",
- "type": "string"
- }
- },
- "required": [
- "action"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "action": {
- "const": "smart"
- },
- "direction": {
- "default": "into-view",
- "description": "Scroll direction. into-view: scroll until target element is visible (default). Other values scroll unconditionally.",
- "enum": [
- "into-view",
- "up",
- "down",
- "left",
- "right"
- ],
- "type": "string"
- },
- "expandHidden": {
- "default": false,
- "description": "Temporarily set overflow:hidden ancestors to overflow:auto to unlock scroll. Mutates live CSS.",
- "type": "boolean"
- },
- "hint": {
- "description": "Scroll direction hint for binary-search (image path). Seeds lo/hi bounds to reduce attempts.",
- "enum": [
- "above",
- "below",
- "left",
- "right"
- ],
- "type": "string"
- },
- "inline": {
- "default": "center",
- "description": "Vertical alignment after scroll (CDP path). Default: center.",
- "enum": [
- "start",
- "center",
- "end",
- "nearest"
- ],
- "type": "string"
- },
- "maxDepth": {
- "default": 3,
- "description": "Max number of ancestor scroll containers to walk. Default 3.",
- "maximum": 10,
- "minimum": 1,
- "type": "integer"
- },
- "port": {
- "default": 9222,
- "description": "CDP port (default 9222)",
- "maximum": 65535,
- "minimum": 1,
- "type": "integer"
- },
- "retryCount": {
- "default": 3,
- "description": "Max scroll attempts (image path binary-search). Default 3, cap 4.",
- "maximum": 4,
- "minimum": 1,
- "type": "integer"
- },
- "strategy": {
- "default": "auto",
- "description": "auto (default): try CDP → UIA → image in order. cdp: Chrome/Edge only. uia: native Windows UIA. image: image + Win32 binary-search.",
- "enum": [
- "auto",
- "cdp",
- "uia",
- "image"
- ],
- "type": "string"
- },
- "tabId": {
- "description": "CDP tab ID (Chrome path only). Omit for first page tab.",
- "type": "string"
- },
- "target": {
- "description": "CSS selector (Chrome/Edge) or partial UIA name (native apps). For CDP path, must be a valid CSS selector (starts with #, ., tag, or [ ). For UIA path, a partial name match against element Name property.",
- "type": "string"
- },
- "verifyWithHash": {
- "default": false,
- "description": "Verify scroll effectiveness via perceptual hash comparison. Automatically enabled for image path.",
- "type": "boolean"
- },
- "virtualIndex": {
- "description": "Target row index in a virtualised list (0-based). Enables direct TanStack/data-index seeking.",
- "minimum": 0,
- "type": "integer"
- },
- "virtualTotal": {
- "description": "Total row count in a virtualised list. Required when virtualIndex is set.",
- "minimum": 1,
- "type": "integer"
- },
- "windowTitle": {
- "description": "Partial window title. Required for UIA and image paths. For CDP path, optional.",
- "type": "string"
- }
- },
- "required": [
- "action",
- "target"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "action": {
- "const": "capture"
- },
- "direction": {
- "default": "down",
- "description": "Scroll direction: 'down' (vertical, uses Page Down key) or 'right' (horizontal, uses mouse scroll). Default 'down'.",
- "enum": [
- "down",
- "right"
- ],
- "type": "string"
- },
- "maxScrolls": {
- "default": 10,
- "description": "Maximum scroll iterations before stopping (default 10, max 30)",
- "maximum": 30,
- "minimum": 1,
- "type": "integer"
- },
- "maxWidth": {
- "default": 1280,
- "description": "Max size of the short edge of the final image (default 1280). For 'down': caps the image width; height is unconstrained. For 'right': caps the image height; width is unconstrained.",
- "type": "integer"
- },
- "scrollDelayMs": {
- "default": 400,
- "description": "Milliseconds to wait after each scroll for rendering to settle (default 400). Increase for slow/animated pages.",
- "maximum": 3000,
- "minimum": 100,
- "type": "integer"
- },
- "windowTitle": {
- "description": "Partial title of the window to capture (case-insensitive match)",
- "type": "string"
- }
- },
- "required": [
- "action",
- "windowTitle"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "action": {
- "const": "read"
- },
- "language": {
- "description": "OCR language code (e.g. 'ja', 'en', 'zh'). Omit to auto-detect from Windows system locale via Intl.DateTimeFormat().resolvedOptions().locale. Default: auto.",
- "type": "string"
- },
- "maxPages": {
- "default": 20,
- "description": "Maximum number of scroll steps / OCR pages (default 20, max 50).",
- "maximum": 50,
- "minimum": 1,
- "type": "integer"
- },
- "scrollDelayMs": {
- "default": 400,
- "description": "Milliseconds to wait after each scroll for rendering to settle (default 400).",
- "maximum": 3000,
- "minimum": 100,
- "type": "integer"
- },
- "scrollKey": {
- "default": "PageDown",
- "description": "Key sent to scroll one page. PageDown (default): full-page scroll for most apps. Space: web/PDF readers. ArrowDown: line-by-line slow scroll.",
- "enum": [
- "PageDown",
- "Space",
- "ArrowDown"
- ],
- "type": "string"
- },
- "stopWhenNoChange": {
- "default": true,
- "description": "Stop automatically when two consecutive pages yield no new lines after deduplication (page-end detection). Default true.",
- "type": "boolean"
- },
- "windowTitle": {
- "description": "Partial window title to focus and OCR (case-insensitive match).",
- "type": "string"
- }
- },
- "required": [
- "action",
- "windowTitle"
- ],
- "type": "object"
- }
-]New value: +[
+ {
+ "additionalProperties": false,
+ "properties": {
+ "action": {
+ "const": "raw"
+ },
+ "amount": {
+ "default": 3,
+ "description": "Number of scroll steps (default 3)",
+ "type": "integer"
+ },
+ "direction": {
+ "description": "Scroll direction",
+ "enum": [
+ "up",
+ "down",
+ "left",
+ "right"
+ ],
+ "type": "string"
+ },
+ "homing": {
+ "default": true,
+ "description": "Apply window-movement homing correction to (x,y) before scrolling. Default true."
+ },
+ "hwnd": {
+ "description": "Direct window handle ID (takes precedence over windowTitle).",
+ "type": "string"
+ },
+ "include": {
+ "description": "Optional response-shape opt-in. `['envelope']` returns the self-documenting envelope (`_version` / `data` / `as_of` / `confidence`). `['raw']` forces raw shape (overrides DESKTOP_TOUCH_ENVELOPE=1 server default). Default behaviour is raw shape (compat with existing clients).",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "speed": {
+ "description": "Cursor movement speed in px/sec (0=teleport, omit=default)",
+ "type": "number"
+ },
+ "windowTitle": {
+ "description": "Partial window title. When provided, the server focuses this window first.",
+ "type": "string"
+ },
+ "x": {
+ "description": "X coordinate to scroll at (moves cursor there first)",
+ "type": "number"
+ },
+ "y": {
+ "description": "Y coordinate to scroll at",
+ "type": "number"
+ }
+ },
+ "required": [
+ "action",
+ "direction"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "action": {
+ "const": "to_element"
+ },
+ "block": {
+ "default": "center",
+ "description": "Vertical alignment after scroll — start/center/end/nearest (Chrome path only, default: center)",
+ "enum": [
+ "start",
+ "center",
+ "end",
+ "nearest"
+ ],
+ "type": "string"
+ },
+ "include": {
+ "description": "Optional response-shape opt-in. `['envelope']` returns the self-documenting envelope (`_version` / `data` / `as_of` / `confidence`). `['raw']` forces raw shape (overrides DESKTOP_TOUCH_ENVELOPE=1 server default). Default behaviour is raw shape (compat with existing clients).",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "Partial name/label of the element (UIA name match). Use for native app elements. At least one of name or selector must be provided.",
+ "type": "string"
+ },
+ "port": {
+ "default": 9222,
+ "description": "CDP port for Chrome path (default 9222)",
+ "maximum": 65535,
+ "minimum": 1,
+ "type": "integer"
+ },
+ "selector": {
+ "description": "CSS selector for the element (Chrome/Edge only). At least one of name or selector must be provided.",
+ "type": "string"
+ },
+ "tabId": {
+ "description": "Tab ID (Chrome path only). Omit for first page tab.",
+ "type": "string"
+ },
+ "windowTitle": {
+ "description": "Partial window title (required for native path when name is used)",
+ "type": "string"
+ }
+ },
+ "required": [
+ "action"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "action": {
+ "const": "smart"
+ },
+ "direction": {
+ "default": "into-view",
+ "description": "Scroll direction. into-view: scroll until target element is visible (default). Other values scroll unconditionally.",
+ "enum": [
+ "into-view",
+ "up",
+ "down",
+ "left",
+ "right"
+ ],
+ "type": "string"
+ },
+ "expandHidden": {
+ "default": false,
+ "description": "Temporarily set overflow:hidden ancestors to overflow:auto to unlock scroll. Mutates live CSS.",
+ "type": "boolean"
+ },
+ "hint": {
+ "description": "Scroll direction hint for binary-search (image path). Seeds lo/hi bounds to reduce attempts.",
+ "enum": [
+ "above",
+ "below",
+ "left",
+ "right"
+ ],
+ "type": "string"
+ },
+ "include": {
+ "description": "Optional response-shape opt-in. `['envelope']` returns the self-documenting envelope (`_version` / `data` / `as_of` / `confidence`). `['raw']` forces raw shape (overrides DESKTOP_TOUCH_ENVELOPE=1 server default). Default behaviour is raw shape (compat with existing clients).",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "inline": {
+ "default": "center",
+ "description": "Vertical alignment after scroll (CDP path). Default: center.",
+ "enum": [
+ "start",
+ "center",
+ "end",
+ "nearest"
+ ],
+ "type": "string"
+ },
+ "maxDepth": {
+ "default": 3,
+ "description": "Max number of ancestor scroll containers to walk. Default 3.",
+ "maximum": 10,
+ "minimum": 1,
+ "type": "integer"
+ },
+ "port": {
+ "default": 9222,
+ "description": "CDP port (default 9222)",
+ "maximum": 65535,
+ "minimum": 1,
+ "type": "integer"
+ },
+ "retryCount": {
+ "default": 3,
+ "description": "Max scroll attempts (image path binary-search). Default 3, cap 4.",
+ "maximum": 4,
+ "minimum": 1,
+ "type": "integer"
+ },
+ "strategy": {
+ "default": "auto",
+ "description": "auto (default): try CDP → UIA → image in order. cdp: Chrome/Edge only. uia: native Windows UIA. image: image + Win32 binary-search.",
+ "enum": [
+ "auto",
+ "cdp",
+ "uia",
+ "image"
+ ],
+ "type": "string"
+ },
+ "tabId": {
+ "description": "CDP tab ID (Chrome path only). Omit for first page tab.",
+ "type": "string"
+ },
+ "target": {
+ "description": "CSS selector (Chrome/Edge) or partial UIA name (native apps). For CDP path, must be a valid CSS selector (starts with #, ., tag, or [ ). For UIA path, a partial name match against element Name property.",
+ "type": "string"
+ },
+ "verifyWithHash": {
+ "default": false,
+ "description": "Verify scroll effectiveness via perceptual hash comparison. Automatically enabled for image path.",
+ "type": "boolean"
+ },
+ "virtualIndex": {
+ "description": "Target row index in a virtualised list (0-based). Enables direct TanStack/data-index seeking.",
+ "minimum": 0,
+ "type": "integer"
+ },
+ "virtualTotal": {
+ "description": "Total row count in a virtualised list. Required when virtualIndex is set.",
+ "minimum": 1,
+ "type": "integer"
+ },
+ "windowTitle": {
+ "description": "Partial window title. Required for UIA and image paths. For CDP path, optional.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "action",
+ "target"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "action": {
+ "const": "capture"
+ },
+ "direction": {
+ "default": "down",
+ "description": "Scroll direction: 'down' (vertical, uses Page Down key) or 'right' (horizontal, uses mouse scroll). Default 'down'.",
+ "enum": [
+ "down",
+ "right"
+ ],
+ "type": "string"
+ },
+ "include": {
+ "description": "Optional response-shape opt-in. `['envelope']` returns the self-documenting envelope (`_version` / `data` / `as_of` / `confidence`). `['raw']` forces raw shape (overrides DESKTOP_TOUCH_ENVELOPE=1 server default). Default behaviour is raw shape (compat with existing clients).",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "maxScrolls": {
+ "default": 10,
+ "description": "Maximum scroll iterations before stopping (default 10, max 30)",
+ "maximum": 30,
+ "minimum": 1,
+ "type": "integer"
+ },
+ "maxWidth": {
+ "default": 1280,
+ "description": "Max size of the short edge of the final image (default 1280). For 'down': caps the image width; height is unconstrained. For 'right': caps the image height; width is unconstrained.",
+ "type": "integer"
+ },
+ "scrollDelayMs": {
+ "default": 400,
+ "description": "Milliseconds to wait after each scroll for rendering to settle (default 400). Increase for slow/animated pages.",
+ "maximum": 3000,
+ "minimum": 100,
+ "type": "integer"
+ },
+ "windowTitle": {
+ "description": "Partial title of the window to capture (case-insensitive match)",
+ "type": "string"
+ }
+ },
+ "required": [
+ "action",
+ "windowTitle"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "action": {
+ "const": "read"
+ },
+ "include": {
+ "description": "Optional response-shape opt-in. `['envelope']` returns the self-documenting envelope (`_version` / `data` / `as_of` / `confidence`). `['raw']` forces raw shape (overrides DESKTOP_TOUCH_ENVELOPE=1 server default). Default behaviour is raw shape (compat with existing clients).",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "language": {
+ "description": "OCR language code (e.g. 'ja', 'en', 'zh'). Omit to auto-detect from Windows system locale via Intl.DateTimeFormat().resolvedOptions().locale. Default: auto.",
+ "type": "string"
+ },
+ "maxPages": {
+ "default": 20,
+ "description": "Maximum number of scroll steps / OCR pages (default 20, max 50).",
+ "maximum": 50,
+ "minimum": 1,
+ "type": "integer"
+ },
+ "scrollDelayMs": {
+ "default": 400,
+ "description": "Milliseconds to wait after each scroll for rendering to settle (default 400).",
+ "maximum": 3000,
+ "minimum": 100,
+ "type": "integer"
+ },
+ "scrollKey": {
+ "default": "PageDown",
+ "description": "Key sent to scroll one page. PageDown (default): full-page scroll for most apps. Space: web/PDF readers. ArrowDown: line-by-line slow scroll.",
+ "enum": [
+ "PageDown",
+ "Space",
+ "ArrowDown"
+ ],
+ "type": "string"
+ },
+ "stopWhenNoChange": {
+ "default": true,
+ "description": "Stop automatically when two consecutive pages yield no new lines after deduplication (page-end detection). Default true.",
+ "type": "boolean"
+ },
+ "windowTitle": {
+ "description": "Partial window title to focus and OCR (case-insensitive match).",
+ "type": "string"
+ }
+ },
+ "required": [
+ "action",
+ "windowTitle"
+ ],
+ "type": "object"
+ }
+]