Files
Artemis-Eapil/tests/fixtures/action_surfaces/action_server_manifest.json
T

4023 lines
99 KiB
JSON

{
"action_sequence": {
"description": "Execute validated short gesture steps consecutively; stop at the first failure.",
"inputSchema": {
"$defs": {
"ClickStep": {
"additionalProperties": false,
"properties": {
"action": {
"const": "click",
"title": "Action",
"type": "string"
},
"target": {
"anyOf": [
{
"items": {
"type": "integer"
},
"maxItems": 2,
"minItems": 2,
"type": "array"
},
{
"maxLength": 512,
"minLength": 1,
"type": "string"
}
],
"description": "Prefer an exact observed resource_id: resolve its live bounds before tapping, refusing absent/ambiguous targets. Otherwise use [x,y] in coordinate_space; never mix screenshot pixels with normalized coordinates.",
"title": "Target"
},
"target_description": {
"maxLength": 512,
"minLength": 1,
"title": "Target Description",
"type": "string"
},
"coordinate_space": {
"default": "normalized",
"enum": [
"normalized",
"pixel"
],
"title": "Coordinate Space",
"type": "string"
},
"times": {
"default": 1,
"description": "Consecutive taps within this ONE member, e.g. 10 for a scale +/- button; no model turns between taps.",
"maximum": 10,
"minimum": 1,
"title": "Times",
"type": "integer"
},
"delay_ms": {
"default": 100,
"maximum": 1000,
"minimum": 0,
"title": "Delay Ms",
"type": "integer"
},
"unless_visible": {
"anyOf": [
{
"maxLength": 512,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Exact previously observed resource_id inside a toggled panel (not the opener). Skip this opener click when that control is already visible; otherwise click. Avoid closing a still-open panel.",
"title": "Unless Visible"
}
},
"required": [
"action",
"target",
"target_description"
],
"title": "ClickStep",
"type": "object"
},
"ControlActionStep": {
"additionalProperties": false,
"properties": {
"action": {
"const": "control_action",
"title": "Action",
"type": "string"
},
"request": {
"$ref": "#/$defs/SequenceControlRequest"
}
},
"required": [
"action",
"request"
],
"title": "ControlActionStep",
"type": "object"
},
"ControlSelector": {
"additionalProperties": false,
"description": "Every supplied attribute is an exact AND match against a fresh native node.",
"properties": {
"resource_id": {
"anyOf": [
{
"maxLength": 512,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Resource Id"
},
"text": {
"anyOf": [
{
"maxLength": 4096,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Text"
},
"content_desc": {
"anyOf": [
{
"maxLength": 512,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Content Desc"
},
"class_name": {
"anyOf": [
{
"maxLength": 512,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Class Name"
},
"package_name": {
"anyOf": [
{
"maxLength": 512,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Package Name"
},
"bounds": {
"anyOf": [
{
"items": {
"type": "integer"
},
"maxItems": 4,
"minItems": 4,
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Bounds"
}
},
"title": "ControlSelector",
"type": "object"
},
"DragCalibration": {
"additionalProperties": false,
"properties": {
"axis": {
"enum": [
"x",
"y"
],
"title": "Axis",
"type": "string"
},
"mode": {
"description": "thumb moves a handle to a value; pan moves a scale under a fixed indicator.",
"enum": [
"thumb",
"pan"
],
"title": "Mode",
"type": "string"
},
"anchors": {
"items": {
"$ref": "#/$defs/ScaleAnchor"
},
"maxItems": 2,
"minItems": 2,
"title": "Anchors",
"type": "array"
},
"target_value": {
"title": "Target Value",
"type": "number"
},
"indicator_position": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Required for pan: the fixed indicator's observed axis position.",
"title": "Indicator Position"
}
},
"required": [
"axis",
"mode",
"anchors",
"target_value"
],
"title": "DragCalibration",
"type": "object"
},
"DragStep": {
"additionalProperties": false,
"properties": {
"start": {
"items": {
"type": "integer"
},
"maxItems": 2,
"minItems": 2,
"title": "Start",
"type": "array"
},
"target_description": {
"minLength": 1,
"title": "Target Description",
"type": "string"
},
"end": {
"anyOf": [
{
"items": {
"type": "integer"
},
"maxItems": 2,
"minItems": 2,
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Exact endpoint; MUST be null when calibration is supplied.",
"title": "End"
},
"coordinate_space": {
"default": "normalized",
"enum": [
"normalized",
"pixel"
],
"title": "Coordinate Space",
"type": "string"
},
"duration_ms": {
"default": 300,
"maximum": 10000,
"minimum": 1,
"title": "Duration Ms",
"type": "integer"
},
"calibration": {
"anyOf": [
{
"$ref": "#/$defs/DragCalibration"
},
{
"type": "null"
}
],
"default": null,
"description": "Computes the endpoint from observed anchors; then set end=null."
},
"require_visible": {
"anyOf": [
{
"maxLength": 512,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Exact previously observed resource_id of a panel control. Check live visibility before dragging; refuse input if absent. Use for auto-hiding controls.",
"title": "Require Visible"
},
"action": {
"const": "drag",
"title": "Action",
"type": "string"
}
},
"required": [
"start",
"target_description",
"action"
],
"title": "DragStep",
"type": "object"
},
"EnsureVisibleStep": {
"additionalProperties": false,
"properties": {
"action": {
"const": "ensure_visible",
"title": "Action",
"type": "string"
},
"target": {
"description": "Panel control resource_id copied VERBATIM from observed elements, including the ':id/' separator. Never rewrite it as ':id:' or guess an ID.",
"maxLength": 512,
"minLength": 1,
"title": "Target",
"type": "string"
},
"opener": {
"description": "UI opener resource_id copied VERBATIM from observed elements, including ':id/' (not ':id:'). Tap ONCE only if target is absent; never use a business submission as an opener.",
"maxLength": 512,
"minLength": 1,
"title": "Opener",
"type": "string"
},
"target_description": {
"minLength": 1,
"title": "Target Description",
"type": "string"
},
"timeout_ms": {
"default": 1500,
"description": "Bounded live-UI wait AFTER opening, without extra model turns or repeated opener taps.",
"maximum": 3000,
"minimum": 100,
"title": "Timeout Ms",
"type": "integer"
}
},
"required": [
"action",
"target",
"opener",
"target_description"
],
"title": "EnsureVisibleStep",
"type": "object"
},
"PinchStep": {
"additionalProperties": false,
"properties": {
"center": {
"items": {
"type": "integer"
},
"maxItems": 2,
"minItems": 2,
"title": "Center",
"type": "array"
},
"start_span": {
"exclusiveMinimum": 0,
"maximum": 20000,
"title": "Start Span",
"type": "integer"
},
"end_span": {
"exclusiveMinimum": 0,
"maximum": 20000,
"title": "End Span",
"type": "integer"
},
"angle_degrees": {
"default": 0,
"maximum": 360,
"minimum": -360,
"title": "Angle Degrees",
"type": "number"
},
"rotation_degrees": {
"default": 0,
"maximum": 360,
"minimum": -360,
"title": "Rotation Degrees",
"type": "number"
},
"duration_ms": {
"default": 800,
"maximum": 10000,
"minimum": 1,
"title": "Duration Ms",
"type": "integer"
},
"coordinate_space": {
"default": "normalized",
"enum": [
"normalized",
"pixel"
],
"title": "Coordinate Space",
"type": "string"
},
"target_description": {
"maxLength": 512,
"minLength": 1,
"title": "Target Description",
"type": "string"
},
"require_visible": {
"anyOf": [
{
"maxLength": 512,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Require Visible"
},
"action": {
"const": "pinch",
"title": "Action",
"type": "string"
}
},
"required": [
"center",
"start_span",
"end_span",
"target_description",
"action"
],
"title": "PinchStep",
"type": "object"
},
"ScaleAnchor": {
"additionalProperties": false,
"properties": {
"position": {
"description": "Observed axis coordinate in the selected coordinate space.",
"title": "Position",
"type": "number"
},
"value": {
"description": "Observed scale value, in one consistent numeric unit.",
"title": "Value",
"type": "number"
}
},
"required": [
"position",
"value"
],
"title": "ScaleAnchor",
"type": "object"
},
"SequenceControlRequest": {
"additionalProperties": false,
"properties": {
"selector": {
"$ref": "#/$defs/ControlSelector"
},
"action": {
"enum": [
"click",
"long_click",
"focus",
"show_on_screen",
"set_progress",
"scroll_forward",
"scroll_backward",
"scroll_up",
"scroll_down",
"scroll_left",
"scroll_right",
"set_selection",
"replace_selection",
"set_text",
"ime_enter"
],
"title": "Action",
"type": "string"
},
"expected_token": {
"anyOf": [
{
"pattern": "^[a-f0-9]{64}$",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Expected Token"
},
"value": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Value"
},
"text": {
"anyOf": [
{
"maxLength": 1024,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Text"
},
"selection_start": {
"anyOf": [
{
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Selection Start"
},
"selection_end": {
"anyOf": [
{
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Selection End"
}
},
"required": [
"selector",
"action"
],
"title": "SequenceControlRequest",
"type": "object"
},
"TouchFrame": {
"additionalProperties": false,
"properties": {
"at_ms": {
"maximum": 10000,
"minimum": 0,
"title": "At Ms",
"type": "integer"
},
"points": {
"items": {
"items": {
"type": "integer"
},
"maxItems": 2,
"minItems": 2,
"type": "array"
},
"maxItems": 5,
"minItems": 1,
"title": "Points",
"type": "array"
}
},
"required": [
"at_ms",
"points"
],
"title": "TouchFrame",
"type": "object"
},
"TouchGestureStep": {
"additionalProperties": false,
"properties": {
"frames": {
"items": {
"$ref": "#/$defs/TouchFrame"
},
"maxItems": 32,
"minItems": 2,
"title": "Frames",
"type": "array"
},
"coordinate_space": {
"default": "normalized",
"enum": [
"normalized",
"pixel"
],
"title": "Coordinate Space",
"type": "string"
},
"target_description": {
"maxLength": 512,
"minLength": 1,
"title": "Target Description",
"type": "string"
},
"require_visible": {
"anyOf": [
{
"maxLength": 512,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Require Visible"
},
"action": {
"const": "touch_gesture",
"title": "Action",
"type": "string"
}
},
"required": [
"frames",
"target_description",
"action"
],
"title": "TouchGestureStep",
"type": "object"
},
"WaitStep": {
"additionalProperties": false,
"properties": {
"action": {
"const": "wait",
"title": "Action",
"type": "string"
},
"time_in_ms": {
"maximum": 10000,
"minimum": 0,
"title": "Time In Ms",
"type": "integer"
}
},
"required": [
"action",
"time_in_ms"
],
"title": "WaitStep",
"type": "object"
},
"WaitUntilStep": {
"additionalProperties": false,
"properties": {
"selector": {
"$ref": "#/$defs/ControlSelector"
},
"state": {
"enum": [
"visible",
"absent",
"enabled",
"disabled",
"checked",
"unchecked",
"selected",
"unselected",
"text",
"value",
"stable"
],
"title": "State",
"type": "string"
},
"expected_text": {
"anyOf": [
{
"maxLength": 4096,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Expected Text"
},
"expected_value": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Expected Value"
},
"tolerance": {
"default": 0,
"minimum": 0,
"title": "Tolerance",
"type": "number"
},
"stable_ms": {
"default": 300,
"maximum": 5000,
"minimum": 0,
"title": "Stable Ms",
"type": "integer"
},
"timeout_ms": {
"default": 1500,
"maximum": 3000,
"minimum": 1,
"title": "Timeout Ms",
"type": "integer"
},
"poll_interval_ms": {
"default": 200,
"maximum": 1000,
"minimum": 50,
"title": "Poll Interval Ms",
"type": "integer"
},
"action": {
"const": "wait_until",
"title": "Action",
"type": "string"
}
},
"required": [
"selector",
"state",
"action"
],
"title": "WaitUntilStep",
"type": "object"
}
},
"properties": {
"steps": {
"items": {
"anyOf": [
{
"$ref": "#/$defs/ClickStep"
},
{
"$ref": "#/$defs/DragStep"
},
{
"$ref": "#/$defs/WaitStep"
},
{
"$ref": "#/$defs/EnsureVisibleStep"
},
{
"$ref": "#/$defs/PinchStep"
},
{
"$ref": "#/$defs/TouchGestureStep"
},
{
"$ref": "#/$defs/ControlActionStep"
},
{
"$ref": "#/$defs/WaitUntilStep"
}
]
},
"title": "Steps",
"type": "array"
}
},
"required": [
"steps"
],
"title": "action_sequenceArguments",
"type": "object"
},
"outputSchema": {
"$defs": {
"ActionCode": {
"description": "Machine-readable outcome classification for a device action.",
"enum": [
"OK",
"INVALID_ARGS",
"TARGET_NOT_FOUND",
"DEVICE_ERROR",
"PACKAGE_NOT_FOUND",
"TIMEOUT",
"UNSUPPORTED"
],
"title": "ActionCode",
"type": "string"
}
},
"description": "Outcome of one device action, independent of any transport or agent.",
"properties": {
"ok": {
"title": "Ok",
"type": "boolean"
},
"code": {
"$ref": "#/$defs/ActionCode"
},
"action": {
"title": "Action",
"type": "string"
},
"message": {
"title": "Message",
"type": "string"
},
"detail": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Detail"
},
"normalized_coordinates": {
"anyOf": [
{
"items": {
"type": "integer"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Normalized Coordinates"
},
"duration_ms": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Duration Ms"
},
"metadata": {
"additionalProperties": true,
"title": "Metadata",
"type": "object"
}
},
"required": [
"ok",
"code",
"action",
"message"
],
"title": "ActionResult",
"type": "object"
}
},
"drag": {
"description": "Drag with exact coordinates or an observed two-anchor calibration.",
"inputSchema": {
"$defs": {
"DragCalibration": {
"additionalProperties": false,
"properties": {
"axis": {
"enum": [
"x",
"y"
],
"title": "Axis",
"type": "string"
},
"mode": {
"description": "thumb moves a handle to a value; pan moves a scale under a fixed indicator.",
"enum": [
"thumb",
"pan"
],
"title": "Mode",
"type": "string"
},
"anchors": {
"items": {
"$ref": "#/$defs/ScaleAnchor"
},
"maxItems": 2,
"minItems": 2,
"title": "Anchors",
"type": "array"
},
"target_value": {
"title": "Target Value",
"type": "number"
},
"indicator_position": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Required for pan: the fixed indicator's observed axis position.",
"title": "Indicator Position"
}
},
"required": [
"axis",
"mode",
"anchors",
"target_value"
],
"title": "DragCalibration",
"type": "object"
},
"ScaleAnchor": {
"additionalProperties": false,
"properties": {
"position": {
"description": "Observed axis coordinate in the selected coordinate space.",
"title": "Position",
"type": "number"
},
"value": {
"description": "Observed scale value, in one consistent numeric unit.",
"title": "Value",
"type": "number"
}
},
"required": [
"position",
"value"
],
"title": "ScaleAnchor",
"type": "object"
}
},
"properties": {
"start": {
"items": {
"type": "integer"
},
"title": "Start",
"type": "array"
},
"target_description": {
"title": "Target Description",
"type": "string"
},
"end": {
"anyOf": [
{
"items": {
"type": "integer"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "End"
},
"coordinate_space": {
"default": "normalized",
"enum": [
"normalized",
"pixel"
],
"title": "Coordinate Space",
"type": "string"
},
"duration_ms": {
"default": 300,
"title": "Duration Ms",
"type": "integer"
},
"calibration": {
"anyOf": [
{
"$ref": "#/$defs/DragCalibration"
},
{
"type": "null"
}
],
"default": null
},
"require_visible": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Require Visible"
}
},
"required": [
"start",
"target_description"
],
"title": "dragArguments",
"type": "object"
},
"outputSchema": {
"$defs": {
"ActionCode": {
"description": "Machine-readable outcome classification for a device action.",
"enum": [
"OK",
"INVALID_ARGS",
"TARGET_NOT_FOUND",
"DEVICE_ERROR",
"PACKAGE_NOT_FOUND",
"TIMEOUT",
"UNSUPPORTED"
],
"title": "ActionCode",
"type": "string"
}
},
"description": "Outcome of one device action, independent of any transport or agent.",
"properties": {
"ok": {
"title": "Ok",
"type": "boolean"
},
"code": {
"$ref": "#/$defs/ActionCode"
},
"action": {
"title": "Action",
"type": "string"
},
"message": {
"title": "Message",
"type": "string"
},
"detail": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Detail"
},
"normalized_coordinates": {
"anyOf": [
{
"items": {
"type": "integer"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Normalized Coordinates"
},
"duration_ms": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Duration Ms"
},
"metadata": {
"additionalProperties": true,
"title": "Metadata",
"type": "object"
}
},
"required": [
"ok",
"code",
"action",
"message"
],
"title": "ActionResult",
"type": "object"
}
},
"click": {
"description": "Tap at a 0-1000 normalized [x, y] coordinate.",
"inputSchema": {
"properties": {
"target": {
"items": {
"type": "integer"
},
"title": "Target",
"type": "array"
},
"times": {
"default": 1,
"title": "Times",
"type": "integer"
},
"delay_ms": {
"default": 100,
"title": "Delay Ms",
"type": "integer"
},
"expected_resource_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Expected Resource Id"
}
},
"required": [
"target"
],
"title": "clickArguments",
"type": "object"
},
"outputSchema": {
"$defs": {
"ActionCode": {
"description": "Machine-readable outcome classification for a device action.",
"enum": [
"OK",
"INVALID_ARGS",
"TARGET_NOT_FOUND",
"DEVICE_ERROR",
"PACKAGE_NOT_FOUND",
"TIMEOUT",
"UNSUPPORTED"
],
"title": "ActionCode",
"type": "string"
}
},
"description": "Outcome of one device action, independent of any transport or agent.",
"properties": {
"ok": {
"title": "Ok",
"type": "boolean"
},
"code": {
"$ref": "#/$defs/ActionCode"
},
"action": {
"title": "Action",
"type": "string"
},
"message": {
"title": "Message",
"type": "string"
},
"detail": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Detail"
},
"normalized_coordinates": {
"anyOf": [
{
"items": {
"type": "integer"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Normalized Coordinates"
},
"duration_ms": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Duration Ms"
},
"metadata": {
"additionalProperties": true,
"title": "Metadata",
"type": "object"
}
},
"required": [
"ok",
"code",
"action",
"message"
],
"title": "ActionResult",
"type": "object"
}
},
"click_sequence": {
"description": "Tap a series of 0-1000 normalized [x, y] points in one atomic burst.",
"inputSchema": {
"properties": {
"sequence": {
"items": {
"items": {
"type": "integer"
},
"type": "array"
},
"title": "Sequence",
"type": "array"
},
"delay_ms": {
"default": 50,
"title": "Delay Ms",
"type": "integer"
}
},
"required": [
"sequence"
],
"title": "click_sequenceArguments",
"type": "object"
},
"outputSchema": {
"$defs": {
"ActionCode": {
"description": "Machine-readable outcome classification for a device action.",
"enum": [
"OK",
"INVALID_ARGS",
"TARGET_NOT_FOUND",
"DEVICE_ERROR",
"PACKAGE_NOT_FOUND",
"TIMEOUT",
"UNSUPPORTED"
],
"title": "ActionCode",
"type": "string"
}
},
"description": "Outcome of one device action, independent of any transport or agent.",
"properties": {
"ok": {
"title": "Ok",
"type": "boolean"
},
"code": {
"$ref": "#/$defs/ActionCode"
},
"action": {
"title": "Action",
"type": "string"
},
"message": {
"title": "Message",
"type": "string"
},
"detail": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Detail"
},
"normalized_coordinates": {
"anyOf": [
{
"items": {
"type": "integer"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Normalized Coordinates"
},
"duration_ms": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Duration Ms"
},
"metadata": {
"additionalProperties": true,
"title": "Metadata",
"type": "object"
}
},
"required": [
"ok",
"code",
"action",
"message"
],
"title": "ActionResult",
"type": "object"
}
},
"long_press": {
"description": "Long-press at a 0-1000 normalized [x, y] coordinate.",
"inputSchema": {
"properties": {
"target": {
"items": {
"type": "integer"
},
"title": "Target",
"type": "array"
},
"duration_ms": {
"default": 1000,
"title": "Duration Ms",
"type": "integer"
}
},
"required": [
"target"
],
"title": "long_pressArguments",
"type": "object"
},
"outputSchema": {
"$defs": {
"ActionCode": {
"description": "Machine-readable outcome classification for a device action.",
"enum": [
"OK",
"INVALID_ARGS",
"TARGET_NOT_FOUND",
"DEVICE_ERROR",
"PACKAGE_NOT_FOUND",
"TIMEOUT",
"UNSUPPORTED"
],
"title": "ActionCode",
"type": "string"
}
},
"description": "Outcome of one device action, independent of any transport or agent.",
"properties": {
"ok": {
"title": "Ok",
"type": "boolean"
},
"code": {
"$ref": "#/$defs/ActionCode"
},
"action": {
"title": "Action",
"type": "string"
},
"message": {
"title": "Message",
"type": "string"
},
"detail": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Detail"
},
"normalized_coordinates": {
"anyOf": [
{
"items": {
"type": "integer"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Normalized Coordinates"
},
"duration_ms": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Duration Ms"
},
"metadata": {
"additionalProperties": true,
"title": "Metadata",
"type": "object"
}
},
"required": [
"ok",
"code",
"action",
"message"
],
"title": "ActionResult",
"type": "object"
}
},
"input_text": {
"description": "Type text, optionally focusing a 0-1000 normalized [x, y] target first.",
"inputSchema": {
"properties": {
"text": {
"title": "Text",
"type": "string"
},
"target": {
"anyOf": [
{
"items": {
"type": "integer"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Target"
},
"clear_exist": {
"default": true,
"title": "Clear Exist",
"type": "boolean"
}
},
"required": [
"text"
],
"title": "input_textArguments",
"type": "object"
},
"outputSchema": {
"$defs": {
"ActionCode": {
"description": "Machine-readable outcome classification for a device action.",
"enum": [
"OK",
"INVALID_ARGS",
"TARGET_NOT_FOUND",
"DEVICE_ERROR",
"PACKAGE_NOT_FOUND",
"TIMEOUT",
"UNSUPPORTED"
],
"title": "ActionCode",
"type": "string"
}
},
"description": "Outcome of one device action, independent of any transport or agent.",
"properties": {
"ok": {
"title": "Ok",
"type": "boolean"
},
"code": {
"$ref": "#/$defs/ActionCode"
},
"action": {
"title": "Action",
"type": "string"
},
"message": {
"title": "Message",
"type": "string"
},
"detail": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Detail"
},
"normalized_coordinates": {
"anyOf": [
{
"items": {
"type": "integer"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Normalized Coordinates"
},
"duration_ms": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Duration Ms"
},
"metadata": {
"additionalProperties": true,
"title": "Metadata",
"type": "object"
}
},
"required": [
"ok",
"code",
"action",
"message"
],
"title": "ActionResult",
"type": "object"
}
},
"swipe": {
"description": "Swipe between two 0-1000 normalized [x, y] points.",
"inputSchema": {
"properties": {
"start": {
"items": {
"type": "integer"
},
"title": "Start",
"type": "array"
},
"end": {
"items": {
"type": "integer"
},
"title": "End",
"type": "array"
},
"duration_ms": {
"default": 800,
"title": "Duration Ms",
"type": "integer"
}
},
"required": [
"start",
"end"
],
"title": "swipeArguments",
"type": "object"
},
"outputSchema": {
"$defs": {
"ActionCode": {
"description": "Machine-readable outcome classification for a device action.",
"enum": [
"OK",
"INVALID_ARGS",
"TARGET_NOT_FOUND",
"DEVICE_ERROR",
"PACKAGE_NOT_FOUND",
"TIMEOUT",
"UNSUPPORTED"
],
"title": "ActionCode",
"type": "string"
}
},
"description": "Outcome of one device action, independent of any transport or agent.",
"properties": {
"ok": {
"title": "Ok",
"type": "boolean"
},
"code": {
"$ref": "#/$defs/ActionCode"
},
"action": {
"title": "Action",
"type": "string"
},
"message": {
"title": "Message",
"type": "string"
},
"detail": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Detail"
},
"normalized_coordinates": {
"anyOf": [
{
"items": {
"type": "integer"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Normalized Coordinates"
},
"duration_ms": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Duration Ms"
},
"metadata": {
"additionalProperties": true,
"title": "Metadata",
"type": "object"
}
},
"required": [
"ok",
"code",
"action",
"message"
],
"title": "ActionResult",
"type": "object"
}
},
"press_key": {
"description": "Press a device key (home, back, enter, delete, tab, search, menu, app_switch).",
"inputSchema": {
"properties": {
"key": {
"title": "Key",
"type": "string"
}
},
"required": [
"key"
],
"title": "press_keyArguments",
"type": "object"
},
"outputSchema": {
"$defs": {
"ActionCode": {
"description": "Machine-readable outcome classification for a device action.",
"enum": [
"OK",
"INVALID_ARGS",
"TARGET_NOT_FOUND",
"DEVICE_ERROR",
"PACKAGE_NOT_FOUND",
"TIMEOUT",
"UNSUPPORTED"
],
"title": "ActionCode",
"type": "string"
}
},
"description": "Outcome of one device action, independent of any transport or agent.",
"properties": {
"ok": {
"title": "Ok",
"type": "boolean"
},
"code": {
"$ref": "#/$defs/ActionCode"
},
"action": {
"title": "Action",
"type": "string"
},
"message": {
"title": "Message",
"type": "string"
},
"detail": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Detail"
},
"normalized_coordinates": {
"anyOf": [
{
"items": {
"type": "integer"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Normalized Coordinates"
},
"duration_ms": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Duration Ms"
},
"metadata": {
"additionalProperties": true,
"title": "Metadata",
"type": "object"
}
},
"required": [
"ok",
"code",
"action",
"message"
],
"title": "ActionResult",
"type": "object"
}
},
"manage_app": {
"description": "Launch or stop an app by human-readable name or package.",
"inputSchema": {
"properties": {
"action": {
"title": "Action",
"type": "string"
},
"app_name": {
"title": "App Name",
"type": "string"
}
},
"required": [
"action",
"app_name"
],
"title": "manage_appArguments",
"type": "object"
},
"outputSchema": {
"$defs": {
"ActionCode": {
"description": "Machine-readable outcome classification for a device action.",
"enum": [
"OK",
"INVALID_ARGS",
"TARGET_NOT_FOUND",
"DEVICE_ERROR",
"PACKAGE_NOT_FOUND",
"TIMEOUT",
"UNSUPPORTED"
],
"title": "ActionCode",
"type": "string"
}
},
"description": "Outcome of one device action, independent of any transport or agent.",
"properties": {
"ok": {
"title": "Ok",
"type": "boolean"
},
"code": {
"$ref": "#/$defs/ActionCode"
},
"action": {
"title": "Action",
"type": "string"
},
"message": {
"title": "Message",
"type": "string"
},
"detail": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Detail"
},
"normalized_coordinates": {
"anyOf": [
{
"items": {
"type": "integer"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Normalized Coordinates"
},
"duration_ms": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Duration Ms"
},
"metadata": {
"additionalProperties": true,
"title": "Metadata",
"type": "object"
}
},
"required": [
"ok",
"code",
"action",
"message"
],
"title": "ActionResult",
"type": "object"
}
},
"wait_for_delay": {
"description": "Wait for a fixed number of milliseconds.",
"inputSchema": {
"properties": {
"time_in_ms": {
"title": "Time In Ms",
"type": "integer"
}
},
"required": [
"time_in_ms"
],
"title": "wait_for_delayArguments",
"type": "object"
},
"outputSchema": {
"$defs": {
"ActionCode": {
"description": "Machine-readable outcome classification for a device action.",
"enum": [
"OK",
"INVALID_ARGS",
"TARGET_NOT_FOUND",
"DEVICE_ERROR",
"PACKAGE_NOT_FOUND",
"TIMEOUT",
"UNSUPPORTED"
],
"title": "ActionCode",
"type": "string"
}
},
"description": "Outcome of one device action, independent of any transport or agent.",
"properties": {
"ok": {
"title": "Ok",
"type": "boolean"
},
"code": {
"$ref": "#/$defs/ActionCode"
},
"action": {
"title": "Action",
"type": "string"
},
"message": {
"title": "Message",
"type": "string"
},
"detail": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Detail"
},
"normalized_coordinates": {
"anyOf": [
{
"items": {
"type": "integer"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Normalized Coordinates"
},
"duration_ms": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Duration Ms"
},
"metadata": {
"additionalProperties": true,
"title": "Metadata",
"type": "object"
}
},
"required": [
"ok",
"code",
"action",
"message"
],
"title": "ActionResult",
"type": "object"
}
},
"wait_for_text": {
"description": "Wait for text to appear on or disappear from the screen.",
"inputSchema": {
"properties": {
"text": {
"title": "Text",
"type": "string"
},
"wait_state": {
"default": "appear",
"title": "Wait State",
"type": "string"
},
"timeout_ms": {
"default": 5000,
"title": "Timeout Ms",
"type": "integer"
}
},
"required": [
"text"
],
"title": "wait_for_textArguments",
"type": "object"
},
"outputSchema": {
"$defs": {
"ActionCode": {
"description": "Machine-readable outcome classification for a device action.",
"enum": [
"OK",
"INVALID_ARGS",
"TARGET_NOT_FOUND",
"DEVICE_ERROR",
"PACKAGE_NOT_FOUND",
"TIMEOUT",
"UNSUPPORTED"
],
"title": "ActionCode",
"type": "string"
}
},
"description": "Outcome of one device action, independent of any transport or agent.",
"properties": {
"ok": {
"title": "Ok",
"type": "boolean"
},
"code": {
"$ref": "#/$defs/ActionCode"
},
"action": {
"title": "Action",
"type": "string"
},
"message": {
"title": "Message",
"type": "string"
},
"detail": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Detail"
},
"normalized_coordinates": {
"anyOf": [
{
"items": {
"type": "integer"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Normalized Coordinates"
},
"duration_ms": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Duration Ms"
},
"metadata": {
"additionalProperties": true,
"title": "Metadata",
"type": "object"
}
},
"required": [
"ok",
"code",
"action",
"message"
],
"title": "ActionResult",
"type": "object"
}
},
"open_link": {
"description": "Open a URL on the device.",
"inputSchema": {
"properties": {
"url": {
"title": "Url",
"type": "string"
}
},
"required": [
"url"
],
"title": "open_linkArguments",
"type": "object"
},
"outputSchema": {
"$defs": {
"ActionCode": {
"description": "Machine-readable outcome classification for a device action.",
"enum": [
"OK",
"INVALID_ARGS",
"TARGET_NOT_FOUND",
"DEVICE_ERROR",
"PACKAGE_NOT_FOUND",
"TIMEOUT",
"UNSUPPORTED"
],
"title": "ActionCode",
"type": "string"
}
},
"description": "Outcome of one device action, independent of any transport or agent.",
"properties": {
"ok": {
"title": "Ok",
"type": "boolean"
},
"code": {
"$ref": "#/$defs/ActionCode"
},
"action": {
"title": "Action",
"type": "string"
},
"message": {
"title": "Message",
"type": "string"
},
"detail": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Detail"
},
"normalized_coordinates": {
"anyOf": [
{
"items": {
"type": "integer"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Normalized Coordinates"
},
"duration_ms": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Duration Ms"
},
"metadata": {
"additionalProperties": true,
"title": "Metadata",
"type": "object"
}
},
"required": [
"ok",
"code",
"action",
"message"
],
"title": "ActionResult",
"type": "object"
}
},
"erase_one_char": {
"description": "Erase a single character in the focused field.",
"inputSchema": {
"properties": {},
"title": "erase_one_charArguments",
"type": "object"
},
"outputSchema": {
"$defs": {
"ActionCode": {
"description": "Machine-readable outcome classification for a device action.",
"enum": [
"OK",
"INVALID_ARGS",
"TARGET_NOT_FOUND",
"DEVICE_ERROR",
"PACKAGE_NOT_FOUND",
"TIMEOUT",
"UNSUPPORTED"
],
"title": "ActionCode",
"type": "string"
}
},
"description": "Outcome of one device action, independent of any transport or agent.",
"properties": {
"ok": {
"title": "Ok",
"type": "boolean"
},
"code": {
"$ref": "#/$defs/ActionCode"
},
"action": {
"title": "Action",
"type": "string"
},
"message": {
"title": "Message",
"type": "string"
},
"detail": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Detail"
},
"normalized_coordinates": {
"anyOf": [
{
"items": {
"type": "integer"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Normalized Coordinates"
},
"duration_ms": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Duration Ms"
},
"metadata": {
"additionalProperties": true,
"title": "Metadata",
"type": "object"
}
},
"required": [
"ok",
"code",
"action",
"message"
],
"title": "ActionResult",
"type": "object"
}
},
"focus_and_clear_text": {
"description": "Focus the field at a 0-1000 normalized [x, y] and clear its text.",
"inputSchema": {
"properties": {
"target": {
"items": {
"type": "integer"
},
"title": "Target",
"type": "array"
}
},
"required": [
"target"
],
"title": "focus_and_clear_textArguments",
"type": "object"
},
"outputSchema": {
"$defs": {
"ActionCode": {
"description": "Machine-readable outcome classification for a device action.",
"enum": [
"OK",
"INVALID_ARGS",
"TARGET_NOT_FOUND",
"DEVICE_ERROR",
"PACKAGE_NOT_FOUND",
"TIMEOUT",
"UNSUPPORTED"
],
"title": "ActionCode",
"type": "string"
}
},
"description": "Outcome of one device action, independent of any transport or agent.",
"properties": {
"ok": {
"title": "Ok",
"type": "boolean"
},
"code": {
"$ref": "#/$defs/ActionCode"
},
"action": {
"title": "Action",
"type": "string"
},
"message": {
"title": "Message",
"type": "string"
},
"detail": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Detail"
},
"normalized_coordinates": {
"anyOf": [
{
"items": {
"type": "integer"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Normalized Coordinates"
},
"duration_ms": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Duration Ms"
},
"metadata": {
"additionalProperties": true,
"title": "Metadata",
"type": "object"
}
},
"required": [
"ok",
"code",
"action",
"message"
],
"title": "ActionResult",
"type": "object"
}
},
"pinch": {
"description": "[ACTION] Synchronized two-finger pinch/rotation on an observed canvas. center and spans use coordinate_space: pixel is current screenshot pixels; normalized is 0..1000, with spans measured against the SHORT screen edge to preserve angles. angle_degrees starts from the horizontal axis, positive clockwise; rotation_degrees adds rotation. All paths are validated before input; off-screen paths fail without clamping. The span ratio is a gesture instruction, not proof of the app's resulting scale. Small spans may stay below the app's recognition threshold; choose a sufficiently large safe span inside the observed canvas and read the actual post-action ticks/value before recalibrating a precise drag.",
"inputSchema": {
"properties": {
"center": {
"items": {
"type": "integer"
},
"maxItems": 2,
"minItems": 2,
"title": "Center",
"type": "array"
},
"start_span": {
"exclusiveMinimum": 0,
"maximum": 20000,
"title": "Start Span",
"type": "integer"
},
"end_span": {
"exclusiveMinimum": 0,
"maximum": 20000,
"title": "End Span",
"type": "integer"
},
"target_description": {
"maxLength": 512,
"minLength": 1,
"title": "Target Description",
"type": "string"
},
"angle_degrees": {
"default": 0,
"maximum": 360,
"minimum": -360,
"title": "Angle Degrees",
"type": "number"
},
"rotation_degrees": {
"default": 0,
"maximum": 360,
"minimum": -360,
"title": "Rotation Degrees",
"type": "number"
},
"duration_ms": {
"default": 800,
"maximum": 10000,
"minimum": 1,
"title": "Duration Ms",
"type": "integer"
},
"coordinate_space": {
"default": "normalized",
"enum": [
"normalized",
"pixel"
],
"title": "Coordinate Space",
"type": "string"
},
"require_visible": {
"anyOf": [
{
"maxLength": 512,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Require Visible"
}
},
"required": [
"center",
"start_span",
"end_span",
"target_description"
],
"title": "pinchArguments",
"type": "object"
},
"outputSchema": {
"$defs": {
"ActionCode": {
"description": "Machine-readable outcome classification for a device action.",
"enum": [
"OK",
"INVALID_ARGS",
"TARGET_NOT_FOUND",
"DEVICE_ERROR",
"PACKAGE_NOT_FOUND",
"TIMEOUT",
"UNSUPPORTED"
],
"title": "ActionCode",
"type": "string"
}
},
"description": "Outcome of one device action, independent of any transport or agent.",
"properties": {
"ok": {
"title": "Ok",
"type": "boolean"
},
"code": {
"$ref": "#/$defs/ActionCode"
},
"action": {
"title": "Action",
"type": "string"
},
"message": {
"title": "Message",
"type": "string"
},
"detail": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Detail"
},
"normalized_coordinates": {
"anyOf": [
{
"items": {
"type": "integer"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Normalized Coordinates"
},
"duration_ms": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Duration Ms"
},
"metadata": {
"additionalProperties": true,
"title": "Metadata",
"type": "object"
}
},
"required": [
"ok",
"code",
"action",
"message"
],
"title": "ActionResult",
"type": "object"
}
},
"touch_gesture": {
"description": "[ACTION] Continuous synchronized native touch paths with 1..5 fingers. frames contain at_ms and points; times strictly increase from 0 to at most 10000ms, same finger count in every frame. Equal adjacent points hold contact; later points move WITHOUT lifting, enabling hold-then-drag and multi-segment gestures. Use 2..32 frames, observed geometry and explicit coordinate_space. All frames are validated before input. Completion reports Android gesture dispatch; verify that the app actually received the input and produced the intended effect.",
"inputSchema": {
"$defs": {
"TouchFrame": {
"additionalProperties": false,
"properties": {
"at_ms": {
"maximum": 10000,
"minimum": 0,
"title": "At Ms",
"type": "integer"
},
"points": {
"items": {
"items": {
"type": "integer"
},
"maxItems": 2,
"minItems": 2,
"type": "array"
},
"maxItems": 5,
"minItems": 1,
"title": "Points",
"type": "array"
}
},
"required": [
"at_ms",
"points"
],
"title": "TouchFrame",
"type": "object"
}
},
"properties": {
"frames": {
"items": {
"$ref": "#/$defs/TouchFrame"
},
"maxItems": 32,
"minItems": 2,
"title": "Frames",
"type": "array"
},
"target_description": {
"maxLength": 512,
"minLength": 1,
"title": "Target Description",
"type": "string"
},
"coordinate_space": {
"default": "normalized",
"enum": [
"normalized",
"pixel"
],
"title": "Coordinate Space",
"type": "string"
},
"require_visible": {
"anyOf": [
{
"maxLength": 512,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Require Visible"
}
},
"required": [
"frames",
"target_description"
],
"title": "touch_gestureArguments",
"type": "object"
},
"outputSchema": {
"$defs": {
"ActionCode": {
"description": "Machine-readable outcome classification for a device action.",
"enum": [
"OK",
"INVALID_ARGS",
"TARGET_NOT_FOUND",
"DEVICE_ERROR",
"PACKAGE_NOT_FOUND",
"TIMEOUT",
"UNSUPPORTED"
],
"title": "ActionCode",
"type": "string"
}
},
"description": "Outcome of one device action, independent of any transport or agent.",
"properties": {
"ok": {
"title": "Ok",
"type": "boolean"
},
"code": {
"$ref": "#/$defs/ActionCode"
},
"action": {
"title": "Action",
"type": "string"
},
"message": {
"title": "Message",
"type": "string"
},
"detail": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Detail"
},
"normalized_coordinates": {
"anyOf": [
{
"items": {
"type": "integer"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Normalized Coordinates"
},
"duration_ms": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Duration Ms"
},
"metadata": {
"additionalProperties": true,
"title": "Metadata",
"type": "object"
}
},
"required": [
"ok",
"code",
"action",
"message"
],
"title": "ActionResult",
"type": "object"
}
},
"read_control": {
"description": "[OBSERVE] Read ONE live native control by exact AND selector copied from the current UI. Use resource_id/text/content_desc/class_name and optional package_name/bounds to disambiguate. Returns current range/value, supported native actions, editable selection (UTF-16 offsets), identity token and visible subtree content_signature. Missing or ambiguous controls fail explicitly. Custom canvas controls may expose no range/actions; then use calibrated gestures and visual verification.",
"inputSchema": {
"$defs": {
"ControlSelector": {
"additionalProperties": false,
"description": "Every supplied attribute is an exact AND match against a fresh native node.",
"properties": {
"resource_id": {
"anyOf": [
{
"maxLength": 512,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Resource Id"
},
"text": {
"anyOf": [
{
"maxLength": 4096,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Text"
},
"content_desc": {
"anyOf": [
{
"maxLength": 512,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Content Desc"
},
"class_name": {
"anyOf": [
{
"maxLength": 512,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Class Name"
},
"package_name": {
"anyOf": [
{
"maxLength": 512,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Package Name"
},
"bounds": {
"anyOf": [
{
"items": {
"type": "integer"
},
"maxItems": 4,
"minItems": 4,
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Bounds"
}
},
"title": "ControlSelector",
"type": "object"
}
},
"properties": {
"selector": {
"$ref": "#/$defs/ControlSelector"
}
},
"required": [
"selector"
],
"title": "read_controlArguments",
"type": "object"
},
"outputSchema": {
"$defs": {
"ActionCode": {
"description": "Machine-readable outcome classification for a device action.",
"enum": [
"OK",
"INVALID_ARGS",
"TARGET_NOT_FOUND",
"DEVICE_ERROR",
"PACKAGE_NOT_FOUND",
"TIMEOUT",
"UNSUPPORTED"
],
"title": "ActionCode",
"type": "string"
}
},
"description": "Outcome of one device action, independent of any transport or agent.",
"properties": {
"ok": {
"title": "Ok",
"type": "boolean"
},
"code": {
"$ref": "#/$defs/ActionCode"
},
"action": {
"title": "Action",
"type": "string"
},
"message": {
"title": "Message",
"type": "string"
},
"detail": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Detail"
},
"normalized_coordinates": {
"anyOf": [
{
"items": {
"type": "integer"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Normalized Coordinates"
},
"duration_ms": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Duration Ms"
},
"metadata": {
"additionalProperties": true,
"title": "Metadata",
"type": "object"
}
},
"required": [
"ok",
"code",
"action",
"message"
],
"title": "ActionResult",
"type": "object"
}
},
"control_action": {
"description": "[ACTION] Perform ONE supported native action on a freshly resolved unique control. Read_control first; copy selector exactly and optionally expected_token to reject stale evidence. action=set_progress requires a finite in-range value; set_selection requires selection_start/end in UTF-16 code units (never split an emoji). set_text and replace_selection require text, including empty text; whitespace is preserved. Other actions take no text/value/selection. ime_enter invokes the advertised IME submit action. Unsupported actions fail without coordinate fallback or replay. Focus or selection changes may move the target; before subsequent edits, use wait_until state=stable when needed. STALE means no action started; observe again before rebuilding the request. Never resend an unknown write. An accepted action is not business verification; inspect the returned/current state.",
"inputSchema": {
"$defs": {
"ControlSelector": {
"additionalProperties": false,
"description": "Every supplied attribute is an exact AND match against a fresh native node.",
"properties": {
"resource_id": {
"anyOf": [
{
"maxLength": 512,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Resource Id"
},
"text": {
"anyOf": [
{
"maxLength": 4096,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Text"
},
"content_desc": {
"anyOf": [
{
"maxLength": 512,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Content Desc"
},
"class_name": {
"anyOf": [
{
"maxLength": 512,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Class Name"
},
"package_name": {
"anyOf": [
{
"maxLength": 512,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Package Name"
},
"bounds": {
"anyOf": [
{
"items": {
"type": "integer"
},
"maxItems": 4,
"minItems": 4,
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Bounds"
}
},
"title": "ControlSelector",
"type": "object"
}
},
"properties": {
"selector": {
"$ref": "#/$defs/ControlSelector"
},
"action": {
"enum": [
"click",
"long_click",
"focus",
"show_on_screen",
"set_progress",
"scroll_forward",
"scroll_backward",
"scroll_up",
"scroll_down",
"scroll_left",
"scroll_right",
"set_selection",
"replace_selection",
"set_text",
"ime_enter"
],
"title": "Action",
"type": "string"
},
"expected_token": {
"anyOf": [
{
"pattern": "^[a-f0-9]{64}$",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Expected Token"
},
"value": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Value"
},
"text": {
"anyOf": [
{
"maxLength": 65536,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Text"
},
"selection_start": {
"anyOf": [
{
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Selection Start"
},
"selection_end": {
"anyOf": [
{
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Selection End"
}
},
"required": [
"selector",
"action"
],
"title": "control_actionArguments",
"type": "object"
},
"outputSchema": {
"$defs": {
"ActionCode": {
"description": "Machine-readable outcome classification for a device action.",
"enum": [
"OK",
"INVALID_ARGS",
"TARGET_NOT_FOUND",
"DEVICE_ERROR",
"PACKAGE_NOT_FOUND",
"TIMEOUT",
"UNSUPPORTED"
],
"title": "ActionCode",
"type": "string"
}
},
"description": "Outcome of one device action, independent of any transport or agent.",
"properties": {
"ok": {
"title": "Ok",
"type": "boolean"
},
"code": {
"$ref": "#/$defs/ActionCode"
},
"action": {
"title": "Action",
"type": "string"
},
"message": {
"title": "Message",
"type": "string"
},
"detail": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Detail"
},
"normalized_coordinates": {
"anyOf": [
{
"items": {
"type": "integer"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Normalized Coordinates"
},
"duration_ms": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Duration Ms"
},
"metadata": {
"additionalProperties": true,
"title": "Metadata",
"type": "object"
}
},
"required": [
"ok",
"code",
"action",
"message"
],
"title": "ActionResult",
"type": "object"
}
},
"wait_until": {
"description": "[OBSERVE] Bounded polling of a unique live native control, replacing blind delays. state=text requires exact expected_text; value requires expected_value and optional tolerance. stable requires at least two unchanged native observations for stable_ms, not pixel stability. Other states inspect visible/enabled/checked/selected or absence. Ambiguity, unavailable page or transport failure never counts as absence. timeout_ms is at most 30000; no input is dispatched.",
"inputSchema": {
"$defs": {
"ControlSelector": {
"additionalProperties": false,
"description": "Every supplied attribute is an exact AND match against a fresh native node.",
"properties": {
"resource_id": {
"anyOf": [
{
"maxLength": 512,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Resource Id"
},
"text": {
"anyOf": [
{
"maxLength": 4096,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Text"
},
"content_desc": {
"anyOf": [
{
"maxLength": 512,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Content Desc"
},
"class_name": {
"anyOf": [
{
"maxLength": 512,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Class Name"
},
"package_name": {
"anyOf": [
{
"maxLength": 512,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Package Name"
},
"bounds": {
"anyOf": [
{
"items": {
"type": "integer"
},
"maxItems": 4,
"minItems": 4,
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Bounds"
}
},
"title": "ControlSelector",
"type": "object"
}
},
"properties": {
"selector": {
"$ref": "#/$defs/ControlSelector"
},
"state": {
"enum": [
"visible",
"absent",
"enabled",
"disabled",
"checked",
"unchecked",
"selected",
"unselected",
"text",
"value",
"stable"
],
"title": "State",
"type": "string"
},
"expected_text": {
"anyOf": [
{
"maxLength": 4096,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Expected Text"
},
"expected_value": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Expected Value"
},
"tolerance": {
"default": 0,
"minimum": 0,
"title": "Tolerance",
"type": "number"
},
"stable_ms": {
"default": 300,
"maximum": 5000,
"minimum": 0,
"title": "Stable Ms",
"type": "integer"
},
"timeout_ms": {
"default": 5000,
"maximum": 30000,
"minimum": 1,
"title": "Timeout Ms",
"type": "integer"
},
"poll_interval_ms": {
"default": 200,
"maximum": 1000,
"minimum": 50,
"title": "Poll Interval Ms",
"type": "integer"
}
},
"required": [
"selector",
"state"
],
"title": "wait_untilArguments",
"type": "object"
},
"outputSchema": {
"$defs": {
"ActionCode": {
"description": "Machine-readable outcome classification for a device action.",
"enum": [
"OK",
"INVALID_ARGS",
"TARGET_NOT_FOUND",
"DEVICE_ERROR",
"PACKAGE_NOT_FOUND",
"TIMEOUT",
"UNSUPPORTED"
],
"title": "ActionCode",
"type": "string"
}
},
"description": "Outcome of one device action, independent of any transport or agent.",
"properties": {
"ok": {
"title": "Ok",
"type": "boolean"
},
"code": {
"$ref": "#/$defs/ActionCode"
},
"action": {
"title": "Action",
"type": "string"
},
"message": {
"title": "Message",
"type": "string"
},
"detail": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Detail"
},
"normalized_coordinates": {
"anyOf": [
{
"items": {
"type": "integer"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Normalized Coordinates"
},
"duration_ms": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Duration Ms"
},
"metadata": {
"additionalProperties": true,
"title": "Metadata",
"type": "object"
}
},
"required": [
"ok",
"code",
"action",
"message"
],
"title": "ActionResult",
"type": "object"
}
},
"scroll_to": {
"description": "[ACTION] Bounded native scrolling INSIDE a uniquely observed container until its scoped target becomes visible. Copy exact container and target selectors; direction is forward/backward/up/down/left/right. After each scroll, container content and the scoped target's visibility/identity must remain unchanged for settle_ms before success or another scroll. Stops at max_scrolls, timeout, unsupported action or no content progress. Retains every scroll receipt and never repeats unacknowledged input. Finding a target does not click it or verify a business outcome.",
"inputSchema": {
"$defs": {
"ControlSelector": {
"additionalProperties": false,
"description": "Every supplied attribute is an exact AND match against a fresh native node.",
"properties": {
"resource_id": {
"anyOf": [
{
"maxLength": 512,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Resource Id"
},
"text": {
"anyOf": [
{
"maxLength": 4096,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Text"
},
"content_desc": {
"anyOf": [
{
"maxLength": 512,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Content Desc"
},
"class_name": {
"anyOf": [
{
"maxLength": 512,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Class Name"
},
"package_name": {
"anyOf": [
{
"maxLength": 512,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Package Name"
},
"bounds": {
"anyOf": [
{
"items": {
"type": "integer"
},
"maxItems": 4,
"minItems": 4,
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Bounds"
}
},
"title": "ControlSelector",
"type": "object"
}
},
"properties": {
"container": {
"$ref": "#/$defs/ControlSelector"
},
"target": {
"$ref": "#/$defs/ControlSelector"
},
"direction": {
"default": "forward",
"enum": [
"forward",
"backward",
"up",
"down",
"left",
"right"
],
"title": "Direction",
"type": "string"
},
"max_scrolls": {
"default": 10,
"maximum": 20,
"minimum": 1,
"title": "Max Scrolls",
"type": "integer"
},
"timeout_ms": {
"default": 10000,
"maximum": 30000,
"minimum": 1,
"title": "Timeout Ms",
"type": "integer"
},
"settle_ms": {
"default": 300,
"maximum": 3000,
"minimum": 50,
"title": "Settle Ms",
"type": "integer"
}
},
"required": [
"container",
"target"
],
"title": "scroll_toArguments",
"type": "object"
},
"outputSchema": {
"$defs": {
"ActionCode": {
"description": "Machine-readable outcome classification for a device action.",
"enum": [
"OK",
"INVALID_ARGS",
"TARGET_NOT_FOUND",
"DEVICE_ERROR",
"PACKAGE_NOT_FOUND",
"TIMEOUT",
"UNSUPPORTED"
],
"title": "ActionCode",
"type": "string"
}
},
"description": "Outcome of one device action, independent of any transport or agent.",
"properties": {
"ok": {
"title": "Ok",
"type": "boolean"
},
"code": {
"$ref": "#/$defs/ActionCode"
},
"action": {
"title": "Action",
"type": "string"
},
"message": {
"title": "Message",
"type": "string"
},
"detail": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Detail"
},
"normalized_coordinates": {
"anyOf": [
{
"items": {
"type": "integer"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Normalized Coordinates"
},
"duration_ms": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Duration Ms"
},
"metadata": {
"additionalProperties": true,
"title": "Metadata",
"type": "object"
}
},
"required": [
"ok",
"code",
"action",
"message"
],
"title": "ActionResult",
"type": "object"
}
},
"observe_screen": {
"description": "Capture and index the current screen (adapter-internal).",
"inputSchema": {
"properties": {
"settle_ms": {
"default": 400,
"title": "Settle Ms",
"type": "integer"
},
"include_image": {
"default": false,
"title": "Include Image",
"type": "boolean"
}
},
"title": "observe_screenArguments",
"type": "object"
},
"outputSchema": {
"$defs": {
"ActionCode": {
"description": "Machine-readable outcome classification for a device action.",
"enum": [
"OK",
"INVALID_ARGS",
"TARGET_NOT_FOUND",
"DEVICE_ERROR",
"PACKAGE_NOT_FOUND",
"TIMEOUT",
"UNSUPPORTED"
],
"title": "ActionCode",
"type": "string"
}
},
"description": "Post-action observation: persisted screenshot plus the parsed element list.",
"properties": {
"ok": {
"title": "Ok",
"type": "boolean"
},
"code": {
"$ref": "#/$defs/ActionCode",
"default": "OK"
},
"message": {
"default": "",
"title": "Message",
"type": "string"
},
"screenshot_path": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Screenshot Path"
},
"image_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Image Name"
},
"width": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Width"
},
"height": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Height"
},
"elements_text": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Elements Text"
},
"elements": {
"items": {
"additionalProperties": true,
"type": "object"
},
"title": "Elements",
"type": "array"
},
"hierarchy_ok": {
"default": true,
"title": "Hierarchy Ok",
"type": "boolean"
}
},
"required": [
"ok"
],
"title": "ObserveResult",
"type": "object"
}
},
"take_screenshot": {
"description": "Return the current screen as base64 (adapter-internal, no persistence).",
"inputSchema": {
"properties": {
"timeout_ms": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Timeout Ms"
}
},
"title": "take_screenshotArguments",
"type": "object"
},
"outputSchema": null
},
"get_ui_hierarchy": {
"description": "Return the raw UI element hierarchy (adapter-internal).",
"inputSchema": {
"properties": {
"timeout_ms": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Timeout Ms"
}
},
"title": "get_ui_hierarchyArguments",
"type": "object"
},
"outputSchema": null
}
}