pub mod file;
pub mod swebench;
pub use file::FileBenchmark;
pub use swebench::SweBenchAdapter;
use anyhow::Result;
use async_trait::async_trait;
use crate::evolution::trial::BenchmarkAdapter;
use crate::evolution::types::{Feedback, Task, Trajectory};
pub use self::single::SingleTaskBenchmark;
mod single;
pub struct NullBenchmark;
#[async_trait]
impl BenchmarkAdapter for NullBenchmark {
async fn get_tasks(&self, _split: &str, _limit: usize) -> Result<Vec<Task>> {
Ok(Vec::new())
}
async fn evaluate(&self, task: &Task, _trajectory: &Trajectory) -> Result<Feedback> {
Ok(Feedback {
success: false,
score: 0.0,
detail: format!("No benchmark configured for task '{}'", task.id),
raw: Default::default(),
})
}
}