| 1 | [package] |
| 2 | name = "codewhale-runtime" |
| 3 | version.workspace = true |
| 4 | edition.workspace = true |
| 5 | rust-version.workspace = true |
| 6 | license.workspace = true |
| 7 | repository.workspace = true |
| 8 | description = "Headless Codewhale runtime, split out of the terminal UI one module at a time; no terminal UI dependency" |
| 9 | |
| 10 | [lints] |
| 11 | workspace = true |
| 12 | |
| 13 | # Test helpers (process-global state guards, snapshots, diff renders) that |
| 14 | # the TUI's tests use. It only *adds* `pub` items; it changes no behavior. |
| 15 | # The TUI enables it from [dev-dependencies] only, so `-p codewhale-cli` / |
| 16 | # `-p codewhale-tui` release builds never see it; a `--workspace |
| 17 | # --all-features` build does, which is harmless for helpers. |
| 18 | # |
| 19 | # `test-thread-scoped-state` is the one behavior switch: it makes the retry |
| 20 | # banner and the provider-wide `Retry-After` pause per-thread so concurrent |
| 21 | # tests cannot see each other's HTTP retries (see `retry_status`). It takes |
| 22 | # effect only with debug assertions, so no optimized build ever carries it, |
| 23 | # even under `--all-features`. |
| 24 | [features] |
| 25 | test-support = [] |
| 26 | test-thread-scoped-state = [] |
| 27 | |
| 28 | [lib] |
| 29 | name = "codewhale_runtime" |
| 30 | path = "src/lib.rs" |
| 31 | |
| 32 | # This crate must never depend on codewhale-tui, codewhale-cli, ratatui, |
| 33 | # crossterm, ansi-to-tui or a terminal component kit. |
| 34 | # scripts/check-command-crate-boundaries.py enforces that with `cargo tree -p`. |
| 35 | [dependencies] |
| 36 | ahash = "0.8" |
| 37 | anyhow.workspace = true |
| 38 | chrono.workspace = true |
| 39 | codewhale-config = { path = "../config", version = "0.10.1" } |
| 40 | codewhale-core = { path = "../core", version = "0.10.1" } |
| 41 | codewhale-memory = { path = "../memory", version = "0.10.1" } |
| 42 | codewhale-models = { path = "../models", version = "0.10.1" } |
| 43 | fd-lock = "4.0.4" |
| 44 | lru = "0.18" |
| 45 | regex = "1.11" |
| 46 | serde.workspace = true |
| 47 | serde_json = { workspace = true, features = ["preserve_order", "raw_value"] } |
| 48 | sha2.workspace = true |
| 49 | tokio.workspace = true |
| 50 | tokio-util = { version = "0.7.16", features = ["io"] } |
| 51 | toml.workspace = true |
| 52 | tracing.workspace = true |
| 53 | uuid.workspace = true |
| 54 | |
| 55 | [dev-dependencies] |
| 56 | codewhale-models = { path = "../models", version = "0.10.1", features = [ |
| 57 | "test-support", |
| 58 | ] } |
| 59 | tempfile.workspace = true |
| 60 | wait-timeout = "0.2" |
| 61 | |
| 62 | [target.'cfg(unix)'.dependencies] |
| 63 | libc = "0.2" |
| 64 |