@pensar/apex 2.3.0 → 2.4.0

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 (70) hide show
  1. package/build/{agent-9xna7jhw.js → agent-5ejt5vpz.js} +11 -11
  2. package/build/agent-mvpgvgks.js +19 -0
  3. package/build/agent-nhs1w5w0.js +29 -0
  4. package/build/{apps-43pqbz7r.js → apps-17wvz1d7.js} +20 -20
  5. package/build/{auth-c1z670rx.js → auth-z3h9859n.js} +38 -20
  6. package/build/authentication-3s97cpk4.js +19 -0
  7. package/build/blackboxAgent-gw0a1ca4.js +19 -0
  8. package/build/{blackboxPentest-tgc2t3y6.js → blackboxPentest-44333zss.js} +17 -17
  9. package/build/{cli-vckbhnyk.js → cli-0n4r54hq.js} +2 -2
  10. package/build/{cli-bnkgdywr.js → cli-2cbwdk78.js} +1 -1
  11. package/build/{cli-j0n189ee.js → cli-32z0017y.js} +2 -2
  12. package/build/{cli-zm8tfpv7.js → cli-5k33webc.js} +25 -9
  13. package/build/{cli-f7hanqbw.js → cli-72cvcqhg.js} +2 -2
  14. package/build/{cli-eveg9djy.js → cli-9rhzhgx2.js} +3 -2
  15. package/build/{cli-72b18z0n.js → cli-b1adytsy.js} +3 -3
  16. package/build/{cli-8rxa073f.js → cli-bc05qbss.js} +8 -6
  17. package/build/{cli-q24twygk.js → cli-dm0fc0bm.js} +1 -1
  18. package/build/{cli-yz80qkzn.js → cli-ee3axgts.js} +7 -1
  19. package/build/{cli-bv2807tj.js → cli-gq40s5b3.js} +3 -3
  20. package/build/{cli-gpnb45ck.js → cli-j54qa6tm.js} +7 -7
  21. package/build/{cli-wszshs5e.js → cli-k71t434r.js} +4 -4
  22. package/build/{cli-baqhqbe5.js → cli-k8kc47pq.js} +3 -3
  23. package/build/{cli-50906d27.js → cli-mavved45.js} +91 -29
  24. package/build/{cli-jyp2c6th.js → cli-qqt4gj1w.js} +2 -2
  25. package/build/{cli-n2m2yy5b.js → cli-repbyhkk.js} +1250 -614
  26. package/build/{cli-3k1x5rn3.js → cli-swpbx60z.js} +1045 -1045
  27. package/build/{cli-zx8gk8xv.js → cli-tkc598ey.js} +296 -54
  28. package/build/{cli-7tw4xfnw.js → cli-tznv8pf1.js} +1 -1
  29. package/build/{cli-barsn8br.js → cli-vnynf0js.js} +2 -2
  30. package/build/{cli-f71s6kcw.js → cli-vq52kp7j.js} +81 -215
  31. package/build/{cli-zk1ch6qf.js → cli-xshasbwe.js} +34 -9
  32. package/build/cli.js +52 -46
  33. package/build/{config-jzqjz606.js → config-f1mj4nhd.js} +5 -5
  34. package/build/{doctor-q3qws68e.js → doctor-ekneewa3.js} +10 -9
  35. package/build/{fastStrike-ebz1ph9a.js → fastStrike-8zka43xs.js} +36 -16
  36. package/build/{fixes-86yebsj0.js → fixes-b89s5haw.js} +19 -19
  37. package/build/{index-8db1d2q3.js → index-4ad3sdwk.js} +18 -18
  38. package/build/{index-97vx1a24.js → index-6d22pyxt.js} +1148 -1086
  39. package/build/{index-h2hj2hj9.js → index-cbwn03kz.js} +16 -16
  40. package/build/index-ghwf5z3v.js +12 -0
  41. package/build/{index-468j74f3.js → index-hqjdg6fg.js} +113 -97
  42. package/build/{index-gq9h8j5j.js → index-mtq7kmxz.js} +132 -132
  43. package/build/{index-tke6896d.js → index-psqjpw5m.js} +10 -10
  44. package/build/{index-mr2cseg4.js → index-rbzhk712.js} +19 -19
  45. package/build/{index-e8c8zcrf.js → index-sf16jm0m.js} +31 -26
  46. package/build/{index-32hn8rrw.js → index-y5w6n3tb.js} +3 -3
  47. package/build/{issues-kh4wg8c5.js → issues-xx5bs4md.js} +19 -19
  48. package/build/{logs-bj28xmbf.js → logs-qtxe51w2.js} +19 -19
  49. package/build/{main-3d7dfdvs.js → main-mmjp338j.js} +9 -9
  50. package/build/{multipart-parser-6zd16497.js → multipart-parser-g2xxkezz.js} +2 -2
  51. package/build/{offesecAgent-8ky7gccp.js → offesecAgent-b9e2xm6v.js} +11 -11
  52. package/build/{parse-7djk9jyf.js → parse-rtccymzn.js} +3 -3
  53. package/build/pentest-xtc1sjdw.js +29 -0
  54. package/build/{pentests-62d6zw6p.js → pentests-6ks3szc4.js} +19 -19
  55. package/build/{targetedPentest-me4jnr3z.js → targetedPentest-s1ptvq8e.js} +14 -14
  56. package/build/{targets-e5k1mrky.js → targets-sxygyj87.js} +19 -19
  57. package/build/threatModel-xsm6fwk5.js +27 -0
  58. package/build/{token-rdcbn380.js → token-3bbp59y6.js} +3 -3
  59. package/build/{token-util-sxb85ahn.js → token-util-6xjme11b.js} +2 -2
  60. package/build/{uninstall-jt1bca2p.js → uninstall-tvsh81v8.js} +2 -2
  61. package/build/{upload-krd8bnex.js → upload-7wdyyqmr.js} +11 -11
  62. package/build/{utils-skmqhyfg.js → utils-7fwdkqk6.js} +17 -13
  63. package/package.json +1 -1
  64. package/build/agent-71z4e7jg.js +0 -19
  65. package/build/agent-ga5fecfs.js +0 -27
  66. package/build/authentication-hgs7ym0m.js +0 -19
  67. package/build/blackboxAgent-gem3mxa9.js +0 -19
  68. package/build/index-ag14v3sg.js +0 -12
  69. package/build/pentest-rs0181nf.js +0 -29
  70. package/build/threatModel-k4f3zgqd.js +0 -27
