{"ok":true,"site":{"host":"guptachetan1995.github.io","url":"https://guptachetan1995.github.io/tablemap/","type":"live","desc":"Tablemap","tools":[{"name":"list_plan","kind":"answer","impl":"imperative","description":"Read the whole seating plan: every table with its guests and capacity, everyone not yet seated, all seating rules, and any conflicts. Call this first to understand the current state.","annotations":{"readOnlyHint":true,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/tablemap/"},{"name":"add_guest","kind":"act","impl":"imperative","description":"Add a person to the guest list. They start unseated.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"Full name of the guest"},"tag":{"type":"string","description":"Optional group label, such as family, work, or college"}},"required":["name"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/tablemap/"},{"name":"add_table","kind":"act","impl":"imperative","description":"Add a table to the floor plan.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"label":{"type":"string","description":"Name of the table, such as Rosewood"},"capacity":{"type":"number","description":"How many people it seats"}},"required":["label","capacity"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/tablemap/"},{"name":"seat_guest","kind":"act","impl":"imperative","description":"Seat a guest at a table, moving them if they are already seated elsewhere. Seating someone does not silently fix rule conflicts — check list_plan afterwards.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"guest":{"type":"string","description":"Guest name"},"table":{"type":"string","description":"Table name"}},"required":["guest","table"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/tablemap/"},{"name":"unseat_guest","kind":"act","impl":"imperative","description":"Take a guest out of their seat and return them to the unseated list.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"guest":{"type":"string","description":"Guest name"}},"required":["guest"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/tablemap/"},{"name":"add_rule","kind":"act","impl":"imperative","description":"Record a seating rule: two people must sit together, or must be kept apart. Rules are checked continuously and shown to the host.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"type":{"type":"string","enum":["together","apart"],"description":"together or apart"},"guest_a":{"type":"string","description":"First guest name"},"guest_b":{"type":"string","description":"Second guest name"},"note":{"type":"string","description":"Short reason shown to the host, such as 'married'"}},"required":["type","guest_a","guest_b"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/tablemap/"},{"name":"auto_seat","kind":"act","impl":"imperative","description":"Seat everyone from scratch, honouring every 'together' and 'apart' rule and table capacities. Clears the current arrangement first.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/tablemap/"},{"name":"find_conflicts","kind":"answer","impl":"imperative","description":"List every broken seating rule and every over-capacity table right now.","annotations":{"readOnlyHint":true,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/tablemap/"},{"name":"dietary_summary","kind":"answer","impl":"imperative","description":"Read-only, for the caterer: counts guests carrying a dietary tag (vegetarian, vegan, gluten-free, or an allergy) at each table, naming who they are, plus any dietary guest not yet seated. Changes nothing.","annotations":{"readOnlyHint":true,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/tablemap/"},{"name":"export_plan","kind":"answer","impl":"imperative","description":"Read-only. Returns the whole seating plan as CSV — header row 'guest,table,seat_order', then one row per guest with their name, the table they're seated at (blank if not yet seated), and their 1-based seat order within that table (blank if not seated). Guest names containing a comma, quote, or newline are CSV-quoted. This string result is the exportable artifact — there is no file download.","annotations":{"readOnlyHint":true,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/tablemap/"},{"name":"focus_guest","kind":"act","impl":"imperative","description":"Highlight a guest on the host's screen so they can see who you are talking about. Use this while explaining a change.","annotations":{"readOnlyHint":true,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"guest":{"type":"string","description":"Guest name"}},"required":["guest"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/tablemap/"},{"name":"propose_seating","kind":"act","impl":"imperative","description":"Compute a full re-seating from scratch, honouring every rule and table capacity, without changing anything. Returns every guest's current table and the proposed table, plus any rule the proposal still cannot satisfy. Call apply_seating to commit it — that tool exists only while this proposal is pending, and any seating change (a drag, seat_guest, unseat_guest, auto_seat, or Clear seats — by you or the agent) discards it.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/tablemap/"}],"apiSurface":"spec","category":"Travel & Events","toolCount":12}}