@pensar/apex 2.4.0-canary.fbb66e97 → 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.
Files changed (68) hide show
  1. package/build/agent-20hb6mg7.js +20 -0
  2. package/build/{agent-4ts7armt.js → agent-71sn1cjn.js} +9 -8
  3. package/build/{agent-shhafg9p.js → agent-xnrz4bhp.js} +11 -10
  4. package/build/{apps-yfm59wch.js → apps-ghf7kp1s.js} +36 -31
  5. package/build/{auth-1dct9tqf.js → auth-p1nrv7re.js} +25 -20
  6. package/build/authentication-m1vj2f0s.js +20 -0
  7. package/build/blackboxAgent-hjfzgk93.js +20 -0
  8. package/build/blackboxPentest-9snp9gvp.js +70 -0
  9. package/build/{cli-vphjaj1e.js → cli-08fcc6d8.js} +1 -1
  10. package/build/{cli-wdnf5jvs.js → cli-14j00zfh.js} +5 -3
  11. package/build/{cli-s5ky796g.js → cli-3bmqdcfh.js} +9 -3
  12. package/build/{cli-n2dv2jxn.js → cli-3ew5fs3f.js} +46 -25
  13. package/build/{cli-s7bkeg8d.js → cli-4mgj070h.js} +30 -4
  14. package/build/{cli-9w6kmefp.js → cli-4vwnsyep.js} +492 -166
  15. package/build/cli-53rm0rrz.js +15 -0
  16. package/build/cli-68260ckj.js +12136 -0
  17. package/build/cli-7q3ae3ft.js +6 -0
  18. package/build/{cli-n8c6cdwe.js → cli-7sqb16dd.js} +45 -43
  19. package/build/{cli-x96bafe8.js → cli-8pk8znhw.js} +1 -1
  20. package/build/cli-9pbk8m32.js +32 -0
  21. package/build/{cli-mkgfykpq.js → cli-9ya3yktn.js} +1 -1
  22. package/build/{cli-sms0a70d.js → cli-a8n64cef.js} +23 -5
  23. package/build/{cli-ba9a23ap.js → cli-a9vq54sx.js} +5 -3
  24. package/build/{cli-swpbx60z.js → cli-avmhkjtv.js} +1 -1481
  25. package/build/{cli-7n5666p8.js → cli-f47dgye3.js} +380 -280
  26. package/build/{cli-q2pshbky.js → cli-fw7sp0fp.js} +3 -3
  27. package/build/{cli-a4vxda8s.js → cli-g3cb8pj5.js} +2 -2
  28. package/build/{cli-3ezbs9mw.js → cli-gbch9xmy.js} +1 -1
  29. package/build/cli-knd276ed.js +1485 -0
  30. package/build/{cli-rgk5ccs0.js → cli-t7rhyqx5.js} +1 -1
  31. package/build/{cli-tdm8vj3v.js → cli-yge44bmk.js} +28 -5
  32. package/build/cli.js +638 -94
  33. package/build/{config-16hfhn61.js → config-cqw98n5y.js} +18 -15
  34. package/build/{doctor-6mtre40n.js → doctor-vzh1wmfa.js} +8 -7
  35. package/build/{fastStrike-m3yx1gse.js → fastStrike-f441e9nr.js} +13 -10
  36. package/build/{fixes-0ve441kj.js → fixes-xxz52cf2.js} +25 -20
  37. package/build/getMachineId-bsd-xj3bn2fv.js +36 -0
  38. package/build/getMachineId-darwin-07jzjcx6.js +36 -0
  39. package/build/getMachineId-linux-ahngynxd.js +29 -0
  40. package/build/getMachineId-unsupported-vy43b44z.js +19 -0
  41. package/build/getMachineId-win-8x66cynz.js +38 -0
  42. package/build/{index-r5aq2z34.js → index-23jj0234.js} +3 -3
  43. package/build/{index-8j621csk.js → index-3gavwzay.js} +587 -330
  44. package/build/{index-a1hej78y.js → index-4v5jc2td.js} +4 -4
  45. package/build/{index-mtq7kmxz.js → index-5wh7gq37.js} +4 -2
  46. package/build/{index-xkjh989v.js → index-e7kq5rrd.js} +9 -7
  47. package/build/{index-5qnfzz0z.js → index-fxx38nc9.js} +11 -10
  48. package/build/{index-hp8bcbnv.js → index-j3dc7dks.js} +17 -9
  49. package/build/{index-7znkt8zb.js → index-yc1dnj3n.js} +2 -2
  50. package/build/{issues-mprgd1fq.js → issues-zdag9ayw.js} +82 -26
  51. package/build/{logs-d5d3g58q.js → logs-f492cjgt.js} +25 -20
  52. package/build/{offesecAgent-fmx9mbrp.js → offesecAgent-pr0cmrqb.js} +10 -9
  53. package/build/pentest-1g3fzah5.js +30 -0
  54. package/build/{pentests-4e8kv29y.js → pentests-vstpzh9j.js} +26 -21
  55. package/build/{targetedPentest-ne2say29.js → targetedPentest-wj3ae355.js} +11 -10
  56. package/build/{targets-p166btjp.js → targets-806zxf1n.js} +27 -22
  57. package/build/threatModel-dc4jbhkf.js +29 -0
  58. package/build/{uninstall-73440c19.js → uninstall-58ak2e2v.js} +6 -3
  59. package/build/{upload-7er3hpsb.js → upload-kkktzh83.js} +8 -7
  60. package/build/{utils-1q804s48.js → utils-1sawtwbj.js} +7 -6
  61. package/package.json +7 -1
  62. package/build/agent-yfqvpeqn.js +0 -19
  63. package/build/authentication-tc4snnr2.js +0 -19
  64. package/build/blackboxAgent-6yqmxsb6.js +0 -19
  65. package/build/blackboxPentest-d1kned1b.js +0 -37
  66. package/build/main-mmjp338j.js +0 -324
  67. package/build/pentest-43v46yfk.js +0 -29
  68. package/build/threatModel-d2npk3zc.js +0 -27
