Skip to main content

systemprompt_models/execution/context/
context_error.rs

1use thiserror::Error;
2
3pub const TASK_BASED_CONTEXT_MARKER: &str = "__task_based__";
4
5#[derive(Debug, Clone)]
6pub enum ContextIdSource {
7    Direct(String),
8    FromTask { task_id: String },
9}
10
11#[derive(Debug, Error)]
12pub enum ContextExtractionError {
13    #[error("Missing required header: {0}")]
14    MissingHeader(String),
15
16    #[error("Missing Authorization header")]
17    MissingAuthHeader,
18
19    #[error("Invalid JWT token: {0}")]
20    InvalidToken(String),
21
22    #[error("JWT missing required 'session_id' claim")]
23    MissingSessionId,
24
25    #[error("JWT missing required 'sub' (user_id) claim")]
26    MissingUserId,
27
28    #[error(
29        "Missing required 'x-context-id' header (for MCP routes) or contextId in body (for A2A \
30         routes)"
31    )]
32    MissingContextId,
33
34    #[error("Invalid header value: {header}, reason: {reason}")]
35    InvalidHeaderValue { header: String, reason: String },
36
37    #[error("Invalid user_id: {0}")]
38    InvalidUserId(String),
39
40    #[error("Database error: {0}")]
41    DatabaseError(String),
42
43    #[error("User not found: {0}")]
44    UserNotFound(String),
45
46    #[error("Forbidden header '{header}': {reason}")]
47    ForbiddenHeader { header: String, reason: String },
48}