@pensar/apex 0.0.113-canary.e01104f0 → 0.0.114-canary.28a10efa

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 (36) hide show
  1. package/README.md +3 -2
  2. package/build/{agent-ek9gh3ae.js → agent-tvfx07q6.js} +8 -8
  3. package/build/agent-y8ysvqeg.js +16 -0
  4. package/build/{auth-bs9a4180.js → auth-8emg998z.js} +4 -4
  5. package/build/{authentication-d1mjs6ez.js → authentication-s40c921z.js} +7 -7
  6. package/build/blackboxAgent-xt01ns0b.js +17 -0
  7. package/build/{blackboxPentest-ds6gmjj1.js → blackboxPentest-dzj8adnk.js} +12 -12
  8. package/build/{cli-mdm43fxw.js → cli-0xfq6e8r.js} +1 -1
  9. package/build/{cli-v0xwk0fh.js → cli-31v5wzk1.js} +1 -1
  10. package/build/{cli-ppsx314k.js → cli-4thpxq5q.js} +1 -1
  11. package/build/{cli-j9s2krw4.js → cli-65bp1912.js} +2 -2
  12. package/build/{cli-gs2474ec.js → cli-6967baew.js} +6 -6
  13. package/build/{cli-t30ekexm.js → cli-8n882axc.js} +2 -2
  14. package/build/{cli-tmnh3w7x.js → cli-gqy49b6s.js} +2 -2
  15. package/build/{cli-9x51bc66.js → cli-jzbdczka.js} +1 -1
  16. package/build/{cli-j7pkgdg0.js → cli-kjgm60cg.js} +1 -1
  17. package/build/{cli-pv90y7mr.js → cli-mynp9mm4.js} +10 -10
  18. package/build/{cli-t90adgwt.js → cli-x8806nck.js} +2 -2
  19. package/build/{cli-n7nkxh7s.js → cli-z0a48qhb.js} +1 -1
  20. package/build/{cli-kjrwahpt.js → cli-z19gths3.js} +1 -1
  21. package/build/cli.js +20 -20
  22. package/build/{fixes-450w8gzw.js → fixes-8tgqe03t.js} +4 -4
  23. package/build/{index-wepykpjm.js → index-5s63xrwe.js} +2 -2
  24. package/build/{index-d9ss9bw1.js → index-sse0bgp1.js} +6 -6
  25. package/build/{index-jx79cjz7.js → index-vp8hh8jn.js} +21 -23
  26. package/build/{issues-8b9rp58m.js → issues-ff820n76.js} +4 -4
  27. package/build/{logs-6kata0m1.js → logs-m6gck8s8.js} +4 -4
  28. package/build/pentest-as63y0ej.js +25 -0
  29. package/build/{pentests-yc4mznf0.js → pentests-v8za91se.js} +4 -4
  30. package/build/{projects-x2wbwev6.js → projects-cd8aa6g1.js} +4 -4
  31. package/build/{targetedPentest-rkz6f573.js → targetedPentest-m8mayqrk.js} +8 -8
  32. package/build/{uninstall-eps6r1sy.js → uninstall-qwf8es4w.js} +1 -1
  33. package/package.json +1 -1
  34. package/build/agent-c3nr8yd0.js +0 -16
  35. package/build/blackboxAgent-qptvwtaz.js +0 -17
  36. package/build/pentest-bhejyq2n.js +0 -25
package/README.md CHANGED
@@ -21,6 +21,7 @@ Want to run from the cloud or integrate it with your CI/CD? See <a href="https:/
21
21
  <!-- <p align="center">
22
22
  <img src="screenshot.png" alt="Pensar Apex Screenshot" width="800">
23
23
  </p> -->
24
+
24
25
  ## What is Apex?
25
26
 
26
27
  Apex is an autonomous penetration testing agent that runs directly in your terminal.
@@ -54,17 +55,18 @@ Start with `/pentest` to get coverage, then reopen the session in `/operator` to
54
55
  ## Use Cases
55
56
 
56
57
  ### Developers
58
+
57
59
  - Run `/pentest` before merging a PR — catch vulnerabilities as naturally as running tests
58
60
  - Get actionable findings with severity scores, evidence, and suggested fixes — no security background needed
59
61
  - Integrate into CI/CD via headless CLI commands or Pensar Console
60
62
 
61
63
  ### Security Engineers
64
+
62
65
  - Deploy agent-driven swarm testing across large attack surfaces
63
66
  - Use `/operator` mode for manual investigation, exploit chaining, and validation
64
67
  - Automate repetitive testing workflows with persistent memory that accumulates across engagements
65
68
  - Scale across teams and projects through Pensar Console
66
69
 
67
-
68
70
  ## Installation
69
71
 
70
72
  #### macOS / Linux (Quick Install)
@@ -92,7 +94,6 @@ npm install -g @pensar/apex
92
94
  irm https://www.pensarai.com/apex.ps1 | iex
