"""``hermes acp`` subcommand parser."""

from __future__ import annotations

from typing import Callable

from hermes_cli.subcommands._shared import add_accept_hooks_flag


def build_acp_parser(subparsers, *, cmd_acp: Callable) -> None:
    """Attach the ``acp`` subcommand to ``subparsers``."""
    acp_parser = subparsers.add_parser(
        "acp", help="Run Hermes Agent as an ACP (Agent Client Protocol) server",
        description="Start Hermes Agent in ACP mode for editor integration (VS Code, Zed, JetBrains)",
    )
    add_accept_hooks_flag(acp_parser)
    acp_parser.add_argument(
        "--version", action="store_true", dest="acp_version",
        help="Print Hermes ACP version and exit")
    acp_parser.add_argument(
        "--check", action="store_true",
        help="Verify ACP dependencies and adapter imports, then exit")
    acp_parser.add_argument(
        "--setup", action="store_true",
        help="Run interactive Hermes provider/model setup for ACP terminal auth")
    acp_parser.add_argument(
        "--setup-browser", action="store_true",
        help="Install agent-browser + Playwright Chromium into ~/.hermes/node/ "
             "for browser tool support (idempotent).")
    acp_parser.add_argument(
        "--yes", "-y", action="store_true", dest="assume_yes",
        help="Accept all prompts (used by --setup-browser to skip the "
             "~400 MB Chromium download confirmation).")
    acp_parser.set_defaults(func=cmd_acp)
