Files
zeekay 4fe4cdd41c merge: openai/codex master (preserve Hanzo brand)
# Conflicts:
#	.github/pull_request_template.md
#	.github/workflows/rust-release-zsh.yml
#	.vscode/extensions.json
#	AGENTS.md
#	AGENTS.md~openai-upstream_main
#	codex-cli/.pack/package/bin/rg
#	codex-cli/bin/rg
#	codex-rs/app-server-protocol/src/protocol/v2.rs
#	codex-rs/app-server/src/codex_message_processor.rs
#	codex-rs/core/src/codex.rs
#	codex-rs/core/src/model_provider_info_tests.rs
#	codex-rs/core/src/models_manager/manager.rs
#	codex-rs/core/src/models_manager/manager_tests.rs
#	codex-rs/core/src/tools/handlers/multi_agents_v2/assign_task.rs
#	codex-rs/core/src/tools/spec_tests.rs
#	codex-rs/debug-client/Cargo.toml
#	codex-rs/debug-client/src/client.rs
#	codex-rs/debug-client/src/output.rs
#	codex-rs/debug-client/src/reader.rs
#	codex-rs/tools/src/agent_tool.rs
#	codex-rs/tools/src/agent_tool_tests.rs
#	codex-rs/tui/src/history_cell.rs
#	codex-rs/vendor/bubblewrap/NEWS.md
#	codex-rs/vendor/bubblewrap/README.md
#	codex-rs/vendor/bubblewrap/SECURITY.md
#	codex-rs/vendor/bubblewrap/bubblewrap.c
#	codex-rs/vendor/bubblewrap/meson.build
#	codex-rs/vendor/bubblewrap/meson_options.txt
#	codex-rs/vendor/bubblewrap/network.c
#	codex-rs/vendor/bubblewrap/release-checklist.md
#	codex-rs/vendor/bubblewrap/utils.c
#	codex-rs/windows-sandbox-rs/src/setup_orchestrator.rs
#	docs/contributing.md
#	scripts/codex_package/rg
2026-06-01 18:52:12 -07:00
..

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 Compact 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, instructions, 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).
  • 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.
  • 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 compacted ResponseItem values.