#![forbid(unsafe_code)]
#![warn(missing_docs)]
#![warn(unreachable_pub)]
#![warn(rust_2018_idioms)]
pub mod adapt;
pub mod agent;
pub mod config;
pub mod context;
pub mod error;
pub mod health;
pub mod prelude;
pub mod provider;
pub mod runtime;
pub mod store;
pub mod token;
pub mod tool;
pub mod tool_output;
pub mod tool_scope;
#[cfg(feature = "rag")]
pub mod rag;
#[cfg(feature = "queue")]
pub mod queue;
pub use crate::error::{ContextError, Error, ProviderError, Result, StorageError, ToolError};
pub use crate::health::HealthStatus;
pub use crate::runtime::{
AgentEvent, AgentRuntime, AnyComponent, AnyComponentError, CacheStats, CompactionResult,
CompactionService, Component, ComponentContext, ComponentDescriptor, ComponentError,
ComponentFactory, ComponentRegistry, ComponentState, ContextPipelineComponent,
ContextPipelineConfig, Control, EmitRequest, EventKind, ExtensionError, ExtensionPoint,
Extensions, FactoryError, FactoryFn, FactoryRegistry, FileSessionDataStore, FileSnapshotStore,
InvocationError, InvocationEvent, InvocationHandle, InvocationSession, ManagedError,
ManagedRuntime, MemoryArtifactStoreComponent, MemoryEmbeddingStoreComponent,
MemoryExecutionStoreComponent, MemoryRunStoreComponent, MemorySessionDataStore,
MemorySessionStoreComponent, ModelRouter, PromptCacheConfig, ProviderHttpComponentConfig,
RegistryError, RunId, RunOutput, RunRequest, RunStatus, RuntimeError, RuntimeEventBridge,
RuntimeEventBridgeError, RuntimeEventBridgeHandle, RuntimeEventEnvelope, RuntimeEventId,
RuntimeEventStore, RuntimeEventStoreError, RuntimeInvocation, RuntimePolicy, RuntimeRoom,
RuntimeStreamAdapter, RuntimeStreamError, RuntimeSubscription, RuntimeSubscriptionError,
RuntimeSubscriptionHub, SessionDataError, SessionDataStore, ShutdownToken, Snapshot,
SnapshotStore, TypedAnyComponent, TypedFactory, default_factory_registry,
register_context_pipeline, register_memory_stores, register_providers,
};
#[cfg(feature = "openai")]
pub use crate::runtime::{OpenAiChatComponent, OpenAiEmbeddingComponent};
#[cfg(feature = "anthropic")]
pub use crate::runtime::AnthropicChatComponent;
pub use crate::tool_output::{ToolOutputConfig, TruncationResult};
#[cfg(feature = "redis")]
pub use crate::runtime::RedisSessionDataStore;