/** * Weavetab — tools/read.ts * browser_map: ultra-lite page reader with delta mode and visual fallback. * Weavetab by fy2ne */ import CDP from "chrome-remote-interface"; import { type MarkEntry } from "../intelligence/marks.js"; import type { Config } from "../config/loader.js"; export interface VisualMark { mark: number; x: number; y: number; width: number; height: number; ref?: string; label?: string; type?: MarkEntry["type"]; } export interface BrowserMapResult { text: string; /** Base64 JPEG of the page annotated with numbered SoM badges. Only present in visual mode. */ imageBase64?: string; /** Structured mark list — numbers match badges visible on the screenshot. */ marks?: VisualMark[]; } export interface ReadOptions { lite?: boolean; full?: boolean; scope?: string; query?: string; limit?: number; delta?: boolean; intent?: string; ax_tree?: boolean; /** Debug: draws colored element borders via extension. */ show_overlays?: boolean; /** Force deep shadow DOM traversal. */ deep?: boolean; /** Semantic DOM pruning. Defaults to true to drop non-interactive noise and SVGs. */ prune?: boolean; /** * Visual grounding mode (Set-of-Marks). * - true → always inject numbered badges + screenshot. * - "auto" → activate only when DOM interactive count < 5 (canvas/WebGL pages). * Use browser_click({ mark: N }) to interact with numbered marks. */ visual?: boolean | "auto"; } export declare function browserMap(session: CDP.Client, options: ReadOptions | undefined, targetId: string | undefined, config: Config): Promise; export { browserMap as weaveRead };