headroom/agent-evals/tests
Tejas Chopra 84f9871e30
fix(agent-evals): Phase 0 — coding-agent accuracy A/B framework (#1037)
## Description

Adds the Phase 0 `agent-evals/` nested project for benchmarking
coding-agent task accuracy with and without Headroom's proxy/compression
path. The project is intentionally separate from the published
`headroom-ai` package and provides the shared A/B framework used by the
stacked Phase 1 PR #1040.

## Type of Change

- [x] New feature (non-breaking change that adds functionality)
- [x] Tests only
- [x] Documentation update

## Changes Made

- Added a three-arm experiment model for direct provider calls, Headroom
passthrough, and Headroom compression.
- Added the resumable orchestrator, run manifest/config models, JSON
logging, and append-only journal handling.
- Added savings capture from Headroom response headers plus scorecard
reporting for resolved rate and savings.
- Added unit tests and live-test markers for provider-key dependent
validation.
- Kept the benchmark project isolated from the product package and
normal Headroom release wheel.

## Testing

- [x] Unit tests pass (`pytest`)
- [x] Linting passes (`ruff check`)
- [x] Type checking passes (`mypy`)
- [x] New tests added for new functionality

### Test Output

```text
agent-evals Phase 0 validation from original PR:
74 unit tests passed
ruff clean
mypy clean

CI on this PR:
changes and commitlint pass; product CI jobs are skipped because this only changes the nested agent-evals project.
```

## Real Behavior Proof

- Environment: local agent-evals development environment with
provider-key dependent live tests skipped unless credentials are
present.
- Exact command / steps: Ran the Phase 0 unit suite, ruff, and mypy for
the nested `agent-evals` project; GitHub CI also ran the repository
change detection and commitlint jobs for this PR.
- Observed result: The Phase 0 framework tests passed locally, static
checks were clean, and GitHub CI reported passing change
detection/commitlint for the PR.
- Not tested: live provider accuracy claims; those require provider keys
and larger benchmark runs and are intentionally covered by live-marked
tests and later stacked phases.

## Review Readiness

- [x] I have performed a self-review
- [x] This PR is ready for human review

Co-authored-by: JerrettDavis <mxjerrett@gmail.com>
2026-06-22 15:01:44 -05:00
..
__init__.py fix(agent-evals): Phase 0 — coding-agent accuracy A/B framework (#1037) 2026-06-22 15:01:44 -05:00
conftest.py fix(agent-evals): Phase 0 — coding-agent accuracy A/B framework (#1037) 2026-06-22 15:01:44 -05:00
test_arms.py fix(agent-evals): Phase 0 — coding-agent accuracy A/B framework (#1037) 2026-06-22 15:01:44 -05:00
test_config.py fix(agent-evals): Phase 0 — coding-agent accuracy A/B framework (#1037) 2026-06-22 15:01:44 -05:00
test_integration_phase0.py fix(agent-evals): Phase 0 — coding-agent accuracy A/B framework (#1037) 2026-06-22 15:01:44 -05:00
test_live_integration.py fix(agent-evals): Phase 0 — coding-agent accuracy A/B framework (#1037) 2026-06-22 15:01:44 -05:00
test_manifest.py fix(agent-evals): Phase 0 — coding-agent accuracy A/B framework (#1037) 2026-06-22 15:01:44 -05:00
test_models.py fix(agent-evals): Phase 0 — coding-agent accuracy A/B framework (#1037) 2026-06-22 15:01:44 -05:00
test_orchestrator.py fix(agent-evals): Phase 0 — coding-agent accuracy A/B framework (#1037) 2026-06-22 15:01:44 -05:00
test_savings.py fix(agent-evals): Phase 0 — coding-agent accuracy A/B framework (#1037) 2026-06-22 15:01:44 -05:00
test_scorecard.py fix(agent-evals): Phase 0 — coding-agent accuracy A/B framework (#1037) 2026-06-22 15:01:44 -05:00