gemini_adk_rs/live/
mod.rs

1//! Live session management — callback-driven full-duplex event handling.
2
3use std::future::Future;
4use std::pin::Pin;
5
6/// A boxed future type used across live session modules.
7pub type BoxFuture<T> = Pin<Box<dyn Future<Output = T> + Send + 'static>>;
8
9pub mod background_agent_dispatch;
10pub mod background_tool;
11pub mod builder;
12pub mod callbacks;
13pub mod computed;
14pub mod context_builder;
15pub mod context_writer;
16pub mod contract;
17pub(crate) mod control_plane;
18pub mod effect_executor;
19pub mod events;
20pub mod extractor;
21pub mod handle;
22pub mod input_vad;
23pub mod needs;
24pub mod persistence;
25pub mod phase;
26pub(crate) mod processor;
27pub mod reactor;
28pub mod replay;
29pub mod session_signals;
30pub mod soft_turn;
31pub mod steering;
32pub mod telemetry;
33pub mod temporal;
34pub mod transcript;
35pub mod watcher;
36
37pub use background_agent_dispatch::BackgroundAgentDispatcher;
38pub use background_tool::{
39    BackgroundToolTracker, DefaultResultFormatter, ResultFormatter, ToolExecutionMode,
40};
41pub use builder::LiveSessionBuilder;
42pub use callbacks::{CallbackMode, EventCallbacks};
43pub use computed::{ComputedRegistry, ComputedVar};
44pub use context_builder::ContextBuilder;
45pub use context_writer::{DeferredWriter, PendingContext};
46pub use contract::{
47    ComputedContract, ControlContract, ExtractorContract, PhaseContract, PreparationContract,
48    PromotionContract, RuntimeContract, ToolContract, TransitionContract, WatcherContract,
49};
50pub use effect_executor::LiveEffectExecutor;
51pub use events::{LiveEvent, LiveEventStream};
52pub use extractor::{ExtractionTrigger, FieldPromotion, LlmExtractor, MergePolicy, TurnExtractor};
53pub use handle::LiveHandle;
54pub use input_vad::{BackendInputVad, BackendVadSnapshot};
55pub use needs::{NeedsFulfillment, RepairAction, RepairConfig};
56pub use persistence::{FsPersistence, MemoryPersistence, SessionPersistence, SessionSnapshot};
57pub use phase::{
58    EnterContextFn, InstructionModifier, Phase, PhaseHook, PhaseInstruction, PhaseMachine,
59    PhasePreparation, PhaseTransition, StateGuard, Transition, TransitionEvaluation,
60    TransitionResult, TransitionTrigger,
61};
62pub use processor::{Delivery, DeliveryConfig};
63pub use reactor::{
64    EffectMode, EffectPolicy, LiveEffect, LiveReactor, Reaction, ReactorEvent, ReactorRule,
65    VoiceRuntimeState,
66};
67pub use replay::{attach_session, collect_events_until_idle, replay_session, ReplaySession};
68pub use session_signals::{SessionSignals, SessionType};
69pub use soft_turn::SoftTurnDetector;
70pub use steering::{ContextDelivery, SteeringMode};
71pub use telemetry::SessionTelemetry;
72pub use temporal::{
73    ConsecutiveFailureDetector, PatternDetector, RateDetector, SustainedDetector, TemporalPattern,
74    TemporalRegistry, TurnCountDetector,
75};
76pub use transcript::{ToolCallSummary, TranscriptBuffer, TranscriptTurn, TranscriptWindow};
77pub use watcher::{PredicateFn, WatchPredicate, Watcher, WatcherRegistry};