1#![forbid(unsafe_code)]
45
46pub mod agent;
47pub mod error;
48pub mod failover;
49pub mod instrumentation;
50mod json_schema;
51pub mod mcp;
52pub mod messages;
53pub mod model;
54pub mod model_config;
55pub mod providers;
56pub mod realtime;
57#[cfg(any(feature = "telemetry-otel", feature = "telemetry-datadog"))]
58pub mod telemetry;
59pub mod tools;
60pub mod usage;
61
62pub use agent::{Agent, AgentRunResult, AgentRunState, DeferredToolCall, RunInput};
63pub use error::AgentError;
64pub use failover::{
65 FailoverResult, classify_error_kind, run_with_config, run_with_config_and_classifier,
66 run_with_failover, run_with_failover_with_classifier, run_with_utility_failover,
67 run_with_utility_failover_with_classifier,
68};
69pub use instrumentation::{Instrumenter, NoopInstrumenter, TracingInstrumenter};
70pub use messages::{
71 AudioUrl, BinaryContent, DocumentUrl, ImageUrl, ModelMessage, ModelRequest, ModelRequestPart,
72 ModelResponse, ModelResponsePart, ProviderItemPart, RetryPromptPart, SystemPromptPart,
73 TextPart, ToolCallPart, ToolReturnPart, UserContent, UserPromptPart, VideoUrl,
74};
75pub use model::{
76 Model, ModelError, ModelRequestParameters, ModelSettings, ModelStream, OutputMode, StreamChunk,
77};
78pub use model_config::{
79 CircuitBreakerConfig, InMemoryResolver, ModelConfigEntry, ModelConfigResolver,
80 ResolvedModelConfig,
81};
82pub use providers::{Provider, ProviderError, infer_model, infer_provider};
83pub use realtime::grok::{
84 GrokClient as GrokRealtimeClient, GrokSender as GrokRealtimeSender,
85 ServerEvent as GrokRealtimeEvent, SessionConfig as GrokSessionConfig,
86};
87pub use tools::ToolError;
88pub use tools::{FunctionTool, RunContext, Tool, ToolDefinition, ToolKind, Toolset};
89pub use usage::{RequestUsage, RunUsage, UsageError, UsageLimits};