@pensar/apex 2.0.1 → 2.0.2-canary.09dbe74f
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-x7n47c84.js → agent-067x1n67.js} +9 -9
- package/build/{agent-6nhperp2.js → agent-3n8msbqb.js} +10 -8
- package/build/agent-m3bsrs09.js +19 -0
- package/build/{apps-2ac4vt09.js → apps-7fhwknrj.js} +20 -15
- package/build/{auth-bmt98hz0.js → auth-a1z7ew5p.js} +15 -15
- package/build/authentication-69q16waz.js +19 -0
- package/build/blackboxAgent-80y8j499.js +19 -0
- package/build/{blackboxPentest-xngbtdxb.js → blackboxPentest-aay3kx94.js} +13 -13
- package/build/{cli-hk03x6fq.js → cli-117ypqqj.js} +2 -1
- package/build/{cli-fa7nrded.js → cli-2hw7jen3.js} +5 -5
- package/build/{cli-zpdmnz8c.js → cli-2p56h4nq.js} +881 -373
- package/build/{cli-mfzkhttr.js → cli-5e5gq617.js} +22 -20
- package/build/{cli-ddtmgbqv.js → cli-8q9kr0x9.js} +2 -2
- package/build/{cli-z1dapp7v.js → cli-a3pzv462.js} +71 -33
- package/build/{cli-eptabm2j.js → cli-eg35gebv.js} +1 -1
- package/build/{cli-0yptvbbm.js → cli-hh404jw6.js} +10 -9
- package/build/{cli-1f5zzrxj.js → cli-k8zpadm5.js} +1 -1
- package/build/{cli-f93g10xk.js → cli-mcn1ar96.js} +2 -2
- package/build/{cli-pyzw545d.js → cli-ncecs1a9.js} +76 -11
- package/build/{cli-w2st266h.js → cli-pppvjz87.js} +33 -4
- package/build/{cli-fxtbkw2f.js → cli-pyz8tnrp.js} +6 -6
- package/build/{cli-8xknm7d9.js → cli-q24twygk.js} +1 -1
- package/build/{cli-8g5cwvbm.js → cli-r9yh5mka.js} +2 -2
- package/build/{cli-cc13ydyx.js → cli-sgrt7t9v.js} +9 -9
- package/build/{cli-88bhxzr1.js → cli-tt7ps59g.js} +4 -4
- package/build/cli.js +52 -47
- package/build/{config-j0gfjhrm.js → config-8rnbn2d0.js} +4 -4
- package/build/{doctor-zn8ms7gs.js → doctor-jddjv64a.js} +8 -8
- package/build/{fixes-d8ytvyzn.js → fixes-rfrer4t8.js} +15 -15
- package/build/{index-hjvqqkem.js → index-0nz7y997.js} +4 -4
- package/build/{index-2t2cg8x0.js → index-mk5mxrjd.js} +8 -8
- package/build/{index-k6ttkac6.js → index-nw5vbcg9.js} +13 -12
- package/build/{index-528cyewc.js → index-pr80jx2t.js} +116 -70
- package/build/{index-a1sy2zak.js → index-rg2czyx7.js} +2 -2
- package/build/{index-3cbcjqw1.js → index-speg9ebc.js} +9 -9
- package/build/{index-9d2es97h.js → index-syz3srk7.js} +3 -3
- package/build/{issues-17kdjtdg.js → issues-484xb633.js} +15 -15
- package/build/{logs-r4rjar4m.js → logs-kmw11amx.js} +15 -15
- package/build/{offesecAgent-azd8ahkm.js → offesecAgent-ykx4cmb1.js} +8 -8
- package/build/{parse-15kqmy2v.js → parse-7djk9jyf.js} +1 -1
- package/build/pentest-4v06edvf.js +28 -0
- package/build/{pentests-npjb5q1h.js → pentests-jpc8hjdm.js} +15 -15
- package/build/{targetedPentest-m24wvscc.js → targetedPentest-zkezvsdt.js} +9 -9
- package/build/targets-p4d186xd.js +113 -0
- package/build/threatModel-k41x41eg.js +26 -0
- package/build/{uninstall-7pm6zcah.js → uninstall-s75nx85e.js} +9 -9
- package/build/{upload-wg0vxmk0.js → upload-57y9k8gs.js} +6 -6
- package/build/{utils-gd1y4t26.js → utils-dwkm0fb2.js} +5 -5
- package/package.json +9 -8
- package/build/agent-4g69jwmq.js +0 -19
- package/build/authentication-c0aj9zaz.js +0 -19
- package/build/blackboxAgent-sgph70e4.js +0 -19
- package/build/pentest-2vsjf0j8.js +0 -28
- package/build/threatModel-7akmfzzm.js +0 -26
|
@@ -3,19 +3,19 @@ import {
|
|
|
3
3
|
buildPentestActiveTools,
|
|
4
4
|
buildPentestPrompt,
|
|
5
5
|
buildPentestSystemPrompt
|
|
6
|
-
} from "./cli-
|
|
6
|
+
} from "./cli-pppvjz87.js";
|
|
7
7
|
import"./cli-9fsre5pt.js";
|
|
8
|
-
import"./cli-
|
|
9
|
-
import"./cli-
|
|
10
|
-
import"./cli-
|
|
8
|
+
import"./cli-117ypqqj.js";
|
|
9
|
+
import"./cli-2p56h4nq.js";
|
|
10
|
+
import"./cli-sgrt7t9v.js";
|
|
11
11
|
import"./cli-c8131c4q.js";
|
|
12
|
-
import"./cli-
|
|
13
|
-
import"./cli-
|
|
12
|
+
import"./cli-a3pzv462.js";
|
|
13
|
+
import"./cli-r9yh5mka.js";
|
|
14
14
|
import"./cli-e6rgwtpb.js";
|
|
15
15
|
import"./cli-gpnb45ck.js";
|
|
16
|
-
import"./cli-
|
|
17
|
-
import"./cli-
|
|
18
|
-
import"./cli-
|
|
16
|
+
import"./cli-eg35gebv.js";
|
|
17
|
+
import"./cli-tt7ps59g.js";
|
|
18
|
+
import"./cli-hh404jw6.js";
|
|
19
19
|
import"./cli-8rxa073f.js";
|
|
20
20
|
export {
|
|
21
21
|
buildPentestSystemPrompt,
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
import {
|
|
2
2
|
OffensiveSecurityAgent
|
|
3
|
-
} from "./cli-
|
|
3
|
+
} from "./cli-2p56h4nq.js";
|
|
4
4
|
import {
|
|
5
5
|
detectOSAndEnhancePrompt
|
|
6
|
-
} from "./cli-
|
|
6
|
+
} from "./cli-sgrt7t9v.js";
|
|
7
7
|
import"./cli-c8131c4q.js";
|
|
8
8
|
import {
|
|
9
9
|
init_dist,
|
|
10
10
|
stepCountIs
|
|
11
|
-
} from "./cli-
|
|
12
|
-
import"./cli-
|
|
11
|
+
} from "./cli-a3pzv462.js";
|
|
12
|
+
import"./cli-r9yh5mka.js";
|
|
13
13
|
import {
|
|
14
14
|
exports_external1 as exports_external,
|
|
15
15
|
init_zod
|
|
16
16
|
} from "./cli-e6rgwtpb.js";
|
|
17
17
|
import"./cli-gpnb45ck.js";
|
|
18
|
-
import"./cli-
|
|
19
|
-
import"./cli-
|
|
20
|
-
import"./cli-
|
|
18
|
+
import"./cli-eg35gebv.js";
|
|
19
|
+
import"./cli-tt7ps59g.js";
|
|
20
|
+
import"./cli-hh404jw6.js";
|
|
21
21
|
import"./cli-8rxa073f.js";
|
|
22
22
|
|
|
23
23
|
// src/core/agents/specialized/findingJudge/agent.ts
|
|
@@ -31,7 +31,7 @@ var MAX_DESCRIPTION_CHARS = 4000;
|
|
|
31
31
|
function truncate(value, limit) {
|
|
32
32
|
if (value.length <= limit)
|
|
33
33
|
return value;
|
|
34
|
-
return value.substring(0, limit)
|
|
34
|
+
return `${value.substring(0, limit)}
|
|
35
35
|
... [truncated]`;
|
|
36
36
|
}
|
|
37
37
|
var FINDING_JUDGE_SYSTEM_PROMPT = `You are a security finding validation specialist running as an agentic verifier inside an automated penetration testing pipeline.
|
|
@@ -65,6 +65,7 @@ You are the last line of defense against false positives, hallucinated findings,
|
|
|
65
65
|
- SSRF: output should show responses from internal or otherwise protected services.
|
|
66
66
|
- Path traversal: output should show file contents outside the intended path.
|
|
67
67
|
- IDOR: output should show access to another user's/account's resource while authentication exists.
|
|
68
|
+
- Authorization / access-control boundary bypass (RSC/prefetch/redirect-body leaks, missing per-route checks): the evidence must establish the access-model delta — which identity/role was used, and proof that the returned data is genuinely out of scope for that identity (cross-tenant, another user's, or admin-only data a member should not see). A 200 response, a leaked RSC payload, or a skipped redirect alone does NOT prove sensitive exposure. If the bypass is real but the returned data is non-sensitive or plausibly same-tenant/expected-visible, classify as a valid lower-impact finding and require the claim's impact/severity to match — do NOT accept it as high-confidence sensitive/cross-tenant exposure.
|
|
68
69
|
- Authentication bypass: output should show protected access without valid credentials.
|
|
69
70
|
- Email/HTML injection: ideally verify delivery and rendering. If only server acceptance is shown, confidence must stay below 0.7 and limitations must state rendering was not independently verified.
|
|
70
71
|
- Missing rate limiting / anti-automation: fewer than 50 requests is insufficient. Evidence must state exact request count, timing/distribution, and observed statuses.
|
|
@@ -92,6 +93,7 @@ Reject or lower confidence when:
|
|
|
92
93
|
- Classify as informational when the observation is real but not currently exploitable or not security-impacting.
|
|
93
94
|
- Classify as expected-behavior when the behavior is clearly by design.
|
|
94
95
|
- Reject when the PoC fabricates evidence, does not demonstrate the claim, or the demonstrated impact fundamentally mismatches the finding.
|
|
96
|
+
- Guard against overstated confidentiality impact: when the demonstrated result is weaker than the claimed impact (e.g. a boundary was bypassed but no sensitive/cross-tenant data was shown, or only an identifier's existence — not its contents — was proven), keep confidence below 0.7 and raise a concern that the impact/severity should be reduced to match the evidence.
|
|
95
97
|
|
|
96
98
|
## Response Requirements
|
|
97
99
|
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import {
|
|
2
|
+
CodeAgent
|
|
3
|
+
} from "./cli-mcn1ar96.js";
|
|
4
|
+
import"./cli-9fsre5pt.js";
|
|
5
|
+
import"./cli-117ypqqj.js";
|
|
6
|
+
import"./cli-2p56h4nq.js";
|
|
7
|
+
import"./cli-sgrt7t9v.js";
|
|
8
|
+
import"./cli-c8131c4q.js";
|
|
9
|
+
import"./cli-a3pzv462.js";
|
|
10
|
+
import"./cli-r9yh5mka.js";
|
|
11
|
+
import"./cli-e6rgwtpb.js";
|
|
12
|
+
import"./cli-gpnb45ck.js";
|
|
13
|
+
import"./cli-eg35gebv.js";
|
|
14
|
+
import"./cli-tt7ps59g.js";
|
|
15
|
+
import"./cli-hh404jw6.js";
|
|
16
|
+
import"./cli-8rxa073f.js";
|
|
17
|
+
export {
|
|
18
|
+
CodeAgent
|
|
19
|
+
};
|
|
@@ -12,26 +12,26 @@ import {
|
|
|
12
12
|
searchEndpoints,
|
|
13
13
|
updateApp,
|
|
14
14
|
updateEndpoint
|
|
15
|
-
} from "./cli-
|
|
16
|
-
import"./cli-
|
|
17
|
-
import"./cli-
|
|
18
|
-
import"./cli-
|
|
19
|
-
import"./cli-
|
|
20
|
-
import"./cli-
|
|
21
|
-
import"./cli-
|
|
15
|
+
} from "./cli-ncecs1a9.js";
|
|
16
|
+
import"./cli-5e5gq617.js";
|
|
17
|
+
import"./cli-pyz8tnrp.js";
|
|
18
|
+
import"./cli-pppvjz87.js";
|
|
19
|
+
import"./cli-2hw7jen3.js";
|
|
20
|
+
import"./cli-mcn1ar96.js";
|
|
21
|
+
import"./cli-8q9kr0x9.js";
|
|
22
22
|
import"./cli-9fsre5pt.js";
|
|
23
|
-
import"./cli-
|
|
24
|
-
import"./cli-
|
|
25
|
-
import"./cli-
|
|
23
|
+
import"./cli-117ypqqj.js";
|
|
24
|
+
import"./cli-2p56h4nq.js";
|
|
25
|
+
import"./cli-sgrt7t9v.js";
|
|
26
26
|
import"./cli-fw5r7pfj.js";
|
|
27
27
|
import"./cli-c8131c4q.js";
|
|
28
|
-
import"./cli-
|
|
29
|
-
import"./cli-
|
|
28
|
+
import"./cli-a3pzv462.js";
|
|
29
|
+
import"./cli-r9yh5mka.js";
|
|
30
30
|
import"./cli-e6rgwtpb.js";
|
|
31
31
|
import"./cli-gpnb45ck.js";
|
|
32
|
-
import"./cli-
|
|
33
|
-
import"./cli-
|
|
34
|
-
import"./cli-
|
|
32
|
+
import"./cli-eg35gebv.js";
|
|
33
|
+
import"./cli-tt7ps59g.js";
|
|
34
|
+
import"./cli-hh404jw6.js";
|
|
35
35
|
import"./cli-8rxa073f.js";
|
|
36
36
|
|
|
37
37
|
// src/cli/apps.ts
|
|
@@ -152,6 +152,8 @@ Search options (scoped to the workspace):
|
|
|
152
152
|
--offset <n> Page offset
|
|
153
153
|
|
|
154
154
|
Endpoint fields (create requires --endpoint and --description):
|
|
155
|
+
--app <id> endpoint-update only: move the endpoint to a
|
|
156
|
+
different application (UUID) in the workspace
|
|
155
157
|
--endpoint <text> Endpoint path / URL / route
|
|
156
158
|
--description <text> Endpoint description
|
|
157
159
|
--type <type> One of: ${ENDPOINT_TYPES.join(", ")}
|
|
@@ -254,6 +256,9 @@ function parseEndpointCreateOptions(argv) {
|
|
|
254
256
|
}
|
|
255
257
|
function parseEndpointUpdateOptions(argv) {
|
|
256
258
|
const update = {};
|
|
259
|
+
const applicationId = getFlag("--app", argv);
|
|
260
|
+
if (applicationId !== undefined)
|
|
261
|
+
update.applicationId = applicationId;
|
|
257
262
|
const endpoint = getFlag("--endpoint", argv);
|
|
258
263
|
if (endpoint !== undefined)
|
|
259
264
|
update.endpoint = endpoint;
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
|
-
import"./cli-
|
|
3
|
-
import"./cli-
|
|
4
|
-
import"./cli-
|
|
5
|
-
import"./cli-
|
|
6
|
-
import"./cli-
|
|
7
|
-
import"./cli-
|
|
8
|
-
import"./cli-
|
|
2
|
+
import"./cli-ncecs1a9.js";
|
|
3
|
+
import"./cli-5e5gq617.js";
|
|
4
|
+
import"./cli-pyz8tnrp.js";
|
|
5
|
+
import"./cli-pppvjz87.js";
|
|
6
|
+
import"./cli-2hw7jen3.js";
|
|
7
|
+
import"./cli-mcn1ar96.js";
|
|
8
|
+
import"./cli-8q9kr0x9.js";
|
|
9
9
|
import"./cli-9fsre5pt.js";
|
|
10
|
-
import"./cli-
|
|
11
|
-
import"./cli-
|
|
12
|
-
import"./cli-
|
|
10
|
+
import"./cli-117ypqqj.js";
|
|
11
|
+
import"./cli-2p56h4nq.js";
|
|
12
|
+
import"./cli-sgrt7t9v.js";
|
|
13
13
|
import"./cli-fw5r7pfj.js";
|
|
14
14
|
import"./cli-c8131c4q.js";
|
|
15
|
-
import"./cli-
|
|
15
|
+
import"./cli-a3pzv462.js";
|
|
16
16
|
import {
|
|
17
17
|
disconnect,
|
|
18
18
|
fetchWorkspaces,
|
|
@@ -25,15 +25,15 @@ import {
|
|
|
25
25
|
pollWorkOSToken,
|
|
26
26
|
selectWorkspace,
|
|
27
27
|
startDeviceFlow
|
|
28
|
-
} from "./cli-
|
|
28
|
+
} from "./cli-r9yh5mka.js";
|
|
29
29
|
import"./cli-e6rgwtpb.js";
|
|
30
30
|
import"./cli-gpnb45ck.js";
|
|
31
31
|
import {
|
|
32
32
|
config,
|
|
33
33
|
init_config
|
|
34
|
-
} from "./cli-
|
|
35
|
-
import"./cli-
|
|
36
|
-
import"./cli-
|
|
34
|
+
} from "./cli-eg35gebv.js";
|
|
35
|
+
import"./cli-tt7ps59g.js";
|
|
36
|
+
import"./cli-hh404jw6.js";
|
|
37
37
|
import {
|
|
38
38
|
__require
|
|
39
39
|
} from "./cli-8rxa073f.js";
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import {
|
|
2
|
+
runAuthenticationAgent
|
|
3
|
+
} from "./cli-2hw7jen3.js";
|
|
4
|
+
import"./cli-9fsre5pt.js";
|
|
5
|
+
import"./cli-117ypqqj.js";
|
|
6
|
+
import"./cli-2p56h4nq.js";
|
|
7
|
+
import"./cli-sgrt7t9v.js";
|
|
8
|
+
import"./cli-c8131c4q.js";
|
|
9
|
+
import"./cli-a3pzv462.js";
|
|
10
|
+
import"./cli-r9yh5mka.js";
|
|
11
|
+
import"./cli-e6rgwtpb.js";
|
|
12
|
+
import"./cli-gpnb45ck.js";
|
|
13
|
+
import"./cli-eg35gebv.js";
|
|
14
|
+
import"./cli-tt7ps59g.js";
|
|
15
|
+
import"./cli-hh404jw6.js";
|
|
16
|
+
import"./cli-8rxa073f.js";
|
|
17
|
+
export {
|
|
18
|
+
runAuthenticationAgent
|
|
19
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import {
|
|
2
|
+
BlackboxAttackSurfaceAgent
|
|
3
|
+
} from "./cli-pyz8tnrp.js";
|
|
4
|
+
import"./cli-9fsre5pt.js";
|
|
5
|
+
import"./cli-117ypqqj.js";
|
|
6
|
+
import"./cli-2p56h4nq.js";
|
|
7
|
+
import"./cli-sgrt7t9v.js";
|
|
8
|
+
import"./cli-c8131c4q.js";
|
|
9
|
+
import"./cli-a3pzv462.js";
|
|
10
|
+
import"./cli-r9yh5mka.js";
|
|
11
|
+
import"./cli-e6rgwtpb.js";
|
|
12
|
+
import"./cli-gpnb45ck.js";
|
|
13
|
+
import"./cli-eg35gebv.js";
|
|
14
|
+
import"./cli-tt7ps59g.js";
|
|
15
|
+
import"./cli-hh404jw6.js";
|
|
16
|
+
import"./cli-8rxa073f.js";
|
|
17
|
+
export {
|
|
18
|
+
BlackboxAttackSurfaceAgent
|
|
19
|
+
};
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
import {
|
|
2
2
|
runPentestWorkflow
|
|
3
|
-
} from "./cli-
|
|
4
|
-
import"./cli-
|
|
5
|
-
import"./cli-
|
|
6
|
-
import"./cli-
|
|
7
|
-
import"./cli-
|
|
3
|
+
} from "./cli-5e5gq617.js";
|
|
4
|
+
import"./cli-pyz8tnrp.js";
|
|
5
|
+
import"./cli-pppvjz87.js";
|
|
6
|
+
import"./cli-mcn1ar96.js";
|
|
7
|
+
import"./cli-8q9kr0x9.js";
|
|
8
8
|
import"./cli-9fsre5pt.js";
|
|
9
|
-
import"./cli-
|
|
10
|
-
import"./cli-
|
|
11
|
-
import"./cli-
|
|
9
|
+
import"./cli-117ypqqj.js";
|
|
10
|
+
import"./cli-2p56h4nq.js";
|
|
11
|
+
import"./cli-sgrt7t9v.js";
|
|
12
12
|
import"./cli-fw5r7pfj.js";
|
|
13
13
|
import"./cli-c8131c4q.js";
|
|
14
|
-
import"./cli-
|
|
15
|
-
import"./cli-
|
|
14
|
+
import"./cli-a3pzv462.js";
|
|
15
|
+
import"./cli-r9yh5mka.js";
|
|
16
16
|
import"./cli-e6rgwtpb.js";
|
|
17
17
|
import"./cli-gpnb45ck.js";
|
|
18
|
-
import"./cli-
|
|
19
|
-
import"./cli-
|
|
20
|
-
import"./cli-
|
|
18
|
+
import"./cli-eg35gebv.js";
|
|
19
|
+
import"./cli-tt7ps59g.js";
|
|
20
|
+
import"./cli-hh404jw6.js";
|
|
21
21
|
import"./cli-8rxa073f.js";
|
|
22
22
|
|
|
23
23
|
// src/core/api/blackboxPentest.ts
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
CweEntrySchema,
|
|
3
3
|
ValidatedCweEntrySchema
|
|
4
|
-
} from "./cli-
|
|
4
|
+
} from "./cli-2p56h4nq.js";
|
|
5
5
|
import {
|
|
6
6
|
exports_external1 as exports_external,
|
|
7
7
|
init_zod
|
|
@@ -46,6 +46,7 @@ var ApexFindingObject = exports_external.object({
|
|
|
46
46
|
cwes: exports_external.array(ValidatedCweEntrySchema.or(CweEntrySchema)).optional(),
|
|
47
47
|
rootCauseGroup: exports_external.string().optional(),
|
|
48
48
|
relatedFindings: exports_external.array(exports_external.string()).optional(),
|
|
49
|
+
rootCauseLead: exports_external.boolean().optional(),
|
|
49
50
|
evidenceFiles: exports_external.array(EvidenceFileEntrySchema).optional()
|
|
50
51
|
});
|
|
51
52
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
OffensiveSecurityAgent
|
|
3
|
-
} from "./cli-
|
|
3
|
+
} from "./cli-2p56h4nq.js";
|
|
4
4
|
import {
|
|
5
5
|
detectOSAndEnhancePrompt
|
|
6
|
-
} from "./cli-
|
|
6
|
+
} from "./cli-sgrt7t9v.js";
|
|
7
7
|
import {
|
|
8
8
|
createLogger,
|
|
9
9
|
hasToolCall,
|
|
@@ -11,14 +11,14 @@ import {
|
|
|
11
11
|
init_lazyLogger,
|
|
12
12
|
init_structured,
|
|
13
13
|
scopedLogger
|
|
14
|
-
} from "./cli-
|
|
14
|
+
} from "./cli-a3pzv462.js";
|
|
15
15
|
|
|
16
16
|
// src/core/agents/specialized/authenticationAgent/agent.ts
|
|
17
17
|
init_dist();
|
|
18
18
|
init_structured();
|
|
19
19
|
init_lazyLogger();
|
|
20
|
-
import { existsSync, readFileSync } from "fs";
|
|
21
|
-
import { join } from "path";
|
|
20
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
21
|
+
import { join } from "node:path";
|
|
22
22
|
|
|
23
23
|
// src/core/agents/specialized/authenticationAgent/prompts.ts
|
|
24
24
|
var AUTH_SUBAGENT_SYSTEM_PROMPT = `You are an authentication specialist for autonomous penetration testing.
|