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
46
//! Interactive docs browser + embedded HTML server.
//!
//! # What ships
//!
//! - [`DocsBrowser`] — two-pane `ratatui` TUI over an embedded
//! markdown tree. Left pane is an index built from `_index.yaml`
//! (with a fallback filesystem scan); right pane renders the
//! selected page via `tui-markdown`.
//! - [`DocsServer`] — loopback-only HTTP server rendering the same
//! tree as HTML. Airgap-friendly — the tool binary carries
//! everything it needs via `rtb-assets`.
//! - [`search`] — `tantivy`-backed full-text search over rendered
//! markdown bodies, plus a `fuzzy-matcher`-powered title search.
//! - `ai` — trait seam for streaming Q&A. Empty at v0.1; gets
//! filled in when `rtb-ai` (now `rtb-chat`) landed in v0.3. Gated on the `ai`
//! Cargo feature.
//!
//! # What's deferred to 0.2.x follow-ups
//!
//! - Full clap dispatch layer for the `docs` subcommand (list /
//! show / browse / serve / ask). The `DocsCmd` ships as a
//! discoverability shim at v0.1.
//! - `TestBackend`-driven rendering assertions.
//! - Framework-docs-merge (spec § 2.7 O5 resolution).
//!
//! See `docs/development/specs/2026-04-23-rtb-docs-v0.1.md`.
// `deny` (not `forbid`) so `command.rs` can allow `unsafe_code` for
// the `linkme::distributed_slice` registration — same rationale as
// `rtb-forge` / `rtb-update`. No hand-rolled unsafe anywhere.
pub use DocsBrowser;
pub use DocsError;
pub use ;
pub use DocsServer;