feat(usage): add local usage storage

This commit is contained in:
Felipe Coury
2026-05-28 14:29:44 -03:00
parent 489bf38658
commit 8fc9fa833b
8 changed files with 1385 additions and 0 deletions
+41
View File
@@ -1925,6 +1925,47 @@ pub struct TokenUsage {
pub total_tokens: i64,
}
#[derive(Debug, Clone, Copy, Deserialize, Serialize, PartialEq, Eq, Hash, JsonSchema, TS)]
#[serde(rename_all = "snake_case")]
#[ts(rename_all = "snake_case")]
pub enum UsageContributorKind {
Skill,
Subagent,
AgentTask,
App,
McpServer,
Plugin,
}
#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, Eq, JsonSchema, TS)]
pub struct UsageContributor {
pub kind: UsageContributorKind,
pub id: String,
pub label: String,
}
#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, Eq, JsonSchema, TS)]
pub struct UsageAttributionContributor {
pub contributor: UsageContributor,
#[ts(type = "number")]
pub source_estimated_tokens: i64,
#[ts(type = "number")]
pub attributed_tokens: i64,
}
#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, Eq, JsonSchema, TS)]
pub struct UsageAttributionItem {
pub sample_id: String,
pub turn_id: String,
pub response_id: String,
#[ts(type = "number")]
pub occurred_at: i64,
pub token_usage: TokenUsage,
#[ts(type = "number")]
pub prompt_estimated_tokens: i64,
pub contributors: Vec<UsageAttributionContributor>,
}
#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, Eq, JsonSchema, TS)]
pub struct TokenUsageInfo {
pub total_token_usage: TokenUsage,