@pensar/apex 1.0.0-canary.b3862641 → 1.0.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 (39) hide show
  1. package/build/{agent-j552w2we.js → agent-95ysppvr.js} +8 -8
  2. package/build/agent-e3r90w2x.js +17 -0
  3. package/build/{auth-rva0gxaw.js → auth-h84w23gx.js} +4 -4
  4. package/build/{authentication-3mjt9w48.js → authentication-3m2qm7ym.js} +7 -7
  5. package/build/blackboxAgent-4t68wah3.js +18 -0
  6. package/build/{blackboxPentest-r9902z4d.js → blackboxPentest-kn3y84jf.js} +13 -13
  7. package/build/{cli-j7e9az3s.js → cli-abkgxjcc.js} +2 -2
  8. package/build/{cli-hts5dy98.js → cli-awjwsbrz.js} +2 -2
  9. package/build/{cli-5c50fxb4.js → cli-dfth2beg.js} +2 -2
  10. package/build/{cli-cbm1rq1d.js → cli-dsybj1jp.js} +1 -1
  11. package/build/{cli-cm6ttk19.js → cli-etrmgpa5.js} +2 -2
  12. package/build/{cli-z4rh1cet.js → cli-ey40xb9a.js} +1 -1
  13. package/build/{cli-jdq0xp7y.js → cli-j4qm285k.js} +2 -2
  14. package/build/{cli-sck1zt03.js → cli-mxj8tz9b.js} +7 -7
  15. package/build/{cli-hvy4gjyz.js → cli-qcsv2e9h.js} +1 -1
  16. package/build/{cli-ecbkqt53.js → cli-qvq41y3z.js} +1 -1
  17. package/build/{cli-ty9an9a5.js → cli-r4jzb7aj.js} +1 -1
  18. package/build/{cli-za8gbs0z.js → cli-sgzbqavm.js} +1 -1
  19. package/build/{cli-gb8kggxa.js → cli-wqeja2k6.js} +1 -1
  20. package/build/{cli-e8w98v76.js → cli-x5t1x7ts.js} +1 -1
  21. package/build/{cli-4gp6a28f.js → cli-yz3dzpxd.js} +13 -49
  22. package/build/cli.js +22 -22
  23. package/build/{fixes-k955kkwa.js → fixes-5f9xv4yx.js} +4 -4
  24. package/build/{index-bxkhv1j3.js → index-0qfckx3a.js} +10 -10
  25. package/build/{index-trxdmxky.js → index-b7e18f8m.js} +6 -6
  26. package/build/{index-qm48tkpp.js → index-d86fgcjm.js} +4 -4
  27. package/build/{index-ccqvcd3t.js → index-h5r11f3q.js} +2 -2
  28. package/build/{issues-tzcje3j5.js → issues-dy4rrtr2.js} +4 -4
  29. package/build/{logs-pt9dhayh.js → logs-d3sjx7vk.js} +4 -4
  30. package/build/pentest-6ctf263k.js +28 -0
  31. package/build/{pentests-3wpcyavk.js → pentests-vwekf0zm.js} +4 -4
  32. package/build/{projects-7gggm41w.js → projects-se9jgfb0.js} +4 -4
  33. package/build/{targetedPentest-vk1nwntf.js → targetedPentest-mhkts702.js} +8 -8
  34. package/build/{threatModel-s2saw6c4.js → threatModel-gdvgv7pc.js} +8 -8
  35. package/build/{uninstall-phw8hzsw.js → uninstall-11a98j87.js} +1 -1
  36. package/package.json +1 -1
  37. package/build/agent-9sgjvwwb.js +0 -17
  38. package/build/blackboxAgent-qqw2284x.js +0 -18
  39. package/build/pentest-s0g5dweb.js +0 -28
@@ -1,20 +1,20 @@
1
1
  import {
2
2
  WhiteboxAttackSurfaceResultSchema
3
- } from "./cli-z4rh1cet.js";
3
+ } from "./cli-ey40xb9a.js";
4
4
  import {
5
5
  OffensiveSecurityAgent
6
- } from "./cli-4gp6a28f.js";
7
- import"./cli-gb8kggxa.js";
6
+ } from "./cli-yz3dzpxd.js";
7
+ import"./cli-wqeja2k6.js";
8
8
  import"./cli-3y0dgy56.js";
9
9
  import {
10
10
  hasToolCall,
11
11
  tool
12
- } from "./cli-5c50fxb4.js";
12
+ } from "./cli-dfth2beg.js";
13
13
  import"./cli-r8cerdwk.js";
14
- import"./cli-ecbkqt53.js";
15
- import"./cli-hvy4gjyz.js";
16
- import"./cli-za8gbs0z.js";
17
- import"./cli-ty9an9a5.js";
14
+ import"./cli-qvq41y3z.js";
15
+ import"./cli-qcsv2e9h.js";
16
+ import"./cli-sgzbqavm.js";
17
+ import"./cli-r4jzb7aj.js";
18
18
  import"./cli-gpnb45ck.js";
19
19
  import"./cli-8rxa073f.js";
20
20
 
@@ -0,0 +1,17 @@
1
+ import {
2
+ CodeAgent
3
+ } from "./cli-awjwsbrz.js";
4
+ import"./cli-yz3dzpxd.js";
5
+ import"./cli-wqeja2k6.js";
6
+ import"./cli-3y0dgy56.js";
7
+ import"./cli-dfth2beg.js";
8
+ import"./cli-r8cerdwk.js";
9
+ import"./cli-qvq41y3z.js";
10
+ import"./cli-qcsv2e9h.js";
11
+ import"./cli-sgzbqavm.js";
12
+ import"./cli-r4jzb7aj.js";
13
+ import"./cli-gpnb45ck.js";
14
+ import"./cli-8rxa073f.js";
15
+ export {
16
+ CodeAgent
17
+ };
@@ -8,14 +8,14 @@ import {
8
8
  pollWorkOSToken,
9
9
  selectWorkspace,
10
10
  startDeviceFlow
11
- } from "./cli-ecbkqt53.js";
11
+ } from "./cli-qvq41y3z.js";
12
12
  import {
13
13
  config,
14
14
  getPensarApiUrl,
15
15
  getPensarConsoleUrl
16
- } from "./cli-hvy4gjyz.js";
17
- import"./cli-za8gbs0z.js";
18
- import"./cli-ty9an9a5.js";
16
+ } from "./cli-qcsv2e9h.js";
17
+ import"./cli-sgzbqavm.js";
18
+ import"./cli-r4jzb7aj.js";
19
19
  import {
20
20
  __require
21
21
  } from "./cli-8rxa073f.js";
