{"ok":true,"site":{"host":"abhijitdengale.github.io","url":"https://abhijitdengale.github.io/WebPoint/","type":"live","desc":"Waypoint — a collaborative trip itinerary planner where your AI agent works inside the page via WebMCP.","tools":[{"name":"get_itinerary","kind":"answer","impl":"imperative","description":"Get the FULL current trip itinerary: every day's ordered activities (times, durations, costs, categories, notes, which ones the human locked), schedule conflicts, and budget status. Call this first to understand the trip before making changes.","inputSchema":{"type":"object","properties":{},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/WebPoint/"},{"name":"add_activities","kind":"act","impl":"imperative","description":"Add one or more activities to the trip. The human sees them appear on their board instantly. Returns the updated day schedules, any NEW time conflicts your additions created, and the budget impact so you can self-correct. Agents cannot lock activities.","inputSchema":{"type":"object","properties":{"activities":{"type":"array","description":"1–8 activities to add.","items":{"type":"object","properties":{"tripDayId":{"type":"string","description":"Target day id (see get_itinerary → days[].tripDayId)."},"title":{"type":"string","description":"Short display title, e.g. 'Belém Tower'."},"startTime":{"type":"string","description":"Start time, 24-hour \"HH:MM\" format, e.g. \"14:30\"."},"durationMin":{"type":"number","description":"Duration in minutes (15–720). Default 60."},"cost":{"type":"number","description":"Estimated per-person cost. Default 0."},"category":{"type":"string","description":"One of: sight, food, nature, transport, shopping, other."},"notes":{"type":"string","description":"Short helpful note shown on the card."}},"required":["tripDayId","title","startTime"]}}},"required":["activities"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/WebPoint/"},{"name":"update_activity","kind":"act","impl":"imperative","description":"Update an existing activity's title, startTime, durationMin, cost, category or notes. Returns the updated day schedule, remaining conflicts and budget so you can verify your fix. Changing an activity's locked state is refused — that is a human-only control.","inputSchema":{"type":"object","properties":{"activityId":{"type":"string","description":"Id of the activity (from get_itinerary)."},"title":{"type":"string","description":"New title."},"startTime":{"type":"string","description":"New start time, 24-hour \"HH:MM\" format, e.g. \"14:30\"."},"durationMin":{"type":"number","description":"New duration in minutes (15–720)."},"cost":{"type":"number","description":"New estimated cost."},"category":{"type":"string","description":"One of: sight, food, nature, transport, shopping, other."},"notes":{"type":"string","description":"New note."}},"required":["activityId"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/WebPoint/"},{"name":"remove_activity","kind":"act","impl":"imperative","description":"Remove an activity from the itinerary (e.g. to cut costs or resolve a conflict). Returns the updated schedule, remaining conflicts and freed-up budget.","inputSchema":{"type":"object","properties":{"activityId":{"type":"string","description":"Id of the activity to remove (from get_itinerary)."}},"required":["activityId"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/WebPoint/"},{"name":"reorder_day","kind":"act","impl":"imperative","description":"Set the full activity order for one day (e.g. to group activities geographically). You must pass EVERY activity id of that day exactly once. IMPORTANT: activities the human locked with 🔒 are hard constraints — this tool REFUSES and explains if a locked item would move. Plan around locked items.","inputSchema":{"type":"object","properties":{"tripDayId":{"type":"string","description":"Target day id (see get_itinerary → days[].tripDayId)."},"orderedActivityIds":{"type":"array","description":"All activity ids for the day, in the desired visiting order.","items":{"type":"string"}}},"required":["tripDayId","orderedActivityIds"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/WebPoint/"},{"name":"find_conflicts","kind":"answer","impl":"imperative","description":"Run the app's deterministic schedule audit: returns every pair of overlapping activities in a day plus budget overage. Use it after changes, or when the human asks 'does everything fit?'. Fix reported conflicts with update_activity / remove_activity.","inputSchema":{"type":"object","properties":{},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/WebPoint/"},{"name":"get_budget_summary","kind":"answer","impl":"imperative","description":"Get the trip budget breakdown: total planned spend vs budget, remaining amount, per-day totals and spend by category. Use it when the human asks about money or before adding expensive activities.","inputSchema":{"type":"object","properties":{},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/WebPoint/"},{"name":"set_trip_budget","kind":"act","impl":"imperative","description":"Change the trip's total budget — the human sees the change instantly on their budget bar. Only use it when the human agrees, and ALWAYS include a short reason (shown to them). Returns the new budget status so you can confirm whether planned spend now fits.","inputSchema":{"type":"object","properties":{"budget":{"type":"number","description":"New total budget amount (positive number)."},"reason":{"type":"string","description":"Short reason for the change, shown to the human."}},"required":["budget"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/WebPoint/"},{"name":"set_trip_budget","kind":"act","impl":"declarative","description":"Update the total trip budget in EUR. The human sees the change instantly on their budget bar — always include a short reason, and confirm with the human before large changes.","inputSchema":{"type":"object","properties":{"budget":{"type":"number"},"reason":{"type":"string","description":"Reason (e.g. adding a Sintra day trip)"}}},"__source":"spec","__declarative":true,"page":"/WebPoint/"}],"category":"Travel & Events","favicon":"/favicons/abhijitdengale.github.io.svg","apiSurface":"spec","toolCount":9}}