codex_cli/
provider_profile.rs1use std::sync::atomic::AtomicBool;
2
3use nils_common::provider_runtime::{
4 ExecInvocation, ExecProfile, HomePathSelection, PathsProfile, ProviderDefaults,
5 ProviderEnvKeys, ProviderProfile,
6};
7
8const SECRET_HOME: &[&str] = &[".config", "codex_secrets"];
9const AUTH_HOME: &[&str] = &[".agents", "auth.json"];
10
11static WARNED_INVALID_ALLOW_DANGEROUS: AtomicBool = AtomicBool::new(false);
12
13pub static CODEX_PROVIDER_PROFILE: ProviderProfile = ProviderProfile {
14 provider_name: "codex",
15 env: ProviderEnvKeys {
16 model: "CODEX_CLI_MODEL",
17 reasoning: "CODEX_CLI_REASONING",
18 allow_dangerous_enabled: "CODEX_ALLOW_DANGEROUS_ENABLED",
19 secret_dir: "CODEX_SECRET_DIR",
20 auth_file: "CODEX_AUTH_FILE",
21 secret_cache_dir: "CODEX_SECRET_CACHE_DIR",
22 starship_enabled: "CODEX_STARSHIP_ENABLED",
23 auto_refresh_enabled: "CODEX_AUTO_REFRESH_ENABLED",
24 auto_refresh_min_days: "CODEX_AUTO_REFRESH_MIN_DAYS",
25 },
26 defaults: ProviderDefaults {
27 model: "gpt-5.1-codex-mini",
28 reasoning: "medium",
29 starship_enabled: "false",
30 auto_refresh_enabled: "false",
31 auto_refresh_min_days: "5",
32 },
33 paths: PathsProfile {
34 feature_name: "codex",
35 feature_tool_script: "codex-tools.zsh",
36 secret_dir_home: HomePathSelection::ModernOnly(SECRET_HOME),
37 auth_file_home: HomePathSelection::ModernOnly(AUTH_HOME),
38 secret_cache_home: None,
39 },
40 exec: ExecProfile {
41 default_caller_prefix: "codex",
42 missing_prompt_label: "_codex_exec_dangerous",
43 binary_name: "codex",
44 failed_exec_message_prefix: "codex-tools: failed to run codex exec",
45 invocation: ExecInvocation::CodexStyle,
46 warned_invalid_allow_dangerous: &WARNED_INVALID_ALLOW_DANGEROUS,
47 },
48};