@@ -1,24 +1,24 @@
1
1
  import {
2
2
  OffensiveSecurityAgent
3
- } from "./cli-n2m2yy5b.js";
3
+ } from "./cli-repbyhkk.js";
4
4
  import {
5
5
  detectOSAndEnhancePrompt
6
- } from "./cli-7tw4xfnw.js";
6
+ } from "./cli-tznv8pf1.js";
7
7
  import"./cli-c8131c4q.js";
8
8
  import {
9
9
  init_dist,
10
10
  stepCountIs
11
- } from "./cli-zx8gk8xv.js";
12
- import"./cli-vckbhnyk.js";
11
+ } from "./cli-tkc598ey.js";
12
+ import"./cli-0n4r54hq.js";
13
13
  import {
14
14
  exports_external,
15
15
  init_zod
16
- } from "./cli-3k1x5rn3.js";
17
- import"./cli-gpnb45ck.js";
18
- import"./cli-f7hanqbw.js";
19
- import"./cli-eveg9djy.js";
20
- import"./cli-barsn8br.js";
21
- import"./cli-8rxa073f.js";
16
+ } from "./cli-swpbx60z.js";
17
+ import"./cli-j54qa6tm.js";
18
+ import"./cli-72cvcqhg.js";
19
+ import"./cli-9rhzhgx2.js";
20
+ import"./cli-vnynf0js.js";
21
+ import"./cli-bc05qbss.js";
22
22
 
23
23
  // src/core/agents/specialized/findingJudge/agent.ts
24
24
  init_dist();
@@ -68,7 +68,7 @@ You are the last line of defense against false positives, hallucinated findings,
68
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.
69
69
  - Authentication bypass: output should show protected access without valid credentials.
70
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.
71
- - Missing rate limiting / anti-automation: fewer than 50 requests is insufficient. Evidence must state exact request count, timing/distribution, and observed statuses.
71
+ - Missing rate limiting / anti-automation: a modest burst (~20 requests) with no observed throttling, delays, or 429s is sufficient to demonstrate the gap. For endpoints with real-world side effects (sending email/SMS/push, creating tickets/notifications, contact/support/feedback forms, payments), as few as 2–3 attempts plus the observed response is sufficient — do NOT require volume-testing that would spam real recipients. Evidence must state exact request count, timing/distribution, and observed statuses.
72
72
 
73
73
  ### Common Low-Signal Patterns
