File size: 933 Bytes
2d83c9f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
"""proteus.cli — command dispatch. Behavior identical to the former cli.py.

Subcommands:
    run             Run one session and append its trace to a JSONL file.
    list-scenarios  List the registered scenario names.
    replay          Print a saved trace's turns, outcome, and metrics.
    compare         Aggregate traces by (model, difficulty) for baseline comparison.

All commands are network-free except ``run`` with a real provider spec; use
``--model fake:<name>`` for an offline smoke.
"""
from __future__ import annotations

import proteus.game.scenarios  # noqa: F401  — side-effect: populate the scenario registry

from proteus.cli.parser import build_parser


def main(argv: list[str] | None = None) -> int:
    """CLI entry point. Returns a process exit code."""
    parser = build_parser()
    args = parser.parse_args(argv)
    return args.func(args)


if __name__ == "__main__":
    raise SystemExit(main())