coding-tools 0.3.0

Declarative, agent-friendly CLI tools behind one 'ct' command: search, view, verifiable edits, and framed command tests.
Documentation
[package]
name = "coding-tools"
version = "0.3.0"
edition = "2024"
rust-version = "1.88"
license = "Apache-2.0"
description = "Declarative, agent-friendly CLI tools behind one 'ct' command: search, view, verifiable edits, and framed command tests."
readme = "README.md"
authors = ["Jonathan Shook <jshook@gmail.com>"]
keywords = ["cli", "search", "grep", "refactor", "agent"]
categories = ["command-line-utilities", "development-tools"]
default-run = "ct"
exclude = [".idea/", ".github/"]
repository = "https://github.com/jshook/coding-tools"
homepage = "https://github.com/jshook/coding-tools"
documentation = "https://docs.rs/coding-tools"

# The crate (`use coding_tools::…`) keeps its underscore name; only the published
# package is hyphenated, per Rust convention.
[lib]
name = "coding_tools"
path = "src/lib.rs"

[[bin]]
name = "ct"
path = "src/bin/ct.rs"

[[bin]]
name = "ct-search"
path = "src/bin/ct-search.rs"

[[bin]]
name = "ct-test"
path = "src/bin/ct-test.rs"

[[bin]]
name = "ct-view"
path = "src/bin/ct-view.rs"

[[bin]]
name = "ct-edit"
path = "src/bin/ct-edit.rs"

[[bin]]
name = "ct-patch"
path = "src/bin/ct-patch.rs"

[[bin]]
name = "ct-tree"
path = "src/bin/ct-tree.rs"

[[bin]]
name = "ct-each"
path = "src/bin/ct-each.rs"

[[bin]]
name = "ct-outline"
path = "src/bin/ct-outline.rs"

[[bin]]
name = "ct-rules"
path = "src/bin/ct-rules.rs"

[[bin]]
name = "ct-check"
path = "src/bin/ct-check.rs"

[[bin]]
name = "ct-deps"
path = "src/bin/ct-deps.rs"

[[bin]]
name = "ct-await"
path = "src/bin/ct-await.rs"

[dependencies]
clap = { version = "4.6.1", features = ["derive"] }
regex = "1.12.3"
walkdir = "2.5.0"
serde_json = "1.0.150"
jsonc-parser = { version = "0.26", features = ["serde"] }
yaml-edit = "0.2.1"

# Unix only: process-group kill for `--timeout` on the child-running tools.
[target.'cfg(unix)'.dependencies]
libc = "0.2"

# Release artifacts are distributed as standalone binaries; strip symbols to keep
# them small. Does not affect dev/test builds.
[profile.release]
strip = true