import click from browser_cli.client import BrowserNotConnected, active_browser_targets, remote_browser_targets, send_command from rich.console import Console _console = Console() def _handle(command, args=None, profile=None): try: return send_command(command, args or {}, profile=profile) except BrowserNotConnected as e: _console.print(f"[red]Error:[/red] {e}") raise SystemExit(1) except RuntimeError as e: _console.print(f"[red]Browser error:[/red] {e}") raise SystemExit(1) def _handle_multi(command, args=None, profile=None, remote=None): try: if remote: return send_command(command, args or {}, profile=profile, remote=remote) return send_command(command, args or {}, profile=profile) except (BrowserNotConnected, RuntimeError): return None def _multi_browser_targets(): root = click.get_current_context().find_root() if root.obj.get("browser_explicit"): return [] remote = root.obj.get("remote") key = root.obj.get("key") if remote: targets = remote_browser_targets(remote, key=key) else: targets = active_browser_targets(key=key) if len(targets) <= 1 and not any(target.remote for target in targets): return [] return targets