# `Squidie.Tools.Adapter`
[🔗](https://github.com/dark-trench/squidie/blob/main/lib/squidie/tools/adapter.ex#L1)

Behaviour for Squidie tool adapters.

Adapters receive a request map and a workflow context map, then return either
a normalized tool result or a normalized tool error.

# `context`

```elixir
@type context() :: map()
```

# `request`

```elixir
@type request() :: map()
```

# `invoke`

```elixir
@callback invoke(request(), context(), keyword()) ::
  {:ok, Squidie.Tools.Result.t()} | {:error, Squidie.Tools.Error.t()}
```

---

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