cleanlib-cli 0.1.4

Terminal interface to CleanLibrary — query dependency verdicts and scan package manifests for ALLOW / DENY / WARN signals from the terminal or CI pipelines.
[package]
name = "cleanlib-cli"
# 0.1.4 — App-4 CLEANLIB-211..214: `cleanlib fix` autonomous remediation. Reads
# customer lockfiles (npm/pypi/cargo/go), resolves verdicts, plans upgrades,
# dry-run default, --apply gate, --risk-accept skip, --allow-list restrict,
# --auto-pr host-agnostic bundle.
# 0.1.3 — CLEANLIB-179..184 risk-accept hygiene bundle (blank-field rejection,
# timestamped backup before overwrite, clear missing-directory error, help-text
# for the bash `!` history-expansion gotcha). Prior 0.1.2: CLEANLIB-155/156.
version = "0.1.4"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true
description = "Terminal interface to CleanLibrary — query dependency verdicts and scan package manifests for ALLOW / DENY / WARN signals from the terminal or CI pipelines."
keywords = ["security", "dependencies", "verdicts", "supply-chain", "cli"]
categories = ["command-line-utilities", "development-tools"]

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

# Cli8 integration matrix lives in tests/integration/ (per dispatch §2.8);
# Cargo only auto-discovers top-level tests/*.rs, so we register the dir
# explicitly with the per-target `path =` knob.
[[test]]
name = "integration"
path = "tests/integration/main.rs"

[dependencies]
clap = { workspace = true }
cleanlib-client = { workspace = true }
anyhow = { workspace = true }
chrono = { workspace = true }
tokio = { workspace = true, features = ["io-std"] }
serde = { workspace = true }
serde_json = { workspace = true }
toml = { workspace = true }
futures-util = { workspace = true }
owo-colors = { workspace = true }
comfy-table = { workspace = true }
is-terminal = { workspace = true }
# cycle-7 Cli6/Cli7
keyring = { workspace = true }
sled = { workspace = true }
bincode = { workspace = true }
dirs = { workspace = true }

[dev-dependencies]
# cycle-7 Cli8 integration tests
wiremock = { workspace = true }
tokio = { workspace = true, features = ["macros", "rt-multi-thread", "io-std"] }
tempfile = "3"

# CLEANLIB-208 (Client-5.3) — cargo-deb package metadata for Debian/Ubuntu .deb builds
# Consumed by `cargo deb -p cleanlib-cli` in the tag pipeline. Produces
# target/debian/cleanlib_<version>_<arch>.deb.
# Section/priority per Debian policy; depends kept minimal (musl-static binary
# would drop these entirely — Cli-side is currently glibc dynamic).
[package.metadata.deb]
name = "cleanlib"
maintainer = "CleanStart Security <security@cleanstart.com>"
copyright = "2026, CleanStart Inc. All rights reserved."
license-file = ["../LICENSE", "0"]
extended-description = """\
CleanLibrary CLI — terminal interface for querying dependency verdicts and
scanning package manifests for ALLOW / DENY / WARN signals directly from the
terminal or CI pipelines. Part of the CleanLibrary supply-chain security \
platform."""
depends = "libc6 (>= 2.31), libssl3"
section = "utils"
priority = "optional"
assets = [
    ["target/release/cleanlib", "usr/bin/", "755"],
    ["../README.md", "usr/share/doc/cleanlib/README", "644"],
    ["CHANGELOG.md", "usr/share/doc/cleanlib/CHANGELOG", "644"],
]

# CLEANLIB-208 (Client-5.3) — cargo-generate-rpm metadata for RHEL/Fedora .rpm builds
# Consumed by `cargo generate-rpm -p cleanlib-cli` in the tag pipeline. Produces
# target/generate-rpm/cleanlib-<version>-1.<arch>.rpm.
[package.metadata.generate-rpm]
name = "cleanlib"
license = "Proprietary"
summary = "CleanLibrary CLI — dependency verdict queries and manifest scanning"
assets = [
    { source = "target/release/cleanlib", dest = "/usr/bin/cleanlib", mode = "755" },
    { source = "../README.md", dest = "/usr/share/doc/cleanlib/README", mode = "644", doc = true },
    { source = "CHANGELOG.md", dest = "/usr/share/doc/cleanlib/CHANGELOG", mode = "644", doc = true },
]
[package.metadata.generate-rpm.requires]
glibc = ">= 2.31"