74
74
  Reject these unless the submitted evidence demonstrates concrete harm:
@@ -0,0 +1,19 @@
1
+ import {
2
+ CodeAgent
3
+ } from "./cli-32z0017y.js";
4
+ import"./cli-9fsre5pt.js";
5
+ import"./cli-qqt4gj1w.js";
6
+ import"./cli-repbyhkk.js";
7
+ import"./cli-tznv8pf1.js";
8
+ import"./cli-c8131c4q.js";
9
+ import"./cli-tkc598ey.js";
10
+ import"./cli-0n4r54hq.js";
11
+ import"./cli-swpbx60z.js";
12
+ import"./cli-j54qa6tm.js";
13
+ import"./cli-72cvcqhg.js";
14
+ import"./cli-9rhzhgx2.js";
15
+ import"./cli-vnynf0js.js";
16
+ import"./cli-bc05qbss.js";
17
+ export {
18
+ CodeAgent
19
+ };
@@ -0,0 +1,29 @@
1
+ import {
2
+ PentestResponseSchema,
3
+ TargetedPentestAgent,
4
+ buildPentestActiveTools,
5
+ buildPentestPrompt,
6
+ buildPentestSystemPrompt,
7
+ resolvePentestAgentRole
8
+ } from "./cli-mavved45.js";
9
+ import"./cli-9fsre5pt.js";
10
+ import"./cli-qqt4gj1w.js";
11
+ import"./cli-repbyhkk.js";
12
+ import"./cli-tznv8pf1.js";
13
+ import"./cli-c8131c4q.js";
14
+ import"./cli-tkc598ey.js";
15
+ import"./cli-0n4r54hq.js";
16
+ import"./cli-swpbx60z.js";
17
+ import"./cli-j54qa6tm.js";
18
+ import"./cli-72cvcqhg.js";
19
+ import"./cli-9rhzhgx2.js";
20
+ import"./cli-vnynf0js.js";
21
+ import"./cli-bc05qbss.js";
22
+ export {
23
+ PentestResponseSchema,
24
+ TargetedPentestAgent,
25
+ buildPentestActiveTools,
26
+ buildPentestPrompt,
27
+ buildPentestSystemPrompt,
28
+ resolvePentestAgentRole
29
+ };
@@ -1,4 +1,14 @@
1
1
  #!/usr/bin/env bun
2
+ import"./cli-vq52kp7j.js";
3
+ import"./cli-5k33webc.js";
4
+ import"./cli-gq40s5b3.js";
5
+ import"./cli-b1adytsy.js";
6
+ import"./cli-mavved45.js";
7
+ import"./cli-xshasbwe.js";
8
+ import"./cli-32z0017y.js";
9
+ import"./cli-k8kc47pq.js";
10
+ import"./cli-9fsre5pt.js";
11
+ import"./cli-qqt4gj1w.js";
2
12
  import {
3
13
  createApp,
4
14
  createEndpoint,
@@ -12,28 +22,18 @@ import {
12
22
  searchEndpoints,
13
23
  updateApp,
14
24
  updateEndpoint
15
- } from "./cli-f71s6kcw.js";
16
- import"./cli-zm8tfpv7.js";
17
- import"./cli-bv2807tj.js";
18
- import"./cli-72b18z0n.js";
19
- import"./cli-50906d27.js";
20
- import"./cli-zk1ch6qf.js";
21
- import"./cli-j0n189ee.js";
22
- import"./cli-baqhqbe5.js";
23
- import"./cli-9fsre5pt.js";
24
- import"./cli-jyp2c6th.js";
25
- import"./cli-n2m2yy5b.js";
26
- import"./cli-7tw4xfnw.js";
25
+ } from "./cli-repbyhkk.js";
26
+ import"./cli-tznv8pf1.js";
27
27
  import"./cli-fw5r7pfj.js";
28
28
  import"./cli-c8131c4q.js";
29
- import"./cli-zx8gk8xv.js";
30
- import"./cli-vckbhnyk.js";
31
- import"./cli-3k1x5rn3.js";
32
- import"./cli-gpnb45ck.js";
33
- import"./cli-f7hanqbw.js";
34
- import"./cli-eveg9djy.js";
35
- import"./cli-barsn8br.js";
36
- import"./cli-8rxa073f.js";
29
+ import"./cli-tkc598ey.js";
30
+ import"./cli-0n4r54hq.js";
31
+ import"./cli-swpbx60z.js";
32
+ import"./cli-j54qa6tm.js";
33
+ import"./cli-72cvcqhg.js";
34
+ import"./cli-9rhzhgx2.js";
35
+ import"./cli-vnynf0js.js";
36
+ import"./cli-bc05qbss.js";
37
37
 
