1#![forbid(unsafe_code)]
20#![cfg_attr(
21 test,
22 allow(
23 clippy::unwrap_used,
24 clippy::expect_used,
25 clippy::panic,
26 reason = "tests assert by unwrapping"
27 )
28)]
29
30pub mod agent;
31pub mod agent_loop;
32pub mod config;
33pub mod event;
34pub mod tool;
35pub mod validate;
36
37pub use agent::{
38 Agent, AgentError, AgentHooks, AgentListener, AgentOptions, AgentState, QueueMode, Subscription,
39};
40pub use agent_loop::{
41 AgentLoopError, RunToolCallOptions, ToolCallOutcome, agent_loop, agent_loop_continue,
42 declare_tool_changes, now_ms, run_tool_call, tool_result_message,
43};
44pub use config::{
45 AfterToolCall, AfterToolCallContext, AfterToolCallResult, AgentContext, AgentLoopConfig,
46 AgentLoopTurnUpdate, AgentRequestUpdate, AgentTurnContext, BeforeToolCall,
47 BeforeToolCallContext, BeforeToolCallResult, ConvertToLlm, FinishTurn, GetApiKey, HookError,
48 PrepareNextTurn, PrepareRequest, PrepareRequestContext, QueueSource, StreamFn, StreamRequest,
49 ToolExecution, TransformContext, TurnDecision, default_convert_to_llm,
50};
51pub use event::{AgentEvent, EventSink};
52pub use tool::{
53 AgentTool, AgentToolResult, ExecutionMode, Replay, ToolDefinitionMeta, ToolError,
54 ToolInvocation, ToolUpdate, UpdateSink,
55};
56pub use validate::{ValidationError, check, validate_tool_arguments};