#![cfg_attr(docsrs, feature(doc_cfg))]
pub use rig_core::*;
#[cfg(feature = "agent")]
#[cfg_attr(docsrs, doc(cfg(feature = "agent")))]
pub use rig_agent::{Agent, AgentBuilder, AgentRun, AgentRunner, ExtractionResponse};
pub mod core {
pub use rig_core::*;
}
#[cfg(feature = "agent")]
#[cfg_attr(docsrs, doc(cfg(feature = "agent")))]
pub mod agent {
pub use rig_agent::agent::*;
pub mod tool {
pub use rig_agent::tool::*;
}
}
pub mod client {
#[cfg(feature = "agent")]
pub use rig_agent::client::{AgentClientExt, AgentModelExt};
pub use rig_core::client::*;
}
pub mod completion {
#[cfg(feature = "agent")]
pub use rig_agent::completion::{
Chat, Prompt, PromptError, StructuredOutputError, TypedPrompt,
};
pub use rig_core::completion::*;
}
#[cfg(feature = "agent")]
#[cfg_attr(docsrs, doc(cfg(feature = "agent")))]
pub mod extractor {
pub use rig_agent::extractor::*;
}
#[cfg(feature = "agent")]
#[cfg_attr(docsrs, doc(cfg(feature = "agent")))]
pub mod integrations {
pub use rig_agent::integrations::*;
}
pub mod prelude {
#[cfg(feature = "agent")]
pub use crate::tool::{Tool, ToolContext};
#[cfg(feature = "agent")]
pub use rig_agent::prelude::{
Agent, AgentClientExt, AgentModelExt, Chat, MultiTurnStreamItem, Prompt, PromptError,
StreamingChat, StreamingPrompt, StreamingResult, StructuredOutputError, ToolSet,
TypedPrompt,
};
pub use rig_core::prelude::*;
}
pub mod streaming {
#[cfg(feature = "agent")]
pub use rig_agent::streaming::{StreamingChat, StreamingPrompt};
pub use rig_core::streaming::*;
}
pub mod tool {
pub use rig_core::tool::{
IntoToolOutput, ToolErrorKind, ToolExecutionError, ToolOutput, ToolResult,
};
pub use rig_core::tool::{
PortableDynamicTool, PortableTool, PortableToolEmbedding, portable_tool_definition,
};
pub use rig_core::tool::builtin;
#[cfg(all(feature = "agent", feature = "rmcp", not(target_family = "wasm")))]
#[cfg_attr(docsrs, doc(cfg(feature = "rmcp")))]
pub use rig_agent::tool::rmcp;
#[cfg(feature = "agent")]
#[cfg_attr(docsrs, doc(cfg(feature = "agent")))]
pub use rig_agent::tool::{
DynamicTool, MissingToolContext, Tool, ToolContext, ToolEmbedding, ToolSet, ToolSetBuilder,
server, tool_definition,
};
pub mod portable {
pub use rig_core::tool::*;
}
}
#[cfg(all(feature = "agent", any(test, feature = "test-utils")))]
#[cfg_attr(docsrs, doc(cfg(feature = "test-utils")))]
pub mod test_utils {
pub use rig_agent::test_utils::*;
}
#[cfg(feature = "derive")]
#[cfg_attr(docsrs, doc(cfg(feature = "derive")))]
pub use rig_derive::rig_tool;
#[cfg(feature = "derive")]
#[cfg_attr(docsrs, doc(cfg(feature = "derive")))]
pub use rig_derive::rig_tool as tool_macro;
pub mod memory {
pub use rig_core::memory::*;
#[cfg(feature = "memory")]
#[cfg_attr(docsrs, doc(cfg(feature = "memory")))]
pub use rig_memory::*;
}
#[cfg(feature = "bedrock")]
#[cfg_attr(docsrs, doc(cfg(feature = "bedrock")))]
pub mod bedrock {
pub use rig_bedrock::*;
}
#[cfg(feature = "candle")]
#[cfg_attr(docsrs, doc(cfg(feature = "candle")))]
pub mod candle {
pub use rig_candle::*;
}
#[cfg(any(
feature = "fastembed",
feature = "fastembed-hf-hub",
feature = "fastembed-ort-download-binaries",
))]
#[cfg_attr(
docsrs,
doc(cfg(any(
feature = "fastembed",
feature = "fastembed-hf-hub",
feature = "fastembed-ort-download-binaries"
)))
)]
pub mod fastembed {
pub use rig_fastembed::*;
}
#[cfg(feature = "gemini-grpc")]
#[cfg_attr(docsrs, doc(cfg(feature = "gemini-grpc")))]
pub mod gemini_grpc {
pub use rig_gemini_grpc::*;
}
#[cfg(feature = "helixdb")]
#[cfg_attr(docsrs, doc(cfg(feature = "helixdb")))]
pub mod helixdb {
pub use rig_helixdb::*;
}
#[cfg(feature = "lancedb")]
#[cfg_attr(docsrs, doc(cfg(feature = "lancedb")))]
pub mod lancedb {
pub use rig_lancedb::*;
}
#[cfg(feature = "milvus")]
#[cfg_attr(docsrs, doc(cfg(feature = "milvus")))]
pub mod milvus {
pub use rig_milvus::*;
}
#[cfg(feature = "mongodb")]
#[cfg_attr(docsrs, doc(cfg(feature = "mongodb")))]
pub mod mongodb {
pub use rig_mongodb::*;
}
#[cfg(feature = "neo4j")]
#[cfg_attr(docsrs, doc(cfg(feature = "neo4j")))]
pub mod neo4j {
pub use rig_neo4j::*;
}
#[cfg(feature = "postgres")]
#[cfg_attr(docsrs, doc(cfg(feature = "postgres")))]
pub mod postgres {
pub use rig_postgres::*;
}
#[cfg(feature = "qdrant")]
#[cfg_attr(docsrs, doc(cfg(feature = "qdrant")))]
pub mod qdrant {
pub use rig_qdrant::*;
}
#[cfg(feature = "s3vectors")]
#[cfg_attr(docsrs, doc(cfg(feature = "s3vectors")))]
pub mod s3vectors {
pub use rig_s3vectors::*;
}
#[cfg(feature = "scylladb")]
#[cfg_attr(docsrs, doc(cfg(feature = "scylladb")))]
pub mod scylladb {
pub use rig_scylladb::*;
}
#[cfg(feature = "sqlite")]
#[cfg_attr(docsrs, doc(cfg(feature = "sqlite")))]
pub mod sqlite {
pub use rig_sqlite::*;
}
#[cfg(feature = "surrealdb")]
#[cfg_attr(docsrs, doc(cfg(feature = "surrealdb")))]
pub mod surrealdb {
pub use rig_surrealdb::*;
}
#[cfg(feature = "vectorize")]
#[cfg_attr(docsrs, doc(cfg(feature = "vectorize")))]
pub mod vectorize {
pub use rig_vectorize::*;
}
#[cfg(feature = "vertexai")]
#[cfg_attr(docsrs, doc(cfg(feature = "vertexai")))]
pub mod vertexai {
pub use rig_vertexai::*;
}