todo-52.3-benchmark-case-mode-single-source.md 1.2 KB

Todo 52.3 Benchmark Case and Mode Single Source Plan

Status: done

Goal

Prevent benchmark configuration and the executable case catalog from drifting as new cases or modes are added.

Scope

  • Replace separate Literal declarations with StrEnum definitions for case IDs and invocation modes.
  • Derive exported ordered choice tuples from the enums.
  • Type catalog keys and config lists with those enums while preserving JSON string serialization and existing runtime request values.
  • Assert every case enum has exactly one catalog entry.

Files

  • Modify: src/agent_lab/application/benchmark.py
  • Modify: tests/test_benchmark_config.py
  • Modify: tests/test_tool_invocation_comparison.py

Verification

  • uv run pytest tests/test_benchmark_config.py tests/test_tool_invocation_comparison.py -q
  • uv run pytest
  • git diff --check

Observe / Update

  • BenchmarkMode and BenchmarkCaseId enums now drive config validation, exported choices, catalog keys, request construction, and the 12-run comparison matrix.
  • Specification and code-quality reviews approved the result; focused tests passed (76 passed) and the full suite passed (481 passed).