supercode-runtime 0.4.20

Optional native model and tool runtime for Supercode
Documentation
//! Provider-reported token accounting for native runtime turns.

use serde::Deserialize;

/// Token accounting returned with a completion.
#[derive(Debug, Clone, Default, Deserialize)]
pub struct Usage {
    /// Input tokens.
    #[serde(default)]
    pub prompt_tokens: u64,
    /// Output tokens.
    #[serde(default)]
    pub completion_tokens: u64,
    /// Total tokens.
    #[serde(default)]
    pub total_tokens: u64,
    /// Prompt-token cache breakdown, when the provider reports one.
    #[serde(default)]
    pub prompt_tokens_details: Option<PromptTokensDetails>,
}

/// The cache portion of [`Usage::prompt_tokens_details`].
#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, Deserialize)]
pub struct PromptTokensDetails {
    /// Tokens served from the provider's prompt cache.
    #[serde(default)]
    pub cached_tokens: u64,
}