shellfirm 0.3.9

`shellfirm` will intercept any risky patterns (default or defined by you) and prompt you a small challenge for double verification, kinda like a captcha for your terminal.
Documentation
[package]
name = "shellfirm"
description = "`shellfirm` will intercept any risky patterns (default or defined by you) and prompt you a small challenge for double verification, kinda like a captcha for your terminal."
version = "0.3.9"
edition = "2021"
authors = ["Elad-Kaplan <kaplan.elad@gmail.com>"]
license = "MIT"
readme = "../README.md"
repository = "https://github.com/kaplanelad/shellfirm"
homepage = "https://github.com/kaplanelad/shellfirm"
build = "build.rs"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
clap = { version = "4.5", features = ["cargo"], optional = true }
clap_complete = { version = "4.5", optional = true }
clap_complete_nushell = { version = "4.5", optional = true }
dirs = "6.0"
thiserror = "2"
serde = "1.0"
serde_yaml = "0.9"
serde_derive = "1.0"
serde_regex = "1.1"
regex = "1.12"
rand = "0.10"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
console = "0.16"
exitcode = "1.1"
requestty = "0.6"
wait-timeout = "0.2"
serde_json = "1.0"
reqwest = { version = "0.12", features = [
    "json",
    "rustls-tls",
    "blocking",
], optional = true }
tokio = { version = "1", features = [
    "rt",
    "macros",
    "time",
    "io-std",
    "io-util",
], optional = true }
uuid = { version = "1", features = ["v4"] }
[target.'cfg(unix)'.dependencies]
libc = "0.2"
nix = { version = "0.31", features = ["term"] }
rustix = { version = "1.0", features = ["termios"], optional = true }

[target.'cfg(windows)'.dependencies]
portable-pty = { version = "0.9", optional = true }
windows-sys = { version = "0.59", features = [
    "Win32_System_Console",
    "Win32_Foundation",
], optional = true }

[dev-dependencies]
insta = { version = "1.46", features = ["filters"] }
tree-fs = "0.2"

[build-dependencies]

[features]
default = ["all"]
cli = ["clap", "clap_complete", "clap_complete_nushell"]
llm = ["reqwest"]
mcp = ["tokio"]
ai = ["mcp", "llm"]
wrap = [
    "nix/signal",
    "nix/process",
    "nix/poll",
    "nix/fs",
    "nix/ioctl",
    "rustix",
    "portable-pty",
    "windows-sys",
]
all = ["cli", "llm", "mcp", "ai", "wrap"]

[[bin]]
name = "shellfirm"
required-features = ["cli"]