38
38
  // src/cli/apps.ts
39
39
  var APPLICATION_TYPES = [
@@ -1,22 +1,23 @@
1
1
  #!/usr/bin/env bun
2
- import"./cli-f71s6kcw.js";
3
- import"./cli-zm8tfpv7.js";
4
- import"./cli-bv2807tj.js";
5
- import"./cli-72b18z0n.js";
6
- import"./cli-50906d27.js";
7
- import"./cli-zk1ch6qf.js";
8
- import"./cli-j0n189ee.js";
9
- import"./cli-baqhqbe5.js";
2
+ import"./cli-vq52kp7j.js";
3
+ import"./cli-5k33webc.js";
4
+ import"./cli-gq40s5b3.js";
5
+ import"./cli-b1adytsy.js";
6
+ import"./cli-mavved45.js";
7
+ import"./cli-xshasbwe.js";
8
+ import"./cli-32z0017y.js";
9
+ import"./cli-k8kc47pq.js";
10
10
  import"./cli-9fsre5pt.js";
11
- import"./cli-jyp2c6th.js";
12
- import"./cli-n2m2yy5b.js";
13
- import"./cli-7tw4xfnw.js";
11
+ import"./cli-qqt4gj1w.js";
12
+ import"./cli-repbyhkk.js";
13
+ import"./cli-tznv8pf1.js";
14
14
  import"./cli-fw5r7pfj.js";
15
15
  import"./cli-c8131c4q.js";
16
- import"./cli-zx8gk8xv.js";
16
+ import"./cli-tkc598ey.js";
17
17
  import {
18
18
  createWorkspaceSelection,
19
19
  disconnect,
20
+ ensureValidToken,
20
21
  fetchWorkspaces,
21
22
  getPensarApiUrl,
22
23
  getPensarConsoleUrl,
@@ -28,18 +29,18 @@ import {
28
29
  pollWorkspaceSelection,
29
30
  selectWorkspace,
30
31
  startDeviceFlow
31
- } from "./cli-vckbhnyk.js";
32
- import"./cli-3k1x5rn3.js";
33
- import"./cli-gpnb45ck.js";
32
+ } from "./cli-0n4r54hq.js";
33
+ import"./cli-swpbx60z.js";
34
+ import"./cli-j54qa6tm.js";
34
35
  import {
35
36
  config,
36
37
  init_config
37
- } from "./cli-f7hanqbw.js";
38
- import"./cli-eveg9djy.js";
39
- import"./cli-barsn8br.js";
38
+ } from "./cli-72cvcqhg.js";
39
+ import"./cli-9rhzhgx2.js";
40
+ import"./cli-vnynf0js.js";
40
41
  import {
41
42
  __require
42
- } from "./cli-8rxa073f.js";
43
+ } from "./cli-bc05qbss.js";
43
44
 
44
45
  // src/cli/auth.ts
45
46
  import * as readline from "node:readline";
@@ -85,7 +86,13 @@ Waiting for workspace selection...`);
85
86
  }
86
87
  async function login() {
87
88
  const appConfig = await config.get();
88
- if (isConnected(appConfig)) {
89
+ const hasStoredCredentials = isConnected(appConfig);
90
+ const validToken = hasStoredCredentials ? await ensureValidToken({
91
+ accessToken: appConfig.accessToken,
92
+ refreshToken: appConfig.refreshToken,
93
+ pensarAPIKey: appConfig.pensarAPIKey
94
+ }) : null;
95
+ if (validToken) {
89
96
  console.log("Already connected to Pensar Console.");
90
97
  if (appConfig.workspaceSlug) {
91
98
  console.log(` Workspace: ${appConfig.workspaceSlug}`);
@@ -95,6 +102,8 @@ Reconnect? (y/N): `);
95
102
  if (answer.toLowerCase() !== "y") {
96
103
  return;
97
104
  }
105
+ } else if (hasStoredCredentials) {
106
+ console.log("Your saved Pensar Console session has expired. Reconnecting.");
98
107
  }
