Skip to main content

vtcode_config/constants/
bash.rs

1/// Commands that are always blocked for security reasons
2pub const ALWAYS_BLOCKED_COMMANDS: &[&str] = &[
3    "rm",
4    "rmdir",
5    "del",
6    "format",
7    "fdisk",
8    "mkfs",
9    "dd",
10    "shred",
11    "wipe",
12    "srm",
13    "unlink",
14    "chmod",
15    "chown",
16    "passwd",
17    "usermod",
18    "userdel",
19    "systemctl",
20    "service",
21    "kill",
22    "killall",
23    "pkill",
24    "reboot",
25    "shutdown",
26    "halt",
27    "poweroff",
28    "sudo",
29    "su",
30    "doas",
31    "runas",
32    "mount",
33    "umount",
34    "fsck",
35    "tune2fs", // Filesystem operations
36    "iptables",
37    "ufw",
38    "firewalld", // Firewall
39    "crontab",
40    "at", // Scheduling
41    "podman",
42    "kubectl", // Container/orchestration
43];
44
45/// Network commands that require sandbox to be enabled
46pub const NETWORK_COMMANDS: &[&str] = &["wget", "ftp", "scp", "rsync", "ssh", "telnet", "nc", "ncat", "socat"];
47
48/// Commands that are always allowed (safe development tools)
49pub const ALLOWED_COMMANDS: &[&str] = &[
50    // File system and basic utilities
51    "ls",
52    "pwd",
53    "cat",
54    "head",
55    "tail",
56    "grep",
57    "find",
58    "wc",
59    "sort",
60    "uniq",
61    "cut",
62    "awk",
63    "sed",
64    "echo",
65    "printf",
66    "seq",
67    "basename",
68    "dirname",
69    "date",
70    "cal",
71    "bc",
72    "expr",
73    "test",
74    "[",
75    "]",
76    "true",
77    "false",
78    "sleep",
79    "which",
80    "type",
81    "file",
82    "stat",
83    "du",
84    "df",
85    "ps",
86    "top",
87    "htop",
88    "tree",
89    "less",
90    "more",
91    "tac",
92    "rev",
93    "tr",
94    "fold",
95    "paste",
96    "join",
97    "comm",
98    "diff",
99    "patch",
100    "gzip",
101    "gunzip",
102    "bzip2",
103    "bunzip2",
104    "xz",
105    "unxz",
106    "tar",
107    "zip",
108    "unzip",
109    "shasum",
110    "md5sum",
111    "sha256sum",
112    "sha512sum", // Hashing tools
113    // Version control
114    "git",
115    "hg",
116    "svn",
117    "git-lfs",
118    // Build systems and tools
119    "make",
120    "cmake",
121    "ninja",
122    "meson",
123    "bazel",
124    "buck2",
125    "scons",
126    "waf",
127    "xcodebuild",
128    // Rust/Cargo ecosystem
129    "cargo",
130    "rustc",
131    "rustfmt",
132    "rustup",
133    "clippy",
134    "cargo-clippy",
135    "cargo-fmt",
136    "cargo-build",
137    "cargo-test",
138    "cargo-run",
139    "cargo-check",
140    "cargo-doc",
141    // Node.js/npm ecosystem
142    "npm",
143    "yarn",
144    "pnpm",
145    "bun",
146    "npx",
147    "node",
148    "yarnpkg",
149    "npm-run",
150    "npm-test",
151    "npm-start",
152    "npm-build",
153    "npm-lint",
154    "npm-install",
155    "yarn-test",
156    "yarn-start",
157    "yarn-build",
158    "yarn-lint",
159    "yarn-install",
160    "pnpm-test",
161    "pnpm-start",
162    "pnpm-build",
163    "pnpm-lint",
164    "pnpm-install",
165    "bun-test",
166    "bun-start",
167    "bun-build",
168    "bun-lint",
169    "bun-install",
170    "bun-run",
171    // Python ecosystem
172    "python",
173    "python3",
174    "pip",
175    "pip3",
176    "virtualenv",
177    "venv",
178    "conda",
179    "pytest",
180    "python-m-pytest",
181    "python3-m-pytest",
182    "python-m-pip",
183    "python3-m-pip",
184    "python-m-venv",
185    "python3-m-venv",
186    "black",
187    "flake8",
188    "mypy",
189    "pylint",
190    "isort",
191    "ruff",
192    "bandit",
193    // Java ecosystem
194    "java",
195    "javac",
196    "jar",
197    "jarsigner",
198    "javadoc",
199    "jmap",
200    "jstack",
201    "jstat",
202    "jinfo",
203    "mvn",
204    "gradle",
205    "gradlew",
206    "./gradlew",
207    "mvnw",
208    "./mvnw",
209    "mvn-test",
210    "mvn-compile",
211    "mvn-package",
212    "mvn-install",
213    "mvn-clean",
214    "gradle-test",
215    "gradle-build",
216    "gradle-check",
217    "gradle-run",
218    "gradle-clean",
219    // Go ecosystem
220    "go",
221    "gofmt",
222    "goimports",
223    "golint",
224    "go-test",
225    "go-build",
226    "go-run",
227    "go-mod",
228    "golangci-lint",
229    "go-doc",
230    "go-vet",
231    "go-install",
232    "go-clean",
233    // C/C++ ecosystem
234    "gcc",
235    "g++",
236    "clang",
237    "clang++",
238    "clang-cl",
239    "cpp",
240    "cc",
241    "c++",
242    "gcc-ar",
243    "gcc-nm",
244    "gcc-ranlib",
245    "ld",
246    "lld",
247    "gold",
248    "bfdld",
249    "make",
250    "cmake",
251    "ninja",
252    "autotools",
253    "autoconf",
254    "automake",
255    "libtool",
256    "pkg-config",
257    "pkgconfig",
258    // Testing frameworks and tools
259    "pytest",
260    "jest",
261    "mocha",
262    "jasmine",
263    "karma",
264    "chai",
265    "sinon",
266    "vitest",
267    "cypress",
268    "selenium",
269    "playwright",
270    "testcafe",
271    "tape",
272    "ava",
273    "qunit",
274    "junit",
275    "googletest",
276    "catch2",
277    "benchmark",
278    "hyperfine",
279    // Linting and formatting tools
280    "eslint",
281    "prettier",
282    "tslint",
283    "jshint",
284    "jscs",
285    "stylelint",
286    "htmlhint",
287    "jsonlint",
288    "yamllint",
289    "toml-check",
290    "markdownlint",
291    "remark-cli",
292    "shellcheck",
293    "hadolint",
294    "rustfmt",
295    "gofmt",
296    "black",
297    "isort",
298    "ruff",
299    "clang-format",
300    "clang-tidy",
301    // Documentation tools
302    "doxygen",
303    "sphinx",
304    "mkdocs",
305    "hugo",
306    "jekyll",
307    "gatsby",
308    "next",
309    "nuxt",
310    "vuepress",
311    "docusaurus",
312    "storybook",
313    "gitbook",
314    "readthedocs",
315    "pandoc",
316    "mdbook",
317    "mdBook",
318    // Container tools (safe operations only)
319    "docker",
320    "docker-compose",
321    "docker-buildx",
322    "podman",
323    "buildah",
324    "docker-build",
325    "docker-run",
326    "docker-ps",
327    "docker-images",
328    "docker-inspect",
329    "docker-exec",
330    "docker-logs",
331    "docker-stats",
332    "docker-system",
333    "docker-network",
334    // Database tools (development usage)
335    "sqlite3",
336    "mysql",
337    "psql",
338    "mongosh",
339    "redis-cli",
340    "redis-server",
341    // Cloud and deployment tools
342    "aws",
343    "gcloud",
344    "az",
345    "kubectl",
346    "helm",
347    "terraform",
348    "tf",
349    "terragrunt",
350    "serverless",
351    "sls",
352    "pulumi",
353    "cdk",
354    "sam",
355    "localstack",
356    "minikube",
357    // Security and analysis tools
358    "trivy",
359    "snyk",
360    "npm-audit",
361    "pip-audit",
362    "cargo-audit",
363    "bandit",
364    "safety",
365    "pipenv",
366    "poetry",
367    // Performance profiling tools
368    "perf",
369    "strace",
370    "ltrace",
371    "valgrind",
372    "gdb",
373    "lldb",
374    "sar",
375    "iostat",
376    "vmstat",
377    "htop",
378    "iotop",
379    "nethogs",
380    "iftop",
381    "speedtest-cli",
382    "ab",
383    "wrk",
384    "hey",
385    // CI/CD tools
386    "gh",
387    "gitlab-ci",
388    "bitbucket",
389    "azure-pipelines",
390    "circleci",
391    "jenkins",
392    "drone",
393    "buildkite",
394    "travis",
395    "appveyor",
396    // Package managers for various languages
397    "composer",
398    "pear",
399    "gem",
400    "rbenv",
401    "rvm",
402    "nvm",
403    "nodenv",
404    "pyenv",
405    "rbenv",
406    "sdkman",
407    "jenv",
408    "lein",
409    "boot",
410    "mix",
411    "rebar3",
412    "erl",
413    "elixir",
414    // Web development tools
415    "webpack",
416    "rollup",
417    "vite",
418    "parcel",
419    "esbuild",
420    "snowpack",
421    "turbo",
422    "swc",
423    "babel",
424    "postcss",
425    "sass",
426    "scss",
427    "less",
428    "stylus",
429    "tailwindcss",
430    // Mobile development tools
431    "xcodebuild",
432    "fastlane",
433    "gradle",
434    "./gradlew",
435    "cordova",
436    "ionic",
437    "react-native",
438    "flutter",
439    "expo",
440    "capacitor",
441];