describe_page
Extract a concise JSON page summary (intent, headings, form fields, actions, navigation) for AI workflows, using minimal tokens. Optionally waits for DOM stability before snapshotting.
Instructions
⭐ Compact AI-friendly page summary — replaces accessibility_snapshot for LLM workflows. Returns JSON with the page's intent + interactable surface in ~10× fewer tokens than a full a11y dump.
Args:
wait_stable: if True, install a MutationObserver and wait until the
DOM has been quiet for `stable_ms` before snapshotting (max
`max_wait` seconds). Use on SPA / lazy-rendered pages so the
LLM sees the final state, not a half-hydrated render. Cheap
(~50-200ms typical, capped at max_wait).
max_wait: outer cap for stability wait (default 2.5s)
stable_ms: required quiet window in ms (default 400)
Output shape:
{
"title": "...",
"url": "...",
"headings": [{"level":"h1","text":"..."}],
"fields": [{"label":"...","type":"text|email|...","required":bool,"value":"...","name":"...","id":"..."}],
"actions": [{"text":"Submit","kind":"button","disabled":false}],
"errors": ["..."],
"navigation": ["Dashboard","Settings",...],
"stability": "stable|timeout|skipped" (only present if wait_stable=True)
}
Use this BEFORE smart_fill so the LLM knows which labels exist.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| wait_stable | No | ||
| max_wait | No | ||
| stable_ms | No |
Output Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |