{"ok":true,"site":{"host":"cloud-kitchen-os-ai.vercel.app","url":"https://cloud-kitchen-os-ai.vercel.app/cloud-kitchen-os","type":"live","desc":"AI-agent operating system for a multi-brand cloud kitchen (demo).","tools":[{"name":"navigate_to","kind":"act","impl":"imperative","description":"Open a page of the app so the user can see it. Use when the user asks to see or go somewhere, or before explaining something on screen.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"page":{"type":"string","enum":["/","/orders","/sales","/menu","/inventory","/billing","/marketing","/finance","/customers","/staff","/settings"],"description":"Route of the page"}},"required":["page"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cloud-kitchen-os","pages":["/cloud-kitchen-os","/cloud-kitchen-os/orders","/cloud-kitchen-os/menu","/cloud-kitchen-os/inventory","/cloud-kitchen-os/sales","/cloud-kitchen-os/marketing"]},{"name":"get_kitchen_overview","kind":"answer","impl":"imperative","description":"Snapshot of today: revenue so far, order counts by status, low-stock count, overdue invoices, pending payouts, average rating, live campaigns.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cloud-kitchen-os","pages":["/cloud-kitchen-os","/cloud-kitchen-os/orders","/cloud-kitchen-os/menu","/cloud-kitchen-os/inventory","/cloud-kitchen-os/sales","/cloud-kitchen-os/marketing"]},{"name":"get_activity_log","kind":"answer","impl":"imperative","description":"Recent actions taken in the app by the user or the agent.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"limit":{"default":15,"type":"integer","minimum":1,"maximum":50}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cloud-kitchen-os","pages":["/cloud-kitchen-os","/cloud-kitchen-os/orders","/cloud-kitchen-os/menu","/cloud-kitchen-os/inventory","/cloud-kitchen-os/sales","/cloud-kitchen-os/marketing"]},{"name":"query_sales","kind":"answer","impl":"imperative","description":"Revenue, orders, average order value and food cost. Group by day, brand or channel; optionally filter by brand or channel.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"days":{"default":7,"type":"integer","minimum":1,"maximum":90},"groupBy":{"default":"day","type":"string","enum":["day","brand","channel"]},"brandId":{"type":"string","enum":["b-tandoor","b-bowl","b-crust"]},"channel":{"type":"string","enum":["dashbite","foodrun","direct"]}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cloud-kitchen-os","pages":["/cloud-kitchen-os","/cloud-kitchen-os/orders","/cloud-kitchen-os/menu","/cloud-kitchen-os/inventory","/cloud-kitchen-os/sales","/cloud-kitchen-os/marketing"]},{"name":"get_top_items","kind":"answer","impl":"imperative","description":"Best-selling menu items today by revenue, with quantity and gross margin.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"limit":{"default":8,"type":"integer","minimum":1,"maximum":20}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cloud-kitchen-os","pages":["/cloud-kitchen-os","/cloud-kitchen-os/orders","/cloud-kitchen-os/menu","/cloud-kitchen-os/inventory","/cloud-kitchen-os/sales","/cloud-kitchen-os/marketing"]},{"name":"list_orders","kind":"answer","impl":"imperative","description":"Today's orders, newest first. Filter by status or brand.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"status":{"type":"string","enum":["new","preparing","ready","dispatched","delivered","cancelled"]},"brandId":{"type":"string","enum":["b-tandoor","b-bowl","b-crust"]},"limit":{"default":15,"type":"integer","minimum":1,"maximum":50}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cloud-kitchen-os","pages":["/cloud-kitchen-os","/cloud-kitchen-os/orders","/cloud-kitchen-os/menu","/cloud-kitchen-os/inventory","/cloud-kitchen-os/sales","/cloud-kitchen-os/marketing"]},{"name":"update_order_status","kind":"act","impl":"imperative","description":"Move an order along the kitchen line (new -> preparing -> ready -> dispatched -> delivered).","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"order":{"type":"string","description":"Order id (o-12) or number (#4112)"},"status":{"type":"string","enum":["preparing","ready","dispatched","delivered"]},"visible":{"type":"boolean","description":"Optional. true = perform this on screen (navigate, fill the form, press the button) so the user can watch. false = do it silently in the background. Omit to follow the user's current preference."}},"required":["order","status"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cloud-kitchen-os","pages":["/cloud-kitchen-os","/cloud-kitchen-os/orders","/cloud-kitchen-os/menu","/cloud-kitchen-os/inventory","/cloud-kitchen-os/sales","/cloud-kitchen-os/marketing"]},{"name":"create_manual_order","kind":"transact","impl":"imperative","description":"Create a phone or walk-in order. All items must belong to the chosen brand; use list_menu for item ids.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"brandId":{"type":"string","minLength":1,"description":"Brand id"},"channel":{"default":"direct","type":"string","enum":["dashbite","foodrun","direct"]},"customerName":{"type":"string","minLength":2,"maxLength":60},"phone":{"type":"string","maxLength":20},"lines":{"minItems":1,"type":"array","items":{"type":"object","properties":{"itemId":{"type":"string","minLength":1,"description":"Menu item id"},"qty":{"type":"integer","minimum":1,"maximum":20}},"required":["itemId","qty"]}},"couponCode":{"type":"string","maxLength":20},"note":{"type":"string","maxLength":200},"visible":{"type":"boolean","description":"Optional. true = perform this on screen (navigate, fill the form, press the button) so the user can watch. false = do it silently in the background. Omit to follow the user's current preference."},"submit":{"type":"boolean","description":"Only for on-screen form actions. false = fill the form and leave it open for the user to review and submit themselves. Defaults to true."}},"required":["brandId","customerName","lines"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cloud-kitchen-os","pages":["/cloud-kitchen-os","/cloud-kitchen-os/orders","/cloud-kitchen-os/menu","/cloud-kitchen-os/inventory","/cloud-kitchen-os/sales","/cloud-kitchen-os/marketing"]},{"name":"refund_order","kind":"transact","impl":"imperative","description":"Cancel and refund an order. Always confirm with the user first; the app will also ask them.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"order":{"type":"string","description":"Order id or number"},"reason":{"type":"string","maxLength":120},"visible":{"type":"boolean","description":"Optional. true = perform this on screen (navigate, fill the form, press the button) so the user can watch. false = do it silently in the background. Omit to follow the user's current preference."}},"required":["order"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cloud-kitchen-os","pages":["/cloud-kitchen-os","/cloud-kitchen-os/orders","/cloud-kitchen-os/menu","/cloud-kitchen-os/inventory","/cloud-kitchen-os/sales","/cloud-kitchen-os/marketing"]},{"name":"list_menu","kind":"answer","impl":"imperative","description":"Menu items with id, brand, price, food cost, margin and availability.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"brandId":{"type":"string","enum":["b-tandoor","b-bowl","b-crust"]}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cloud-kitchen-os","pages":["/cloud-kitchen-os","/cloud-kitchen-os/orders","/cloud-kitchen-os/menu","/cloud-kitchen-os/inventory","/cloud-kitchen-os/sales","/cloud-kitchen-os/marketing"]},{"name":"add_menu_item","kind":"act","impl":"imperative","description":"Add a new item to a brand's menu.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"brandId":{"type":"string","minLength":1,"description":"Brand id"},"name":{"type":"string","minLength":2,"maxLength":60},"category":{"type":"string","minLength":2,"maxLength":30},"price":{"type":"number","exclusiveMinimum":0,"description":"Menu price incl. nothing else, in the kitchen currency"},"prepMins":{"default":10,"type":"integer","minimum":1,"maximum":60},"available":{"default":true,"type":"boolean"},"visible":{"type":"boolean","description":"Optional. true = perform this on screen (navigate, fill the form, press the button) so the user can watch. false = do it silently in the background. Omit to follow the user's current preference."},"submit":{"type":"boolean","description":"Only for on-screen form actions. false = fill the form and leave it open for the user to review and submit themselves. Defaults to true."}},"required":["brandId","name","category","price"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cloud-kitchen-os","pages":["/cloud-kitchen-os","/cloud-kitchen-os/orders","/cloud-kitchen-os/menu","/cloud-kitchen-os/inventory","/cloud-kitchen-os/sales","/cloud-kitchen-os/marketing"]},{"name":"set_item_price","kind":"act","impl":"imperative","description":"Change a menu item's price.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"itemId":{"type":"string","minLength":1,"description":"Menu item id"},"price":{"type":"number","exclusiveMinimum":0},"visible":{"type":"boolean","description":"Optional. true = perform this on screen (navigate, fill the form, press the button) so the user can watch. false = do it silently in the background. Omit to follow the user's current preference."}},"required":["itemId","price"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cloud-kitchen-os","pages":["/cloud-kitchen-os","/cloud-kitchen-os/orders","/cloud-kitchen-os/menu","/cloud-kitchen-os/inventory","/cloud-kitchen-os/sales","/cloud-kitchen-os/marketing"]},{"name":"set_item_availability","kind":"act","impl":"imperative","description":"Mark a menu item sold out (86) or available again.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"itemId":{"type":"string"},"available":{"type":"boolean"},"visible":{"type":"boolean","description":"Optional. true = perform this on screen (navigate, fill the form, press the button) so the user can watch. false = do it silently in the background. Omit to follow the user's current preference."}},"required":["itemId","available"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cloud-kitchen-os","pages":["/cloud-kitchen-os","/cloud-kitchen-os/orders","/cloud-kitchen-os/menu","/cloud-kitchen-os/inventory","/cloud-kitchen-os/sales","/cloud-kitchen-os/marketing"]},{"name":"list_inventory","kind":"answer","impl":"imperative","description":"Ingredients with stock, par level, unit, unit cost and default supplier.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"onlyLow":{"default":false,"description":"Only items under 60% of par","type":"boolean"},"category":{"type":"string","enum":["Produce","Dairy","Protein","Dry goods","Packaging","Sauces"]}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cloud-kitchen-os","pages":["/cloud-kitchen-os","/cloud-kitchen-os/orders","/cloud-kitchen-os/menu","/cloud-kitchen-os/inventory","/cloud-kitchen-os/sales","/cloud-kitchen-os/marketing"]},{"name":"list_suppliers","kind":"answer","impl":"imperative","description":"Suppliers with categories, lead time, rating and price factor (multiplier on base cost; lower is cheaper).","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"category":{"type":"string","enum":["Produce","Dairy","Protein","Dry goods","Packaging","Sauces"]}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cloud-kitchen-os","pages":["/cloud-kitchen-os","/cloud-kitchen-os/orders","/cloud-kitchen-os/menu","/cloud-kitchen-os/inventory","/cloud-kitchen-os/sales","/cloud-kitchen-os/marketing"]},{"name":"list_purchase_orders","kind":"answer","impl":"imperative","description":"Purchase orders with supplier, status, lines and total.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"status":{"type":"string","enum":["draft","sent","received","cancelled"]}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cloud-kitchen-os","pages":["/cloud-kitchen-os","/cloud-kitchen-os/orders","/cloud-kitchen-os/menu","/cloud-kitchen-os/inventory","/cloud-kitchen-os/sales","/cloud-kitchen-os/marketing"]},{"name":"create_purchase_order","kind":"transact","impl":"imperative","description":"Draft a purchase order to one supplier. Check list_suppliers first; a supplier should cover the ingredient's category. Use send_purchase_order afterwards if the user wants it sent.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"supplierId":{"type":"string","minLength":1,"description":"Supplier id, e.g. s-dairyco. Use list_suppliers to find one."},"lines":{"minItems":1,"type":"array","items":{"type":"object","properties":{"ingredientId":{"type":"string","minLength":1,"description":"Ingredient id"},"qty":{"type":"number","exclusiveMinimum":0,"description":"Quantity in the ingredient's unit"}},"required":["ingredientId","qty"]},"description":"Ingredients to order"},"expectedInDays":{"default":1,"description":"Days until delivery","type":"integer","minimum":0,"maximum":14},"notes":{"description":"Note for the supplier","type":"string","maxLength":240},"visible":{"type":"boolean","description":"Optional. true = perform this on screen (navigate, fill the form, press the button) so the user can watch. false = do it silently in the background. Omit to follow the user's current preference."},"submit":{"type":"boolean","description":"Only for on-screen form actions. false = fill the form and leave it open for the user to review and submit themselves. Defaults to true."}},"required":["supplierId","lines"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cloud-kitchen-os","pages":["/cloud-kitchen-os","/cloud-kitchen-os/orders","/cloud-kitchen-os/menu","/cloud-kitchen-os/inventory","/cloud-kitchen-os/sales","/cloud-kitchen-os/marketing"]},{"name":"send_purchase_order","kind":"transact","impl":"imperative","description":"Send a draft purchase order to its supplier.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"po":{"type":"string","description":"PO id or number, e.g. PO-1022"},"visible":{"type":"boolean","description":"Optional. true = perform this on screen (navigate, fill the form, press the button) so the user can watch. false = do it silently in the background. Omit to follow the user's current preference."}},"required":["po"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cloud-kitchen-os","pages":["/cloud-kitchen-os","/cloud-kitchen-os/orders","/cloud-kitchen-os/menu","/cloud-kitchen-os/inventory","/cloud-kitchen-os/sales","/cloud-kitchen-os/marketing"]},{"name":"receive_purchase_order","kind":"transact","impl":"imperative","description":"Mark a purchase order as delivered; adds its quantities to stock.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"po":{"type":"string"},"visible":{"type":"boolean","description":"Optional. true = perform this on screen (navigate, fill the form, press the button) so the user can watch. false = do it silently in the background. Omit to follow the user's current preference."}},"required":["po"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cloud-kitchen-os","pages":["/cloud-kitchen-os","/cloud-kitchen-os/orders","/cloud-kitchen-os/menu","/cloud-kitchen-os/inventory","/cloud-kitchen-os/sales","/cloud-kitchen-os/marketing"]},{"name":"log_waste","kind":"act","impl":"imperative","description":"Record wasted stock; it is deducted from inventory.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"ingredientId":{"type":"string","minLength":1,"description":"Ingredient id"},"qty":{"type":"number","exclusiveMinimum":0},"reason":{"type":"string","enum":["Expired","Spoiled","Overproduced","Dropped","Returned"]},"visible":{"type":"boolean","description":"Optional. true = perform this on screen (navigate, fill the form, press the button) so the user can watch. false = do it silently in the background. Omit to follow the user's current preference."},"submit":{"type":"boolean","description":"Only for on-screen form actions. false = fill the form and leave it open for the user to review and submit themselves. Defaults to true."}},"required":["ingredientId","qty","reason"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cloud-kitchen-os","pages":["/cloud-kitchen-os","/cloud-kitchen-os/orders","/cloud-kitchen-os/menu","/cloud-kitchen-os/inventory","/cloud-kitchen-os/sales","/cloud-kitchen-os/marketing"]},{"name":"adjust_stock","kind":"act","impl":"imperative","description":"Set an ingredient's stock to a counted value.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"ingredientId":{"type":"string","minLength":1,"description":"Ingredient id"},"stock":{"type":"number","minimum":0,"description":"New counted stock level"},"reason":{"type":"string","maxLength":120},"visible":{"type":"boolean","description":"Optional. true = perform this on screen (navigate, fill the form, press the button) so the user can watch. false = do it silently in the background. Omit to follow the user's current preference."}},"required":["ingredientId","stock"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cloud-kitchen-os","pages":["/cloud-kitchen-os","/cloud-kitchen-os/orders","/cloud-kitchen-os/menu","/cloud-kitchen-os/inventory","/cloud-kitchen-os/sales","/cloud-kitchen-os/marketing"]},{"name":"list_waste","kind":"answer","impl":"imperative","description":"Recent waste entries with cost.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cloud-kitchen-os","pages":["/cloud-kitchen-os","/cloud-kitchen-os/orders","/cloud-kitchen-os/menu","/cloud-kitchen-os/inventory","/cloud-kitchen-os/sales","/cloud-kitchen-os/marketing"]},{"name":"list_invoices","kind":"answer","impl":"imperative","description":"Catering and corporate invoices with totals and status.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"status":{"type":"string","enum":["draft","sent","paid","overdue"]}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cloud-kitchen-os","pages":["/cloud-kitchen-os","/cloud-kitchen-os/orders","/cloud-kitchen-os/menu","/cloud-kitchen-os/inventory","/cloud-kitchen-os/sales","/cloud-kitchen-os/marketing"]},{"name":"create_invoice","kind":"transact","impl":"imperative","description":"Create and send an invoice to a catering or corporate client.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"client":{"type":"string","minLength":2,"maxLength":80},"email":{"type":"string","format":"email","pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"lines":{"minItems":1,"type":"array","items":{"type":"object","properties":{"description":{"type":"string","minLength":2,"maxLength":120},"qty":{"type":"number","exclusiveMinimum":0},"rate":{"type":"number","exclusiveMinimum":0}},"required":["description","qty","rate"]}},"taxPct":{"default":5,"type":"number","minimum":0,"maximum":28},"dueInDays":{"default":15,"type":"integer","minimum":0,"maximum":90},"visible":{"type":"boolean","description":"Optional. true = perform this on screen (navigate, fill the form, press the button) so the user can watch. false = do it silently in the background. Omit to follow the user's current preference."},"submit":{"type":"boolean","description":"Only for on-screen form actions. false = fill the form and leave it open for the user to review and submit themselves. Defaults to true."}},"required":["client","email","lines"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cloud-kitchen-os","pages":["/cloud-kitchen-os","/cloud-kitchen-os/orders","/cloud-kitchen-os/menu","/cloud-kitchen-os/inventory","/cloud-kitchen-os/sales","/cloud-kitchen-os/marketing"]},{"name":"mark_invoice_paid","kind":"act","impl":"imperative","description":"Record payment for an invoice.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"invoice":{"type":"string","description":"Invoice id or number"},"visible":{"type":"boolean","description":"Optional. true = perform this on screen (navigate, fill the form, press the button) so the user can watch. false = do it silently in the background. Omit to follow the user's current preference."}},"required":["invoice"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cloud-kitchen-os","pages":["/cloud-kitchen-os","/cloud-kitchen-os/orders","/cloud-kitchen-os/menu","/cloud-kitchen-os/inventory","/cloud-kitchen-os/sales","/cloud-kitchen-os/marketing"]},{"name":"list_payouts","kind":"answer","impl":"imperative","description":"Weekly DashBite and FoodRun payouts: gross, commission, adjustments, net, status and notes. Commission rates: DashBite 24%, FoodRun 21%.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"status":{"type":"string","enum":["pending","reconciled","disputed"]}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cloud-kitchen-os","pages":["/cloud-kitchen-os","/cloud-kitchen-os/orders","/cloud-kitchen-os/menu","/cloud-kitchen-os/inventory","/cloud-kitchen-os/sales","/cloud-kitchen-os/marketing"]},{"name":"set_payout_status","kind":"act","impl":"imperative","description":"Mark a payout reconciled, or raise a dispute with a note.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"payoutId":{"type":"string"},"status":{"type":"string","enum":["reconciled","disputed","pending"]},"note":{"type":"string","maxLength":200},"visible":{"type":"boolean","description":"Optional. true = perform this on screen (navigate, fill the form, press the button) so the user can watch. false = do it silently in the background. Omit to follow the user's current preference."}},"required":["payoutId","status"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cloud-kitchen-os","pages":["/cloud-kitchen-os","/cloud-kitchen-os/orders","/cloud-kitchen-os/menu","/cloud-kitchen-os/inventory","/cloud-kitchen-os/sales","/cloud-kitchen-os/marketing"]},{"name":"get_pnl","kind":"answer","impl":"imperative","description":"Month-to-date profit and loss: revenue, food cost, aggregator commissions, labour, rent, marketing, other, net; plus budget vs actual by category.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"month":{"description":"YYYY-MM, defaults to this month","type":"string","pattern":"^\\d{4}-\\d{2}$"}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cloud-kitchen-os","pages":["/cloud-kitchen-os","/cloud-kitchen-os/orders","/cloud-kitchen-os/menu","/cloud-kitchen-os/inventory","/cloud-kitchen-os/sales","/cloud-kitchen-os/marketing"]},{"name":"list_expenses","kind":"answer","impl":"imperative","description":"Recorded expenses, newest first.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"category":{"type":"string","enum":["Rent","Utilities","Salaries","Marketing","Packaging","Maintenance","Software","Other"]},"limit":{"default":20,"type":"integer","minimum":1,"maximum":50}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cloud-kitchen-os","pages":["/cloud-kitchen-os","/cloud-kitchen-os/orders","/cloud-kitchen-os/menu","/cloud-kitchen-os/inventory","/cloud-kitchen-os/sales","/cloud-kitchen-os/marketing"]},{"name":"add_expense","kind":"act","impl":"imperative","description":"Record an expense.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"category":{"type":"string","enum":["Rent","Utilities","Salaries","Marketing","Packaging","Maintenance","Software","Other"]},"amount":{"type":"number","exclusiveMinimum":0},"vendor":{"type":"string","minLength":2,"maxLength":80},"date":{"description":"YYYY-MM-DD, defaults to today","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"note":{"type":"string","maxLength":200},"visible":{"type":"boolean","description":"Optional. true = perform this on screen (navigate, fill the form, press the button) so the user can watch. false = do it silently in the background. Omit to follow the user's current preference."},"submit":{"type":"boolean","description":"Only for on-screen form actions. false = fill the form and leave it open for the user to review and submit themselves. Defaults to true."}},"required":["category","amount","vendor"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cloud-kitchen-os","pages":["/cloud-kitchen-os","/cloud-kitchen-os/orders","/cloud-kitchen-os/menu","/cloud-kitchen-os/inventory","/cloud-kitchen-os/sales","/cloud-kitchen-os/marketing"]},{"name":"set_budget","kind":"act","impl":"imperative","description":"Set a monthly budget for an expense category.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"category":{"type":"string","enum":["Rent","Utilities","Salaries","Marketing","Packaging","Maintenance","Software","Other"]},"monthly":{"type":"number","minimum":0},"visible":{"type":"boolean","description":"Optional. true = perform this on screen (navigate, fill the form, press the button) so the user can watch. false = do it silently in the background. Omit to follow the user's current preference."}},"required":["category","monthly"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cloud-kitchen-os","pages":["/cloud-kitchen-os","/cloud-kitchen-os/orders","/cloud-kitchen-os/menu","/cloud-kitchen-os/inventory","/cloud-kitchen-os/sales","/cloud-kitchen-os/marketing"]},{"name":"list_campaigns","kind":"answer","impl":"imperative","description":"Marketing campaigns with budget, spend, impressions, attributed orders and status.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cloud-kitchen-os","pages":["/cloud-kitchen-os","/cloud-kitchen-os/orders","/cloud-kitchen-os/menu","/cloud-kitchen-os/inventory","/cloud-kitchen-os/sales","/cloud-kitchen-os/marketing"]},{"name":"create_campaign","kind":"act","impl":"imperative","description":"Create a campaign. Starts live if startInDays is 0, otherwise scheduled.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"name":{"type":"string","minLength":3,"maxLength":60},"brandId":{"type":"string","minLength":1,"description":"Brand id"},"channel":{"type":"string","enum":["dashbite","foodrun","direct","instagram","sms"]},"budget":{"type":"number","exclusiveMinimum":0},"startInDays":{"default":0,"type":"integer","minimum":0,"maximum":60},"durationDays":{"default":14,"type":"integer","minimum":1,"maximum":90},"couponCode":{"description":"Optional existing coupon to attach","type":"string","maxLength":20},"visible":{"type":"boolean","description":"Optional. true = perform this on screen (navigate, fill the form, press the button) so the user can watch. false = do it silently in the background. Omit to follow the user's current preference."},"submit":{"type":"boolean","description":"Only for on-screen form actions. false = fill the form and leave it open for the user to review and submit themselves. Defaults to true."}},"required":["name","brandId","channel","budget"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cloud-kitchen-os","pages":["/cloud-kitchen-os","/cloud-kitchen-os/orders","/cloud-kitchen-os/menu","/cloud-kitchen-os/inventory","/cloud-kitchen-os/sales","/cloud-kitchen-os/marketing"]},{"name":"set_campaign_status","kind":"act","impl":"imperative","description":"Pause, resume (live) or end a campaign.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"campaignId":{"type":"string"},"status":{"type":"string","enum":["live","paused","ended"]},"visible":{"type":"boolean","description":"Optional. true = perform this on screen (navigate, fill the form, press the button) so the user can watch. false = do it silently in the background. Omit to follow the user's current preference."}},"required":["campaignId","status"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cloud-kitchen-os","pages":["/cloud-kitchen-os","/cloud-kitchen-os/orders","/cloud-kitchen-os/menu","/cloud-kitchen-os/inventory","/cloud-kitchen-os/sales","/cloud-kitchen-os/marketing"]},{"name":"list_coupons","kind":"answer","impl":"imperative","description":"Coupon codes with discount, minimum order, brand, validity and usage.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cloud-kitchen-os","pages":["/cloud-kitchen-os","/cloud-kitchen-os/orders","/cloud-kitchen-os/menu","/cloud-kitchen-os/inventory","/cloud-kitchen-os/sales","/cloud-kitchen-os/marketing"]},{"name":"create_coupon","kind":"act","impl":"imperative","description":"Create a coupon code. Code must be capital letters and digits.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"code":{"type":"string","minLength":3,"maxLength":20,"pattern":"^[A-Z0-9]+$"},"discountPct":{"type":"number","minimum":1,"maximum":60},"minOrder":{"default":0,"type":"number","minimum":0},"brandId":{"default":"all","description":"Brand id or 'all'","type":"string"},"validDays":{"default":30,"type":"integer","minimum":1,"maximum":180},"visible":{"type":"boolean","description":"Optional. true = perform this on screen (navigate, fill the form, press the button) so the user can watch. false = do it silently in the background. Omit to follow the user's current preference."},"submit":{"type":"boolean","description":"Only for on-screen form actions. false = fill the form and leave it open for the user to review and submit themselves. Defaults to true."}},"required":["code","discountPct"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cloud-kitchen-os","pages":["/cloud-kitchen-os","/cloud-kitchen-os/orders","/cloud-kitchen-os/menu","/cloud-kitchen-os/inventory","/cloud-kitchen-os/sales","/cloud-kitchen-os/marketing"]},{"name":"toggle_coupon","kind":"act","impl":"imperative","description":"Activate or pause a coupon.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"coupon":{"type":"string","description":"Coupon id or code"},"active":{"type":"boolean"},"visible":{"type":"boolean","description":"Optional. true = perform this on screen (navigate, fill the form, press the button) so the user can watch. false = do it silently in the background. Omit to follow the user's current preference."}},"required":["coupon","active"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cloud-kitchen-os","pages":["/cloud-kitchen-os","/cloud-kitchen-os/orders","/cloud-kitchen-os/menu","/cloud-kitchen-os/inventory","/cloud-kitchen-os/sales","/cloud-kitchen-os/marketing"]},{"name":"list_reviews","kind":"answer","impl":"imperative","description":"Customer reviews from DashBite and FoodRun with rating, text, any reply, and Jev's topic and urgency tags (urgency 0 to 1). Sorted most urgent first.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"maxRating":{"type":"integer","minimum":1,"maximum":5},"unrepliedOnly":{"default":false,"type":"boolean"},"urgentOnly":{"default":false,"description":"Only reviews Jev tagged as needing a reply today","type":"boolean"}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cloud-kitchen-os","pages":["/cloud-kitchen-os","/cloud-kitchen-os/orders","/cloud-kitchen-os/menu","/cloud-kitchen-os/inventory","/cloud-kitchen-os/sales","/cloud-kitchen-os/marketing"]},{"name":"reply_to_review","kind":"transact","impl":"imperative","description":"Post a public reply to a review. Keep it short, specific and warm; apologise and offer a fix for complaints.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"reviewId":{"type":"string","minLength":1,"description":"Review id"},"reply":{"type":"string","minLength":5,"maxLength":500},"visible":{"type":"boolean","description":"Optional. true = perform this on screen (navigate, fill the form, press the button) so the user can watch. false = do it silently in the background. Omit to follow the user's current preference."},"submit":{"type":"boolean","description":"Only for on-screen form actions. false = fill the form and leave it open for the user to review and submit themselves. Defaults to true."}},"required":["reviewId","reply"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cloud-kitchen-os","pages":["/cloud-kitchen-os","/cloud-kitchen-os/orders","/cloud-kitchen-os/menu","/cloud-kitchen-os/inventory","/cloud-kitchen-os/sales","/cloud-kitchen-os/marketing"]},{"name":"list_customers","kind":"answer","impl":"imperative","description":"Customers with orders, lifetime value, last order date, tags and notes.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"search":{"description":"Name contains","type":"string"},"tag":{"type":"string"},"sort":{"default":"ltv","type":"string","enum":["ltv","recent","lapsed"]},"limit":{"default":10,"type":"integer","minimum":1,"maximum":50}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cloud-kitchen-os","pages":["/cloud-kitchen-os","/cloud-kitchen-os/orders","/cloud-kitchen-os/menu","/cloud-kitchen-os/inventory","/cloud-kitchen-os/sales","/cloud-kitchen-os/marketing"]},{"name":"annotate_customer","kind":"act","impl":"imperative","description":"Add a note and/or tag to a customer.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"customerId":{"type":"string","minLength":1,"description":"Customer id"},"note":{"type":"string","minLength":2,"maxLength":200},"tag":{"type":"string","minLength":2,"maxLength":24},"visible":{"type":"boolean","description":"Optional. true = perform this on screen (navigate, fill the form, press the button) so the user can watch. false = do it silently in the background. Omit to follow the user's current preference."}},"required":["customerId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cloud-kitchen-os","pages":["/cloud-kitchen-os","/cloud-kitchen-os/orders","/cloud-kitchen-os/menu","/cloud-kitchen-os/inventory","/cloud-kitchen-os/sales","/cloud-kitchen-os/marketing"]},{"name":"list_staff_schedule","kind":"answer","impl":"imperative","description":"Staff (id, name, role, hourly rate) and their shifts for the next 7 days. Optionally filter one date.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cloud-kitchen-os","pages":["/cloud-kitchen-os","/cloud-kitchen-os/orders","/cloud-kitchen-os/menu","/cloud-kitchen-os/inventory","/cloud-kitchen-os/sales","/cloud-kitchen-os/marketing"]},{"name":"add_shift","kind":"act","impl":"imperative","description":"Add a shift for a staff member.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"staffId":{"type":"string","minLength":1,"description":"Staff member id"},"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"YYYY-MM-DD"},"start":{"type":"string","pattern":"^\\d{2}:\\d{2}$","description":"HH:MM 24h"},"end":{"type":"string","pattern":"^\\d{2}:\\d{2}$","description":"HH:MM 24h"},"visible":{"type":"boolean","description":"Optional. true = perform this on screen (navigate, fill the form, press the button) so the user can watch. false = do it silently in the background. Omit to follow the user's current preference."},"submit":{"type":"boolean","description":"Only for on-screen form actions. false = fill the form and leave it open for the user to review and submit themselves. Defaults to true."}},"required":["staffId","date","start","end"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cloud-kitchen-os","pages":["/cloud-kitchen-os","/cloud-kitchen-os/orders","/cloud-kitchen-os/menu","/cloud-kitchen-os/inventory","/cloud-kitchen-os/sales","/cloud-kitchen-os/marketing"]},{"name":"remove_shift","kind":"act","impl":"imperative","description":"Delete a scheduled shift.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"shiftId":{"type":"string"},"visible":{"type":"boolean","description":"Optional. true = perform this on screen (navigate, fill the form, press the button) so the user can watch. false = do it silently in the background. Omit to follow the user's current preference."}},"required":["shiftId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cloud-kitchen-os","pages":["/cloud-kitchen-os","/cloud-kitchen-os/orders","/cloud-kitchen-os/menu","/cloud-kitchen-os/inventory","/cloud-kitchen-os/sales","/cloud-kitchen-os/marketing"]},{"name":"set_theme","kind":"act","impl":"imperative","description":"Switch the app between light, dark and system theme.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"theme":{"type":"string","enum":["light","dark","system"]},"visible":{"type":"boolean","description":"Optional. true = perform this on screen (navigate, fill the form, press the button) so the user can watch. false = do it silently in the background. Omit to follow the user's current preference."}},"required":["theme"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cloud-kitchen-os","pages":["/cloud-kitchen-os","/cloud-kitchen-os/orders","/cloud-kitchen-os/menu","/cloud-kitchen-os/inventory","/cloud-kitchen-os/sales","/cloud-kitchen-os/marketing"]}],"category":"Productivity & Business","favicon":"/favicons/cloud-kitchen-os-ai.vercel.app.svg","apiSurface":"spec","toolCount":45}}