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