@pensar/apex 2.4.0 → 2.5.0-canary.2bbb0f6f
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/build/agent-20hb6mg7.js +20 -0
- package/build/{agent-5ejt5vpz.js → agent-71sn1cjn.js} +9 -8
- package/build/{agent-nhs1w5w0.js → agent-xnrz4bhp.js} +11 -10
- package/build/{apps-17wvz1d7.js → apps-ghf7kp1s.js} +72 -31
- package/build/{auth-z3h9859n.js → auth-p1nrv7re.js} +25 -20
- package/build/authentication-m1vj2f0s.js +20 -0
- package/build/blackboxAgent-hjfzgk93.js +20 -0
- package/build/blackboxPentest-9snp9gvp.js +70 -0
- package/build/{cli-0n4r54hq.js → cli-08fcc6d8.js} +1 -1
- package/build/{cli-gq40s5b3.js → cli-14j00zfh.js} +5 -3
- package/build/{cli-vnynf0js.js → cli-3bmqdcfh.js} +10 -4
- package/build/{cli-mavved45.js → cli-3ew5fs3f.js} +46 -25
- package/build/{cli-xshasbwe.js → cli-4mgj070h.js} +30 -4
- package/build/{cli-repbyhkk.js → cli-4vwnsyep.js} +1141 -525
- package/build/cli-53rm0rrz.js +15 -0
- package/build/cli-68260ckj.js +12136 -0
- package/build/cli-7q3ae3ft.js +6 -0
- package/build/{cli-5k33webc.js → cli-7sqb16dd.js} +45 -43
- package/build/{cli-9rhzhgx2.js → cli-8pk8znhw.js} +1 -1
- package/build/cli-9pbk8m32.js +32 -0
- package/build/{cli-72cvcqhg.js → cli-9ya3yktn.js} +1 -1
- package/build/{cli-vq52kp7j.js → cli-a8n64cef.js} +23 -5
- package/build/{cli-qqt4gj1w.js → cli-a9vq54sx.js} +5 -3
- package/build/{cli-swpbx60z.js → cli-avmhkjtv.js} +1 -1481
- package/build/{cli-tkc598ey.js → cli-f47dgye3.js} +411 -280
- package/build/{cli-k8kc47pq.js → cli-fw7sp0fp.js} +3 -3
- package/build/{cli-32z0017y.js → cli-g3cb8pj5.js} +2 -2
- package/build/{cli-tznv8pf1.js → cli-gbch9xmy.js} +1 -1
- package/build/cli-knd276ed.js +1485 -0
- package/build/{cli-2cbwdk78.js → cli-t7rhyqx5.js} +1 -1
- package/build/{cli-b1adytsy.js → cli-yge44bmk.js} +28 -5
- package/build/cli.js +641 -95
- package/build/{config-f1mj4nhd.js → config-cqw98n5y.js} +18 -15
- package/build/{doctor-ekneewa3.js → doctor-vzh1wmfa.js} +8 -7
- package/build/{fastStrike-8zka43xs.js → fastStrike-f441e9nr.js} +13 -10
- package/build/{fixes-b89s5haw.js → fixes-xxz52cf2.js} +25 -20
- package/build/getMachineId-bsd-xj3bn2fv.js +36 -0
- package/build/getMachineId-darwin-07jzjcx6.js +36 -0
- package/build/getMachineId-linux-ahngynxd.js +29 -0
- package/build/getMachineId-unsupported-vy43b44z.js +19 -0
- package/build/getMachineId-win-8x66cynz.js +38 -0
- package/build/{index-ghwf5z3v.js → index-23jj0234.js} +3 -3
- package/build/{index-6d22pyxt.js → index-3gavwzay.js} +1756 -1213
- package/build/{index-4ad3sdwk.js → index-4v5jc2td.js} +4 -4
- package/build/{index-mtq7kmxz.js → index-5wh7gq37.js} +4 -2
- package/build/{index-sf16jm0m.js → index-e7kq5rrd.js} +9 -7
- package/build/{index-rbzhk712.js → index-fxx38nc9.js} +11 -10
- package/build/{index-hqjdg6fg.js → index-j3dc7dks.js} +17 -9
- package/build/{index-y5w6n3tb.js → index-yc1dnj3n.js} +2 -2
- package/build/{issues-xx5bs4md.js → issues-zdag9ayw.js} +82 -26
- package/build/{logs-qtxe51w2.js → logs-f492cjgt.js} +25 -20
- package/build/{offesecAgent-b9e2xm6v.js → offesecAgent-pr0cmrqb.js} +10 -9
- package/build/pentest-1g3fzah5.js +30 -0
- package/build/{pentests-6ks3szc4.js → pentests-vstpzh9j.js} +26 -21
- package/build/{targetedPentest-s1ptvq8e.js → targetedPentest-wj3ae355.js} +11 -10
- package/build/{targets-sxygyj87.js → targets-806zxf1n.js} +27 -22
- package/build/threatModel-dc4jbhkf.js +29 -0
- package/build/{uninstall-tvsh81v8.js → uninstall-58ak2e2v.js} +6 -3
- package/build/{upload-7wdyyqmr.js → upload-kkktzh83.js} +8 -7
- package/build/{utils-7fwdkqk6.js → utils-1sawtwbj.js} +7 -6
- package/package.json +8 -2
- package/build/agent-mvpgvgks.js +0 -19
- package/build/authentication-3s97cpk4.js +0 -19
- package/build/blackboxAgent-gw0a1ca4.js +0 -19
- package/build/blackboxPentest-44333zss.js +0 -37
- package/build/main-mmjp338j.js +0 -324
- package/build/pentest-xtc1sjdw.js +0 -29
- package/build/threatModel-xsm6fwk5.js +0 -27
|
@@ -14,10 +14,10 @@ import {
|
|
|
14
14
|
signGatewayRequest,
|
|
15
15
|
startDeviceFlow,
|
|
16
16
|
validateGateway
|
|
17
|
-
} from "./cli-
|
|
18
|
-
import"./cli-
|
|
19
|
-
import"./cli-
|
|
20
|
-
import"./cli-
|
|
17
|
+
} from "./cli-08fcc6d8.js";
|
|
18
|
+
import"./cli-9ya3yktn.js";
|
|
19
|
+
import"./cli-8pk8znhw.js";
|
|
20
|
+
import"./cli-3bmqdcfh.js";
|
|
21
21
|
import"./cli-bc05qbss.js";
|
|
22
22
|
init_auth();
|
|
23
23
|
|
|
@@ -48,7 +48,6 @@ import {
|
|
|
48
48
|
normalizeHeaders,
|
|
49
49
|
parseJsonEventStream,
|
|
50
50
|
readResponseWithSizeLimit,
|
|
51
|
-
require_src,
|
|
52
51
|
resolve,
|
|
53
52
|
safeParseJSON,
|
|
54
53
|
safeValidateTypes,
|
|
@@ -56,8 +55,11 @@ import {
|
|
|
56
55
|
validateTypes,
|
|
57
56
|
withUserAgentSuffix,
|
|
58
57
|
zodSchema
|
|
59
|
-
} from "./cli-
|
|
58
|
+
} from "./cli-avmhkjtv.js";
|
|
60
59
|
import"./cli-j54qa6tm.js";
|
|
60
|
+
import {
|
|
61
|
+
require_src
|
|
62
|
+
} from "./cli-knd276ed.js";
|
|
61
63
|
import {
|
|
62
64
|
__toESM
|
|
63
65
|
} from "./cli-bc05qbss.js";
|
|
@@ -17,19 +17,20 @@ import {
|
|
|
17
17
|
update,
|
|
18
18
|
write,
|
|
19
19
|
writeRaw
|
|
20
|
-
} from "./cli-
|
|
21
|
-
import"./cli-
|
|
20
|
+
} from "./cli-f47dgye3.js";
|
|
21
|
+
import"./cli-08fcc6d8.js";
|
|
22
22
|
import {
|
|
23
23
|
init_zod,
|
|
24
24
|
zod_default
|
|
25
|
-
} from "./cli-
|
|
25
|
+
} from "./cli-avmhkjtv.js";
|
|
26
26
|
import"./cli-j54qa6tm.js";
|
|
27
|
-
import"./cli-
|
|
28
|
-
import"./cli-
|
|
27
|
+
import"./cli-9ya3yktn.js";
|
|
28
|
+
import"./cli-8pk8znhw.js";
|
|
29
29
|
import {
|
|
30
30
|
getCurrentVersion,
|
|
31
31
|
init_installation
|
|
32
|
-
} from "./cli-
|
|
32
|
+
} from "./cli-3bmqdcfh.js";
|
|
33
|
+
import"./cli-knd276ed.js";
|
|
33
34
|
import {
|
|
34
35
|
__require
|
|
35
36
|
} from "./cli-bc05qbss.js";
|
|
@@ -190,6 +191,7 @@ var SessionConfigObject = zod_default.object({
|
|
|
190
191
|
prompt: zod_default.string().optional(),
|
|
191
192
|
taskDriven: zod_default.boolean().optional(),
|
|
192
193
|
requirePlan: zod_default.boolean().optional(),
|
|
194
|
+
disableSubagents: zod_default.boolean().optional(),
|
|
193
195
|
promptInjectionLibrarySource: zod_default.string().optional()
|
|
194
196
|
});
|
|
195
197
|
function getPensarDir() {
|
|
@@ -314,7 +316,7 @@ async function create(input) {
|
|
|
314
316
|
if (normalizedConfig?.headers !== undefined) {
|
|
315
317
|
snapshotHeaders = { ...normalizedConfig.headers };
|
|
316
318
|
} else {
|
|
317
|
-
const { config: appConfig } = await import("./index-
|
|
319
|
+
const { config: appConfig } = await import("./index-23jj0234.js");
|
|
318
320
|
const cfg = await appConfig.get();
|
|
319
321
|
snapshotHeaders = cfg.defaultHeaders ? { ...cfg.defaultHeaders } : { ...DEFAULT_HEADER_RECORD };
|
|
320
322
|
}
|
|
@@ -7,19 +7,20 @@ import {
|
|
|
7
7
|
WHITEBOX_APPS_DISCOVERY_SYSTEM_PROMPT,
|
|
8
8
|
WHITEBOX_DISCOVERY_SYSTEM_PROMPT,
|
|
9
9
|
WhiteboxAttackSurfaceAgent
|
|
10
|
-
} from "./cli-
|
|
10
|
+
} from "./cli-fw7sp0fp.js";
|
|
11
11
|
import"./cli-9fsre5pt.js";
|
|
12
|
-
import"./cli-
|
|
13
|
-
import"./cli-
|
|
14
|
-
import"./cli-
|
|
12
|
+
import"./cli-a9vq54sx.js";
|
|
13
|
+
import"./cli-4vwnsyep.js";
|
|
14
|
+
import"./cli-gbch9xmy.js";
|
|
15
15
|
import"./cli-c8131c4q.js";
|
|
16
|
-
import"./cli-
|
|
17
|
-
import"./cli-
|
|
18
|
-
import"./cli-
|
|
16
|
+
import"./cli-f47dgye3.js";
|
|
17
|
+
import"./cli-08fcc6d8.js";
|
|
18
|
+
import"./cli-avmhkjtv.js";
|
|
19
19
|
import"./cli-j54qa6tm.js";
|
|
20
|
-
import"./cli-
|
|
21
|
-
import"./cli-
|
|
22
|
-
import"./cli-
|
|
20
|
+
import"./cli-9ya3yktn.js";
|
|
21
|
+
import"./cli-8pk8znhw.js";
|
|
22
|
+
import"./cli-3bmqdcfh.js";
|
|
23
|
+
import"./cli-knd276ed.js";
|
|
23
24
|
import"./cli-bc05qbss.js";
|
|
24
25
|
export {
|
|
25
26
|
AppsDiscoveryResultSchema,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ApexFindingObject
|
|
3
|
-
} from "./cli-
|
|
3
|
+
} from "./cli-a9vq54sx.js";
|
|
4
4
|
import {
|
|
5
5
|
ALL_TOOL_NAMES,
|
|
6
6
|
ASK_USER_QUESTIONS_TOOL_NAME,
|
|
@@ -20,6 +20,8 @@ import {
|
|
|
20
20
|
ReportErrorReasonSchema,
|
|
21
21
|
SEND_EMAIL_TOOL_NAME,
|
|
22
22
|
SKILL_TOOL_NAMES,
|
|
23
|
+
SMS_LIST_MESSAGES_TOOL_NAME,
|
|
24
|
+
SMS_TOOL_NAMES,
|
|
23
25
|
ScopeViolationError,
|
|
24
26
|
StepTraceWriter,
|
|
25
27
|
addMemory,
|
|
@@ -79,6 +81,7 @@ import {
|
|
|
79
81
|
readTempfileCapped,
|
|
80
82
|
runAttackSurface,
|
|
81
83
|
runPentestWorkflow,
|
|
84
|
+
sessionHasSmsPasswordless,
|
|
82
85
|
setHeadlessMode,
|
|
83
86
|
setUserAgent,
|
|
84
87
|
setViewportSize,
|
|
@@ -95,16 +98,17 @@ import {
|
|
|
95
98
|
validateDiscovery,
|
|
96
99
|
webSearch,
|
|
97
100
|
writePlan
|
|
98
|
-
} from "./cli-
|
|
99
|
-
import"./cli-
|
|
101
|
+
} from "./cli-4vwnsyep.js";
|
|
102
|
+
import"./cli-gbch9xmy.js";
|
|
100
103
|
import"./cli-c8131c4q.js";
|
|
101
|
-
import"./cli-
|
|
102
|
-
import"./cli-
|
|
103
|
-
import"./cli-
|
|
104
|
+
import"./cli-f47dgye3.js";
|
|
105
|
+
import"./cli-08fcc6d8.js";
|
|
106
|
+
import"./cli-avmhkjtv.js";
|
|
104
107
|
import"./cli-j54qa6tm.js";
|
|
105
|
-
import"./cli-
|
|
106
|
-
import"./cli-
|
|
107
|
-
import"./cli-
|
|
108
|
+
import"./cli-9ya3yktn.js";
|
|
109
|
+
import"./cli-8pk8znhw.js";
|
|
110
|
+
import"./cli-3bmqdcfh.js";
|
|
111
|
+
import"./cli-knd276ed.js";
|
|
108
112
|
import"./cli-bc05qbss.js";
|
|
109
113
|
export {
|
|
110
114
|
ALL_TOOL_NAMES,
|
|
@@ -127,6 +131,9 @@ export {
|
|
|
127
131
|
ReportErrorReasonSchema,
|
|
128
132
|
SEND_EMAIL_TOOL_NAME,
|
|
129
133
|
SKILL_TOOL_NAMES,
|
|
134
|
+
SMS_LIST_MESSAGES_TOOL_NAME,
|
|
135
|
+
SMS_TOOL_NAMES,
|
|
136
|
+
SMS_TOOL_NAMES as SMS_TOOL_NAMES_ACTIVE,
|
|
130
137
|
ScopeViolationError,
|
|
131
138
|
StepTraceWriter,
|
|
132
139
|
addMemory,
|
|
@@ -186,6 +193,7 @@ export {
|
|
|
186
193
|
readTempfileCapped,
|
|
187
194
|
runAttackSurface,
|
|
188
195
|
runPentestWorkflow,
|
|
196
|
+
sessionHasSmsPasswordless,
|
|
189
197
|
setHeadlessMode,
|
|
190
198
|
setUserAgent,
|
|
191
199
|
setViewportSize,
|
|
@@ -1,32 +1,40 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
2
|
import {
|
|
3
|
+
markCommandFailed
|
|
4
|
+
} from "./cli-7q3ae3ft.js";
|
|
5
|
+
import {
|
|
6
|
+
CLOSED_DISPOSITIONS,
|
|
7
|
+
createIssueComment,
|
|
3
8
|
getIssue,
|
|
4
9
|
linkPullRequest,
|
|
10
|
+
listIssueComments,
|
|
5
11
|
listIssuePullRequests,
|
|
6
12
|
listIssues,
|
|
7
13
|
retestIssue,
|
|
8
14
|
updateIssue
|
|
9
|
-
} from "./cli-
|
|
10
|
-
import"./cli-
|
|
11
|
-
import"./cli-
|
|
12
|
-
import"./cli-
|
|
13
|
-
import"./cli-
|
|
14
|
-
import"./cli-
|
|
15
|
-
import"./cli-
|
|
16
|
-
import"./cli-
|
|
15
|
+
} from "./cli-a8n64cef.js";
|
|
16
|
+
import"./cli-9pbk8m32.js";
|
|
17
|
+
import"./cli-7sqb16dd.js";
|
|
18
|
+
import"./cli-fw7sp0fp.js";
|
|
19
|
+
import"./cli-14j00zfh.js";
|
|
20
|
+
import"./cli-3ew5fs3f.js";
|
|
21
|
+
import"./cli-yge44bmk.js";
|
|
22
|
+
import"./cli-4mgj070h.js";
|
|
23
|
+
import"./cli-g3cb8pj5.js";
|
|
17
24
|
import"./cli-9fsre5pt.js";
|
|
18
|
-
import"./cli-
|
|
19
|
-
import"./cli-
|
|
20
|
-
import"./cli-
|
|
25
|
+
import"./cli-a9vq54sx.js";
|
|
26
|
+
import"./cli-4vwnsyep.js";
|
|
27
|
+
import"./cli-gbch9xmy.js";
|
|
21
28
|
import"./cli-fw5r7pfj.js";
|
|
22
29
|
import"./cli-c8131c4q.js";
|
|
23
|
-
import"./cli-
|
|
24
|
-
import"./cli-
|
|
25
|
-
import"./cli-
|
|
30
|
+
import"./cli-f47dgye3.js";
|
|
31
|
+
import"./cli-08fcc6d8.js";
|
|
32
|
+
import"./cli-avmhkjtv.js";
|
|
26
33
|
import"./cli-j54qa6tm.js";
|
|
27
|
-
import"./cli-
|
|
28
|
-
import"./cli-
|
|
29
|
-
import"./cli-
|
|
34
|
+
import"./cli-9ya3yktn.js";
|
|
35
|
+
import"./cli-8pk8znhw.js";
|
|
36
|
+
import"./cli-3bmqdcfh.js";
|
|
37
|
+
import"./cli-knd276ed.js";
|
|
30
38
|
import"./cli-bc05qbss.js";
|
|
31
39
|
|
|
32
40
|
// src/cli/issues.ts
|
|
@@ -46,9 +54,14 @@ Usage:
|
|
|
46
54
|
pensar issues retest <issueId> Retest an issue
|
|
47
55
|
pensar issues link-pr <issueId> --url <url> Link a pull request to an issue
|
|
48
56
|
pensar issues prs <issueId> List pull requests linked to an issue
|
|
57
|
+
pensar issues comments <issueId> List review comments on an issue
|
|
58
|
+
pensar issues comment <issueId> --body <text> Post a comment on an issue
|
|
49
59
|
|
|
50
60
|
<issueId> accepts the issue UUID or its label (e.g. VULN-000123).
|
|
51
61
|
|
|
62
|
+
Issue responses include "issueLabel" (e.g. VULN-000123, null for issues created
|
|
63
|
+
before labels existed) and "url", a deep link to the issue in the Console.
|
|
64
|
+
|
|
52
65
|
List filters:
|
|
53
66
|
--status <status> Filter: open, closed, false-positive, in-review
|
|
54
67
|
--severity <sev> Filter: critical, high, medium, low
|
|
@@ -59,19 +72,31 @@ Update options:
|
|
|
59
72
|
--status <status> New status
|
|
60
73
|
--closed-reason <reason> Reason for closing
|
|
61
74
|
--closed-comments <text> Additional comments
|
|
75
|
+
--disposition <value> Why it is closed: resolved, wont-fix, out-of-scope,
|
|
76
|
+
risk-accepted
|
|
62
77
|
--false-positive Flag as false positive
|
|
63
78
|
--fp-reason <reason> Reason for false positive flag
|
|
64
79
|
|
|
65
80
|
Link-pr options:
|
|
66
81
|
--url <url> URL of the pull request to link (required)
|
|
67
82
|
|
|
83
|
+
Comments options:
|
|
84
|
+
--page <n> Page number (default 1)
|
|
85
|
+
--page-size <n> Comments per page (default 50, max 200)
|
|
86
|
+
|
|
87
|
+
Comment options:
|
|
88
|
+
--body <text> Comment text (required)
|
|
89
|
+
|
|
90
|
+
Comments are returned oldest first. Posting requires a user login; a workspace
|
|
91
|
+
API key has no author to attribute a comment to.
|
|
92
|
+
|
|
68
93
|
Options:
|
|
69
94
|
-h, --help Show this help message`);
|
|
70
95
|
}
|
|
71
96
|
async function main() {
|
|
72
97
|
const args = process.argv.slice(2);
|
|
73
98
|
const sub = args[0];
|
|
74
|
-
if (sub === "
|
|
99
|
+
if (sub === "help" || args.includes("--help") || args.includes("-h")) {
|
|
75
100
|
showHelp();
|
|
76
101
|
return;
|
|
77
102
|
}
|
|
@@ -81,7 +106,7 @@ async function main() {
|
|
|
81
106
|
if (!issueId) {
|
|
82
107
|
console.error("Error: issue ID is required");
|
|
83
108
|
console.error("Usage: pensar issues get <issueId>");
|
|
84
|
-
|
|
109
|
+
return markCommandFailed();
|
|
85
110
|
}
|
|
86
111
|
const issue = await getIssue(issueId);
|
|
87
112
|
console.log(JSON.stringify(issue, null, 2));
|
|
@@ -90,17 +115,24 @@ async function main() {
|
|
|
90
115
|
if (!issueId) {
|
|
91
116
|
console.error("Error: issue ID is required");
|
|
92
117
|
console.error("Usage: pensar issues update <issueId> [--status <status>] ...");
|
|
93
|
-
|
|
118
|
+
return markCommandFailed();
|
|
94
119
|
}
|
|
95
120
|
const status = getFlag("--status", args);
|
|
96
121
|
const closedReason = getFlag("--closed-reason", args);
|
|
97
122
|
const closedComments = getFlag("--closed-comments", args);
|
|
123
|
+
const dispositionFlag = getFlag("--disposition", args);
|
|
124
|
+
if (dispositionFlag !== undefined && !CLOSED_DISPOSITIONS.includes(dispositionFlag)) {
|
|
125
|
+
console.error(`Error: invalid --disposition "${dispositionFlag}". Accepted: ${CLOSED_DISPOSITIONS.join(", ")}`);
|
|
126
|
+
return markCommandFailed();
|
|
127
|
+
}
|
|
128
|
+
const closedDisposition = dispositionFlag;
|
|
98
129
|
const userFlaggedFalsePositive = args.includes("--false-positive") ? true : undefined;
|
|
99
130
|
const userFlaggedFalsePositiveReason = getFlag("--fp-reason", args);
|
|
100
131
|
const result = await updateIssue(issueId, {
|
|
101
132
|
status,
|
|
102
133
|
closedReason,
|
|
103
134
|
closedComments,
|
|
135
|
+
closedDisposition,
|
|
104
136
|
userFlaggedFalsePositive,
|
|
105
137
|
userFlaggedFalsePositiveReason
|
|
106
138
|
});
|
|
@@ -110,7 +142,7 @@ async function main() {
|
|
|
110
142
|
if (!issueId) {
|
|
111
143
|
console.error("Error: issue ID is required");
|
|
112
144
|
console.error("Usage: pensar issues retest <issueId>");
|
|
113
|
-
|
|
145
|
+
return markCommandFailed();
|
|
114
146
|
}
|
|
115
147
|
const result = await retestIssue(issueId);
|
|
116
148
|
console.log(JSON.stringify(result, null, 2));
|
|
@@ -120,16 +152,40 @@ async function main() {
|
|
|
120
152
|
if (!issueId || issueId.startsWith("--") || !url) {
|
|
121
153
|
console.error("Error: issue ID and --url are required");
|
|
122
154
|
console.error("Usage: pensar issues link-pr <issueId> --url <prUrl>");
|
|
123
|
-
|
|
155
|
+
return markCommandFailed();
|
|
124
156
|
}
|
|
125
157
|
const result = await linkPullRequest(issueId, url);
|
|
126
158
|
console.log(JSON.stringify(result, null, 2));
|
|
159
|
+
} else if (sub === "comments") {
|
|
160
|
+
const issueId = args[1];
|
|
161
|
+
if (!issueId || issueId.startsWith("--")) {
|
|
162
|
+
console.error("Error: issue ID is required");
|
|
163
|
+
console.error("Usage: pensar issues comments <issueId>");
|
|
164
|
+
return markCommandFailed();
|
|
165
|
+
}
|
|
166
|
+
const page = getFlag("--page", args);
|
|
167
|
+
const pageSize = getFlag("--page-size", args);
|
|
168
|
+
const result = await listIssueComments(issueId, {
|
|
169
|
+
page: page ? Number(page) : undefined,
|
|
170
|
+
pageSize: pageSize ? Number(pageSize) : undefined
|
|
171
|
+
});
|
|
172
|
+
console.log(JSON.stringify(result, null, 2));
|
|
173
|
+
} else if (sub === "comment") {
|
|
174
|
+
const issueId = args[1];
|
|
175
|
+
const body = getFlag("--body", args);
|
|
176
|
+
if (!issueId || issueId.startsWith("--") || !body) {
|
|
177
|
+
console.error("Error: issue ID and --body are required");
|
|
178
|
+
console.error('Usage: pensar issues comment <issueId> --body "<text>"');
|
|
179
|
+
return markCommandFailed();
|
|
180
|
+
}
|
|
181
|
+
const result = await createIssueComment(issueId, body);
|
|
182
|
+
console.log(JSON.stringify(result, null, 2));
|
|
127
183
|
} else if (sub === "prs") {
|
|
128
184
|
const issueId = args[1];
|
|
129
185
|
if (!issueId) {
|
|
130
186
|
console.error("Error: issue ID is required");
|
|
131
187
|
console.error("Usage: pensar issues prs <issueId>");
|
|
132
|
-
|
|
188
|
+
return markCommandFailed();
|
|
133
189
|
}
|
|
134
190
|
const result = await listIssuePullRequests(issueId);
|
|
135
191
|
console.log(JSON.stringify(result, null, 2));
|
|
@@ -144,12 +200,12 @@ async function main() {
|
|
|
144
200
|
} else {
|
|
145
201
|
console.error(`Error: Unknown subcommand "${sub}"`);
|
|
146
202
|
showHelp();
|
|
147
|
-
|
|
203
|
+
return markCommandFailed();
|
|
148
204
|
}
|
|
149
205
|
} catch (err) {
|
|
150
206
|
console.error(`
|
|
151
207
|
Error: ${err instanceof Error ? err.message : String(err)}`);
|
|
152
|
-
|
|
208
|
+
return markCommandFailed();
|
|
153
209
|
}
|
|
154
210
|
}
|
|
155
|
-
main();
|
|
211
|
+
await main();
|
|
@@ -1,28 +1,33 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
|
+
import {
|
|
3
|
+
markCommandFailed
|
|
4
|
+
} from "./cli-7q3ae3ft.js";
|
|
2
5
|
import {
|
|
3
6
|
listAgentLogs,
|
|
4
7
|
searchAgentLogs
|
|
5
|
-
} from "./cli-
|
|
6
|
-
import"./cli-
|
|
7
|
-
import"./cli-
|
|
8
|
-
import"./cli-
|
|
9
|
-
import"./cli-
|
|
10
|
-
import"./cli-
|
|
11
|
-
import"./cli-
|
|
12
|
-
import"./cli-
|
|
8
|
+
} from "./cli-a8n64cef.js";
|
|
9
|
+
import"./cli-9pbk8m32.js";
|
|
10
|
+
import"./cli-7sqb16dd.js";
|
|
11
|
+
import"./cli-fw7sp0fp.js";
|
|
12
|
+
import"./cli-14j00zfh.js";
|
|
13
|
+
import"./cli-3ew5fs3f.js";
|
|
14
|
+
import"./cli-yge44bmk.js";
|
|
15
|
+
import"./cli-4mgj070h.js";
|
|
16
|
+
import"./cli-g3cb8pj5.js";
|
|
13
17
|
import"./cli-9fsre5pt.js";
|
|
14
|
-
import"./cli-
|
|
15
|
-
import"./cli-
|
|
16
|
-
import"./cli-
|
|
18
|
+
import"./cli-a9vq54sx.js";
|
|
19
|
+
import"./cli-4vwnsyep.js";
|
|
20
|
+
import"./cli-gbch9xmy.js";
|
|
17
21
|
import"./cli-fw5r7pfj.js";
|
|
18
22
|
import"./cli-c8131c4q.js";
|
|
19
|
-
import"./cli-
|
|
20
|
-
import"./cli-
|
|
21
|
-
import"./cli-
|
|
23
|
+
import"./cli-f47dgye3.js";
|
|
24
|
+
import"./cli-08fcc6d8.js";
|
|
25
|
+
import"./cli-avmhkjtv.js";
|
|
22
26
|
import"./cli-j54qa6tm.js";
|
|
23
|
-
import"./cli-
|
|
24
|
-
import"./cli-
|
|
25
|
-
import"./cli-
|
|
27
|
+
import"./cli-9ya3yktn.js";
|
|
28
|
+
import"./cli-8pk8znhw.js";
|
|
29
|
+
import"./cli-3bmqdcfh.js";
|
|
30
|
+
import"./cli-knd276ed.js";
|
|
26
31
|
import"./cli-bc05qbss.js";
|
|
27
32
|
|
|
28
33
|
// src/cli/logs.ts
|
|
@@ -64,7 +69,7 @@ async function main() {
|
|
|
64
69
|
if (!issueId || !query) {
|
|
65
70
|
console.error("Error: issue ID and query are required");
|
|
66
71
|
console.error("Usage: pensar logs search <issueId> <query> [--level <level>] [--role <role>] [--context <n>]");
|
|
67
|
-
|
|
72
|
+
return markCommandFailed();
|
|
68
73
|
}
|
|
69
74
|
const level = getFlag("--level", args);
|
|
70
75
|
const role = getFlag("--role", args);
|
|
@@ -88,7 +93,7 @@ async function main() {
|
|
|
88
93
|
} catch (err) {
|
|
89
94
|
console.error(`
|
|
90
95
|
Error: ${err instanceof Error ? err.message : String(err)}`);
|
|
91
|
-
|
|
96
|
+
return markCommandFailed();
|
|
92
97
|
}
|
|
93
98
|
}
|
|
94
|
-
main();
|
|
99
|
+
await main();
|
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
import"./cli-9fsre5pt.js";
|
|
2
|
-
import"./cli-
|
|
2
|
+
import"./cli-a9vq54sx.js";
|
|
3
3
|
import {
|
|
4
4
|
OffensiveSecurityAgent
|
|
5
|
-
} from "./cli-
|
|
6
|
-
import"./cli-
|
|
5
|
+
} from "./cli-4vwnsyep.js";
|
|
6
|
+
import"./cli-gbch9xmy.js";
|
|
7
7
|
import"./cli-c8131c4q.js";
|
|
8
|
-
import"./cli-
|
|
9
|
-
import"./cli-
|
|
10
|
-
import"./cli-
|
|
8
|
+
import"./cli-f47dgye3.js";
|
|
9
|
+
import"./cli-08fcc6d8.js";
|
|
10
|
+
import"./cli-avmhkjtv.js";
|
|
11
11
|
import"./cli-j54qa6tm.js";
|
|
12
|
-
import"./cli-
|
|
13
|
-
import"./cli-
|
|
14
|
-
import"./cli-
|
|
12
|
+
import"./cli-9ya3yktn.js";
|
|
13
|
+
import"./cli-8pk8znhw.js";
|
|
14
|
+
import"./cli-3bmqdcfh.js";
|
|
15
|
+
import"./cli-knd276ed.js";
|
|
15
16
|
import"./cli-bc05qbss.js";
|
|
16
17
|
|
|
17
18
|
// src/core/api/offesecAgent.ts
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import {
|
|
2
|
+
DEFAULT_CONCURRENCY,
|
|
3
|
+
runPentestSwarm,
|
|
4
|
+
runPentestWorkflow
|
|
5
|
+
} from "./cli-7sqb16dd.js";
|
|
6
|
+
import"./cli-fw7sp0fp.js";
|
|
7
|
+
import"./cli-14j00zfh.js";
|
|
8
|
+
import"./cli-3ew5fs3f.js";
|
|
9
|
+
import"./cli-yge44bmk.js";
|
|
10
|
+
import"./cli-g3cb8pj5.js";
|
|
11
|
+
import"./cli-9fsre5pt.js";
|
|
12
|
+
import"./cli-a9vq54sx.js";
|
|
13
|
+
import"./cli-4vwnsyep.js";
|
|
14
|
+
import"./cli-gbch9xmy.js";
|
|
15
|
+
import"./cli-fw5r7pfj.js";
|
|
16
|
+
import"./cli-c8131c4q.js";
|
|
17
|
+
import"./cli-f47dgye3.js";
|
|
18
|
+
import"./cli-08fcc6d8.js";
|
|
19
|
+
import"./cli-avmhkjtv.js";
|
|
20
|
+
import"./cli-j54qa6tm.js";
|
|
21
|
+
import"./cli-9ya3yktn.js";
|
|
22
|
+
import"./cli-8pk8znhw.js";
|
|
23
|
+
import"./cli-3bmqdcfh.js";
|
|
24
|
+
import"./cli-knd276ed.js";
|
|
25
|
+
import"./cli-bc05qbss.js";
|
|
26
|
+
export {
|
|
27
|
+
DEFAULT_CONCURRENCY,
|
|
28
|
+
runPentestSwarm,
|
|
29
|
+
runPentestWorkflow
|
|
30
|
+
};
|
|
@@ -1,29 +1,34 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
|
+
import {
|
|
3
|
+
markCommandFailed
|
|
4
|
+
} from "./cli-7q3ae3ft.js";
|
|
2
5
|
import {
|
|
3
6
|
dispatchPentest,
|
|
4
7
|
getScan,
|
|
5
8
|
listScans
|
|
6
|
-
} from "./cli-
|
|
7
|
-
import"./cli-
|
|
8
|
-
import"./cli-
|
|
9
|
-
import"./cli-
|
|
10
|
-
import"./cli-
|
|
11
|
-
import"./cli-
|
|
12
|
-
import"./cli-
|
|
13
|
-
import"./cli-
|
|
9
|
+
} from "./cli-a8n64cef.js";
|
|
10
|
+
import"./cli-9pbk8m32.js";
|
|
11
|
+
import"./cli-7sqb16dd.js";
|
|
12
|
+
import"./cli-fw7sp0fp.js";
|
|
13
|
+
import"./cli-14j00zfh.js";
|
|
14
|
+
import"./cli-3ew5fs3f.js";
|
|
15
|
+
import"./cli-yge44bmk.js";
|
|
16
|
+
import"./cli-4mgj070h.js";
|
|
17
|
+
import"./cli-g3cb8pj5.js";
|
|
14
18
|
import"./cli-9fsre5pt.js";
|
|
15
|
-
import"./cli-
|
|
16
|
-
import"./cli-
|
|
17
|
-
import"./cli-
|
|
19
|
+
import"./cli-a9vq54sx.js";
|
|
20
|
+
import"./cli-4vwnsyep.js";
|
|
21
|
+
import"./cli-gbch9xmy.js";
|
|
18
22
|
import"./cli-fw5r7pfj.js";
|
|
19
23
|
import"./cli-c8131c4q.js";
|
|
20
|
-
import"./cli-
|
|
21
|
-
import"./cli-
|
|
22
|
-
import"./cli-
|
|
24
|
+
import"./cli-f47dgye3.js";
|
|
25
|
+
import"./cli-08fcc6d8.js";
|
|
26
|
+
import"./cli-avmhkjtv.js";
|
|
23
27
|
import"./cli-j54qa6tm.js";
|
|
24
|
-
import"./cli-
|
|
25
|
-
import"./cli-
|
|
26
|
-
import"./cli-
|
|
28
|
+
import"./cli-9ya3yktn.js";
|
|
29
|
+
import"./cli-8pk8znhw.js";
|
|
30
|
+
import"./cli-3bmqdcfh.js";
|
|
31
|
+
import"./cli-knd276ed.js";
|
|
27
32
|
import"./cli-bc05qbss.js";
|
|
28
33
|
|
|
29
34
|
// src/cli/pentests.ts
|
|
@@ -61,7 +66,7 @@ async function main() {
|
|
|
61
66
|
if (!pentestId) {
|
|
62
67
|
console.error("Error: pentest ID is required");
|
|
63
68
|
console.error("Usage: pensar pentests get <pentestId>");
|
|
64
|
-
|
|
69
|
+
return markCommandFailed();
|
|
65
70
|
}
|
|
66
71
|
const scan = await getScan(pentestId);
|
|
67
72
|
console.log(JSON.stringify(scan, null, 2));
|
|
@@ -76,12 +81,12 @@ async function main() {
|
|
|
76
81
|
} else {
|
|
77
82
|
console.error(`Error: Unknown subcommand "${sub}"`);
|
|
78
83
|
showHelp();
|
|
79
|
-
|
|
84
|
+
return markCommandFailed();
|
|
80
85
|
}
|
|
81
86
|
} catch (err) {
|
|
82
87
|
console.error(`
|
|
83
88
|
Error: ${err instanceof Error ? err.message : String(err)}`);
|
|
84
|
-
|
|
89
|
+
return markCommandFailed();
|
|
85
90
|
}
|
|
86
91
|
}
|
|
87
|
-
main();
|
|
92
|
+
await main();
|
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
import {
|
|
2
2
|
TargetedPentestAgent
|
|
3
|
-
} from "./cli-
|
|
3
|
+
} from "./cli-3ew5fs3f.js";
|
|
4
4
|
import"./cli-9fsre5pt.js";
|
|
5
|
-
import"./cli-
|
|
6
|
-
import"./cli-
|
|
7
|
-
import"./cli-
|
|
5
|
+
import"./cli-a9vq54sx.js";
|
|
6
|
+
import"./cli-4vwnsyep.js";
|
|
7
|
+
import"./cli-gbch9xmy.js";
|
|
8
8
|
import"./cli-c8131c4q.js";
|
|
9
|
-
import"./cli-
|
|
10
|
-
import"./cli-
|
|
11
|
-
import"./cli-
|
|
9
|
+
import"./cli-f47dgye3.js";
|
|
10
|
+
import"./cli-08fcc6d8.js";
|
|
11
|
+
import"./cli-avmhkjtv.js";
|
|
12
12
|
import"./cli-j54qa6tm.js";
|
|
13
|
-
import"./cli-
|
|
14
|
-
import"./cli-
|
|
15
|
-
import"./cli-
|
|
13
|
+
import"./cli-9ya3yktn.js";
|
|
14
|
+
import"./cli-8pk8znhw.js";
|
|
15
|
+
import"./cli-3bmqdcfh.js";
|
|
16
|
+
import"./cli-knd276ed.js";
|
|
16
17
|
import"./cli-bc05qbss.js";
|
|
17
18
|
|
|
18
19
|
// src/core/api/targetedPentest.ts
|