safemode 2.0.18 → 2.0.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/hooks/hook-runner.bundle.js +204 -10
- package/dist/src/cet/index.d.ts +15 -2
- package/dist/src/cet/index.d.ts.map +1 -1
- package/dist/src/cet/index.js +156 -15
- package/dist/src/cet/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -4523,36 +4523,230 @@ var CETClassifier = class {
|
|
|
4523
4523
|
}
|
|
4524
4524
|
/**
|
|
4525
4525
|
* Analyze a shell command string and refine its classification.
|
|
4526
|
-
*
|
|
4527
|
-
*
|
|
4526
|
+
* Every Bash tool call goes through this to get a proper risk level
|
|
4527
|
+
* instead of the blanket 'critical' from the registry entry.
|
|
4528
4528
|
*/
|
|
4529
4529
|
refineTerminalCommand(cmd) {
|
|
4530
4530
|
const trimmed = cmd.trim();
|
|
4531
|
-
|
|
4532
|
-
|
|
4531
|
+
if (trimmed.includes("|")) {
|
|
4532
|
+
return this.refinePipedCommand(trimmed);
|
|
4533
|
+
}
|
|
4534
|
+
if (/\s*(?:&&|;)\s*/.test(trimmed)) {
|
|
4535
|
+
return this.refineChainedCommand(trimmed);
|
|
4536
|
+
}
|
|
4537
|
+
return this.refineSingleCommand(trimmed);
|
|
4538
|
+
}
|
|
4539
|
+
/**
|
|
4540
|
+
* Classify a piped command by its most dangerous segment.
|
|
4541
|
+
* e.g. "curl url | bash" → critical (because of bash)
|
|
4542
|
+
*/
|
|
4543
|
+
refinePipedCommand(cmd) {
|
|
4544
|
+
const segments = cmd.split("|").map((s) => s.trim());
|
|
4545
|
+
const riskOrder = ["low", "medium", "high", "critical"];
|
|
4546
|
+
let worst = null;
|
|
4547
|
+
let worstIdx = -1;
|
|
4548
|
+
for (const seg of segments) {
|
|
4549
|
+
const result = this.refineSingleCommand(seg);
|
|
4550
|
+
if (result) {
|
|
4551
|
+
const idx = riskOrder.indexOf(result.risk || "medium");
|
|
4552
|
+
if (idx > worstIdx) {
|
|
4553
|
+
worstIdx = idx;
|
|
4554
|
+
worst = result;
|
|
4555
|
+
}
|
|
4556
|
+
}
|
|
4557
|
+
}
|
|
4558
|
+
const lastSeg = segments[segments.length - 1]?.split(/\s+/)[0]?.replace(/^.*\//, "");
|
|
4559
|
+
if (lastSeg === "bash" || lastSeg === "sh" || lastSeg === "zsh") {
|
|
4560
|
+
return { category: "terminal", action: "execute", risk: "critical" };
|
|
4561
|
+
}
|
|
4562
|
+
return worst;
|
|
4563
|
+
}
|
|
4564
|
+
/**
|
|
4565
|
+
* Classify chained commands (&&, ;) by the most dangerous segment.
|
|
4566
|
+
*/
|
|
4567
|
+
refineChainedCommand(cmd) {
|
|
4568
|
+
const segments = cmd.split(/\s*(?:&&|;)\s*/).map((s) => s.trim()).filter(Boolean);
|
|
4569
|
+
const riskOrder = ["low", "medium", "high", "critical"];
|
|
4570
|
+
let worst = null;
|
|
4571
|
+
let worstIdx = -1;
|
|
4572
|
+
for (const seg of segments) {
|
|
4573
|
+
const result = seg.includes("|") ? this.refinePipedCommand(seg) : this.refineSingleCommand(seg);
|
|
4574
|
+
if (result) {
|
|
4575
|
+
const idx = riskOrder.indexOf(result.risk || "medium");
|
|
4576
|
+
if (idx > worstIdx) {
|
|
4577
|
+
worstIdx = idx;
|
|
4578
|
+
worst = result;
|
|
4579
|
+
}
|
|
4580
|
+
}
|
|
4581
|
+
}
|
|
4582
|
+
return worst;
|
|
4583
|
+
}
|
|
4584
|
+
/**
|
|
4585
|
+
* Classify a single (non-piped, non-chained) command.
|
|
4586
|
+
*/
|
|
4587
|
+
refineSingleCommand(cmd) {
|
|
4588
|
+
const trimmed = cmd.trim();
|
|
4589
|
+
const words = trimmed.split(/\s+/);
|
|
4590
|
+
const firstWord = words[0]?.replace(/^.*\//, "");
|
|
4591
|
+
if (!firstWord) return null;
|
|
4592
|
+
if (firstWord === "sudo") {
|
|
4593
|
+
return { category: "terminal", action: "execute", risk: "critical" };
|
|
4594
|
+
}
|
|
4595
|
+
if (firstWord === "dd") {
|
|
4596
|
+
return { category: "filesystem", action: "write", risk: "critical" };
|
|
4597
|
+
}
|
|
4598
|
+
if (firstWord === "mkfs" || firstWord === "fdisk" || firstWord === "parted") {
|
|
4533
4599
|
return { category: "filesystem", action: "delete", risk: "critical" };
|
|
4534
4600
|
}
|
|
4601
|
+
if (firstWord === "rm" || firstWord === "rmdir" || firstWord === "unlink") {
|
|
4602
|
+
if (/\s-\S*r/i.test(trimmed) || trimmed.includes("--recursive")) {
|
|
4603
|
+
return { category: "filesystem", action: "delete", risk: "high" };
|
|
4604
|
+
}
|
|
4605
|
+
return { category: "filesystem", action: "delete", risk: "medium" };
|
|
4606
|
+
}
|
|
4535
4607
|
if (firstWord === "git") {
|
|
4536
|
-
const subCmd =
|
|
4537
|
-
if (subCmd === "push" && trimmed.includes("--force")
|
|
4608
|
+
const subCmd = words[1];
|
|
4609
|
+
if (subCmd === "push" && (trimmed.includes("--force") || trimmed.includes("-f"))) {
|
|
4610
|
+
return { category: "git", action: "delete", risk: "critical" };
|
|
4611
|
+
}
|
|
4538
4612
|
if (subCmd === "push") return { category: "git", action: "write", risk: "medium" };
|
|
4539
4613
|
if (subCmd === "branch" && trimmed.includes("-D")) return { category: "git", action: "delete", risk: "high" };
|
|
4540
4614
|
if (subCmd === "reset" && trimmed.includes("--hard")) return { category: "git", action: "delete", risk: "high" };
|
|
4541
|
-
return
|
|
4615
|
+
if (subCmd === "clean" && trimmed.includes("-f")) return { category: "git", action: "delete", risk: "high" };
|
|
4616
|
+
if (subCmd === "rebase") return { category: "git", action: "write", risk: "medium" };
|
|
4617
|
+
return { category: "git", action: "read", risk: "low" };
|
|
4542
4618
|
}
|
|
4543
|
-
if (firstWord === "npm" || firstWord === "yarn" || firstWord === "pnpm" || firstWord === "pip" || firstWord === "pip3") {
|
|
4544
|
-
const subCmd =
|
|
4619
|
+
if (firstWord === "npm" || firstWord === "yarn" || firstWord === "pnpm" || firstWord === "pip" || firstWord === "pip3" || firstWord === "bun") {
|
|
4620
|
+
const subCmd = words[1];
|
|
4545
4621
|
if (subCmd === "install" || subCmd === "add" || subCmd === "i") {
|
|
4546
4622
|
return { category: "package", action: "create", risk: "medium" };
|
|
4547
4623
|
}
|
|
4548
4624
|
if (subCmd === "uninstall" || subCmd === "remove" || subCmd === "rm") {
|
|
4549
4625
|
return { category: "package", action: "delete", risk: "medium" };
|
|
4550
4626
|
}
|
|
4627
|
+
return { category: "terminal", action: "execute", risk: "medium" };
|
|
4628
|
+
}
|
|
4629
|
+
if (firstWord === "npx") {
|
|
4630
|
+
return { category: "terminal", action: "execute", risk: "medium" };
|
|
4551
4631
|
}
|
|
4552
4632
|
if (firstWord === "curl" || firstWord === "wget") {
|
|
4553
4633
|
return { category: "network", action: "read", risk: "medium" };
|
|
4554
4634
|
}
|
|
4555
|
-
|
|
4635
|
+
if (firstWord === "node" || firstWord === "python" || firstWord === "python3" || firstWord === "ruby" || firstWord === "perl" || firstWord === "deno" || firstWord === "bun") {
|
|
4636
|
+
return { category: "terminal", action: "execute", risk: "medium" };
|
|
4637
|
+
}
|
|
4638
|
+
if (firstWord === "chmod" || firstWord === "chown" || firstWord === "chgrp") {
|
|
4639
|
+
return { category: "filesystem", action: "write", risk: "high" };
|
|
4640
|
+
}
|
|
4641
|
+
if (firstWord === "mv" || firstWord === "cp") {
|
|
4642
|
+
return { category: "filesystem", action: "write", risk: "medium" };
|
|
4643
|
+
}
|
|
4644
|
+
if (firstWord === "mkdir" || firstWord === "touch") {
|
|
4645
|
+
return { category: "filesystem", action: "create", risk: "low" };
|
|
4646
|
+
}
|
|
4647
|
+
if (firstWord === "sed" || firstWord === "awk") {
|
|
4648
|
+
if (trimmed.includes(" -i")) return { category: "filesystem", action: "write", risk: "medium" };
|
|
4649
|
+
return { category: "filesystem", action: "read", risk: "low" };
|
|
4650
|
+
}
|
|
4651
|
+
if (firstWord === "tee") {
|
|
4652
|
+
return { category: "filesystem", action: "write", risk: "medium" };
|
|
4653
|
+
}
|
|
4654
|
+
const readOnlyCommands = /* @__PURE__ */ new Set([
|
|
4655
|
+
"echo",
|
|
4656
|
+
"printf",
|
|
4657
|
+
"ls",
|
|
4658
|
+
"dir",
|
|
4659
|
+
"pwd",
|
|
4660
|
+
"cat",
|
|
4661
|
+
"head",
|
|
4662
|
+
"tail",
|
|
4663
|
+
"less",
|
|
4664
|
+
"more",
|
|
4665
|
+
"grep",
|
|
4666
|
+
"rg",
|
|
4667
|
+
"ag",
|
|
4668
|
+
"ack",
|
|
4669
|
+
"find",
|
|
4670
|
+
"fd",
|
|
4671
|
+
"which",
|
|
4672
|
+
"where",
|
|
4673
|
+
"type",
|
|
4674
|
+
"command",
|
|
4675
|
+
"cd",
|
|
4676
|
+
"wc",
|
|
4677
|
+
"sort",
|
|
4678
|
+
"uniq",
|
|
4679
|
+
"diff",
|
|
4680
|
+
"tr",
|
|
4681
|
+
"cut",
|
|
4682
|
+
"env",
|
|
4683
|
+
"printenv",
|
|
4684
|
+
"export",
|
|
4685
|
+
"date",
|
|
4686
|
+
"whoami",
|
|
4687
|
+
"hostname",
|
|
4688
|
+
"uname",
|
|
4689
|
+
"id",
|
|
4690
|
+
"groups",
|
|
4691
|
+
"file",
|
|
4692
|
+
"stat",
|
|
4693
|
+
"du",
|
|
4694
|
+
"df",
|
|
4695
|
+
"test",
|
|
4696
|
+
"[",
|
|
4697
|
+
"true",
|
|
4698
|
+
"false",
|
|
4699
|
+
"seq",
|
|
4700
|
+
"yes",
|
|
4701
|
+
"basename",
|
|
4702
|
+
"dirname",
|
|
4703
|
+
"realpath",
|
|
4704
|
+
"readlink",
|
|
4705
|
+
"md5sum",
|
|
4706
|
+
"sha256sum",
|
|
4707
|
+
"sha1sum",
|
|
4708
|
+
"base64",
|
|
4709
|
+
"xxd",
|
|
4710
|
+
"od",
|
|
4711
|
+
"hexdump",
|
|
4712
|
+
"man",
|
|
4713
|
+
"help",
|
|
4714
|
+
"info",
|
|
4715
|
+
"bat",
|
|
4716
|
+
"jq",
|
|
4717
|
+
"yq",
|
|
4718
|
+
"xargs",
|
|
4719
|
+
"safemode"
|
|
4720
|
+
]);
|
|
4721
|
+
if (readOnlyCommands.has(firstWord)) {
|
|
4722
|
+
return { category: "terminal", action: "read", risk: "low" };
|
|
4723
|
+
}
|
|
4724
|
+
const buildTools = /* @__PURE__ */ new Set([
|
|
4725
|
+
"make",
|
|
4726
|
+
"cmake",
|
|
4727
|
+
"cargo",
|
|
4728
|
+
"go",
|
|
4729
|
+
"rustc",
|
|
4730
|
+
"gcc",
|
|
4731
|
+
"g++",
|
|
4732
|
+
"clang",
|
|
4733
|
+
"javac",
|
|
4734
|
+
"tsc",
|
|
4735
|
+
"esbuild",
|
|
4736
|
+
"webpack",
|
|
4737
|
+
"vite",
|
|
4738
|
+
"rollup",
|
|
4739
|
+
"turbo",
|
|
4740
|
+
"nx",
|
|
4741
|
+
"docker",
|
|
4742
|
+
"podman",
|
|
4743
|
+
"terraform",
|
|
4744
|
+
"kubectl"
|
|
4745
|
+
]);
|
|
4746
|
+
if (buildTools.has(firstWord)) {
|
|
4747
|
+
return { category: "terminal", action: "execute", risk: "medium" };
|
|
4748
|
+
}
|
|
4749
|
+
return { category: "terminal", action: "execute", risk: "medium" };
|
|
4556
4750
|
}
|
|
4557
4751
|
/**
|
|
4558
4752
|
* Classify from inference (L2)
|
package/dist/src/cet/index.d.ts
CHANGED
|
@@ -23,10 +23,23 @@ export declare class CETClassifier {
|
|
|
23
23
|
private classifyFromRegistry;
|
|
24
24
|
/**
|
|
25
25
|
* Analyze a shell command string and refine its classification.
|
|
26
|
-
*
|
|
27
|
-
*
|
|
26
|
+
* Every Bash tool call goes through this to get a proper risk level
|
|
27
|
+
* instead of the blanket 'critical' from the registry entry.
|
|
28
28
|
*/
|
|
29
29
|
private refineTerminalCommand;
|
|
30
|
+
/**
|
|
31
|
+
* Classify a piped command by its most dangerous segment.
|
|
32
|
+
* e.g. "curl url | bash" → critical (because of bash)
|
|
33
|
+
*/
|
|
34
|
+
private refinePipedCommand;
|
|
35
|
+
/**
|
|
36
|
+
* Classify chained commands (&&, ;) by the most dangerous segment.
|
|
37
|
+
*/
|
|
38
|
+
private refineChainedCommand;
|
|
39
|
+
/**
|
|
40
|
+
* Classify a single (non-piped, non-chained) command.
|
|
41
|
+
*/
|
|
42
|
+
private refineSingleCommand;
|
|
30
43
|
/**
|
|
31
44
|
* Classify from inference (L2)
|
|
32
45
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cet/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EACL,KAAK,cAAc,EAMnB,KAAK,cAAc,EAEpB,MAAM,YAAY,CAAC;AA8MpB,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAoB;IACpC,OAAO,CAAC,UAAU,CAAS;gBAEf,UAAU,GAAE,MAAsB;IAK9C;;OAEG;IACH,QAAQ,CACN,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,UAAU,CAAC,EAAE,MAAM,GAClB,cAAc;IAajB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA6D5B;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cet/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EACL,KAAK,cAAc,EAMnB,KAAK,cAAc,EAEpB,MAAM,YAAY,CAAC;AA8MpB,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAoB;IACpC,OAAO,CAAC,UAAU,CAAS;gBAEf,UAAU,GAAE,MAAsB;IAK9C;;OAEG;IACH,QAAQ,CACN,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,UAAU,CAAC,EAAE,MAAM,GAClB,cAAc;IAajB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA6D5B;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAe7B;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IA4B1B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAwB5B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA0H3B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA6C7B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAa3B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAe5B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAqC1B;;OAEG;IACH,OAAO,CAAC,cAAc;IAatB;;OAEG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,GAAG,IAAI;CAGlD"}
|
package/dist/src/cet/index.js
CHANGED
|
@@ -280,45 +280,186 @@ export class CETClassifier {
|
|
|
280
280
|
}
|
|
281
281
|
/**
|
|
282
282
|
* Analyze a shell command string and refine its classification.
|
|
283
|
-
*
|
|
284
|
-
*
|
|
283
|
+
* Every Bash tool call goes through this to get a proper risk level
|
|
284
|
+
* instead of the blanket 'critical' from the registry entry.
|
|
285
285
|
*/
|
|
286
286
|
refineTerminalCommand(cmd) {
|
|
287
287
|
const trimmed = cmd.trim();
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
288
|
+
// Handle piped commands — classify by the most dangerous segment
|
|
289
|
+
if (trimmed.includes('|')) {
|
|
290
|
+
return this.refinePipedCommand(trimmed);
|
|
291
|
+
}
|
|
292
|
+
// Handle chained commands (&&, ;) — classify by the most dangerous segment
|
|
293
|
+
if (/\s*(?:&&|;)\s*/.test(trimmed)) {
|
|
294
|
+
return this.refineChainedCommand(trimmed);
|
|
295
|
+
}
|
|
296
|
+
return this.refineSingleCommand(trimmed);
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* Classify a piped command by its most dangerous segment.
|
|
300
|
+
* e.g. "curl url | bash" → critical (because of bash)
|
|
301
|
+
*/
|
|
302
|
+
refinePipedCommand(cmd) {
|
|
303
|
+
const segments = cmd.split('|').map(s => s.trim());
|
|
304
|
+
const riskOrder = ['low', 'medium', 'high', 'critical'];
|
|
305
|
+
let worst = null;
|
|
306
|
+
let worstIdx = -1;
|
|
307
|
+
for (const seg of segments) {
|
|
308
|
+
const result = this.refineSingleCommand(seg);
|
|
309
|
+
if (result) {
|
|
310
|
+
const idx = riskOrder.indexOf(result.risk || 'medium');
|
|
311
|
+
if (idx > worstIdx) {
|
|
312
|
+
worstIdx = idx;
|
|
313
|
+
worst = result;
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
// Special case: piping into bash/sh is always critical
|
|
318
|
+
const lastSeg = segments[segments.length - 1]?.split(/\s+/)[0]?.replace(/^.*\//, '');
|
|
319
|
+
if (lastSeg === 'bash' || lastSeg === 'sh' || lastSeg === 'zsh') {
|
|
320
|
+
return { category: 'terminal', action: 'execute', risk: 'critical' };
|
|
321
|
+
}
|
|
322
|
+
return worst;
|
|
323
|
+
}
|
|
324
|
+
/**
|
|
325
|
+
* Classify chained commands (&&, ;) by the most dangerous segment.
|
|
326
|
+
*/
|
|
327
|
+
refineChainedCommand(cmd) {
|
|
328
|
+
const segments = cmd.split(/\s*(?:&&|;)\s*/).map(s => s.trim()).filter(Boolean);
|
|
329
|
+
const riskOrder = ['low', 'medium', 'high', 'critical'];
|
|
330
|
+
let worst = null;
|
|
331
|
+
let worstIdx = -1;
|
|
332
|
+
for (const seg of segments) {
|
|
333
|
+
// Each segment might itself be piped
|
|
334
|
+
const result = seg.includes('|')
|
|
335
|
+
? this.refinePipedCommand(seg)
|
|
336
|
+
: this.refineSingleCommand(seg);
|
|
337
|
+
if (result) {
|
|
338
|
+
const idx = riskOrder.indexOf(result.risk || 'medium');
|
|
339
|
+
if (idx > worstIdx) {
|
|
340
|
+
worstIdx = idx;
|
|
341
|
+
worst = result;
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
return worst;
|
|
346
|
+
}
|
|
347
|
+
/**
|
|
348
|
+
* Classify a single (non-piped, non-chained) command.
|
|
349
|
+
*/
|
|
350
|
+
refineSingleCommand(cmd) {
|
|
351
|
+
const trimmed = cmd.trim();
|
|
352
|
+
const words = trimmed.split(/\s+/);
|
|
353
|
+
const firstWord = words[0]?.replace(/^.*\//, ''); // strip path prefix
|
|
354
|
+
if (!firstWord)
|
|
355
|
+
return null;
|
|
356
|
+
// ── Critical: genuinely catastrophic ──
|
|
357
|
+
if (firstWord === 'sudo') {
|
|
358
|
+
return { category: 'terminal', action: 'execute', risk: 'critical' };
|
|
359
|
+
}
|
|
360
|
+
if (firstWord === 'dd') {
|
|
361
|
+
return { category: 'filesystem', action: 'write', risk: 'critical' };
|
|
362
|
+
}
|
|
363
|
+
if (firstWord === 'mkfs' || firstWord === 'fdisk' || firstWord === 'parted') {
|
|
291
364
|
return { category: 'filesystem', action: 'delete', risk: 'critical' };
|
|
292
365
|
}
|
|
293
|
-
//
|
|
366
|
+
// ── File deletion — risk depends on flags ──
|
|
367
|
+
if (firstWord === 'rm' || firstWord === 'rmdir' || firstWord === 'unlink') {
|
|
368
|
+
// rm -rf, rm -r, rm --recursive → high
|
|
369
|
+
if (/\s-\S*r/i.test(trimmed) || trimmed.includes('--recursive')) {
|
|
370
|
+
return { category: 'filesystem', action: 'delete', risk: 'high' };
|
|
371
|
+
}
|
|
372
|
+
// rm <specific file> → medium
|
|
373
|
+
return { category: 'filesystem', action: 'delete', risk: 'medium' };
|
|
374
|
+
}
|
|
375
|
+
// ── Git operations ──
|
|
294
376
|
if (firstWord === 'git') {
|
|
295
|
-
const subCmd =
|
|
296
|
-
if (subCmd === 'push' && trimmed.includes('--force'))
|
|
377
|
+
const subCmd = words[1];
|
|
378
|
+
if (subCmd === 'push' && (trimmed.includes('--force') || trimmed.includes('-f'))) {
|
|
297
379
|
return { category: 'git', action: 'delete', risk: 'critical' };
|
|
380
|
+
}
|
|
298
381
|
if (subCmd === 'push')
|
|
299
382
|
return { category: 'git', action: 'write', risk: 'medium' };
|
|
300
383
|
if (subCmd === 'branch' && trimmed.includes('-D'))
|
|
301
384
|
return { category: 'git', action: 'delete', risk: 'high' };
|
|
302
385
|
if (subCmd === 'reset' && trimmed.includes('--hard'))
|
|
303
386
|
return { category: 'git', action: 'delete', risk: 'high' };
|
|
304
|
-
|
|
305
|
-
|
|
387
|
+
if (subCmd === 'clean' && trimmed.includes('-f'))
|
|
388
|
+
return { category: 'git', action: 'delete', risk: 'high' };
|
|
389
|
+
if (subCmd === 'rebase')
|
|
390
|
+
return { category: 'git', action: 'write', risk: 'medium' };
|
|
391
|
+
// Safe git: status, log, diff, show, branch (list), stash list, add, commit, fetch, pull, checkout
|
|
392
|
+
return { category: 'git', action: 'read', risk: 'low' };
|
|
306
393
|
}
|
|
307
|
-
// Package
|
|
308
|
-
if (firstWord === 'npm' || firstWord === 'yarn' || firstWord === 'pnpm' || firstWord === 'pip' || firstWord === 'pip3') {
|
|
309
|
-
const subCmd =
|
|
394
|
+
// ── Package managers ──
|
|
395
|
+
if (firstWord === 'npm' || firstWord === 'yarn' || firstWord === 'pnpm' || firstWord === 'pip' || firstWord === 'pip3' || firstWord === 'bun') {
|
|
396
|
+
const subCmd = words[1];
|
|
310
397
|
if (subCmd === 'install' || subCmd === 'add' || subCmd === 'i') {
|
|
311
398
|
return { category: 'package', action: 'create', risk: 'medium' };
|
|
312
399
|
}
|
|
313
400
|
if (subCmd === 'uninstall' || subCmd === 'remove' || subCmd === 'rm') {
|
|
314
401
|
return { category: 'package', action: 'delete', risk: 'medium' };
|
|
315
402
|
}
|
|
403
|
+
// npm run, npm test, npm start, npx, etc. → medium (runs scripts)
|
|
404
|
+
return { category: 'terminal', action: 'execute', risk: 'medium' };
|
|
316
405
|
}
|
|
317
|
-
|
|
406
|
+
if (firstWord === 'npx') {
|
|
407
|
+
return { category: 'terminal', action: 'execute', risk: 'medium' };
|
|
408
|
+
}
|
|
409
|
+
// ── Network commands ──
|
|
318
410
|
if (firstWord === 'curl' || firstWord === 'wget') {
|
|
319
411
|
return { category: 'network', action: 'read', risk: 'medium' };
|
|
320
412
|
}
|
|
321
|
-
|
|
413
|
+
// ── Script runners → medium ──
|
|
414
|
+
if (firstWord === 'node' || firstWord === 'python' || firstWord === 'python3' ||
|
|
415
|
+
firstWord === 'ruby' || firstWord === 'perl' || firstWord === 'deno' || firstWord === 'bun') {
|
|
416
|
+
return { category: 'terminal', action: 'execute', risk: 'medium' };
|
|
417
|
+
}
|
|
418
|
+
// ── Permission/ownership changes → high ──
|
|
419
|
+
if (firstWord === 'chmod' || firstWord === 'chown' || firstWord === 'chgrp') {
|
|
420
|
+
return { category: 'filesystem', action: 'write', risk: 'high' };
|
|
421
|
+
}
|
|
422
|
+
// ── File write operations → medium ──
|
|
423
|
+
if (firstWord === 'mv' || firstWord === 'cp') {
|
|
424
|
+
return { category: 'filesystem', action: 'write', risk: 'medium' };
|
|
425
|
+
}
|
|
426
|
+
if (firstWord === 'mkdir' || firstWord === 'touch') {
|
|
427
|
+
return { category: 'filesystem', action: 'create', risk: 'low' };
|
|
428
|
+
}
|
|
429
|
+
if (firstWord === 'sed' || firstWord === 'awk') {
|
|
430
|
+
// In-place edit flag (-i) → medium, otherwise read
|
|
431
|
+
if (trimmed.includes(' -i'))
|
|
432
|
+
return { category: 'filesystem', action: 'write', risk: 'medium' };
|
|
433
|
+
return { category: 'filesystem', action: 'read', risk: 'low' };
|
|
434
|
+
}
|
|
435
|
+
if (firstWord === 'tee') {
|
|
436
|
+
return { category: 'filesystem', action: 'write', risk: 'medium' };
|
|
437
|
+
}
|
|
438
|
+
// ── Read-only / informational commands → low ──
|
|
439
|
+
const readOnlyCommands = new Set([
|
|
440
|
+
'echo', 'printf', 'ls', 'dir', 'pwd', 'cat', 'head', 'tail', 'less', 'more',
|
|
441
|
+
'grep', 'rg', 'ag', 'ack', 'find', 'fd', 'which', 'where', 'type', 'command',
|
|
442
|
+
'cd', 'wc', 'sort', 'uniq', 'diff', 'tr', 'cut', 'env', 'printenv', 'export',
|
|
443
|
+
'date', 'whoami', 'hostname', 'uname', 'id', 'groups', 'file', 'stat', 'du', 'df',
|
|
444
|
+
'test', '[', 'true', 'false', 'seq', 'yes', 'basename', 'dirname', 'realpath',
|
|
445
|
+
'readlink', 'md5sum', 'sha256sum', 'sha1sum', 'base64', 'xxd', 'od', 'hexdump',
|
|
446
|
+
'man', 'help', 'info', 'bat', 'jq', 'yq', 'xargs',
|
|
447
|
+
'safemode',
|
|
448
|
+
]);
|
|
449
|
+
if (readOnlyCommands.has(firstWord)) {
|
|
450
|
+
return { category: 'terminal', action: 'read', risk: 'low' };
|
|
451
|
+
}
|
|
452
|
+
// ── Build tools → medium ──
|
|
453
|
+
const buildTools = new Set([
|
|
454
|
+
'make', 'cmake', 'cargo', 'go', 'rustc', 'gcc', 'g++', 'clang', 'javac',
|
|
455
|
+
'tsc', 'esbuild', 'webpack', 'vite', 'rollup', 'turbo', 'nx',
|
|
456
|
+
'docker', 'podman', 'terraform', 'kubectl',
|
|
457
|
+
]);
|
|
458
|
+
if (buildTools.has(firstWord)) {
|
|
459
|
+
return { category: 'terminal', action: 'execute', risk: 'medium' };
|
|
460
|
+
}
|
|
461
|
+
// ── Default: unrecognized commands → medium (not critical) ──
|
|
462
|
+
return { category: 'terminal', action: 'execute', risk: 'medium' };
|
|
322
463
|
}
|
|
323
464
|
/**
|
|
324
465
|
* Classify from inference (L2)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cet/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cet/index.ts"],"names":[],"mappings":"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"}
|