{"ok":true,"site":{"host":"quoterail-two.vercel.app","url":"https://quoterail-two.vercel.app/","type":"live","desc":"AI-agent first booking hall, now in your city. Open Mosaic in ChatGPT. Mosaic Events, Indiranagar.","tools":[{"name":"get_merchant_profile","kind":"answer","impl":"imperative","description":"Public Mosaic Events Bengaluru profile, halls, and payment terms. Use site tools on this page. Do not invent HTTP GET/POST. Do not ask the human for an API token.","annotations":{"readOnlyHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/agent"]},{"name":"search_venue_services","kind":"answer","impl":"imperative","description":"Search Mosaic halls and services. Availability is advisory until acceptance.","annotations":{"readOnlyHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"query":{"type":"string","maxLength":120},"categories":{"type":"array","items":{"type":"string"},"maxItems":8},"capabilities":{"type":"array","items":{"type":"string"},"maxItems":12},"attendee_count":{"type":"integer","minimum":1},"requested_date":{"type":"string","description":"YYYY-MM-DD"}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/agent"]},{"name":"request_quote","kind":"act","impl":"imperative","description":"Submit a natural-language venue RFQ and receive priced packages. Stay on this page and keep using site tools. Do not POST to /api/enquire yourself.","annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"request":{"type":"string","minLength":1,"maxLength":4000,"description":"Natural-language event brief. Date, people, dinner, budget."}},"required":["request"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/agent"]},{"name":"continue_rfq","kind":"act","impl":"imperative","description":"Answer clarification questions or retry a recoverable RFQ. Not available after escalation.","annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"rfq_id":{"type":"string","description":"RFQ id from request_quote. Optional if this tab already quoted."},"answers":{"type":"string","maxLength":4000},"ticket":{"type":"string","minLength":64,"maxLength":64,"description":"Optional 64-character ticket Mosaic returned. This tab stores it after request_quote. Do not ask the human for a token."}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/agent"]},{"name":"get_rfq","kind":"answer","impl":"imperative","description":"Read RFQ status, options, and what to do next. Does not change state.","annotations":{"readOnlyHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"rfq_id":{"type":"string","description":"RFQ id from request_quote. Optional if this tab already quoted."},"ticket":{"type":"string","minLength":64,"maxLength":64,"description":"Optional 64-character ticket Mosaic returned. This tab stores it after request_quote. Do not ask the human for a token."}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/agent"]},{"name":"revise_quote","kind":"act","impl":"imperative","description":"Request a revision or counteroffer. Cannot set a checkout amount.","annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"quote_id":{"type":"string","description":"Quote to revise"},"request":{"type":"string","minLength":1,"maxLength":4000},"ticket":{"type":"string","minLength":64,"maxLength":64,"description":"Optional 64-character ticket Mosaic returned. This tab stores it after request_quote. Do not ask the human for a token."}},"required":["quote_id","request"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/agent"]},{"name":"accept_quote","kind":"transact","impl":"imperative","description":"Accept one offered quote and hold the hall for 24 hours. Does not create a Payment Link. Consequential: holds inventory.","annotations":{"readOnlyHint":false,"destructiveHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"quote_id":{"type":"string"},"buyer_name":{"type":"string","minLength":1,"maxLength":80},"buyer_email":{"type":"string","maxLength":120},"payment_term":{"type":"string","enum":["deposit","full"]},"confirmed":{"type":"boolean","description":"Must be true to accept and hold the hall"},"ticket":{"type":"string","minLength":64,"maxLength":64,"description":"Optional 64-character ticket Mosaic returned. This tab stores it after request_quote. Do not ask the human for a token."},"rfq_id":{"type":"string","description":"RFQ id from request_quote. Optional if this tab already quoted."}},"required":["quote_id","buyer_name","payment_term","confirmed"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/agent"]},{"name":"create_checkout","kind":"transact","impl":"imperative","description":"Create or reuse the Razorpay Payment Link for an accepted quote. No amount input. Give the human checkout_url. Never collect card details.","annotations":{"readOnlyHint":false,"destructiveHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"acceptance_id":{"type":"string"},"confirmed":{"type":"boolean","description":"Must be true to create the Razorpay Payment Link"},"ticket":{"type":"string","minLength":64,"maxLength":64,"description":"Optional 64-character ticket Mosaic returned. This tab stores it after request_quote. Do not ask the human for a token."},"rfq_id":{"type":"string","description":"RFQ id from request_quote. Optional if this tab already quoted."}},"required":["acceptance_id","confirmed"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/agent"]},{"name":"get_transaction_status","kind":"answer","impl":"imperative","description":"Read persisted payment status. Does not call Razorpay or mutate state.","annotations":{"readOnlyHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"acceptance_id":{"type":"string"},"payment_link_id":{"type":"string"},"ticket":{"type":"string","minLength":64,"maxLength":64,"description":"Optional 64-character ticket Mosaic returned. This tab stores it after request_quote. Do not ask the human for a token."}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/agent"]}],"category":"Travel & Events","favicon":"/favicons/quoterail-two.vercel.app.ico","apiSurface":"spec","toolCount":9}}