pub mod backend;
pub mod cache;
pub mod event;
pub mod finding;
pub mod ids;
pub mod schema;
pub use backend::*;
pub use cache::agent_cache_key;
pub use event::*;
pub use finding::*;
pub use ids::*;
pub use schema::*;
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn reexports_are_accessible() {
let _: AgentCapabilities = AgentCapabilities::default();
let _: AgentStatus = AgentStatus::Ok;
let _: AgentTask;
let _: AgentResult;
let _: RunContext;
let _: BackendError = BackendError::Cancelled;
let _: ToolPolicy = ToolPolicy::default();
let _: McpEndpoint;
let _: Artifact;
let _: LogRef = LogRef::default();
let _: fn(&str, Option<&str>, &str, u32) -> String = agent_cache_key;
let _: EventSender;
let _: AgentEvent;
let _: RunStatus = RunStatus::Completed;
let _: LogLevel = LogLevel::Info;
let _: PlanPhase;
let _: ProgressDelta;
let _: Finding;
let _: Severity = Severity::Info;
let _: Location;
let _: RunId = uuid::Uuid::nil();
let _: AgentId = uuid::Uuid::nil();
let _: PhaseId = 0u32;
let _: TokenUsage = TokenUsage::default();
let _: fn(&serde_json::Value, &serde_json::Value) -> Result<(), SchemaError> =
validate_output;
}
#[test]
fn submodule_paths_resolve() {
fn _assert_trait(_: &dyn backend::AgentBackend) {}
let _: event::AgentEvent;
let _: finding::Finding;
let _: ids::TokenUsage;
let _: schema::SchemaError;
let _: fn(&str, Option<&str>, &str, u32) -> String = cache::agent_cache_key;
}
#[test]
fn backend_error_is_retryable_helper() {
assert!(BackendError::Timeout.is_retryable());
assert!(BackendError::Spawn("x".into()).is_retryable());
assert!(!BackendError::Cancelled.is_retryable());
assert!(!BackendError::Protocol("x".into()).is_retryable());
assert!(!BackendError::Config("x".into()).is_retryable());
}
#[test]
fn agent_status_as_str_is_consistent() {
assert_eq!(AgentStatus::Ok.as_str(), "ok");
assert_eq!(AgentStatus::TimedOut.as_str(), "timed_out");
}
#[test]
fn token_usage_default_is_zero() {
let t = TokenUsage::default();
assert_eq!(t.total(), 0);
}
}