Skip to main content

objectiveai_cli/command/agents/logs/token_usage/
get.rs

1//! `agents logs token-usage get` — read an agent's current stored
2//! `total_tokens` snapshot. `total_tokens` is null when no
3//! agent-completion usage has been recorded for the AIH yet.
4
5use objectiveai_sdk::cli::command::agents::logs::token_usage::get::{Request, Response};
6
7use crate::context::Context;
8use crate::error::Error;
9
10pub async fn execute(ctx: &Context, request: Request) -> Result<Response, Error> {
11    let db = ctx.db_client().await?.clone();
12    let total_tokens =
13        crate::db::logs::get_agent_token_usage(&db, &request.agent_instance_hierarchy).await?;
14    Ok(Response {
15        agent_instance_hierarchy: request.agent_instance_hierarchy,
16        total_tokens,
17    })
18}
19
20pub mod request_schema {
21    use objectiveai_sdk::cli::command::agents::logs::token_usage::get as sdk;
22    use objectiveai_sdk::cli::command::agents::logs::token_usage::get::request_schema::{
23        Request, Response,
24    };
25
26    use crate::context::Context;
27    use crate::error::Error;
28
29    pub async fn execute(_ctx: &Context, _request: Request) -> Result<Response, Error> {
30        Ok(objectiveai_sdk::cli::command::ResponseSchema(schemars::schema_for!(sdk::Request)))
31    }
32}
33
34pub mod response_schema {
35    use objectiveai_sdk::cli::command::agents::logs::token_usage::get as sdk;
36    use objectiveai_sdk::cli::command::agents::logs::token_usage::get::response_schema::{
37        Request, Response,
38    };
39
40    use crate::context::Context;
41    use crate::error::Error;
42
43    pub async fn execute(_ctx: &Context, _request: Request) -> Result<Response, Error> {
44        Ok(objectiveai_sdk::cli::command::ResponseSchema(schemars::schema_for!(sdk::Response)))
45    }
46}