feat(cli): Add session quality analysis commands
Some checks failed
Forge CI / smoke-and-build (pull_request) Failing after 1m7s

Part of #327. Adds `hermes quality` command for session quality analysis.
This commit is contained in:
2026-04-14 01:52:26 +00:00
parent b87b4c6d96
commit a16fcac72c

View File

@@ -5258,6 +5258,29 @@ For more help on a command:
sessions_parser.set_defaults(func=cmd_sessions)
# Session quality analyzer command
quality_parser = subparsers.add_parser(
"quality",
help="Session quality analysis",
description="Analyze session quality metrics and identify issues"
)
quality_subparsers = quality_parser.add_subparsers(dest="quality_command")
# Analyze single session
quality_analyze = quality_subparsers.add_parser("analyze", help="Analyze a single session")
quality_analyze.add_argument("session_id", help="Session ID to analyze")
# Analyze multiple sessions
quality_batch = quality_subparsers.add_parser("batch", help="Analyze multiple sessions")
quality_batch.add_argument("session_ids", nargs="+", help="Session IDs to analyze")
# List sessions with quality issues
quality_subparsers.add_parser("list-issues", help="List sessions with quality issues")
quality_parser.set_defaults(func=cmd_quality)
# =========================================================================
# insights command
# =========================================================================
@@ -5598,3 +5621,39 @@ Examples:
if __name__ == "__main__":
main()
def cmd_quality(args):
"""Handle session quality analysis commands."""
from hermes_cli.colors import Colors, color
subcmd = getattr(args, 'quality_command', None)
if subcmd is None:
print(color("Session Quality Analysis", Colors.CYAN))
print("\nCommands:")
print(" hermes quality analyze SESSION_ID - Analyze a single session")
print(" hermes quality batch SESSION_IDS... - Analyze multiple sessions")
print(" hermes quality list-issues - List sessions with quality issues")
return 0
try:
from tools.session_quality_analyzer import quality_analyzer_cli
args_list = []
if subcmd == "analyze":
args_list = ["analyze", args.session_id]
elif subcmd == "batch":
args_list = ["batch"] + args.session_ids
elif subcmd == "list-issues":
args_list = ["list-issues"]
return quality_analyzer_cli(args_list)
except ImportError as e:
print(color(f"Error: Cannot import session_quality_analyzer module: {e}", Colors.RED))
return 1
except Exception as e:
print(color(f"Error: {e}", Colors.RED))
return 1