# `ACP.MessageHandler`
[🔗](https://github.com/f1729/agent-client-protocol-elixir/blob/main/lib/acp/message_handler.ex#L1)

Behaviour for handling incoming JSON-RPC requests and notifications.

Implementations route decoded requests to the appropriate Agent or Client callbacks.

# `handle_notification`
[🔗](https://github.com/f1729/agent-client-protocol-elixir/blob/main/lib/acp/message_handler.ex#L12)

```elixir
@callback handle_notification(notification :: any()) :: :ok | {:error, ACP.Error.t()}
```

Handle an incoming notification.

# `handle_request`
[🔗](https://github.com/f1729/agent-client-protocol-elixir/blob/main/lib/acp/message_handler.ex#L9)

```elixir
@callback handle_request(request :: any()) :: {:ok, any()} | {:error, ACP.Error.t()}
```

Handle an incoming request and return a response.

---

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