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 attachments;
8pub mod daemon;
9pub mod help;
10pub mod host;
11pub mod mcp;
12pub mod memory_backend;
13pub mod runtime;
14pub mod session;
15pub mod sidecar;
16pub mod skills;
17#[cfg(test)]
18pub(crate) mod test_env;
19pub mod tools;
20
21// ── agent-core facade ──────────────────────────────────────────────────────────
22// Re-export core so that internal `crate::core::X`, `crate::config`, etc.
23// resolve inside agent-engine (mirrors root lib.rs approach).
24pub use agent_core::{
25    auth, chain, config, error, logging, models, protocol, watcher_types,
26};
27pub use agent_core::{core, memory, pricing};
28pub use agent_core::{epoch_millis, truncate_str, BoundedText};
29
30// ── engine-internal top-level re-exports ──────────────────────────────────────
31// These mirror what root lib.rs was exporting; they let intra-engine code use
32// `crate::Runtime`, `crate::StreamEvent`, etc. (45 uses of StreamEvent alone).
33pub use agent_core::SharedMessage;
34pub use agent_core::{next_turn_correlation_id, BudgetDimension, TurnError, TurnOutcome};
35pub use config::{load_config, resolve_system_prompt, SynapsConfig};
36pub use error::{Result, RuntimeError};
37pub use host::{EngineHost, HostOpts, HostParts};
38pub use runtime::{AgentEvent, LlmEvent, Runtime, SessionEvent, StreamEvent};
39pub use session::{
40    ClientTransport, Envelope, LocalTransport, SessionCommand, SessionConfig, SessionEventWire,
41    SessionHandle, SessionId,
42};
43pub use serde_json::Value;
44pub use agent_core::session::{
45    find_session, find_session_by_name, latest_session, list_recent_sessions, list_sessions,
46    resolve_session, validate_name, Session, SessionInfo,
47};
48pub use tokio_util::sync::CancellationToken;
49pub use tools::{Tool, ToolContext, ToolOutput, ToolRegistry};
50pub use watcher_types::{
51    AgentConfig, AgentStatusInfo, ExitReason, HandoffState, SessionLimits, SessionStats,
52    WatcherCommand, WatcherResponse,
53};
54
55pub mod orchestration;