@@ -3,17 +3,17 @@ import {
3
3
  } from "./cli-6gtnyaqf.js";
4
4
  import {
5
5
  OffensiveSecurityAgent
6
- } from "./cli-4gp6a28f.js";
7
- import"./cli-gb8kggxa.js";
6
+ } from "./cli-yz3dzpxd.js";
7
+ import"./cli-wqeja2k6.js";
8
8
  import"./cli-3y0dgy56.js";
9
9
  import {
10
10
  hasToolCall
11
- } from "./cli-5c50fxb4.js";
11
+ } from "./cli-dfth2beg.js";
12
12
  import"./cli-r8cerdwk.js";
13
- import"./cli-ecbkqt53.js";
14
- import"./cli-hvy4gjyz.js";
15
- import"./cli-za8gbs0z.js";
16
- import"./cli-ty9an9a5.js";
13
+ import"./cli-qvq41y3z.js";
14
+ import"./cli-qcsv2e9h.js";
15
+ import"./cli-sgzbqavm.js";
16
+ import"./cli-r4jzb7aj.js";
17
17
  import"./cli-gpnb45ck.js";
18
18
  import"./cli-8rxa073f.js";
19
19
 
@@ -0,0 +1,18 @@
1
+ import {
2
+ BlackboxAttackSurfaceAgent
3
+ } from "./cli-etrmgpa5.js";
4
+ import"./cli-6gtnyaqf.js";
5
+ import"./cli-yz3dzpxd.js";
6
+ import"./cli-wqeja2k6.js";
7
+ import"./cli-3y0dgy56.js";
8
+ import"./cli-dfth2beg.js";
9
+ import"./cli-r8cerdwk.js";
10
+ import"./cli-qvq41y3z.js";
11
+ import"./cli-qcsv2e9h.js";
12
+ import"./cli-sgzbqavm.js";
13
+ import"./cli-r4jzb7aj.js";
14
+ import"./cli-gpnb45ck.js";
15
+ import"./cli-8rxa073f.js";
16
+ export {
17
+ BlackboxAttackSurfaceAgent
18
+ };
@@ -1,22 +1,22 @@
1
1
  import {
2
2
  runPentestWorkflow
3
- } from "./cli-sck1zt03.js";
4
- import"./cli-j7e9az3s.js";
5
- import"./cli-jdq0xp7y.js";
6
- import"./cli-cm6ttk19.js";
3
+ } from "./cli-mxj8tz9b.js";
4
+ import"./cli-abkgxjcc.js";
5
+ import"./cli-j4qm285k.js";
6
+ import"./cli-etrmgpa5.js";
7
7
  import"./cli-fw5r7pfj.js";
8
- import"./cli-hts5dy98.js";
8
+ import"./cli-awjwsbrz.js";
9
9
  import"./cli-6gtnyaqf.js";
10
- import"./cli-z4rh1cet.js";
11
- import"./cli-4gp6a28f.js";
12
- import"./cli-gb8kggxa.js";
10
+ import"./cli-ey40xb9a.js";
11
+ import"./cli-yz3dzpxd.js";
12
+ import"./cli-wqeja2k6.js";
13
13
  import"./cli-3y0dgy56.js";
14
- import"./cli-5c50fxb4.js";
14
+ import"./cli-dfth2beg.js";
15
15
  import"./cli-r8cerdwk.js";
16
- import"./cli-ecbkqt53.js";
17
- import"./cli-hvy4gjyz.js";
18
- import"./cli-za8gbs0z.js";
19
- import"./cli-ty9an9a5.js";
16
+ import"./cli-qvq41y3z.js";
17
+ import"./cli-qcsv2e9h.js";
18
+ import"./cli-sgzbqavm.js";
19
+ import"./cli-r4jzb7aj.js";
20
20
  import"./cli-gpnb45ck.js";
21
21
  import"./cli-8rxa073f.js";
22
22
 
@@ -2,11 +2,11 @@ import {
2
2
  CweEntrySchema,
3
3
  ValidatedCweEntrySchema,
4
4
  hasCanonicalName
5
- } from "./cli-4gp6a28f.js";
5
+ } from "./cli-yz3dzpxd.js";
6
6
  import {
7
7
  exports_external,
8
8
  init_zod
9
- } from "./cli-5c50fxb4.js";
9
+ } from "./cli-dfth2beg.js";
10
10
 
11
11
  // src/core/report/schemas.ts
12
12
  init_zod();
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  OffensiveSecurityAgent
3
- } from "./cli-4gp6a28f.js";
3
+ } from "./cli-yz3dzpxd.js";
4
4
  import {
5
5
  stepCountIs
6
- } from "./cli-5c50fxb4.js";
6
+ } from "./cli-dfth2beg.js";
7
7
 
8
8
  // src/core/agents/specialized/codeAgent/prompts.ts
