obol-core 0.4.0

Read AI-agent transcripts (Claude Code, Codex, Pi) and estimate their USD cost.
Documentation
use std::path::PathBuf;

#[derive(Debug, thiserror::Error)]
pub enum ObolError {
    #[error("pricing tables not found at {0} — run `obol refresh`")]
    PricingTablesMissing(PathBuf),
    #[error("could not determine transcript dialect")]
    UnknownDialect,
    #[error("invalid as_of {0:?} — expected YYYY-MM-DD or YYYY-MM-DDTHH:MM:SSZ (UTC)")]
    InvalidAsOf(String),
    #[error("malformed transcript at line {line}: {msg}")]
    MalformedTranscript { line: usize, msg: String },
    #[error("network error during refresh: {0}")]
    Network(String),
    #[error(transparent)]
    Io(#[from] std::io::Error),
    #[error("json error: {0}")]
    Json(#[from] serde_json::Error),
}