use crate::agent::{AgentResultError, ContextError};
use crate::agent::error::{AgentBuildError, RunnableAgentError};
#[cfg(not(target_arch = "wasm32"))]
use crate::{environment::EnvironmentError, runtime::RuntimeError};
use autoagents_llm::error::LLMError;
#[derive(Debug, thiserror::Error)]
pub enum Error {
#[cfg(not(target_arch = "wasm32"))]
#[error(transparent)]
EnvironmentError(#[from] EnvironmentError),
#[cfg(not(target_arch = "wasm32"))]
#[error(transparent)]
RuntimeError(#[from] RuntimeError),
#[error(transparent)]
AgentBuildError(#[from] AgentBuildError),
#[error(transparent)]
RunnableAgentError(#[from] RunnableAgentError),
#[error(transparent)]
LLMError(#[from] LLMError),
#[error(transparent)]
AgentResultError(#[from] AgentResultError),
#[error(transparent)]
ContextError(#[from] ContextError),
#[error("Custom Error: {0}")]
CustomError(String),
}