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_hooks;
31mod modality_metadata;
32mod modality_stream;
33pub mod output;
34pub mod prompt;
35#[cfg(feature = "realtime")]
36pub mod realtime;
37pub mod registry;
38pub mod rerank;
39pub mod retry;
40pub mod skills;
41pub mod speech;
42pub mod speech_translation;
43pub mod stream_text;
44pub mod telemetry;
45pub mod timeout;
46pub mod transcription;
47#[cfg(feature = "video")]
48pub mod video;
49
50pub use agent::Agent;
51pub use agent::AgentCall;
52pub use agent::ToolLoopAgent;
53pub use batch::cancel_batch;
54pub use batch::get_batch_results;
55pub use batch::get_batch_status;
56pub use batch::list_batches;
57pub use batch::start_batch;
58pub use clock::Clock;
59pub use embed::cosine_similarity;
60pub use embed::embed;
61pub use embed::embed_many;
62pub use error::Error;
63pub use error::ErrorKind;
64pub use files::upload_file;
65pub use generate_text::GenerateText;
66pub use generate_text::GenerateTextResult;
67pub use generate_text::StepContent;
68pub use generate_text::StepResult;
69pub use generate_text::generate_text;
70pub use generate_text::has_tool_call;
71pub use generate_text::step_count;
72pub use hooks::HookFn;
73pub use hooks::Hooks;
74pub use image::generate_image;
75pub use middleware::EmbeddingModelMiddleware;
76pub use middleware::ImageModelMiddleware;
77pub use middleware::LanguageModelMiddleware;
78pub use middleware::ProviderMiddleware;
79pub use middleware::wrap_embedding_model;
80pub use middleware::wrap_image_model;
81pub use middleware::wrap_language_model;
82pub use middleware::wrap_provider;
83pub use output::Output;
84pub use prompt::CallSettings;
85pub use prompt::Instructions;
86#[cfg(feature = "realtime")]
87pub use realtime::RealtimeSession;
88#[cfg(feature = "realtime")]
89pub use realtime::realtime_session;
90pub use registry::ProviderRegistry;
91pub use registry::create_provider_registry;
92pub use registry::custom_provider;
93pub use rerank::rerank;
94pub use retry::RetryPolicy;
95pub use skills::upload_skill;
96pub use speech::generate_speech;
97pub use speech_translation::stream_speech_translation;
98pub use stream_text::StreamEvent;
99pub use stream_text::StreamText;
100pub use stream_text::StreamTextResult;
101pub use stream_text::stream_text;
102pub use telemetry::Telemetry;
103pub use telemetry::TelemetryOptions;
104pub use timeout::Timeout;
105pub use transcription::stream_transcribe;
106pub use transcription::transcribe;
107#[cfg(feature = "video")]
108pub use video::generate_video;
109
110pub(crate) const USER_AGENT: &str = concat!("ferrin/", env!("CARGO_PKG_VERSION"));