{
    "awp_version": "0.2",
    "domain": "vesremont.com",
    "intent": "Search and inspect renovation products, manage the current browser session cart and favorites, and prepare or explicitly confirm an order on Vesremont.",
    "protocols": {
        "webmcp": {
            "version": "browser-origin-trial",
            "endpoint": "https://vesremont.com/",
            "transport": "document.modelContext",
            "documentation": "https://vesremont.com/llms/capabilities.md"
        }
    },
    "capabilities": {
        "streaming": false,
        "batch_actions": false,
        "webhooks": false,
        "pagination": "offset",
        "idempotency": false
    },
    "auth": {
        "required_for": [],
        "optional_for": [],
        "type": "none"
    },
    "entities": {
        "webmcp_content": {
            "fields": {
                "type": "enum[text]",
                "text": "string"
            }
        }
    },
    "actions": [
        {
            "id": "search_products",
            "description": "Open Vesremont search for a product, category, brand, model or article.",
            "auth_required": false,
            "inputs": {
                "search": {
                    "type": "string",
                    "required": true,
                    "description": "Search phrase, 1 to 200 characters."
                }
            },
            "outputs": {
                "content": "array[webmcp_content]"
            },
            "via": "webmcp",
            "operation": "search_products",
            "execution_model": "sync",
            "reversible": true
        },
        {
            "id": "get_page_context",
            "description": "Read the current page type, URL, heading, current product and up to three visible products.",
            "auth_required": false,
            "inputs": {},
            "outputs": {
                "content": "array[webmcp_content]"
            },
            "via": "webmcp",
            "operation": "get_page_context",
            "execution_model": "sync"
        },
        {
            "id": "get_cart",
            "description": "Read a paginated slice of the current browser session cart and its full total.",
            "auth_required": false,
            "inputs": {
                "offset": {
                    "type": "integer",
                    "required": false,
                    "default": 0
                },
                "limit": {
                    "type": "integer",
                    "required": false,
                    "default": 3
                }
            },
            "outputs": {
                "content": "array[webmcp_content]"
            },
            "via": "webmcp",
            "operation": "get_cart",
            "execution_model": "sync"
        },
        {
            "id": "get_visible_products",
            "description": "Read up to three products already present in the current result page.",
            "auth_required": false,
            "inputs": {
                "limit": {
                    "type": "integer",
                    "required": false,
                    "default": 3
                }
            },
            "outputs": {
                "content": "array[webmcp_content]"
            },
            "via": "webmcp",
            "operation": "get_visible_products",
            "execution_model": "sync"
        },
        {
            "id": "add_to_cart",
            "description": "Add a quantity of an orderable product to the current browser session cart.",
            "auth_required": false,
            "inputs": {
                "productId": {
                    "type": "integer",
                    "required": true,
                    "description": "Positive Bitrix product ID published by the current page."
                },
                "quantity": {
                    "type": "integer",
                    "required": false,
                    "default": 1
                }
            },
            "outputs": {
                "content": "array[webmcp_content]"
            },
            "via": "webmcp",
            "operation": "add_to_cart",
            "execution_model": "sync",
            "sensitivity": "standard",
            "reversible": true
        },
        {
            "id": "set_cart_quantity",
            "description": "Set the exact cart quantity; zero removes the line.",
            "auth_required": false,
            "inputs": {
                "productId": {
                    "type": "integer",
                    "required": true,
                    "description": "Positive Bitrix product ID published by the current page."
                },
                "quantity": {
                    "type": "integer",
                    "required": true
                }
            },
            "outputs": {
                "content": "array[webmcp_content]"
            },
            "via": "webmcp",
            "operation": "set_cart_quantity",
            "execution_model": "sync",
            "sensitivity": "standard",
            "reversible": true
        },
        {
            "id": "start_fast_order",
            "description": "Ensure one product is in the cart and return the checkout URL without creating an order.",
            "auth_required": false,
            "inputs": {
                "productId": {
                    "type": "integer",
                    "required": true,
                    "description": "Positive Bitrix product ID published by the current page."
                }
            },
            "outputs": {
                "content": "array[webmcp_content]"
            },
            "via": "webmcp",
            "operation": "start_fast_order",
            "execution_model": "sync",
            "sensitivity": "standard",
            "reversible": true
        },
        {
            "id": "remove_from_cart",
            "description": "Remove a product from the current browser session cart.",
            "auth_required": false,
            "inputs": {
                "productId": {
                    "type": "integer",
                    "required": true,
                    "description": "Positive Bitrix product ID published by the current page."
                }
            },
            "outputs": {
                "content": "array[webmcp_content]"
            },
            "via": "webmcp",
            "operation": "remove_from_cart",
            "execution_model": "sync",
            "sensitivity": "destructive",
            "reversible": true
        },
        {
            "id": "get_favorites",
            "description": "Read product IDs from the current visitor favorites list.",
            "auth_required": false,
            "inputs": {
                "offset": {
                    "type": "integer",
                    "required": false,
                    "default": 0
                },
                "limit": {
                    "type": "integer",
                    "required": false,
                    "default": 50
                }
            },
            "outputs": {
                "content": "array[webmcp_content]"
            },
            "via": "webmcp",
            "operation": "get_favorites",
            "execution_model": "sync"
        },
        {
            "id": "set_favorite",
            "description": "Explicitly add a product to favorites or remove it.",
            "auth_required": false,
            "inputs": {
                "productId": {
                    "type": "integer",
                    "required": true,
                    "description": "Positive Bitrix product ID published by the current page."
                },
                "state": {
                    "type": "enum",
                    "required": true,
                    "options": [
                        "add",
                        "remove"
                    ]
                }
            },
            "outputs": {
                "content": "array[webmcp_content]"
            },
            "via": "webmcp",
            "operation": "set_favorite",
            "execution_model": "sync",
            "sensitivity": "standard",
            "reversible": true
        },
        {
            "id": "get_current_product",
            "description": "Read the product on the open product page, including price, stock, orderability and pickup-today state.",
            "auth_required": false,
            "inputs": {},
            "outputs": {
                "content": "array[webmcp_content]"
            },
            "via": "webmcp",
            "operation": "get_current_product",
            "execution_model": "sync"
        },
        {
            "id": "react_to_review",
            "description": "Set or clear a useful/not-useful reaction on a published review.",
            "auth_required": false,
            "inputs": {
                "reviewId": {
                    "type": "integer",
                    "required": true
                },
                "reaction": {
                    "type": "enum",
                    "required": true,
                    "options": [
                        "like",
                        "dislike"
                    ]
                }
            },
            "outputs": {
                "content": "array[webmcp_content]"
            },
            "via": "webmcp",
            "operation": "react_to_review",
            "execution_model": "sync",
            "sensitivity": "standard",
            "reversible": true
        },
        {
            "id": "react_to_comment",
            "description": "Set or clear a useful/not-useful reaction on a published review comment.",
            "auth_required": false,
            "inputs": {
                "reviewId": {
                    "type": "integer",
                    "required": true
                },
                "commentId": {
                    "type": "string",
                    "required": true
                },
                "reaction": {
                    "type": "enum",
                    "required": true,
                    "options": [
                        "like",
                        "dislike"
                    ]
                }
            },
            "outputs": {
                "content": "array[webmcp_content]"
            },
            "via": "webmcp",
            "operation": "react_to_comment",
            "execution_model": "sync",
            "sensitivity": "standard",
            "reversible": true
        },
        {
            "id": "get_catalog_filters",
            "description": "Read paginated filter groups or values from the current catalog page.",
            "auth_required": false,
            "inputs": {
                "filterId": {
                    "type": "string",
                    "required": false
                },
                "valueOffset": {
                    "type": "integer",
                    "required": false,
                    "default": 0
                },
                "valueLimit": {
                    "type": "integer",
                    "required": false,
                    "default": 3
                },
                "offset": {
                    "type": "integer",
                    "required": false,
                    "default": 0
                },
                "limit": {
                    "type": "integer",
                    "required": false,
                    "default": 3
                }
            },
            "outputs": {
                "content": "array[webmcp_content]"
            },
            "via": "webmcp",
            "operation": "get_catalog_filters",
            "execution_model": "sync"
        },
        {
            "id": "open_catalog_url",
            "description": "Open a same-origin URL inside /catalog/ returned by Vesremont.",
            "auth_required": false,
            "inputs": {
                "url": {
                    "type": "url",
                    "required": true
                }
            },
            "outputs": {
                "content": "array[webmcp_content]"
            },
            "via": "webmcp",
            "operation": "open_catalog_url",
            "execution_model": "sync",
            "reversible": true
        },
        {
            "id": "set_catalog_range",
            "description": "Validate and open a numeric filter range on the current catalog page.",
            "auth_required": false,
            "inputs": {
                "filterId": {
                    "type": "string",
                    "required": true
                },
                "min": {
                    "type": "integer",
                    "required": true
                },
                "max": {
                    "type": "integer",
                    "required": true
                }
            },
            "outputs": {
                "content": "array[webmcp_content]"
            },
            "via": "webmcp",
            "operation": "set_catalog_range",
            "execution_model": "sync",
            "reversible": true
        },
        {
            "id": "set_catalog_sort",
            "description": "Open the current catalog with the selected supported sort order.",
            "auth_required": false,
            "inputs": {
                "sort": {
                    "type": "enum",
                    "required": true,
                    "options": [
                        "default",
                        "price_asc",
                        "price_desc"
                    ]
                }
            },
            "outputs": {
                "content": "array[webmcp_content]"
            },
            "via": "webmcp",
            "operation": "set_catalog_sort",
            "execution_model": "sync",
            "reversible": true
        },
        {
            "id": "open_catalog_page",
            "description": "Open a positive page number while preserving current filters and sort.",
            "auth_required": false,
            "inputs": {
                "page": {
                    "type": "integer",
                    "required": true
                }
            },
            "outputs": {
                "content": "array[webmcp_content]"
            },
            "via": "webmcp",
            "operation": "open_catalog_page",
            "execution_model": "sync",
            "reversible": true
        },
        {
            "id": "get_checkout",
            "description": "Read cart, delivery, payment, address and contact state on the checkout page.",
            "auth_required": false,
            "inputs": {},
            "outputs": {
                "content": "array[webmcp_content]"
            },
            "via": "webmcp",
            "operation": "get_checkout",
            "execution_model": "sync"
        },
        {
            "id": "set_delivery",
            "description": "Select pickup or courier delivery for the current checkout.",
            "auth_required": false,
            "inputs": {
                "delivery": {
                    "type": "enum",
                    "required": true,
                    "options": [
                        "pickup",
                        "courier"
                    ]
                }
            },
            "outputs": {
                "content": "array[webmcp_content]"
            },
            "via": "webmcp",
            "operation": "set_delivery",
            "execution_model": "sync",
            "sensitivity": "standard",
            "reversible": true
        },
        {
            "id": "suggest_addresses",
            "description": "Return up to three normalized Russian delivery-address suggestions and save the query as a draft.",
            "auth_required": false,
            "inputs": {
                "query": {
                    "type": "string",
                    "required": true
                }
            },
            "outputs": {
                "content": "array[webmcp_content]"
            },
            "via": "webmcp",
            "operation": "suggest_addresses",
            "execution_model": "sync",
            "sensitivity": "standard",
            "reversible": true
        },
        {
            "id": "set_delivery_address",
            "description": "Save the selected full courier delivery address in the current checkout.",
            "auth_required": false,
            "inputs": {
                "address": {
                    "type": "string",
                    "required": true
                }
            },
            "outputs": {
                "content": "array[webmcp_content]"
            },
            "via": "webmcp",
            "operation": "set_delivery_address",
            "execution_model": "sync",
            "sensitivity": "standard",
            "reversible": true
        },
        {
            "id": "set_payment",
            "description": "Select cash, SBP, online card or organization invoice payment.",
            "auth_required": false,
            "inputs": {
                "payment": {
                    "type": "enum",
                    "required": true,
                    "options": [
                        "cash",
                        "sbp",
                        "card",
                        "invoice"
                    ]
                }
            },
            "outputs": {
                "content": "array[webmcp_content]"
            },
            "via": "webmcp",
            "operation": "set_payment",
            "execution_model": "sync",
            "sensitivity": "standard",
            "reversible": true
        },
        {
            "id": "set_checkout_contact",
            "description": "Save one or more contact or order-comment fields in the current checkout.",
            "auth_required": false,
            "inputs": {
                "name": {
                    "type": "string",
                    "required": false
                },
                "email": {
                    "type": "string",
                    "required": false
                },
                "phone": {
                    "type": "string",
                    "required": false
                },
                "comment": {
                    "type": "string",
                    "required": false
                }
            },
            "outputs": {
                "content": "array[webmcp_content]"
            },
            "via": "webmcp",
            "operation": "set_checkout_contact",
            "execution_model": "sync",
            "sensitivity": "standard",
            "reversible": true
        },
        {
            "id": "prepare_order",
            "description": "Validate the checkout and return the complete order summary plus a single-use token valid for ten minutes.",
            "auth_required": false,
            "inputs": {},
            "outputs": {
                "content": "array[webmcp_content]"
            },
            "via": "webmcp",
            "operation": "prepare_order",
            "execution_model": "sync",
            "sensitivity": "standard",
            "requires_human_confirmation": false,
            "reversible": true
        },
        {
            "id": "submit_order",
            "description": "Create the order after the user has reviewed the prepare_order summary and explicitly confirmed it.",
            "auth_required": false,
            "inputs": {
                "confirmationToken": {
                    "type": "string",
                    "required": true,
                    "description": "The 48-character single-use token returned by prepare_order."
                },
                "confirmed": {
                    "type": "boolean",
                    "required": true,
                    "description": "Must be true after explicit user confirmation."
                }
            },
            "outputs": {
                "content": "array[webmcp_content]"
            },
            "via": "webmcp",
            "operation": "submit_order",
            "execution_model": "sync",
            "sensitivity": "irreversible",
            "requires_human_confirmation": true,
            "reversible": false
        }
    ],
    "errors": {
        "TOOL_NOT_AVAILABLE": {
            "recovery": "Open a relevant Vesremont page and read document.modelContext again; product, catalog and checkout tools are registered contextually."
        },
        "INVALID_ARGUMENT": {
            "recovery": "Correct the argument using the action input contract, then retry the action."
        },
        "STALE_STATE": {
            "recovery": "Call get_cart or get_checkout, review the current state, then retry."
        },
        "CONFIRMATION_REQUIRED": {
            "recovery": "Call prepare_order, show its complete summary to the user, obtain explicit confirmation, then call submit_order once with confirmed true and the returned token."
        },
        "TOKEN_EXPIRED": {
            "recovery": "Call prepare_order again, show the refreshed summary to the user, obtain confirmation again, then submit the new token."
        }
    },
    "dependencies": {
        "submit_order": [
            "prepare_order"
        ]
    },
    "agent_hints": {
        "runtime_discovery": "Read document.modelContext after every navigation because page-specific tools are registered only where they are valid.",
        "state": "Cart, favorites and checkout actions use the current browser session and server-validated CSRF protection; do not call internal AJAX endpoints directly.",
        "order_safety": "Never call submit_order without showing the latest prepare_order summary to the user and receiving explicit confirmation.",
        "dynamic_data": "Read current HTML or WebMCP results for prices, stock, filters and orderability; agent.json is a stable capability manifest, not a product feed.",
        "documentation": "https://vesremont.com/llms/capabilities.md",
        "policy": "https://vesremont.com/.well-known/ai.txt"
    }
}
