soothe_client/appkit/
mod.rs1mod app_key;
4mod attachments;
5mod broadcaster;
6mod chunk_filter;
7mod classifier;
8mod daemon_session;
9mod loop_session_store;
10mod observability;
11mod pool;
12mod query_gate;
13mod thinking_step;
14mod turn_boundary;
15mod turn_runner;
16
17pub use app_key::AppKey;
18pub use attachments::{compact_attachments, compact_image_attachment, CompactImageOptions};
19pub use broadcaster::{SseBroadcaster, SseEvent};
20pub use chunk_filter::should_drop_stream_chunk_early;
21pub use classifier::{
22 ChatEventResult, ChatEventTerminal, ClassifierConfig, ClassifierConfigError, EventClassifier,
23};
24pub use daemon_session::{
25 DaemonSession, DaemonSessionOptions, EarlyDropFn, SendTurnOptions, TurnChunk,
26};
27pub use loop_session_store::{InMemoryLoopSessionStore, LoopSessionEntry, LoopSessionStore};
28pub use observability::TurnEventStats;
29pub use pool::{
30 input_message_for_loop, ConnectionPool, ErrPoolExhausted, PoolConfig, PoolStats, PooledConn,
31};
32pub use query_gate::{CancelFn, ErrQueryBusy, QueryGate, SendCancelFn};
33pub use thinking_step::{default_thinking_step_events, extract_thinking_step};
34pub use turn_boundary::{
35 is_daemon_turn_end_event, TurnBoundary, TurnLifecycleGate, TURN_END_IDLE, TURN_END_STOPPED,
36 TURN_END_STREAM_END,
37};
38pub use turn_runner::{InputOpts, TimeoutPolicy, TurnConfig, TurnRunner};