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