The object queryElements returns is a proxy, not raw data - access elements with dot notation (response.search_box) and call toData() when you want a plain dictionary of the structured results. Do not JSON-serialize the proxy directly or pass it to code expecting a dict; convert first. Elements on the proxy are Playwright Locators, so interaction goes through the locator API.

Context: AgentQL official docs (AQLResponseProxy): queryElements returns an AQLResponseProxy - not the actual data but a metadata structure with dot-notation access to elements. Convert it to a plain structured dict with toData().