# fewtok 0.1 — Cargo workspace. Crate-per-module enforces the layered acyclic DAG
# (core-registry.md). An upward layer edge = compile error (crate not in lower
# crate's [dependencies]). Binary = `fewtok` (cli crate). RTK (`ft/`) is a SEPARATE
# product and is EXCLUDED — never a workspace member (cli-daemon-ipc §2 OQ3).
[workspace]
resolver = "2"
members = ["crates/*"]
exclude = ["ft", "tmp", ".worktrees", ".claude", "node_modules", "cat", "dist"]

[workspace.package]
version = "0.1.0"
edition = "2021"
license = "MIT"
rust-version = "1.80"

[workspace.dependencies]
# L0 external
serde = { version = "1", features = ["derive"] }
serde_json = "1"
toml = "0.8"
sha2 = "0.10"
hex = "0.4"
dirs = "5"
rusqlite = { version = "0.32", features = ["bundled"] }
bytes = "1"
http = "1"
thiserror = "1"
# L1/L3 external (async + HTTP)
tokio = { version = "1", features = ["rt-multi-thread", "macros", "net", "signal", "time", "sync", "process", "fs"] }
axum = "0.7"
# default-features=false → NO auto gzip/brotli decompression → SSE bytes pass through
# verbatim (cache-safety: byte-identical determinism). Proven by tmp/rust-proxy-spike.
reqwest = { version = "0.12", default-features = false, features = ["rustls-tls", "stream"] }
futures-util = "0.3"
socket2 = { version = "0.5", features = ["all"] }
clap = { version = "4", features = ["derive"] }
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
libc = "0.2"

[profile.release]
opt-level = 2
lto = "thin"
codegen-units = 1
