Skip to main content

monoloop_loop/transaction/
error.rs

1//! Startup errors (typed, safe).
2
3use monoloop_connector::ConnectorBuildError;
4use monoloop_contracts::ChannelCapabilityError;
5use thiserror::Error;
6
7/// Failure starting the transaction runtime (no partially started runtime is exposed).
8#[derive(Clone, Debug, Error, PartialEq, Eq)]
9pub enum StartupError {
10    /// Runtime / transaction limits invalid.
11    #[error("invalid runtime configuration: {0}")]
12    InvalidConfig(&'static str),
13    /// Channel registry validation failed.
14    #[error("channel registry invalid: {0}")]
15    ChannelRegistry(&'static str),
16    /// Channel capability matrix violation.
17    #[error("channel capability invalid: {0}")]
18    ChannelCapability(#[from] ChannelCapabilityError),
19    /// Host tool registry validation failed.
20    #[error("host tool registry invalid: {0}")]
21    ToolRegistry(&'static str),
22    /// Connector instance construction failed.
23    #[error("connector build failed: {0}")]
24    ConnectorBuild(#[from] ConnectorBuildError),
25    /// Connector instance session adapter mismatch with Channel kind.
26    #[error("connector session adapter mismatch: {0}")]
27    SessionAdapterMismatch(&'static str),
28    /// MCP loopback listener failed to bind.
29    #[error("MCP listener bind failed")]
30    McpBindFailed,
31    /// Tokio executor unavailable.
32    #[error("executor unavailable")]
33    ExecutorUnavailable,
34    /// Internal invariant during startup.
35    #[error("startup invariant failed: {0}")]
36    InvariantFailed(&'static str),
37}