API key resolution with CODEX_API_KEY → auth.json → OPENAI_API_KEY precedence.
CODEX_API_KEY
auth.json
OPENAI_API_KEY
@spec api_key() :: String.t() | nil
@spec auth_paths() :: [String.t()]
@spec chatgpt_access_token() :: String.t() | nil
@spec codex_home() :: String.t()
@spec direct_api_key() :: String.t() | nil
@spec infer_auth_mode() :: :api | :chatgpt