mirror of
https://github.com/agent0ai/agent-zero.git
synced 2026-07-09 17:08:29 +00:00
Add host_browser_selection config normalization, Browser Settings UI choices from CLI-advertised inventory, and browser_selection forwarding through connector browser operations. Expose host browser ids, labels, and available_browsers through A0 connector metadata and the browser_runtime API, with regression coverage for selection normalization.
3.9 KiB
3.9 KiB
Browser Plugin DOX
Purpose
- Own the built-in Playwright browser tool and WebUI browser viewer.
- Bridge browser automation, page inspection helpers, and browser panel UI.
Ownership
plugin.yamlanddefault_config.yamlown metadata and browser settings defaults.tools/browser.pyowns the agent-facing browser tool.helpers/owns Playwright runtime, selectors, URL helpers, extension management, and connector runtime logic.api/owns status, extension, and browser WebSocket handlers.assets/,prompts/,skills/,extensions/, andwebui/own browser scripts, prompts, skill guidance, hook contributions, and UI.
Local Contracts
- Keep browser actions safe around external pages, credentials, and user data.
- Preserve Playwright lifecycle cleanup and WebSocket viewer compatibility across regular host browsers and Electron WebContentsView embedding.
- Keep the WebUI Browser inside its own modal/canvas affordance; do not replace it with page-level navigation.
- Default the visible WebUI Browser to live CDP screencast for responsiveness. Keep lightweight CDP/DOM state snapshots as the fallback transport.
- Paint live screencast frames through the Browser panel canvas/ImageBitmap path when available; keep the
<img>/data URL path for snapshots and fallback rendering. - Push internal screencast frames from the runtime to the WebSocket consumer after subscription; keep
read/pop_screencast_frameas fallback/tooling APIs, not the WebUI hot path. - Keep Browser viewer frame transport capability-negotiated: updated clients may request binary/slim screencast frames, while older clients must keep the base64/full-metadata fallback. Do not let the WebUI advertise binary frames unless its Socket.IO client reconstructs attachments as real
Blob,ArrayBuffer, or typed-array values. - Keep WebUI Browser tabs scoped to the active chat context by default; aggregate tabs from other AgentContext runtimes only when the Browser settings tab scope is
shared. - Keep narrow WebUI Browser controls usable by grouping navigation with Annotate/settings above a full-width address bar.
- For Bring Your Own Browser with an existing host profile,
host_browser_selectionmay target automatic CLI selection, a browser family/id, or an explicit CDP endpoint and must be forwarded to the connector runtime asbrowser_selection. - Browser URL-intent handling must only claim web URL schemes and leave custom Agent Zero schemes to their owning surfaces.
- Prefer DOM/CDP browser actions with refs, selectors, frame-chain refs, and screenshots over viewport coordinate input. Coordinates remain a visual fallback.
- Do not hardcode user-specific browser paths or secrets.
Work Guidance
- Coordinate tool, helper, and panel changes so browser state shown in the UI matches tool behavior.
- Do not depend on nested Electron
<webview>support or launcher-specific preload bridges unless the launcher exposes that bridge as an explicit contract. - Keep
prompts/agent.system.tool.browser.mdas a compact callable contract; move detailed browser workflows intoskills/browser-automation/SKILL.md. - Keep
skills/browser-automation/SKILL.mdfrontmatter triggers current with rendered browsing, host-browser, screenshot, and web-interaction user phrasing so relevant-skill recall can surface the skill before the full browser workflow is needed. - Keep fragile form guidance progressively disclosed through
skills/browser-form-workflows/SKILL.md, linked from the browser prompt throughbrowser-automation.
Verification
- Smoke-test browser launch, navigation, DOM capture, and WebUI viewer after runtime changes.
- For viewer render-path changes, verify the live Browser panel paints a screencast frame on canvas with
frameSrcempty and snapshots still falling back to the image path. - Run browser prompt/skill regression tests after changing browser prompt or Browser plugin skills.
Child DOX Index
No child DOX files.