mirror of
https://github.com/agent0ai/agent-zero.git
synced 2026-05-17 12:31:20 +00:00
Integrate host-browser routing into the existing Browser tool. Store connector host-browser metadata, add pending browser op resolution, select connector runtimes from Browser settings, enforce host-content privacy policy, support automatic host preparation, and document the A0 CLI host-browser flow.
41 lines
1.8 KiB
Python
41 lines
1.8 KiB
Python
from helpers.api import ApiHandler, Request
|
|
from plugins._browser.helpers.config import build_browser_launch_config, get_browser_config
|
|
from plugins._browser.helpers.playwright import (
|
|
get_playwright_binary,
|
|
get_playwright_cache_dir,
|
|
get_playwright_cache_dirs,
|
|
)
|
|
from plugins._browser.helpers.runtime import known_context_ids
|
|
|
|
|
|
class Status(ApiHandler):
|
|
async def process(self, input: dict, request: Request) -> dict:
|
|
browser_config = get_browser_config()
|
|
launch_config = build_browser_launch_config(browser_config)
|
|
runtime_binary = get_playwright_binary()
|
|
chromium_binary = runtime_binary
|
|
try:
|
|
from plugins._a0_connector.helpers.ws_runtime import all_host_browser_metadata
|
|
except ImportError:
|
|
host_browser = {"connectors": []}
|
|
else:
|
|
host_browser = {"connectors": all_host_browser_metadata()}
|
|
return {
|
|
"plugin": "_browser",
|
|
"playwright": {
|
|
"cache_dir": get_playwright_cache_dir(),
|
|
"cache_dirs": [str(path) for path in get_playwright_cache_dirs()],
|
|
"binary_found": bool(runtime_binary),
|
|
"install_required": not bool(runtime_binary),
|
|
"binary_path": str(runtime_binary) if runtime_binary else "",
|
|
"chromium_binary_path": str(chromium_binary) if chromium_binary else "",
|
|
"launch_mode": launch_config["browser_mode"],
|
|
},
|
|
"extensions": {
|
|
**launch_config["extensions"],
|
|
"launch_mode": launch_config["browser_mode"],
|
|
"requires_full_browser": launch_config["requires_full_browser"],
|
|
},
|
|
"host_browser": host_browser,
|
|
"contexts": known_context_ids(),
|
|
}
|