93
95
  ```
94
96
 
95
-
96
97
  ## Usage
97
98
 
98
99
  Open the Apex TUI:
@@ -1,18 +1,18 @@
1
1
  import {
2
2
  WhiteboxAttackSurfaceResultSchema
3
- } from "./cli-mdm43fxw.js";
3
+ } from "./cli-0xfq6e8r.js";
4
4
  import {
5
5
  OffensiveSecurityAgent
6
- } from "./cli-pv90y7mr.js";
7
- import"./cli-j7pkgdg0.js";
6
+ } from "./cli-mynp9mm4.js";
7
+ import"./cli-kjgm60cg.js";
8
8
  import {
9
9
  hasToolCall,
10
10
  tool
11
- } from "./cli-t90adgwt.js";
12
- import"./cli-ppsx314k.js";
13
- import"./cli-n7nkxh7s.js";
14
- import"./cli-9x51bc66.js";
15
- import"./cli-v0xwk0fh.js";
11
+ } from "./cli-x8806nck.js";
12
+ import"./cli-4thpxq5q.js";
13
+ import"./cli-z0a48qhb.js";
14
+ import"./cli-jzbdczka.js";
15
+ import"./cli-31v5wzk1.js";
16
16
  import"./cli-0tpx8khk.js";
17
17
  import"./cli-7ckctq7a.js";
18
18
  import"./cli-8rxa073f.js";
@@ -0,0 +1,16 @@
1
+ import {
2
+ CodeAgent
3
+ } from "./cli-gqy49b6s.js";
4
+ import"./cli-mynp9mm4.js";
5
+ import"./cli-kjgm60cg.js";
6
+ import"./cli-x8806nck.js";
7
+ import"./cli-4thpxq5q.js";
8
+ import"./cli-z0a48qhb.js";
9
+ import"./cli-jzbdczka.js";
10
+ import"./cli-31v5wzk1.js";
11
+ import"./cli-0tpx8khk.js";
12
+ import"./cli-7ckctq7a.js";
13
+ import"./cli-8rxa073f.js";
14
+ export {
15
+ CodeAgent
16
+ };
@@ -8,14 +8,14 @@ import {
8
8
  pollWorkOSToken,
9
9
  selectWorkspace,
10
10
  startDeviceFlow
11
- } from "./cli-ppsx314k.js";
11
+ } from "./cli-4thpxq5q.js";
12
12
  import {
13
13
  config,
14
14
  getPensarApiUrl,
15
15
  getPensarConsoleUrl
16
- } from "./cli-n7nkxh7s.js";
17
- import"./cli-9x51bc66.js";
18
- import"./cli-v0xwk0fh.js";
16
+ } from "./cli-z0a48qhb.js";
17
+ import"./cli-jzbdczka.js";
18
+ import"./cli-31v5wzk1.js";
19
19
  import {
20
20
  __require
21
21
  } from "./cli-8rxa073f.js";
@@ -3,15 +3,15 @@ import {
3
3
  } from "./cli-6gtnyaqf.js";
4
4
  import {
5
5
  OffensiveSecurityAgent
6
- } from "./cli-pv90y7mr.js";
7
- import"./cli-j7pkgdg0.js";
6
+ } from "./cli-mynp9mm4.js";
7
+ import"./cli-kjgm60cg.js";
8
8
  import {
9
9
  hasToolCall
10
- } from "./cli-t90adgwt.js";
11
- import"./cli-ppsx314k.js";
12
- import"./cli-n7nkxh7s.js";
13
- import"./cli-9x51bc66.js";
14
- import"./cli-v0xwk0fh.js";
10
+ } from "./cli-x8806nck.js";
11
+ import"./cli-4thpxq5q.js";
12
+ import"./cli-z0a48qhb.js";
13
+ import"./cli-jzbdczka.js";
14
+ import"./cli-31v5wzk1.js";
15
15
  import"./cli-0tpx8khk.js";
16
16
  import"./cli-7ckctq7a.js";
17
17
  import"./cli-8rxa073f.js";
@@ -0,0 +1,17 @@
1
+ import {
2
+ BlackboxAttackSurfaceAgent
3
+ } from "./cli-8n882axc.js";
4
+ import"./cli-6gtnyaqf.js";
5
+ import"./cli-mynp9mm4.js";
6
+ import"./cli-kjgm60cg.js";
7
+ import"./cli-x8806nck.js";
8
+ import"./cli-4thpxq5q.js";
9
+ import"./cli-z0a48qhb.js";
10
+ import"./cli-jzbdczka.js";
11
+ import"./cli-31v5wzk1.js";
12
+ import"./cli-0tpx8khk.js";
13
+ import"./cli-7ckctq7a.js";
14
+ import"./cli-8rxa073f.js";
15
+ export {
16
+ BlackboxAttackSurfaceAgent
17
+ };
@@ -1,18 +1,18 @@
1
1
  import {
2
2
  runPentestWorkflow
3
- } from "./cli-gs2474ec.js";
4
- import"./cli-j9s2krw4.js";
5
- import"./cli-tmnh3w7x.js";
6
- import"./cli-mdm43fxw.js";
7
- import"./cli-t30ekexm.js";
3
+ } from "./cli-6967baew.js";
4
+ import"./cli-65bp1912.js";
5
+ import"./cli-gqy49b6s.js";
6
+ import"./cli-0xfq6e8r.js";
7
+ import"./cli-8n882axc.js";
8
8
  import"./cli-6gtnyaqf.js";
9
- import"./cli-pv90y7mr.js";
10
- import"./cli-j7pkgdg0.js";
11
- import"./cli-t90adgwt.js";
12
- import"./cli-ppsx314k.js";
13
- import"./cli-n7nkxh7s.js";
14
- import"./cli-9x51bc66.js";
15
- import"./cli-v0xwk0fh.js";
9
+ import"./cli-mynp9mm4.js";
10
+ import"./cli-kjgm60cg.js";
11
+ import"./cli-x8806nck.js";
12
+ import"./cli-4thpxq5q.js";
13
+ import"./cli-z0a48qhb.js";
14
+ import"./cli-jzbdczka.js";
15
+ import"./cli-31v5wzk1.js";
16
16
  import"./cli-0tpx8khk.js";
17
17
  import"./cli-7ckctq7a.js";
18
18
  import"./cli-8rxa073f.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  exports_external,
3
3
  init_zod
4
- } from "./cli-t90adgwt.js";
4
+ } from "./cli-x8806nck.js";
5
5
 
6
6
  // src/core/agents/specialized/whiteboxAttackSurface/types.ts
7
7
  init_zod();
@@ -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: "0.0.113-canary.e01104f0",
6
+ version: "0.0.114-canary.28a10efa",
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",
@@ -3,7 +3,7 @@ import {
3
3
  ensureValidToken,
4
4
  getPensarApiUrl,
5
5
  getPensarGatewayUrl
6
- } from "./cli-n7nkxh7s.js";
6
+ } from "./cli-z0a48qhb.js";
7
7
 
8
8
  // src/core/auth/device-flow.ts
9
9
  function sleep(ms) {
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  OffensiveSecurityAgent
3
- } from "./cli-pv90y7mr.js";
3
+ } from "./cli-mynp9mm4.js";
4
4
  import {
5
5
  exports_external,
6
6
  init_zod
7
- } from "./cli-t90adgwt.js";
7
+ } from "./cli-x8806nck.js";
8
8
 
9
9
  // src/core/agents/specialized/pentest/agent.ts
10
10
  init_zod();
@@ -1,23 +1,23 @@
1
1
  import {
2
2
  TargetedPentestAgent
3
- } from "./cli-j9s2krw4.js";
3
+ } from "./cli-65bp1912.js";
4
4
  import {
5
5
  CodeAgent
6
- } from "./cli-tmnh3w7x.js";
6
+ } from "./cli-gqy49b6s.js";
7
7
  import {
8
8
  EndpointSchema
9
- } from "./cli-mdm43fxw.js";
9
+ } from "./cli-0xfq6e8r.js";
10
10
  import {
11
11
  BlackboxAttackSurfaceAgent
12
- } from "./cli-t30ekexm.js";
12
+ } from "./cli-8n882axc.js";
13
13
  import {
14
14
  CweEntrySchema,
15
15
  FindingsRegistry
16
- } from "./cli-pv90y7mr.js";
16
+ } from "./cli-mynp9mm4.js";
17
17
  import {
18
18
  exports_external,
19
19
  init_zod
20
- } from "./cli-t90adgwt.js";
20
+ } from "./cli-x8806nck.js";
21
21
 
22
22
  // src/core/workflows/pentest.ts
23
23
  import { existsSync as existsSync4, readdirSync as readdirSync2, readFileSync as readFileSync4, writeFileSync as writeFileSync3 } from "fs";
@@ -3,11 +3,11 @@ import {
3
3
  } from "./cli-6gtnyaqf.js";
4
4
  import {
5
5
  OffensiveSecurityAgent
6
- } from "./cli-pv90y7mr.js";
6
+ } from "./cli-mynp9mm4.js";
7
7
  import {
8
8
  hasToolCall,
9
9
  stepCountIs
10
- } from "./cli-t90adgwt.js";
10
+ } from "./cli-x8806nck.js";
11
11
 
12
12
  // src/core/agents/specialized/attackSurface/blackboxAgent.ts
13
13
  import { join } from "path";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  OffensiveSecurityAgent
3
- } from "./cli-pv90y7mr.js";
3
+ } from "./cli-mynp9mm4.js";
4
4
  import {
5
5
  stepCountIs
6
- } from "./cli-t90adgwt.js";
6
+ } from "./cli-x8806nck.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.
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getCurrentVersion
3
- } from "./cli-v0xwk0fh.js";
3
+ } from "./cli-31v5wzk1.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-t90adgwt.js";
6
+ } from "./cli-x8806nck.js";
7
7
  import {
8
8
  __callDispose,
9
9
  __esm,
@@ -17,7 +17,7 @@ import {
17
17
  update,
18
18
  write,
19
19
  writeRaw
20
- } from "./cli-j7pkgdg0.js";
20
+ } from "./cli-kjgm60cg.js";
21
21
  import {
22
22
  _enum,
23
23
  _null,
@@ -46,18 +46,18 @@ import {
46
46
  union,
47
47
  unknown,
48
48
  zod_default
49
- } from "./cli-t90adgwt.js";
49
+ } from "./cli-x8806nck.js";
50
50
  import {
51
51
  signGatewayRequest
52
- } from "./cli-ppsx314k.js";
52
+ } from "./cli-4thpxq5q.js";
53
53
  import {
54
54
  config,
55
55
  ensureValidToken,
56
56
  getPensarApiUrl
57
- } from "./cli-n7nkxh7s.js";
57
+ } from "./cli-z0a48qhb.js";
58
58
  import {
59
59
  getCurrentVersion
60
- } from "./cli-v0xwk0fh.js";
60
+ } from "./cli-31v5wzk1.js";
61
61
  import {
62
62
  __commonJS,
63
63
  __require,
@@ -90666,7 +90666,7 @@ When to use delegate_to_auth_subagent vs authenticate_session:
90666
90666
  if (credentials) {
90667
90667
  ctx.session.credentialManager.addFromAuthCredentials(credentials);
90668
90668
  }
90669
- const { runAuthenticationAgent } = await import("./authentication-d1mjs6ez.js");
90669
+ const { runAuthenticationAgent } = await import("./authentication-s40c921z.js");
90670
90670
  const subagentCallbacks = cbs ? {
90671
90671
  onTextDelta: (d) => cbs.onTextDelta?.({ ...d, subagentId }),
90672
90672
  onToolCall: (d) => cbs.onToolCall?.({ ...d, subagentId }),
@@ -91568,7 +91568,7 @@ should be passed directly to spawn_pentest_swarm for deep testing.`,
91568
91568
  });
