use crate::cli::init::{HookKind, InitArgs};
pub(super) fn args() -> InitArgs {
InitArgs {
path: std::path::PathBuf::from("."),
provider: None,
model: None,
endpoint: None,
hooks: HookKind::PrePush,
force: false,
no_gitignore: false,
non_interactive: false,
interactive: false,
}
}
pub(super) fn auth_path(dir: &tempfile::TempDir) -> std::path::PathBuf {
dir.path().join("auth.toml")
}
pub(super) fn render_one(
preset: &'static crate::cli::init::presets::LlmPreset,
model: &str,
endpoint: &str,
) -> String {
render_with_quirks(preset, model, endpoint, preset.quirks())
}
pub(super) fn render_with_quirks(
preset: &'static crate::cli::init::presets::LlmPreset,
model: &str,
endpoint: &str,
quirks: crate::llm::quirks::Quirks,
) -> String {
let choice = match preset.backend_kind() {
crate::config::BackendKind::Http => crate::cli::init::config_file::Choice::http(
preset,
model.to_string(),
endpoint.to_string(),
false,
quirks,
),
crate::config::BackendKind::Codex => {
crate::cli::init::config_file::Choice::codex(preset, model.to_string())
}
crate::config::BackendKind::Unknown(_) => unreachable!("preset backend is known"),
};
crate::cli::init::config_file::render_chain(&[choice])
}