from importlib.metadata import PackageNotFoundError, version as _pkg_version from pathlib import Path from browser_cli.constants import MAX_MSG_BYTES, PROTOCOL_MIN_CLIENT, PYPI_PACKAGE_NAME def parse_version(v: str) -> tuple[int, ...]: try: return tuple(int(x) for x in v.lstrip("v").split(".")) except ValueError: return (0,) def get_installed_version() -> str: try: return _pkg_version(PYPI_PACKAGE_NAME) except Exception: return "0.0.0" def project_version() -> str: pyproject_path = Path(__file__).resolve().parent.parent / "pyproject.toml" try: content = pyproject_path.read_text(encoding="utf-8") for line in content.splitlines(): if line.startswith("version = "): return line.split('"')[1] except OSError: pass try: return _pkg_version(PYPI_PACKAGE_NAME) except PackageNotFoundError: return "unknown" USER_AGENT = f"browser-cli/{get_installed_version()}"