systemprompt_models/execution/context/
context_error.rs1use 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}