rtb-docs 0.6.0

Rust Tool Base — interactive docs browser, embedded-HTML `docs serve` server, and AI Q&A seam.
Documentation
[package]
name = "rtb-docs"
description = "Rust Tool Base — interactive docs browser, embedded-HTML `docs serve` server, and AI Q&A seam."
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
authors.workspace = true
repository.workspace = true
readme.workspace = true
homepage.workspace = true
documentation.workspace = true
categories.workspace = true
keywords.workspace = true

[lints]
workspace = true

[features]
# `ai` gates the Q&A seam. The default implementation is backed by
# `rtb-ai`; tools that want a different implementation can leave the
# feature off and supply their own `AiAnswerStream`.
default = []
ai = ["dep:rtb-ai", "dep:futures-util", "dep:secrecy"]

[dependencies]
rtb-app = { path = "../rtb-app", version = "0.6.0" }
rtb-error = { path = "../rtb-error", version = "0.6.0" }
rtb-assets = { path = "../rtb-assets", version = "0.6.0" }
rtb-cli = { path = "../rtb-cli", version = "0.6.0" }
rtb-ai = { path = "../rtb-ai", version = "0.6.0", optional = true }

# TUI
ratatui = { workspace = true }
crossterm = { workspace = true }
tui-markdown = { workspace = true }
pulldown-cmark = { workspace = true }
fuzzy-matcher = { workspace = true }

# HTTP server (`docs serve`)
axum = { workspace = true }
hyper = { workspace = true }
hyper-util = { workspace = true }
tower = { workspace = true }

# Full-text search
tantivy = { workspace = true }

# Async runtime + cancellation
tokio = { workspace = true }
tokio-util = { workspace = true }
async-trait = { workspace = true }

# Errors
miette = { workspace = true }
thiserror = { workspace = true }

# Structured logging
tracing = { workspace = true }

# Config index parsing
serde = { workspace = true }
serde_yaml = { workspace = true }
serde_json = { workspace = true }

# Link-time registration (docs command)
linkme = { workspace = true }

# `docs` CLI subcommand parsing — `list / show / browse / serve` flags
clap = { workspace = true }

# Stream adapters for the ai seam
tokio-stream = "0.1"
futures-core = "0.3"
# Pulled in by the `ai` feature — only the `AiClient`-backed seam
# uses these. Optional to keep default builds lean.
futures-util = { workspace = true, optional = true }
secrecy = { workspace = true, optional = true }

[dev-dependencies]
tempfile = { workspace = true }
reqwest = { workspace = true }