Files
kebab/crates/kebab-tui/Cargo.toml
2026-05-04 16:56:12 +00:00

39 lines
1.7 KiB
TOML

[package]
name = "kebab-tui"
version = { workspace = true }
edition = { workspace = true }
rust-version = { workspace = true }
license = { workspace = true }
repository = { workspace = true }
description = "Ratatui shell + Library pane for kebab — UI consumes kebab-app facade only (P9-1)"
[dependencies]
kebab-core = { path = "../kebab-core" }
kebab-config = { path = "../kebab-config" }
# UI facade rule (design §8): UI crates may only touch `kebab-app`. The
# search / store / embed / llm / rag layers stay invisible behind it.
kebab-app = { path = "../kebab-app" }
# p9-fb-22: `unstable-rendered-line-info` exposes
# `Paragraph::line_count(width)` for the Ask follow-tail scroll
# math. Pinned ratatui 0.28.x means the unstable surface is fixed
# until we deliberately bump the dep.
ratatui = { version = "0.28", features = ["unstable-rendered-line-info"] }
crossterm = "0.28"
anyhow = { workspace = true }
tracing = { workspace = true }
thiserror = { workspace = true }
time = { workspace = true }
serde_json = { workspace = true }
# Korean / wide-char column width — Ratatui's `Span` truncates by chars,
# not display width, so a list cell with `한` (width 2) followed by `a`
# (width 1) overflows by one column without explicit width accounting.
unicode-width = "0.2"
# p9-fb-11: parse markdown answer bodies into styled `Span`/`Line`s.
# Same parser the ingest pipeline uses (kebab-parse-md) — keeps the
# tokenizer behavior aligned with what the corpus is normalized as.
pulldown-cmark = { version = "0.13", default-features = false }
[dev-dependencies]
tempfile = { workspace = true }
kebab-app = { path = "../kebab-app" }