#![cfg_attr(docsrs, feature(doc_cfg))]
#![doc(html_root_url = "https://docs.rs/entelix-agents/0.5.3")]
#![deny(missing_docs)]
#![allow(
clippy::doc_markdown,
clippy::missing_errors_doc,
clippy::missing_panics_doc,
clippy::redundant_pub_crate,
clippy::too_long_first_doc_paragraph
)]
pub(crate) mod agent;
mod chat_agent;
mod compaction;
mod react_agent;
mod state;
mod subagent;
mod summarizer;
mod supervisor;
pub use agent::{
Agent, AgentBuilder, AgentEvent, AgentEventSink, AgentObserver, AgentRunResult, AlwaysApprove,
ApprovalDecision, ApprovalLayer, ApprovalRequest, ApprovalService, Approver, BroadcastSink,
CaptureSink, ChannelApprover, ChannelApproverConfig, ChannelSink, DroppingSink, DynObserver,
EffectGate, ExecutionMode, FailOpenSink, FanOutSink, PendingApproval, StateErasureSink,
ToolApprovalEventSink, ToolApprovalEventSinkHandle, ToolEventLayer, ToolEventService, ToolHook,
ToolHookDecision, ToolHookLayer, ToolHookRegistry, ToolHookRequest, ToolHookService,
};
pub use chat_agent::{build_chat_graph, create_chat_agent};
pub use compaction::{
DEFAULT_SUMMARY_KEEP_RECENT_TURNS, DEFAULT_SUMMARY_SYSTEM_PROMPT, MessageRunnableCompactionExt,
RunnableCompacting, SummaryCompactor,
};
pub use react_agent::{ReActAgentBuilder, build_react_graph, create_react_agent};
pub use state::{ChatState, ReActState, SupervisorState};
pub use subagent::{Subagent, SubagentBuilder, SubagentMetadata, SubagentTool};
pub use summarizer::RunnableToSummarizerAdapter;
pub use supervisor::{
AgentEntry, SupervisorDecision, build_supervisor_graph, create_supervisor_agent,
team_from_supervisor,
};