import click from browser_cli.client import send_command, BrowserNotConnected from rich.console import Console from rich.table import Table console = Console() def _handle(command, args=None): try: return send_command(command, args or {}) 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) @click.group("page") def page_group(): """Inspect current page metadata.""" @page_group.command("info") def page_info(): """Show title, URL, readyState, language, and meta tags of the active tab.""" info = _handle("page.info") or {} table = Table(show_header=False) table.add_column("Field", style="bold cyan", no_wrap=True) table.add_column("Value") table.add_row("Title", info.get("title") or "") table.add_row("URL", info.get("url") or "") table.add_row("Ready", info.get("readyState") or "") table.add_row("Lang", info.get("lang") or "") for key, val in (info.get("meta") or {}).items(): table.add_row(f"meta:{key}", val) console.print(table)