@pensar/apex 2.4.0 → 2.5.0-canary.22f2eb52
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-7qtpem5z.js +12 -0
- package/build/agent-9khcyh5t.js +14 -0
- package/build/agent-bsyhck0a.js +12 -0
- package/build/{agent-5ejt5vpz.js → agent-ywewzc2h.js} +42 -42
- package/build/{apps-17wvz1d7.js → apps-11akynyv.js} +74 -43
- package/build/{auth-z3h9859n.js → auth-dd6r9mk4.js} +57 -61
- package/build/blackboxAgent-hbra4k00.js +12 -0
- package/build/blackboxPentest-bn5evs2z.js +61 -0
- package/build/{cli-xshasbwe.js → cli-3v9zs5wm.js} +31 -52
- package/build/{cli-mavved45.js → cli-4z46kyrk.js} +86 -93
- package/build/cli-7vby0hk6.js +12136 -0
- package/build/{cli-gq40s5b3.js → cli-8kkaeb70.js} +33 -46
- package/build/cli-8w8k4dph.js +15 -0
- package/build/cli-ag6jtndp.js +32 -0
- package/build/{cli-2cbwdk78.js → cli-ak78mweh.js} +4 -4
- package/build/cli-bb02pjt0.js +1485 -0
- package/build/{cli-k71t434r.js → cli-ec2hwkv3.js} +34 -76
- package/build/{cli-vnynf0js.js → cli-f5rw841m.js} +11 -5
- package/build/{cli-k8kc47pq.js → cli-gamfs2yq.js} +118 -115
- package/build/{cli-32z0017y.js → cli-gq5sk2j3.js} +36 -60
- package/build/{cli-bc05qbss.js → cli-h6y3bt60.js} +13 -21
- package/build/{cli-tkc598ey.js → cli-j1916nvj.js} +10035 -7661
- package/build/{cli-5k33webc.js → cli-jw1xftqm.js} +355 -332
- package/build/{cli-tznv8pf1.js → cli-n4h7ygp5.js} +4 -4
- package/build/{cli-b1adytsy.js → cli-q45hcq3f.js} +67 -39
- package/build/{cli-repbyhkk.js → cli-qkb3v2nw.js} +26063 -25373
- package/build/{cli-j54qa6tm.js → cli-qktcyj48.js} +1 -1
- package/build/cli-retw3rw5.js +12 -0
- package/build/cli-tjm77pmx.js +12075 -0
- package/build/{cli-dm0fc0bm.js → cli-v1sarr4y.js} +5 -9
- package/build/{cli-9rhzhgx2.js → cli-v8ph8hy2.js} +5 -5
- package/build/{cli-vq52kp7j.js → cli-vkxx4jzv.js} +147 -128
- package/build/cli-wfb4gde1.js +22 -0
- package/build/{cli-ee3axgts.js → cli-xbhr5khz.js} +1 -1
- package/build/cli-z82n3qk1.js +6 -0
- package/build/cli.js +689 -132
- package/build/{config-f1mj4nhd.js → config-kv5v9ctn.js} +29 -29
- package/build/{doctor-ekneewa3.js → doctor-xs4s5km8.js} +4 -9
- package/build/{fastStrike-8zka43xs.js → fastStrike-b8t8f916.js} +26 -28
- package/build/{fixes-b89s5haw.js → fixes-kcckqx3s.js} +22 -27
- package/build/getMachineId-bsd-zr67nd9p.js +36 -0
- package/build/getMachineId-darwin-fd1d562d.js +36 -0
- package/build/getMachineId-linux-kjmg243j.js +29 -0
- package/build/getMachineId-unsupported-n4r58vke.js +19 -0
- package/build/getMachineId-win-yzgpfsrb.js +38 -0
- package/build/index-3mzr07h0.js +9 -0
- package/build/index-63zf8jxx.js +12 -0
- package/build/index-a1bg29j1.js +1559 -0
- package/build/{index-cbwn03kz.js → index-a2xycbjs.js} +12 -31
- package/build/{index-6d22pyxt.js → index-ae81pvwg.js} +2995 -2432
- package/build/index-cbajq2xy.js +17 -0
- package/build/index-cn4p95gh.js +100 -0
- package/build/index-kas88svr.js +36 -0
- package/build/index-mr20g8k4.js +22 -0
- package/build/{index-psqjpw5m.js → index-nweqptgs.js} +7 -7
- package/build/{index-sf16jm0m.js → index-rx5jn1nz.js} +137 -162
- package/build/{issues-xx5bs4md.js → issues-jm28k288.js} +81 -35
- package/build/{logs-qtxe51w2.js → logs-r02tbz89.js} +20 -25
- package/build/{multipart-parser-g2xxkezz.js → multipart-parser-vjjdbpd1.js} +10 -10
- package/build/{offesecAgent-b9e2xm6v.js → offesecAgent-mmfejh1j.js} +6 -13
- package/build/{parse-rtccymzn.js → parse-cqecqrc5.js} +0 -4
- package/build/pentest-13jcm4cy.js +21 -0
- package/build/{pentests-6ks3szc4.js → pentests-jyn4zs7n.js} +23 -28
- package/build/{targetedPentest-s1ptvq8e.js → targetedPentest-m3qkbpv6.js} +16 -20
- package/build/{targets-sxygyj87.js → targets-rqv57as0.js} +22 -27
- package/build/threatModel-scmz36xr.js +19 -0
- package/build/{token-3bbp59y6.js → token-n0tmq8n5.js} +2 -2
- package/build/{token-util-6xjme11b.js → token-util-bv80pj47.js} +1 -2
- package/build/{uninstall-tvsh81v8.js → uninstall-bme62bdg.js} +7 -4
- package/build/{upload-7wdyyqmr.js → upload-hwpgx1ha.js} +7 -13
- package/build/{utils-7fwdkqk6.js → utils-abtz5mmk.js} +7 -29
- package/package.json +8 -2
- package/build/agent-mvpgvgks.js +0 -19
- package/build/agent-nhs1w5w0.js +0 -29
- package/build/authentication-3s97cpk4.js +0 -19
- package/build/blackboxAgent-gw0a1ca4.js +0 -19
- package/build/blackboxPentest-44333zss.js +0 -37
- package/build/cli-0n4r54hq.js +0 -414
- package/build/cli-72cvcqhg.js +0 -22
- package/build/cli-qqt4gj1w.js +0 -53
- package/build/cli-swpbx60z.js +0 -24441
- package/build/index-4ad3sdwk.js +0 -39
- package/build/index-ghwf5z3v.js +0 -12
- package/build/index-hqjdg6fg.js +0 -205
- package/build/index-mtq7kmxz.js +0 -12856
- package/build/index-rbzhk712.js +0 -33
- package/build/index-y5w6n3tb.js +0 -19
- package/build/main-mmjp338j.js +0 -324
- package/build/pentest-xtc1sjdw.js +0 -29
- package/build/threatModel-xsm6fwk5.js +0 -27
- /package/build/{cli-c8131c4q.js → cli-0wsh8j2t.js} +0 -0
- /package/build/{cli-e08r86zk.js → cli-b3dvxjgk.js} +0 -0
- /package/build/{cli-fw5r7pfj.js → cli-q126f6ef.js} +0 -0
- /package/build/{cli-9fsre5pt.js → cli-qba2x69h.js} +0 -0
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
import {
|
|
2
2
|
OffensiveSecurityAgent
|
|
3
|
-
} from "./cli-
|
|
3
|
+
} from "./cli-qkb3v2nw.js";
|
|
4
|
+
import {
|
|
5
|
+
stepCountIs2,
|
|
6
|
+
hasToolCall,
|
|
7
|
+
init_dist
|
|
8
|
+
} from "./cli-j1916nvj.js";
|
|
4
9
|
import {
|
|
5
10
|
detectOSAndEnhancePrompt
|
|
6
|
-
} from "./cli-
|
|
11
|
+
} from "./cli-n4h7ygp5.js";
|
|
7
12
|
import {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
stepCountIs
|
|
11
|
-
} from "./cli-tkc598ey.js";
|
|
13
|
+
MOBILE_OTP_PROMPT_GUIDANCE
|
|
14
|
+
} from "./cli-retw3rw5.js";
|
|
12
15
|
|
|
13
16
|
// src/core/agents/specialized/attackSurface/blackboxAgent.ts
|
|
14
17
|
init_dist();
|
|
@@ -374,52 +377,25 @@ function loadAttackSurfaceResults(resultsPath) {
|
|
|
374
377
|
}
|
|
375
378
|
|
|
376
379
|
// src/core/agents/specialized/attackSurface/blackboxAgent.ts
|
|
377
|
-
class
|
|
380
|
+
class BlackboxAttackSurfaceAgent2 extends OffensiveSecurityAgent {
|
|
378
381
|
constructor(opts) {
|
|
379
382
|
const {
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
+
target: targetOpt,
|
|
384
|
+
cwd,
|
|
385
|
+
surfaceIntegrationEnabled: _surfaceIntegrationEnabled,
|
|
383
386
|
onStepFinish,
|
|
384
|
-
|
|
385
|
-
abortSignal,
|
|
386
|
-
attackSurfaceRegistry,
|
|
387
|
-
eventBus,
|
|
388
|
-
subagentId,
|
|
389
|
-
enableThinking,
|
|
390
|
-
thinkingEffort,
|
|
391
|
-
openAIReasoningEffort
|
|
387
|
+
...base
|
|
392
388
|
} = opts;
|
|
393
|
-
const target =
|
|
394
|
-
const
|
|
395
|
-
const assetsPath = join(session.rootPath, "assets");
|
|
389
|
+
const target = targetOpt ?? cwd;
|
|
390
|
+
const { session } = base;
|
|
396
391
|
const subagentFolder = join(session.rootPath, "subagents", "attack-surface-agent");
|
|
397
392
|
if (!existsSync(subagentFolder)) {
|
|
398
393
|
mkdirSync(subagentFolder, { recursive: true });
|
|
399
394
|
}
|
|
400
395
|
super({
|
|
401
|
-
|
|
402
|
-
prompt: buildPrompt(target, session),
|
|
403
|
-
model,
|
|
404
|
-
session,
|
|
396
|
+
...base,
|
|
405
397
|
target,
|
|
406
|
-
|
|
407
|
-
onStepFinish: (e) => {
|
|
408
|
-
onStepFinish?.(e);
|
|
409
|
-
const messages = e.response.messages;
|
|
410
|
-
if (messages !== undefined) {
|
|
411
|
-
writeFileSync(join(subagentFolder, "attack-surface-agent.log"), JSON.stringify(messages, null, 2));
|
|
412
|
-
}
|
|
413
|
-
},
|
|
414
|
-
onCacheMetrics,
|
|
415
|
-
abortSignal,
|
|
416
|
-
attackSurfaceRegistry,
|
|
417
|
-
eventBus,
|
|
418
|
-
subagentId,
|
|
419
|
-
enableThinking,
|
|
420
|
-
thinkingEffort,
|
|
421
|
-
openAIReasoningEffort,
|
|
422
|
-
messages: opts.messages,
|
|
398
|
+
system: detectOSAndEnhancePrompt(SYSTEM),
|
|
423
399
|
activeTools: [
|
|
424
400
|
"execute_command",
|
|
425
401
|
"document_app",
|
|
@@ -438,15 +414,17 @@ class BlackboxAttackSurfaceAgent extends OffensiveSecurityAgent {
|
|
|
438
414
|
"email_search_messages",
|
|
439
415
|
"email_get_message",
|
|
440
416
|
"send_email",
|
|
417
|
+
"sms_list_messages",
|
|
441
418
|
"web_search",
|
|
442
419
|
"get_page"
|
|
443
420
|
],
|
|
444
421
|
stopWhen: [
|
|
445
422
|
hasToolCall("create_attack_surface_report"),
|
|
446
|
-
|
|
423
|
+
stepCountIs2(1e4)
|
|
447
424
|
],
|
|
448
|
-
toolChoice: "auto",
|
|
449
425
|
resolveResult: () => {
|
|
426
|
+
const resultsPath = join(session.rootPath, "attack-surface-results.json");
|
|
427
|
+
const assetsPath = join(session.rootPath, "assets");
|
|
450
428
|
let results = null;
|
|
451
429
|
let targets = [];
|
|
452
430
|
if (existsSync(resultsPath)) {
|
|
@@ -456,11 +434,19 @@ class BlackboxAttackSurfaceAgent extends OffensiveSecurityAgent {
|
|
|
456
434
|
} catch {}
|
|
457
435
|
}
|
|
458
436
|
return { results, targets, resultsPath, assetsPath };
|
|
437
|
+
},
|
|
438
|
+
prompt: buildBlackboxPrompt(target, session),
|
|
439
|
+
onStepFinish: (e) => {
|
|
440
|
+
onStepFinish?.(e);
|
|
441
|
+
const messages = e.response.messages;
|
|
442
|
+
if (messages !== undefined) {
|
|
443
|
+
writeFileSync(join(subagentFolder, "attack-surface-agent.log"), JSON.stringify(messages, null, 2));
|
|
444
|
+
}
|
|
459
445
|
}
|
|
460
446
|
});
|
|
461
447
|
}
|
|
462
448
|
}
|
|
463
|
-
function
|
|
449
|
+
function buildBlackboxPrompt(target, session) {
|
|
464
450
|
const scopeConstraints = session.config?.scopeConstraints;
|
|
465
451
|
const authenticationInstructions = session.config?.authenticationInstructions;
|
|
466
452
|
const enumerateSubdomains = session.config?.enumerateSubdomains ?? false;
|
|
@@ -483,6 +469,7 @@ ${authenticationInstructions}
|
|
|
483
469
|
Your FIRST tool call must be: browser_navigate to ${loginTarget}
|
|
484
470
|
Then use browser tools to authenticate. Pass the credentialId to delegate_to_auth_subagent — secrets are resolved automatically.
|
|
485
471
|
For browser_fill on password/secret fields, use credentialId + credentialField instead of raw values.
|
|
472
|
+
${MOBILE_OTP_PROMPT_GUIDANCE}
|
|
486
473
|
|
|
487
474
|
Do NOT run curl, nmap, dig, or any other command before completing login.
|
|
488
475
|
Include authentication information with EVERY target that requires it in your final report.
|
|
@@ -527,4 +514,4 @@ ${operatorGuidanceBlock}
|
|
|
527
514
|
${startDirective}`;
|
|
528
515
|
}
|
|
529
516
|
|
|
530
|
-
export {
|
|
517
|
+
export { BlackboxAttackSurfaceAgent2 };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import {
|
|
2
|
+
__commonJS,
|
|
3
|
+
__require
|
|
4
|
+
} from "./cli-h6y3bt60.js";
|
|
5
|
+
|
|
6
|
+
// node_modules/@opentelemetry/resources/build/src/detectors/platform/node/machine-id/execAsync.js
|
|
7
|
+
var require_execAsync = __commonJS(function(exports) {
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.execAsync = undefined;
|
|
10
|
+
var child_process = __require("child_process");
|
|
11
|
+
var util = __require("util");
|
|
12
|
+
exports.execAsync = util.promisify(child_process.exec);
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
export { require_execAsync };
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
// src/core/session/usage.ts
|
|
2
|
+
var EMPTY_SESSION_TOKEN_USAGE = {
|
|
3
|
+
inputTokens: 0,
|
|
4
|
+
outputTokens: 0,
|
|
5
|
+
cacheReadTokens: 0,
|
|
6
|
+
cacheWriteTokens: 0
|
|
7
|
+
};
|
|
8
|
+
function accumulateSessionTokens(current, step) {
|
|
9
|
+
const inputTokens = step.inputTokens ?? 0;
|
|
10
|
+
const outputTokens = step.outputTokens ?? 0;
|
|
11
|
+
const cacheReadTokens = step.cacheReadTokens ?? 0;
|
|
12
|
+
const cacheWriteTokens = step.cacheWriteTokens ?? 0;
|
|
13
|
+
if (inputTokens === 0 && outputTokens === 0 && cacheReadTokens === 0 && cacheWriteTokens === 0) {
|
|
14
|
+
return current;
|
|
15
|
+
}
|
|
16
|
+
return {
|
|
17
|
+
inputTokens: current.inputTokens + inputTokens,
|
|
18
|
+
outputTokens: current.outputTokens + outputTokens,
|
|
19
|
+
cacheReadTokens: current.cacheReadTokens + cacheReadTokens,
|
|
20
|
+
cacheWriteTokens: current.cacheWriteTokens + cacheWriteTokens
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
function contextPercentage(context) {
|
|
24
|
+
if (!context)
|
|
25
|
+
return null;
|
|
26
|
+
if (context.contextLimit <= 0)
|
|
27
|
+
return null;
|
|
28
|
+
const raw = context.usedTokens / context.contextLimit * 100;
|
|
29
|
+
return Math.min(100, Math.max(0, raw));
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export { EMPTY_SESSION_TOKEN_USAGE, accumulateSessionTokens, contextPercentage };
|