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, with a default
//! implementation backed by `rtb-chat` (formerly `rtb-ai`). Empty at
//! v0.1 and filled in at 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 the [rtb-docs v0.1 spec](https://gitlab.com/phpboyscout/rust-tool-base/-/wikis/specs/0009-rtb-docs-v0.1).
// `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;