@gencode/agents 0.0.5 → 0.0.6
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/commands/new.js +6 -6
- package/dist/commands/new.js.map +1 -1
- package/dist/config/types.d.ts +2 -2
- package/dist/config/types.d.ts.map +1 -1
- package/dist/tools/cron.d.ts +15 -22
- package/dist/tools/cron.d.ts.map +1 -1
- package/dist/tools/cron.js +20 -40
- package/dist/tools/cron.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/config-DJX-VM7S.js +0 -198
- package/dist/config-DJX-VM7S.js.map +0 -1
- package/dist/index-JD6Ye-N5.d.ts +0 -149
- package/dist/index-JD6Ye-N5.d.ts.map +0 -1
- package/dist/manager-qXa-NP0p.js +0 -1651
- package/dist/manager-qXa-NP0p.js.map +0 -1
- package/dist/message.d.ts +0 -11
- package/dist/message.d.ts.map +0 -1
- package/dist/message.js +0 -46
- package/dist/message.js.map +0 -1
- package/dist/security/command-dangerous-rules.d.ts +0 -4
- package/dist/security/command-dangerous-rules.d.ts.map +0 -1
- package/dist/security/command-dangerous-rules.js +0 -26
- package/dist/security/command-dangerous-rules.js.map +0 -1
- package/dist/security/command-parser.d.ts +0 -3
- package/dist/security/command-parser.d.ts.map +0 -1
- package/dist/security/command-parser.js +0 -191
- package/dist/security/command-parser.js.map +0 -1
- package/dist/security/command-path-guard.d.ts +0 -10
- package/dist/security/command-path-guard.d.ts.map +0 -1
- package/dist/security/command-path-guard.js +0 -126
- package/dist/security/command-path-guard.js.map +0 -1
- package/dist/security/command-policy-config.d.ts +0 -5
- package/dist/security/command-policy-config.d.ts.map +0 -1
- package/dist/security/command-policy-config.js +0 -212
- package/dist/security/command-policy-config.js.map +0 -1
- package/dist/security/command-policy-engine.d.ts +0 -8
- package/dist/security/command-policy-engine.d.ts.map +0 -1
- package/dist/security/command-policy-engine.js +0 -122
- package/dist/security/command-policy-engine.js.map +0 -1
- package/dist/security/command-policy-types.d.ts +0 -67
- package/dist/security/command-policy-types.d.ts.map +0 -1
- package/dist/security/command-policy-types.js +0 -2
- package/dist/security/command-policy-types.js.map +0 -1
- package/dist/security/command-safe-bins.d.ts +0 -4
- package/dist/security/command-safe-bins.d.ts.map +0 -1
- package/dist/security/command-safe-bins.js +0 -84
- package/dist/security/command-safe-bins.js.map +0 -1
- package/dist/security/command-trusted-executables.d.ts +0 -6
- package/dist/security/command-trusted-executables.d.ts.map +0 -1
- package/dist/security/command-trusted-executables.js +0 -57
- package/dist/security/command-trusted-executables.js.map +0 -1
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import path from "node:path";
|
|
2
|
-
import { unwrapExecutable } from "./command-trusted-executables.js";
|
|
3
|
-
const DENIED_FLAGS = {
|
|
4
|
-
grep: ["-r", "-R", "--recursive", "--dereference-recursive", "-f", "--file"],
|
|
5
|
-
jq: ["-f", "--from-file", "--argfile", "--slurpfile", "--rawfile", "-L", "--library-path"],
|
|
6
|
-
sort: ["-o", "--output", "--compress-program", "--files0-from", "--random-source", "--temporary-directory", "-T"],
|
|
7
|
-
wc: ["--files0-from"],
|
|
8
|
-
};
|
|
9
|
-
function basename(value) {
|
|
10
|
-
if (!value) {
|
|
11
|
-
return "";
|
|
12
|
-
}
|
|
13
|
-
return path.posix.basename(value).toLowerCase();
|
|
14
|
-
}
|
|
15
|
-
function includesDeniedFlag(args, deniedFlags) {
|
|
16
|
-
for (let index = 0; index < args.length; index += 1) {
|
|
17
|
-
const arg = args[index];
|
|
18
|
-
for (const denied of deniedFlags) {
|
|
19
|
-
if (arg === denied || arg.startsWith(`${denied}=`) || (denied.length === 2 && arg.startsWith(denied) && arg.length > 2)) {
|
|
20
|
-
return true;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
return false;
|
|
25
|
-
}
|
|
26
|
-
function countPositionals(args) {
|
|
27
|
-
const positionals = [];
|
|
28
|
-
let stopFlags = false;
|
|
29
|
-
for (const arg of args) {
|
|
30
|
-
if (stopFlags) {
|
|
31
|
-
positionals.push(arg);
|
|
32
|
-
continue;
|
|
33
|
-
}
|
|
34
|
-
if (arg === "--") {
|
|
35
|
-
stopFlags = true;
|
|
36
|
-
continue;
|
|
37
|
-
}
|
|
38
|
-
if (arg.startsWith("-")) {
|
|
39
|
-
continue;
|
|
40
|
-
}
|
|
41
|
-
positionals.push(arg);
|
|
42
|
-
}
|
|
43
|
-
return positionals;
|
|
44
|
-
}
|
|
45
|
-
function validateSafeBinArgs(executable, args) {
|
|
46
|
-
if (includesDeniedFlag(args, DENIED_FLAGS[executable] ?? [])) {
|
|
47
|
-
return false;
|
|
48
|
-
}
|
|
49
|
-
const positionals = countPositionals(args);
|
|
50
|
-
switch (executable) {
|
|
51
|
-
case "jq":
|
|
52
|
-
return positionals.length <= 1;
|
|
53
|
-
case "head":
|
|
54
|
-
case "tail":
|
|
55
|
-
case "uniq":
|
|
56
|
-
case "tr":
|
|
57
|
-
case "wc":
|
|
58
|
-
case "cut":
|
|
59
|
-
return positionals.length === 0;
|
|
60
|
-
case "grep":
|
|
61
|
-
return positionals.length <= 1;
|
|
62
|
-
case "sort":
|
|
63
|
-
return positionals.length === 0;
|
|
64
|
-
default:
|
|
65
|
-
return false;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
export function matchSafeBin(segment, safeBins, allowlist) {
|
|
69
|
-
if (!safeBins.enabled) {
|
|
70
|
-
return null;
|
|
71
|
-
}
|
|
72
|
-
const executable = basename(unwrapExecutable(segment, allowlist));
|
|
73
|
-
if (!executable) {
|
|
74
|
-
return null;
|
|
75
|
-
}
|
|
76
|
-
if (!safeBins.bins.some((entry) => entry.toLowerCase() === executable)) {
|
|
77
|
-
return null;
|
|
78
|
-
}
|
|
79
|
-
const args = basename(segment.executable) === "env"
|
|
80
|
-
? segment.argv.slice(segment.argv.findIndex((arg) => !/^[A-Za-z_][A-Za-z0-9_]*=/.test(arg) && arg !== "env") + 1)
|
|
81
|
-
: segment.argv.slice(1);
|
|
82
|
-
return validateSafeBinArgs(executable, args) ? executable : null;
|
|
83
|
-
}
|
|
84
|
-
//# sourceMappingURL=command-safe-bins.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"command-safe-bins.js","sourceRoot":"","sources":["../../src/security/command-safe-bins.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { CommandAllowlistPolicy, CommandTrustedExecutablesPolicy, ParsedCommandSegment } from "./command-policy-types.js";
|
|
2
|
-
export declare function isAllowedWrapper(value: string | null, policy: CommandAllowlistPolicy): boolean;
|
|
3
|
-
export declare function unwrapExecutable(segment: ParsedCommandSegment, policy: CommandAllowlistPolicy): string | null;
|
|
4
|
-
export declare function matchTrustedExecutable(segment: ParsedCommandSegment, trustedExecutables: CommandTrustedExecutablesPolicy, allowlist: CommandAllowlistPolicy): string | null;
|
|
5
|
-
export declare function matchAllowlistExecutable(segment: ParsedCommandSegment, policy: CommandAllowlistPolicy): string | null;
|
|
6
|
-
//# sourceMappingURL=command-trusted-executables.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"command-trusted-executables.d.ts","sourceRoot":"","sources":["../../src/security/command-trusted-executables.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,sBAAsB,EACtB,+BAA+B,EAC/B,oBAAoB,EACrB,MAAM,2BAA2B,CAAC;AASnC,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAG9F;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,oBAAoB,EAAE,MAAM,EAAE,sBAAsB,GAAG,MAAM,GAAG,IAAI,CAgB7G;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,oBAAoB,EAC7B,kBAAkB,EAAE,+BAA+B,EACnD,SAAS,EAAE,sBAAsB,GAChC,MAAM,GAAG,IAAI,CAaf;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,oBAAoB,EAC7B,MAAM,EAAE,sBAAsB,GAC7B,MAAM,GAAG,IAAI,CAaf"}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import path from "node:path";
|
|
2
|
-
function basename(value) {
|
|
3
|
-
if (!value) {
|
|
4
|
-
return "";
|
|
5
|
-
}
|
|
6
|
-
return path.posix.basename(value).toLowerCase();
|
|
7
|
-
}
|
|
8
|
-
export function isAllowedWrapper(value, policy) {
|
|
9
|
-
const name = basename(value);
|
|
10
|
-
return policy.wrappers.some((entry) => entry.toLowerCase() === name);
|
|
11
|
-
}
|
|
12
|
-
export function unwrapExecutable(segment, policy) {
|
|
13
|
-
if (!segment.executable) {
|
|
14
|
-
return null;
|
|
15
|
-
}
|
|
16
|
-
if (!isAllowedWrapper(segment.executable, policy)) {
|
|
17
|
-
return segment.executable;
|
|
18
|
-
}
|
|
19
|
-
const wrapperName = basename(segment.executable);
|
|
20
|
-
if (wrapperName === "env") {
|
|
21
|
-
let index = 1;
|
|
22
|
-
while (index < segment.argv.length && /^[A-Za-z_][A-Za-z0-9_]*=/.test(segment.argv[index])) {
|
|
23
|
-
index += 1;
|
|
24
|
-
}
|
|
25
|
-
return segment.argv[index] ?? null;
|
|
26
|
-
}
|
|
27
|
-
return segment.argv[1] ?? null;
|
|
28
|
-
}
|
|
29
|
-
export function matchTrustedExecutable(segment, trustedExecutables, allowlist) {
|
|
30
|
-
const executable = unwrapExecutable(segment, allowlist);
|
|
31
|
-
const name = basename(executable);
|
|
32
|
-
if (!name || !trustedExecutables.enabled) {
|
|
33
|
-
return null;
|
|
34
|
-
}
|
|
35
|
-
for (const entry of trustedExecutables.executables) {
|
|
36
|
-
const entryName = basename(entry);
|
|
37
|
-
if (entryName === name) {
|
|
38
|
-
return entry;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
return null;
|
|
42
|
-
}
|
|
43
|
-
export function matchAllowlistExecutable(segment, policy) {
|
|
44
|
-
const executable = unwrapExecutable(segment, policy);
|
|
45
|
-
const name = basename(executable);
|
|
46
|
-
if (!name) {
|
|
47
|
-
return null;
|
|
48
|
-
}
|
|
49
|
-
for (const entry of policy.executables) {
|
|
50
|
-
const entryName = basename(entry);
|
|
51
|
-
if (entryName === name) {
|
|
52
|
-
return entry;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
return null;
|
|
56
|
-
}
|
|
57
|
-
//# sourceMappingURL=command-trusted-executables.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"command-trusted-executables.js","sourceRoot":"","sources":["../../src/security/command-trusted-executables.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAO7B,SAAS,QAAQ,CAAC,KAAoB;IACpC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAoB,EAAE,MAA8B;IACnF,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC7B,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAA6B,EAAE,MAA8B;IAC5F,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,CAAC;QAClD,OAAO,OAAO,CAAC,UAAU,CAAC;IAC5B,CAAC;IACD,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACjD,IAAI,WAAW,KAAK,KAAK,EAAE,CAAC;QAC1B,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,OAAO,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,0BAA0B,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAE,CAAC,EAAE,CAAC;YAC5F,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;QACD,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC;IACrC,CAAC;IACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,OAA6B,EAC7B,kBAAmD,EACnD,SAAiC;IAEjC,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACxD,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;IAClC,IAAI,CAAC,IAAI,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,kBAAkB,CAAC,WAAW,EAAE,CAAC;QACnD,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YACvB,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,OAA6B,EAC7B,MAA8B;IAE9B,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACrD,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;IAClC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,IAAI,CAAC;IACd,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACvC,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YACvB,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|