ai-agent 0.88.0

Idiomatic agent sdk inspired by the claude code source leak
Documentation
pub struct Percentile {
    values: Vec<f64>,
}

impl Percentile {
    pub fn new() -> Self {
        Self { values: Vec::new() }
    }

    pub fn add(&mut self, value: f64) {
        self.values.push(value);
    }

    pub fn get(&self, percentile: f64) -> f64 {
        if self.values.is_empty() {
            return 0.0;
        }

        let mut sorted = self.values.clone();
        sorted.sort_by(|a, b| a.partial_cmp(b).unwrap_or(std::cmp::Ordering::Equal));

        let idx = ((percentile / 100.0) * (sorted.len() - 1) as f64) as usize;
        sorted[idx]
    }
}

impl Default for Percentile {
    fn default() -> Self {
        Self::new()
    }
}