Skip to main content

systemprompt_models/profile/gateway/
error.rs

1//! Failure modes emitted while validating the gateway's references into the
2//! provider registry: duplicate route ids, and a route or `default_provider`
3//! naming a provider absent from `profile.providers`.
4
5use thiserror::Error;
6
7#[derive(Debug, Error)]
8pub enum GatewayProfileError {
9    #[error("gateway route id '{id}' is declared more than once")]
10    DuplicateRouteId { id: String },
11
12    #[error("gateway route '{route}' provider '{provider}' is not declared in profile.providers")]
13    RouteProviderNotInRegistry { route: String, provider: String },
14
15    #[error("gateway default_provider '{provider}' is not declared in profile.providers")]
16    DefaultProviderNotInRegistry { provider: String },
17
18    #[error("system_prompt override with action 'replace' must set a 'prompt'")]
19    OverrideReplaceMissingPrompt,
20
21    #[error("system_prompt override with action 'strip' must not set a 'prompt'")]
22    OverrideStripWithPrompt,
23
24    #[error("system_prompt override provider '{provider}' is not declared in profile.providers")]
25    OverrideProviderNotInRegistry { provider: String },
26
27    #[error("route `when.min_tools` must be at least 1 (0 matches every request)")]
28    RouteMatchZeroMinTools,
29
30    #[error("route `when` sets `requires_tools: false` but also a positive `min_tools`")]
31    RouteMatchContradictoryTools,
32}
33
34pub type GatewayResult<T> = Result<T, GatewayProfileError>;