91569
91569
  if (cwd) {
91570
91570
  try {
91571
- const { WhiteboxAttackSurfaceAgent } = await import("./agent-ek9gh3ae.js");
91571
+ const { WhiteboxAttackSurfaceAgent } = await import("./agent-tvfx07q6.js");
91572
91572
  const agent = new WhiteboxAttackSurfaceAgent({
91573
91573
  codebasePath: cwd,
91574
91574
  model: ctx.model,
@@ -91620,7 +91620,7 @@ should be passed directly to spawn_pentest_swarm for deep testing.`,
91620
91620
  }
91621
91621
  }
91622
91622
  try {
91623
- const { BlackboxAttackSurfaceAgent } = await import("./blackboxAgent-qptvwtaz.js");
91623
+ const { BlackboxAttackSurfaceAgent } = await import("./blackboxAgent-xt01ns0b.js");
91624
91624
  const agent = new BlackboxAttackSurfaceAgent({
91625
91625
  target,
91626
91626
  model: ctx.model,
@@ -91699,7 +91699,7 @@ Pass every target you want tested — the swarm handles concurrency automaticall
91699
91699
  toolCallDescription: exports_external.string().describe("A concise, human-readable description of what this tool call is doing")
91700
91700
  }),
91701
91701
  execute: async ({ targets }) => {
91702
- const { runPentestSwarm, DEFAULT_CONCURRENCY } = await import("./pentest-bhejyq2n.js");
91702
+ const { runPentestSwarm, DEFAULT_CONCURRENCY } = await import("./pentest-as63y0ej.js");
91703
91703
  if (!ctx.model) {
91704
91704
  return {
91705
91705
  success: false,
@@ -91826,7 +91826,7 @@ Returns an array of results with the text output from each agent.`,
91826
91826
  });
91827
91827
  }
91828
91828
  async function runSingleCodingAgent(ctx, codebasePath, objective, agentIndex, name) {
91829
- const { CodeAgent } = await import("./agent-c3nr8yd0.js");
91829
+ const { CodeAgent } = await import("./agent-y8ysvqeg.js");
91830
91830
  const subagentId = `coding-agent-${agentIndex}`;
91831
91831
  ctx.subagentCallbacks?.onSubagentSpawn?.({
91832
91832
  subagentId,
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  signGatewayRequest
3
- } from "./cli-ppsx314k.js";
3
+ } from "./cli-4thpxq5q.js";
4
4
  import {
5
5
  config,
6
6
  ensureValidToken,
7
7
  getPensarGatewayUrl
8
- } from "./cli-n7nkxh7s.js";
8
+ } from "./cli-z0a48qhb.js";
9
9
  import {
10
10
  getModelInfo
11
11
  } from "./cli-0tpx8khk.js";
@@ -2,7 +2,7 @@ import {
2
2
  get,
3
3
  init,
4
4
  update
5
- } from "./cli-9x51bc66.js";
5
+ } from "./cli-jzbdczka.js";
6
6
 
