codex/codex_options.rs
1use std::collections::HashMap;
2
3use serde_json::{Map, Value};
4
5/// JSON value accepted by `CodexOptions::config`.
6pub type CodexConfigValue = Value;
7/// Root object type accepted by `CodexOptions::config`.
8pub type CodexConfigObject = Map<String, Value>;
9
10/// Options for constructing a [`crate::Codex`] client.
11#[derive(Debug, Clone, Default)]
12pub struct CodexOptions {
13 /// Absolute path to the `codex` executable.
14 ///
15 /// When omitted, the SDK searches `PATH`, local `node_modules`, vendor
16 /// binaries, and common global install locations.
17 pub codex_path_override: Option<String>,
18 /// Overrides `OPENAI_BASE_URL` for Codex CLI requests.
19 pub base_url: Option<String>,
20 /// Overrides `CODEX_API_KEY` for Codex CLI requests.
21 pub api_key: Option<String>,
22 /// Additional `--config key=value` overrides for the Codex CLI.
23 pub config: Option<CodexConfigObject>,
24 /// Environment variables passed to the Codex CLI process.
25 ///
26 /// When provided, the SDK does not inherit `std::env`.
27 pub env: Option<HashMap<String, String>>,
28}