agent-client-protocol-http 3.1.0

HTTP and WebSocket transport for the Agent Client Protocol (ACP)
Documentation
# agent-client-protocol-http

HTTP/WebSocket transport for ACP agents.

- **Server**: `AcpHttpServer` exposes agents over HTTP + SSE with optional WebSocket upgrade
- **Client**: `HttpClient` connects over HTTP + SSE or WebSocket, selected by the URL scheme

The crate does not enable either transport side by default. Opt into the
surface you need:

```toml
agent-client-protocol-http = { version = "3", features = ["client"] }
# For a server instead:
# agent-client-protocol-http = { version = "3", features = ["server"] }
```

Cross-origin browser access is disabled by default. Configure `ServerOptions`
with `CorsOptions::allow_origins(...)` to allow specific browser origins.

Core SDK request cancellation support is forwarded through this transport.

Use `HttpClient::builder(url).configure_http(|http| ...).build()` to customize
reqwest headers, TLS, proxies, DNS, and timeouts. WebSocket handshakes use HTTP/1.1,
do not follow redirects, and are validated before sending ACP data. A raw
preconfigured TLS backend must itself use HTTP/1.1 ALPN.

Unconfigured WebSockets now share reqwest's proxy discovery and TLS trust defaults
with HTTP/SSE, rather than direct connections with bundled WebPKI roots. Use
`.configure_http(|http| http.no_proxy())` for direct connections and
`tls_certs_only` for explicit roots. Do not set handshake headers through
`reqwest::Proxy::headers`: plain-WS proxy headers can overwrite SDK request headers
after assembly, and the SDK cannot inspect that opaque configuration.

`HttpClient::from_http_client(exact_endpoint, client)` reuses an existing reqwest
client for HTTP/SSE only. The old `with_client` and `with_endpoint_and_client`
constructors remain as deprecated HTTP/SSE compatibility wrappers. WebSocket
calls to those constructors return a migration error; use the builder instead.

See the [client configuration and migration guide](https://agentclientprotocol.github.io/rust-sdk/http-transport.html#client-configuration).

See the [documentation](https://docs.rs/agent-client-protocol-http) for usage examples.