pub(crate) fn default_shell_allowlist() -> Vec<String> {
[
"git",
"gh",
"svn",
"hg",
"cargo",
"npm",
"npx",
"yarn",
"pnpm",
"bun",
"bunx",
"make",
"cmake",
"pip",
"pip3",
"poetry",
"uv",
"go",
"mvn",
"gradle",
"mix",
"dotnet",
"swift",
"zig",
"rustup",
"rustc",
"deno",
"bazel",
"pipenv",
"conda",
"mamba",
"brew",
"apt",
"apt-get",
"apk",
"nix",
"ls",
"cat",
"head",
"tail",
"wc",
"sort",
"uniq",
"tr",
"cut",
"grep",
"rg",
"find",
"fd",
"ag",
"ack",
"sed",
"awk",
"echo",
"printf",
"true",
"false",
"test",
"expr",
"cd",
"pwd",
"basename",
"dirname",
"realpath",
"readlink",
"cp",
"mv",
"mkdir",
"rm",
"rmdir",
"touch",
"ln",
"chmod",
"chown",
"diff",
"patch",
"tar",
"zip",
"unzip",
"gzip",
"gunzip",
"zstd",
"curl",
"wget",
"tree",
"du",
"df",
"ps",
"lsof",
"watch",
"tee",
"less",
"more",
"id",
"whoami",
"uname",
"hostname",
"node",
"python",
"python3",
"ruby",
"perl",
"java",
"javac",
"tsc",
"eslint",
"prettier",
"black",
"ruff",
"clippy",
"jq",
"yq",
"which",
"type",
"file",
"stat",
"date",
"sleep",
"timeout",
"nice",
"ionice",
"pytest",
"py.test",
"jest",
"vitest",
"mocha",
"cypress",
"playwright",
"puppeteer",
"pre-commit",
"husky",
"lint-staged",
"lefthook",
"overcommit",
"commitlint",
"mypy",
"pyright",
"pylint",
"flake8",
"bandit",
"isort",
"autopep8",
"yapf",
"golangci-lint",
"shellcheck",
"markdownlint",
"stylelint",
"webpack",
"vite",
"esbuild",
"rollup",
"turbo",
"nx",
"lerna",
"next",
"nuxt",
"bundle",
"bundler",
"rake",
"rails",
"rspec",
"rubocop",
"php",
"composer",
"phpunit",
"artisan",
"flutter",
"dart",
"xcodebuild",
"xcrun",
"pod",
"fastlane",
"terraform",
"ansible",
"kubectl",
"helm",
"az",
"aws",
"gcloud",
"firebase",
"heroku",
"vercel",
"netlify",
"fly",
"wrangler",
"pulumi",
"psql",
"mysql",
"sqlite3",
"mongosh",
"redis-cli",
"pg_dump",
"pg_restore",
"mysqldump",
"scala",
"sbt",
"kotlin",
"kotlinc",
"elixir",
"iex",
"lean-ctx",
]
.iter()
.map(|s| (*s).to_string())
.collect()
}