MCPcopy Create free account
hub / github.com/CodeClash-ai/CodeClash / main

Function main

codeclash/arenas/scml/runtime/run_scml.py:534–579  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

532
533
534def main() -> None:
535 parser = argparse.ArgumentParser()
536 parser.add_argument("--agent", action="append", type=parse_agent_arg, required=True)
537 parser.add_argument("--sims", type=int, default=3)
538 parser.add_argument("--steps", type=int, default=10)
539 parser.add_argument("--lines", type=int, default=2)
540 parser.add_argument("--decision-timeout", type=float, default=3.0)
541 parser.add_argument("--max-policy-errors", type=int, default=8)
542 parser.add_argument("--output", required=True)
543 args = parser.parse_args()
544
545 if args.sims < 1:
546 parser.error("--sims must be at least 1")
547 if args.steps < 1:
548 parser.error("--steps must be at least 1")
549 if args.lines < 1:
550 parser.error("--lines must be at least 1")
551 if args.decision_timeout <= 0:
552 parser.error("--decision-timeout must be positive")
553 if args.max_policy_errors < 1:
554 parser.error("--max-policy-errors must be at least 1")
555
556 agent_classes = {
557 name: build_agent_class(
558 name, path, decision_timeout=args.decision_timeout, max_policy_errors=args.max_policy_errors
559 )
560 for name, path in args.agent
561 }
562 totals = {name: 0.0 for name in agent_classes}
563 details = []
564
565 for sim_idx in range(args.sims):
566 result = run_world(agent_classes, sim_idx=sim_idx, steps=args.steps, lines=args.lines)
567 for player, score in result["scores"].items():
568 totals[player] += score
569 details.extend(result["details"])
570
571 averages = {player: score / args.sims for player, score in totals.items()}
572 output = {
573 "average_scores": averages,
574 "total_scores": totals,
575 "sims": args.sims,
576 "details": [json.dumps(item, sort_keys=True) for item in details],
577 }
578 Path(args.output).parent.mkdir(parents=True, exist_ok=True)
579 Path(args.output).write_text(json.dumps(output, indent=2, sort_keys=True))
580
581
582if __name__ == "__main__":

Callers 1

run_scml.pyFile · 0.70

Calls 2

build_agent_classFunction · 0.85
run_worldFunction · 0.85

Tested by

no test coverage detected