LICENSE
README.md
pyproject.toml
src/swe_duel/__init__.py
src/swe_duel/config.py
src/swe_duel/models.py
src/swe_duel/pytest_plugin.py
src/swe_duel.egg-info/PKG-INFO
src/swe_duel.egg-info/SOURCES.txt
src/swe_duel.egg-info/dependency_links.txt
src/swe_duel.egg-info/entry_points.txt
src/swe_duel.egg-info/requires.txt
src/swe_duel.egg-info/top_level.txt
src/swe_duel/agents/__init__.py
src/swe_duel/agents/agent_wrapper.py
src/swe_duel/agents/blue.py
src/swe_duel/agents/red.py
src/swe_duel/agents/harness/__init__.py
src/swe_duel/agents/harness/base.py
src/swe_duel/agents/harness/claude_code.py
src/swe_duel/agents/harness/cli_container.py
src/swe_duel/agents/harness/codex.py
src/swe_duel/agents/harness/cost_tracking.py
src/swe_duel/agents/harness/mini_swe.py
src/swe_duel/agents/harness/openhands.py
src/swe_duel/agents/harness/rate_limit.py
src/swe_duel/agents/prompts/blue_task.md
src/swe_duel/agents/prompts/red_bug_task.md
src/swe_duel/agents/prompts/red_feature_task.md
src/swe_duel/agents/prompts/red_self_review_task.md
src/swe_duel/challenge_bank/__init__.py
src/swe_duel/challenge_bank/generator.py
src/swe_duel/challenge_bank/integrity.py
src/swe_duel/challenge_bank/progress.py
src/swe_duel/challenge_bank/store.py
src/swe_duel/cli/__init__.py
src/swe_duel/cli/_common.py
src/swe_duel/cli/build_report.py
src/swe_duel/cli/doctor.py
src/swe_duel/cli/evaluate_blue.py
src/swe_duel/cli/generate_challenges.py
src/swe_duel/cli/init.py
src/swe_duel/cli/kill_containers.py
src/swe_duel/cli/main.py
src/swe_duel/cli/participant_select.py
src/swe_duel/cli/preflight.py
src/swe_duel/cli/probe_provider_rate_limits.py
src/swe_duel/cli/run_match.py
src/swe_duel/cli/run_tournament.py
src/swe_duel/cli/run_tournament_harness_ablation.py
src/swe_duel/cli/run_tournament_round_robin.py
src/swe_duel/cli/setup.py
src/swe_duel/config_defaults/__init__.py
src/swe_duel/config_defaults/arena.yaml
src/swe_duel/config_defaults/models.yaml
src/swe_duel/config_defaults/repos/chi.yaml
src/swe_duel/config_defaults/repos/cjson.yaml
src/swe_duel/config_defaults/repos/csrf.yaml
src/swe_duel/config_defaults/repos/expressjs.yaml
src/swe_duel/config_defaults/repos/flask.yaml
src/swe_duel/config_defaults/repos/helmet.yaml
src/swe_duel/config_defaults/repos/java-html-sanitizer.yaml
src/swe_duel/config_defaults/repos/java-jwt.yaml
src/swe_duel/config_defaults/repos/jinja.yaml
src/swe_duel/config_defaults/repos/jjwt.yaml
src/swe_duel/config_defaults/repos/jwt.yaml
src/swe_duel/config_defaults/repos/libexpat.yaml
src/swe_duel/config_defaults/repos/node-jsonwebtoken.yaml
src/swe_duel/config_defaults/repos/simdjson.yaml
src/swe_duel/config_defaults/repos/sqlalchemy.yaml
src/swe_duel/docker/install-agent-server.sh
src/swe_duel/docker/install-cli-agents.sh
src/swe_duel/docker/openhands-constraints.txt
src/swe_duel/docker/swe-duel-entrypoint.sh
src/swe_duel/docker/base/Dockerfile
src/swe_duel/docker/chi/Dockerfile
src/swe_duel/docker/cjson/Dockerfile
src/swe_duel/docker/csrf/Dockerfile
src/swe_duel/docker/expressjs/Dockerfile
src/swe_duel/docker/flask/Dockerfile
src/swe_duel/docker/helmet/Dockerfile
src/swe_duel/docker/java-html-sanitizer/Dockerfile
src/swe_duel/docker/java-jwt/Dockerfile
src/swe_duel/docker/jinja/Dockerfile
src/swe_duel/docker/jjwt/Dockerfile
src/swe_duel/docker/jwt/Dockerfile
src/swe_duel/docker/libexpat/Dockerfile
src/swe_duel/docker/mock/Dockerfile
src/swe_duel/docker/node-jsonwebtoken/Dockerfile
src/swe_duel/docker/simdjson/Dockerfile
src/swe_duel/docker/sqlalchemy/Dockerfile
src/swe_duel/engine/__init__.py
src/swe_duel/engine/defense_evaluator.py
src/swe_duel/engine/match.py
src/swe_duel/engine/round_progress.py
src/swe_duel/engine/round_robin.py
src/swe_duel/engine/swiss.py
src/swe_duel/engine/tournament.py
src/swe_duel/logging/__init__.py
src/swe_duel/logging/artifacts.py
src/swe_duel/sandbox/__init__.py
src/swe_duel/sandbox/diff_utils.py
src/swe_duel/sandbox/docker_executor.py
src/swe_duel/sandbox/image_build.py
src/swe_duel/sandbox/test_runner.py
src/swe_duel/sandbox/workspace.py
src/swe_duel/sandbox/languages/__init__.py
src/swe_duel/sandbox/languages/base.py
src/swe_duel/sandbox/languages/c_adapter.py
src/swe_duel/sandbox/languages/go_adapter.py
src/swe_duel/sandbox/languages/java_adapter.py
src/swe_duel/sandbox/languages/node_adapter.py
src/swe_duel/sandbox/languages/profile_loader.py
src/swe_duel/sandbox/languages/python_adapter.py
src/swe_duel/sandbox/languages/registry.py
src/swe_duel/sandbox/languages/profiles/chi.yaml
src/swe_duel/sandbox/languages/profiles/cjson.yaml
src/swe_duel/sandbox/languages/profiles/csrf.yaml
src/swe_duel/sandbox/languages/profiles/expressjs.yaml
src/swe_duel/sandbox/languages/profiles/helmet.yaml
src/swe_duel/sandbox/languages/profiles/java-html-sanitizer.yaml
src/swe_duel/sandbox/languages/profiles/java-jwt.yaml
src/swe_duel/sandbox/languages/profiles/jjwt.yaml
src/swe_duel/sandbox/languages/profiles/jwt.yaml
src/swe_duel/sandbox/languages/profiles/libexpat.yaml
src/swe_duel/sandbox/languages/profiles/node-jsonwebtoken.yaml
src/swe_duel/sandbox/languages/profiles/simdjson.yaml
src/swe_duel/scoring/__init__.py
src/swe_duel/scoring/active_sampling.py
src/swe_duel/scoring/rating.py
src/swe_duel/scoring/turn_scorer.py
src/swe_duel/validation/__init__.py
src/swe_duel/validation/complexity.py
src/swe_duel/validation/red_gates.py
src/swe_duel/validation/fixtures/sample_diff.patch
src/swe_duel/validation/fixtures/gate_regression/provenance.json
src/swe_duel/validation/fixtures/gate_regression/chi/challenge.json
src/swe_duel/validation/fixtures/gate_regression/chi/defense.json
src/swe_duel/validation/fixtures/gate_regression/chi/defense_challenge.json
src/swe_duel/validation/fixtures/gate_regression/cjson/challenge.json
src/swe_duel/validation/fixtures/gate_regression/cjson/defense.json
src/swe_duel/validation/fixtures/gate_regression/cjson/defense_challenge.json
src/swe_duel/validation/fixtures/gate_regression/expressjs/challenge.json
src/swe_duel/validation/fixtures/gate_regression/expressjs/defense.json
src/swe_duel/validation/fixtures/gate_regression/expressjs/defense_challenge.json
src/swe_duel/validation/fixtures/gate_regression/flask/challenge.json
src/swe_duel/validation/fixtures/gate_regression/flask/defense.json
src/swe_duel/validation/fixtures/gate_regression/flask/defense_challenge.json
src/swe_duel/validation/fixtures/gate_regression/helmet/challenge.json
src/swe_duel/validation/fixtures/gate_regression/helmet/defense.json
src/swe_duel/validation/fixtures/gate_regression/helmet/defense_challenge.json
src/swe_duel/validation/fixtures/gate_regression/java-html-sanitizer/challenge.json
src/swe_duel/validation/fixtures/gate_regression/java-html-sanitizer/defense.json
src/swe_duel/validation/fixtures/gate_regression/java-html-sanitizer/defense_challenge.json
src/swe_duel/validation/fixtures/gate_regression/java-jwt/challenge.json
src/swe_duel/validation/fixtures/gate_regression/java-jwt/defense.json
src/swe_duel/validation/fixtures/gate_regression/java-jwt/defense_challenge.json
src/swe_duel/validation/fixtures/gate_regression/jinja/challenge.json
src/swe_duel/validation/fixtures/gate_regression/jinja/defense.json
src/swe_duel/validation/fixtures/gate_regression/jinja/defense_challenge.json
src/swe_duel/validation/fixtures/gate_regression/jwt/challenge.json
src/swe_duel/validation/fixtures/gate_regression/jwt/defense.json
src/swe_duel/validation/fixtures/gate_regression/jwt/defense_challenge.json
src/swe_duel/validation/fixtures/gate_regression/libexpat/challenge.json
src/swe_duel/validation/fixtures/gate_regression/libexpat/defense.json
src/swe_duel/validation/fixtures/gate_regression/libexpat/defense_challenge.json
src/swe_duel/validation/fixtures/mock_repo/pyproject.toml
src/swe_duel/validation/fixtures/mock_repo/src/calculator/__init__.py
src/swe_duel/validation/fixtures/mock_repo/src/calculator/advanced.py
src/swe_duel/validation/fixtures/mock_repo/src/calculator/basic.py
src/swe_duel/validation/fixtures/mock_repo/tests/test_advanced.py
src/swe_duel/validation/fixtures/mock_repo/tests/test_basic.py
src/swe_duel/validation/fixtures/sample_blue_workspace/_swe-duel/review.json
src/swe_duel/validation/fixtures/sample_blue_workspace/src/calculator/basic.py
src/swe_duel/validation/fixtures/sample_red_workspace/_swe-duel/bug_tests.py
src/swe_duel/validation/fixtures/sample_red_workspace/_swe-duel/feature_tests.py
src/swe_duel/validation/fixtures/sample_red_workspace/_swe-duel/metadata.json
src/swe_duel/validation/fixtures/sample_red_workspace/src/calculator/basic.py
tests/test_active_sampling.py
tests/test_agent_wrapper.py
tests/test_artifacts.py
tests/test_blue_agent.py
tests/test_challenge_generator.py
tests/test_challenge_store.py
tests/test_cli_common.py
tests/test_cli_harnesses.py
tests/test_cli_main.py
tests/test_complexity.py
tests/test_config.py
tests/test_cost_tracking.py
tests/test_defense_evaluator.py
tests/test_diff_utils.py
tests/test_docker_executor.py
tests/test_integrity.py
tests/test_languages.py
tests/test_match.py
tests/test_model_cost_tracking.py
tests/test_openhands_harness.py
tests/test_participant_select.py
tests/test_rate_limit.py
tests/test_rating.py
tests/test_red_bug.py
tests/test_red_feature.py
tests/test_red_gates.py
tests/test_repo_containers.py
tests/test_repo_setup.py
tests/test_report_slots.py
tests/test_round_progress.py
tests/test_test_runner.py
tests/test_tournament.py
tests/test_turn_scorer.py
tests/test_validation_gates_regression.py
tests/test_workspace.py