optimus-tool-call 0.1.25 → 0.2.2
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/index.d.ts +2 -2
- package/dist/index.js +10 -5
- package/dist/index.js.map +1 -1
- package/dist/lib/streaming.d.ts.map +1 -1
- package/dist/lib/streaming.js +6 -7
- package/dist/lib/streaming.js.map +1 -1
- package/dist/lib/telemetry/build-event.d.ts +4 -0
- package/dist/lib/telemetry/build-event.d.ts.map +1 -1
- package/dist/lib/telemetry/build-event.js +12 -123
- package/dist/lib/telemetry/build-event.js.map +1 -1
- package/dist/lib/telemetry/index.d.ts +1 -2
- package/dist/lib/telemetry/index.d.ts.map +1 -1
- package/dist/lib/telemetry/index.js +1 -2
- package/dist/lib/telemetry/index.js.map +1 -1
- package/dist/lib/telemetry/serialize.d.ts.map +1 -1
- package/dist/lib/telemetry/serialize.js +2 -4
- package/dist/lib/telemetry/serialize.js.map +1 -1
- package/dist/lib/telemetry/types.d.ts +2 -6
- package/dist/lib/telemetry/types.d.ts.map +1 -1
- package/dist/lib/telemetry/wire-metadata.d.ts +10 -0
- package/dist/lib/telemetry/wire-metadata.d.ts.map +1 -0
- package/dist/lib/telemetry/wire-metadata.js +28 -0
- package/dist/lib/telemetry/wire-metadata.js.map +1 -0
- package/dist/test/streaming.test.js +10 -49
- package/dist/test/streaming.test.js.map +1 -1
- package/dist/test/telemetry.test.js +31 -45
- package/dist/test/telemetry.test.js.map +1 -1
- package/package.json +4 -5
- package/dist/lib/classify/builtins.d.ts +0 -7
- package/dist/lib/classify/builtins.d.ts.map +0 -1
- package/dist/lib/classify/builtins.js +0 -107
- package/dist/lib/classify/builtins.js.map +0 -1
- package/dist/lib/classify/constants.d.ts +0 -46
- package/dist/lib/classify/constants.d.ts.map +0 -1
- package/dist/lib/classify/constants.js +0 -56
- package/dist/lib/classify/constants.js.map +0 -1
- package/dist/lib/classify/dispatch.d.ts +0 -8
- package/dist/lib/classify/dispatch.d.ts.map +0 -1
- package/dist/lib/classify/dispatch.js +0 -149
- package/dist/lib/classify/dispatch.js.map +0 -1
- package/dist/lib/classify/flags.d.ts +0 -6
- package/dist/lib/classify/flags.d.ts.map +0 -1
- package/dist/lib/classify/flags.js +0 -19
- package/dist/lib/classify/flags.js.map +0 -1
- package/dist/lib/classify/handlers/database-cli.d.ts +0 -3
- package/dist/lib/classify/handlers/database-cli.d.ts.map +0 -1
- package/dist/lib/classify/handlers/database-cli.js +0 -68
- package/dist/lib/classify/handlers/database-cli.js.map +0 -1
- package/dist/lib/classify/handlers/docker.d.ts +0 -6
- package/dist/lib/classify/handlers/docker.d.ts.map +0 -1
- package/dist/lib/classify/handlers/docker.js +0 -65
- package/dist/lib/classify/handlers/docker.js.map +0 -1
- package/dist/lib/classify/handlers/fs-delete.d.ts +0 -6
- package/dist/lib/classify/handlers/fs-delete.d.ts.map +0 -1
- package/dist/lib/classify/handlers/fs-delete.js +0 -14
- package/dist/lib/classify/handlers/fs-delete.js.map +0 -1
- package/dist/lib/classify/handlers/git.d.ts +0 -6
- package/dist/lib/classify/handlers/git.d.ts.map +0 -1
- package/dist/lib/classify/handlers/git.js +0 -95
- package/dist/lib/classify/handlers/git.js.map +0 -1
- package/dist/lib/classify/handlers/network-http.d.ts +0 -10
- package/dist/lib/classify/handlers/network-http.d.ts.map +0 -1
- package/dist/lib/classify/handlers/network-http.js +0 -56
- package/dist/lib/classify/handlers/network-http.js.map +0 -1
- package/dist/lib/classify/handlers/packages.d.ts +0 -6
- package/dist/lib/classify/handlers/packages.d.ts.map +0 -1
- package/dist/lib/classify/handlers/packages.js +0 -22
- package/dist/lib/classify/handlers/packages.js.map +0 -1
- package/dist/lib/classify/handlers/sed-awk.d.ts +0 -10
- package/dist/lib/classify/handlers/sed-awk.d.ts.map +0 -1
- package/dist/lib/classify/handlers/sed-awk.js +0 -40
- package/dist/lib/classify/handlers/sed-awk.js.map +0 -1
- package/dist/lib/classify/handlers/shell-and-runtime.d.ts +0 -14
- package/dist/lib/classify/handlers/shell-and-runtime.d.ts.map +0 -1
- package/dist/lib/classify/handlers/shell-and-runtime.js +0 -92
- package/dist/lib/classify/handlers/shell-and-runtime.js.map +0 -1
- package/dist/lib/classify/index.d.ts +0 -6
- package/dist/lib/classify/index.d.ts.map +0 -1
- package/dist/lib/classify/index.js +0 -6
- package/dist/lib/classify/index.js.map +0 -1
- package/dist/lib/classify/interpreter.d.ts +0 -5
- package/dist/lib/classify/interpreter.d.ts.map +0 -1
- package/dist/lib/classify/interpreter.js +0 -16
- package/dist/lib/classify/interpreter.js.map +0 -1
- package/dist/lib/classify/pipeline.d.ts +0 -10
- package/dist/lib/classify/pipeline.d.ts.map +0 -1
- package/dist/lib/classify/pipeline.js +0 -105
- package/dist/lib/classify/pipeline.js.map +0 -1
- package/dist/lib/classify.d.ts +0 -2
- package/dist/lib/classify.d.ts.map +0 -1
- package/dist/lib/classify.js +0 -2
- package/dist/lib/classify.js.map +0 -1
- package/dist/lib/telemetry/command-tokenize.d.ts +0 -6
- package/dist/lib/telemetry/command-tokenize.d.ts.map +0 -1
- package/dist/lib/telemetry/command-tokenize.js +0 -38
- package/dist/lib/telemetry/command-tokenize.js.map +0 -1
- package/dist/lib/telemetry/sensitivity.d.ts +0 -7
- package/dist/lib/telemetry/sensitivity.d.ts.map +0 -1
- package/dist/lib/telemetry/sensitivity.js +0 -81
- package/dist/lib/telemetry/sensitivity.js.map +0 -1
- package/dist/test/classify.test.d.ts +0 -2
- package/dist/test/classify.test.d.ts.map +0 -1
- package/dist/test/classify.test.js +0 -286
- package/dist/test/classify.test.js.map +0 -1
- package/dist/test/pipeline.test.d.ts +0 -2
- package/dist/test/pipeline.test.d.ts.map +0 -1
- package/dist/test/pipeline.test.js +0 -139
- package/dist/test/pipeline.test.js.map +0 -1
- package/dist/test/sensitivity.test.d.ts +0 -2
- package/dist/test/sensitivity.test.d.ts.map +0 -1
- package/dist/test/sensitivity.test.js +0 -192
- package/dist/test/sensitivity.test.js.map +0 -1
- package/dist/test/tokenize.test.d.ts +0 -2
- package/dist/test/tokenize.test.d.ts.map +0 -1
- package/dist/test/tokenize.test.js +0 -157
- package/dist/test/tokenize.test.js.map +0 -1
|
@@ -1,149 +0,0 @@
|
|
|
1
|
-
import { basename } from "path";
|
|
2
|
-
import { UNKNOWN, PACKAGE_RUN } from "./constants.js";
|
|
3
|
-
import { findMainCommand } from "./pipeline.js";
|
|
4
|
-
import { normalizeInterpreter } from "./interpreter.js";
|
|
5
|
-
import { tryClassifyBuiltin } from "./builtins.js";
|
|
6
|
-
import { classifyRm } from "./handlers/fs-delete.js";
|
|
7
|
-
import { classifyGit } from "./handlers/git.js";
|
|
8
|
-
import { classifyCurlWget } from "./handlers/network-http.js";
|
|
9
|
-
import { classifyShell, classifyScriptRunner } from "./handlers/shell-and-runtime.js";
|
|
10
|
-
import { classifyPackage } from "./handlers/packages.js";
|
|
11
|
-
import { classifyDocker } from "./handlers/docker.js";
|
|
12
|
-
import { classifyDatabaseCli } from "./handlers/database-cli.js";
|
|
13
|
-
/**
|
|
14
|
-
* Find the next actual command after a given index (e.g., after "cd dir").
|
|
15
|
-
*/
|
|
16
|
-
function findMainCommandAfterIndex(components, startIndex) {
|
|
17
|
-
const operators = ["&&", "||", "|", ";", "&"];
|
|
18
|
-
let foundOperator = false;
|
|
19
|
-
for (let i = startIndex + 1; i < components.length; i++) {
|
|
20
|
-
const comp = components[i].trim();
|
|
21
|
-
if (operators.includes(comp)) {
|
|
22
|
-
foundOperator = true;
|
|
23
|
-
continue;
|
|
24
|
-
}
|
|
25
|
-
if (foundOperator && comp && !comp.startsWith("-")) {
|
|
26
|
-
const nextCmd = basename(comp);
|
|
27
|
-
if (nextCmd) {
|
|
28
|
-
return classifyCommandComponents([nextCmd, ...components.slice(i + 1)]);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
return UNKNOWN;
|
|
33
|
-
}
|
|
34
|
-
/** Sudo options that take a separate argument (mirrors server normalize_components). */
|
|
35
|
-
const SUDO_VALUE_FLAGS = new Set([
|
|
36
|
-
"-u",
|
|
37
|
-
"--user",
|
|
38
|
-
"-g",
|
|
39
|
-
"--group",
|
|
40
|
-
"-h",
|
|
41
|
-
"--host",
|
|
42
|
-
"-p",
|
|
43
|
-
"--prompt",
|
|
44
|
-
"-C",
|
|
45
|
-
"-T",
|
|
46
|
-
"-R",
|
|
47
|
-
"-t",
|
|
48
|
-
]);
|
|
49
|
-
/**
|
|
50
|
-
* Drop leading `sudo` and its flags/options so the remainder is the wrapped command.
|
|
51
|
-
* Aligns with optimus_security/.../argv_rules/shared.py normalize_components.
|
|
52
|
-
*/
|
|
53
|
-
function stripSudoArgv(components) {
|
|
54
|
-
if (!components.length) {
|
|
55
|
-
return components;
|
|
56
|
-
}
|
|
57
|
-
if (basename(components[0].trim()).toLowerCase() !== "sudo") {
|
|
58
|
-
return components;
|
|
59
|
-
}
|
|
60
|
-
const comp = components;
|
|
61
|
-
let i = 1;
|
|
62
|
-
const len = comp.length;
|
|
63
|
-
while (i < len) {
|
|
64
|
-
const tok = comp[i];
|
|
65
|
-
if (tok === "--") {
|
|
66
|
-
i += 1;
|
|
67
|
-
break;
|
|
68
|
-
}
|
|
69
|
-
if (SUDO_VALUE_FLAGS.has(tok)) {
|
|
70
|
-
i += 2;
|
|
71
|
-
continue;
|
|
72
|
-
}
|
|
73
|
-
if (tok.startsWith("-")) {
|
|
74
|
-
i += 1;
|
|
75
|
-
continue;
|
|
76
|
-
}
|
|
77
|
-
break;
|
|
78
|
-
}
|
|
79
|
-
return i < len ? comp.slice(i) : comp;
|
|
80
|
-
}
|
|
81
|
-
function classifySudo(components) {
|
|
82
|
-
if (components.length <= 1) {
|
|
83
|
-
return UNKNOWN;
|
|
84
|
-
}
|
|
85
|
-
const inner = stripSudoArgv(components);
|
|
86
|
-
if (!inner.length) {
|
|
87
|
-
return UNKNOWN;
|
|
88
|
-
}
|
|
89
|
-
const first = basename(inner[0].trim()).toLowerCase();
|
|
90
|
-
if (first === "sudo" && inner.length === components.length) {
|
|
91
|
-
return UNKNOWN;
|
|
92
|
-
}
|
|
93
|
-
return classifyCommandComponents(inner);
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* Classify command components and return action type.
|
|
97
|
-
* @param components List of command parts, e.g., ["rm", "-rf", "/tmp/build"]
|
|
98
|
-
* @returns Action type string, e.g., "filesystem_delete"
|
|
99
|
-
*/
|
|
100
|
-
export function classifyCommandComponents(components) {
|
|
101
|
-
if (!components || !components.length) {
|
|
102
|
-
return UNKNOWN;
|
|
103
|
-
}
|
|
104
|
-
let cmd = findMainCommand(components);
|
|
105
|
-
if (!cmd) {
|
|
106
|
-
return UNKNOWN;
|
|
107
|
-
}
|
|
108
|
-
cmd = normalizeInterpreter(cmd);
|
|
109
|
-
if (cmd === "rm") {
|
|
110
|
-
return classifyRm(components);
|
|
111
|
-
}
|
|
112
|
-
if (cmd === "git") {
|
|
113
|
-
return classifyGit(components);
|
|
114
|
-
}
|
|
115
|
-
if (cmd === "curl" || cmd === "wget") {
|
|
116
|
-
return classifyCurlWget(components);
|
|
117
|
-
}
|
|
118
|
-
if (["bash", "sh", "dash", "zsh"].includes(cmd)) {
|
|
119
|
-
return classifyShell(components);
|
|
120
|
-
}
|
|
121
|
-
if (["python", "python3", "node", "ruby", "perl", "php"].includes(cmd)) {
|
|
122
|
-
return classifyScriptRunner(components);
|
|
123
|
-
}
|
|
124
|
-
if (["npm", "pip", "pip3", "cargo", "gem", "pnpm", "bun"].includes(cmd)) {
|
|
125
|
-
return classifyPackage(components);
|
|
126
|
-
}
|
|
127
|
-
if (["pytest", "py.test"].includes(cmd)) {
|
|
128
|
-
return PACKAGE_RUN;
|
|
129
|
-
}
|
|
130
|
-
if (cmd === "docker") {
|
|
131
|
-
return classifyDocker(components);
|
|
132
|
-
}
|
|
133
|
-
if (cmd === "sudo") {
|
|
134
|
-
return classifySudo(components);
|
|
135
|
-
}
|
|
136
|
-
const dbType = classifyDatabaseCli(cmd, components);
|
|
137
|
-
if (dbType !== null) {
|
|
138
|
-
return dbType;
|
|
139
|
-
}
|
|
140
|
-
if (["cd", "pushd", "popd", "pwd"].includes(cmd)) {
|
|
141
|
-
return findMainCommandAfterIndex(components, 0);
|
|
142
|
-
}
|
|
143
|
-
const builtin = tryClassifyBuiltin(cmd, components);
|
|
144
|
-
if (builtin !== null) {
|
|
145
|
-
return builtin;
|
|
146
|
-
}
|
|
147
|
-
return UNKNOWN;
|
|
148
|
-
}
|
|
149
|
-
//# sourceMappingURL=dispatch.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../../../src/lib/classify/dispatch.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"flags.d.ts","sourceRoot":"","sources":["../../../src/lib/classify/flags.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAanE"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Check if a flag is present in components.
|
|
3
|
-
* Handles both -f (single char) and -rf (cluster).
|
|
4
|
-
*/
|
|
5
|
-
export function hasFlag(components, flag) {
|
|
6
|
-
const needle = `-${flag}`;
|
|
7
|
-
for (const comp of components) {
|
|
8
|
-
if (comp === needle) {
|
|
9
|
-
return true;
|
|
10
|
-
}
|
|
11
|
-
if (comp.startsWith("-") && !comp.startsWith("--")) {
|
|
12
|
-
if (comp.slice(1).includes(flag)) {
|
|
13
|
-
return true;
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
return false;
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=flags.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"flags.js","sourceRoot":"","sources":["../../../src/lib/classify/flags.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAC,UAAoB,EAAE,IAAY;IACxD,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;IAC1B,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACnD,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjC,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"database-cli.d.ts","sourceRoot":"","sources":["../../../../src/lib/classify/handlers/database-cli.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AA0ClD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,UAAU,GAAG,IAAI,CA8BxF"}
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Classify database CLI invocations (sqlite3, psql, mysql, mariadb) into nah db_read / db_write.
|
|
3
|
-
*/
|
|
4
|
-
import { DB_READ, DB_WRITE, UNKNOWN } from "../constants.js";
|
|
5
|
-
const DB_CLI = new Set(["sqlite3", "psql", "mysql", "mariadb"]);
|
|
6
|
-
/** Substrings after the DB path / connection args — mutating SQL or DDL. */
|
|
7
|
-
const MUTATING_SQL_HINTS = [
|
|
8
|
-
"insert into",
|
|
9
|
-
"update ",
|
|
10
|
-
"delete from",
|
|
11
|
-
"merge into",
|
|
12
|
-
"drop table",
|
|
13
|
-
"drop database",
|
|
14
|
-
"drop index",
|
|
15
|
-
"truncate table",
|
|
16
|
-
"alter table",
|
|
17
|
-
"create table",
|
|
18
|
-
"create index",
|
|
19
|
-
"replace into",
|
|
20
|
-
"attach database",
|
|
21
|
-
"detach database",
|
|
22
|
-
"vacuum",
|
|
23
|
-
"pragma writable_schema",
|
|
24
|
-
"pragma journal_mode",
|
|
25
|
-
"pragma user_version",
|
|
26
|
-
];
|
|
27
|
-
/** Read-oriented or introspection patterns. */
|
|
28
|
-
const READ_SQL_HINTS = [
|
|
29
|
-
"select ",
|
|
30
|
-
"explain ",
|
|
31
|
-
"pragma ",
|
|
32
|
-
"show tables",
|
|
33
|
-
"show databases",
|
|
34
|
-
"describe ",
|
|
35
|
-
"desc ",
|
|
36
|
-
"\\dt",
|
|
37
|
-
"\\d ",
|
|
38
|
-
".schema",
|
|
39
|
-
".tables",
|
|
40
|
-
".dump",
|
|
41
|
-
];
|
|
42
|
-
export function classifyDatabaseCli(cmd, components) {
|
|
43
|
-
const base = cmd.toLowerCase();
|
|
44
|
-
if (!DB_CLI.has(base)) {
|
|
45
|
-
return null;
|
|
46
|
-
}
|
|
47
|
-
const tail = components.slice(1).join(" ").toLowerCase();
|
|
48
|
-
if (!tail.trim()) {
|
|
49
|
-
// Interactive shell or unknown — not "unknown" taxonomy; DB tooling.
|
|
50
|
-
return DB_READ;
|
|
51
|
-
}
|
|
52
|
-
// e.g. `sqlite3 ./app.db` — opens DB without SQL on the line
|
|
53
|
-
if (components.length === 2 && /\.(db|sqlite3?)$/i.test(components[1].trim())) {
|
|
54
|
-
return DB_READ;
|
|
55
|
-
}
|
|
56
|
-
if (MUTATING_SQL_HINTS.some((h) => tail.includes(h))) {
|
|
57
|
-
return DB_WRITE;
|
|
58
|
-
}
|
|
59
|
-
if (READ_SQL_HINTS.some((h) => tail.includes(h))) {
|
|
60
|
-
return DB_READ;
|
|
61
|
-
}
|
|
62
|
-
// sqlite3 path "SQL" with quoted one-liner e.g. sqlite3 db "DROP TABLE t"
|
|
63
|
-
if (tail.includes("drop ") || tail.includes("alter ") || tail.includes("truncate")) {
|
|
64
|
-
return DB_WRITE;
|
|
65
|
-
}
|
|
66
|
-
return UNKNOWN;
|
|
67
|
-
}
|
|
68
|
-
//# sourceMappingURL=database-cli.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"database-cli.js","sourceRoot":"","sources":["../../../../src/lib/classify/handlers/database-cli.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAG7D,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;AAEhE,4EAA4E;AAC5E,MAAM,kBAAkB,GAAsB;IAC5C,aAAa;IACb,SAAS;IACT,aAAa;IACb,YAAY;IACZ,YAAY;IACZ,eAAe;IACf,YAAY;IACZ,gBAAgB;IAChB,aAAa;IACb,cAAc;IACd,cAAc;IACd,cAAc;IACd,iBAAiB;IACjB,iBAAiB;IACjB,QAAQ;IACR,wBAAwB;IACxB,qBAAqB;IACrB,qBAAqB;CACtB,CAAC;AAEF,+CAA+C;AAC/C,MAAM,cAAc,GAAsB;IACxC,SAAS;IACT,UAAU;IACV,SAAS;IACT,aAAa;IACb,gBAAgB;IAChB,WAAW;IACX,OAAO;IACP,MAAM;IACN,MAAM;IACN,SAAS;IACT,SAAS;IACT,OAAO;CACR,CAAC;AAEF,MAAM,UAAU,mBAAmB,CAAC,GAAW,EAAE,UAAoB;IACnE,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;IAC/B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IACzD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QACjB,qEAAqE;QACrE,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,6DAA6D;IAC7D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QAC9E,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,0EAA0E;IAC1E,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACnF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"docker.d.ts","sourceRoot":"","sources":["../../../../src/lib/classify/handlers/docker.ts"],"names":[],"mappings":"AACA,OAAO,EAML,KAAK,UAAU,EAChB,MAAM,iBAAiB,CAAC;AA4BzB;;GAEG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,UAAU,CAuC/D"}
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import { basename } from "path";
|
|
2
|
-
import { CONTAINER_DESTRUCTIVE, CONTAINER_EXEC, CONTAINER_READ, CONTAINER_WRITE, UNKNOWN, } from "../constants.js";
|
|
3
|
-
/**
|
|
4
|
-
* Find the docker subcommand, skipping docker-level flags like --debug, -H <host>, etc.
|
|
5
|
-
* docker [global-options] COMMAND [command-options]
|
|
6
|
-
*/
|
|
7
|
-
function findDockerSubcommand(components) {
|
|
8
|
-
// Docker global flags that consume the next token as their value.
|
|
9
|
-
const DOCKER_FLAGS_WITH_VALUE = new Set([
|
|
10
|
-
"-H", "--host",
|
|
11
|
-
"--tlscacert", "--tlscert", "--tlskey",
|
|
12
|
-
"--config", "--context", "-c",
|
|
13
|
-
"--log-level", "-l",
|
|
14
|
-
]);
|
|
15
|
-
let i = 1; // skip "docker"
|
|
16
|
-
while (i < components.length) {
|
|
17
|
-
const tok = components[i];
|
|
18
|
-
if (DOCKER_FLAGS_WITH_VALUE.has(tok)) {
|
|
19
|
-
i += 2; // skip flag and its value
|
|
20
|
-
}
|
|
21
|
-
else if (tok.startsWith("-")) {
|
|
22
|
-
i += 1; // skip standalone boolean flag (e.g. --debug, --tls)
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
return tok;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
return null;
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Classify docker commands.
|
|
32
|
-
*/
|
|
33
|
-
export function classifyDocker(components) {
|
|
34
|
-
if (components.length < 2) {
|
|
35
|
-
return UNKNOWN;
|
|
36
|
-
}
|
|
37
|
-
// docker may appear at a non-zero index (e.g. in a pipeline: something | docker ps).
|
|
38
|
-
// Slice from docker's position so findDockerSubcommand always scans from index 1.
|
|
39
|
-
const dockerIdx = components.findIndex((tok) => basename(tok).toLowerCase() === "docker");
|
|
40
|
-
if (dockerIdx < 0) {
|
|
41
|
-
return UNKNOWN;
|
|
42
|
-
}
|
|
43
|
-
const dockerComponents = components.slice(dockerIdx);
|
|
44
|
-
const sub = findDockerSubcommand(dockerComponents);
|
|
45
|
-
if (sub === null) {
|
|
46
|
-
return UNKNOWN;
|
|
47
|
-
}
|
|
48
|
-
if (sub === "rm" || sub === "rmi" || sub === "prune") {
|
|
49
|
-
return CONTAINER_DESTRUCTIVE;
|
|
50
|
-
}
|
|
51
|
-
if (["run", "exec"].includes(sub)) {
|
|
52
|
-
return CONTAINER_EXEC;
|
|
53
|
-
}
|
|
54
|
-
if (["stop", "kill"].includes(sub)) {
|
|
55
|
-
return CONTAINER_DESTRUCTIVE;
|
|
56
|
-
}
|
|
57
|
-
if (["ps", "inspect", "logs", "images", "pull"].includes(sub)) {
|
|
58
|
-
return CONTAINER_READ;
|
|
59
|
-
}
|
|
60
|
-
if (["build", "create", "push", "tag", "network", "volume"].includes(sub)) {
|
|
61
|
-
return CONTAINER_WRITE;
|
|
62
|
-
}
|
|
63
|
-
return CONTAINER_WRITE;
|
|
64
|
-
}
|
|
65
|
-
//# sourceMappingURL=docker.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"docker.js","sourceRoot":"","sources":["../../../../src/lib/classify/handlers/docker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAChC,OAAO,EACL,qBAAqB,EACrB,cAAc,EACd,cAAc,EACd,eAAe,EACf,OAAO,GAER,MAAM,iBAAiB,CAAC;AAEzB;;;GAGG;AACH,SAAS,oBAAoB,CAAC,UAAoB;IAChD,kEAAkE;IAClE,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC;QACtC,IAAI,EAAE,QAAQ;QACd,aAAa,EAAE,WAAW,EAAE,UAAU;QACtC,UAAU,EAAE,WAAW,EAAE,IAAI;QAC7B,aAAa,EAAE,IAAI;KACpB,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,gBAAgB;IAC3B,OAAO,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,uBAAuB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACrC,CAAC,IAAI,CAAC,CAAC,CAAC,0BAA0B;QACpC,CAAC;aAAM,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/B,CAAC,IAAI,CAAC,CAAC,CAAC,qDAAqD;QAC/D,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,CAAC;QACb,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,UAAoB;IACjD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,qFAAqF;IACrF,kFAAkF;IAClF,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,CAAC;IAC1F,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QAClB,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,MAAM,gBAAgB,GAAG,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAErD,MAAM,GAAG,GAAG,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;IACnD,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACjB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;QACrD,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IAED,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAClC,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACnC,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IAED,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9D,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1E,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,OAAO,eAAe,CAAC;AACzB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fs-delete.d.ts","sourceRoot":"","sources":["../../../../src/lib/classify/handlers/fs-delete.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,UAAU,EAChB,MAAM,iBAAiB,CAAC;AAGzB;;GAEG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,UAAU,CAS3D"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { FILESYSTEM_DELETE, } from "../constants.js";
|
|
2
|
-
import { hasFlag } from "../flags.js";
|
|
3
|
-
/**
|
|
4
|
-
* Classify rm command based on flags.
|
|
5
|
-
*/
|
|
6
|
-
export function classifyRm(components) {
|
|
7
|
-
const hasR = hasFlag(components, "r");
|
|
8
|
-
const hasF = hasFlag(components, "f");
|
|
9
|
-
if ((hasR && hasF) || hasR || hasF) {
|
|
10
|
-
return FILESYSTEM_DELETE;
|
|
11
|
-
}
|
|
12
|
-
return FILESYSTEM_DELETE;
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=fs-delete.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fs-delete.js","sourceRoot":"","sources":["../../../../src/lib/classify/handlers/fs-delete.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,GAElB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,UAAoB;IAC7C,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IAEtC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;QACnC,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED,OAAO,iBAAiB,CAAC;AAC3B,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../../../src/lib/classify/handlers/git.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,UAAU,EAChB,MAAM,iBAAiB,CAAC;AAwBzB;;GAEG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,UAAU,CA6E5D"}
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
import { GIT_DISCARD, GIT_HISTORY_REWRITE, GIT_REMOTE_WRITE, GIT_SAFE, GIT_WRITE, UNKNOWN, } from "../constants.js";
|
|
2
|
-
import { hasFlag } from "../flags.js";
|
|
3
|
-
import { basename } from "path";
|
|
4
|
-
/**
|
|
5
|
-
* Find the git subcommand, skipping git-level flags like -C <path>, --git-dir, etc.
|
|
6
|
-
*/
|
|
7
|
-
function findGitSubcommand(components) {
|
|
8
|
-
// Git-level flags that take a value argument (skip flag + value)
|
|
9
|
-
const GIT_FLAGS_WITH_VALUE = new Set(["-C", "--git-dir", "--work-tree", "--namespace", "-c"]);
|
|
10
|
-
let i = 1; // skip "git"
|
|
11
|
-
while (i < components.length) {
|
|
12
|
-
const tok = components[i];
|
|
13
|
-
if (GIT_FLAGS_WITH_VALUE.has(tok)) {
|
|
14
|
-
i += 2; // skip flag and its value
|
|
15
|
-
}
|
|
16
|
-
else if (tok.startsWith("-")) {
|
|
17
|
-
i += 1; // skip standalone flag
|
|
18
|
-
}
|
|
19
|
-
else {
|
|
20
|
-
return { sub: tok, args: components.slice(i + 1) };
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
return null;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Classify git command based on subcommand and flags.
|
|
27
|
-
*/
|
|
28
|
-
export function classifyGit(components) {
|
|
29
|
-
if (components.length < 2) {
|
|
30
|
-
return UNKNOWN;
|
|
31
|
-
}
|
|
32
|
-
// Dispatch is based on findMainCommand(), which may pick git from a later token
|
|
33
|
-
// (e.g. in pipelines) or from a full-path token like /usr/bin/git.
|
|
34
|
-
const gitIdx = components.findIndex((tok) => basename(tok).toLowerCase() === "git");
|
|
35
|
-
if (gitIdx < 0) {
|
|
36
|
-
return UNKNOWN;
|
|
37
|
-
}
|
|
38
|
-
const gitComponents = components.slice(gitIdx);
|
|
39
|
-
const parsed = findGitSubcommand(gitComponents);
|
|
40
|
-
if (!parsed)
|
|
41
|
-
return UNKNOWN;
|
|
42
|
-
const { sub, args } = parsed;
|
|
43
|
-
if (sub === "push") {
|
|
44
|
-
if (args.includes("--force") ||
|
|
45
|
-
args.includes("-f") ||
|
|
46
|
-
hasFlag(args, "f") ||
|
|
47
|
-
args.includes("--force-with-lease") ||
|
|
48
|
-
args.some((a) => a.startsWith("--force-with-lease="))) {
|
|
49
|
-
return GIT_HISTORY_REWRITE;
|
|
50
|
-
}
|
|
51
|
-
return GIT_REMOTE_WRITE;
|
|
52
|
-
}
|
|
53
|
-
if (sub === "reset") {
|
|
54
|
-
if (args.includes("--hard")) {
|
|
55
|
-
return GIT_DISCARD;
|
|
56
|
-
}
|
|
57
|
-
return GIT_WRITE;
|
|
58
|
-
}
|
|
59
|
-
if (sub === "branch") {
|
|
60
|
-
if (args.includes("-D") || args.includes("--force")) {
|
|
61
|
-
return GIT_HISTORY_REWRITE;
|
|
62
|
-
}
|
|
63
|
-
if (args.includes("-d") || args.includes("--delete")) {
|
|
64
|
-
return GIT_DISCARD;
|
|
65
|
-
}
|
|
66
|
-
// git branch with no flags is read-only (lists branches)
|
|
67
|
-
if (args.length === 0) {
|
|
68
|
-
return GIT_SAFE;
|
|
69
|
-
}
|
|
70
|
-
return GIT_WRITE;
|
|
71
|
-
}
|
|
72
|
-
if (sub === "tag") {
|
|
73
|
-
if (args.includes("--force") || args.includes("-f")) {
|
|
74
|
-
return GIT_HISTORY_REWRITE;
|
|
75
|
-
}
|
|
76
|
-
if (args.includes("--delete") || args.includes("-d")) {
|
|
77
|
-
return GIT_DISCARD;
|
|
78
|
-
}
|
|
79
|
-
return GIT_WRITE;
|
|
80
|
-
}
|
|
81
|
-
if (sub === "clean") {
|
|
82
|
-
return GIT_HISTORY_REWRITE;
|
|
83
|
-
}
|
|
84
|
-
if (["rebase", "cherry-pick"].includes(sub)) {
|
|
85
|
-
return GIT_HISTORY_REWRITE;
|
|
86
|
-
}
|
|
87
|
-
if (["config", "checkout", "add", "commit", "pull", "fetch", "merge"].includes(sub)) {
|
|
88
|
-
return GIT_WRITE;
|
|
89
|
-
}
|
|
90
|
-
if (["log", "show", "status", "diff", "remote"].includes(sub)) {
|
|
91
|
-
return GIT_SAFE;
|
|
92
|
-
}
|
|
93
|
-
return GIT_WRITE;
|
|
94
|
-
}
|
|
95
|
-
//# sourceMappingURL=git.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../../../src/lib/classify/handlers/git.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { type ActionType } from "../constants.js";
|
|
2
|
-
/**
|
|
3
|
-
* Classify curl/wget command based on method and data flags.
|
|
4
|
-
*/
|
|
5
|
-
export declare function classifyCurlWget(components: string[]): ActionType;
|
|
6
|
-
/**
|
|
7
|
-
* Classify httpie (http/https command) based on HTTP method and data.
|
|
8
|
-
*/
|
|
9
|
-
export declare function classifyHttpie(components: string[]): ActionType;
|
|
10
|
-
//# sourceMappingURL=network-http.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"network-http.d.ts","sourceRoot":"","sources":["../../../../src/lib/classify/handlers/network-http.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,UAAU,EAChB,MAAM,iBAAiB,CAAC;AAEzB;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,UAAU,CAsBjE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,UAAU,CAkC/D"}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { basename } from "path";
|
|
2
|
-
import { NETWORK_OUTBOUND, NETWORK_WRITE, } from "../constants.js";
|
|
3
|
-
/**
|
|
4
|
-
* Classify curl/wget command based on method and data flags.
|
|
5
|
-
*/
|
|
6
|
-
export function classifyCurlWget(components) {
|
|
7
|
-
// curl/wget may appear at a non-zero index (e.g. in a pipeline: cmd -d x | curl url).
|
|
8
|
-
// Slice from its position so we only inspect flags that belong to this invocation.
|
|
9
|
-
const cmdIdx = components.findIndex((tok) => ["curl", "wget"].includes(basename(tok).toLowerCase()));
|
|
10
|
-
const args = cmdIdx >= 0 ? components.slice(cmdIdx + 1) : components.slice(1);
|
|
11
|
-
for (let i = 0; i < args.length; i++) {
|
|
12
|
-
if (args[i] === "-X" && i + 1 < args.length) {
|
|
13
|
-
const method = args[i + 1].toUpperCase();
|
|
14
|
-
if (["POST", "PUT", "DELETE", "PATCH"].includes(method)) {
|
|
15
|
-
return NETWORK_WRITE;
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
if (args.includes("--data") || args.includes("-d")) {
|
|
20
|
-
return NETWORK_WRITE;
|
|
21
|
-
}
|
|
22
|
-
return NETWORK_OUTBOUND;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Classify httpie (http/https command) based on HTTP method and data.
|
|
26
|
-
*/
|
|
27
|
-
export function classifyHttpie(components) {
|
|
28
|
-
const cmdIdx = components.findIndex((tok) => ["http", "https"].includes(basename(tok).toLowerCase()));
|
|
29
|
-
const args = cmdIdx >= 0 ? components.slice(cmdIdx + 1) : components.slice(1);
|
|
30
|
-
const WRITE_METHODS = new Set(["POST", "PUT", "PATCH", "DELETE"]);
|
|
31
|
-
for (let i = 0; i < args.length; i++) {
|
|
32
|
-
const arg = args[i];
|
|
33
|
-
// curl-style: -X POST
|
|
34
|
-
if (arg === "-X" && i + 1 < args.length) {
|
|
35
|
-
if (WRITE_METHODS.has(args[i + 1].toUpperCase())) {
|
|
36
|
-
return NETWORK_WRITE;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
// httpie native positional method: http POST https://api.com
|
|
40
|
-
if (WRITE_METHODS.has(arg.toUpperCase())) {
|
|
41
|
-
return NETWORK_WRITE;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
for (const arg of args) {
|
|
45
|
-
if (arg === "--json" || arg === "-j" ||
|
|
46
|
-
arg === "--form" || arg === "-f" ||
|
|
47
|
-
arg === "--data" || arg === "-d" ||
|
|
48
|
-
arg.startsWith("--form") ||
|
|
49
|
-
arg.startsWith("--json") ||
|
|
50
|
-
arg.startsWith("--data")) {
|
|
51
|
-
return NETWORK_WRITE;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
return NETWORK_OUTBOUND;
|
|
55
|
-
}
|
|
56
|
-
//# sourceMappingURL=network-http.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"network-http.js","sourceRoot":"","sources":["../../../../src/lib/classify/handlers/network-http.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"packages.d.ts","sourceRoot":"","sources":["../../../../src/lib/classify/handlers/packages.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,KAAK,UAAU,EAChB,MAAM,iBAAiB,CAAC;AAIzB;;GAEG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,UAAU,CAkBhE"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { basename } from "path";
|
|
2
|
-
import { PACKAGE_INSTALL, PACKAGE_RUN, PACKAGE_UNINSTALL, UNKNOWN, } from "../constants.js";
|
|
3
|
-
const PACKAGE_MANAGERS = new Set(["npm", "pip", "pip3", "cargo", "gem", "pnpm", "bun"]);
|
|
4
|
-
/**
|
|
5
|
-
* Classify package manager commands.
|
|
6
|
-
*/
|
|
7
|
-
export function classifyPackage(components) {
|
|
8
|
-
// Package manager may appear at a non-zero index (e.g. in a pipeline: cmd | npm install).
|
|
9
|
-
const cmdIdx = components.findIndex((tok) => PACKAGE_MANAGERS.has(basename(tok).toLowerCase()));
|
|
10
|
-
const args = cmdIdx >= 0 ? components.slice(cmdIdx + 1) : components.slice(1);
|
|
11
|
-
if (args.some((arg) => ["install", "i", "ci"].includes(arg))) {
|
|
12
|
-
return PACKAGE_INSTALL;
|
|
13
|
-
}
|
|
14
|
-
if (args.some((arg) => ["uninstall", "remove", "rm"].includes(arg))) {
|
|
15
|
-
return PACKAGE_UNINSTALL;
|
|
16
|
-
}
|
|
17
|
-
if (args.includes("run")) {
|
|
18
|
-
return PACKAGE_RUN;
|
|
19
|
-
}
|
|
20
|
-
return UNKNOWN;
|
|
21
|
-
}
|
|
22
|
-
//# sourceMappingURL=packages.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"packages.js","sourceRoot":"","sources":["../../../../src/lib/classify/handlers/packages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAChC,OAAO,EACL,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,OAAO,GAER,MAAM,iBAAiB,CAAC;AAEzB,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAExF;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,UAAoB;IAClD,0FAA0F;IAC1F,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAChG,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAE9E,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QAC7D,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QACpE,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { type ActionType } from "../constants.js";
|
|
2
|
-
/**
|
|
3
|
-
* sed -i/-I/--in-place = filesystem_write; otherwise read (stdin transform).
|
|
4
|
-
*/
|
|
5
|
-
export declare function classifySed(components: string[]): ActionType;
|
|
6
|
-
/**
|
|
7
|
-
* awk with system()/getline/pipes/redirection = lang_exec; else filesystem_read.
|
|
8
|
-
*/
|
|
9
|
-
export declare function classifyAwk(components: string[]): ActionType;
|
|
10
|
-
//# sourceMappingURL=sed-awk.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sed-awk.d.ts","sourceRoot":"","sources":["../../../../src/lib/classify/handlers/sed-awk.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,UAAU,EAChB,MAAM,iBAAiB,CAAC;AAEzB;;GAEG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,UAAU,CAe5D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,UAAU,CAe5D"}
|