Skip to main content

Module client

Module client 

Source
Expand description

Intelligence client — endpoint list selection + one round-trip. RFC 0006 + RFC 0018.

The transport is HTTPS (target-vision pivot; plaintext http:// is a loopback-only dev carve-out) — each AGENTD_INTELLIGENCE list element is an https:// URL; the wire is HTTP/1.1 (the gateway/provider speaks OpenAI-compatible /chat/completions). One request opens one connection (Connection: close) — simple and robust; pooling is a non-goal (RFC 0018 §10).

RFC 0018 makes the channel resilient: --intelligence is an ordered list (primary + fallbacks); complete() drives the list through the sticky-primary failover policy (super::failover) with a per-endpoint health record + circuit breaker (super::health). A single-element list is byte-for-byte RFC 0006 behaviour — the failover machinery is inert with one endpoint. The wire/adapter/JSON path is UNCHANGED; only endpoint selection wraps it.

Structs§

AllDownPolicy
Bounded, jittered all-down backoff (RFC 0018 §6 / §4.2). A daemon re-arms the sweep up to max_retries times, sleeping base × 2^n (capped at max) with per-attempt jitter, before surfacing the terminal all-down.
IntelClient
A resolved intelligence client over an ordered endpoint list (RFC 0018 §3).
IntelHealthReport
The edge-triggered intelligence-reachability report a child emits upward (RFC 0018 §6). active is the bounded (index, transport-scheme) of the serving endpoint — transport + index ONLY, NEVER a URL/cid/host or credential (RFC 0012 §3.7). None on entering all-down (nothing is serving).

Enums§

IntelError
Provider
Which in-binary adapter speaks to the endpoint. OpenAI-compatible is the canonical default; anthropic and Bedrock Converse (RFC 0031 §8 — native Bedrock) are the other in-binary dialects. Anything else lives behind a gateway (RFC 0006 §two-adapters).
Transport
Per-endpoint dial transport, owned by super::endpoints. Intelligence is HTTPS-only (target-vision pivot, Phase 1): one TCP shape, tls: true in production; tls: false exists solely for the loopback dev/test carve-out (the built-in mock LLM) and is rejected for non-loopback hosts at [resolve] — so the enum-of-transports (unix/vsock) is gone, not gated.