# client.adapters

> client.adapters — the adapters operations.

`client.adapters` — the `adapters` operations.

On `AsyncKindgi` every method is the same, awaited.

## `client.adapters.list()`

```python signature
list(
    *,
    limit: int | None = None,
    cursor: str | None = None,
    kind: Literal['model', 'model-provider', 'embedding', 'blob', 'sandbox', 'eval-judge'] | None = None,
    status: Literal['active', 'degraded', 'error'] | None = None,
    timeout: float | None = None,
) -> AdapterCollectionPage
```

List wired adapters. `GET /v1/adapters`

Cursor-paginated. Optional `?kind=` / `?status=` filters narrow the result. Adapters are the concrete bridges the runtime uses to talk to outside systems (model providers, embedding providers, blob storage, sandbox providers, eval judges); the deployment aggregates the ones it wired at boot time.

## `client.adapters.get()`

```python signature
get(adapter_id: str | UUID, /, *, timeout: float | None = None) -> Adapter
```

Fetch a wired adapter. `GET /v1/adapters/{adapterId}`

Returns the redacted-config `Adapter` shape. Secrets never cross the wire (bindings may expose non-sensitive routing hints like `{ region }` but never credentials).

## `client.adapters.test()`

```python signature
test(
    adapter_id: str | UUID,
    body: TestAdapterBody | Mapping[str, Any] | None = None,
    /,
    *,
    idempotency_key: str | None = None,
    timeout: float | None = None,
    **fields: Any,
) -> AdapterTestOutcome
```

Run a kind-specific smoke probe against an adapter. `POST /v1/adapters/{adapterId}/test`

Body is optional — when absent the binding runs the default kind-specific probe (blob: put/get/hash/delete; sandbox: `1 + 1`; model: minimal ping completion; embedding: `'ping'`; eval-judge: pass-through). Probe failures return HTTP 200 with `ok: false` — a failed probe is a valid observation about the adapter's state, not a server error. Idempotency-Key applies (retried probes replay the cached outcome).

## `client.adapters.prepare()`

```python signature
prepare(
    adapter_id: str | UUID,
    body: AdaptersPrepareBody | Mapping[str, Any] | None = None,
    /,
    *,
    idempotency_key: str | None = None,
    timeout: float | None = None,
    **fields: Any,
) -> AdaptersPrepareResponse
```

Stream adapter preparation events (SSE). `POST /v1/adapters/{adapterId}/prepare`

SSE stream (`text/event-stream`). Iterates the adapter factory's `prepare(params)` async generator and emits each yielded `PrepareEvent` as an SSE `data:` frame — used for warmup progress on in-process adapters (model download, cache priming, etc.). Body carries adapter-specific `params` and is passed through unchanged. Returns 404 when the adapter id is unknown to the in-process factory registry, and 400 `bad-input` when the adapter has no `prepare()` implementation (e.g. remote model providers with nothing to download) or the deployment did not wire an `adapterFactories` binding.
