Tool tree
gradeNot graded
a11y.get_layoutAction
Start here when the traveler is new to the car. Returns how many seats exist, how many are available, and the named reference points they can navigate from. Read `summary` aloud: it orients someone who cannot see the seat map.
View tool JSON
{
"name": "a11y.get_layout",
"kind": "act",
"impl": "imperative",
"description": "Start here when the traveler is new to the car. Returns how many seats exist, how many are available, and the named reference points they can navigate from. Read `summary` aloud: it orients someone who cannot see the seat map.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"units": {
"type": "string",
"enum": [
"meters",
"feet",
"steps"
]
},
"stepLength_m": {
"type": "number",
"exclusiveMinimum": 0
},
"directionStyle": {
"type": "string",
"enum": [
"relative",
"clock",
"cardinal"
]
},
"walkSpeedPercent": {
"type": "number",
"exclusiveMinimum": 0
}
}
}
}a11y.queryAction
Find seats matching what the traveler actually said they need. Do not invent criteria — if they have not said what matters, ask them first. Each candidate carries a `line` written to be read aloud. A `hint` appears only when nothing matched or the list was capped; read it so they can narrow or relax the search themselves.
View tool JSON
{
"name": "a11y.query",
"kind": "act",
"impl": "imperative",
"description": "Find seats matching what the traveler actually said they need. Do not invent criteria — if they have not said what matters, ask them first. Each candidate carries a `line` written to be read aloud. A `hint` appears only when nothing matched or the list was capped; read it so they can narrow or relax the search themselves.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"near": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"maxDistance_m": {
"type": "number",
"minimum": 0
},
"priceMax_usd": {
"type": "number",
"minimum": 0
},
"availableOnly": {
"type": "boolean"
},
"needs": {
"type": "object",
"additionalProperties": false,
"properties": {
"wheelchairSpace": {
"type": "boolean"
},
"transferSeat": {
"type": "boolean"
},
"movableArmrest": {
"type": "boolean"
},
"minFootSpace_in2": {
"type": "number",
"minimum": 0
},
"excludeExitRow": {
"type": "boolean"
}
}
},
"rail": {
"type": "object",
"additionalProperties": false,
"properties": {
"facing": {
"type": "string",
"enum": [
"forward",
"backward"
]
},
"side": {
"type": "string",
"enum": [
"window",
"aisle"
]
},
"quietCar": {
"type": "boolean"
}
}
},
"hotel": {
"type": "object",
"additionalProperties": false,
"properties": {
"floorMin": {
"type": "number",
"minimum": 0
},
"floorMax": {
"type": "number",
"minimum": 0
},
"bedToBathroomMax_m": {
"type": "number",
"minimum": 0
}
}
},
"units": {
"type": "string",
"enum": [
"meters",
"feet",
"steps"
]
},
"stepLength_m": {
"type": "number",
"exclusiveMinimum": 0
},
"directionStyle": {
"type": "string",
"enum": [
"relative",
"clock",
"cardinal"
]
},
"walkSpeedPercent": {
"type": "number",
"exclusiveMinimum": 0
}
}
}
}a11y.describeAction
Describe one seat or reference point and its distance to every other reference. `line` is written to be read aloud. `followUps` are questions to put to the traveler next — ask one rather than ending the exchange, because deciding takes more than one fact.
View tool JSON
{
"name": "a11y.describe",
"kind": "act",
"impl": "imperative",
"description": "Describe one seat or reference point and its distance to every other reference. `line` is written to be read aloud. `followUps` are questions to put to the traveler next — ask one rather than ending the exchange, because deciding takes more than one fact.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"ref": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"units": {
"type": "string",
"enum": [
"meters",
"feet",
"steps"
]
},
"stepLength_m": {
"type": "number",
"exclusiveMinimum": 0
},
"directionStyle": {
"type": "string",
"enum": [
"relative",
"clock",
"cardinal"
]
},
"walkSpeedPercent": {
"type": "number",
"exclusiveMinimum": 0
}
},
"required": [
"ref"
]
}
}a11y.get_routeAction
Walking directions between two references. Call this whenever the traveler shows interest in a seat: a seat they cannot find is not a seat they can use. `rendered.summary` is written to be read aloud verbatim — it carries the turns, the landmarks passed with their sign text, and the total distance.
View tool JSON
{
"name": "a11y.get_route",
"kind": "act",
"impl": "imperative",
"description": "Walking directions between two references. Call this whenever the traveler shows interest in a seat: a seat they cannot find is not a seat they can use. `rendered.summary` is written to be read aloud verbatim — it carries the turns, the landmarks passed with their sign text, and the total distance.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"from": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"to": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"units": {
"type": "string",
"enum": [
"meters",
"feet",
"steps"
]
},
"stepLength_m": {
"type": "number",
"exclusiveMinimum": 0
},
"directionStyle": {
"type": "string",
"enum": [
"relative",
"clock",
"cardinal"
]
},
"walkSpeedPercent": {
"type": "number",
"exclusiveMinimum": 0
}
},
"required": [
"from",
"to"
]
}
}a11y.compareAction
Compare 2 to 4 distinct seats on identical axes, in the order given. Read the axis names once, then each seat in turn, so a listener can hold the shape in memory instead of re-deriving it.
View tool JSON
{
"name": "a11y.compare",
"kind": "act",
"impl": "imperative",
"description": "Compare 2 to 4 distinct seats on identical axes, in the order given. Read the axis names once, then each seat in turn, so a listener can hold the shape in memory instead of re-deriving it.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"refs": {
"type": "array",
"minItems": 2,
"maxItems": 4,
"uniqueItems": true,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 128
}
},
"units": {
"type": "string",
"enum": [
"meters",
"feet",
"steps"
]
},
"stepLength_m": {
"type": "number",
"exclusiveMinimum": 0
},
"directionStyle": {
"type": "string",
"enum": [
"relative",
"clock",
"cardinal"
]
},
"walkSpeedPercent": {
"type": "number",
"exclusiveMinimum": 0
}
},
"required": [
"refs"
]
}
}a11y.selectAction
Add one available seat to the draft selection. This books nothing — it is a draft the traveler can undo. Say which seat you are about to select and let them agree before calling.
View tool JSON
{
"name": "a11y.select",
"kind": "act",
"impl": "imperative",
"description": "Add one available seat to the draft selection. This books nothing — it is a draft the traveler can undo. Say which seat you are about to select and let them agree before calling.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"ref": {
"type": "string",
"minLength": 1,
"maxLength": 128
}
},
"required": [
"ref"
]
}
}a11y.get_selectionAction
Report what is currently selected and the running price total. Use this when the traveler asks what they have chosen so far, rather than relying on earlier conversation.
View tool JSON
{
"name": "a11y.get_selection",
"kind": "act",
"impl": "imperative",
"description": "Report what is currently selected and the running price total. Use this when the traveler asks what they have chosen so far, rather than relying on earlier conversation.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {}
}
}a11y.undoAction
Undo the last selection by one step and report which seat that removed. Tell the traveler what was undone and what remains selected.
View tool JSON
{
"name": "a11y.undo",
"kind": "act",
"impl": "imperative",
"description": "Undo the last selection by one step and report which seat that removed. Tell the traveler what was undone and what remains selected.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {}
}
}a11y.confirmAction
Open the confirmation dialog so the traveler can approve the booking. Call this when they say they want to book. It blocks until they answer and returns `confirmed`, `cancelled`, or `timeout` in the same call. Only the traveler acting in the page can produce `confirmed`.
View tool JSON
{
"name": "a11y.confirm",
"kind": "act",
"impl": "imperative",
"description": "Open the confirmation dialog so the traveler can approve the booking. Call this when they say they want to book. It blocks until they answer and returns `confirmed`, `cancelled`, or `timeout` in the same call. Only the traveler acting in the page can produce `confirmed`.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {}
}
}