# `WardrikBrave.Client`

Calls Brave's LLM Context API.

Keeps what a model can use of each result: its URL, title, passages and date.

Raises `WardrikBrave.Unavailable` on a rate limit, a 5xx or a dropped connection, so the tool
runner retries. See `WardrikCore.Retry`.

# `search`

```elixir
@spec search(map(), map()) :: {:ok, map()} | {:error, String.t()} | no_return()
```

Runs one search.

`params` are the API's own, such as `"q"`. Returns `{:error, message}` if `settings` has no
`:api_key`, or if Brave answers with a 4xx other than 429.

# `summarized`

```elixir
@spec summarized(term()) :: map()
```

Returns the results of a response body, as `%{"results" => [...], "count" => n}`.

Each result has `"url"`, `"title"`, `"snippets"` and, where known, `"age"`.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
