agentic-server 0.5.0

Standalone axum server for agentic-api
Documentation
use std::process::Command;

#[test]
fn missing_llm_api_base_error_mentions_config_environment_and_flag() {
    let home = tempfile::tempdir().expect("temporary Agentic API home");
    let output = Command::new(env!("CARGO_BIN_EXE_agentic-server"))
        .env("AGENTIC_API_HOME", home.path())
        .env_remove("LLM_API_BASE")
        .env_remove("OIDC_ISSUER")
        .env_remove("OIDC_AUDIENCE")
        .output()
        .expect("agentic-server must run");

    assert!(!output.status.success());
    let stderr = String::from_utf8(output.stderr).expect("stderr must be UTF-8");
    assert!(
        stderr.contains("llm_api_base in config.toml, LLM_API_BASE, or --llm-api-base"),
        "unexpected error message: {stderr}"
    );
}

#[test]
fn help_does_not_expose_database_url_credentials() {
    let database_url = "postgresql://agentic:super-secret@db.example/agentic";
    let output = Command::new(env!("CARGO_BIN_EXE_agentic-server"))
        .env("DATABASE_URL", database_url)
        .arg("--help")
        .output()
        .expect("agentic-server help must run");

    assert!(output.status.success());
    let stdout = String::from_utf8(output.stdout).expect("stdout must be UTF-8");
    assert!(stdout.contains("DATABASE_URL"));
    assert!(!stdout.contains(database_url));
    assert!(!stdout.contains("super-secret"));
}