99
108
  console.log(`
100
109
  Pensar Console — Managed Inference
@@ -228,6 +237,15 @@ async function status() {
228
237
  console.log("Not connected to Pensar Console.\n\nRun `pensar login` to connect.");
229
238
  return;
230
239
  }
240
+ const validToken = await ensureValidToken({
241
+ accessToken: appConfig.accessToken,
242
+ refreshToken: appConfig.refreshToken,
243
+ pensarAPIKey: appConfig.pensarAPIKey
244
+ });
245
+ if (!validToken) {
246
+ console.log("Your Pensar Console session has expired.\n\nRun `pensar login` to reconnect.");
247
+ return;
248
+ }
231
249
  if (!appConfig.accessToken && appConfig.pensarAPIKey && !appConfig.workspaceSlug) {
232
250
  try {
233
251
  const apiUrl = getPensarApiUrl();
@@ -0,0 +1,19 @@
1
+ import {
2
+ runAuthenticationAgent
3
+ } from "./cli-xshasbwe.js";
4
+ import"./cli-9fsre5pt.js";
5
+ import"./cli-qqt4gj1w.js";
6
+ import"./cli-repbyhkk.js";
7
+ import"./cli-tznv8pf1.js";
8
+ import"./cli-c8131c4q.js";
9
+ import"./cli-tkc598ey.js";
10
+ import"./cli-0n4r54hq.js";
11
+ import"./cli-swpbx60z.js";
12
+ import"./cli-j54qa6tm.js";
13
+ import"./cli-72cvcqhg.js";
14
+ import"./cli-9rhzhgx2.js";
15
+ import"./cli-vnynf0js.js";
16
+ import"./cli-bc05qbss.js";
17
+ export {
18
+ runAuthenticationAgent
19
+ };
@@ -0,0 +1,19 @@
1
+ import {
2
+ BlackboxAttackSurfaceAgent
3
+ } from "./cli-gq40s5b3.js";
4
+ import"./cli-9fsre5pt.js";
5
+ import"./cli-qqt4gj1w.js";
6
+ import"./cli-repbyhkk.js";
7
+ import"./cli-tznv8pf1.js";
8
+ import"./cli-c8131c4q.js";
9
+ import"./cli-tkc598ey.js";
10
+ import"./cli-0n4r54hq.js";
11
+ import"./cli-swpbx60z.js";
12
+ import"./cli-j54qa6tm.js";
13
+ import"./cli-72cvcqhg.js";
14
+ import"./cli-9rhzhgx2.js";
15
+ import"./cli-vnynf0js.js";
16
+ import"./cli-bc05qbss.js";
17
+ export {
18
+ BlackboxAttackSurfaceAgent
19
+ };
@@ -1,25 +1,25 @@
1
1
  import {
2
2
  runPentestWorkflow
3
- } from "./cli-zm8tfpv7.js";
4
- import"./cli-bv2807tj.js";
5
- import"./cli-72b18z0n.js";
6
- import"./cli-50906d27.js";
7
- import"./cli-j0n189ee.js";
8
- import"./cli-baqhqbe5.js";
3
+ } from "./cli-5k33webc.js";
4
+ import"./cli-gq40s5b3.js";
5
+ import"./cli-b1adytsy.js";
6
+ import"./cli-mavved45.js";
7
+ import"./cli-32z0017y.js";
8
+ import"./cli-k8kc47pq.js";
9
9
  import"./cli-9fsre5pt.js";
10
- import"./cli-jyp2c6th.js";
11
- import"./cli-n2m2yy5b.js";
12
- import"./cli-7tw4xfnw.js";
10
+ import"./cli-qqt4gj1w.js";
11
+ import"./cli-repbyhkk.js";
12
+ import"./cli-tznv8pf1.js";
13
13
  import"./cli-fw5r7pfj.js";
14
14
  import"./cli-c8131c4q.js";
15
- import"./cli-zx8gk8xv.js";
16
- import"./cli-vckbhnyk.js";
17
- import"./cli-3k1x5rn3.js";
18
- import"./cli-gpnb45ck.js";
19
- import"./cli-f7hanqbw.js";
20
- import"./cli-eveg9djy.js";
21
- import"./cli-barsn8br.js";
22
- import"./cli-8rxa073f.js";
15
+ import"./cli-tkc598ey.js";
16
+ import"./cli-0n4r54hq.js";
17
+ import"./cli-swpbx60z.js";
18
+ import"./cli-j54qa6tm.js";
19
+ import"./cli-72cvcqhg.js";
20
+ import"./cli-9rhzhgx2.js";
21
+ import"./cli-vnynf0js.js";
22
+ import"./cli-bc05qbss.js";
23
23
 
24
24
  // src/core/api/blackboxPentest.ts
25
25
  async function runPentestAgent(input) {
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  config,
3
3
  init_config
4
- } from "./cli-f7hanqbw.js";
4
+ } from "./cli-72cvcqhg.js";
5
5
  import {
6
6
  __esm
7
- } from "./cli-8rxa073f.js";
7
+ } from "./cli-bc05qbss.js";
8
8
 
9
9
  // src/core/auth/connection.ts
10
10
  function isConnected(cfg) {
@@ -3,7 +3,7 @@ import {
3
3
  init_lazyLogger,
4
4
  init_structured,
5
5
  scopedLogger
6
- } from "./cli-zx8gk8xv.js";
6
+ } from "./cli-tkc598ey.js";
7
7
 
8
8
  // src/core/integrations/wandb/client.ts
9
9
  init_structured();
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  OffensiveSecurityAgent
3
- } from "./cli-n2m2yy5b.js";
3
+ } from "./cli-repbyhkk.js";
4
4
  import {
5
5
  init_dist,
6
6
  stepCountIs
7
- } from "./cli-zx8gk8xv.js";
7
+ } from "./cli-tkc598ey.js";
8
8
 
9
9
  // src/core/agents/specialized/codeAgent/agent.ts
10
10
  init_dist();
@@ -1,20 +1,20 @@
1
1
  import {
2
2
  BlackboxAttackSurfaceAgent
3
- } from "./cli-bv2807tj.js";
3
+ } from "./cli-gq40s5b3.js";
4
4
  import {
5
5
  REPORT_FILENAME_JSON,
6
6
  REPORT_FILENAME_MD,
7
7
  buildPentestReport,
8
8
  renderJson,
9
9
  renderMarkdown
10
- } from "./cli-72b18z0n.js";
10
+ } from "./cli-b1adytsy.js";
11
11
  import {
12
12
  TargetedPentestAgent,
13
13
  buildPentestSystemPrompt
14
- } from "./cli-50906d27.js";
14
+ } from "./cli-mavved45.js";
15
15
  import {
16
16
  CodeAgent
17
- } from "./cli-j0n189ee.js";
17
+ } from "./cli-32z0017y.js";
18
18
  import {
19
19
  AppsDiscoveryResultSchema,
20
20
  DiscoverySummarySchema,
@@ -22,7 +22,7 @@ import {
22
22
  WHITEBOX_APPS_DISCOVERY_SYSTEM_PROMPT,
23
23
  WHITEBOX_DISCOVERY_SYSTEM_PROMPT,
24
24
  WHITEBOX_ENDPOINT_DOCUMENTATION_SYSTEM_PROMPT
25
- } from "./cli-baqhqbe5.js";
25
+ } from "./cli-k8kc47pq.js";
26
26
  import {
27
27
  FindingsRegistry,
28
28
  OffensiveSecurityAgent,
@@ -31,7 +31,7 @@ import {
31
31
  pLimit,
32
32
  runWithBoundedConcurrency,
33
33
  toGrpcPentestContext
34
- } from "./cli-n2m2yy5b.js";
34
+ } from "./cli-repbyhkk.js";
35
35
  import {
36
36
  createThreatModelPrompt
37
37
  } from "./cli-fw5r7pfj.js";
@@ -45,10 +45,10 @@ import {
45
45
  init_structured,
46
46
  newSessionId,
47
47
  scopedLogger
48
- } from "./cli-zx8gk8xv.js";
48
+ } from "./cli-tkc598ey.js";
49
49
  import {
50
50
  __require
51
- } from "./cli-8rxa073f.js";
51
+ } from "./cli-bc05qbss.js";
52
52
 
53
53
  // src/core/workflows/pentest.ts
54
54
  init_dist();
@@ -7692,6 +7692,12 @@ async function runPentestSwarm(input) {
7692
7692
  });
7693
7693
  if (session.config?.requirePlan && session.config?.taskDriven && previousMessages.length === 0) {
7694
7694
  try {
7695
+ eventBus?.emit("subagent-spawn", {
7696
+ subagentId: `${subagentId}-plan`,
7697
+ name: `${subagentName} (plan)`,
7698
+ input: { target: target.target, objectives: target.objectives },
7699
+ parentSubagentId: subagentId
7700
+ });
7695
7701
  const executionTasksDir = join18(session.rootPath, "subagents", `${subagentId}-tasks`);
7696
7702
  const planAgent = new OffensiveSecurityAgent({
7697
7703
  system: PLAN_PHASE_SYSTEM_PROMPT,
@@ -7717,7 +7723,17 @@ async function runPentestSwarm(input) {
7717
7723
  display
7718
7724
  });
7719
7725
  await planAgent.consume();
7726
+ eventBus?.emit("subagent-complete", {
7727
+ subagentId: `${subagentId}-plan`,
7728
+ status: "completed",
7729
+ parentSubagentId: subagentId
7730
+ });
7720
7731
  } catch (planErr) {
7732
+ eventBus?.emit("subagent-complete", {
7733
+ subagentId: `${subagentId}-plan`,
7734
+ status: "failed",
7735
+ parentSubagentId: subagentId
7736
+ });
7721
7737
  log5.warn(`Plan phase failed for ${subagentId}: ${planErr}`);
7722
7738
  }
7723
7739
  }
@@ -7786,7 +7802,7 @@ async function runPentestSwarm(input) {
7786
7802
  }
7787
7803
  async function runPentestWorkflow(input) {
7788
7804
  if (input.fastStrike) {
7789
- const { runFastStrike } = await import("./fastStrike-ebz1ph9a.js");
7805
+ const { runFastStrike } = await import("./fastStrike-8zka43xs.js");
7790
7806
  return runFastStrike(input);
7791
7807
  }
7792
7808
  const {
@@ -3,10 +3,10 @@ import {
3
3
  init,
4
4
  init_config,
5
5
  update
6
- } from "./cli-eveg9djy.js";
6
+ } from "./cli-9rhzhgx2.js";
7
7
  import {
8
8
  __esm
9
- } from "./cli-8rxa073f.js";
9
+ } from "./cli-bc05qbss.js";
10
10
 
11
11
  // src/core/config/index.ts
12
12
  var config;
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  getCurrentVersion,
3
3
  init_installation
4
- } from "./cli-barsn8br.js";
4
+ } from "./cli-vnynf0js.js";
5
5
  import {
6
6
  __esm
7
- } from "./cli-8rxa073f.js";
7
+ } from "./cli-bc05qbss.js";
8
8
 
9
9
  // src/core/config/config.ts
10
10
  import fs from "node:fs/promises";
@@ -45,6 +45,7 @@ function applyEnvFallbacks(parsedConfig) {
45
45
  anthropicAPIKey: parsedConfig.anthropicAPIKey ?? process.env.ANTHROPIC_API_KEY,
46
46
  googleAPIKey: parsedConfig.googleAPIKey ?? process.env.GOOGLE_GENERATIVE_AI_API_KEY,
47
47
  openRouterAPIKey: parsedConfig.openRouterAPIKey ?? process.env.OPENROUTER_API_KEY,
48
+ concentrateAPIKey: parsedConfig.concentrateAPIKey ?? process.env.CONCENTRATE_API_KEY,
48
49
  inceptionAPIKey: parsedConfig.inceptionAPIKey ?? process.env.INCEPTION_API_KEY,
49
50
  bedrockAPIKey: parsedConfig.bedrockAPIKey ?? process.env.BEDROCK_API_KEY,
50
51
  pensarAPIKey: parsedConfig.pensarAPIKey ?? process.env.PENSAR_API_KEY,
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  EvidenceFileEntrySchema
3
- } from "./cli-jyp2c6th.js";
3
+ } from "./cli-qqt4gj1w.js";
4
4
  import {
5
5
  CweEntrySchema,
6
6
  ValidatedCweEntrySchema,
7
7
  hasCanonicalName
8
- } from "./cli-n2m2yy5b.js";
8
+ } from "./cli-repbyhkk.js";
9
9
  import {
10
10
  exports_external,
11
11
  init_zod
12
- } from "./cli-3k1x5rn3.js";
12
+ } from "./cli-swpbx60z.js";
13
13
 
14
14
  // src/core/report/schemas.ts
15
15
  init_zod();
@@ -20,12 +20,14 @@ var __toESM = (mod, isNodeMode, target) => {
20
20
  }
21
21
  target = mod != null ? __create(__getProtoOf(mod)) : {};
22
22
  const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
23
- for (let key of __getOwnPropNames(mod))
24
- if (!__hasOwnProp.call(to, key))
25
- __defProp(to, key, {
26
- get: __accessProp.bind(mod, key),
27
- enumerable: true
28
- });
23
+ if (mod && typeof mod === "object" || typeof mod === "function") {
24
+ for (let key of __getOwnPropNames(mod))
25
+ if (!__hasOwnProp.call(to, key))
26
+ __defProp(to, key, {
27
+ get: __accessProp.bind(mod, key),
28
+ enumerable: true
29
+ });
30
+ }
29
31
  if (canCache)
30
32
  cache.set(mod, to);
31
33
  return to;
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  __require
3
- } from "./cli-8rxa073f.js";
3
+ } from "./cli-bc05qbss.js";
4
4
 
5
5
  // src/core/http/parse.ts
6
6
  var NAME_TOKEN = /^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  __esm
3
- } from "./cli-8rxa073f.js";
3
+ } from "./cli-bc05qbss.js";
4
4
 
5
5
  // src/core/providers/types.ts
6
6
  var AVAILABLE_PROVIDERS;
@@ -30,6 +30,12 @@ var init_types = __esm(() => {
30
30
  description: "Access multiple AI models through one API",
31
31
  requiresAPIKey: true
32
32
  },
33
+ {
34
+ id: "concentrate",
35
+ name: "Concentrate",
36
+ description: "Access multiple AI models through one API",
37
+ requiresAPIKey: true
38
+ },
33
39
  {
34
40
  id: "inception",
35
41
  name: "Inception",
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  OffensiveSecurityAgent
3
- } from "./cli-n2m2yy5b.js";
3
+ } from "./cli-repbyhkk.js";
4
4
  import {
5
5
  detectOSAndEnhancePrompt
6
- } from "./cli-7tw4xfnw.js";
6
+ } from "./cli-tznv8pf1.js";
7
7
  import {
8
8
  hasToolCall,
9
9
  init_dist,
10
10
  stepCountIs
11
- } from "./cli-zx8gk8xv.js";
11
+ } from "./cli-tkc598ey.js";
12
12
 
13
13
  // src/core/agents/specialized/attackSurface/blackboxAgent.ts
14
14
  init_dist();
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  __commonJS,
3
3
  __require
4
- } from "./cli-8rxa073f.js";
4
+ } from "./cli-bc05qbss.js";
5
5
 
6
6
  // node_modules/@vercel/oidc/dist/token-error.js
7
- var require_token_error = __commonJS((exports, module) => {
7
+ var require_token_error = __commonJS(function(exports, module) {
8
8
  var __defProp = Object.defineProperty;
9
9
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
10
10
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -44,7 +44,7 @@ var require_token_error = __commonJS((exports, module) => {
44
44
  });
45
45
 
46
46
  // node_modules/@vercel/oidc/dist/token-io.js
47
- var require_token_io = __commonJS((exports, module) => {
47
+ var require_token_io = __commonJS(function(exports, module) {
48
48
  var __create = Object.create;
49
49
  var __defProp = Object.defineProperty;
50
50
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -111,7 +111,7 @@ var require_token_io = __commonJS((exports, module) => {
111
111
  });
112
112
 
113
113
  // node_modules/@vercel/oidc/dist/auth-config.js
114
- var require_auth_config = __commonJS((exports, module) => {
114
+ var require_auth_config = __commonJS(function(exports, module) {
115
115
  var __create = Object.create;
116
116
  var __defProp = Object.defineProperty;
117
117
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -184,7 +184,7 @@ var require_auth_config = __commonJS((exports, module) => {
184
184
  });
185
185
 
186
186
  // node_modules/@vercel/oidc/dist/oauth.js
187
- var require_oauth = __commonJS((exports, module) => {
187
+ var require_oauth = __commonJS(function(exports, module) {
188
188
  var __defProp = Object.defineProperty;
189
189
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
190
190
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -270,7 +270,7 @@ var require_oauth = __commonJS((exports, module) => {
270
270
  });
271
271
 
272
272
  // node_modules/@vercel/oidc/dist/auth-errors.js
273
- var require_auth_errors = __commonJS((exports, module) => {
273
+ var require_auth_errors = __commonJS(function(exports, module) {
274
274
  var __defProp = Object.defineProperty;
275
275
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
276
276
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -311,7 +311,7 @@ var require_auth_errors = __commonJS((exports, module) => {
311
311
  });
312
312
 
313
313
  // node_modules/@vercel/oidc/dist/token-util.js
314
- var require_token_util = __commonJS((exports, module) => {
314
+ var require_token_util = __commonJS(function(exports, module) {
315
315
  var __create = Object.create;
316
316
  var __defProp = Object.defineProperty;
317
317
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;