import click from rich.console import Console from browser_cli.commands import client_from_ctx, handle_errors console = Console() @click.group("extension") def extension_group(): """Manage the browser-cli browser extension.""" @extension_group.command("info") @handle_errors def extension_info(): """Show extension version and advertised capabilities.""" info = client_from_ctx().extension.info() for key in ("name", "version", "id", "platform"): if key in info: console.print(f"[bold]{key}:[/bold] {info[key]}") caps = info.get("capabilities") or [] if caps: console.print("[bold]capabilities:[/bold]") for cap in caps: console.print(f" - {cap}") @extension_group.command("capabilities") @handle_errors def extension_capabilities(): """Print extension feature capability strings.""" for cap in client_from_ctx().extension.capabilities(): console.print(cap) @extension_group.command("reload") @handle_errors def extension_reload(): """Reload the browser-cli extension service worker. Useful after updating background.js without restarting the browser. The command returns immediately; the extension restarts ~200 ms later. Re-connects automatically via the keepalive alarm within ~25 seconds. """ client_from_ctx().extension.reload() console.print("[green]Extension reloading…[/green] reconnects automatically")