9
9
  var CODE_AGENT_SYSTEM_PROMPT = `You are an expert coding agent with direct filesystem access. You will be given a specific objective — focus exclusively on completing it.
@@ -4,12 +4,12 @@ import {
4
4
  } from "./cli-r8cerdwk.js";
5
5
  import {
6
6
  signGatewayRequest
7
- } from "./cli-ecbkqt53.js";
7
+ } from "./cli-qvq41y3z.js";
8
8
  import {
9
9
  config,
10
10
  ensureValidToken,
11
11
  getPensarGatewayUrl
12
- } from "./cli-hvy4gjyz.js";
12
+ } from "./cli-qcsv2e9h.js";
13
13
  import {
14
14
  require_auth_errors,
15
15
  require_token_error,
@@ -2,7 +2,7 @@ import {
2
2
  config,
3
3
  ensureValidToken,
4
4
  getPensarApiUrl
5
- } from "./cli-hvy4gjyz.js";
5
+ } from "./cli-qcsv2e9h.js";
6
6
 
7
7
  // src/core/api/issues.ts
8
8
  async function getAuthHeaders() {
@@ -3,11 +3,11 @@ import {
3
3
  } from "./cli-6gtnyaqf.js";
4
4
  import {
5
5
  OffensiveSecurityAgent
6
- } from "./cli-4gp6a28f.js";
6
+ } from "./cli-yz3dzpxd.js";
7
7
  import {
8
8
  hasToolCall,
9
9
  stepCountIs
10
- } from "./cli-5c50fxb4.js";
10
+ } from "./cli-dfth2beg.js";
11
11
 
12
12
  // src/core/agents/specialized/attackSurface/blackboxAgent.ts
13
13
  import { join } from "path";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  exports_external,
3
3
  init_zod
4
- } from "./cli-5c50fxb4.js";
4
+ } from "./cli-dfth2beg.js";
5
5
 
6
6
  // src/core/agents/specialized/whiteboxAttackSurface/types.ts
7
7
  init_zod();
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  OffensiveSecurityAgent,
3
3
  readPlan
4
- } from "./cli-4gp6a28f.js";
4
+ } from "./cli-yz3dzpxd.js";
5
5
  import {
6
6
  exports_external,
7
7
  init_zod
8
- } from "./cli-5c50fxb4.js";
8
+ } from "./cli-dfth2beg.js";
9
9
 
10
10
  // src/core/agents/specialized/pentest/agent.ts
11
11
  import { existsSync, readdirSync, readFileSync } from "fs";
@@ -14,33 +14,33 @@ import {
14
14
  updateManifestEntryStatus,
15
15
  writeAgentManifest,
16
16
  writeExecutionMetrics
17
- } from "./cli-j7e9az3s.js";
17
+ } from "./cli-abkgxjcc.js";
18
18
  import {
19
19
  TargetedPentestAgent,
20
20
  buildPentestSystemPrompt
21
- } from "./cli-jdq0xp7y.js";
21
+ } from "./cli-j4qm285k.js";
22
22
  import {
23
23
  BlackboxAttackSurfaceAgent
24
- } from "./cli-cm6ttk19.js";
24
+ } from "./cli-etrmgpa5.js";
25
25
  import {
26
26
  createThreatModelPrompt
27
27
  } from "./cli-fw5r7pfj.js";
28
28
  import {
29
29
  CodeAgent
30
- } from "./cli-hts5dy98.js";
30
+ } from "./cli-awjwsbrz.js";
31
31
  import {
32
32
  EndpointSchema
33
- } from "./cli-z4rh1cet.js";
33
+ } from "./cli-ey40xb9a.js";
34
34
  import {
35
35
  FindingsRegistry,
36
36
  OffensiveSecurityAgent,
37
37
  PLAN_MODE_TOOL_NAMES
38
- } from "./cli-4gp6a28f.js";
38
+ } from "./cli-yz3dzpxd.js";
39
39
  import {
40
40
  exports_external,
41
41
  hasToolCall,
42
42
  init_zod
43
- } from "./cli-5c50fxb4.js";
43
+ } from "./cli-dfth2beg.js";
44
44
 
45
45
  // src/core/workflows/pentest.ts
46
46
  import { existsSync as existsSync3, readdirSync as readdirSync2, readFileSync as readFileSync3, writeFileSync as writeFileSync2 } from "fs";
@@ -2,7 +2,7 @@ import {
2
2
  get,
3
3
  init,
4
4
  update
5
- } from "./cli-za8gbs0z.js";
5
+ } from "./cli-sgzbqavm.js";
6
6
 
7
7
  // src/core/api/constants.ts
8
8
  var PENSAR_API_BASE_URL = "https://api.pensar.dev";
@@ -3,7 +3,7 @@ import {
3
3
  ensureValidToken,
4
4
  getPensarApiUrl,
5
5
  getPensarGatewayUrl
6
- } from "./cli-hvy4gjyz.js";
6
+ } from "./cli-qcsv2e9h.js";
7
7
 
8
8
  // src/core/auth/signing.ts
9
9
  import { createHmac, createHash, randomUUID } from "crypto";
@@ -3,7 +3,7 @@ import { spawnSync } from "child_process";
3
3
  // package.json
4
4
  var package_default = {
5
5
  name: "@pensar/apex",
6
- version: "1.0.0-canary.b3862641",
6
+ version: "1.0.0",
7
7
  description: "AI-powered penetration testing CLI tool with terminal UI",
8
8
  module: "src/tui/index.tsx",
9
9
  main: "build/cli.js",
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getCurrentVersion
3
- } from "./cli-ty9an9a5.js";
3
+ } from "./cli-r4jzb7aj.js";
4
4
 
5
5
  // src/core/config/config.ts
6
6
  import os from "os";
@@ -3,7 +3,7 @@ import {
3
3
  generateObjectResponse,
4
4
  init_zod,
5
5
  zod_default
6
- } from "./cli-5c50fxb4.js";
6
+ } from "./cli-dfth2beg.js";
7
7
  import {
8
8
  __callDispose,
9
9
  __using
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  OffensiveSecurityAgent
3
- } from "./cli-4gp6a28f.js";
3
+ } from "./cli-yz3dzpxd.js";
4
4
  import {
5
5
  __commonJS,
6
6
  __require
@@ -13,7 +13,7 @@ import {
13
13
  update,
14
14
  write,
15
15
  writeRaw
16
- } from "./cli-gb8kggxa.js";
16
+ } from "./cli-wqeja2k6.js";
17
17
  import {
18
18
  parseTargetUrl
19
19
  } from "./cli-3y0dgy56.js";
@@ -49,18 +49,18 @@ import {
49
49
  union,
50
50
  unknown,
51
51
  zod_default
52
- } from "./cli-5c50fxb4.js";
52
+ } from "./cli-dfth2beg.js";
53
53
  import {
54
54
  signGatewayRequest
55
- } from "./cli-ecbkqt53.js";
55
+ } from "./cli-qvq41y3z.js";
56
56
  import {
57
57
  config,
58
58
  ensureValidToken,
59
59
  getPensarApiUrl
60
- } from "./cli-hvy4gjyz.js";
60
+ } from "./cli-qcsv2e9h.js";
61
61
  import {
62
62
  getCurrentVersion
63
- } from "./cli-ty9an9a5.js";
63
+ } from "./cli-r4jzb7aj.js";
64
64
  import {
65
65
  __commonJS,
66
66
  __require,
@@ -99788,7 +99788,7 @@ Your output is consumed by an automated pentest agent. The clarity and specifici
99788
99788
  async function generateThreatModelForEndpoint(ctx, input) {
99789
99789
  if (!ctx.model)
99790
99790
  return null;
99791
- const { CodeAgent } = await import("./agent-9sgjvwwb.js");
99791
+ const { CodeAgent } = await import("./agent-e3r90w2x.js");
99792
99792
  const subagentId = `threat-model-${sanitize(input.appName)}-${sanitize(input.routePath)}`;
99793
99793
  ctx.eventBus?.emit("subagent-spawn", {
99794
99794
  subagentId,
@@ -100476,7 +100476,7 @@ When to use delegate_to_auth_subagent vs authenticate_session:
100476
100476
  if (credentials) {
100477
100477
  ctx.session.credentialManager.addFromAuthCredentials(credentials);
100478
100478
  }
100479
- const { runAuthenticationAgent } = await import("./authentication-3mjt9w48.js");
100479
+ const { runAuthenticationAgent } = await import("./authentication-3m2qm7ym.js");
100480
100480
  const localBus = new AgentEventBus;
100481
100481
  AgentEventBus.attachChild(localBus, ctx.eventBus, subagentId);
100482
100482
  const result = await runAuthenticationAgent({
@@ -101389,7 +101389,7 @@ should be passed directly to spawn_pentest_swarm for deep testing.`,
101389
101389
  });