7
7
  // src/core/api/constants.ts
8
8
  var PENSAR_API_BASE_URL = "https://api.pensar.dev";
@@ -2,7 +2,7 @@ import {
2
2
  config,
3
3
  ensureValidToken,
4
4
  getPensarApiUrl
5
- } from "./cli-n7nkxh7s.js";
5
+ } from "./cli-z0a48qhb.js";
6
6
 
7
7
  // src/core/api/issues.ts
8
8
  async function getAuthHeaders() {
package/build/cli.js CHANGED
@@ -1,12 +1,12 @@
1
1
  #!/usr/bin/env bun
2
2
  // @bun
3
- import"./cli-t90adgwt.js";
4
- import"./cli-ppsx314k.js";
5
- import"./cli-n7nkxh7s.js";
6
- import"./cli-9x51bc66.js";
3
+ import"./cli-x8806nck.js";
4
+ import"./cli-4thpxq5q.js";
5
+ import"./cli-z0a48qhb.js";
6
+ import"./cli-jzbdczka.js";
7
7
  import {
8
8
  package_default
9
- } from "./cli-v0xwk0fh.js";
9
+ } from "./cli-31v5wzk1.js";
10
10
  import"./cli-0tpx8khk.js";
11
11
  import"./cli-7ckctq7a.js";
