pub mod aa;
pub mod aider;
pub mod arena;
pub mod livebench;
pub mod mock;
pub mod seal;
pub mod swebench;
pub mod swebench_r;
pub mod tbench;
use crate::cache::Cache;
use crate::config::Config;
use crate::models::SourceResult;
use anyhow::Result;
pub trait Source {
fn name(&self) -> &str;
fn fetch(&self, config: &Config, cache: &Cache) -> Result<SourceResult>;
}
pub fn all_sources() -> Vec<Box<dyn Source>> {
vec![
Box::new(aa::ArtificialAnalysis),
Box::new(arena::Arena),
Box::new(swebench::SweBench),
Box::new(aider::Aider),
Box::new(livebench::LiveBench),
Box::new(tbench::TerminalBench),
Box::new(seal::Seal),
Box::new(swebench_r::SweRebench),
]
}
pub fn all_sources_with_mock() -> Vec<Box<dyn Source>> {
vec![Box::new(mock::MockSource)]
}