"""Standalone browser service — a shared, tenant-cluster-side service that drives
Playwright/Chromium for the editor's ``browser_*`` tools, so cloud-api (in a
different cluster, with no route to the per-project Selenium Grid) can use them
over RabbitMQ instead of launching a browser itself.

It reuses abstra-lib's existing ``BrowserTools`` (the Playwright driver) rather
than reimplementing it: this package only adds the service plumbing — per-session
thread ownership, tool dispatch/serialization, and the RabbitMQ transport.

See the design write-up for the full architecture; the short version:
cloud-api (brain) --RabbitMQ--> service replica (holds the session) --CDP--> Chromium.

Isolation invariant — this pod must NEVER mount project EFS and must run no
tenant code. It only drives a browser; the page server is what reads EFS and
runs page logic. That "no EFS, no tenant code" boundary is what makes a shared
pod safe across projects, so a future download feature must not reintroduce an
EFS mount here (cf. the fix/download-file-cloud approach) — downloads land in
the pod and are shipped out over the wire, not via a shared EFS mount.
"""