12
12
  import {
@@ -16,7 +16,7 @@ import {
16
16
  // package.json
17
17
  var package_default2 = {
18
18
  name: "@pensar/apex",
19
- version: "0.0.113-canary.e01104f0",
19
+ version: "0.0.114-canary.28a10efa",
20
20
  description: "AI-powered penetration testing CLI tool with terminal UI",
21
21
  module: "src/tui/index.tsx",
22
22
  main: "build/cli.js",
@@ -351,9 +351,9 @@ Global options:
351
351
  async function runPentest() {
352
352
  const { config: config2 } = await import("./main-2483qzbq.js").then((m)=>__toESM(m.default,1));
353
353
  config2();
354
- const { runPentestAgent } = await import("./blackboxPentest-ds6gmjj1.js");
355
- const { sessions } = await import("./index-d9ss9bw1.js");
356
- const { config: appConfig } = await import("./index-wepykpjm.js");
354
+ const { runPentestAgent } = await import("./blackboxPentest-dzj8adnk.js");
355
+ const { sessions } = await import("./index-sse0bgp1.js");
356
+ const { config: appConfig } = await import("./index-5s63xrwe.js");
357
357
  const { getDefaultModelForConfig } = await import("./utils-9fhmzzzh.js");
358
358
  const target = getArgRequired("--target");
359
359
  const cwd = getArg("--cwd");
@@ -408,9 +408,9 @@ Report: ${reportPath}` : ""}`);
408
408
  async function runTargetedPentest() {
409
409
  const { config: config2 } = await import("./main-2483qzbq.js").then((m)=>__toESM(m.default,1));
410
410
  config2();
411
- const { runTargetedPentestAgent } = await import("./targetedPentest-rkz6f573.js");
412
- const { sessions } = await import("./index-d9ss9bw1.js");
413
- const { config: appConfig } = await import("./index-wepykpjm.js");
411
+ const { runTargetedPentestAgent } = await import("./targetedPentest-m8mayqrk.js");
412
+ const { sessions } = await import("./index-sse0bgp1.js");
413
+ const { config: appConfig } = await import("./index-5s63xrwe.js");
414
414
  const { getDefaultModelForConfig } = await import("./utils-9fhmzzzh.js");
415
415
  const target = getArgRequired("--target");
416
416
  const objectives = getAllArgs("--objective");
@@ -472,25 +472,25 @@ if (command === "version" || command === "--version" || command === "-v") {
472
472
  await runTargetedPentest();
473
473
  } else if (command === "auth") {
474
474
  process.argv = [process.argv[0], process.argv[1], ...args.slice(1)];
475
- await import("./auth-bs9a4180.js");
475
+ await import("./auth-8emg998z.js");
476
476
  } else if (command === "uninstall") {
477
477
  process.argv = [process.argv[0], process.argv[1], ...args.slice(1)];
478
- await import("./uninstall-eps6r1sy.js");
478
+ await import("./uninstall-qwf8es4w.js");
479
479
  } else if (command === "projects") {
480
480
  process.argv = [process.argv[0], process.argv[1], ...args.slice(1)];
481
- await import("./projects-x2wbwev6.js");
481
+ await import("./projects-cd8aa6g1.js");
482
482
  } else if (command === "pentests") {
483
483
  process.argv = [process.argv[0], process.argv[1], ...args.slice(1)];
484
- await import("./pentests-yc4mznf0.js");
484
+ await import("./pentests-v8za91se.js");
485
485
  } else if (command === "issues") {
486
486
  process.argv = [process.argv[0], process.argv[1], ...args.slice(1)];
487
- await import("./issues-8b9rp58m.js");
487
+ await import("./issues-ff820n76.js");
488
488
  } else if (command === "fixes") {
489
489
  process.argv = [process.argv[0], process.argv[1], ...args.slice(1)];
490
- await import("./fixes-450w8gzw.js");
490
+ await import("./fixes-8tgqe03t.js");
491
491
  } else if (command === "logs") {
492
492
  process.argv = [process.argv[0], process.argv[1], ...args.slice(1)];
493
- await import("./logs-6kata0m1.js");
493
+ await import("./logs-m6gck8s8.js");
494
494
  } else if (command === "doctor") {
495
495
  const { runDoctor } = await import("./doctor-b7612pzw.js");
496
496
  await runDoctor();
@@ -500,7 +500,7 @@ if (command === "version" || command === "--version" || command === "-v") {
500
500
  console.error("All other commands work with Node \u2014 run 'pensar --help'.");
501
501
  process.exit(1);
502
502
  }
503
- await import("./index-jx79cjz7.js");
503
+ await import("./index-vp8hh8jn.js");
504
504
  } else {
505
505
  console.error(`Error: Unknown command '${command}'`);
506
506
  console.error();
@@ -2,10 +2,10 @@
2
2
  import {
3
3
  getFix,
4
4
  listFixes
5
- } from "./cli-kjrwahpt.js";
6
- import"./cli-n7nkxh7s.js";
7
- import"./cli-9x51bc66.js";
8
- import"./cli-v0xwk0fh.js";
5
+ } from "./cli-z19gths3.js";
6
+ import"./cli-z0a48qhb.js";
7
+ import"./cli-jzbdczka.js";
8
+ import"./cli-31v5wzk1.js";
9
9
  import"./cli-8rxa073f.js";
10
10
 
11
11
  // src/cli/fixes.ts
@@ -2,8 +2,8 @@ import {
2
2
  get,
3
3
  init,
4
4
  update
5
- } from "./cli-9x51bc66.js";
6
- import"./cli-v0xwk0fh.js";
5
+ } from "./cli-jzbdczka.js";
6
+ import"./cli-31v5wzk1.js";
7
7
  import"./cli-8rxa073f.js";
8
8
 
9
9
  // src/core/config/index.ts
@@ -17,17 +17,17 @@ import {
17
17
  update,
18
18
  write,
19
19
  writeRaw
20
- } from "./cli-j7pkgdg0.js";
20
+ } from "./cli-kjgm60cg.js";
21
21
  import {
22
22
  init_zod,
23
23
  zod_default
24
- } from "./cli-t90adgwt.js";
25
- import"./cli-ppsx314k.js";
26
- import"./cli-n7nkxh7s.js";
27
- import"./cli-9x51bc66.js";
24
+ } from "./cli-x8806nck.js";
25
+ import"./cli-4thpxq5q.js";
26
+ import"./cli-z0a48qhb.js";
27
+ import"./cli-jzbdczka.js";
28
28
  import {
29
29
  getCurrentVersion
30
- } from "./cli-v0xwk0fh.js";
30
+ } from "./cli-31v5wzk1.js";
31
31
  import"./cli-0tpx8khk.js";
