# Overview

## Test runs

Test-run data plane (start, list, get, cancel, events SSE). Dispatches a test run against a registered test set. Dispatch is per-`TestSetKind`; kinds without a registered dispatcher return `422 dispatcher-not-registered`. `result` is kind-specific opaque JSON on the wire — for `accuracy` it is `{ passCount, totalCount, meanScore, perCase[] }`. SSE events mirror run streaming: per-case progress followed by a terminal frame carrying the aggregate. Caller-plugged via `TestRunBinding`.

## Operations

POST

[/v1/test-sets/{testSetId}/runs](https://docs.kindgi.com/reference/api/operations/testrunsstart.md)

GET

[/v1/test-runs](https://docs.kindgi.com/reference/api/operations/testrunslist.md)

GET

[/v1/test-runs/{testRunId}](https://docs.kindgi.com/reference/api/operations/testrunsget.md)

POST

[/v1/test-runs/{testRunId}/cancel](https://docs.kindgi.com/reference/api/operations/testrunscancel.md)

POST

[/v1/test-runs/{testRunId}/rescore](https://docs.kindgi.com/reference/api/operations/testrunsrescore.md)

GET

[/v1/test-runs/{testRunId}/events](https://docs.kindgi.com/reference/api/operations/testrunsevents.md)
