safe-chains 0.230.7

Auto-allow safe bash commands in agentic coding tools
Documentation
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2024"
rust-version = "1.95"
name = "safe-chains"
version = "0.230.7"
build = "build.rs"
exclude = [
    "tests/fixtures/verdict_snapshot/",
    "tests/verdict_snapshot.rs",
    "tests/verdict_snapshot/",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
default-run = "safe-chains"
description = "Auto-allow safe bash commands in agentic coding tools"
readme = "README.md"
license = "MIT OR Apache-2.0"
repository = "https://github.com/michaeldhopkins/safe-chains"

[features]
fuzz-gen = []

[lib]
name = "safe_chains"
path = "src/lib.rs"

[[bin]]
name = "gen-fuzz-corpus"
path = "src/bin/gen_fuzz_corpus.rs"
required-features = ["fuzz-gen"]

[[bin]]
name = "safe-chains"
path = "src/main.rs"

[[example]]
name = "generate_assets"
path = "examples/generate_assets.rs"

[[test]]
name = "ci_rules"
path = "tests/ci_rules.rs"

[[test]]
name = "claude_config_scope"
path = "tests/claude_config_scope.rs"

[[test]]
name = "cli_gate"
path = "tests/cli_gate.rs"

[[test]]
name = "custom_config_shape"
path = "tests/custom_config_shape.rs"

[[test]]
name = "decision_log"
path = "tests/decision_log.rs"

[[test]]
name = "facet_breakdown"
path = "tests/facet_breakdown.rs"

[[test]]
name = "file_length"
path = "tests/file_length.rs"

[[test]]
name = "fuzz_burst"
path = "tests/fuzz_burst.rs"

[[test]]
name = "fuzz_targets_wired"
path = "tests/fuzz_targets_wired.rs"

[[test]]
name = "instructions_size"
path = "tests/instructions_size.rs"

[[test]]
name = "integration_hooks"
path = "tests/integration_hooks.rs"

[[test]]
name = "lint_suppressions"
path = "tests/lint_suppressions.rs"

[[test]]
name = "path_policy"
path = "tests/path_policy.rs"

[[test]]
name = "probe"
path = "tests/probe.rs"

[[test]]
name = "properties"
path = "tests/properties.rs"

[[test]]
name = "refusal_surfaces"
path = "tests/refusal_surfaces.rs"

[[test]]
name = "release_notes_config"
path = "tests/release_notes_config.rs"

[[test]]
name = "suggest_write_scope"
path = "tests/suggest_write_scope.rs"

[[test]]
name = "toolchain_gates"
path = "tests/toolchain_gates.rs"

[dependencies.clap]
version = "4"
features = ["derive"]

[dependencies.serde]
version = "1"
features = ["derive"]

[dependencies.serde_json]
version = "1"

[dependencies.sha2]
version = "0.10"

[dependencies.shell-words]
version = "1"

[dependencies.toml]
version = "0.8"

[dependencies.winnow]
version = "0.7.15"

[dev-dependencies.clap_complete]
version = "4"

[dev-dependencies.clap_mangen]
version = "0.2"

[dev-dependencies.expectrl]
version = "0.8"

[dev-dependencies.proc-macro2]
version = "1"
features = ["span-locations"]

[dev-dependencies.proptest]
version = "1.10.0"

[dev-dependencies.syn]
version = "2"
features = [
    "full",
    "visit",
]

[dev-dependencies.tempfile]
version = "3"

[lints.clippy]
bool_to_int_with_if = "warn"
cognitive_complexity = "warn"
collapsible_if = "deny"
dbg_macro = "deny"
extend_with_drain = "deny"
fn_params_excessive_bools = "deny"
match_bool = "warn"
needless_range_loop = "deny"
struct_excessive_bools = "deny"
too_many_arguments = "deny"
too_many_lines = "warn"
unwrap_used = "deny"

[lints.rust]
unsafe_code = "forbid"

[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = ["cfg(fuzzing)"]

[profile.mutants]
inherits = "test"

[profile.mutants.package."*"]
opt-level = 3