32
32
  import"./cli-7ckctq7a.js";
33
33
  import {
@@ -8,11 +8,11 @@ import {
8
8
  readExecutionMetrics,
9
9
  runPentestWorkflow,
10
10
  writeExecutionMetrics
11
- } from "./cli-gs2474ec.js";
12
- import"./cli-j9s2krw4.js";
13
- import"./cli-tmnh3w7x.js";
14
- import"./cli-mdm43fxw.js";
15
- import"./cli-t30ekexm.js";
11
+ } from "./cli-6967baew.js";
12
+ import"./cli-65bp1912.js";
13
+ import"./cli-gqy49b6s.js";
14
+ import"./cli-0xfq6e8r.js";
15
+ import"./cli-8n882axc.js";
16
16
  import"./cli-6gtnyaqf.js";
17
17
  import {
18
18
  ALL_TOOL_NAMES,
@@ -23,17 +23,17 @@ import {
23
23
  createInitialOperatorState,
24
24
  normalizeMessages,
25
25
  sessions
26
- } from "./cli-pv90y7mr.js";
26
+ } from "./cli-mynp9mm4.js";
27
27
  import {
28
28
  createToolsetState,
29
29
  init_toolset,
30
30
  read,
31
31
  write
32
- } from "./cli-j7pkgdg0.js";
32
+ } from "./cli-kjgm60cg.js";
33
33
  import {
34
34
  buildAuthConfig,
35
35
  stepCountIs
36
- } from "./cli-t90adgwt.js";
36
+ } from "./cli-x8806nck.js";
37
37
  import {
38
38
  disconnect,
39
39
  fetchWorkspaces,
@@ -44,18 +44,18 @@ import {
44
44
  selectWorkspace,
45
45
  startDeviceFlow,
46
46
  validateGateway
47
- } from "./cli-ppsx314k.js";
47
+ } from "./cli-4thpxq5q.js";
48
48
  import {
49
49
  config,
50
50
  getPensarApiUrl,
51
51
  getPensarConsoleUrl
52
- } from "./cli-n7nkxh7s.js";
52
+ } from "./cli-z0a48qhb.js";
53
53
  import {
54
54
  update
55
- } from "./cli-9x51bc66.js";
55
+ } from "./cli-jzbdczka.js";
56
56
  import {
57
57
  checkForUpdate
58
- } from "./cli-v0xwk0fh.js";
58
+ } from "./cli-31v5wzk1.js";
59
59
  import {
60
60
  AVAILABLE_MODELS
61
61
  } from "./cli-0tpx8khk.js";
