`GET /sandboxes/{id}/exec`

WebSocket upgrade for a full-duplex interactive exec. The client's first message is the JSON ExecRequest; after that, the concatenated binary message payloads in each direction form exactly the same length-prefixed frame stream as POST ?stdin=1 (stdin/stdin_close up, stdout/stderr/exit down). Frames may split across messages — decode the concatenated stream. Non-WebSocket GETs answer 426.

### Authorizations

- `bearerAuth` — HTTP bearer. Daemon API key. Omit on a keyless loopback daemon.

### Path parameters

- `id` string · required — Sandbox ID, e.g. sbx_ab12cd34.

### Responses

**101** — Switching Protocols

**400** — Bad Request

`application/json`:

- `error` string · optional

**404** — Not Found

`application/json`:

- `error` string · optional
