feat: add gesture sequences and calibrated pixel drags
This commit is contained in:
1 parent
2a3bbaa3fb
commit
479a185192
31 files changed
+2440
-44
No files matched your search
@@ -1,4 +1,570 @@
|
||||
{
|
||||
"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": {
|
||||
"items": {
|
||||
"type": "integer"
|
||||
},
|
||||
"maxItems": 2,
|
||||
"minItems": 2,
|
||||
"title": "Target",
|
||||
"type": "array"
|
||||
},
|
||||
"target_description": {
|
||||
"minLength": 1,
|
||||
"title": "Target Description",
|
||||
"type": "string"
|
||||
},
|
||||
"coordinate_space": {
|
||||
"default": "normalized",
|
||||
"enum": [
|
||||
"normalized",
|
||||
"pixel"
|
||||
],
|
||||
"title": "Coordinate Space",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"action",
|
||||
"target",
|
||||
"target_description"
|
||||
],
|
||||
"title": "ClickStep",
|
||||
"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."
|
||||
},
|
||||
"action": {
|
||||
"const": "drag",
|
||||
"title": "Action",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"start",
|
||||
"target_description",
|
||||
"action"
|
||||
],
|
||||
"title": "DragStep",
|
||||
"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"
|
||||
},
|
||||
"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"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"steps": {
|
||||
"items": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/$defs/ClickStep"
|
||||
},
|
||||
{
|
||||
"$ref": "#/$defs/DragStep"
|
||||
},
|
||||
{
|
||||
"$ref": "#/$defs/WaitStep"
|
||||
}
|
||||
]
|
||||
},
|
||||
"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
|
||||
}
|
||||
},
|
||||
"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": {
|
||||
@@ -99,6 +665,11 @@
|
||||
],
|
||||
"default": null,
|
||||
"title": "Duration Ms"
|
||||
},
|
||||
"metadata": {
|
||||
"additionalProperties": true,
|
||||
"title": "Metadata",
|
||||
"type": "object"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
@@ -209,6 +780,11 @@
|
||||
],
|
||||
"default": null,
|
||||
"title": "Duration Ms"
|
||||
},
|
||||
"metadata": {
|
||||
"additionalProperties": true,
|
||||
"title": "Metadata",
|
||||
"type": "object"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
@@ -316,6 +892,11 @@
|
||||
],
|
||||
"default": null,
|
||||
"title": "Duration Ms"
|
||||
},
|
||||
"metadata": {
|
||||
"additionalProperties": true,
|
||||
"title": "Metadata",
|
||||
"type": "object"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
@@ -435,6 +1016,11 @@
|
||||
],
|
||||
"default": null,
|
||||
"title": "Duration Ms"
|
||||
},
|
||||
"metadata": {
|
||||
"additionalProperties": true,
|
||||
"title": "Metadata",
|
||||
"type": "object"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
@@ -550,6 +1136,11 @@
|
||||
],
|
||||
"default": null,
|
||||
"title": "Duration Ms"
|
||||
},
|
||||
"metadata": {
|
||||
"additionalProperties": true,
|
||||
"title": "Metadata",
|
||||
"type": "object"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
@@ -649,6 +1240,11 @@
|
||||
],
|
||||
"default": null,
|
||||
"title": "Duration Ms"
|
||||
},
|
||||
"metadata": {
|
||||
"additionalProperties": true,
|
||||
"title": "Metadata",
|
||||
"type": "object"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
@@ -753,6 +1349,11 @@
|
||||
],
|
||||
"default": null,
|
||||
"title": "Duration Ms"
|
||||
},
|
||||
"metadata": {
|
||||
"additionalProperties": true,
|
||||
"title": "Metadata",
|
||||
"type": "object"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
@@ -852,6 +1453,11 @@
|
||||
],
|
||||
"default": null,
|
||||
"title": "Duration Ms"
|
||||
},
|
||||
"metadata": {
|
||||
"additionalProperties": true,
|
||||
"title": "Metadata",
|
||||
"type": "object"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
@@ -961,6 +1567,11 @@
|
||||
],
|
||||
"default": null,
|
||||
"title": "Duration Ms"
|
||||
},
|
||||
"metadata": {
|
||||
"additionalProperties": true,
|
||||
"title": "Metadata",
|
||||
"type": "object"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
@@ -1060,6 +1671,11 @@
|
||||
],
|
||||
"default": null,
|
||||
"title": "Duration Ms"
|
||||
},
|
||||
"metadata": {
|
||||
"additionalProperties": true,
|
||||
"title": "Metadata",
|
||||
"type": "object"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
@@ -1151,6 +1767,11 @@
|
||||
],
|
||||
"default": null,
|
||||
"title": "Duration Ms"
|
||||
},
|
||||
"metadata": {
|
||||
"additionalProperties": true,
|
||||
"title": "Metadata",
|
||||
"type": "object"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
@@ -1253,6 +1874,11 @@
|
||||
],
|
||||
"default": null,
|
||||
"title": "Duration Ms"
|
||||
},
|
||||
"metadata": {
|
||||
"additionalProperties": true,
|
||||
"title": "Metadata",
|
||||
"type": "object"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
|
||||
Reference in new issue
Block a user