ai-agent 0.13.4

Idiomatic agent sdk inspired by the claude code source leak
Documentation
pub struct MeteredReader<R> {
    inner: R,
    bytes_read: u64,
}

impl<R: std::io::Read> MeteredReader<R> {
    pub fn new(inner: R) -> Self {
        Self {
            inner,
            bytes_read: 0,
        }
    }

    pub fn read(&mut self, buf: &mut [u8]) -> std::io::Result<usize> {
        let read = self.inner.read(buf)?;
        self.bytes_read += read as u64;
        Ok(read)
    }

    pub fn bytes_read(&self) -> u64 {
        self.bytes_read
    }

    pub fn into_inner(self) -> R {
        self.inner
    }
}