## Why
Destination restrictions and policy revocation must remain effective during redirects, response body reads, and established WebSocket traffic. Policy denials must also survive error handling so callers do not retry them or report a revoked operation as successful.
## What changed
- Route managed HTTP clients through a shared `RequestBuilder` and policy-aware execution, checking each redirect destination before route resolution and retaining a network permit while consuming response bodies.
- Guard WebSocket connection setup, reads, and writes with revocable permits, including independent wakeups for split readers and writers.
- Preserve `TransportError::Policy` through HTTP, SSE, and realtime error handling, and treat policy denials as non-retryable.
- Keep the supplied network policy in plugin startup HTTP requests and propagate response body failures from backend and plugin requests.
## Testing
Add regression coverage for rejection before connecting, revocation during redirect routing and streamed body reads, split WebSocket revocation, realtime writer error propagation, and revoked plugin upload responses.
GitOrigin-RevId: fba36700444c98a8364c09b4dc5452c4d78a90fb
## What changed
- Add `HttpClientBuilder` for configuring default headers, redirects, the
Cloudflare cookie store, and request diagnostics without exposing the
underlying transport.
- Provide factory-backed construction for fixed destinations that respects
outbound proxy policy, alongside explicit direct and legacy
transport-default construction paths.
- Preserve the request-logging setting in `ReqwestTransport`, so disabling
diagnostics also suppresses transport-level URL and request-body traces.
- Add `HEAD`, `DELETE`, and query-parameter helpers to the shared client
wrappers.
## Testing
- Verify builder configuration survives policy-aware construction and custom
CA fallback.
- Verify disabled request logging omits request URLs and bodies from transport
traces.
GitOrigin-RevId: 529c33abefeb88f38ff9a0ead374d29fcc872e6a