[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" }

[lints]
workspace = true
