{"ok":true,"site":{"host":"demo-app-three-bay.vercel.app","url":"https://demo-app-three-bay.vercel.app/","type":"live","desc":"CityDesk; city services","tools":[{"name":"describe_app","kind":"answer","impl":"imperative","description":"Use when the page is unfamiliar or its current scope is uncertain. Returns a compact map of sections, views, vocabulary, and coverage. Next: choose a content search, a control lookup, or cross-page discovery from the gap; do not page headings solely to enumerate them. After an action, use `_observation` as `changesSince`.","title":"Orient on page","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"opaque":{"type":"boolean","description":"Boxes of elements the text index cannot read (canvas, unlabeled images), not the orientation."},"describe":{"type":"boolean","description":"With `opaque:true`, read each canvas/image region with an on-device model (`description`). Slow — use a small `limit`. Fail-open where no model exists."},"section":{"type":"string","enum":["reachableViews","outline","landmarks","currentTrail"]},"limit":{"type":"integer","minimum":1,"default":10},"offset":{"type":"integer","minimum":0,"default":0},"revision":{"type":"integer","minimum":0},"since":{"type":"string","description":"Prior `_etag`."},"changesSince":{"type":"string","description":"Prior `_observation` after an action. Emits `announce` (live-region text the page stated) and `errorText` (a field's own validation message) so you read the outcome, not just that state changed."},"summarize":{"type":"boolean","description":"Slow, lossy; less text; short skips"},"reason":{"type":"string","minLength":1,"pattern":"^[^\\r\\n]+$","description":"One-line intent; the host may display it."}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/parking.html","/libraries.html","/notices.html","/workspace.html"]},{"name":"find_on_page","kind":"answer","impl":"imperative","description":"Use for a fact, explanation, or passage on this page; not for a control or exhaustive inventory. Returns ranked evidence and an optional answer. Expand an excerpt only when it leaves a material gap. For a job use locate_control; for another page use agentic_content.","title":"Search page","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"query":{"type":"string","minLength":1,"description":"Content, not a control."},"goal":{"type":"string","minLength":1,"description":"`read` default; `navigate` requests an action."},"limit":{"type":"integer","minimum":1,"default":5},"offset":{"type":"integer","minimum":0,"default":0},"revision":{"type":"integer","minimum":0},"since":{"type":"string","description":"Prior `_etag`."},"summarize":{"type":"boolean","description":"Slow, lossy; less text; short skips"},"reason":{"type":"string","minLength":1,"pattern":"^[^\\r\\n]+$","description":"One-line intent; the host may display it."}},"required":["query"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/parking.html","/libraries.html","/notices.html","/workspace.html"]},{"name":"locate_control","kind":"act","impl":"imperative","description":"Use for a specific user job, not a label guess or a page-wide inventory. Returns ranked live controls/links and refinements when intent is ambiguous. Resolve the chosen address immediately before the host acts. Page only while the job remains unresolved.","title":"Find a control","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"description":{"type":"string","minLength":1,"description":"Control job, not guessed label."},"limit":{"type":"integer","minimum":1,"default":4},"offset":{"type":"integer","minimum":0,"default":0},"revision":{"type":"integer","minimum":0},"role":{"type":["string","array"],"minLength":1,"minItems":1,"items":{"type":"string","minLength":1},"description":"ARIA-role filter."},"affordance":{"type":["string","array"],"minLength":1,"minItems":1,"items":{"type":"string","minLength":1},"description":"Open-vocabulary job filter."},"landmark":{"type":"string","minLength":1},"reason":{"type":"string","minLength":1,"pattern":"^[^\\r\\n]+$","description":"One-line intent; the host may display it."}},"required":["description"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/parking.html","/libraries.html","/notices.html","/workspace.html"]},{"name":"resolve_address","kind":"act","impl":"imperative","description":"Use with an address already returned by another tool: ground a control before an action, or expand a region when its excerpt is insufficient. Returns fresh state, navigation, box, and readable region evidence. Never reuse a box; follow a next page only if omitted text or controls affect the decision.","title":"Resolve address","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"address":{"type":"object","description":"Copy; never edit.","properties":{"frame":{"type":"string","minLength":1},"landmark":{"type":["string","null"]},"landmarkName":{"type":["string","null"]},"headingPath":{"type":"array","items":{"type":"string"}},"row":{"type":["string","null"]},"role":{"type":"string","minLength":1},"name":{"type":["string","null"]},"ordinal":{"type":"integer","minimum":0},"peerCount":{"type":"integer","minimum":1},"anchorText":{"type":"string"},"textOffset":{"type":"integer","minimum":0},"controlOffset":{"type":"integer","minimum":0},"textRevision":{"type":"integer","minimum":0},"resolveWith":{"type":"string","enum":["read_region","resolve_address"]},"headingScope":{"type":"string","enum":["subtree","outline"]}},"required":["landmark","landmarkName","headingPath","row","role","name","ordinal","peerCount"],"additionalProperties":true},"scrollIntoView":{"type":"boolean","description":"Move before measuring."},"expand":{"type":"boolean","description":"Read more of a region: paginate its full text (`textOffset`) and include its controls."},"summarize":{"type":"boolean","description":"Slow, lossy; less text; short skips"},"reason":{"type":"string","minLength":1,"pattern":"^[^\\r\\n]+$","description":"One-line intent; the host may display it."}},"required":["address"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/parking.html","/libraries.html","/notices.html","/workspace.html"]},{"name":"query_selector","kind":"answer","impl":"imperative","description":"Use for known CSS or an inventory the user explicitly needs; not as a default orientation step. `actions` and `forms` can be large, so one job should use locate_control. Returns bounded matching rows. Request only fields needed; page only when omitted rows could change the answer.","title":"List or inspect by semantics/CSS","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"view":{"type":"string","enum":["actions","structure","scopes","forms"]},"selector":{"type":"string","minLength":1,"description":"Known CSS."},"limit":{"type":"integer","minimum":1,"default":10},"offset":{"type":"integer","minimum":0,"default":0},"revision":{"type":["integer","string"],"minimum":0,"minLength":1,"description":"Copy from a cursor."},"role":{"type":["string","array"],"minLength":1,"minItems":1,"items":{"type":"string","minLength":1}},"affordance":{"type":["string","array"],"minLength":1,"minItems":1,"items":{"type":"string","minLength":1}},"landmark":{"type":"string","minLength":1},"name":{"type":"string","minLength":1,"description":"Copied exact accessible name; actions only."},"heading":{"type":"string","minLength":1,"description":"Copied exact heading; structure only."},"frames":{"type":"boolean","description":"Follow readable frames; default true."},"fields":{"type":["array","null"],"uniqueItems":true,"description":"Return only evidence needed for the next decision: usually name and address; add state, text, or box only when they matter.","items":{"type":"string","enum":["tag","role","name","text","state","box","address","attributes","scope","frame"]}},"reason":{"type":"string","minLength":1,"pattern":"^[^\\r\\n]+$","description":"One-line intent; the host may display it."}},"oneOf":[{"required":["view"],"not":{"required":["selector"]}},{"required":["selector"],"not":{"required":["view"]}}]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/parking.html","/libraries.html","/notices.html","/workspace.html"]},{"name":"agentic_content","kind":"act","impl":"imperative","description":"Use for same-origin resources or a cross-page graph; not for facts already on this page. `list`/`find` returns bounded live links and resource handles. Navigate only destinations relevant to the user’s goal, retain source/destination/purpose, and report unvisited or truncated scope.","title":"Agent resources","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"intent":{"type":"string","enum":["list","read","find"]},"query":{"type":"string"},"url":{"type":"string"},"goal":{"type":"string","minLength":1,"description":"`navigate` verifies a live HTML URL when available."},"limit":{"type":"integer","minimum":1,"default":20},"offset":{"type":"integer","minimum":0,"default":0},"revision":{"type":"string","minLength":1,"description":"Copy from a cursor."},"summarize":{"type":"boolean","description":"Slow, lossy; less text; short skips"},"reason":{"type":"string","minLength":1,"pattern":"^[^\\r\\n]+$","description":"One-line intent; the host may display it."}},"allOf":[{"if":{"properties":{"intent":{"const":"find"}},"required":["intent"]},"then":{"required":["query"],"properties":{"query":{"minLength":1}}}},{"if":{"properties":{"intent":{"const":"read"}},"required":["intent"]},"then":{"required":["url"],"properties":{"url":{"minLength":1}}}}]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/parking.html","/libraries.html","/notices.html","/workspace.html"]}],"favicon":"/favicons/demo-app-three-bay.vercel.app.svg","apiSurface":"spec","category":"Developer Tools","toolCount":6}}