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