use super::constants::{EvalProvider, Vertical};
use std::path::{Path, PathBuf};
pub fn prepare_vertical_dir(
vertical: Vertical,
base_dir: &Path,
_conproxy_bin: &Path,
proxy_listen: &str,
provider: EvalProvider,
) -> PathBuf {
let dir = base_dir.join("verticals").join(vertical.name());
std::fs::create_dir_all(&dir)
.unwrap_or_else(|e| panic!("Failed to create vertical dir {}: {e}", dir.display()));
if provider == EvalProvider::Claude {
let _ = std::process::Command::new("git")
.args(["init", "-q"])
.current_dir(&dir)
.output();
}
if vertical == Vertical::NoContext {
return dir;
}
let conproxy_dir = dir.join(".conproxy");
std::fs::create_dir_all(&conproxy_dir)
.unwrap_or_else(|e| panic!("Failed to create .conproxy in {}: {e}", dir.display()));
let toml = format!(
"[server]\nlisten = \"{proxy_listen}\"\n\n\
[upstreams.eval]\n\
url = \"http://{proxy_listen}\"\n\
type = \"qdrant\"\n\
timeout_secs = 30\n\n\
[contexts.default]\ndefault = true\n\n\
[[contexts.default.upstreams]]\n\
ref = \"eval\"\npriority = 0\n"
);
std::fs::write(conproxy_dir.join("conproxy.toml"), toml)
.unwrap_or_else(|e| panic!("Failed to write conproxy.toml in {}: {e}", dir.display()));
dir
}