1pub mod agent;
16pub mod batch;
17mod builder;
18pub(crate) mod cancel;
19pub mod clock;
20pub mod embed;
21pub mod error;
22pub mod files;
23pub mod generate_text;
24pub mod hooks;
25pub mod ids;
26pub mod image;
27pub(crate) mod limits;
28pub mod middleware;
29pub(crate) mod modality;
30mod modality_stream;
31pub mod output;
32pub mod prompt;
33#[cfg(feature = "realtime")]
34pub mod realtime;
35pub mod registry;
36pub mod rerank;
37pub mod retry;
38pub mod skills;
39pub mod speech;
40pub mod speech_translation;
41pub mod stream_text;
42pub mod telemetry;
43pub mod timeout;
44pub mod transcription;
45#[cfg(feature = "video")]
46pub mod video;
47
48pub use agent::Agent;
49pub use agent::AgentCall;
50pub use agent::ToolLoopAgent;
51pub use batch::cancel_batch;
52pub use batch::get_batch_results;
53pub use batch::get_batch_status;
54pub use batch::list_batches;
55pub use batch::start_batch;
56pub use clock::Clock;
57pub use embed::cosine_similarity;
58pub use embed::embed;
59pub use embed::embed_many;
60pub use error::Error;
61pub use error::ErrorKind;
62pub use files::upload_file;
63pub use generate_text::GenerateText;
64pub use generate_text::GenerateTextResult;
65pub use generate_text::StepContent;
66pub use generate_text::StepResult;
67pub use generate_text::generate_text;
68pub use generate_text::has_tool_call;
69pub use generate_text::step_count;
70pub use hooks::HookFn;
71pub use hooks::Hooks;
72pub use image::generate_image;
73pub use middleware::LanguageModelMiddleware;
74pub use middleware::wrap_language_model;
75pub use output::Output;
76pub use prompt::CallSettings;
77pub use prompt::Instructions;
78#[cfg(feature = "realtime")]
79pub use realtime::RealtimeSession;
80#[cfg(feature = "realtime")]
81pub use realtime::realtime_session;
82pub use registry::ProviderRegistry;
83pub use registry::create_provider_registry;
84pub use registry::custom_provider;
85pub use rerank::rerank;
86pub use retry::RetryPolicy;
87pub use skills::upload_skill;
88pub use speech::generate_speech;
89pub use speech_translation::stream_speech_translation;
90pub use stream_text::StreamEvent;
91pub use stream_text::StreamText;
92pub use stream_text::StreamTextResult;
93pub use stream_text::stream_text;
94pub use telemetry::Telemetry;
95pub use telemetry::TelemetryOptions;
96pub use timeout::Timeout;
97pub use transcription::stream_transcribe;
98pub use transcription::transcribe;
99#[cfg(feature = "video")]
100pub use video::generate_video;
101
102pub(crate) const USER_AGENT: &str = concat!("ferrin/", env!("CARGO_PKG_VERSION"));