story-kit: merge 301_story_dedicated_token_usage_page_in_web_ui
This commit is contained in:
@@ -507,8 +507,11 @@ impl AgentPool {
|
||||
&& let Some(agent) = agents.get(&key_clone)
|
||||
&& let Some(ref pr) = agent.project_root
|
||||
{
|
||||
let model = config_clone
|
||||
.find_agent(&aname)
|
||||
.and_then(|a| a.model.clone());
|
||||
let record = super::token_usage::build_record(
|
||||
&sid, &aname, usage.clone(),
|
||||
&sid, &aname, model, usage.clone(),
|
||||
);
|
||||
if let Err(e) = super::token_usage::append_record(pr, &record) {
|
||||
slog_error!(
|
||||
|
||||
@@ -12,6 +12,8 @@ pub struct TokenUsageRecord {
|
||||
pub story_id: String,
|
||||
pub agent_name: String,
|
||||
pub timestamp: String,
|
||||
#[serde(default)]
|
||||
pub model: Option<String>,
|
||||
pub usage: TokenUsage,
|
||||
}
|
||||
|
||||
@@ -69,11 +71,17 @@ pub fn read_all(project_root: &Path) -> Result<Vec<TokenUsageRecord>, String> {
|
||||
}
|
||||
|
||||
/// Build a `TokenUsageRecord` from the parts available at completion time.
|
||||
pub fn build_record(story_id: &str, agent_name: &str, usage: TokenUsage) -> TokenUsageRecord {
|
||||
pub fn build_record(
|
||||
story_id: &str,
|
||||
agent_name: &str,
|
||||
model: Option<String>,
|
||||
usage: TokenUsage,
|
||||
) -> TokenUsageRecord {
|
||||
TokenUsageRecord {
|
||||
story_id: story_id.to_string(),
|
||||
agent_name: agent_name.to_string(),
|
||||
timestamp: Utc::now().to_rfc3339(),
|
||||
model,
|
||||
usage,
|
||||
}
|
||||
}
|
||||
@@ -102,7 +110,7 @@ mod tests {
|
||||
let dir = TempDir::new().unwrap();
|
||||
let root = dir.path();
|
||||
|
||||
let record = build_record("42_story_foo", "coder-1", sample_usage());
|
||||
let record = build_record("42_story_foo", "coder-1", None, sample_usage());
|
||||
append_record(root, &record).unwrap();
|
||||
|
||||
let records = read_all(root).unwrap();
|
||||
@@ -117,8 +125,8 @@ mod tests {
|
||||
let dir = TempDir::new().unwrap();
|
||||
let root = dir.path();
|
||||
|
||||
let r1 = build_record("s1", "coder-1", sample_usage());
|
||||
let r2 = build_record("s2", "coder-2", sample_usage());
|
||||
let r1 = build_record("s1", "coder-1", None, sample_usage());
|
||||
let r2 = build_record("s2", "coder-2", None, sample_usage());
|
||||
append_record(root, &r1).unwrap();
|
||||
append_record(root, &r2).unwrap();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user