mod merger;
mod provider;
mod registry;
mod types;
#[cfg(feature = "agentfs")]
mod agentfs;
pub use provider::{ExternalSignalProvider, ProviderHealth};
pub use merger::{ConflictResolution, MergedReward, SignalMerger};
#[cfg(test)]
pub use provider::mock::MockExternalSignalProvider;
pub use registry::ExternalSignalRegistry;
pub use types::{ExternalSignalConfig, ExternalSignalSet, ToolSignal};
#[cfg(feature = "agentfs")]
pub use agentfs::{AgentFsConfig, AgentFsProvider};
pub type Result<T> = std::result::Result<T, ExternalSignalError>;
#[derive(Debug, Clone, thiserror::Error)]
pub enum ExternalSignalError {
#[error("external provider error: {0}")]
Provider(String),
#[error("configuration missing: {0}")]
ConfigMissing(String),
#[error("invalid configuration: {0}")]
InvalidConfig(String),
#[error("validation failed: {0}")]
Validation(String),
#[error("circuit breaker open")]
CircuitOpen,
#[error("provider unhealthy: {0}")]
Unhealthy(String),
}