Runs
A run is one coding task Syndai carries from a prompt to a delivered change. Creating a run starts billable work; its `external_request_id` is the idempotency key, so a retry never starts a second run. Follow a run by streaming its events or polling `GET /runs/{id}`. Phases are open-ended: a run can pause to ask you something, so read `pending_hitl_requests` and answer through `/responses` rather than assuming a fixed order.
- Cancel a run POST
- Create a run POST
- Get a run's change state GET
- Get a run's live view GET
- Get a run's delivered diff GET
- Get a run's timeline GET
- Get a run GET
- Upload an executable for a run to learn from POST
- Upload an image for a run POST
- List runs GET
- Open a validation artifact GET
- Rename a run POST
- Answer a run's question POST
- Steer a run in progress POST
- Stop a run and keep its work POST
- Stream a run's events GET