Skip to main content

systemprompt_models/execution/context/
context_error.rs

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