@@ -0,0 +1,20 @@
1
+ import {
2
+ CodeAgent
3
+ } from "./cli-g3cb8pj5.js";
4
+ import"./cli-9fsre5pt.js";
5
+ import"./cli-a9vq54sx.js";
6
+ import"./cli-4vwnsyep.js";
7
+ import"./cli-gbch9xmy.js";
8
+ import"./cli-c8131c4q.js";
9
+ import"./cli-f47dgye3.js";
10
+ import"./cli-08fcc6d8.js";
11
+ import"./cli-avmhkjtv.js";
12
+ import"./cli-j54qa6tm.js";
13
+ import"./cli-9ya3yktn.js";
14
+ import"./cli-8pk8znhw.js";
15
+ import"./cli-3bmqdcfh.js";
16
+ import"./cli-knd276ed.js";
17
+ import"./cli-bc05qbss.js";
18
+ export {
19
+ CodeAgent
20
+ };
@@ -1,23 +1,24 @@
1
1
  import {
2
2
  OffensiveSecurityAgent
3
- } from "./cli-9w6kmefp.js";
3
+ } from "./cli-4vwnsyep.js";
4
4
  import {
5
5
  detectOSAndEnhancePrompt
6
- } from "./cli-3ezbs9mw.js";
6
+ } from "./cli-gbch9xmy.js";
7
7
  import"./cli-c8131c4q.js";
8
8
  import {
9
9
  init_dist,
10
10
  stepCountIs
11
- } from "./cli-7n5666p8.js";
12
- import"./cli-vphjaj1e.js";
11
+ } from "./cli-f47dgye3.js";
12
+ import"./cli-08fcc6d8.js";
13
13
  import {
14
14
  exports_external,
15
15
  init_zod
16
- } from "./cli-swpbx60z.js";
16
+ } from "./cli-avmhkjtv.js";
17
17
  import"./cli-j54qa6tm.js";
18
- import"./cli-mkgfykpq.js";
19
- import"./cli-x96bafe8.js";
20
- import"./cli-s5ky796g.js";
18
+ import"./cli-9ya3yktn.js";
19
+ import"./cli-8pk8znhw.js";
20
+ import"./cli-3bmqdcfh.js";
21
+ import"./cli-knd276ed.js";
21
22
  import"./cli-bc05qbss.js";
22
23
 
23
24
  // src/core/agents/specialized/findingJudge/agent.ts
@@ -5,19 +5,20 @@ import {
5
5
  buildPentestPrompt,
6
6
  buildPentestSystemPrompt,
7
7
  resolvePentestAgentRole
8
- } from "./cli-n2dv2jxn.js";
8
+ } from "./cli-3ew5fs3f.js";
9
9
  import"./cli-9fsre5pt.js";
