a789495a98
FreeBSD Smoke / FreeBSD Smoke (x86_64) (push) Has been cancelled
CI / Quality Guardrails (push) Has been cancelled
CI / Build & Test (macos-latest) (push) Has been cancelled
CI / Build & Test (ubuntu-latest) (push) Has been cancelled
CI / Build & Test (windows-latest) (push) Has been cancelled
CI / Format (push) Has been cancelled
CI / PowerShell Syntax (push) Has been cancelled
CI / Windows Cross-Target Check (Linux) (push) Has been cancelled
116 lines
4.5 KiB
TOML
116 lines
4.5 KiB
TOML
[package]
|
|
name = "jcode-tui"
|
|
version = "0.1.0"
|
|
edition = "2024"
|
|
publish = false
|
|
|
|
# Presentation layer for jcode: the terminal UI (`tui`) and the offline replay
|
|
# `video_export`, extracted out of the monolithic root `jcode` crate so they
|
|
# compile as a separate rustc unit. This crate builds on top of the application
|
|
# core (`jcode-app-core`) and re-exports it via `pub use jcode_app_core::*`, so
|
|
# every existing `crate::<module>` path (e.g. `crate::config`, `crate::server`)
|
|
# keeps resolving unchanged across the tui code that was moved here. The root
|
|
# `jcode` crate (cli + bin) in turn re-exports this crate via
|
|
# `pub use jcode_tui::*`.
|
|
|
|
[lib]
|
|
name = "jcode_tui"
|
|
path = "src/lib.rs"
|
|
|
|
[dependencies]
|
|
# Application core (server, agent, provider, auth, session, tool, config, ...).
|
|
# Re-exported via `pub use jcode_app_core::*` in lib.rs. default-features=false
|
|
# so this crate (and ultimately the root crate) controls app-core's features.
|
|
jcode-app-core = { path = "../jcode-app-core", default-features = false }
|
|
|
|
# Pure math kernels for the idle animations (3D samplers, glyph chooser,
|
|
# HSV->RGB). Pinned to opt-level = 3 in all profiles via workspace Cargo.toml so
|
|
# the hot trig loops stay optimized even in debug/selfdev builds.
|
|
jcode-tui-anim = { path = "../jcode-tui-anim" }
|
|
|
|
# Async runtime
|
|
tokio = { version = "1", features = ["fs", "io-std", "io-util", "macros", "net", "process", "rt-multi-thread", "signal", "sync", "time"] }
|
|
futures = "0.3"
|
|
async-trait = "0.1"
|
|
|
|
# Serialization
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = { version = "1", features = ["raw_value"] }
|
|
|
|
# Utilities
|
|
anyhow = "1"
|
|
libc = "0.2"
|
|
chrono = { version = "0.4", features = ["serde"] }
|
|
regex = "1"
|
|
dirs = "5"
|
|
similar = "2"
|
|
tempfile = "3"
|
|
open = "5"
|
|
|
|
# OAuth / hashing helpers used by the login + account UI
|
|
base64 = "0.22"
|
|
sha2 = "0.10"
|
|
rand = "0.9.3"
|
|
hex = "0.4"
|
|
url = "2"
|
|
urlencoding = "2"
|
|
|
|
# TUI
|
|
ratatui = "0.30"
|
|
crossterm = { version = "0.29", features = ["event-stream"] }
|
|
arboard = "3"
|
|
image = { version = "0.25", default-features = false, features = ["png", "jpeg"] }
|
|
unicode-width = "0.2"
|
|
|
|
# Presentation-layer workspace crates
|
|
jcode-build-meta = { path = "../jcode-build-meta" }
|
|
jcode-logging = { path = "../jcode-logging" }
|
|
jcode-core = { path = "../jcode-core" }
|
|
jcode-fuzzy = { path = "../jcode-fuzzy" }
|
|
jcode-config-types = { path = "../jcode-config-types" }
|
|
jcode-selfdev-types = { path = "../jcode-selfdev-types" }
|
|
jcode-session-types = { path = "../jcode-session-types" }
|
|
jcode-provider-core = { path = "../jcode-provider-core" }
|
|
jcode-tui-markdown = { path = "../jcode-tui-markdown" }
|
|
jcode-tui-messages = { path = "../jcode-tui-messages" }
|
|
jcode-tui-core = { path = "../jcode-tui-core" }
|
|
jcode-tui-mermaid = { path = "../jcode-tui-mermaid" }
|
|
jcode-tui-account-picker = { path = "../jcode-tui-account-picker" }
|
|
jcode-tui-render = { path = "../jcode-tui-render" }
|
|
jcode-tui-visual-debug = { path = "../jcode-tui-visual-debug" }
|
|
jcode-tui-session-picker = { path = "../jcode-tui-session-picker", features = ["serde"] }
|
|
jcode-tui-style = { path = "../jcode-tui-style" }
|
|
terminal-colorsaurus = "1.0"
|
|
jcode-tui-permissions = { path = "../jcode-tui-permissions" }
|
|
jcode-tui-tool-display = { path = "../jcode-tui-tool-display" }
|
|
jcode-tui-usage-overlay = { path = "../jcode-tui-usage-overlay" }
|
|
jcode-terminal-image = { path = "../jcode-terminal-image" }
|
|
jcode-productivity-core = { path = "../jcode-productivity-core" }
|
|
jcode-tui-workspace = { path = "../jcode-tui-workspace" }
|
|
|
|
[features]
|
|
default = ["pdf", "embeddings", "bedrock"]
|
|
# Exposes bench-only debug helpers (e.g. debug_copy_selection_text_for_bench)
|
|
# consumed by the dev `tui_bench` binary in the root crate.
|
|
dev-bins = []
|
|
# Forwarded to app-core (and onward to jcode-base) so the root crate's feature
|
|
# set fully controls the optional stacks.
|
|
jemalloc = ["jcode-app-core/jemalloc"]
|
|
jemalloc-prof = ["jcode-app-core/jemalloc-prof"]
|
|
embeddings = ["jcode-app-core/embeddings"]
|
|
pdf = ["jcode-app-core/pdf"]
|
|
bedrock = ["jcode-app-core/bedrock"]
|
|
mmdr-size-api = ["jcode-tui-mermaid/mmdr-size-api"]
|
|
# Forwards the application core's `test-support` feature (and onward to
|
|
# jcode-base) so downstream crates' test targets can reach the whole stack's
|
|
# test helpers. Never enabled in normal (non-test) builds.
|
|
test-support = ["jcode-app-core/test-support"]
|
|
|
|
[dev-dependencies]
|
|
# Enables the downstream test-support helpers for *this* crate's own test
|
|
# target. Feature unification applies this only to test/bench/example builds.
|
|
jcode-app-core = { path = "../jcode-app-core", features = ["test-support"] }
|
|
|
|
[target.'cfg(target_os = "macos")'.dependencies]
|
|
global-hotkey = "0.7"
|