feat(cli): Add session quality analysis commands
Some checks failed
Forge CI / smoke-and-build (pull_request) Failing after 1m7s
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:
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user