cera-cli 0.4.0

CLI for the Cera LLM inference engine
[package]
name = "cera-cli"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
repository.workspace = true
description = "CLI for the Cera LLM inference engine"
readme = "README.md"
keywords = ["llm", "inference", "cli", "gguf", "ai"]
categories = ["command-line-utilities", "science"]

[[bin]]
name = "cera"
path = "src/main.rs"

[dependencies]
# `remote` enables `BundleRepo` + `CeraEngine::from_bundle_id`, which the CLI's
# `--bundle-id` / `--quant` flags route through. Pulls reqwest + rustls + sha2
# (~30 deps) but that's the cost of HTTP-cached bundle downloads.
cera = { path = "../cera", version = "0.4.0", features = ["remote"] }
anyhow.workspace = true
clap.workspace = true
# `--tools` parses tool schemas from JSON and prints parsed tool calls as JSON.
serde_json.workspace = true
tracing.workspace = true
tracing-subscriber.workspace = true
# `/image` and `--image` accept `http(s)://` URLs in addition to filesystem
# paths; reqwest::blocking handles the fetch. Already in the build via
# `cera/remote`'s `BundleRepo`, but listed directly so the CLI's HTTP support
# doesn't depend on whichever transitive feature happens to enable it.
reqwest.workspace = true
# Cross-platform Ctrl+C handler for the `cera chat --no-tui` line REPL. The
# TUI doesn't need this — crossterm's raw mode delivers Ctrl+C as a key event
# before the kernel sends SIGINT.
ctrlc.workspace = true
# Terminal UI for `cera chat`. Auto-engaged when stdin+stdout are TTYs;
# `--no-tui` falls back to the line-based REPL. crossterm is ratatui's
# default backend on macOS / Linux / Windows.
ratatui = "0.29"
crossterm = "0.28"
# Accurate column-width count for the TUI input cursor (CJK / emoji).
# Tiny dep — just a static `char → width` table.
unicode-width = "0.2"

# `dlopen`/`dlsym` for the runtime-resolved NDK thermal API (src/thermal.rs).
# Already in the dependency graph via cera's affinity pinning on these targets.
[target.'cfg(target_os = "android")'.dependencies]
libc = "0.2"

[dev-dependencies]
tempfile.workspace = true

[features]
default = []
gpu = ["cera/gpu"]
metal = ["cera/metal"]
blas = ["cera/blas"]