1pub mod agent;
2pub mod config;
3pub mod llm;
4pub mod mcp;
5pub mod tools;
6pub mod tracing;
7
8pub use agent::{Agent, AgentConfig, AgentError, AgentResult, ToolCallOutcome};
9pub use config::{Environment, ProviderConfig, ProviderKind, ProviderResolver};
10pub use llm::{LLMClient, LlmClient, LlmError, LlmRequest, LlmResponse};
11pub use mcp::{McpError, McpRequest, McpResponse};
12pub use tools::{Tool, ToolError, ToolRegistry, ToolResult};
13pub use tracing::{SpanContext, SpanStatus, SqliteTracer, StdoutTracer, TraceError, Tracer};
14
15pub fn greeting() -> &'static str {
17 "Hello, hefa-core!"
18}
19
20pub fn run() {
22 println!("{}", greeting());
23}
24
25#[cfg(test)]
26mod tests {
27 use super::*;
28
29 #[test]
30 fn greeting_matches_expected_output() {
31 assert_eq!(greeting(), "Hello, hefa-core!");
32 }
33}