Skip to main content

agent_engine/
lib.rs

1//! `agent-engine` — streaming runtime, tools, MCP, skills, extensions, sidecar, events.
2//! Depends on `agent-core` + external crates only. Never depends on tui or bin.
3
4pub mod engine;
5pub mod events;
6pub mod extensions;
7pub mod help;
8pub mod mcp;
9pub mod runtime;
10pub mod sidecar;
11pub mod skills;
12#[cfg(test)]
13pub(crate) mod test_env;
14pub mod tools;
15
16// ── agent-core facade ──────────────────────────────────────────────────────────
17// Re-export core so that internal `crate::core::X`, `crate::config`, etc.
18// resolve inside agent-engine (mirrors root lib.rs approach).
19pub use agent_core::{
20    auth, chain, config, error, logging, models, protocol, session, watcher_types,
21};
22pub use agent_core::{core, memory, pricing};
23pub use agent_core::{epoch_millis, truncate_str, BoundedText};
24
25// ── engine-internal top-level re-exports ──────────────────────────────────────
26// These mirror what root lib.rs was exporting; they let intra-engine code use
27// `crate::Runtime`, `crate::StreamEvent`, etc. (45 uses of StreamEvent alone).
28pub use agent_core::SharedMessage;
29pub use agent_core::{next_turn_correlation_id, BudgetDimension, TurnError, TurnOutcome};
30pub use config::{load_config, resolve_system_prompt, SynapsConfig};
31pub use error::{Result, RuntimeError};
32pub use runtime::{AgentEvent, LlmEvent, Runtime, SessionEvent, StreamEvent};
33pub use serde_json::Value;
34pub use session::{
35    find_session, find_session_by_name, latest_session, list_recent_sessions, list_sessions,
36    resolve_session, validate_name, Session, SessionInfo,
37};
38pub use tokio_util::sync::CancellationToken;
39pub use tools::{Tool, ToolContext, ToolOutput, ToolRegistry};
40pub use watcher_types::{
41    AgentConfig, AgentStatusInfo, ExitReason, HandoffState, SessionLimits, SessionStats,
42    WatcherCommand, WatcherResponse,
43};
44
45pub mod orchestration;