{"ok":true,"site":{"host":"voice-enable-pizza-app.vercel.app","url":"https://voice-enable-pizza-app.vercel.app/","type":"live","desc":"Forno","tools":[{"name":"list_pizzas","kind":"answer","impl":"imperative","description":"Return the COMPLETE pizza menu only — never filters. After this, you MUST call match_pizzas with the pizza id(s) that match the customer.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"match_pizzas","kind":"act","impl":"imperative","description":"REQUIRED after list_pizzas. Pass the pizza id(s) that match the customer. Exactly one id scrolls the menu carousel to that pizza. Multiple ids return those pizzas without scrolling. Empty array if none match.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"pizzaIds":{"type":"array","items":{"type":"string"},"description":"Matching pizza ids from list_pizzas (0, 1, or many)."}},"required":["pizzaIds"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"get_pizza","kind":"act","impl":"imperative","description":"Load one pizza by id or name and scroll the menu to it. Prefer match_pizzas after list_pizzas for browse questions. Use get_pizza when confirming a specific pie during ordering.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"id":{"type":"string","description":"Pizza id or exact/partial name from the menu."}},"required":["id"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"add_customization","kind":"act","impl":"imperative","description":"Set size, crust, toppings, or notes on a pizza before adding to cart, or update a cart line. Pass pizzaId for draft customization, or cartItemId to edit a cart line.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"pizzaId":{"type":"string","description":"Menu pizza to customize (draft)."},"cartItemId":{"type":"string","description":"Existing cart line to update."},"size":{"type":"string","enum":["sm","md","lg"]},"crust":{"type":"string","enum":["classic","thin","stuffed","gluten-free"]},"toppings":{"type":"array","items":{"type":"string","enum":["mozzarella","basil","mushroom","pepperoni","olive","jalapeno","onion","sausage"]}},"addToppings":{"type":"array","items":{"type":"string"},"description":"Topping ids to add without replacing the full list."},"removeToppings":{"type":"array","items":{"type":"string"},"description":"Topping ids to remove."},"notes":{"type":"string"}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"edit_customization","kind":"act","impl":"imperative","description":"Alias of add_customization for editing size, crust, toppings, or notes.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"pizzaId":{"type":"string"},"cartItemId":{"type":"string"},"size":{"type":"string"},"crust":{"type":"string"},"toppings":{"type":"array","items":{"type":"string"}},"addToppings":{"type":"array","items":{"type":"string"}},"removeToppings":{"type":"array","items":{"type":"string"}},"notes":{"type":"string"}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"remove_customization","kind":"act","impl":"imperative","description":"Clear draft customization for a pizza, or remove specific toppings/notes from a cart line.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"pizzaId":{"type":"string"},"cartItemId":{"type":"string"},"toppings":{"type":"array","items":{"type":"string"},"description":"If set, only remove these toppings."},"clearNotes":{"type":"boolean"},"reset":{"type":"boolean","description":"Reset to pizza defaults (draft) or clear extras on cart line."}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"add_to_cart","kind":"act","impl":"imperative","description":"Add a menu pizza to the shopping cart with optional customization.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"pizzaId":{"type":"string","description":"Pizza id or name."},"quantity":{"type":"integer","minimum":1},"size":{"type":"string"},"crust":{"type":"string"},"toppings":{"type":"array","items":{"type":"string"}},"notes":{"type":"string"},"useDraft":{"type":"boolean","description":"If true, use the current draft customization for this pizza."}},"required":["pizzaId"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"view_cart","kind":"answer","impl":"imperative","description":"Return cart lines, quantities, and totals.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"edit_cart_item","kind":"act","impl":"imperative","description":"Change quantity or customization on a cart line.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"cartItemId":{"type":"string"},"quantity":{"type":"integer","minimum":1},"size":{"type":"string"},"crust":{"type":"string"},"toppings":{"type":"array","items":{"type":"string"}},"notes":{"type":"string"}},"required":["cartItemId"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"remove_from_cart","kind":"act","impl":"imperative","description":"Remove a cart line by cartItemId.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"cartItemId":{"type":"string"}},"required":["cartItemId"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"navigate","kind":"act","impl":"imperative","description":"Navigate to menu, cart, pizza detail (pizzaId required), or customize screen (pizzaId required).","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"page":{"type":"string","enum":["menu","cart","detail","customize","home"]},"pizzaId":{"type":"string","description":"Required for detail and customize."}},"required":["page"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"list_options","kind":"answer","impl":"imperative","description":"List available sizes, crusts, and toppings for customization.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]}],"category":"Commerce","apiSurface":"spec","toolCount":12}}