Skip to main content

ai_agent/constants/
env.rs

1// Source: /data/home/swei/claudecode/openclaudecode/src/utils/env.ts
2//! Environment variable name constants for Claude Code / AI Agent SDK.
3//!
4//! This module consolidates all environment variable names used throughout
5//! the codebase that have `CLAUDE_`, `AI_`, or `ANTHROPIC_` prefixes.
6
7/// AI_* environment variables
8pub mod ai {
9    /// API configuration
10    pub const API_BASE_URL: &str = "AI_API_BASE_URL";
11    pub const API_PROVIDER: &str = "AI_API_PROVIDER";
12    pub const AUTH_TOKEN: &str = "AI_AUTH_TOKEN";
13    pub const MODEL: &str = "AI_MODEL";
14
15    /// Model defaults
16    pub const SMALL_FAST_MODEL: &str = "AI_SMALL_FAST_MODEL";
17
18    /// Bridge mode
19    pub const BRIDGE_MODE: &str = "AI_BRIDGE_MODE";
20    pub const CCR_AUTO_CONNECT: &str = "AI_CCR_AUTO_CONNECT";
21    pub const CCR_MIRROR: &str = "AI_CCR_MIRROR";
22    pub const ORGANIZATION_UUID: &str = "AI_ORGANIZATION_UUID";
23
24    /// Bridge auth
25    pub const BRIDGE_OAUTH_TOKEN: &str = "AI_BRIDGE_OAUTH_TOKEN";
26    pub const BRIDGE_BASE_URL: &str = "AI_BRIDGE_BASE_URL";
27    pub const OAUTH_TOKEN: &str = "AI_OAUTH_TOKEN";
28
29    /// Compact settings
30    pub const CONTEXT_WINDOW: &str = "AI_CONTEXT_WINDOW";
31    pub const BLOCKING_LIMIT_OVERRIDE: &str = "AI_BLOCKING_LIMIT_OVERRIDE";
32    pub const AUTO_COMPACT_WINDOW: &str = "AI_AUTO_COMPACT_WINDOW";
33    pub const AUTOCOMPACT_PCT_OVERRIDE: &str = "AI_AUTOCOMPACT_PCT_OVERRIDE";
34    pub const DISABLE_COMPACT: &str = "AI_DISABLE_COMPACT";
35    pub const DISABLE_BACKGROUND_TASKS: &str = "AI_CODE_DISABLE_BACKGROUND_TASKS";
36
37    /// Upstream proxy
38    pub const UPSTREAM_PROXY: &str = "AI_UPSTREAM_PROXY";
39
40    /// Assistant mode
41    pub const CODE_ASSISTANT_MODE: &str = "AI_CODE_ASSISTANT_MODE";
42
43    /// Memory
44    pub const REMOTE_MEMORY_DIR: &str = "AI_REMOTE_MEMORY_DIR";
45    pub const MEMORY_PATH_OVERRIDE: &str = "AI_MEMORY_PATH_OVERRIDE";
46    pub const DISABLE_AUTO_MEMORY: &str = "AI_DISABLE_AUTO_MEMORY";
47    pub const SIMPLE: &str = "AI_SIMPLE";
48    pub const REMOTE: &str = "AI_REMOTE";
49    pub const COWORK_MEMORY_PATH_OVERRIDE: &str = "AI_COWORK_MEMORY_PATH_OVERRIDE";
50
51    /// Code memory
52    pub const CODE_DISABLE_AUTO_MEMORY: &str = "AI_CODE_DISABLE_AUTO_MEMORY";
53    pub const CODE_SIMPLE: &str = "AI_CODE_SIMPLE";
54    pub const CODE_REMOTE: &str = "AI_CODE_REMOTE";
55    pub const CODE_REMOTE_MEMORY_DIR: &str = "AI_CODE_REMOTE_MEMORY_DIR";
56
57    /// Extract memories
58    pub const DISABLE_EXTRACT_MEMORIES: &str = "AI_DISABLE_EXTRACT_MEMORIES";
59
60    /// Config directory
61    pub const CONFIG_DIR: &str = "AI_CONFIG_DIR";
62
63    /// Shell
64    pub const SHELL_PREFIX: &str = "AI_SHELL_PREFIX";
65
66    /// User identification
67    pub const USER_ID: &str = "AI_USER_ID";
68
69    /// Feature flags
70    pub const CODE_FEATURE_BRIDGE_MODE: &str = "AI_CODE_FEATURE_BRIDGE_MODE";
71    pub const CODE_FEATURE_FORK_SUBAGENT: &str = "AI_CODE_FEATURE_FORK_SUBAGENT";
72
73    /// Entry point
74    pub const CODE_ENTRYPOINT: &str = "AI_CODE_ENTRYPOINT";
75
76    /// Session
77    pub const CODE_SESSION_ID: &str = "AI_CODE_SESSION_ID";
78    pub const CODE_MODEL: &str = "AI_CODE_MODEL";
79
80    /// Context
81    pub const CODE_DISABLE_1M_CONTEXT: &str = "AI_CODE_DISABLE_1M_CONTEXT";
82    pub const CODE_MAX_CONTEXT_TOKENS: &str = "AI_CODE_MAX_CONTEXT_TOKENS";
83
84    /// Fullscreen
85    pub const FULLSCREEN: &str = "AI_FULLSCREEN";
86
87    /// Bash
88    pub const BASH_MAINTAIN_PROJECT_WORKING_DIR: &str = "AI_BASH_MAINTAIN_PROJECT_WORKING_DIR";
89
90    /// AWS region
91    pub const AWS_REGION: &str = "AI_AWS_REGION";
92    pub const AWS_DEFAULT_REGION: &str = "AI_AWS_DEFAULT_REGION";
93
94    /// Cloud ML
95    pub const CLOUD_ML_REGION: &str = "AI_CLOUD_ML_REGION";
96
97    /// Thinking
98    pub const ULTRATHINK: &str = "AI_ULTRATHINK";
99    pub const MAX_THINKING_TOKENS: &str = "AI_MAX_THINKING_TOKENS";
100
101    /// Windows paths
102    pub const CODE_GIT_BASH_PATH: &str = "AI_CODE_GIT_BASH_PATH";
103
104    /// Debug
105    pub const CODE_DEBUG_LOG_LEVEL: &str = "AI_CODE_DEBUG_LOG_LEVEL";
106    pub const CODE_DEBUG_LOGS_DIR: &str = "AI_CODE_DEBUG_LOGS_DIR";
107
108    /// Plan mode
109    pub const CODE_PLAN_MODE_V2: &str = "AI_CODE_PLAN_MODE_V2";
110    pub const CODE_PLAN_MODE_AGENT_COUNT: &str = "AI_CODE_PLAN_MODE_AGENT_COUNT";
111    pub const CODE_PLAN_MODE_EXPLORE_AGENT_COUNT: &str = "AI_CODE_PLAN_MODE_EXPLORE_AGENT_COUNT";
112    pub const CODE_PLAN_MODE_INTERVIEW: &str = "AI_CODE_PLAN_MODE_INTERVIEW";
113    pub const CODE_PEWTER_LEDGER_VARIANT: &str = "AI_CODE_PEWTER_LEDGER_VARIANT";
114
115    /// Swarm
116    pub const TEAMMATE_COMMAND: &str = "AI_TEAMMATE_COMMAND";
117    pub const TEAMMATE_COLOR: &str = "AI_AGENT_COLOR";
118    pub const PLAN_MODE_REQUIRED: &str = "AI_PLAN_MODE_REQUIRED";
119
120    /// Ultrareview
121    pub const ULTRAREVIEW_ENABLED: &str = "AI_ULTRAREVIEW_ENABLED";
122
123    /// Session ingress auth
124    pub const CODE_INGRESS_AUTH_REQUIRED: &str = "AI_CODE_INGRESS_AUTH_REQUIRED";
125    pub const CODE_INGRESS_TOKEN: &str = "AI_CODE_INGRESS_TOKEN";
126
127    /// User type
128    pub const USER_TYPE: &str = "USER_TYPE";
129
130    /// Worktree mode
131    pub const WORKTREE_MODE: &str = "AI_WORKTREE_MODE";
132    pub const WORKTREE_ROOT: &str = "AI_WORKTREE_ROOT";
133    pub const WORKTREE_SLUG: &str = "AI_WORKTREE_SLUG";
134    pub const ORIGINAL_CWD: &str = "AI_ORIGINAL_CWD";
135
136    /// Project path
137    pub const PROJECT_PATH: &str = "AI_PROJECT_PATH";
138
139    /// Disable autoupdater
140    pub const DISABLE_AUTOUPDATER: &str = "AI_DISABLE_AUTOUPDATER";
141
142    /// Version
143    pub const VERSION: &str = "AI_CODE_VERSION";
144
145    /// Claude config home (for fallback)
146    pub const CLAUDE_CONFIG_HOME: &str = "CLAUDE_CONFIG_HOME";
147    pub const CLAUDE_CONFIG_DIR: &str = "CLAUDE_CONFIG_DIR";
148    pub const CLAUDE_PROJECT_PATH: &str = "CLAUDE_PROJECT_PATH";
149
150    /// AI Agent SDK
151    pub const AGENT_SDK_VERSION: &str = "AI_AGENT_SDK_VERSION";
152    pub const AGENT_SDK_CLIENT_APP: &str = "AI_AGENT_SDK_CLIENT_APP";
153
154    /// Claude user ID
155    pub const CLAUDE_USER_ID: &str = "CLAUDE_USER_ID";
156
157    /// Claude trusted device token
158    pub const CLAUDE_TRUSTED_DEVICE_TOKEN: &str = "CLAUDE_TRUSTED_DEVICE_TOKEN";
159
160    /// Claude local OAuth
161    pub const USE_LOCAL_OAUTH: &str = "USE_LOCAL_OAUTH";
162    pub const CLAUDE_LOCAL_OAUTH_API_BASE: &str = "CLAUDE_LOCAL_OAUTH_API_BASE";
163    pub const USE_STAGING_OAUTH: &str = "USE_STAGING_OAUTH";
164
165    /// Mock headerless 429
166    pub const CLAUDE_MOCK_HEADERLESS_429: &str = "CLAUDE_MOCK_HEADERLESS_429";
167
168    /// Disable explore plan agents
169    pub const DISABLE_EXPLORE_PLAN_AGENTS: &str = "DISABLE_EXPLORE_PLAN_AGENTS";
170
171    /// Max tool use concurrency
172    pub const MAX_TOOL_USE_CONCURRENCY: &str = "AI_CODE_MAX_TOOL_USE_CONCURRENCY";
173
174    /// Dynamic env
175    pub fn dynamic_key(key: &str) -> String {
176        format!("AI_DYNAMIC_{}", key)
177    }
178
179    /// Vertex region mapping
180    pub mod vertex {
181        pub const REGION_CLAUDE_HAIKU_4_5: &str = "AI_VERTEX_REGION_CLAUDE_HAIKU_4_5";
182        pub const REGION_CLAUDE_3_5_HAIKU: &str = "AI_VERTEX_REGION_CLAUDE_3_5_HAIKU";
183        pub const REGION_CLAUDE_3_5_SONNET: &str = "AI_VERTEX_REGION_CLAUDE_3_5_SONNET";
184        pub const REGION_CLAUDE_3_7_SONNET: &str = "AI_VERTEX_REGION_CLAUDE_3_7_SONNET";
185        pub const REGION_CLAUDE_4_1_OPUS: &str = "AI_VERTEX_REGION_CLAUDE_4_1_OPUS";
186        pub const REGION_CLAUDE_4_0_OPUS: &str = "AI_VERTEX_REGION_CLAUDE_4_0_OPUS";
187        pub const REGION_CLAUDE_4_6_SONNET: &str = "AI_VERTEX_REGION_CLAUDE_4_6_SONNET";
188        pub const REGION_CLAUDE_4_5_SONNET: &str = "AI_VERTEX_REGION_CLAUDE_4_5_SONNET";
189        pub const REGION_CLAUDE_4_0_SONNET: &str = "AI_VERTEX_REGION_CLAUDE_4_0_SONNET";
190    }
191
192    /// Config home
193    pub const CONFIG_HOME: &str = "AI_CONFIG_HOME";
194
195    // Anthropic API (merged from anthropic module)
196    // Missing constants from the original anthropic module
197    pub const API_KEY: &str = "AI_API_KEY";
198    pub const BASE_URL: &str = "AI_BASE_URL";
199    pub const UNIX_SOCKET: &str = "AI_UNIX_SOCKET";
200    pub const DEFAULT_OPUS_MODEL: &str = "AI_DEFAULT_OPUS_MODEL";
201    pub const DEFAULT_SONNET_MODEL: &str = "AI_DEFAULT_SONNET_MODEL";
202    pub const DEFAULT_HAIKU_MODEL: &str = "AI_DEFAULT_HAIKU_MODEL";
203    pub const CUSTOM_MODEL_OPTION: &str = "AI_CUSTOM_MODEL_OPTION";
204    pub const BEDROCK_BASE_URL: &str = "AI_BEDROCK_BASE_URL";
205    pub const VERTEX_BASE_URL: &str = "AI_VERTEX_BASE_URL";
206    pub const VERTEX_PROJECT_ID: &str = "AI_VERTEX_PROJECT_ID";
207    pub const FOUNDRY_BASE_URL: &str = "AI_FOUNDRY_BASE_URL";
208    pub const FOUNDRY_RESOURCE: &str = "AI_FOUNDRY_RESOURCE";
209    pub const FOUNDRY_API_KEY: &str = "AI_FOUNDRY_API_KEY";
210    // Aliases with ANTHROPIC_ prefix for backward compatibility
211    pub const ANTHROPIC_BASE_URL: &str = "AI_BASE_URL";
212    pub const ANTHROPIC_API_KEY: &str = "AI_API_KEY";
213    pub const ANTHROPIC_AUTH_TOKEN: &str = "AI_AUTH_TOKEN";
214    pub const ANTHROPIC_MODEL: &str = "AI_MODEL";
215    pub const ANTHROPIC_UNIX_SOCKET: &str = "AI_UNIX_SOCKET";
216    pub const ANTHROPIC_DEFAULT_OPUS_MODEL: &str = "AI_DEFAULT_OPUS_MODEL";
217    pub const ANTHROPIC_DEFAULT_SONNET_MODEL: &str = "AI_DEFAULT_SONNET_MODEL";
218    pub const ANTHROPIC_DEFAULT_HAIKU_MODEL: &str = "AI_DEFAULT_HAIKU_MODEL";
219    pub const ANTHROPIC_CUSTOM_MODEL_OPTION: &str = "AI_CUSTOM_MODEL_OPTION";
220    pub const ANTHROPIC_BEDROCK_BASE_URL: &str = "AI_BEDROCK_BASE_URL";
221    pub const ANTHROPIC_VERTEX_BASE_URL: &str = "AI_VERTEX_BASE_URL";
222    pub const ANTHROPIC_VERTEX_PROJECT_ID: &str = "AI_VERTEX_PROJECT_ID";
223    pub const ANTHROPIC_FOUNDRY_BASE_URL: &str = "AI_FOUNDRY_BASE_URL";
224    pub const ANTHROPIC_FOUNDRY_RESOURCE: &str = "AI_FOUNDRY_RESOURCE";
225    pub const ANTHROPIC_FOUNDRY_API_KEY: &str = "AI_FOUNDRY_API_KEY";
226}
227
228/// AI_CODE_* environment variables (merged from claude_code module)
229pub mod ai_code {
230    // OAuth and auth
231    pub const OAUTH_TOKEN: &str = "AI_CODE_OAUTH_TOKEN";
232    pub const ACCESS_TOKEN: &str = "AI_CODE_ACCESS_TOKEN";
233    pub const ORG_UUID: &str = "AI_CODE_ORG_UUID";
234    pub const CUSTOM_OAUTH_URL: &str = "AI_CODE_CUSTOM_OAUTH_URL";
235    pub const OAUTH_CLIENT_ID: &str = "AI_CODE_OAUTH_CLIENT_ID";
236    pub const LOCAL_OAUTH_API_BASE: &str = "AI_LOCAL_OAUTH_API_BASE";
237    pub const LOCAL_OAUTH_APPS_BASE: &str = "AI_LOCAL_OAUTH_APPS_BASE";
238    pub const LOCAL_OAUTH_CONSOLE_BASE: &str = "AI_LOCAL_OAUTH_CONSOLE_BASE";
239
240    // Subscriber
241    pub const SUBSCRIBER: &str = "AI_CODE_SUBSCRIBER";
242
243    // Coordinator mode
244    pub const COORDINATOR_MODE: &str = "AI_CODE_COORDINATOR_MODE";
245
246    // Assistant mode - use ai::CODE_ASSISTANT_MODE instead
247    // pub const ASSISTANT_MODE: &str = "AI_CODE_ASSISTANT_MODE";
248
249    // Entrypoint - use ai::CODE_ENTRYPOINT instead
250
251    // Date override
252    pub const OVERRIDE_DATE: &str = "AI_CODE_OVERRIDE_DATE";
253
254    // Session - use ai::CODE_SESSION_ID instead
255    // pub const SESSION_ID: &str = "AI_CODE_SESSION_ID";
256    pub const SESSION_ACCESS_TOKEN: &str = "AI_CODE_SESSION_ACCESS_TOKEN";
257
258    // Config - use ai::CONFIG_DIR and ai::CONFIG_HOME instead
259    // pub const CONFIG_DIR: &str = "AI_CONFIG_DIR";
260    // pub const CONFIG_HOME: &str = "AI_CONFIG_HOME";
261
262    // Subprocess env
263    pub const SUBPROCESS_ENV_SCRUB: &str = "AI_CODE_SUBPROCESS_ENV_SCRUB";
264
265    // Fast mode
266    pub const DISABLE_FAST_MODE: &str = "AI_CODE_DISABLE_FAST_MODE";
267
268    // Legacy model remap
269    pub const DISABLE_LEGACY_MODEL_REMAP: &str = "AI_CODE_DISABLE_LEGACY_MODEL_REMAP";
270
271    // Simple mode
272    pub const SIMPLE: &str = "AI_CODE_SIMPLE";
273
274    // Privacy / traffic
275    pub const DISABLE_NONESSENTIAL_TRAFFIC: &str = "AI_CODE_DISABLE_NONESSENTIAL_TRAFFIC";
276
277    // Trusted device
278    pub const TRUSTED_DEVICE_TOKEN: &str = "AI_TRUSTED_DEVICE_TOKEN";
279
280    // Bridge - use ai::BRIDGE_OAUTH_TOKEN and ai::BRIDGE_BASE_URL instead
281    // pub const BRIDGE_OAUTH_TOKEN: &str = "AI_BRIDGE_OAUTH_TOKEN";
282    // pub const BRIDGE_BASE_URL: &str = "AI_BRIDGE_BASE_URL";
283    pub const CCR_MIRROR: &str = "AI_CODE_CCR_MIRROR";
284
285    // Session runner
286    pub const ENVIRONMENT_KIND: &str = "AI_CODE_ENVIRONMENT_KIND";
287    pub const FORCE_SANDBOX: &str = "AI_CODE_FORCE_SANDBOX";
288    pub const POST_FOR_SESSION_INGRESS_V2: &str = "AI_CODE_POST_FOR_SESSION_INGRESS_V2";
289    pub const USE_CCR_V2: &str = "AI_CODE_USE_CCR_V2";
290    pub const WORKER_EPOCH: &str = "AI_CODE_WORKER_EPOCH";
291
292    // VCR testing
293    pub const TEST_FIXTURES_ROOT: &str = "AI_CODE_TEST_FIXTURES_ROOT";
294
295    // Auth
296    pub const API_KEY_FILE_DESCRIPTOR: &str = "AI_CODE_API_KEY_FILE_DESCRIPTOR";
297    pub const OAUTH_TOKEN_FILE_DESCRIPTOR: &str = "AI_CODE_OAUTH_TOKEN_FILE_DESCRIPTOR";
298    pub const BARE: &str = "AI_CODE_BARE";
299    pub const HOMESPACE: &str = "AI_CODE_HOMESPACE";
300    pub const PREFER_THIRD_PARTY: &str = "AI_CODE_PREFER_THIRD_PARTY";
301    pub const NON_INTERACTIVE: &str = "AI_CODE_NON_INTERACTIVE";
302
303    // Attachments
304    pub const DISABLE_ATTACHMENTS: &str = "AI_CODE_DISABLE_ATTACHMENTS";
305    pub const PLAN_MODE_EXITED: &str = "AI_CODE_PLAN_MODE_EXITED";
306
307    // API features
308    pub const ENABLE_FINE_GRAINED_TOOL_STREAMING: &str =
309        "AI_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING";
310    pub const ENABLE_AGENT_SWARMS: &str = "AI_CODE_ENABLE_AGENT_SWARMS";
311    pub const USE_BEDROCK: &str = "AI_CODE_USE_BEDROCK";
312    pub const USE_VERTEX: &str = "AI_CODE_USE_VERTEX";
313    pub const USE_FOUNDRY: &str = "AI_CODE_USE_FOUNDRY";
314
315    // Streaming
316    pub const ENABLE_STREAM_WATCHDOG: &str = "AI_CODE_ENABLE_STREAM_WATCHDOG";
317    pub const STREAM_IDLE_TIMEOUT_MS: &str = "AI_CODE_STREAM_IDLE_TIMEOUT_MS";
318    pub const DISABLE_NONSTREAMING_FALLBACK: &str = "AI_CODE_DISABLE_NONSTREAMING_FALLBACK";
319    pub const API_TIMEOUT_MS: &str = "AI_CODE_API_TIMEOUT_MS";
320
321    // Terminal - use ai::ORIGINAL_CWD instead (no ai equivalent for TERMINAL_RECORDING)
322    pub const TERMINAL_RECORDING: &str = "AI_CODE_TERMINAL_RECORDING";
323    // pub const ORIGINAL_CWD: &str = "AI_CODE_ORIGINAL_CWD";
324
325    // Swarm - use ai::TEAMMATE_COMMAND, ai::TEAMMATE_COLOR, ai::PLAN_MODE_REQUIRED instead
326    // pub const TEAMMATE_COMMAND: &str = "AI_CODE_TEAMMATE_COMMAND";
327    // pub const TEAMMATE_COLOR: &str = "AI_CODE_AGENT_COLOR";
328    // pub const PLAN_MODE_REQUIRED: &str = "AI_CODE_PLAN_MODE_REQUIRED";
329
330    // Mock rate limits - use ai::CLAUDE_MOCK_HEADERLESS_429 instead
331    // pub const MOCK_HEADERLESS_429: &str = "AI_MOCK_HEADERLESS_429";
332
333    // Diagnostics
334    pub const DIAGNOSTICS_FILE: &str = "AI_CODE_DIAGNOSTICS_FILE";
335
336    // User ID - use ai::USER_ID instead
337    // pub const USER_ID: &str = "AI_USER_ID";
338
339    // Existing constants
340    pub const PROVIDER_MANAGED_BY_HOST: &str = "AI_CODE_PROVIDER_MANAGED_BY_HOST";
341    pub const SUBAGENT_MODEL: &str = "AI_CODE_SUBAGENT_MODEL";
342    pub const SKIP_BEDROCK_AUTH: &str = "AI_CODE_SKIP_BEDROCK_AUTH";
343    pub const SKIP_VERTEX_AUTH: &str = "AI_CODE_SKIP_VERTEX_AUTH";
344    pub const SKIP_FOUNDRY_AUTH: &str = "AI_CODE_SKIP_FOUNDRY_AUTH";
345    // pub const BASH_MAINTAIN_PROJECT_WORKING_DIR: &str = "AI_CODE_BASH_MAINTAIN_PROJECT_WORKING_DIR"; // use ai::BASH_MAINTAIN_PROJECT_WORKING_DIR
346    pub const API_KEY_HELPER_TTL_MS: &str = "AI_CODE_API_KEY_HELPER_TTL_MS";
347    pub const DISABLE_EXPERIMENTAL_BETAS: &str = "AI_CODE_DISABLE_EXPERIMENTAL_BETAS";
348    pub const DISABLE_TERMINAL_TITLE: &str = "AI_CODE_DISABLE_TERMINAL_TITLE";
349    pub const ENABLE_TELEMETRY: &str = "AI_CODE_ENABLE_TELEMETRY";
350    pub const EXPERIMENTAL_AGENT_TEAMS: &str = "AI_CODE_EXPERIMENTAL_AGENT_TEAMS";
351    pub const IDE_SKIP_AUTO_INSTALL: &str = "AI_CODE_IDE_SKIP_AUTO_INSTALL";
352    pub const MAX_OUTPUT_TOKENS: &str = "AI_CODE_MAX_OUTPUT_TOKENS";
353    pub const ATTRIBUTION_HEADER: &str = "AI_CODE_ATTRIBUTION_HEADER";
354    pub const SANDBOX_ENABLED: &str = "AI_CODE_SANDBOX_ENABLED";
355    pub const SANDBOX_DIR: &str = "AI_CODE_SANDBOX_DIR";
356    pub const EXIT_AFTER_STOP_DELAY: &str = "AI_CODE_EXIT_AFTER_STOP_DELAY";
357    pub const CLIENT_CERT: &str = "AI_CODE_CLIENT_CERT";
358    pub const CLIENT_KEY: &str = "AI_CODE_CLIENT_KEY";
359    pub const CLIENT_KEY_PASSPHRASE: &str = "AI_CODE_CLIENT_KEY_PASSPHRASE";
360
361    /// Compact
362    pub const BLOCKING_LIMIT_OVERRIDE: &str = "AI_CODE_BLOCKING_LIMIT_OVERRIDE";
363}
364
365/// AI_CODE_* model defaults
366pub mod ai_code_model {
367    pub const DEFAULT_HAIKU_MODEL: &str = "AI_DEFAULT_HAIKU_MODEL";
368    pub const DEFAULT_HAIKU_MODEL_DESCRIPTION: &str = "AI_DEFAULT_HAIKU_MODEL_DESCRIPTION";
369    pub const DEFAULT_HAIKU_MODEL_NAME: &str = "AI_DEFAULT_HAIKU_MODEL_NAME";
370    pub const DEFAULT_HAIKU_MODEL_SUPPORTED_CAPABILITIES: &str =
371        "AI_DEFAULT_HAIKU_MODEL_SUPPORTED_CAPABILITIES";
372    pub const DEFAULT_OPUS_MODEL: &str = "AI_DEFAULT_OPUS_MODEL";
373    pub const DEFAULT_OPUS_MODEL_DESCRIPTION: &str = "AI_DEFAULT_OPUS_MODEL_DESCRIPTION";
374    pub const DEFAULT_OPUS_MODEL_NAME: &str = "AI_DEFAULT_OPUS_MODEL_NAME";
375    pub const DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES: &str =
376        "AI_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES";
377    pub const DEFAULT_SONNET_MODEL: &str = "AI_DEFAULT_SONNET_MODEL";
378    pub const DEFAULT_SONNET_MODEL_DESCRIPTION: &str = "AI_DEFAULT_SONNET_MODEL_DESCRIPTION";
379    pub const DEFAULT_SONNET_MODEL_NAME: &str = "AI_DEFAULT_SONNET_MODEL_NAME";
380    pub const DEFAULT_SONNET_MODEL_SUPPORTED_CAPABILITIES: &str =
381        "AI_DEFAULT_SONNET_MODEL_SUPPORTED_CAPABILITIES";
382}
383
384/// Standard system environment variables (OS-level, not AI_* prefixed)
385pub mod system {
386    /// Shell
387    pub const SHELL: &str = "SHELL";
388    pub const HOME: &str = "HOME";
389    pub const USERPROFILE: &str = "USERPROFILE";
390
391    /// Path
392    pub const PATH: &str = "PATH";
393
394    /// Editor
395    pub const EDITOR: &str = "EDITOR";
396    pub const VISUAL: &str = "VISUAL";
397
398    /// Terminal
399    pub const TERM: &str = "TERM";
400
401    /// Localization
402    pub const LANG: &str = "LANG";
403    pub const LC_ALL: &str = "LC_ALL";
404
405    /// XDG directories
406    pub const XDG_CONFIG_HOME: &str = "XDG_CONFIG_HOME";
407    pub const XDG_DATA_HOME: &str = "XDG_DATA_HOME";
408    pub const XDG_CACHE_HOME: &str = "XDG_CACHE_HOME";
409
410    /// Windows paths
411    pub const APPDATA: &str = "APPDATA";
412    pub const LOCALAPPDATA: &str = "LOCALAPPDATA";
413
414    /// Proxy (lowercase variants)
415    pub const HTTP_PROXY: &str = "HTTP_PROXY";
416    pub const HTTPS_PROXY: &str = "HTTPS_PROXY";
417    pub const NO_PROXY: &str = "NO_PROXY";
418    pub const HTTP_PROXY_LOWER: &str = "http_proxy";
419    pub const HTTPS_PROXY_LOWER: &str = "https_proxy";
420    pub const NO_PROXY_LOWER: &str = "no_proxy";
421
422    /// CI/CD
423    pub const CI: &str = "CI";
424    pub const NODE_ENV: &str = "NODE_ENV";
425
426    /// Debug
427    pub const DEBUG: &str = "DEBUG";
428    pub const DEBUG_SDK: &str = "DEBUG_SDK";
429
430    /// Docker/Kubernetes
431    pub const DOCKER_CONTAINER: &str = "DOCKER_CONTAINER";
432    pub const KUBERNETES_SERVICE_HOST: &str = "KUBERNETES_SERVICE_HOST";
433
434    /// WSL
435    pub const WSL_DISTRO_NAME: &str = "WSL_DISTRO_NAME";
436
437    /// Bun
438    pub const BUN_VERSION: &str = "BUN_VERSION";
439    pub const BUN_EMBEDDED: &str = "BUN_EMBEDDED";
440
441    /// Compact
442    pub const DISABLE_COMPACT: &str = "DISABLE_COMPACT";
443
444    /// Autoupdater
445    pub const DISABLE_AUTOUPDATER: &str = "DISABLE_AUTOUPDATER";
446
447    /// GrowthBook
448    pub const ENABLE_GROWTHBOOK_DEV: &str = "ENABLE_GROWTHBOOK_DEV";
449
450    /// Process
451    pub const PPID: &str = "PPID";
452
453    /// VCR
454    pub const VCR_RECORD: &str = "VCR_RECORD";
455
456    /// Native installer
457    pub const ENABLE_PID_BASED_VERSION_LOCKING: &str = "ENABLE_PID_BASED_VERSION_LOCKING";
458}