@pensar/apex 2.3.0 → 2.4.0-canary.19561fbe

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-7r8ae2n3.js +19 -0
  2. package/build/agent-8fwm9a5a.js +29 -0
  3. package/build/{agent-9xna7jhw.js → agent-9xkng6z0.js} +11 -11
  4. package/build/{apps-43pqbz7r.js → apps-zz0g7btr.js} +57 -21
  5. package/build/{auth-c1z670rx.js → auth-yg4f0h7t.js} +38 -20
  6. package/build/authentication-4pw5fgb0.js +19 -0
  7. package/build/blackboxAgent-86505pbv.js +19 -0
  8. package/build/{blackboxPentest-tgc2t3y6.js → blackboxPentest-wt2tgsv6.js} +17 -17
  9. package/build/{cli-zm8tfpv7.js → cli-15becs7s.js} +25 -9
  10. package/build/{cli-n2m2yy5b.js → cli-32sskghg.js} +1254 -614
  11. package/build/{cli-baqhqbe5.js → cli-3tjmnhmz.js} +3 -3
  12. package/build/{cli-bnkgdywr.js → cli-675xera2.js} +1 -1
  13. package/build/{cli-f7hanqbw.js → cli-701hy1tq.js} +2 -2
  14. package/build/{cli-zx8gk8xv.js → cli-72mp7fnw.js} +296 -54
  15. package/build/{cli-7tw4xfnw.js → cli-av6ny5j7.js} +1 -1
  16. package/build/{cli-8rxa073f.js → cli-bc05qbss.js} +8 -6
  17. package/build/{cli-50906d27.js → cli-bdnfzsg5.js} +91 -29
  18. package/build/{cli-q24twygk.js → cli-dm0fc0bm.js} +1 -1
  19. package/build/{cli-yz80qkzn.js → cli-ee3axgts.js} +7 -1
  20. package/build/{cli-zk1ch6qf.js → cli-f6b6kdc6.js} +34 -9
  21. package/build/{cli-eveg9djy.js → cli-fejghj51.js} +3 -2
  22. package/build/{cli-j0n189ee.js → cli-gt8cqkar.js} +2 -2
  23. package/build/{cli-gpnb45ck.js → cli-j54qa6tm.js} +7 -7
  24. package/build/{cli-wszshs5e.js → cli-k71t434r.js} +4 -4
  25. package/build/{cli-jyp2c6th.js → cli-kfc5yyre.js} +2 -2
  26. package/build/{cli-bv2807tj.js → cli-pn8yhmp4.js} +3 -3
  27. package/build/{cli-3k1x5rn3.js → cli-swpbx60z.js} +1045 -1045
  28. package/build/{cli-72b18z0n.js → cli-w8v5w7f3.js} +3 -3
  29. package/build/{cli-vckbhnyk.js → cli-wdn70vwe.js} +2 -2
  30. package/build/{cli-f71s6kcw.js → cli-xw30dapx.js} +81 -215
  31. package/build/{cli-barsn8br.js → cli-zp8z5vrt.js} +2 -2
  32. package/build/cli.js +52 -46
  33. package/build/{config-jzqjz606.js → config-zeh0xscc.js} +5 -5
  34. package/build/{doctor-q3qws68e.js → doctor-e0znbx7f.js} +10 -9
  35. package/build/{fastStrike-ebz1ph9a.js → fastStrike-yraw4ht6.js} +36 -16
  36. package/build/{fixes-86yebsj0.js → fixes-mengjdsn.js} +19 -19
  37. package/build/{index-32hn8rrw.js → index-05r9pb0d.js} +3 -3
  38. package/build/{index-e8c8zcrf.js → index-1kwk5sy2.js} +31 -26
  39. package/build/{index-mr2cseg4.js → index-7jcvhzqh.js} +19 -19
  40. package/build/{index-8db1d2q3.js → index-9v6zvn9e.js} +18 -18
  41. package/build/index-a68sqrkq.js +12 -0
  42. package/build/{index-h2hj2hj9.js → index-cbwn03kz.js} +16 -16
  43. package/build/{index-97vx1a24.js → index-hknbwp8k.js} +1148 -1086
  44. package/build/{index-gq9h8j5j.js → index-mtq7kmxz.js} +132 -132
  45. package/build/{index-tke6896d.js → index-psqjpw5m.js} +10 -10
  46. package/build/{index-468j74f3.js → index-v0ghws2y.js} +113 -97
  47. package/build/{issues-kh4wg8c5.js → issues-wwfg1k5d.js} +19 -19
  48. package/build/{logs-bj28xmbf.js → logs-c4matma8.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-60nqapwk.js} +11 -11
  52. package/build/{parse-7djk9jyf.js → parse-rtccymzn.js} +3 -3
  53. package/build/pentest-pn2ky72r.js +29 -0
  54. package/build/{pentests-62d6zw6p.js → pentests-7r7stp5g.js} +19 -19
  55. package/build/{targetedPentest-me4jnr3z.js → targetedPentest-y2t8cry0.js} +14 -14
  56. package/build/{targets-e5k1mrky.js → targets-pgw8ns01.js} +19 -19
  57. package/build/threatModel-hxy1d92e.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-vvz3r8yc.js} +2 -2
  61. package/build/{upload-krd8bnex.js → upload-8efavx6h.js} +11 -11
  62. package/build/{utils-skmqhyfg.js → utils-3ymswfqm.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
@@ -0,0 +1,19 @@
1
+ import {
2
+ CodeAgent
3
+ } from "./cli-gt8cqkar.js";
4
+ import"./cli-9fsre5pt.js";
5
+ import"./cli-kfc5yyre.js";
6
+ import"./cli-32sskghg.js";
7
+ import"./cli-av6ny5j7.js";
8
+ import"./cli-c8131c4q.js";
9
+ import"./cli-72mp7fnw.js";
10
+ import"./cli-wdn70vwe.js";
11
+ import"./cli-swpbx60z.js";
12
+ import"./cli-j54qa6tm.js";
13
+ import"./cli-701hy1tq.js";
14
+ import"./cli-fejghj51.js";
15
+ import"./cli-zp8z5vrt.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-bdnfzsg5.js";
9
+ import"./cli-9fsre5pt.js";
10
+ import"./cli-kfc5yyre.js";
11
+ import"./cli-32sskghg.js";
12
+ import"./cli-av6ny5j7.js";
13
+ import"./cli-c8131c4q.js";
14
+ import"./cli-72mp7fnw.js";
15
+ import"./cli-wdn70vwe.js";
16
+ import"./cli-swpbx60z.js";
17
+ import"./cli-j54qa6tm.js";
18
+ import"./cli-701hy1tq.js";
19
+ import"./cli-fejghj51.js";
20
+ import"./cli-zp8z5vrt.js";
21
+ import"./cli-bc05qbss.js";
22
+ export {
23
+ PentestResponseSchema,
24
+ TargetedPentestAgent,
25
+ buildPentestActiveTools,
26
+ buildPentestPrompt,
27
+ buildPentestSystemPrompt,
28
+ resolvePentestAgentRole
29
+ };
@@ -1,24 +1,24 @@
1
1
  import {
2
2
  OffensiveSecurityAgent
3
- } from "./cli-n2m2yy5b.js";
3
+ } from "./cli-32sskghg.js";
4
4
  import {
5
5
  detectOSAndEnhancePrompt
6
- } from "./cli-7tw4xfnw.js";
6
+ } from "./cli-av6ny5j7.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-72mp7fnw.js";
12
+ import"./cli-wdn70vwe.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-701hy1tq.js";
19
+ import"./cli-fejghj51.js";
20
+ import"./cli-zp8z5vrt.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:
@@ -1,39 +1,42 @@
1
1
  #!/usr/bin/env bun
