pub mod convomem;
pub mod hybrid_v4;
pub mod locomo;
pub mod longmemeval;
pub mod membench;
use serde::{Deserialize, Serialize};
use std::collections::BTreeMap;
#[derive(Clone, Debug, Serialize, Deserialize)]
pub struct ScoreReport {
pub harness: String,
pub adapter: String,
pub dataset: String,
pub n_questions: usize,
pub runtime_seconds: f64,
pub timing: TimingBreakdown,
pub overall: BTreeMap<String, f64>,
#[serde(default, skip_serializing_if = "BTreeMap::is_empty")]
pub by_category: BTreeMap<String, BTreeMap<String, f64>>,
}
#[derive(Clone, Debug, Default, Serialize, Deserialize)]
pub struct TimingBreakdown {
pub ingest_s: f64,
pub retrieve_s: f64,
pub score_s: f64,
}
#[derive(Clone, Debug, Serialize, Deserialize)]
pub struct PerQuestionRow {
pub qid: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub qtype: Option<String>,
pub hit_at_5: u8,
pub hit_at_10: u8,
pub top5: Vec<String>,
pub gold: Vec<String>,
}