#![warn(missing_docs)]
#![deny(unsafe_code)]
pub mod agent_stream;
pub mod debounce;
pub mod error;
pub mod events;
pub mod partial_response;
pub mod parts_manager;
pub mod sse;
#[cfg(feature = "websocket")]
#[cfg_attr(docsrs, doc(cfg(feature = "websocket")))]
pub mod websocket;
pub use agent_stream::{
AgentStream, AgentStreamExt, OutputStream, ResponseStream, StreamConfig, StreamState,
TextDelta, TextDeltaStream,
};
pub use debounce::{
CoalescedTextStream, DebouncedStream, StreamDebounceExt, TextStreamExt, ThrottledStream,
};
pub use error::{StreamError, StreamResult};
pub use events::AgentStreamEvent;
pub use partial_response::{PartialResponse, ResponseDelta};
pub use parts_manager::{ManagedPart, ModelResponsePartsManager, ToolCallAccumulator, VendorId};
pub use sse::{SseEvent, SseEventExt, SseParser, SseStream};
pub mod prelude {
pub use crate::{
AgentStream, AgentStreamEvent, AgentStreamExt, PartialResponse, ResponseDelta, SseEvent,
SseEventExt, SseParser, StreamConfig, StreamDebounceExt, StreamError, StreamResult,
StreamState, TextDelta, TextStreamExt,
};
}
#[cfg(test)]
mod tests {
#[test]
fn test_prelude_imports() {
use crate::prelude::*;
let _ = StreamState::Pending;
let config = StreamConfig::default();
assert!(config.emit_partial_outputs);
}
}