codex-rs/codex-api/README.md
Typed clients for Codex/OpenAI APIs built on top of the generic transport in codex-client.
ResponseEvent/ResponseStream, including rate-limit snapshots and API-specific error mapping.codex-core; higher layers handle auth refresh and business logic.The public interface of this crate is intentionally small and uniform:
Responses endpoint
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).ResponseStream of ResponseEvent (both re-exported from common).Compaction endpoint
CompactionInput<'a> (re-exported as codex_api::CompactionInput):
model: &str.input: &[ResponseItem] – history to compact.instructions: &str – fully-resolved compaction instructions.Vec<ResponseItem>.CompactClient::compact_input(&CompactionInput, extra_headers) wraps the JSON encoding and retry/telemetry wiring.Memory summarize endpoint
MemorySummarizeInput (re-exported as codex_api::MemorySummarizeInput):
model: String.raw_memories: Vec<RawMemory> (serialized as traces for wire compatibility).
RawMemory includes id, metadata.source_path, and normalized items.reasoning: Option<Reasoning>.Vec<MemorySummarizeOutput>.MemoriesClient::summarize_input(&MemorySummarizeInput, extra_headers) wraps JSON encoding and retry/telemetry wiring.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.