10
- import"./cli-ba9a23ap.js";
11
- import"./cli-9w6kmefp.js";
12
- import"./cli-3ezbs9mw.js";
10
+ import"./cli-a9vq54sx.js";
11
+ import"./cli-4vwnsyep.js";
12
+ import"./cli-gbch9xmy.js";
13
13
  import"./cli-c8131c4q.js";
14
- import"./cli-7n5666p8.js";
15
- import"./cli-vphjaj1e.js";
16
- import"./cli-swpbx60z.js";
14
+ import"./cli-f47dgye3.js";
15
+ import"./cli-08fcc6d8.js";
16
+ import"./cli-avmhkjtv.js";
17
17
  import"./cli-j54qa6tm.js";
18
- import"./cli-mkgfykpq.js";
19
- import"./cli-x96bafe8.js";
20
- import"./cli-s5ky796g.js";
18
+ import"./cli-9ya3yktn.js";
19
+ import"./cli-8pk8znhw.js";
20
+ import"./cli-3bmqdcfh.js";
21
+ import"./cli-knd276ed.js";
21
22
  import"./cli-bc05qbss.js";
22
23
  export {
23
24
  PentestResponseSchema,
@@ -1,14 +1,18 @@
1
1
  #!/usr/bin/env bun
2
- import"./cli-sms0a70d.js";
3
- import"./cli-n8c6cdwe.js";
4
- import"./cli-wdnf5jvs.js";
5
- import"./cli-tdm8vj3v.js";
6
- import"./cli-n2dv2jxn.js";
7
- import"./cli-s7bkeg8d.js";
8
- import"./cli-a4vxda8s.js";
9
- import"./cli-q2pshbky.js";
2
+ import {
3
+ markCommandFailed
4
+ } from "./cli-7q3ae3ft.js";
5
+ import"./cli-a8n64cef.js";
6
+ import"./cli-9pbk8m32.js";
7
+ import"./cli-7sqb16dd.js";
8
+ import"./cli-fw7sp0fp.js";
9
+ import"./cli-14j00zfh.js";
10
+ import"./cli-3ew5fs3f.js";
11
+ import"./cli-yge44bmk.js";
12
+ import"./cli-4mgj070h.js";
13
+ import"./cli-g3cb8pj5.js";
10
14
  import"./cli-9fsre5pt.js";
11
- import"./cli-ba9a23ap.js";
15
+ import"./cli-a9vq54sx.js";
12
16
  import {
13
17
  ENDPOINT_TRANSPORTS,
14
18
  createApp,
@@ -25,17 +29,18 @@ import {
25
29
  searchEndpoints,
26
30
  updateApp,
27
31
  updateEndpoint
28
- } from "./cli-9w6kmefp.js";
29
- import"./cli-3ezbs9mw.js";
32
+ } from "./cli-4vwnsyep.js";
33
+ import"./cli-gbch9xmy.js";
30
34
  import"./cli-fw5r7pfj.js";
31
35
  import"./cli-c8131c4q.js";
32
- import"./cli-7n5666p8.js";
33
- import"./cli-vphjaj1e.js";
34
- import"./cli-swpbx60z.js";
36
+ import"./cli-f47dgye3.js";
37
+ import"./cli-08fcc6d8.js";
38
+ import"./cli-avmhkjtv.js";
35
39
  import"./cli-j54qa6tm.js";
36
- import"./cli-mkgfykpq.js";
37
- import"./cli-x96bafe8.js";
38
- import"./cli-s5ky796g.js";
40
+ import"./cli-9ya3yktn.js";
41
+ import"./cli-8pk8znhw.js";
42
+ import"./cli-3bmqdcfh.js";
43
+ import"./cli-knd276ed.js";
39
44
  import"./cli-bc05qbss.js";
40
45
 
41
46
  // src/cli/apps.ts
@@ -329,7 +334,7 @@ async function main() {
329
334
  if (!appId) {
330
335
  console.error("Error: app ID is required");
331
336
  console.error("Usage: pensar apps get <appId>");
332
- process.exit(1);
337
+ return markCommandFailed();
333
338
  }
334
339
  const app = await getApp(appId);
335
340
  console.log(JSON.stringify(app, null, 2));
@@ -342,7 +347,7 @@ async function main() {
342
347
  if (!appId) {
343
348
  console.error("Error: app ID is required");
344
349
  console.error("Usage: pensar apps update <appId> [options]");
345
- process.exit(1);
350
+ return markCommandFailed();
346
351
  }
347
352
  const opts = parseAppUpdateOptions(args);
348
353
  const result = await updateApp(appId, opts);
@@ -352,7 +357,7 @@ async function main() {
352
357
  if (!appId) {
353
358
  console.error("Error: app ID is required");
354
359
  console.error("Usage: pensar apps delete <appId>");
355
- process.exit(1);
360
+ return markCommandFailed();
356
361
  }
357
362
  const result = await deleteApp(appId);
358
363
  console.log(JSON.stringify(result, null, 2));
@@ -364,7 +369,7 @@ async function main() {
364
369
  if (!url) {
365
370
  console.error("Error: domain is required");
366
371
  console.error("Usage: pensar apps domain-create <domain>");
367
- process.exit(1);
372
+ return markCommandFailed();
368
373
  }
369
374
  const result = await createDomain({ url });
370
375
  console.log(JSON.stringify(result, null, 2));
@@ -373,7 +378,7 @@ async function main() {
373
378
  if (!appId) {
374
379
  console.error("Error: app ID is required");
375
380
  console.error("Usage: pensar apps endpoints <appId> [filters]");
376
- process.exit(1);
381
+ return markCommandFailed();
377
382
  }
378
383
  const type = parseEndpointType(getFlag("--type", args));
379
384
  const minRiskScore = parseNumber("--min-risk", getFlag("--min-risk", args));
@@ -392,7 +397,7 @@ async function main() {
392
397
  if (!endpointId) {
393
398
  console.error("Error: endpoint ID is required");
394
399
  console.error("Usage: pensar apps endpoint <endpointId>");
395
- process.exit(1);
400
+ return markCommandFailed();
396
401
  }
397
402
  const result = await getEndpoint(endpointId);
398
403
  console.log(JSON.stringify(result, null, 2));
@@ -401,7 +406,7 @@ async function main() {
401
406
  if (!appId) {
402
407
  console.error("Error: app ID is required");
403
408
  console.error("Usage: pensar apps endpoint-create <appId> --endpoint E --description D");
404
- process.exit(1);
409
+ return markCommandFailed();
405
410
  }
406
411
  const opts = parseEndpointCreateOptions(args);
407
412
  const result = await createEndpoint(appId, opts);
@@ -411,7 +416,7 @@ async function main() {
411
416
  if (!endpointId) {
412
417
  console.error("Error: endpoint ID is required");
413
418
  console.error("Usage: pensar apps endpoint-update <endpointId> [options]");
414
- process.exit(1);
419
+ return markCommandFailed();
415
420
  }
416
421
  const opts = parseEndpointUpdateOptions(args);
417
422
  const result = await updateEndpoint(endpointId, opts);
@@ -421,7 +426,7 @@ async function main() {
421
426
  if (!endpointId) {
422
427
  console.error("Error: endpoint ID is required");
423
428
  console.error("Usage: pensar apps endpoint-delete <endpointId>");
424
- process.exit(1);
429
+ return markCommandFailed();
425
430
  }
426
431
  const result = await deleteEndpoint(endpointId);
427
432
  console.log(JSON.stringify(result, null, 2));
@@ -430,7 +435,7 @@ async function main() {
430
435
  if (!query || query.startsWith("--")) {
431
436
  console.error("Error: search query is required");
432
437
  console.error("Usage: pensar apps search <query> [options]");
433
- process.exit(1);
438
+ return markCommandFailed();
434
439
  }
435
440
  const type = parseAppType(getFlag("--type", args));
436
441
  const limit = parseInteger("--limit", getFlag("--limit", args));
@@ -446,7 +451,7 @@ async function main() {
446
451
  if (!query || query.startsWith("--")) {
447
452
  console.error("Error: search query is required");
448
453
  console.error("Usage: pensar apps search-endpoints <query> [options]");
449
- process.exit(1);
454
+ return markCommandFailed();
450
455
  }
451
456
  const applicationId = getFlag("--app", args);
452
457
  const type = parseEndpointType(getFlag("--type", args));
@@ -474,12 +479,12 @@ async function main() {
474
479
  } else {
475
480
  console.error(`Error: Unknown subcommand "${sub}"`);
476
481
  showHelp();
477
- process.exit(1);
482
+ return markCommandFailed();
478
483
  }
479
484
  } catch (err) {
480
485
  console.error(`
481
486
  Error: ${err instanceof Error ? err.message : String(err)}`);
482
- process.exit(1);
487
+ return markCommandFailed();
483
488
  }
484
489
  }
485
- main();
490
+ await main();
@@ -1,19 +1,23 @@
1
1
  #!/usr/bin/env bun
2
- import"./cli-sms0a70d.js";
3
- import"./cli-n8c6cdwe.js";
4
- import"./cli-wdnf5jvs.js";
5
- import"./cli-tdm8vj3v.js";
6
- import"./cli-n2dv2jxn.js";
7
- import"./cli-s7bkeg8d.js";
8
- import"./cli-a4vxda8s.js";
9
- import"./cli-q2pshbky.js";
2
+ import {
3
+ markCommandFailed
4
+ } from "./cli-7q3ae3ft.js";
5
+ import"./cli-a8n64cef.js";
6
+ import"./cli-9pbk8m32.js";
7
+ import"./cli-7sqb16dd.js";
8
+ import"./cli-fw7sp0fp.js";
9
+ import"./cli-14j00zfh.js";
10
+ import"./cli-3ew5fs3f.js";
11
+ import"./cli-yge44bmk.js";
12
+ import"./cli-4mgj070h.js";
13
+ import"./cli-g3cb8pj5.js";
10
14
  import"./cli-9fsre5pt.js";
11
- import"./cli-ba9a23ap.js";
12
- import"./cli-9w6kmefp.js";
13
- import"./cli-3ezbs9mw.js";
15
+ import"./cli-a9vq54sx.js";
16
+ import"./cli-4vwnsyep.js";
17
+ import"./cli-gbch9xmy.js";
14
18
  import"./cli-fw5r7pfj.js";
15
19
  import"./cli-c8131c4q.js";
16
- import"./cli-7n5666p8.js";
20
+ import"./cli-f47dgye3.js";
17
21
  import {
18
22
  createWorkspaceSelection,
19
23
  disconnect,
@@ -29,15 +33,16 @@ import {
29
33
  pollWorkspaceSelection,
30
34
  selectWorkspace,
31
35
  startDeviceFlow
32
- } from "./cli-vphjaj1e.js";
33
- import"./cli-swpbx60z.js";
36
+ } from "./cli-08fcc6d8.js";
37
+ import"./cli-avmhkjtv.js";
34
38
  import"./cli-j54qa6tm.js";
35
39
  import {
36
40
  config,
37
41
  init_config
38
- } from "./cli-mkgfykpq.js";
39
- import"./cli-x96bafe8.js";
40
- import"./cli-s5ky796g.js";
42
+ } from "./cli-9ya3yktn.js";
43
+ import"./cli-8pk8znhw.js";
44
+ import"./cli-3bmqdcfh.js";
45
+ import"./cli-knd276ed.js";
41
46
  import {
42
47
  __require
43
48
  } from "./cli-bc05qbss.js";
@@ -300,12 +305,12 @@ async function main() {
300
305
  } else {
301
306
  console.error(`Unknown auth subcommand: ${subcommand}`);
302
307
  console.error("Run 'pensar login --help' for usage information");
303
- process.exit(1);
308
+ return markCommandFailed();
304
309
  }
305
310
  } catch (err) {
306
311
  console.error(`
307
312
  Error: ${err instanceof Error ? err.message : String(err)}`);
308
- process.exit(1);
313
+ return markCommandFailed();
309
314
  }
310
315
  }
311
- main();
316
+ await main();
@@ -0,0 +1,20 @@
1
+ import {
2
+ runAuthenticationAgent
3
+ } from "./cli-4mgj070h.js";
4
+ import"./cli-9fsre5pt.js";
5
+ import"./cli-a9vq54sx.js";
6
+ import"./cli-4vwnsyep.js";
7
+ import"./cli-gbch9xmy.js";
8
+ import"./cli-c8131c4q.js";
9
+ import"./cli-f47dgye3.js";
10
+ import"./cli-08fcc6d8.js";
11
+ import"./cli-avmhkjtv.js";
12
+ import"./cli-j54qa6tm.js";
13
+ import"./cli-9ya3yktn.js";
14
+ import"./cli-8pk8znhw.js";
15
+ import"./cli-3bmqdcfh.js";
16
+ import"./cli-knd276ed.js";
17
+ import"./cli-bc05qbss.js";
18
+ export {
19
+ runAuthenticationAgent
20
+ };
@@ -0,0 +1,20 @@
1
+ import {
2
+ BlackboxAttackSurfaceAgent
3
+ } from "./cli-14j00zfh.js";
4
+ import"./cli-9fsre5pt.js";
5
+ import"./cli-a9vq54sx.js";
6
+ import"./cli-4vwnsyep.js";
7
+ import"./cli-gbch9xmy.js";
8
+ import"./cli-c8131c4q.js";
9
+ import"./cli-f47dgye3.js";
10
+ import"./cli-08fcc6d8.js";
11
+ import"./cli-avmhkjtv.js";
12
+ import"./cli-j54qa6tm.js";
13
+ import"./cli-9ya3yktn.js";
14
+ import"./cli-8pk8znhw.js";
15
+ import"./cli-3bmqdcfh.js";
16
+ import"./cli-knd276ed.js";
17
+ import"./cli-bc05qbss.js";
18
+ export {
19
+ BlackboxAttackSurfaceAgent
20
+ };
@@ -0,0 +1,70 @@
1
+ import {
2
+ EMPTY_SESSION_TOKEN_USAGE,
3
+ accumulateSessionTokens
4
+ } from "./cli-9pbk8m32.js";
5
+ import {
6
+ readExecutionMetrics,
7
+ runPentestWorkflow,
8
+ writeExecutionMetrics
9
+ } from "./cli-7sqb16dd.js";
10
+ import"./cli-fw7sp0fp.js";
11
+ import"./cli-14j00zfh.js";
12
+ import"./cli-3ew5fs3f.js";
13
+ import"./cli-yge44bmk.js";
14
+ import"./cli-g3cb8pj5.js";
15
+ import"./cli-9fsre5pt.js";
16
+ import"./cli-a9vq54sx.js";
17
+ import"./cli-4vwnsyep.js";
18
+ import"./cli-gbch9xmy.js";
19
+ import"./cli-fw5r7pfj.js";
20
+ import"./cli-c8131c4q.js";
21
+ import"./cli-f47dgye3.js";
22
+ import"./cli-08fcc6d8.js";
23
+ import"./cli-avmhkjtv.js";
24
+ import"./cli-j54qa6tm.js";
25
+ import"./cli-9ya3yktn.js";
26
+ import"./cli-8pk8znhw.js";
27
+ import"./cli-3bmqdcfh.js";
28
+ import"./cli-knd276ed.js";
29
+ import"./cli-bc05qbss.js";
30
+
31
+ // src/core/api/blackboxPentest.ts
32
+ async function runPentestAgent(input) {
33
+ const persisted = readExecutionMetrics(input.session.rootPath)?.tokenUsage;
34
+ let tokenUsage = persisted ?? EMPTY_SESSION_TOKEN_USAGE;
35
+ const onStepFinish = async (event) => {
36
+ tokenUsage = accumulateSessionTokens(tokenUsage, event.usage ?? {});
37
+ await input.onStepFinish?.(event);
38
+ };
39
+ const onCacheMetrics = (metrics) => {
40
+ tokenUsage = accumulateSessionTokens(tokenUsage, {
41
+ cacheReadTokens: metrics.cacheReadInputTokens,
42
+ cacheWriteTokens: metrics.cacheCreationInputTokens
43
+ });
44
+ input.onCacheMetrics?.(metrics);
45
+ };
46
+ let result;
47
+ try {
48
+ result = await runPentestWorkflow({
49
+ ...input,
50
+ onStepFinish,
51
+ onCacheMetrics
52
+ });
53
+ } finally {
54
+ writeExecutionMetrics({
55
+ sessionRootPath: input.session.rootPath,
56
+ tokenUsage
57
+ });
58
+ }
59
+ const { findings, findingsPath, pocsPath, reportPath } = result;
60
+ console.log(`
61
+ Found ${findings.length} vulnerabilities`);
62
+ console.log(`Findings: ${findingsPath}`);
63
+ console.log(`POCs: ${pocsPath}`);
64
+ if (reportPath)
65
+ console.log(`Report: ${reportPath}`);
66
+ return { findings, findingsPath, pocsPath, reportPath };
67
+ }
68
+ export {
69
+ runPentestAgent
70
+ };
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  config,
3
3
  init_config
4
- } from "./cli-mkgfykpq.js";
4
+ } from "./cli-9ya3yktn.js";
5
5
  import {
6
6
  __esm
7
7
  } from "./cli-bc05qbss.js";
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  OffensiveSecurityAgent
3
- } from "./cli-9w6kmefp.js";
3
+ } from "./cli-4vwnsyep.js";
4
4
  import {
5
5
  detectOSAndEnhancePrompt
6
- } from "./cli-3ezbs9mw.js";
6
+ } from "./cli-gbch9xmy.js";
7
7
  import {
8
8
  hasToolCall,
9
9
  init_dist,
10
10
  stepCountIs
11
- } from "./cli-7n5666p8.js";
11
+ } from "./cli-f47dgye3.js";
12
12
 
13
13
  // src/core/agents/specialized/attackSurface/blackboxAgent.ts
14
14
  init_dist();
@@ -438,6 +438,7 @@ class BlackboxAttackSurfaceAgent extends OffensiveSecurityAgent {
438
438
  "email_search_messages",
439
439
  "email_get_message",
440
440
  "send_email",
441
+ "sms_list_messages",
441
442
  "web_search",
442
443
  "get_page"
443
444
  ],
@@ -483,6 +484,7 @@ ${authenticationInstructions}
483
484
  Your FIRST tool call must be: browser_navigate to ${loginTarget}
484
485
  Then use browser tools to authenticate. Pass the credentialId to delegate_to_auth_subagent — secrets are resolved automatically.
485
486
  For browser_fill on password/secret fields, use credentialId + credentialField instead of raw values.
487
+ When a credential has a phoneNumber additional field (Mobile OTP / sms-passwordless), phone is the login identifier — not MFA-after-password. Fill credentialField="phoneNumber", click send-code, sleep with execute_command, then sms_list_messages with sinceMs from that click (claim=true once a message is present). If the list stays empty, stop and report — do not hang. Do not report phone_verification as a barrier. TOTP-via-env for authenticator MFA is unchanged.
486
488
 
487
489
  Do NOT run curl, nmap, dig, or any other command before completing login.
488
490
  Include authentication information with EVERY target that requires it in your final report.
@@ -3,7 +3,7 @@ import {
3
3
  } from "./cli-bc05qbss.js";
4
4
 
5
5
  // package.json
6
- var package_default;
6
+ var version = "2.5.0-canary.2bbb0f6f", package_default;
7
7
  var init_package = __esm(() => {
8
8
  package_default = {
9
9
  author: "Pensar",
@@ -23,6 +23,10 @@ var init_package = __esm(() => {
23
23
  "@modelcontextprotocol/sdk": "^1.29.0",
24
24
  "@openrouter/ai-sdk-provider": "^2.9.1",
25
25
  "@opentelemetry/api": "^1.9.1",
26
+ "@opentelemetry/exporter-trace-otlp-http": "^0.221.0",
27
+ "@opentelemetry/otlp-exporter-base": "^0.221.0",
28
+ "@opentelemetry/otlp-transformer": "^0.221.0",
29
+ "@opentelemetry/resources": "^2.10.0",
26
30
  "@opentui/core": "^0.1.107",
27
31
  "@opentui/react": "^0.1.107",
28
32
  "@pensar/surface": "0.3.0",
@@ -46,6 +50,8 @@ var init_package = __esm(() => {
46
50
  description: "AI-powered penetration testing CLI tool with terminal UI",
47
51
  devDependencies: {
48
52
  "@biomejs/biome": "2.4.14",
53
+ "@opentelemetry/context-async-hooks": "^2.10.0",
54
+ "@opentelemetry/sdk-trace-base": "^2.10.0",
49
55
  "@types/bun": "^1.3.14",
50
56
  "@types/mailparser": "^3.4.6",
51
57
  "@types/mime-types": "^3.0.1",
@@ -120,7 +126,7 @@ var init_package = __esm(() => {
120
126
  tsc: "tsc --noEmit"
121
127
  },
122
128
  type: "module",
123
- version: "2.4.0-canary.fbb66e97"
129
+ version
124
130
  };
125
131
  });
126
132
 
@@ -195,4 +201,4 @@ var init_installation = __esm(() => {
195
201
  init_package();
196
202
  });
197
203
 
198
- export { init_package, package_default, getCurrentVersion, detectInstallMethod, checkForUpdate, init_installation };
204
+ export { init_package, version, package_default, getCurrentVersion, detectInstallMethod, checkForUpdate, init_installation };