Skip to main content

systemprompt_runtime/trace/
mod.rs

1//! Trace query services backing the `logs` CLI and audit surfaces.
2//!
3//! [`TraceQueryService`] reconstructs a request's timeline — log events, AI
4//! requests, MCP executions, and execution steps — from a trace id, while
5//! [`AiTraceService`] resolves per-task execution steps. The submodules are
6//! read-only query groups; result shapes are re-exported from `models`.
7//!
8//! Copyright (c) systemprompt.io — Business Source License 1.1.
9//! See <https://systemprompt.io> for licensing details.
10
11mod ai_trace_queries;
12mod ai_trace_service;
13mod audit_queries;
14mod list_queries;
15mod log_lookup_queries;
16mod log_search_queries;
17mod log_summary_queries;
18mod mcp_trace_queries;
19mod models;
20mod queries;
21mod request_queries;
22mod request_stats_queries;
23mod service;
24mod step_queries;
25mod tool_queries;
26
27pub use ai_trace_service::AiTraceService;
28pub use models::{
29    AiRequestClientEvidence, AiRequestDetail, AiRequestFilter, AiRequestInfo, AiRequestListItem,
30    AiRequestStats, AiRequestSummary, AuditLookupResult, AuditPage, AuditToolCallRow,
31    ConversationMessage, ExecutionStep, ExecutionStepSummary, LevelCount, LinkedMcpCall,
32    LogSearchFilter, LogSearchItem, LogTimeRange, McpExecutionSummary, McpToolExecution,
33    ModelStatsRow, ModuleCount, ProviderStatsRow, RequestCursor, RequestCursorError, TaskArtifact,
34    TaskInfo, ToolExecutionFilter, ToolExecutionItem, ToolLogEntry, TraceEvent, TraceListFilter,
35    TraceListItem,
36};
37pub use service::TraceQueryService;
38
39/// Why a trace lookup could not be answered.
40#[derive(Debug, thiserror::Error)]
41pub enum TraceError {
42    #[error("Database operation failed")]
43    Database(#[from] sqlx::Error),
44
45    #[error("Task not found: {partial_id}")]
46    TaskNotFound { partial_id: String },
47}