autorize 0.1.0

Iterative-improvement harness: runs an agent CLI in sandboxed git worktrees against a scoring command, keeping improvements until a deadline fires.
const CONFIG_TMPL: &str = include_str!("templates/config.toml.tmpl");
const PROGRAM_TMPL: &str = include_str!("templates/program.md.tmpl");

pub fn render_config(experiment_name: &str) -> String {
    CONFIG_TMPL.replace("{{experiment_name}}", experiment_name)
}

pub fn render_program(experiment_name: &str) -> String {
    PROGRAM_TMPL.replace("{{experiment_name}}", experiment_name)
}

#[cfg(test)]
mod tests {
    use super::*;
    use crate::config::Config;

    #[test]
    fn renders_experiment_name() {
        let rendered = render_config("pi");
        assert!(rendered.contains("name = \"pi\""));
        assert!(!rendered.contains("{{experiment_name}}"));
    }

    #[test]
    fn renders_program_experiment_name() {
        let rendered = render_program("pi");
        assert!(rendered.contains("# pi"));
        assert!(!rendered.contains("{{experiment_name}}"));
    }

    #[test]
    fn template_is_valid_config() {
        let rendered = render_config("pi");
        let cfg = Config::from_toml(&rendered).expect("template parses");
        assert_eq!(cfg.experiment.name, "pi");
    }
}