101390
101390
  if (cwd) {
101391
101391
  try {
101392
- const { WhiteboxAttackSurfaceAgent } = await import("./agent-j552w2we.js");
101392
+ const { WhiteboxAttackSurfaceAgent } = await import("./agent-95ysppvr.js");
101393
101393
  const localBus = new AgentEventBus;
101394
101394
  AgentEventBus.attachChild(localBus, ctx.eventBus, subagentId);
101395
101395
  const agent = new WhiteboxAttackSurfaceAgent({
@@ -101438,7 +101438,7 @@ should be passed directly to spawn_pentest_swarm for deep testing.`,
101438
101438
  }
101439
101439
  }
101440
101440
  try {
101441
- const { BlackboxAttackSurfaceAgent } = await import("./blackboxAgent-qqw2284x.js");
101441
+ const { BlackboxAttackSurfaceAgent } = await import("./blackboxAgent-4t68wah3.js");
101442
101442
  const localBus = new AgentEventBus;
101443
101443
  AgentEventBus.attachChild(localBus, ctx.eventBus, subagentId);
101444
101444
  const agent = new BlackboxAttackSurfaceAgent({
@@ -101514,7 +101514,7 @@ Pass every target you want tested — the swarm handles concurrency automaticall
101514
101514
  toolCallDescription: exports_external.string().describe("A concise, human-readable description of what this tool call is doing")
101515
101515
  }),
101516
101516
  execute: async ({ targets }) => {
101517
- const { runPentestSwarm, DEFAULT_CONCURRENCY } = await import("./pentest-s0g5dweb.js");
101517
+ const { runPentestSwarm, DEFAULT_CONCURRENCY } = await import("./pentest-6ctf263k.js");
101518
101518
  if (!ctx.model) {
101519
101519
  return {
101520
101520
  success: false,
@@ -101642,7 +101642,7 @@ Returns an array of results with the text output from each agent.`,
101642
101642
  });
101643
101643
  }
101644
101644
  async function runSingleCodingAgent(ctx, codebasePath, objective, agentIndex, name) {
101645
- const { CodeAgent } = await import("./agent-9sgjvwwb.js");
101645
+ const { CodeAgent } = await import("./agent-e3r90w2x.js");
101646
101646
  const subagentId = `coding-agent-${agentIndex}`;
101647
101647
  ctx.eventBus?.emit("subagent-spawn", {
101648
101648
  subagentId,
@@ -101703,7 +101703,7 @@ Omit \`cwd\` for blackbox mode (live target probing only).`,
101703
101703
  toolCallDescription: exports_external.string().describe("A concise, human-readable description of what this tool call is doing")
101704
101704
  }),
101705
101705
  execute: async ({ target, cwd }) => {
101706
- const { runPentestWorkflow: workflow } = await import("./pentest-s0g5dweb.js");
101706
+ const { runPentestWorkflow: workflow } = await import("./pentest-6ctf263k.js");
101707
101707
  if (!ctx.model) {
101708
101708
  return {
101709
101709
  success: false,
@@ -106511,7 +106511,6 @@ var OperatorSettingsObject = exports_external.object({
106511
106511
  // src/core/operator/approvalGate.ts
106512
106512
  import { EventEmitter as EventEmitter3 } from "events";
106513
106513
  import { randomBytes as randomBytes2 } from "crypto";
106514
- var DEFAULT_DECISION_TIMEOUT_MS = 15 * 60 * 1000;
106515
106514
 
106516
106515
  class ApprovalGate extends EventEmitter3 {
106517
106516
  config;
@@ -106519,10 +106518,7 @@ class ApprovalGate extends EventEmitter3 {
106519
106518
  actionHistory = [];
106520
106519
  constructor(config2) {
106521
106520
  super();
106522
- this.config = {
106523
- decisionTimeoutMs: DEFAULT_DECISION_TIMEOUT_MS,
106524
- ...config2
106525
- };
106521
+ this.config = config2;
106526
106522
  }
106527
106523
  updateConfig(config2) {
106528
106524
  this.config = { ...this.config, ...config2 };
@@ -106557,37 +106553,14 @@ class ApprovalGate extends EventEmitter3 {
106557
106553
  return new Promise((resolve5, reject) => {
106558
106554
  const deferred = { approval, resolve: resolve5, reject };
106559
106555
  this.pendingApprovals.set(approval.id, deferred);
106560
- const timeoutMs = this.config.decisionTimeoutMs;
106561
- if (timeoutMs !== undefined && timeoutMs > 0) {
106562
- deferred.timeoutHandle = setTimeout(() => {
106563
- this.timeoutApproval(approval.id, timeoutMs);
106564
- }, timeoutMs);
106565
- }
106566
106556
  this.emitEvent({ type: "approval-needed", approval });
106567
106557
  });
106568
106558
  }
106569
- timeoutApproval(approvalId, timeoutMs) {
106570
- const deferred = this.pendingApprovals.get(approvalId);
106571
- if (!deferred)
106572
- return;
106573
- this.pendingApprovals.delete(approvalId);
106574
- const entry = this.recordAction(deferred.approval.toolName, deferred.approval.toolCallId, "denied");
106575
- entry.resultSummary = `decision_timeout:${timeoutMs}ms`;
106576
- this.emitEvent({
106577
- type: "approval-resolved",
106578
- id: approvalId,
106579
- decision: "denied"
106580
- });
106581
- this.emitEvent({ type: "action-completed", entry });
106582
- deferred.reject(new ApprovalTimeoutError(`Operator decision timeout after ${timeoutMs}ms for ${deferred.approval.toolName} — default-safe deny`));
106583
- }
106584
106559
  approve(approvalId) {
106585
106560
  const deferred = this.pendingApprovals.get(approvalId);
106586
106561
  if (!deferred) {
106587
106562
  throw new Error(`No pending approval with id: ${approvalId}`);
106588
106563
  }
106589
- if (deferred.timeoutHandle)
106590
- clearTimeout(deferred.timeoutHandle);
106591
106564
  this.pendingApprovals.delete(approvalId);
106592
106565
  const entry = this.recordAction(deferred.approval.toolName, deferred.approval.toolCallId, "approved");
106593
106566
  this.emitEvent({
@@ -106602,8 +106575,6 @@ class ApprovalGate extends EventEmitter3 {
106602
106575
  const deferred = this.pendingApprovals.get(approvalId);
106603
106576
  if (!deferred)
106604
106577
  return;
106605
- if (deferred.timeoutHandle)
106606
- clearTimeout(deferred.timeoutHandle);
106607
106578
  this.pendingApprovals.delete(approvalId);
106608
106579
  const entry = this.recordAction(deferred.approval.toolName, deferred.approval.toolCallId, "denied");
106609
106580
  this.emitEvent({
@@ -106652,13 +106623,6 @@ class ApprovalDeniedError extends Error {
106652
106623
  this.name = "ApprovalDeniedError";
106653
106624
  }
106654
106625
  }
106655
-
106656
- class ApprovalTimeoutError extends ApprovalDeniedError {
106657
- constructor(message) {
106658
- super(message);
106659
- this.name = "ApprovalTimeoutError";
106660
- }
106661
- }
106662
106626
  // src/core/session/index.ts
106663
106627
  init_zod();
106664
106628
  import path from "path";
package/build/cli.js CHANGED
@@ -6,16 +6,16 @@ import {
6
6
  import"./cli-3y0dgy56.js";
7
7
  import {
8
8
  init_toolset
9
- } from "./cli-5c50fxb4.js";
9
+ } from "./cli-dfth2beg.js";
10
10
  import {
11
11
  init_models
12
12
  } from "./cli-r8cerdwk.js";
13
- import"./cli-ecbkqt53.js";
14
- import"./cli-hvy4gjyz.js";
15
- import"./cli-za8gbs0z.js";
13
+ import"./cli-qvq41y3z.js";
14
+ import"./cli-qcsv2e9h.js";
15
+ import"./cli-sgzbqavm.js";
16
16
  import {
17
17
  package_default
18
- } from "./cli-ty9an9a5.js";
18
+ } from "./cli-r4jzb7aj.js";
19
19
  import"./cli-gpnb45ck.js";
20
20
  import {
21
21
  __require,
@@ -24,7 +24,7 @@ import {
24
24
  // package.json
25
25
  var package_default2 = {
26
26
  name: "@pensar/apex",
27
- version: "1.0.0-canary.b3862641",
27
+ version: "1.0.0",
28
28
  description: "AI-powered penetration testing CLI tool with terminal UI",
29
29
  module: "src/tui/index.tsx",
30
30
  main: "build/cli.js",
@@ -528,9 +528,9 @@ Global options:
528
528
  async function runPentest() {
529
529
  const { config: config2 } = await import("./main-3d7dfdvs.js").then((m)=>__toESM(m.default,1));
530
530
  config2();
531
- const { runPentestAgent } = await import("./blackboxPentest-r9902z4d.js");
532
- const { sessions } = await import("./index-trxdmxky.js");
533
- const { config: appConfig } = await import("./index-ccqvcd3t.js");
531
+ const { runPentestAgent } = await import("./blackboxPentest-kn3y84jf.js");
532
+ const { sessions } = await import("./index-b7e18f8m.js");
533
+ const { config: appConfig } = await import("./index-h5r11f3q.js");
534
534
  const { getDefaultModelForConfig } = await import("./utils-zvr7bcyw.js");
535
535
  const target = getArgRequired("--target");
536
536
  const cwd = getArg("--cwd");
@@ -596,9 +596,9 @@ Report: ${reportPath}` : ""}`);
596
596
  async function runTargetedPentest() {
597
597
  const { config: config2 } = await import("./main-3d7dfdvs.js").then((m)=>__toESM(m.default,1));
598
598
  config2();
599
- const { runTargetedPentestAgent } = await import("./targetedPentest-vk1nwntf.js");
600
- const { sessions } = await import("./index-trxdmxky.js");
601
- const { config: appConfig } = await import("./index-ccqvcd3t.js");
599
+ const { runTargetedPentestAgent } = await import("./targetedPentest-mhkts702.js");
600
+ const { sessions } = await import("./index-b7e18f8m.js");
601
+ const { config: appConfig } = await import("./index-h5r11f3q.js");
602
602
  const { getDefaultModelForConfig } = await import("./utils-zvr7bcyw.js");
603
603
  const target = getArgRequired("--target");
604
604
  const objectives = getAllArgs("--objective");
@@ -648,8 +648,8 @@ POCs: ${pocsPath}`);
648
648
  async function runThreatModel() {
649
649
  const { config: config2 } = await import("./main-3d7dfdvs.js").then((m)=>__toESM(m.default,1));
650
650
  config2();
651
- const { runThreatModelWorkflow } = await import("./threatModel-s2saw6c4.js");
652
- const { config: appConfig } = await import("./index-ccqvcd3t.js");
651
+ const { runThreatModelWorkflow } = await import("./threatModel-gdvgv7pc.js");
652
+ const { config: appConfig } = await import("./index-h5r11f3q.js");
653
653
  const { getDefaultModelForConfig } = await import("./utils-zvr7bcyw.js");
654
654
  const path = await import("path");
655
655
  const pensarConfig = await appConfig.get();
@@ -705,25 +705,25 @@ if (command === "version" || command === "--version" || command === "-v") {
705
705
  await runTargetedPentest();
706
706
  } else if (command === "login" || command === "auth") {
707
707
  process.argv = [process.argv[0], process.argv[1], ...args.slice(1)];
708
- await import("./auth-rva0gxaw.js");
708
+ await import("./auth-h84w23gx.js");
709
709
  } else if (command === "uninstall") {
710
710
  process.argv = [process.argv[0], process.argv[1], ...args.slice(1)];
711
- await import("./uninstall-phw8hzsw.js");
711
+ await import("./uninstall-11a98j87.js");
712
712
  } else if (command === "projects") {
713
713
  process.argv = [process.argv[0], process.argv[1], ...args.slice(1)];
714
- await import("./projects-7gggm41w.js");
714
+ await import("./projects-se9jgfb0.js");
715
715
  } else if (command === "pentests") {
716
716
  process.argv = [process.argv[0], process.argv[1], ...args.slice(1)];
717
- await import("./pentests-3wpcyavk.js");
717
+ await import("./pentests-vwekf0zm.js");
718
718
  } else if (command === "issues") {
719
719
  process.argv = [process.argv[0], process.argv[1], ...args.slice(1)];
720
- await import("./issues-tzcje3j5.js");
720
+ await import("./issues-dy4rrtr2.js");
721
721
  } else if (command === "fixes") {
722
722
  process.argv = [process.argv[0], process.argv[1], ...args.slice(1)];
723
- await import("./fixes-k955kkwa.js");
723
+ await import("./fixes-5f9xv4yx.js");
724
724
  } else if (command === "logs") {
725
725
  process.argv = [process.argv[0], process.argv[1], ...args.slice(1)];
726
- await import("./logs-pt9dhayh.js");
726
+ await import("./logs-d3sjx7vk.js");
727
727
  } else if (command === "threat-model") {
728
728
  await runThreatModel();
729
729
  } else if (command === "doctor") {
@@ -735,7 +735,7 @@ if (command === "version" || command === "--version" || command === "-v") {
735
735
  console.error("All other commands work with Node \u2014 run 'pensar --help'.");
736
736
  process.exit(1);
737
737
  }
738
- await import("./index-bxkhv1j3.js");
738
+ await import("./index-0qfckx3a.js");
739
739
  } else {
740
740
  console.error(`Error: Unknown command '${command}'`);
741
741
  console.error();
@@ -2,10 +2,10 @@
2
2
  import {
3
3
  getFix,
4
4
  listFixes
5
- } from "./cli-cbm1rq1d.js";
6
- import"./cli-hvy4gjyz.js";
7
- import"./cli-za8gbs0z.js";
8
- import"./cli-ty9an9a5.js";
5
+ } from "./cli-dsybj1jp.js";
6
+ import"./cli-qcsv2e9h.js";
7
+ import"./cli-sgzbqavm.js";
8
+ import"./cli-r4jzb7aj.js";
9
9
  import"./cli-8rxa073f.js";
10
10
 
11
11
  // src/cli/fixes.ts
@@ -7,14 +7,14 @@ import {
7
7
  buildThreatModelPrompt,
8
8
  createSkillsRegistry,
9
9
  runOffensiveSecurityAgent
10
- } from "./cli-e8w98v76.js";
10
+ } from "./cli-x5t1x7ts.js";
11
11
  import {
12
12
  REPORT_FILENAME_MD,
13
13
  convertModelMessagesToUI,
14
14
  loadSubagents,
15
15
  readExecutionMetrics,
16
16
  writeExecutionMetrics
17
- } from "./cli-j7e9az3s.js";
17
+ } from "./cli-abkgxjcc.js";
18
18
  import {
19
19
  createThreatModelPrompt
20
20
  } from "./cli-fw5r7pfj.js";
@@ -38,11 +38,11 @@ import {
38
38
  planFilePath,
39
39
  readPlan,
40
40
  sessions
41
- } from "./cli-4gp6a28f.js";
41
+ } from "./cli-yz3dzpxd.js";
42
42
  import {
43
43
  read,
44
44
  write
45
- } from "./cli-gb8kggxa.js";
45
+ } from "./cli-wqeja2k6.js";
46
46
  import {
47
47
  getAutoPopulatedHosts,
48
48
  getAutoPopulatedPorts,
@@ -54,7 +54,7 @@ import {
54
54
  init_toolset,
55
55
  modelSupportsThinking,
56
56
  stepCountIs
57
- } from "./cli-5c50fxb4.js";
57
+ } from "./cli-dfth2beg.js";
58
58
  import {
59
59
  AVAILABLE_MODELS,
60
60
  init_models
@@ -69,18 +69,18 @@ import {
69
69
  selectWorkspace,
70
70
  startDeviceFlow,
71
71
  validateGateway
72
- } from "./cli-ecbkqt53.js";
72
+ } from "./cli-qvq41y3z.js";
73
73
  import {
74
74
  config,
75
75
  getPensarApiUrl,
76
76
  getPensarConsoleUrl
77
- } from "./cli-hvy4gjyz.js";
77
+ } from "./cli-qcsv2e9h.js";
78
78
  import {
79
79
  update
80
- } from "./cli-za8gbs0z.js";
80
+ } from "./cli-sgzbqavm.js";
81
81
  import {
82
82
  checkForUpdate
83
- } from "./cli-ty9an9a5.js";
83
+ } from "./cli-r4jzb7aj.js";
84
84
  import"./cli-gpnb45ck.js";
85
85
  import {
86
86
  __commonJS,
@@ -67879,7 +67879,7 @@ function AppContent({
67879
67879
  toast(`Update available: v${currentVersion} → v${latestVersion}. Run: pensar upgrade`, "warn", 8000);
67880
67880
  });
67881
67881
  const checkAuthToken = async () => {
67882
- const { isTokenExpired, isConnected: isConnected2 } = await import("./index-qm48tkpp.js");
67882
+ const { isTokenExpired, isConnected: isConnected2 } = await import("./index-d86fgcjm.js");
67883
67883
  if (isConnected2(config2.data) && config2.data.accessToken && isTokenExpired(config2.data.accessToken, 60) && !config2.data.refreshToken && !config2.data.pensarAPIKey) {
67884
67884
  toast("Your Pensar Console session has expired. Run /login to refresh.", "warn", 8000);
67885
67885
  }
@@ -13,7 +13,7 @@ import {
13
13
  update,
14
14
  write,
15
15
  writeRaw
16
- } from "./cli-gb8kggxa.js";
16
+ } from "./cli-wqeja2k6.js";
17
17
  import {
18
18
  ToolsetStateSchema,
19
19
  exports_toolset,
@@ -21,14 +21,14 @@ import {
21
21
  init_zod,
22
22
  toggleTool,
23
23
  zod_default
24
- } from "./cli-5c50fxb4.js";
24
+ } from "./cli-dfth2beg.js";
25
25
  import"./cli-r8cerdwk.js";
26
- import"./cli-ecbkqt53.js";
27
- import"./cli-hvy4gjyz.js";
28
- import"./cli-za8gbs0z.js";
26
+ import"./cli-qvq41y3z.js";
27
+ import"./cli-qcsv2e9h.js";
28
+ import"./cli-sgzbqavm.js";
29
29
  import {
30
30
  getCurrentVersion
31
- } from "./cli-ty9an9a5.js";
31
+ } from "./cli-r4jzb7aj.js";
32
32
  import"./cli-gpnb45ck.js";
33
33
  import {
34
34
  __require,
@@ -9,15 +9,15 @@ import {
9
9
  signGatewayRequest,
10
10
  startDeviceFlow,
11
11
  validateGateway
12
- } from "./cli-ecbkqt53.js";
12
+ } from "./cli-qvq41y3z.js";
13
13
  import {
14
14
  ensureValidToken,
15
15
  fetchWorkOSClientId,
16
16
  isTokenExpired,
17
17
  refreshAccessToken
18
- } from "./cli-hvy4gjyz.js";
19
- import"./cli-za8gbs0z.js";
20
- import"./cli-ty9an9a5.js";
18
+ } from "./cli-qcsv2e9h.js";
19
+ import"./cli-sgzbqavm.js";
20
+ import"./cli-r4jzb7aj.js";
21
21
  import"./cli-8rxa073f.js";
22
22
  export {
23
23
  validateGateway,
@@ -2,8 +2,8 @@ import {
2
2
  get,
3
3
  init,
4
4
  update
5
- } from "./cli-za8gbs0z.js";
6
- import"./cli-ty9an9a5.js";
5
+ } from "./cli-sgzbqavm.js";
6
+ import"./cli-r4jzb7aj.js";
7
7
  import"./cli-8rxa073f.js";
8
8
 
9
9
  // src/core/config/index.ts
@@ -3,10 +3,10 @@ import {
3
3
  getIssue,
4
4
  listIssues,
5
5
  updateIssue
6
- } from "./cli-cbm1rq1d.js";
7
- import"./cli-hvy4gjyz.js";
8
- import"./cli-za8gbs0z.js";
9
- import"./cli-ty9an9a5.js";
6
+ } from "./cli-dsybj1jp.js";
7
+ import"./cli-qcsv2e9h.js";
8
+ import"./cli-sgzbqavm.js";
9
+ import"./cli-r4jzb7aj.js";
10
10
  import"./cli-8rxa073f.js";
11
11
 
12
12
  // src/cli/issues.ts
@@ -2,10 +2,10 @@
2
2
  import {
3
3
  listAgentLogs,
4
4
  searchAgentLogs
5
- } from "./cli-cbm1rq1d.js";
6
- import"./cli-hvy4gjyz.js";
7
- import"./cli-za8gbs0z.js";
8
- import"./cli-ty9an9a5.js";
5
+ } from "./cli-dsybj1jp.js";
6
+ import"./cli-qcsv2e9h.js";
7
+ import"./cli-sgzbqavm.js";
8
+ import"./cli-r4jzb7aj.js";
9
9
  import"./cli-8rxa073f.js";
10
10
 
11
11
  // src/cli/logs.ts
@@ -0,0 +1,28 @@
1
+ import {
2
+ DEFAULT_CONCURRENCY,
3
+ runPentestSwarm,
4
+ runPentestWorkflow
5
+ } from "./cli-mxj8tz9b.js";
6
+ import"./cli-abkgxjcc.js";
7
+ import"./cli-j4qm285k.js";
8
+ import"./cli-etrmgpa5.js";
9
+ import"./cli-fw5r7pfj.js";
10
+ import"./cli-awjwsbrz.js";
11
+ import"./cli-6gtnyaqf.js";
12
+ import"./cli-ey40xb9a.js";
13
+ import"./cli-yz3dzpxd.js";
14
+ import"./cli-wqeja2k6.js";
15
+ import"./cli-3y0dgy56.js";
16
+ import"./cli-dfth2beg.js";
17
+ import"./cli-r8cerdwk.js";
18
+ import"./cli-qvq41y3z.js";
19
+ import"./cli-qcsv2e9h.js";
20
+ import"./cli-sgzbqavm.js";
21
+ import"./cli-r4jzb7aj.js";
22
+ import"./cli-gpnb45ck.js";
23
+ import"./cli-8rxa073f.js";
24
+ export {
25
+ runPentestWorkflow,
26
+ runPentestSwarm,
27
+ DEFAULT_CONCURRENCY
28
+ };
@@ -3,10 +3,10 @@ import {
3
3
  dispatchPentest,
4
4
  getScan,
5
5
  listScans
6
- } from "./cli-cbm1rq1d.js";
7
- import"./cli-hvy4gjyz.js";
8
- import"./cli-za8gbs0z.js";
9
- import"./cli-ty9an9a5.js";
6
+ } from "./cli-dsybj1jp.js";
7
+ import"./cli-qcsv2e9h.js";
8
+ import"./cli-sgzbqavm.js";
9
+ import"./cli-r4jzb7aj.js";
10
10
  import"./cli-8rxa073f.js";
11
11
 
12
12
  // src/cli/pentests.ts
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env bun
2
2
  import {
3
3
  listProjects
4
- } from "./cli-cbm1rq1d.js";
5
- import"./cli-hvy4gjyz.js";
6
- import"./cli-za8gbs0z.js";
7
- import"./cli-ty9an9a5.js";
4
+ } from "./cli-dsybj1jp.js";
5
+ import"./cli-qcsv2e9h.js";
6
+ import"./cli-sgzbqavm.js";
7
+ import"./cli-r4jzb7aj.js";
8
8
  import"./cli-8rxa073f.js";
9
9
 
10
10
  // src/cli/projects.ts
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  TargetedPentestAgent
3
- } from "./cli-jdq0xp7y.js";
4
- import"./cli-4gp6a28f.js";
5
- import"./cli-gb8kggxa.js";
3
+ } from "./cli-j4qm285k.js";
4
+ import"./cli-yz3dzpxd.js";
5
+ import"./cli-wqeja2k6.js";
6
6
  import"./cli-3y0dgy56.js";
7
- import"./cli-5c50fxb4.js";
7
+ import"./cli-dfth2beg.js";
8
8
  import"./cli-r8cerdwk.js";
9
- import"./cli-ecbkqt53.js";
10
- import"./cli-hvy4gjyz.js";
11
- import"./cli-za8gbs0z.js";
12
- import"./cli-ty9an9a5.js";
9
+ import"./cli-qvq41y3z.js";
10
+ import"./cli-qcsv2e9h.js";
11
+ import"./cli-sgzbqavm.js";
12
+ import"./cli-r4jzb7aj.js";
13
13
  import"./cli-gpnb45ck.js";
14
14
  import"./cli-8rxa073f.js";
15
15
 
@@ -2,24 +2,24 @@ import {
2
2
  buildThreatModelPrompt,
3
3
  createSkillsRegistry,
4
4
  runOffensiveSecurityAgent
5
- } from "./cli-e8w98v76.js";
5
+ } from "./cli-x5t1x7ts.js";
6
6
  import {
7
7
  ALL_TOOL_NAMES,
8
8
  ASK_USER_QUESTIONS_TOOL_NAME,
9
9
  SKILL_TOOL_NAMES,
10
10
  buildBaseSystemPrompt,
11
11
  sessions
12
- } from "./cli-4gp6a28f.js";
13
- import"./cli-gb8kggxa.js";
12
+ } from "./cli-yz3dzpxd.js";
13
+ import"./cli-wqeja2k6.js";
14
14
  import"./cli-3y0dgy56.js";
15
15
  import {
16
16
  stepCountIs
17
- } from "./cli-5c50fxb4.js";
17
+ } from "./cli-dfth2beg.js";
18
18
  import"./cli-r8cerdwk.js";
19
- import"./cli-ecbkqt53.js";
20
- import"./cli-hvy4gjyz.js";
21
- import"./cli-za8gbs0z.js";
22
- import"./cli-ty9an9a5.js";
19
+ import"./cli-qvq41y3z.js";
20
+ import"./cli-qcsv2e9h.js";
21
+ import"./cli-sgzbqavm.js";
22
+ import"./cli-r4jzb7aj.js";
23
23
  import"./cli-gpnb45ck.js";
24
24
  import"./cli-8rxa073f.js";
25
25
 
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env bun
2
2
  import {
3
3
  detectInstallMethod
4
- } from "./cli-ty9an9a5.js";
4
+ } from "./cli-r4jzb7aj.js";
5
5
  import {
6
6
  __require
7
7
  } from "./cli-8rxa073f.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pensar/apex",
3
- "version": "1.0.0-canary.b3862641",
3
+ "version": "1.0.0",
4
4
  "description": "AI-powered penetration testing CLI tool with terminal UI",
5
5
  "module": "src/tui/index.tsx",
6
6
  "main": "build/cli.js",
@@ -1,17 +0,0 @@
1
- import {
2
- CodeAgent
3
- } from "./cli-hts5dy98.js";
4
- import"./cli-4gp6a28f.js";
5
- import"./cli-gb8kggxa.js";
6
- import"./cli-3y0dgy56.js";
7
- import"./cli-5c50fxb4.js";
8
- import"./cli-r8cerdwk.js";
9
- import"./cli-ecbkqt53.js";
10
- import"./cli-hvy4gjyz.js";
11
- import"./cli-za8gbs0z.js";
12
- import"./cli-ty9an9a5.js";
13
- import"./cli-gpnb45ck.js";
14
- import"./cli-8rxa073f.js";
15
- export {
16
- CodeAgent
17
- };
@@ -1,18 +0,0 @@
1
- import {
2
- BlackboxAttackSurfaceAgent
3
- } from "./cli-cm6ttk19.js";
4
- import"./cli-6gtnyaqf.js";
5
- import"./cli-4gp6a28f.js";
6
- import"./cli-gb8kggxa.js";
7
- import"./cli-3y0dgy56.js";
8
- import"./cli-5c50fxb4.js";
9
- import"./cli-r8cerdwk.js";
10
- import"./cli-ecbkqt53.js";
11
- import"./cli-hvy4gjyz.js";
12
- import"./cli-za8gbs0z.js";
13
- import"./cli-ty9an9a5.js";
14
- import"./cli-gpnb45ck.js";
15
- import"./cli-8rxa073f.js";
16
- export {
17
- BlackboxAttackSurfaceAgent
18
- };
@@ -1,28 +0,0 @@
1
- import {
2
- DEFAULT_CONCURRENCY,
3
- runPentestSwarm,
4
- runPentestWorkflow
5
- } from "./cli-sck1zt03.js";
6
- import"./cli-j7e9az3s.js";
7
- import"./cli-jdq0xp7y.js";
8
- import"./cli-cm6ttk19.js";
9
- import"./cli-fw5r7pfj.js";
10
- import"./cli-hts5dy98.js";
11
- import"./cli-6gtnyaqf.js";
12
- import"./cli-z4rh1cet.js";
13
- import"./cli-4gp6a28f.js";
14
- import"./cli-gb8kggxa.js";
15
- import"./cli-3y0dgy56.js";
16
- import"./cli-5c50fxb4.js";
17
- import"./cli-r8cerdwk.js";
18
- import"./cli-ecbkqt53.js";
19
- import"./cli-hvy4gjyz.js";
20
- import"./cli-za8gbs0z.js";
21
- import"./cli-ty9an9a5.js";
22
- import"./cli-gpnb45ck.js";
23
- import"./cli-8rxa073f.js";
24
- export {
25
- runPentestWorkflow,
26
- runPentestSwarm,
27
- DEFAULT_CONCURRENCY
28
- };