#![deny(missing_docs)]
pub use brainwires_core::{
CommitResult, IdempotencyRecord, IdempotencyRegistry, StagedWrite, StagingBackend, Tool,
ToolContext, ToolInputSchema, ToolResult,
};
mod default_executor;
mod error;
pub mod executor;
mod registry;
pub mod sanitization;
mod tool_search;
#[cfg(feature = "native")]
mod bash;
#[cfg(feature = "native")]
mod file_ops;
#[cfg(feature = "native")]
mod git;
#[cfg(feature = "native")]
mod search;
#[cfg(feature = "native")]
pub mod transaction;
#[cfg(feature = "native")]
pub mod validation;
#[cfg(feature = "native")]
mod web;
#[cfg(any(feature = "orchestrator", feature = "orchestrator-wasm"))]
pub mod orchestrator;
#[cfg(feature = "interpreters")]
mod code_exec;
#[cfg(feature = "rag")]
mod semantic_search;
#[cfg(feature = "rag")]
mod tool_embedding;
pub mod smart_router;
#[cfg(feature = "openapi")]
pub mod openapi;
#[cfg(feature = "email")]
mod email;
#[cfg(feature = "calendar")]
mod calendar;
#[cfg(feature = "browser")]
mod browser;
#[cfg(feature = "oauth")]
pub mod oauth;
#[cfg(feature = "system")]
pub mod system;
#[cfg(feature = "interpreters")]
pub mod interpreters;
pub use default_executor::BuiltinToolExecutor;
pub use error::{ResourceType, RetryStrategy, ToolErrorCategory, ToolOutcome, classify_error};
pub use executor::{PreHookDecision, ToolExecutor, ToolPreHook};
pub use registry::{ToolCategory, ToolRegistry};
pub use sanitization::{
contains_sensitive_data, filter_tool_output, is_injection_attempt, redact_sensitive_data,
sanitize_external_content, wrap_with_content_source,
};
pub use tool_search::ToolSearchTool;
#[cfg(feature = "native")]
pub use bash::BashTool;
#[cfg(feature = "native")]
pub use file_ops::FileOpsTool;
#[cfg(feature = "native")]
pub use git::GitTool;
#[cfg(feature = "native")]
pub use search::SearchTool;
#[cfg(feature = "native")]
pub use transaction::TransactionManager;
#[cfg(feature = "native")]
pub use validation::{ValidationTool, get_validation_tools};
#[cfg(feature = "native")]
pub use web::WebTool;
#[cfg(any(feature = "orchestrator", feature = "orchestrator-wasm"))]
pub use orchestrator::OrchestratorTool;
#[cfg(feature = "interpreters")]
pub use code_exec::CodeExecTool;
#[cfg(feature = "rag")]
pub use semantic_search::SemanticSearchTool;
#[cfg(feature = "rag")]
pub use tool_embedding::ToolEmbeddingIndex;
pub use smart_router::{
analyze_messages, analyze_query, get_context_for_analysis, get_smart_tools,
get_smart_tools_with_mcp, get_tools_for_categories,
};
#[cfg(feature = "openapi")]
pub use openapi::{
HttpMethod, OpenApiAuth, OpenApiEndpoint, OpenApiParam, OpenApiTool, execute_openapi_tool,
openapi_to_tools,
};
#[cfg(feature = "email")]
pub use email::EmailTool;
#[cfg(feature = "calendar")]
pub use calendar::CalendarTool;
#[cfg(feature = "browser")]
pub use browser::BrowserTool;