Skip to main content

agent_base/engine/
mod.rs

1mod approval;
2pub mod auto_continue;
3mod builder;
4mod context;
5pub mod max_turns_nudge;
6mod middleware;
7mod pipeline;
8pub mod react_loop_guard;
9mod recovery;
10pub mod repeat_tool_limit;
11mod runtime;
12mod safety;
13mod session;
14mod session_store;
15mod tool_enforcement;
16mod turn_facts;
17
18pub use approval::{AllowAllApprovalHandler, ApprovalHandler, DenyAllApprovalHandler};
19pub use builder::AgentBuilder;
20pub use context::{
21    CompactionKind, CompactionOutcome, ContextCompaction, ContextWindowManager,
22    estimate_messages_tokens, first_system_prompt,
23};
24pub use middleware::{Middleware, PostLlmCtx, PreLlmCtx, UserMessageCtx};
25pub use pipeline::{DefaultPipeline, ToolExecutionPipeline};
26pub use react_loop_guard::{GuardCtx, GuardDecision, NoopGuard, ReactLoopGuard};
27pub(crate) use runtime::EventBus;
28pub use runtime::NoticeHandle;
29
30pub use crate::types::{AgentResult, ApprovalDecision, ApprovalRequest, RiskLevel, SessionId};
31pub use recovery::{
32    ConsecutiveFailureRecovery, RetryOnError, StopOnError, ToolErrorAction, ToolErrorRecovery,
33};
34pub use runtime::AgentRuntime;
35pub use runtime::QueueMode;
36pub use runtime::SessionManager;
37pub use safety::TurnToolLimitMiddleware;
38pub use session::AgentSession;
39#[cfg(feature = "fuzzing")]
40pub use session::validate_message_sequence;
41pub use session_store::{InMemorySessionStore, SessionStore};
42
43pub use auto_continue::AutoContinueMiddleware;
44pub use max_turns_nudge::{MaxTurnsNudgeConfig, MaxTurnsNudgeMiddleware};
45pub use repeat_tool_limit::{RepeatToolLimitConfig, RepeatToolLimitMiddleware};
46#[cfg(feature = "sqlite-session")]
47pub use session_store::SqliteSessionStore;
48pub use tool_enforcement::{ToolEnforcementConfig, ToolEnforcementMiddleware};
49pub use turn_facts::TurnFactMiddleware;