2
+ import"./cli-xw30dapx.js";
3
+ import"./cli-15becs7s.js";
4
+ import"./cli-pn8yhmp4.js";
5
+ import"./cli-w8v5w7f3.js";
6
+ import"./cli-bdnfzsg5.js";
7
+ import"./cli-f6b6kdc6.js";
8
+ import"./cli-gt8cqkar.js";
9
+ import"./cli-3tjmnhmz.js";
10
+ import"./cli-9fsre5pt.js";
11
+ import"./cli-kfc5yyre.js";
2
12
  import {
13
+ ENDPOINT_TRANSPORTS,
3
14
  createApp,
15
+ createDomain,
4
16
  createEndpoint,
5
17
  deleteApp,
6
18
  deleteEndpoint,
7
19
  getApp,
8
20
  getEndpoint,
9
21
  listApps,
22
+ listDomains,
10
23
  listEndpoints,
11
24
  searchApps,
12
25
  searchEndpoints,
13
26
  updateApp,
14
27
  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";
28
+ } from "./cli-32sskghg.js";
29
+ import"./cli-av6ny5j7.js";
27
30
  import"./cli-fw5r7pfj.js";
28
31
  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";
32
+ import"./cli-72mp7fnw.js";
33
+ import"./cli-wdn70vwe.js";
34
+ import"./cli-swpbx60z.js";
35
+ import"./cli-j54qa6tm.js";
36
+ import"./cli-701hy1tq.js";
37
+ import"./cli-fejghj51.js";
38
+ import"./cli-zp8z5vrt.js";
39
+ import"./cli-bc05qbss.js";
37
40
 
