from __future__ import annotations import argparse import json from pathlib import Path import sys ROOT = Path(__file__).resolve().parents[1] if str(ROOT) not in sys.path: sys.path.insert(0, str(ROOT)) from incident_commander_env.orchestration import run_multi_agent_episode def main() -> None: parser = argparse.ArgumentParser() parser.add_argument("--scenario", default="payment_provider_degradation") parser.add_argument("--seed", type=int, default=None) parser.add_argument("--json", action="store_true") args = parser.parse_args() result = run_multi_agent_episode(scenario_id=args.scenario, seed=args.seed) if args.json: print(json.dumps(result.to_dict(), indent=2)) return print(result.incident) print("\nSpecialist findings:") for finding in result.findings: print(f"- {finding.agent} ({finding.focus}, confidence={finding.confidence:.2f})") print(f" {finding.conclusion}") print("\nParent commander decision:") print(f"Root cause: {result.root_cause}") print(f"Mitigation: {result.mitigation}") print(f"Customer update: {result.customer_update}") print(f"Reward: {result.reward:.3f}") print(f"Score breakdown: {result.score_breakdown}") if __name__ == "__main__": main()