@@ -59551,25 +59551,17 @@ function markdownToStyledText(content, colors2) {
59551
59551
  ]);
59552
59552
  }
59553
59553
  }
59554
- // src/tui/components/shared/message-utils.ts
59555
- import { createHash } from "crypto";
59556
-
59557
59554
  // src/tui/components/shared/type-guards.ts
59558
59555
  function isToolMessage(msg) {
59559
59556
  return msg.role === "tool" && typeof msg.toolCallId === "string" && typeof msg.toolName === "string" && typeof msg.status === "string";
59560
59557
  }
59561
59558
 
59562
59559
  // src/tui/components/shared/message-utils.ts
59563
- function hashContent(content) {
59564
- return createHash("sha256").update(content).digest("hex").slice(0, 8);
59565
- }
59566
59560
  function getStableMessageKey(item, contextId = "root") {
59567
59561
  if (isToolMessage(item)) {
59568
59562
  return `${contextId}-tool-${item.toolCallId}`;
59569
59563
  }
59570
- const content = typeof item.content === "string" ? item.content : JSON.stringify(item.content);
59571
- const contentHash = hashContent(content);
59572
- return `${contextId}-${item.role}-${item.createdAt.getTime()}-${contentHash}`;
59564
+ return `${contextId}-${item.role}-${item.createdAt.getTime()}`;
59573
59565
  }
59574
59566
  function extractStreamableContent(args) {
59575
59567
  if (typeof args.content === "string")
@@ -62403,11 +62395,17 @@ function AgentCardGrid({
62403
62395
  }) {
62404
62396
  const { colors: colors2 } = useTheme();
62405
62397
  const scrollRef = useRef11(null);
62398
+ const agentsRef = useRef11(agents);
62399
+ agentsRef.current = agents;
62400
+ const prevFocusedIndexRef = useRef11(focusedIndex);
62406
62401
  useEffect20(() => {
62407
- const agent = agents[focusedIndex];
62402
+ if (prevFocusedIndexRef.current === focusedIndex)
62403
+ return;
62404
+ prevFocusedIndexRef.current = focusedIndex;
62405
+ const agent = agentsRef.current[focusedIndex];
62408
62406
  if (agent)
62409
62407
  scrollToChild(scrollRef.current, agent.id);
62410
- }, [focusedIndex, agents]);
62408
+ }, [focusedIndex]);
62411
62409
  const rows = useMemo18(() => {
62412
62410
  const result = [];
62413
62411
  for (let i = 0;i < agents.length; i += gridColumns) {
@@ -3,10 +3,10 @@ import {
3
3
  getIssue,
4
4
  listIssues,
5
5
  updateIssue
6
- } from "./cli-kjrwahpt.js";
7
- import"./cli-n7nkxh7s.js";
8
- import"./cli-9x51bc66.js";
9
- import"./cli-v0xwk0fh.js";
6
+ } from "./cli-z19gths3.js";
7
+ import"./cli-z0a48qhb.js";
8
+ import"./cli-jzbdczka.js";
9
+ import"./cli-31v5wzk1.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-kjrwahpt.js";
6
- import"./cli-n7nkxh7s.js";
7
- import"./cli-9x51bc66.js";
8
- import"./cli-v0xwk0fh.js";
5
+ } from "./cli-z19gths3.js";
6
+ import"./cli-z0a48qhb.js";
7
+ import"./cli-jzbdczka.js";
8
+ import"./cli-31v5wzk1.js";
9
9
  import"./cli-8rxa073f.js";
10
10
 
11
11
  // src/cli/logs.ts
@@ -0,0 +1,25 @@
1
+ import {
2
+ DEFAULT_CONCURRENCY,
3
+ runPentestSwarm,
4
+ runPentestWorkflow
5
+ } from "./cli-6967baew.js";
6
+ import"./cli-65bp1912.js";
7
+ import"./cli-gqy49b6s.js";
8
+ import"./cli-0xfq6e8r.js";
9
+ import"./cli-8n882axc.js";
10
+ import"./cli-6gtnyaqf.js";
11
+ import"./cli-mynp9mm4.js";
12
+ import"./cli-kjgm60cg.js";
13
+ import"./cli-x8806nck.js";
14
+ import"./cli-4thpxq5q.js";
15
+ import"./cli-z0a48qhb.js";
16
+ import"./cli-jzbdczka.js";
17
+ import"./cli-31v5wzk1.js";
18
+ import"./cli-0tpx8khk.js";
19
+ import"./cli-7ckctq7a.js";
20
+ import"./cli-8rxa073f.js";
21
+ export {
22
+ runPentestWorkflow,
23
+ runPentestSwarm,
24
+ DEFAULT_CONCURRENCY
25
+ };
@@ -3,10 +3,10 @@ import {
3
3
  dispatchPentest,
4
4
  getScan,
5
5
  listScans
6
- } from "./cli-kjrwahpt.js";
7
- import"./cli-n7nkxh7s.js";
8
- import"./cli-9x51bc66.js";
9
- import"./cli-v0xwk0fh.js";
6
+ } from "./cli-z19gths3.js";
7
+ import"./cli-z0a48qhb.js";
8
+ import"./cli-jzbdczka.js";
9
+ import"./cli-31v5wzk1.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-kjrwahpt.js";
5
- import"./cli-n7nkxh7s.js";
6
- import"./cli-9x51bc66.js";
7
- import"./cli-v0xwk0fh.js";
4
+ } from "./cli-z19gths3.js";
5
+ import"./cli-z0a48qhb.js";
6
+ import"./cli-jzbdczka.js";
7
+ import"./cli-31v5wzk1.js";
8
8
  import"./cli-8rxa073f.js";
