aether_evals/agents/
env.rs1use llm::LlmModel;
2use std::collections::HashMap;
3use std::env::vars;
4
5pub const CONTAINER_AETHER_HOME: &str = "/root/.aether";
6
7pub fn default_eval_env_vars() -> HashMap<String, String> {
8 default_eval_env_vars_from(vars())
9}
10
11fn default_eval_env_vars_from(vars: impl IntoIterator<Item = (String, String)>) -> HashMap<String, String> {
12 let mut env_vars: HashMap<String, String> = vars
13 .into_iter()
14 .filter(|(key, _)| {
15 key != "AETHER_HOME"
16 && (LlmModel::ALL_REQUIRED_ENV_VARS.contains(&key.as_str())
17 || key == "OLLAMA_HOST"
18 || key.starts_with("AETHER_"))
19 })
20 .collect();
21 env_vars.insert("AETHER_HOME".to_string(), CONTAINER_AETHER_HOME.to_string());
22 env_vars
23}
24
25#[cfg(test)]
26mod tests {
27 use super::*;
28
29 #[test]
30 fn default_eval_env_vars_sets_container_aether_home() {
31 let env_vars = default_eval_env_vars_from([]);
32
33 assert_eq!(env_vars.get("AETHER_HOME"), Some(&CONTAINER_AETHER_HOME.to_string()));
34 }
35
36 #[test]
37 fn default_eval_env_vars_does_not_inherit_host_aether_home() {
38 let env_vars = default_eval_env_vars_from([("AETHER_HOME".to_string(), "/host/aether".to_string())]);
39
40 assert_eq!(env_vars.get("AETHER_HOME"), Some(&CONTAINER_AETHER_HOME.to_string()));
41 }
42}