1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
//! Hook-first AI agent framework with multi-channel support.
//!
//! Eli processes every inbound message through a linear hook pipeline:
//!
//! ```text
//! resolve_session → load_state → build_prompt → run_model
//! → save_state → render_outbound → dispatch_outbound
//! ```
//!
//! Each stage is a method on [`EliHookSpec`]. Builtins register first;
//! user plugins register after, and **last-registered wins** for chain-aborting hooks.
//!
//! # Feature flags
//!
//! | Flag | Default | Description |
//! |------|---------|-------------|
//! | `gateway` | yes | HTTP gateway channel via axum |
//! | `tape-viewer` | yes | Web UI for inspecting tape history |
//!
//! # Key types
//!
//! - [`EliFramework`] — Minimal framework core; everything grows from hook plugins.
//! - [`EliHookSpec`] — Trait defining all hook points in the turn pipeline.
//! - [`Channel`](channels::base::Channel) — Transport-level channel trait for inbound/outbound I/O.
// Re-export key types at the crate root for convenience.
pub use EliFramework;
pub use ;
pub use ;