Spaces:
Running
Running
File size: 1,972 Bytes
f680f3e | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | from helpers.api import ApiHandler, Request
from plugins._browser.helpers.config import build_browser_launch_config, get_browser_config
from plugins._browser.helpers.interactive_view import collect_status as collect_interactive_status
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,
"interactive_view": collect_interactive_status(),
"contexts": known_context_ids(),
}
|