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