38
41
  // src/cli/apps.ts
39
42
  var APPLICATION_TYPES = [
@@ -88,6 +91,14 @@ function parseEndpointType(value) {
88
91
  }
89
92
  return value;
90
93
  }
94
+ function parseTransport(value) {
95
+ if (value === undefined)
96
+ return;
97
+ if (!ENDPOINT_TRANSPORTS.includes(value)) {
98
+ throw new Error(`Invalid --transport "${value}". Must be one of: ${ENDPOINT_TRANSPORTS.join(", ")}`);
99
+ }
100
+ return value;
101
+ }
91
102
  function parseInteger(flag, value) {
92
103
  if (value === undefined)
93
104
  return;
@@ -117,6 +128,8 @@ Usage:
117
128
  pensar apps create [options] Create an app
118
129
  pensar apps update <appId> [options] Update an app
119
130
  pensar apps delete <appId> Delete an app
131
+ pensar apps domains List workspace domains
132
+ pensar apps domain-create <domain> Create/resolve a domain
120
133
  pensar apps endpoints <appId> [filters] List endpoints
121
134
  pensar apps endpoint <endpointId> Show endpoint details
122
135
  pensar apps endpoint-create <appId> [options] Create an endpoint
@@ -130,9 +143,13 @@ App fields (create requires --name and --description):
130
143
  --description <text> Application description
131
144
  --type <type> One of: ${APPLICATION_TYPES.join(", ")}
132
145
  --framework <text> Framework / runtime hint
133
- --domain <id> Linked domain UUID
146
+ --domain <id> Linked domain UUID (see "apps domains")
134
147
  --disallowed-actions <text> Free-form disallowed actions notes
135
148
 
149
+ Domains:
150
+ API-created domains are canonicalized and created idempotently by Console.
151
+ They stay unverified and do not start reconnaissance.
152
+
136
153
  List pagination (for "apps" and "endpoints <appId>"):
137
154
  --limit <n> Page size (default 100, max 200)
138
155
  --offset <n> Page offset (default 0)
@@ -158,6 +175,8 @@ Endpoint fields (create requires --endpoint and --description):
158
175
  --endpoint <text> Endpoint path / URL / route
159
176
  --description <text> Endpoint description
160
177
  --type <type> One of: ${ENDPOINT_TYPES.join(", ")}
178
+ --transport <transport> One of: ${ENDPOINT_TRANSPORTS.join(", ")}
179
+ (defaults to http when omitted)
161
180
  --location <text> Source file (whitebox)
162
181
  --start-line <n> Start line number
163
182
  --end-line <n> End line number
@@ -235,6 +254,7 @@ function parseEndpointCreateOptions(argv) {
235
254
  if (description === undefined)
236
255
  throw new Error("--description is required");
237
256
  const type = parseEndpointType(getFlag("--type", argv));
257
+ const transport = parseTransport(getFlag("--transport", argv));
238
258
  const location = getFlag("--location", argv);
239
259
  const startLineNumber = parseInteger("--start-line", getFlag("--start-line", argv));
240
260
  const endLineNumber = parseInteger("--end-line", getFlag("--end-line", argv));
@@ -246,6 +266,7 @@ function parseEndpointCreateOptions(argv) {
246
266
  endpoint,
247
267
  description,
248
268
  ...type !== undefined ? { type } : {},
269
+ ...transport !== undefined ? { transport } : {},
249
270
  ...location !== undefined ? { location } : {},
250
271
  ...startLineNumber !== undefined ? { startLineNumber } : {},
251
272
  ...endLineNumber !== undefined ? { endLineNumber } : {},
@@ -269,6 +290,9 @@ function parseEndpointUpdateOptions(argv) {
269
290
  const type = parseEndpointType(getFlag("--type", argv));
270
291
  if (type !== undefined)
271
292
  update.type = type;
293
+ const transport = parseTransport(getFlag("--transport", argv));
294
+ if (transport !== undefined)
295
+ update.transport = transport;
272
296
  const location = getFlag("--location", argv);
273
297
  if (location !== undefined)
274
298
  update.location = location;
@@ -332,6 +356,18 @@ async function main() {
332
356
  }
333
357
  const result = await deleteApp(appId);
334
358
  console.log(JSON.stringify(result, null, 2));
359
+ } else if (sub === "domains") {
360
+ const result = await listDomains();
361
+ console.log(JSON.stringify(result, null, 2));
362
+ } else if (sub === "domain-create") {
363
+ const url = args[1];
364
+ if (!url) {
365
+ console.error("Error: domain is required");
366
+ console.error("Usage: pensar apps domain-create <domain>");
367
+ process.exit(1);
368
+ }
369
+ const result = await createDomain({ url });
370
+ console.log(JSON.stringify(result, null, 2));
335
371
  } else if (sub === "endpoints") {
336
372
  const appId = args[1];
337
373
  if (!appId) {
@@ -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-xw30dapx.js";
3
+ import"./cli-15becs7s.js";
4
+ import"./cli-pn8yhmp4.js";
5
+ import"./cli-w8v5w7f3.js";
6
+ import"./cli-bdnfzsg5.js";
7
+ import"./cli-f6b6kdc6.js";
8
+ import"./cli-gt8cqkar.js";
9
+ import"./cli-3tjmnhmz.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-kfc5yyre.js";
12
+ import"./cli-32sskghg.js";
13
+ import"./cli-av6ny5j7.js";
14
14
  import"./cli-fw5r7pfj.js";
15
15
  import"./cli-c8131c4q.js";
16
- import"./cli-zx8gk8xv.js";
16
+ import"./cli-72mp7fnw.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-wdn70vwe.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-701hy1tq.js";
39
+ import"./cli-fejghj51.js";
40
+ import"./cli-zp8z5vrt.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-f6b6kdc6.js";
4
+ import"./cli-9fsre5pt.js";
5
+ import"./cli-kfc5yyre.js";
6
+ import"./cli-32sskghg.js";
7
+ import"./cli-av6ny5j7.js";
8
+ import"./cli-c8131c4q.js";
9
+ import"./cli-72mp7fnw.js";
10
+ import"./cli-wdn70vwe.js";
11
+ import"./cli-swpbx60z.js";
12
+ import"./cli-j54qa6tm.js";
13
+ import"./cli-701hy1tq.js";
14
+ import"./cli-fejghj51.js";
15
+ import"./cli-zp8z5vrt.js";
16
+ import"./cli-bc05qbss.js";
17
+ export {
18
+ runAuthenticationAgent
19
+ };
@@ -0,0 +1,19 @@
1
+ import {
2
+ BlackboxAttackSurfaceAgent
3
+ } from "./cli-pn8yhmp4.js";
4
+ import"./cli-9fsre5pt.js";
5
+ import"./cli-kfc5yyre.js";
6
+ import"./cli-32sskghg.js";
7
+ import"./cli-av6ny5j7.js";
8
+ import"./cli-c8131c4q.js";
9
+ import"./cli-72mp7fnw.js";
10
+ import"./cli-wdn70vwe.js";
11
+ import"./cli-swpbx60z.js";
12
+ import"./cli-j54qa6tm.js";
13
+ import"./cli-701hy1tq.js";
14
+ import"./cli-fejghj51.js";
15
+ import"./cli-zp8z5vrt.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-15becs7s.js";
4
+ import"./cli-pn8yhmp4.js";
5
+ import"./cli-w8v5w7f3.js";
6
+ import"./cli-bdnfzsg5.js";
7
+ import"./cli-gt8cqkar.js";
8
+ import"./cli-3tjmnhmz.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-kfc5yyre.js";
11
+ import"./cli-32sskghg.js";
12
+ import"./cli-av6ny5j7.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-72mp7fnw.js";
16
+ import"./cli-wdn70vwe.js";
17
+ import"./cli-swpbx60z.js";
18
+ import"./cli-j54qa6tm.js";
19
+ import"./cli-701hy1tq.js";
20
+ import"./cli-fejghj51.js";
21
+ import"./cli-zp8z5vrt.js";
22
+ import"./cli-bc05qbss.js";
23
23
 
24
24
  // src/core/api/blackboxPentest.ts
25
25
  async function runPentestAgent(input) {
@@ -1,20 +1,20 @@
1
1
  import {
2
2
  BlackboxAttackSurfaceAgent
3
- } from "./cli-bv2807tj.js";
3
+ } from "./cli-pn8yhmp4.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-w8v5w7f3.js";
11
11
  import {
12
12
  TargetedPentestAgent,
13
13
  buildPentestSystemPrompt
14
- } from "./cli-50906d27.js";
14
+ } from "./cli-bdnfzsg5.js";
15
15
  import {
16
16
  CodeAgent
17
- } from "./cli-j0n189ee.js";
17
+ } from "./cli-gt8cqkar.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-3tjmnhmz.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-32sskghg.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-72mp7fnw.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-yraw4ht6.js");
7790
7806
  return runFastStrike(input);
7791
7807
  }
7792
7808
  const {