mirror of
https://github.com/openai/codex.git
synced 2026-10-20 17:38:45 +00:00
## What changed Move base instructions from the top-level `instructions` field into a prefixed `developer` message in `input` for standard Responses requests, matching Responses Lite. Remove the field from HTTP and WebSocket request types and assign instruction messages stable IDs derived from the thread and instruction text. ## Testing Extend standard and Responses Lite tests to cover instruction message serialization, stable IDs, and resume consistency. Update WebSocket tests to verify that changed instructions trigger a full request without `previous_response_id`. GitOrigin-RevId: e2de4b8e30a9339377fac133ceda981abd1a112b
30 lines
1.8 KiB
Markdown
30 lines
1.8 KiB
Markdown
# codex-api
|
|
|
|
Typed clients for Codex/OpenAI APIs built on top of the generic transport in `codex-client`.
|
|
|
|
- Hosts the request/response models and request builders for Responses and related Codex APIs.
|
|
- 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:
|
|
|
|
- **Responses endpoint**
|
|
- Input:
|
|
- `ResponsesApiRequest` for the request body (`model`, `input`, `tools`, `parallel_tool_calls`, reasoning/text controls).
|
|
- `ResponsesOptions` for transport/header concerns (`conversation_id`, `session_source`, `extra_headers`, `compression`, `turn_state`).
|
|
- Output: a `ResponseStream` of `ResponseEvent` (both re-exported from `common`).
|
|
|
|
- **Memory summarize endpoint**
|
|
- Input: `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>`.
|
|
- Output: `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 other endpoint-specific response values.
|