{"ok":true,"site":{"host":"buki-sandy.vercel.app","url":"https://buki-sandy.vercel.app/","type":"live","desc":"Buki turns free time into a real, walkable itinerary with nearby places tailored to your mood.","tools":[{"name":"replan_route","kind":"act","impl":"imperative","description":"Builds and displays a replacement route from the current origin and constraints, optionally filtered by category and search radius. The current route stays visible unless the replacement succeeds.","title":"Replan current route","annotations":{"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"kind":{"type":"string","enum":["food","culture","view"],"description":"Interest category."},"radiusMeters":{"type":"integer","minimum":100,"maximum":50000,"description":"Search radius in meters."}},"additionalProperties":false},"outputSchema":{"type":"object","properties":{"status":{"type":"string","enum":["ok","needs_clarification"]},"source":{"type":"string","enum":["google-maps"]},"itinerary":{"type":"object","properties":{"status":{"type":"string"},"title":{"type":"string"},"city":{"type":"string"},"source":{"type":"string"},"checkedAt":{"type":"string","format":"date-time"},"origin":{"type":["object","null"]},"totalWalkingMinutes":{"type":"integer"},"totalEstimatedMinutes":{"type":"integer"},"stops":{"type":"array","items":{"type":"object"}}},"required":["status","stops"],"additionalProperties":true},"message":{"type":"string"}},"required":["status"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"get_plan_place_snapshot","kind":"answer","impl":"imperative","description":"Returns the availability snapshot captured from Google Maps when the current plan was built. It does not perform a fresh Maps query.","title":"Get plan place snapshot","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"placeId":{"type":"string","description":"Stop identifier."}},"required":["placeId"],"additionalProperties":false},"outputSchema":{"type":"object","properties":{"status":{"type":"string","enum":["ok"]},"freshness":{"type":"string","enum":["plan_snapshot"]},"placeId":{"type":"string"},"name":{"type":"string"},"availability":{"type":"string","enum":["open","closed","unknown"]},"availabilityLabel":{"type":"string"},"capturedAt":{"type":"string","format":"date-time"}},"required":["status","freshness","placeId","name","availability","availabilityLabel","capturedAt"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"get_planned_leg","kind":"answer","impl":"imperative","description":"Returns the Google Maps walking leg already calculated for a stop in the current route. It does not calculate a route to arbitrary places.","title":"Get planned walking leg","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"toPlaceId":{"type":"string","description":"Leg destination."}},"required":["toPlaceId"],"additionalProperties":false},"outputSchema":{"type":"object","properties":{"status":{"type":"string","enum":["ok"]},"source":{"type":"string","enum":["google-maps-plan"]},"route":{"type":"object"}},"required":["status","source","route"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"get_itinerary","kind":"answer","impl":"imperative","description":"Reads the current route, its stops, statuses, times, and data source.","title":"Get current itinerary","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"outputSchema":{"type":"object","properties":{"status":{"type":"string"},"title":{"type":"string"},"city":{"type":"string"},"source":{"type":"string"},"checkedAt":{"type":"string","format":"date-time"},"origin":{"type":["object","null"]},"totalWalkingMinutes":{"type":"integer"},"totalEstimatedMinutes":{"type":"integer"},"stops":{"type":"array","items":{"type":"object"}}},"required":["status","stops"],"additionalProperties":true},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"plan_walk","kind":"act","impl":"imperative","description":"Uses the LLM to interpret a person’s intent. If duration or walking comfort is missing, returns the next question without querying Google Maps; otherwise builds and displays a real walking plan in Buki.","title":"Build a walking plan","annotations":{"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"intent":{"type":"string","description":"What the person wants to do."},"availableMinutes":{"type":"integer","minimum":30,"maximum":720,"description":"Total time the person has for the itinerary."},"maxWalkMinutes":{"type":"integer","minimum":5,"maximum":90,"description":"Maximum comfortable walking time for one leg."}},"required":["intent"],"additionalProperties":false},"outputSchema":{"type":"object","properties":{"status":{"type":"string","enum":["ok","needs_clarification"]},"intent":{"type":"string"},"explanation":{"type":"string"},"itinerary":{"type":"object","properties":{"status":{"type":"string"},"title":{"type":"string"},"city":{"type":"string"},"source":{"type":"string"},"checkedAt":{"type":"string","format":"date-time"},"origin":{"type":["object","null"]},"totalWalkingMinutes":{"type":"integer"},"totalEstimatedMinutes":{"type":"integer"},"stops":{"type":"array","items":{"type":"object"}}},"required":["status","stops"],"additionalProperties":true},"preferences":{"type":"object"},"nextQuestion":{"type":"string","enum":["duration","walking"]}},"required":["status","intent"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"focus_stop","kind":"act","impl":"imperative","description":"Moves the next-stop card to a specific stop in the route.","title":"Focus stop","annotations":{"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"stopId":{"type":"string","description":"Stop identifier."}},"required":["stopId"],"additionalProperties":false},"outputSchema":{"type":"object","properties":{"status":{"type":"string","enum":["ok"]},"focusedStopId":{"type":"string"},"name":{"type":"string"}},"required":["status","focusedStopId","name"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"set_origin","kind":"act","impl":"imperative","description":"Changes the plan origin to a real latitude and longitude selected by the person or agent.","title":"Set starting point","annotations":{"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"latitude":{"type":"number","minimum":-90,"maximum":90,"description":"Latitude of the selected starting point."},"longitude":{"type":"number","minimum":-180,"maximum":180,"description":"Longitude of the selected starting point."}},"required":["latitude","longitude"],"additionalProperties":false},"outputSchema":{"type":"object","properties":{"status":{"type":"string","enum":["ok"]},"origin":{"type":"object"},"previousPlanRemoved":{"type":"boolean"}},"required":["status","origin","previousPlanRemoved"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"update_intent","kind":"act","impl":"imperative","description":"Updates the intent text visible to the person without inventing a new plan.","title":"Update intent","inputSchema":{"type":"object","properties":{"intent":{"type":"string","description":"The person’s new intent."}},"required":["intent"],"additionalProperties":false},"outputSchema":{"type":"object","properties":{"status":{"type":"string","enum":["ok"]},"intent":{"type":"string"},"planUpdated":{"type":"boolean","const":false},"existingPlanPreserved":{"type":"boolean"}},"required":["status","intent","planUpdated","existingPlanPreserved"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"advance_to_next_stop","kind":"act","impl":"imperative","description":"Marks the current leg as started and focuses the next available stop.","title":"Advance to next stop","annotations":{"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"outputSchema":{"type":"object","properties":{"status":{"type":"string","enum":["ok","complete","needs_plan","needs_repair"]},"nextStop":{"type":["object","null"]},"unavailableStopIds":{"type":"array","items":{"type":"string"}}},"required":["status","nextStop"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"propose_stop_repair","kind":"act","impl":"imperative","description":"Finds a real nearby replacement for an unavailable stop while preserving the current origin and constraints. It shows a proposal in Buki and never changes the route until the person confirms.","title":"Propose a stop repair","annotations":{"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"stopId":{"type":"string","description":"Unavailable stop identifier."}},"required":["stopId"],"additionalProperties":false},"outputSchema":{"type":"object","properties":{"status":{"type":"string","enum":["proposal_ready"]},"originalStop":{"type":"object"},"replacementStop":{"type":"object"},"affectedLegs":{"type":"object"},"totalWalkingMinutes":{"type":"integer"},"totalEstimatedMinutes":{"type":"integer"},"warnings":{"type":"array","items":{"type":"string"}},"selectionReason":{"type":"string"},"requiresUserConfirmation":{"type":"boolean","const":true}},"required":["status","originalStop","replacementStop","affectedLegs","totalWalkingMinutes","totalEstimatedMinutes","requiresUserConfirmation"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"get_buki_context","kind":"answer","impl":"imperative","description":"Returns Buki’s current planning state, including the full pending repair proposal when one awaits human confirmation.","title":"Get Buki context","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"outputSchema":{"type":"object","properties":{"app":{"type":"string","enum":["buki"]},"mapSource":{"type":"string"},"origin":{"type":["string","null"]},"preferences":{"type":"object"},"nextQuestion":{"type":["string","null"]},"stopCount":{"type":"integer"},"activeStopId":{"type":["string","null"]},"repair":{"type":"string"},"pendingRepair":{"anyOf":[{"type":"object","properties":{"status":{"type":"string","enum":["proposal_ready"]},"originalStop":{"type":"object"},"replacementStop":{"type":"object"},"affectedLegs":{"type":"object"},"totalWalkingMinutes":{"type":"integer"},"totalEstimatedMinutes":{"type":"integer"},"warnings":{"type":"array","items":{"type":"string"}},"selectionReason":{"type":"string"},"requiresUserConfirmation":{"type":"boolean","const":true}},"required":["status","originalStop","replacementStop","affectedLegs","totalWalkingMinutes","totalEstimatedMinutes","requiresUserConfirmation"],"additionalProperties":false},{"type":"null"}]},"manualControlsAvailable":{"type":"boolean"}},"required":["app","mapSource","origin","stopCount","activeStopId","repair","pendingRepair","manualControlsAvailable"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]}],"category":"Travel & Events","favicon":"/favicons/buki-sandy.vercel.app.svg","apiSurface":"spec","toolCount":11}}