Skip to main content

microclaw_engine/
http_client.rs

1pub fn default_llm_user_agent() -> String {
2    let raw = env!("CARGO_PKG_VERSION");
3    let mut parts = raw.split('.');
4    let major = parts.next().unwrap_or(raw);
5    let minor = parts.next().unwrap_or("0");
6    format!("MicroClaw/{major}.{minor}")
7}
8
9/// Returns the User-Agent string used for outbound LLM HTTP calls.
10pub fn llm_user_agent(configured: &str) -> String {
11    let trimmed = configured.trim();
12    if trimmed.is_empty() {
13        default_llm_user_agent()
14    } else {
15        trimmed.to_string()
16    }
17}
18
19#[cfg(test)]
20mod tests {
21    use super::{default_llm_user_agent, llm_user_agent};
22
23    #[test]
24    fn test_llm_user_agent_default() {
25        let ua = default_llm_user_agent();
26        assert!(ua.starts_with("MicroClaw/"));
27    }
28
29    #[test]
30    fn test_llm_user_agent_uses_configured_value() {
31        assert_eq!(llm_user_agent("OpenClaw/0.1.0"), "OpenClaw/0.1.0");
32    }
33
34    #[test]
35    fn test_llm_user_agent_empty_uses_default() {
36        assert_eq!(llm_user_agent("  "), default_llm_user_agent());
37    }
38}