refactor(agent): use hive_claude::TokenUsage directly, drop the duplicate
This commit is contained in:
parent
c9de2eeb97
commit
66f5b8720d
7 changed files with 16 additions and 48 deletions
|
|
@ -12,6 +12,7 @@ use std::path::{Path, PathBuf};
|
|||
use std::sync::atomic::{AtomicBool, AtomicI64, AtomicU64, Ordering};
|
||||
use std::sync::{Arc, Mutex};
|
||||
|
||||
use hive_claude::TokenUsage;
|
||||
use rusqlite::{Connection, params};
|
||||
use serde::{Deserialize, Serialize};
|
||||
use tokio::sync::broadcast;
|
||||
|
|
@ -432,28 +433,6 @@ impl EventStore {
|
|||
}
|
||||
}
|
||||
|
||||
/// Token usage emitted by claude in the final `result` stream-json event.
|
||||
/// All counts are in tokens. `None` fields mean the server didn't report them.
|
||||
#[derive(Debug, Clone, Copy, Default, Serialize, Deserialize, PartialEq, Eq)]
|
||||
pub struct TokenUsage {
|
||||
pub input_tokens: u64,
|
||||
pub output_tokens: u64,
|
||||
pub cache_read_input_tokens: u64,
|
||||
pub cache_creation_input_tokens: u64,
|
||||
}
|
||||
|
||||
impl TokenUsage {
|
||||
/// Total context consumed this turn (input + cache reads + cache writes).
|
||||
/// This is the per-inference context footprint that counts against the
|
||||
/// model's `contextWindow` limit. Tracked from the last `assistant` event
|
||||
/// in the stream-json (per-inference usage, not the cumulative `result`
|
||||
/// event which sums across all inferences in a tool-heavy turn and can
|
||||
/// far exceed the per-inference window).
|
||||
#[must_use]
|
||||
pub fn context_tokens(&self) -> u64 {
|
||||
self.input_tokens + self.cache_read_input_tokens + self.cache_creation_input_tokens
|
||||
}
|
||||
}
|
||||
|
||||
/// Authoritative turn-loop state. The harness owns it; the web UI
|
||||
/// reads via `/api/state` and renders. Lives alongside the bus
|
||||
|
|
|
|||
Loading…
Reference in a new issue