systemprompt_logging/trace/models/
tool.rs1use chrono::{DateTime, Utc};
7use serde::{Deserialize, Serialize};
8use serde_json::Value;
9use systemprompt_identifiers::{AiRequestId, ArtifactId, McpExecutionId, TaskId, TraceId};
10
11#[derive(Debug, Clone)]
12pub struct ToolExecutionFilter {
13 pub limit: i64,
14 pub since: Option<DateTime<Utc>>,
15 pub name: Option<String>,
16 pub server: Option<String>,
17 pub status: Option<String>,
18}
19
20impl ToolExecutionFilter {
21 pub const fn new(limit: i64) -> Self {
22 Self {
23 limit,
24 since: None,
25 name: None,
26 server: None,
27 status: None,
28 }
29 }
30
31 pub const fn with_since(mut self, since: DateTime<Utc>) -> Self {
32 self.since = Some(since);
33 self
34 }
35
36 systemprompt_models::builder_methods! {
37 with_name(name) -> String,
38 with_server(server) -> String,
39 with_status(status) -> String,
40 }
41}
42
43#[derive(Debug, Clone, Serialize, Deserialize)]
44pub struct ToolExecutionItem {
45 pub timestamp: DateTime<Utc>,
46 pub trace_id: TraceId,
47 pub tool_name: String,
48 pub server_name: Option<String>,
49 pub status: String,
50 pub execution_time_ms: Option<i32>,
51}
52
53#[derive(Debug, Clone, Serialize, Deserialize)]
54pub struct AuditLookupResult {
55 pub id: AiRequestId,
56 pub provider: Option<String>,
57 pub model: Option<String>,
58 pub requested_model: Option<String>,
59 pub input_tokens: Option<i32>,
60 pub output_tokens: Option<i32>,
61 pub cache_read_tokens: Option<i32>,
62 pub cache_creation_tokens: Option<i32>,
63 pub reasoning_tokens: Option<i32>,
64 pub cost_microdollars: i64,
65 pub latency_ms: Option<i32>,
66 pub status: String,
67 pub error_message: Option<String>,
68 pub task_id: Option<TaskId>,
69 pub trace_id: Option<TraceId>,
70}
71
72#[derive(Debug, Clone, Serialize, Deserialize)]
73pub struct AuditToolCallRow {
74 pub tool_name: String,
75 pub tool_input: String,
76 pub sequence_number: i32,
77}
78
79#[derive(Debug, Clone, Serialize, Deserialize)]
80pub struct LinkedMcpCall {
81 pub tool_name: String,
82 pub server_name: String,
83 pub status: String,
84 pub execution_time_ms: Option<i32>,
85}
86
87#[derive(Debug, Clone, Serialize, Deserialize)]
88pub struct McpToolExecution {
89 pub mcp_execution_id: McpExecutionId,
90 pub tool_name: String,
91 pub server_name: String,
92 pub status: String,
93 pub execution_time_ms: Option<i32>,
94 pub error_message: Option<String>,
95 pub input: String,
96 pub output: Option<String>,
97}
98
99#[derive(Debug, Clone, Serialize, Deserialize)]
100pub struct ToolLogEntry {
101 pub timestamp: DateTime<Utc>,
102 pub level: String,
103 pub module: String,
104 pub message: String,
105}
106
107#[derive(Debug, Clone, Serialize, Deserialize)]
108pub struct TaskArtifact {
109 pub artifact_id: ArtifactId,
110 pub artifact_type: String,
111 pub name: Option<String>,
112 pub source: Option<String>,
113 pub tool_name: Option<String>,
114 pub part_kind: Option<String>,
115 pub text_content: Option<String>,
116 pub data_content: Option<Value>,
117}