changedInput schema / $defs / Action / oneOf
Previous value: -[
- {
- "$ref": "#/$defs/ClickArgs",
- "properties": {
- "action": {
- "const": "click",
- "type": "string"
- }
- },
- "required": [
- "action"
- ],
- "type": "object"
- },
- {
- "$ref": "#/$defs/MoveArgs",
- "properties": {
- "action": {
- "const": "move",
- "type": "string"
- }
- },
- "required": [
- "action"
- ],
- "type": "object"
- },
- {
- "$ref": "#/$defs/DragArgs",
- "properties": {
- "action": {
- "const": "drag",
- "type": "string"
- }
- },
- "required": [
- "action"
- ],
- "type": "object"
- },
- {
- "$ref": "#/$defs/ScrollArgs",
- "properties": {
- "action": {
- "const": "scroll",
- "type": "string"
- }
- },
- "required": [
- "action"
- ],
- "type": "object"
- },
- {
- "$ref": "#/$defs/TypeArgs",
- "properties": {
- "action": {
- "const": "type",
- "type": "string"
- }
- },
- "required": [
- "action"
- ],
- "type": "object"
- },
- {
- "$ref": "#/$defs/KeyArgs",
- "properties": {
- "action": {
- "const": "key",
- "type": "string"
- }
- },
- "required": [
- "action"
- ],
- "type": "object"
- },
- {
- "$ref": "#/$defs/SettleArgs",
- "properties": {
- "action": {
- "const": "settle",
- "type": "string"
- }
- },
- "required": [
- "action"
- ],
- "type": "object"
- }
-]New value: +[
+ {
+ "$ref": "#/$defs/ClickArgs",
+ "properties": {
+ "action": {
+ "const": "click",
+ "type": "string"
+ }
+ },
+ "required": [
+ "action"
+ ],
+ "type": "object"
+ },
+ {
+ "$ref": "#/$defs/MoveArgs",
+ "properties": {
+ "action": {
+ "const": "move",
+ "type": "string"
+ }
+ },
+ "required": [
+ "action"
+ ],
+ "type": "object"
+ },
+ {
+ "$ref": "#/$defs/DragArgs",
+ "properties": {
+ "action": {
+ "const": "drag",
+ "type": "string"
+ }
+ },
+ "required": [
+ "action"
+ ],
+ "type": "object"
+ },
+ {
+ "$ref": "#/$defs/ScrollArgs",
+ "properties": {
+ "action": {
+ "const": "scroll",
+ "type": "string"
+ }
+ },
+ "required": [
+ "action"
+ ],
+ "type": "object"
+ },
+ {
+ "$ref": "#/$defs/TypeArgs",
+ "properties": {
+ "action": {
+ "const": "type",
+ "type": "string"
+ }
+ },
+ "required": [
+ "action"
+ ],
+ "type": "object"
+ },
+ {
+ "$ref": "#/$defs/KeyArgs",
+ "properties": {
+ "action": {
+ "const": "key",
+ "type": "string"
+ }
+ },
+ "required": [
+ "action"
+ ],
+ "type": "object"
+ },
+ {
+ "$ref": "#/$defs/SettleArgs",
+ "properties": {
+ "action": {
+ "const": "settle",
+ "type": "string"
+ }
+ },
+ "required": [
+ "action"
+ ],
+ "type": "object"
+ },
+ {
+ "$ref": "#/$defs/ClickElementArgs",
+ "properties": {
+ "action": {
+ "const": "click_element",
+ "type": "string"
+ }
+ },
+ "required": [
+ "action"
+ ],
+ "type": "object"
+ },
+ {
+ "$ref": "#/$defs/SetValueArgs",
+ "properties": {
+ "action": {
+ "const": "set_value",
+ "type": "string"
+ }
+ },
+ "required": [
+ "action"
+ ],
+ "type": "object"
+ },
+ {
+ "$ref": "#/$defs/WaitForElementArgs",
+ "properties": {
+ "action": {
+ "const": "wait_for_element",
+ "type": "string"
+ }
+ },
+ "required": [
+ "action"
+ ],
+ "type": "object"
+ },
+ {
+ "$ref": "#/$defs/ScrollToElementArgs",
+ "properties": {
+ "action": {
+ "const": "scroll_to_element",
+ "type": "string"
+ }
+ },
+ "required": [
+ "action"
+ ],
+ "type": "object"
+ }
+]
changedInput schema / $defs / ClickArgs / properties / count / description
Previous value: -"Consecutive clicks at this point (default 1); pass 2 for a double-click."New value: +"Consecutive clicks at this point (default 1, valid range 1 through 10); pass 2 for a\ndouble-click."
addedInput schema / $defs / ClickArgs / properties / count / maximum
Added value: +10
changedInput schema / $defs / ClickArgs / properties / count / minimum
Previous value: -0New value: +1
addedInput schema / $defs / ClickElementArgs
Added value: +{
+ "properties": {
+ "id": {
+ "description": "Element `#id` from the latest `glass_a11y_snapshot`.\nRe-snapshot after UI changes.\nPopover-owned targets route to their window and restore the prior active window.\nThe role-appropriate native accessibility operation handles occluded or off-screen targets\nand separate labels through their enclosing control.\nUnavailable native operations fall back to a pointer click at the target center.\nText editors may receive focus without activation.\n`method:\"native-action\"` labels any native path.\n`native_fallback` explains pointer fallback.\n`actuated_id` identifies a substituted enclosing control.",
+ "format": "uint32",
+ "minimum": 0,
+ "type": "integer"
+ },
+ "return": {
+ "description": "Terminal observation: \"snapshot\" settles and refreshes/folds a11y, \"settle\" waits for\nvisual stability and returns text-only metadata, and \"none\" skips observation (default).",
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "id"
+ ],
+ "type": "object"
+}
changedInput schema / $defs / ScrollArgs / properties / dx / description
Previous value: -"Horizontal scroll in **wheel notches** (discrete clicks — small integers like 1–5, NOT\npixels). Positive `dx` sends wheel-right, negative wheel-left; glass clicks `|dx|` times."New value: +"Horizontal wheel notches from -100 through 100, not pixels.\nPositive is right and negative is left, repeated `|dx|` times.\nTypical values are 1–5."
addedInput schema / $defs / ScrollArgs / properties / dx / maximum
Added value: +100
addedInput schema / $defs / ScrollArgs / properties / dx / minimum
Added value: +-100
changedInput schema / $defs / ScrollArgs / properties / dy / description
Previous value: -"Vertical scroll in **wheel notches** (discrete clicks — small integers like 1–5, NOT\npixels). Positive `dy` sends wheel-down, negative wheel-up; glass clicks `|dy|` times. How\nan app maps a wheel notch to its view (lines, pixels, zoom) is the app's choice."New value: +"Vertical wheel notches from -100 through 100, not pixels.\nPositive is down and negative is up, repeated `|dy|` times.\nTypical values are 1–5.\nApps choose how a notch maps to lines, pixels, or zoom."
addedInput schema / $defs / ScrollArgs / properties / dy / maximum
Added value: +100
addedInput schema / $defs / ScrollArgs / properties / dy / minimum
Added value: +-100
addedInput schema / $defs / ScrollToElementArgs
Added value: +{
+ "properties": {
+ "description": {
+ "description": "Substring of the target element's accessible description (selector). This can select\nan unnamed control, including an Android text field labelled only by its hint.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "direction": {
+ "description": "Sweep direction: \"up\"/\"down\" (vertical) or \"left\"/\"right\" (horizontal).\nOmit to infer it from the target's off-screen position (falls back to a\nvertical down→up sweep when the target isn't in the a11y tree yet). The\nsearch reverses to the other end if the target isn't found first.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "name": {
+ "description": "Substring of the target element's accessible name (selector).",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "role": {
+ "description": "Element role filter, e.g. \"ListItem\", \"Button\", \"Document\" (selector).",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "step": {
+ "description": "Wheel notches per scroll step (default 3). A calibration escape hatch — larger\ncovers distance faster but risks stepping past a row's/column's realized band.",
+ "format": "uint32",
+ "minimum": 0,
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "timeout_ms": {
+ "description": "Give up after this long (default 20000ms); returns `{matched:false}`.",
+ "format": "uint64",
+ "minimum": 0,
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "value_contains": {
+ "description": "Additionally require the matched element's `value` to contain this substring.\nNot a standalone selector — `name`, `description`, and/or `role` is still required.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "x": {
+ "description": "Scroll anchor x (window-relative). By default the swipe anchors on the target's\nown row/column (falling back to the window center if it isn't in the a11y tree\nyet); set both `x` and `y` to point the wheel at a specific container instead.",
+ "format": "int32",
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "y": {
+ "description": "Scroll anchor y (window-relative). See `x`.",
+ "format": "int32",
+ "type": [
+ "integer",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+}
addedInput schema / $defs / SetValueArgs
Added value: +{
+ "properties": {
+ "id": {
+ "description": "The element `#id` from `glass_a11y_snapshot`.",
+ "format": "uint32",
+ "minimum": 0,
+ "type": "integer"
+ },
+ "return": {
+ "description": "Optional observe folded into the result: \"snapshot\" (wait for the UI to settle, then\nfold a fresh a11y tree, also refreshing the snapshot cache), \"settle\" (waits for visual\nstability and returns text-only metadata), or \"none\" (default).",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "text": {
+ "description": "The value to set. For a text field, the text. For a spin/slider, a number.\nFor a switch/checkbox/toggle, a boolean (`\"true\"`/`\"false\"`/`\"on\"`/`\"off\"`/\n`\"1\"`/`\"0\"`) — idempotent. For a dropdown/combo box, an option label\n(case-insensitive); glass opens it and picks that option.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "id",
+ "text"
+ ],
+ "type": "object"
+}
changedInput schema / $defs / SettleArgs / properties / timeout_ms / description
Previous value: -"Give up after this long (default 5000ms); the sequence continues rather than\nfailing."New value: +"Give up after this long (default 5000ms).\nThis settle's timeout returns settled:false and completes the step.\nThe enclosing glass_do deadline fails the sequence."
changedInput schema / $defs / TypeArgs / properties / return / description
Previous value: -"Optional observe folded into the result: \"snapshot\" (wait for the UI to settle, then\nfold a fresh a11y tree, also refreshing the snapshot cache), \"settle\" (wait for the UI\nto stop changing, text-only), or \"none\" (default). Not accepted inside a `glass_do`\n`type` action — use a `settle` action or the terminal `then` observe there."New value: +"Terminal observation: \"snapshot\" settles and refreshes/folds a11y, \"settle\" waits for\nvisual stability and returns text-only metadata, and \"none\" skips observation (default)."
addedInput schema / $defs / WaitForElementArgs
Added value: +{
+ "properties": {
+ "condition": {
+ "description": "What to wait for (default \"appears\"): appears|disappears|enabled|disabled|\nchecked|unchecked|selected|unselected|expanded|collapsed|focused|visible|hidden.\n`checked`/`unchecked` only match a checkable element (one exposing a real toggle\nstate) — a non-toggle element matches neither.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "description": {
+ "description": "Substring of the element's accessible description (selector). Useful for unnamed\ncontrols whose platform label is exposed as a hint, help text, or description.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "interval_ms": {
+ "description": "Poll interval (default 200ms — an a11y snapshot per tick).",
+ "format": "uint64",
+ "minimum": 0,
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "name": {
+ "description": "Substring of the element's accessible name (selector).",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "role": {
+ "description": "Element role filter, e.g. \"Button\", \"ProgressBar\", \"Document\" (selector).",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "timeout_ms": {
+ "description": "Give up after this long (default 10000ms); returns `{matched:false}`.",
+ "format": "uint64",
+ "minimum": 0,
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "value": {
+ "description": "Exact case-sensitive accessible value, requiring another selector and excluding `value_contains`.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "value_contains": {
+ "description": "Additionally require the matched element's `value` to contain this substring.\nNot a standalone selector — `name`, `description`, and/or `role` is still required.",
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+}
addedInput schema / properties / timeout_ms
Added value: +{
+ "description": "Overall sequence budget in milliseconds. Omit for 30000; valid range\n1..=120000. One absolute deadline is shared by all actions and terminal\nobservations.",
+ "format": "uint64",
+ "minimum": 0,
+ "type": [
+ "integer",
+ "null"
+ ]
+}