#![forbid(unsafe_code)]
#![cfg_attr(
test,
allow(
clippy::unwrap_used,
clippy::expect_used,
clippy::panic,
reason = "tests assert by unwrapping"
)
)]
pub mod agent;
pub mod agent_loop;
pub mod config;
pub mod event;
pub mod tool;
pub mod validate;
pub use agent::{
Agent, AgentError, AgentHooks, AgentListener, AgentOptions, AgentState, QueueMode, Subscription,
};
pub use agent_loop::{
AgentLoopError, RunToolCallOptions, ToolCallOutcome, agent_loop, agent_loop_continue,
declare_tool_changes, now_ms, run_tool_call, tool_result_message,
};
pub use config::{
AfterToolCall, AfterToolCallContext, AfterToolCallResult, AgentContext, AgentLoopConfig,
AgentLoopTurnUpdate, AgentRequestUpdate, AgentTurnContext, BeforeToolCall,
BeforeToolCallContext, BeforeToolCallResult, ConvertToLlm, FinishTurn, GetApiKey, HookError,
PrepareNextTurn, PrepareRequest, PrepareRequestContext, QueueSource, StreamFn, StreamRequest,
ToolExecution, TransformContext, TurnDecision, default_convert_to_llm,
};
pub use event::{AgentEvent, EventSink};
pub use tool::{
AgentTool, AgentToolResult, ExecutionMode, Replay, ToolDefinitionMeta, ToolError,
ToolInvocation, ToolUpdate, UpdateSink,
};
pub use validate::{ValidationError, check, validate_tool_arguments};