Skip to main content

systemprompt_models/execution/context/
context_error.rs

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