Files
hermes-agent/hermes_cli/subcommands/status.py
teknium1 a3149156ec feat(cli): make the summary the default hermes status, --full for every section
`hermes status` now prints the one-screen summary (model, provider, connected
providers, gateway, platforms, jobs); `--full` (alias `--all`, which never
changed the output) and `--deep` print every section as before. Hermes
Console keeps the full report since it accepts no flags.

The summary reads the canonical sources instead of re-deriving them:
- Providers: list_authenticated_providers, the list the /model picker offers
  (cached catalogs only, no custom-endpoint probes), so it honours
  model_catalog.excluded_providers, pools and plugin providers for free.
- Platforms: GatewayConfig.get_connected_platforms, the gateway's own
  decision about which adapters to start (it also rejects placeholder tokens).

The full Messaging Platforms section now uses the same verdict for plugin
rows. It called check_fn, a passive "SDK importable" probe that is True for
every bundled plugin, so a fresh install listed Discord, Slack, Matrix,
Teams, WhatsApp and ~9 more as "configured" with no credentials.
2026-10-01 22:03:11 -07:00

19 lines
761 B
Python

"""``hermes status`` subcommand parser."""
from __future__ import annotations
from typing import Callable
def build_status_parser(subparsers, *, cmd_status: Callable) -> None:
"""Attach the ``status`` subcommand to ``subparsers``."""
status_parser = subparsers.add_parser(
"status", help="Show status of all components",
description="Display status of Hermes Agent components")
status_parser.add_argument(
"--full", "--all", dest="full", action="store_true",
help="Show every section (keys redacted) instead of the one-screen summary")
status_parser.add_argument(
"--deep", action="store_true", help="Run deep checks (implies --full; may take longer)")
status_parser.set_defaults(func=cmd_status)