Tool tree
gradeNot graded
page: Every page
search_productsAnswer
Search the product catalog by keyword. Matches product names, descriptions, categories, and spec fields. Read-only: does not change cart or page state.
View tool JSON
{
"name": "search_products",
"kind": "answer",
"impl": "imperative",
"description": "Search the product catalog by keyword. Matches product names, descriptions, categories, and spec fields. Read-only: does not change cart or page state.",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Search keywords, e.g. 'wireless headphones' or 'mechanical keyboard'."
}
},
"required": [
"query"
]
},
"page": "/"
}apply_filtersAnswer
Filter the product catalog by price range, category, and minimum rating. Read-only: does not change cart or page state. All fields are optional and bounded (enumerated category, numeric ranges); no free-text input.
View tool JSON
{
"name": "apply_filters",
"kind": "answer",
"impl": "imperative",
"description": "Filter the product catalog by price range, category, and minimum rating. Read-only: does not change cart or page state. All fields are optional and bounded (enumerated category, numeric ranges); no free-text input.",
"inputSchema": {
"type": "object",
"properties": {
"minPrice": {
"type": "number",
"minimum": 0,
"description": "Minimum price in USD."
},
"maxPrice": {
"type": "number",
"minimum": 0,
"description": "Maximum price in USD."
},
"category": {
"type": "string",
"enum": [
"headphones",
"keyboards",
"smart-home"
],
"description": "Restrict results to a single category."
},
"minRating": {
"type": "number",
"minimum": 0,
"maximum": 5,
"description": "Minimum star rating (0-5)."
}
}
},
"page": "/"
}check_return_policyAnswer
Return the return/warranty policy text for a single product, exactly as shown on its product page. First-party content, not user-generated.
View tool JSON
{
"name": "check_return_policy",
"kind": "answer",
"impl": "imperative",
"description": "Return the return/warranty policy text for a single product, exactly as shown on its product page. First-party content, not user-generated.",
"inputSchema": {
"type": "object",
"properties": {
"productId": {
"type": "string",
"description": "The product ID to look up."
}
},
"required": [
"productId"
]
},
"page": "/"
}get_product_detailsAnswer
Return the full record for a single product by ID: specs, price, rating, return policy, stock, and description. Read-only. Use this before add_to_cart when the agent only has a product name from search results and needs the full record.
View tool JSON
{
"name": "get_product_details",
"kind": "answer",
"impl": "imperative",
"description": "Return the full record for a single product by ID: specs, price, rating, return policy, stock, and description. Read-only. Use this before add_to_cart when the agent only has a product name from search results and needs the full record.",
"inputSchema": {
"type": "object",
"properties": {
"productId": {
"type": "string",
"description": "The product ID to look up."
}
},
"required": [
"productId"
]
},
"page": "/"
}get_cartAnswer
Read the current contents of the shared cart, the same cart the shopper sees in the page's cart drawer. Read-only.
View tool JSON
{
"name": "get_cart",
"kind": "answer",
"impl": "imperative",
"description": "Read the current contents of the shared cart, the same cart the shopper sees in the page's cart drawer. Read-only.",
"inputSchema": {
"type": "object",
"properties": {}
},
"page": "/"
}compare_productsAction
Compare 2-4 products by ID, spec by spec. Renders a real comparison table inline on the storefront page (not just returned as text) so the shopper sees the same comparison the agent is reasoning about. Read-only with respect to the cart.
View tool JSON
{
"name": "compare_products",
"kind": "act",
"impl": "imperative",
"description": "Compare 2-4 products by ID, spec by spec. Renders a real comparison table inline on the storefront page (not just returned as text) so the shopper sees the same comparison the agent is reasoning about. Read-only with respect to the cart.",
"inputSchema": {
"type": "object",
"properties": {
"productIds": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 2,
"maxItems": 4,
"description": "2 to 4 product IDs to compare."
}
},
"required": [
"productIds"
]
},
"page": "/"
}add_to_cartAction
Add a product to the shared cart. Reversible: remove_from_cart undoes this. Updates the same cart the shopper sees in the page's cart drawer; does not charge anything.
View tool JSON
{
"name": "add_to_cart",
"kind": "act",
"impl": "imperative",
"description": "Add a product to the shared cart. Reversible: remove_from_cart undoes this. Updates the same cart the shopper sees in the page's cart drawer; does not charge anything.",
"inputSchema": {
"type": "object",
"properties": {
"productId": {
"type": "string",
"description": "The product ID to add."
},
"quantity": {
"type": "integer",
"minimum": 1,
"description": "Quantity to add (default 1)."
}
},
"required": [
"productId"
]
},
"page": "/"
}remove_from_cartAction
Remove a product from the shared cart. Reversible: add_to_cart undoes this. Updates the same cart the shopper sees in the page's cart drawer.
View tool JSON
{
"name": "remove_from_cart",
"kind": "act",
"impl": "imperative",
"description": "Remove a product from the shared cart. Reversible: add_to_cart undoes this. Updates the same cart the shopper sees in the page's cart drawer.",
"inputSchema": {
"type": "object",
"properties": {
"productId": {
"type": "string",
"description": "The product ID to remove."
}
},
"required": [
"productId"
]
},
"page": "/"
}track_price_dropAnswer
Register a price-drop watch on a product. Low-stakes and reversible: the shopper can unwatch it from the product page. Does not affect the cart or complete any purchase.
View tool JSON
{
"name": "track_price_drop",
"kind": "answer",
"impl": "imperative",
"description": "Register a price-drop watch on a product. Low-stakes and reversible: the shopper can unwatch it from the product page. Does not affect the cart or complete any purchase.",
"inputSchema": {
"type": "object",
"properties": {
"productId": {
"type": "string",
"description": "The product ID to watch."
}
},
"required": [
"productId"
]
},
"page": "/"
}checkoutAction
Begin checkout for the current cart. This tool DOES NOT complete a purchase and DOES NOT charge anything. It opens an in-page confirmation modal that only the shopper can act on, completing the order requires the shopper's own click inside that modal. This call always returns status "confirmation_required"; there is no way to finalize the purchase through this or any other tool.
View tool JSON
{
"name": "checkout",
"kind": "act",
"impl": "imperative",
"description": "Begin checkout for the current cart. This tool DOES NOT complete a purchase and DOES NOT charge anything. It opens an in-page confirmation modal that only the shopper can act on, completing the order requires the shopper's own click inside that modal. This call always returns status \"confirmation_required\"; there is no way to finalize the purchase through this or any other tool.",
"inputSchema": {
"type": "object",
"properties": {}
},
"page": "/"
}ask_humanAction
Ask the shopper a clarifying question inline on the page (e.g. "Wired or wireless?", "What's your budget cap?") and wait for their answer. Optionally provide a small set of suggested options. Does not mutate cart or session state, it only pauses for human input.
View tool JSON
{
"name": "ask_human",
"kind": "act",
"impl": "imperative",
"description": "Ask the shopper a clarifying question inline on the page (e.g. \"Wired or wireless?\", \"What's your budget cap?\") and wait for their answer. Optionally provide a small set of suggested options. Does not mutate cart or session state, it only pauses for human input.",
"inputSchema": {
"type": "object",
"properties": {
"question": {
"type": "string",
"description": "The question to show the shopper."
},
"options": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 5,
"description": "Optional short list of suggested answers to show as buttons."
}
},
"required": [
"question"
]
},
"page": "/"
}