Skip to main content

ephem_debugger_rs/
lib.rs

1//! Dev-only observability for AI agent debugging.
2//!
3//! `ephem-debugger` captures console logs, errors, and request metadata into
4//! in-memory ring buffers and exposes them over an IPC bridge that the `dbg`
5//! CLI connects to.
6//!
7//! # Quick Start (Axum)
8//!
9//! ```rust,ignore
10//! use axum::{Router, routing::get};
11//! use ephem_debugger::axum_middleware::DebuggerLayer;
12//!
13//! let app = Router::new()
14//!     .route("/", get(|| async { "Hello" }))
15//!     .layer(DebuggerLayer::new(3000));
16//! ```
17//!
18//! # Tracing integration
19//!
20//! ```rust,ignore
21//! use tracing_subscriber::prelude::*;
22//!
23//! let (debugger, tracing_layer) = ephem_debugger::axum_middleware::layers(3000);
24//!
25//! tracing_subscriber::registry()
26//!     .with(tracing_layer)
27//!     .with(tracing_subscriber::fmt::layer())
28//!     .init();
29//!
30//! let app = Router::new()
31//!     .route("/", get(handler))
32//!     .layer(debugger);
33//! ```
34
35pub mod bridge;
36pub mod browser;
37pub mod capture;
38pub mod protocol;
39pub mod store;
40
41#[cfg(feature = "axum")]
42pub mod axum_middleware;
43
44#[cfg(feature = "actix")]
45pub mod actix_middleware;
46
47#[cfg(feature = "rocket")]
48pub mod rocket_middleware;
49
50#[cfg(feature = "poem")]
51pub mod poem_middleware;
52
53// Re-export main types for convenience.
54pub use bridge::Bridge;
55pub use protocol::{ConsoleEntry, ErrorEntry, LogEntry, NetworkEntry, SessionInfo};
56pub use store::LogStore;