9
9
 
10
10
  // src/cli/projects.ts
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  TargetedPentestAgent
3
- } from "./cli-j9s2krw4.js";
4
- import"./cli-pv90y7mr.js";
5
- import"./cli-j7pkgdg0.js";
6
- import"./cli-t90adgwt.js";
7
- import"./cli-ppsx314k.js";
8
- import"./cli-n7nkxh7s.js";
9
- import"./cli-9x51bc66.js";
10
- import"./cli-v0xwk0fh.js";
3
+ } from "./cli-65bp1912.js";
4
+ import"./cli-mynp9mm4.js";
5
+ import"./cli-kjgm60cg.js";
6
+ import"./cli-x8806nck.js";
7
+ import"./cli-4thpxq5q.js";
8
+ import"./cli-z0a48qhb.js";
9
+ import"./cli-jzbdczka.js";
10
+ import"./cli-31v5wzk1.js";
11
11
  import"./cli-0tpx8khk.js";
12
12
  import"./cli-7ckctq7a.js";
13
13
  import"./cli-8rxa073f.js";
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env bun
2
2
  import {
3
3
  detectInstallMethod
4
- } from "./cli-v0xwk0fh.js";
4
+ } from "./cli-31v5wzk1.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": "0.0.113-canary.e01104f0",
3
+ "version": "0.0.114-canary.28a10efa",
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,16 +0,0 @@
1
- import {
2
- CodeAgent
3
- } from "./cli-tmnh3w7x.js";
4
- import"./cli-pv90y7mr.js";
5
- import"./cli-j7pkgdg0.js";
6
- import"./cli-t90adgwt.js";
7
- import"./cli-ppsx314k.js";
8
- import"./cli-n7nkxh7s.js";
9
- import"./cli-9x51bc66.js";
10
- import"./cli-v0xwk0fh.js";
11
- import"./cli-0tpx8khk.js";
12
- import"./cli-7ckctq7a.js";
13
- import"./cli-8rxa073f.js";
14
- export {
15
- CodeAgent
16
- };
@@ -1,17 +0,0 @@
1
- import {
2
- BlackboxAttackSurfaceAgent
3
- } from "./cli-t30ekexm.js";
4
- import"./cli-6gtnyaqf.js";
5
- import"./cli-pv90y7mr.js";
6
- import"./cli-j7pkgdg0.js";
7
- import"./cli-t90adgwt.js";
8
- import"./cli-ppsx314k.js";
9
- import"./cli-n7nkxh7s.js";
10
- import"./cli-9x51bc66.js";
11
- import"./cli-v0xwk0fh.js";
12
- import"./cli-0tpx8khk.js";
13
- import"./cli-7ckctq7a.js";
14
- import"./cli-8rxa073f.js";
15
- export {
16
- BlackboxAttackSurfaceAgent
17
- };
@@ -1,25 +0,0 @@
1
- import {
2
- DEFAULT_CONCURRENCY,
3
- runPentestSwarm,
4
- runPentestWorkflow
5
- } from "./cli-gs2474ec.js";
6
- import"./cli-j9s2krw4.js";
7
- import"./cli-tmnh3w7x.js";
8
- import"./cli-mdm43fxw.js";
9
- import"./cli-t30ekexm.js";
10
- import"./cli-6gtnyaqf.js";
11
- import"./cli-pv90y7mr.js";
12
- import"./cli-j7pkgdg0.js";
13
- import"./cli-t90adgwt.js";
14
- import"./cli-ppsx314k.js";
15
- import"./cli-n7nkxh7s.js";
16
- import"./cli-9x51bc66.js";
17
- import"./cli-v0xwk0fh.js";
18
- import"./cli-0tpx8khk.js";
19
- import"./cli-7ckctq7a.js";
20
- import"./cli-8rxa073f.js";
21
- export {
22
- runPentestWorkflow,
23
- runPentestSwarm,
24
- DEFAULT_CONCURRENCY
25
- };