2025-11-25 18:06:12 +00:00
# codex-api
Typed clients for Codex/OpenAI APIs built on top of the generic transport in `codex-client` .
2026-02-10 08:12:31 -08:00
- Hosts the request/response models and request builders for Responses and Compact APIs.
2025-11-25 18:06:12 +00:00
- Owns provider configuration (base URLs, headers, query params), auth header injection, retry tuning, and stream idle settings.
- Parses SSE streams into `ResponseEvent` /`ResponseStream` , including rate-limit snapshots and API-specific error mapping.
- Serves as the wire-level layer consumed by `codex-core` ; higher layers handle auth refresh and business logic.
## Core interface
The public interface of this crate is intentionally small and uniform:
2026-02-10 08:12:31 -08:00
- **Responses endpoint**
- Input:
- `ResponsesApiRequest` for the request body (`model` , `instructions` , `input` , `tools` , `parallel_tool_calls` , reasoning/text controls).
- `ResponsesOptions` for transport/header concerns (`conversation_id` , `session_source` , `extra_headers` , `compression` , `turn_state` ).
2025-11-25 18:06:12 +00:00
- Output: a `ResponseStream` of `ResponseEvent` (both re-exported from `common` ).
- **Compaction endpoint**
- Input: `CompactionInput<'a>` (re-exported as `codex_api::CompactionInput` ):
- `model: &str` .
- `input: &[ResponseItem]` – history to compact.
- `instructions: &str` – fully-resolved compaction instructions.
- Output: `Vec<ResponseItem>` .
- `CompactClient::compact_input(&CompactionInput, extra_headers)` wraps the JSON encoding and retry/telemetry wiring.
2026-02-10 10:10:24 +00:00
- **Memory summarize endpoint**
- Input: `MemorySummarizeInput` (re-exported as `codex_api::MemorySummarizeInput` ):
2026-02-04 17:59:36 +00:00
- `model: String` .
2026-02-10 10:10:24 +00:00
- `raw_memories: Vec<RawMemory>` (serialized as `traces` for wire compatibility).
- `RawMemory` includes `id` , `metadata.source_path` , and normalized `items` .
2026-02-04 17:59:36 +00:00
- `reasoning: Option<Reasoning>` .
2026-02-10 10:10:24 +00:00
- Output: `Vec<MemorySummarizeOutput>` .
- `MemoriesClient::summarize_input(&MemorySummarizeInput, extra_headers)` wraps JSON encoding and retry/telemetry wiring.
2026-02-04 17:59:36 +00:00
2025-11-25 18:06:12 +00:00
All HTTP details (URLs, headers, retry/backoff policies, SSE framing) are encapsulated in `codex-api` and `codex-client` . Callers construct prompts/inputs using protocol types and work with typed streams of `ResponseEvent` or compacted `ResponseItem` values.