Tool tree
gradeNot graded
get_page_contextAnswer
Read the current mission, layout mode, visible sections and product groups, the entity the person has selected, cart totals, and the state version. Read-only: nothing on the page changes.
View tool JSON
{
"name": "get_page_context",
"kind": "answer",
"impl": "imperative",
"description": "Read the current mission, layout mode, visible sections and product groups, the entity the person has selected, cart totals, and the state version. Read-only: nothing on the page changes.",
"inputSchema": {
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}
}search_productsAnswer
Find catalog products by text, purpose, price ceiling, delivery ceiling, or minimum warmth, ranked by the current sort. Read-only: use it to obtain product ids before calling a write tool.
View tool JSON
{
"name": "search_products",
"kind": "answer",
"impl": "imperative",
"description": "Find catalog products by text, purpose, price ceiling, delivery ceiling, or minimum warmth, ranked by the current sort. Read-only: use it to obtain product ids before calling a write tool.",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"maxLength": 80,
"description": "Free text matched against name, description, and category."
},
"purpose": {
"type": "string",
"enum": [
"shelter",
"warmth",
"weather",
"sleep",
"cooking",
"hydration",
"light",
"navigation",
"carry",
"power",
"safety",
"comfort"
]
},
"maxPriceCents": {
"type": "integer",
"minimum": 100,
"maximum": 1000000
},
"maxDeliveryDays": {
"type": "integer",
"minimum": 1,
"maximum": 30
},
"minWarmth": {
"type": "integer",
"minimum": 0,
"maximum": 10
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 12,
"default": 8
}
},
"required": [],
"additionalProperties": false
}
}get_cartAnswer
Read the cart lines, subtotal, item count, remaining mission budget, and any constraint warnings. Read-only.
View tool JSON
{
"name": "get_cart",
"kind": "answer",
"impl": "imperative",
"description": "Read the cart lines, subtotal, item count, remaining mission budget, and any constraint warnings. Read-only.",
"inputSchema": {
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}
}set_missionAction
Record what the person is trying to accomplish and reorganise the store around it. Budget, deadline, party size, and priorities are parsed into visible, editable chips. Reversible page state changes; no order is placed.
View tool JSON
{
"name": "set_mission",
"kind": "act",
"impl": "imperative",
"description": "Record what the person is trying to accomplish and reorganise the store around it. Budget, deadline, party size, and priorities are parsed into visible, editable chips. Reversible page state changes; no order is placed.",
"inputSchema": {
"type": "object",
"properties": {
"mission": {
"type": "string",
"minLength": 8,
"maxLength": 320,
"description": "The outcome in the person's own words, including any budget and deadline."
},
"applyMissionView": {
"type": "boolean",
"default": true,
"description": "Whether to switch the page into Mission View immediately."
},
"expectedStateVersion": {
"type": "integer",
"minimum": 1,
"maximum": 100000,
"description": "Optional. The state version the caller believes the page is at. The action is refused if the page has moved on."
}
},
"required": [
"mission"
],
"additionalProperties": false
}
}apply_mission_viewAction
Switch the page to Mission View: group products into Essential, Useful, and Optional by mission fit and optionally hide promotional sections. Reversible.
View tool JSON
{
"name": "apply_mission_view",
"kind": "act",
"impl": "imperative",
"description": "Switch the page to Mission View: group products into Essential, Useful, and Optional by mission fit and optionally hide promotional sections. Reversible.",
"inputSchema": {
"type": "object",
"properties": {
"hideIrrelevantSections": {
"type": "boolean",
"default": true
},
"expectedStateVersion": {
"type": "integer",
"minimum": 1,
"maximum": 100000,
"description": "Optional. The state version the caller believes the page is at. The action is refused if the page has moved on."
}
},
"required": [],
"additionalProperties": false
}
}organize_productsAction
Regroup and re-sort the visible catalog using approved layout modes only. Does not change catalog or cart data. Reversible.
View tool JSON
{
"name": "organize_products",
"kind": "act",
"impl": "imperative",
"description": "Regroup and re-sort the visible catalog using approved layout modes only. Does not change catalog or cart data. Reversible.",
"inputSchema": {
"type": "object",
"properties": {
"groupBy": {
"type": "string",
"enum": [
"category",
"priority",
"purpose"
]
},
"sortBy": {
"type": "string",
"enum": [
"featured",
"price-low",
"mission-fit",
"delivery"
]
},
"expectedStateVersion": {
"type": "integer",
"minimum": 1,
"maximum": 100000,
"description": "Optional. The state version the caller believes the page is at. The action is refused if the page has moved on."
}
},
"required": [],
"additionalProperties": false
}
}set_card_presentationAction
Change how product cards are presented: their shape, how many sit per row, how loudly the price reads, how large the imagery is, which facts appear on the card face, and whether descriptions show. Choose a named preset, individual settings, or both. Only the store's own designs are available — no markup, styles, or sizes can be supplied. Reversible layout-only change.
View tool JSON
{
"name": "set_card_presentation",
"kind": "act",
"impl": "imperative",
"description": "Change how product cards are presented: their shape, how many sit per row, how loudly the price reads, how large the imagery is, which facts appear on the card face, and whether descriptions show. Choose a named preset, individual settings, or both. Only the store's own designs are available — no markup, styles, or sizes can be supplied. Reversible layout-only change.",
"inputSchema": {
"type": "object",
"properties": {
"preset": {
"type": "string",
"enum": [
"default",
"dense-decision",
"visual-browse",
"price-first"
],
"description": "A coherent starting design. \"dense-decision\" for comparing many options, \"visual-browse\" for imagery, \"price-first\" when budget is the question, \"default\" to return to the standard cards."
},
"cardLayout": {
"type": "string",
"enum": [
"grid",
"list",
"gallery"
]
},
"columns": {
"type": "string",
"enum": [
"auto",
"2",
"3",
"4",
"5"
],
"description": "Cards per row. \"auto\" follows the responsive default; list layout is always one."
},
"priceEmphasis": {
"type": "string",
"enum": [
"subtle",
"standard",
"prominent"
]
},
"imageScale": {
"type": "string",
"enum": [
"hidden",
"small",
"standard",
"large"
]
},
"cardAttributes": {
"type": "array",
"minItems": 0,
"maxItems": 4,
"uniqueItems": true,
"items": {
"type": "string",
"enum": [
"warmth",
"delivery",
"weight",
"stock",
"mission-fit"
]
},
"description": "Facts shown on the card face, in order. An empty array shows none. Supplying this turns off the automatic mission-aware choice."
},
"automaticAttributes": {
"type": "boolean",
"description": "Set true to return to the automatic, mission-aware attribute row. Cannot be combined with cardAttributes."
},
"showDescriptions": {
"type": "boolean"
},
"expectedStateVersion": {
"type": "integer",
"minimum": 1,
"maximum": 100000,
"description": "Optional. The state version the caller believes the page is at. The action is refused if the page has moved on."
}
},
"required": [],
"additionalProperties": false
}
}set_section_visibilityAction
Show or hide known page sections and product groups. Protected regions stay visible and hidden sections remain recoverable. Reversible layout-only change.
View tool JSON
{
"name": "set_section_visibility",
"kind": "act",
"impl": "imperative",
"description": "Show or hide known page sections and product groups. Protected regions stay visible and hidden sections remain recoverable. Reversible layout-only change.",
"inputSchema": {
"type": "object",
"properties": {
"sectionIds": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"uniqueItems": true,
"items": {
"type": "string",
"enum": [
"hero",
"featured",
"editorial",
"mission-summary",
"catalog",
"comparison",
"group:essential",
"group:useful",
"group:optional",
"group:shelter",
"group:warmth",
"group:sleep",
"group:cooking",
"group:lighting",
"group:carry",
"group:utility",
"group:shelter-purpose",
"group:warmth-purpose",
"group:weather-purpose",
"group:sleep-purpose",
"group:cooking-purpose",
"group:hydration-purpose",
"group:light-purpose",
"group:navigation-purpose",
"group:carry-purpose",
"group:power-purpose",
"group:safety-purpose",
"group:comfort-purpose"
],
"description": "A known page section or product group id. Free-form selectors are not accepted."
}
},
"visible": {
"type": "boolean"
},
"reason": {
"type": "string",
"enum": [
"irrelevant",
"focus",
"user-request"
]
},
"expectedStateVersion": {
"type": "integer",
"minimum": 1,
"maximum": 100000,
"description": "Optional. The state version the caller believes the page is at. The action is refused if the page has moved on."
}
},
"required": [
"sectionIds",
"visible"
],
"additionalProperties": false
}
}move_sectionAction
Move one known section before or after another. Page sections move among page sections; product groups move among product groups. Reversible.
View tool JSON
{
"name": "move_section",
"kind": "act",
"impl": "imperative",
"description": "Move one known section before or after another. Page sections move among page sections; product groups move among product groups. Reversible.",
"inputSchema": {
"type": "object",
"properties": {
"sectionId": {
"type": "string",
"enum": [
"hero",
"featured",
"editorial",
"mission-summary",
"catalog",
"comparison",
"group:essential",
"group:useful",
"group:optional",
"group:shelter",
"group:warmth",
"group:sleep",
"group:cooking",
"group:lighting",
"group:carry",
"group:utility",
"group:shelter-purpose",
"group:warmth-purpose",
"group:weather-purpose",
"group:sleep-purpose",
"group:cooking-purpose",
"group:hydration-purpose",
"group:light-purpose",
"group:navigation-purpose",
"group:carry-purpose",
"group:power-purpose",
"group:safety-purpose",
"group:comfort-purpose"
],
"description": "A known page section or product group id. Free-form selectors are not accepted."
},
"relation": {
"type": "string",
"enum": [
"before",
"after"
]
},
"anchorSectionId": {
"type": "string",
"enum": [
"hero",
"featured",
"editorial",
"mission-summary",
"catalog",
"comparison",
"group:essential",
"group:useful",
"group:optional",
"group:shelter",
"group:warmth",
"group:sleep",
"group:cooking",
"group:lighting",
"group:carry",
"group:utility",
"group:shelter-purpose",
"group:warmth-purpose",
"group:weather-purpose",
"group:sleep-purpose",
"group:cooking-purpose",
"group:hydration-purpose",
"group:light-purpose",
"group:navigation-purpose",
"group:carry-purpose",
"group:power-purpose",
"group:safety-purpose",
"group:comfort-purpose"
],
"description": "A known page section or product group id. Free-form selectors are not accepted."
},
"expectedStateVersion": {
"type": "integer",
"minimum": 1,
"maximum": 100000,
"description": "Optional. The state version the caller believes the page is at. The action is refused if the page has moved on."
}
},
"required": [
"sectionId",
"relation",
"anchorSectionId"
],
"additionalProperties": false
}
}select_entityAction
Set what the word "this" refers to on the page — a product, a section, a mission constraint, or a panel. Draws the same visible selection outline a click would.
View tool JSON
{
"name": "select_entity",
"kind": "act",
"impl": "imperative",
"description": "Set what the word \"this\" refers to on the page — a product, a section, a mission constraint, or a panel. Draws the same visible selection outline a click would.",
"inputSchema": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"product",
"section",
"constraint",
"panel",
"none"
]
},
"id": {
"type": "string",
"maxLength": 64
},
"expectedStateVersion": {
"type": "integer",
"minimum": 1,
"maximum": 100000,
"description": "Optional. The state version the caller believes the page is at. The action is refused if the page has moved on."
}
},
"required": [
"kind"
],
"additionalProperties": false
}
}create_comparisonAction
Open Comparison View for two to four in-stock catalog products, optionally pinning a reference product and ordering the attributes that matter for this mission. Reversible.
View tool JSON
{
"name": "create_comparison",
"kind": "act",
"impl": "imperative",
"description": "Open Comparison View for two to four in-stock catalog products, optionally pinning a reference product and ordering the attributes that matter for this mission. Reversible.",
"inputSchema": {
"type": "object",
"properties": {
"productIds": {
"type": "array",
"minItems": 2,
"maxItems": 4,
"uniqueItems": true,
"items": {
"type": "string",
"enum": [
"thermal-ridge-jacket",
"aurora-down-quilt",
"tundra-sleep-pad",
"stormproof-shell",
"basalt-two-tent",
"windward-bivy",
"merino-base-layer",
"highland-fleece-mid",
"drift-insulated-vest",
"saga-daypack",
"ember-cookset",
"gust-camp-stove",
"northstar-lantern",
"beacon-headlamp",
"pocket-water-filter",
"glacier-flask",
"trail-merino-socks",
"thermal-glove-liners",
"weatherproof-map-case",
"fjord-camp-mug",
"summit-power-bank",
"field-repair-kit"
],
"description": "A catalog product id."
}
},
"referenceProductId": {
"type": "string",
"enum": [
"thermal-ridge-jacket",
"aurora-down-quilt",
"tundra-sleep-pad",
"stormproof-shell",
"basalt-two-tent",
"windward-bivy",
"merino-base-layer",
"highland-fleece-mid",
"drift-insulated-vest",
"saga-daypack",
"ember-cookset",
"gust-camp-stove",
"northstar-lantern",
"beacon-headlamp",
"pocket-water-filter",
"glacier-flask",
"trail-merino-socks",
"thermal-glove-liners",
"weatherproof-map-case",
"fjord-camp-mug",
"summit-power-bank",
"field-repair-kit"
],
"description": "A catalog product id."
},
"prioritizeAttributes": {
"type": "array",
"minItems": 1,
"maxItems": 4,
"uniqueItems": true,
"items": {
"type": "string",
"enum": [
"warmth",
"delivery",
"weight",
"price"
]
}
},
"expectedStateVersion": {
"type": "integer",
"minimum": 1,
"maximum": 100000,
"description": "Optional. The state version the caller believes the page is at. The action is refused if the page has moved on."
}
},
"required": [
"productIds"
],
"additionalProperties": false
}
}set_reference_productAction
Pin one product as the reference that alternatives are measured against. Reversible.
View tool JSON
{
"name": "set_reference_product",
"kind": "act",
"impl": "imperative",
"description": "Pin one product as the reference that alternatives are measured against. Reversible.",
"inputSchema": {
"type": "object",
"properties": {
"productId": {
"type": "string",
"enum": [
"thermal-ridge-jacket",
"aurora-down-quilt",
"tundra-sleep-pad",
"stormproof-shell",
"basalt-two-tent",
"windward-bivy",
"merino-base-layer",
"highland-fleece-mid",
"drift-insulated-vest",
"saga-daypack",
"ember-cookset",
"gust-camp-stove",
"northstar-lantern",
"beacon-headlamp",
"pocket-water-filter",
"glacier-flask",
"trail-merino-socks",
"thermal-glove-liners",
"weatherproof-map-case",
"fjord-camp-mug",
"summit-power-bank",
"field-repair-kit"
],
"description": "A catalog product id."
},
"expectedStateVersion": {
"type": "integer",
"minimum": 1,
"maximum": 100000,
"description": "Optional. The state version the caller believes the page is at. The action is refused if the page has moved on."
}
},
"required": [
"productId"
],
"additionalProperties": false
}
}exit_comparisonAction
Leave Comparison View and restore the previous layout. Reversible.
View tool JSON
{
"name": "exit_comparison",
"kind": "act",
"impl": "imperative",
"description": "Leave Comparison View and restore the previous layout. Reversible.",
"inputSchema": {
"type": "object",
"properties": {
"expectedStateVersion": {
"type": "integer",
"minimum": 1,
"maximum": 100000,
"description": "Optional. The state version the caller believes the page is at. The action is refused if the page has moved on."
}
},
"required": [],
"additionalProperties": false
}
}add_to_cartAction
Add one to four known catalog products to the visible fictional cart, with bounded quantities and an optional short reason. This changes cart state and is reversible. It does not place an order.
View tool JSON
{
"name": "add_to_cart",
"kind": "act",
"impl": "imperative",
"description": "Add one to four known catalog products to the visible fictional cart, with bounded quantities and an optional short reason. This changes cart state and is reversible. It does not place an order.",
"inputSchema": {
"type": "object",
"properties": {
"items": {
"type": "array",
"minItems": 1,
"maxItems": 4,
"items": {
"type": "object",
"properties": {
"productId": {
"type": "string",
"enum": [
"thermal-ridge-jacket",
"aurora-down-quilt",
"tundra-sleep-pad",
"stormproof-shell",
"basalt-two-tent",
"windward-bivy",
"merino-base-layer",
"highland-fleece-mid",
"drift-insulated-vest",
"saga-daypack",
"ember-cookset",
"gust-camp-stove",
"northstar-lantern",
"beacon-headlamp",
"pocket-water-filter",
"glacier-flask",
"trail-merino-socks",
"thermal-glove-liners",
"weatherproof-map-case",
"fjord-camp-mug",
"summit-power-bank",
"field-repair-kit"
],
"description": "A catalog product id."
},
"quantity": {
"type": "integer",
"minimum": 1,
"maximum": 8
},
"reason": {
"type": "string",
"maxLength": 120
}
},
"required": [
"productId",
"quantity"
],
"additionalProperties": false
}
},
"expectedStateVersion": {
"type": "integer",
"minimum": 1,
"maximum": 100000,
"description": "Optional. The state version the caller believes the page is at. The action is refused if the page has moved on."
}
},
"required": [
"items"
],
"additionalProperties": false
}
}update_cart_quantityAction
Set the quantity of one cart line, or remove it by setting the quantity to zero. Reversible; does not place an order.
View tool JSON
{
"name": "update_cart_quantity",
"kind": "act",
"impl": "imperative",
"description": "Set the quantity of one cart line, or remove it by setting the quantity to zero. Reversible; does not place an order.",
"inputSchema": {
"type": "object",
"properties": {
"productId": {
"type": "string",
"enum": [
"thermal-ridge-jacket",
"aurora-down-quilt",
"tundra-sleep-pad",
"stormproof-shell",
"basalt-two-tent",
"windward-bivy",
"merino-base-layer",
"highland-fleece-mid",
"drift-insulated-vest",
"saga-daypack",
"ember-cookset",
"gust-camp-stove",
"northstar-lantern",
"beacon-headlamp",
"pocket-water-filter",
"glacier-flask",
"trail-merino-socks",
"thermal-glove-liners",
"weatherproof-map-case",
"fjord-camp-mug",
"summit-power-bank",
"field-repair-kit"
],
"description": "A catalog product id."
},
"quantity": {
"type": "integer",
"minimum": 0,
"maximum": 8
},
"expectedStateVersion": {
"type": "integer",
"minimum": 1,
"maximum": 100000,
"description": "Optional. The state version the caller believes the page is at. The action is refused if the page has moved on."
}
},
"required": [
"productId",
"quantity"
],
"additionalProperties": false
}
}undo_last_actionAction
Restore the most recent reversible layout, comparison, or cart snapshot. Whoever made the change, human or agent, it is undone the same way.
View tool JSON
{
"name": "undo_last_action",
"kind": "act",
"impl": "imperative",
"description": "Restore the most recent reversible layout, comparison, or cart snapshot. Whoever made the change, human or agent, it is undone the same way.",
"inputSchema": {
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}
}reset_experienceAction
Return mission, layout, selection, comparison, cart, and checkout to the seeded Browse View. Ask the person before calling this: it discards their work.
View tool JSON
{
"name": "reset_experience",
"kind": "act",
"impl": "imperative",
"description": "Return mission, layout, selection, comparison, cart, and checkout to the seeded Browse View. Ask the person before calling this: it discards their work.",
"inputSchema": {
"type": "object",
"properties": {
"confirmed": {
"type": "boolean",
"description": "Set to true only after the person has agreed to discard the current session."
}
},
"required": [
"confirmed"
],
"additionalProperties": false
}
}open_cartAction
Bring the cart drawer on screen so the person can see the kit, its line items, and the running total — or close it again. This only moves the drawer: it changes no cart contents and places no order.
View tool JSON
{
"name": "open_cart",
"kind": "act",
"impl": "imperative",
"description": "Bring the cart drawer on screen so the person can see the kit, its line items, and the running total — or close it again. This only moves the drawer: it changes no cart contents and places no order.",
"inputSchema": {
"type": "object",
"properties": {
"open": {
"type": "boolean",
"default": true,
"description": "True to show the cart, false to close it."
},
"expectedStateVersion": {
"type": "integer",
"minimum": 1,
"maximum": 100000,
"description": "Optional. The state version the caller believes the page is at. The action is refused if the page has moved on."
}
},
"required": [],
"additionalProperties": false
}
}preview_checkoutSensitive Action
Validate the cart against stock, budget, and delivery constraints and open the visible review surface. Returns a confirmation token. No order is created.
View tool JSON
{
"name": "preview_checkout",
"kind": "transact",
"impl": "imperative",
"description": "Validate the cart against stock, budget, and delivery constraints and open the visible review surface. Returns a confirmation token. No order is created.",
"inputSchema": {
"type": "object",
"properties": {
"expectedStateVersion": {
"type": "integer",
"minimum": 1,
"maximum": 100000,
"description": "Optional. The state version the caller believes the page is at. The action is refused if the page has moved on."
}
},
"required": [],
"additionalProperties": false
}
}place_demo_orderSensitive Action
Ask for the fictional order to be placed. An agent can only raise the confirmation gate: the order is created solely when a person presses the visible Confirm control. Check data.orderPlaced before telling anyone the order exists.
View tool JSON
{
"name": "place_demo_order",
"kind": "transact",
"impl": "imperative",
"description": "Ask for the fictional order to be placed. An agent can only raise the confirmation gate: the order is created solely when a person presses the visible Confirm control. Check data.orderPlaced before telling anyone the order exists.",
"inputSchema": {
"type": "object",
"properties": {
"token": {
"type": "string",
"maxLength": 64,
"description": "The token returned by preview_checkout."
},
"expectedStateVersion": {
"type": "integer",
"minimum": 1,
"maximum": 100000,
"description": "Optional. The state version the caller believes the page is at. The action is refused if the page has moved on."
}
},
"required": [],
"additionalProperties": false
}
}