Skip to main content

agent_runtime/
lib.rs

1// Core modules
2pub mod agent;
3pub mod config;
4pub mod error;
5pub mod event;
6pub mod llm;
7pub mod logging;
8pub mod retry;
9pub mod runtime;
10pub mod step;
11pub mod step_impls;
12pub mod timeout;
13pub mod tool;
14pub mod tool_loop_detection;
15pub mod tools;
16pub mod types;
17pub mod workflow;
18
19// Re-exports for convenience
20pub use agent::{Agent, AgentConfig};
21pub use config::{
22    LlamaConfig, LlmConfig, LoggingConfig, OpenAIConfig, RetryConfig, RuntimeConfig,
23    TimeoutConfigSettings, WorkflowConfig,
24};
25pub use error::{
26    AgentError, AgentErrorCode, ConfigError, ConfigErrorCode, LlmError, LlmErrorCode, RuntimeError,
27    ToolError, ToolErrorCode, WorkflowError, WorkflowErrorCode,
28};
29pub use event::{Event, EventStream, EventType};
30pub use llm::{ChatClient, ChatMessage, ChatRequest, ChatResponse, Role};
31pub use logging::FileLogger;
32pub use retry::RetryPolicy;
33pub use runtime::Runtime;
34pub use step::{ExecutionContext, Step, StepError, StepInput, StepOutput, StepResult, StepType};
35pub use step_impls::{AgentStep, ConditionalStep, SubWorkflowStep, TransformStep};
36pub use timeout::{with_timeout, TimeoutConfig};
37pub use tool::{NativeTool, Tool, ToolRegistry};
38pub use tool_loop_detection::{ToolCallTracker, ToolLoopDetectionConfig};
39pub use tools::{McpClient, McpTool, McpToolInfo};
40pub use types::*;
41pub use workflow::{Workflow, WorkflowBuilder, WorkflowState};
42
43// Prelude module for convenient imports in tests and examples
44pub mod prelude {
45    pub use crate::agent::{Agent, AgentConfig};
46    pub use crate::event::{Event, EventStream, EventType};
47    pub use crate::llm::{ChatClient, ChatMessage, ChatRequest, ChatResponse, Role};
48    pub use crate::step_impls::{AgentStep, ConditionalStep, SubWorkflowStep, TransformStep};
49    pub use crate::tool::{NativeTool, Tool, ToolRegistry};
50    pub use crate::types::{
51        AgentInput, AgentOutput, ToolError as TypesToolError, ToolResult, ToolStatus,
52    };
53    pub use crate::workflow::Workflow;
54
55    #[cfg(test)]
56    pub use crate::llm::{MockLlmClient, MockResponse, MockToolCall};
57
58    #[cfg(not(test))]
59    pub use crate::llm::{MockLlmClient, MockResponse, MockToolCall};
60}