apply_seating_plan
Apply a coordinated multi-guest seating plan atomically after reasoning over the whole wedding. Use this for broad clustering or cascading reshuffles; use move_guest for one surgical change and swap_guests for two…
assignments: array, reason: string
find_guest
Resolve a person’s name or partial name to stable guest ids. Returns compact disambiguation data only.
query: string
focus_on_entity
Connect semantic state back to the human viewport by smoothly focusing a guest, table, or venue object after reasoning or edits.
type: string, id: string
get_guest_context
Understand the social and seating meaning of one or more guests, including persona, relationships, hard constraints, tablemates, and exact seats.
guestIds: array
get_guests
Retrieve a set of guests by group, dietary need, persona text, or seating status. Use this for requests such as all vegetarians, grandparents, college friends, or unseated guests; use find_guest for a named person.
groupTag: string?, dietaryIncludes: string?, personaIncludes: string?, seatingStatus: string?, limit: number?
get_room_layout
Understand the complete spatial world beyond the viewport. Returns every table and venue object with bounds and guest ids, but not full guest records.
get_seating_summary
Understand the wedding at a glance. Returns compressed counts, cohorts, dietary needs, active planning intentions, capacity, and current validation—not full guest records.
get_table_context
Understand one or more tables: occupancy, exact guests and seats, group and dietary composition, lock state, coordinates, and nearby venue objects.
tableIds: array
list_seating_rules
Read the user’s saved seating intentions before adding, changing, or removing one. Returns original wording, the agent’s structured interpretation, live evaluation, provenance, and revision tokens needed for safe…
activeOnly: boolean?
move_guest
Make one atomic seating change: seat, reseat, unseat, or place a guest in an exact seat. Use targetTableId "unseated" for the tray. Returns a change id; review all ids after a multi-step request.
guestId: string, targetTableId: string, seatIndex: number?, reason: string
remove_seating_rule
Remove one saved seating intention. Call list_seating_rules first and pass the exact expectedRevision so a stale request cannot delete a newer rule. Returns a change id for review_changes.
ruleId: string, expectedRevision: number, reason: string
review_changes
Post-action verification. After completing a multi-step modification, call this with every returned change id before telling the user it is done. Returns an exact structured delta, affected tables, current validation…
changeIds: array
save_seating_rule
Create one reusable seating intention or update one previously saved rule. Call list_seating_rules first when editing, preserve the user’s original wording, explain your interpretation, and pass its expectedRevision…
ruleId: string, originalInstruction: string, label: string, interpretation: string, kind: string, priority: string, active: boolean?, selector: object?, tableIds: array?, objectId: string?, targetTableCount: number?, minimumCoverage: number?, minimumDistance: number?, expectedRevision: number?, reason: string
swap_guests
Atomically swap two seated guests without an over-capacity intermediate state. If both are at the same table, swaps their exact seats. Returns one change id for the atomic operation; review it before reporting…
guestAId: string, guestBId: string, reason: string
update_guest_info
Change facts, preferences, and relationships about one guest; never changes seating. Avoid and neighboring-table constraints are synchronized to both guests. Use move_guest or swap_guests for placements. Returns a…
guestId: string, patch: object, reason: string
validate_seating
Verify the entire live plan against hard capacity and relationship constraints plus active wedding-wide planning preferences. Use before review_changes when completing coordinated edits.