hefa_core/
lib.rs

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
15/// Returns the greeting message printed by the binary entrypoint.
16pub fn greeting() -> &'static str {
17    "Hello, hefa-core!"
18}
19
20/// Executes the core logic of the binary.
21pub 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}