@pensar/apex 1.4.0 → 1.5.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-xw97p62b.js → agent-826kcm6p.js} +8 -8
  2. package/build/agent-ygmdd47f.js +19 -0
  3. package/build/{auth-sc1hmsgv.js → auth-xsgt862b.js} +4 -4
  4. package/build/{authentication-jt2jbqj2.js → authentication-30wrh2pf.js} +8 -8
  5. package/build/{blackboxAgent-rq9z4g0p.js → blackboxAgent-q1z639g8.js} +9 -9
  6. package/build/{blackboxPentest-3wwyqckx.js → blackboxPentest-9v0xt57e.js} +14 -14
  7. package/build/{cli-k0tycc78.js → cli-1c0yqbxc.js} +1 -1
  8. package/build/{cli-a9bs4kq9.js → cli-30w3njcs.js} +2 -2
  9. package/build/{cli-6r72e7et.js → cli-4cgqez3x.js} +1 -1
  10. package/build/{cli-jp69ygke.js → cli-60drere9.js} +2 -2
  11. package/build/{cli-evenmfmt.js → cli-710a5ab8.js} +1 -1
  12. package/build/{cli-rn3mezj8.js → cli-9agejx4x.js} +12 -12
  13. package/build/{cli-vwyn3es3.js → cli-rke1rjpf.js} +9 -9
  14. package/build/{cli-39d581n4.js → cli-tw7mm283.js} +1 -1
  15. package/build/{cli-e9n1z1dp.js → cli-v3f4zxgx.js} +1 -1
  16. package/build/{cli-am3dgbv8.js → cli-vv6j2mec.js} +15 -10
  17. package/build/{cli-mxms90xg.js → cli-wgnkk2ae.js} +1 -1
  18. package/build/{cli-ctb1vg2p.js → cli-wntm40ab.js} +6 -6
  19. package/build/{cli-jh6h1myg.js → cli-wzb6j1d9.js} +1 -1
  20. package/build/{cli-e1axrn0s.js → cli-z5t4337e.js} +1 -1
  21. package/build/cli.js +58 -46
  22. package/build/{fixes-05de9mv3.js → fixes-64yfftv5.js} +4 -4
  23. package/build/{index-hg0e235k.js → index-0pcd0tmc.js} +8 -8
  24. package/build/{index-vaba4g8m.js → index-532gd4bb.js} +21 -20
  25. package/build/{index-bx88n3qr.js → index-g9ghthsc.js} +2 -2
  26. package/build/{index-8cn46ysy.js → index-q06a58c3.js} +8 -8
  27. package/build/{index-fh4dtkm8.js → index-wj1sggpd.js} +4 -4
  28. package/build/{issues-k3tx6cng.js → issues-dcb00e79.js} +4 -4
  29. package/build/{logs-q33a8qag.js → logs-e6v46nst.js} +4 -4
  30. package/build/{offesecAgent-pxnz905y.js → offesecAgent-h0ersxej.js} +8 -8
  31. package/build/{pentest-tv2e2ygn.js → pentest-mczd9b5r.js} +14 -14
  32. package/build/{pentests-s9462spt.js → pentests-dgf16fbb.js} +4 -4
  33. package/build/{projects-wxke4080.js → projects-9nf4z056.js} +4 -4
  34. package/build/{targetedPentest-nm0y2fv4.js → targetedPentest-j457sh84.js} +9 -9
  35. package/build/{threatModel-qrtk7rj4.js → threatModel-kk3f89wx.js} +9 -9
  36. package/build/{uninstall-cy8m1788.js → uninstall-8cqb79tf.js} +1 -1
  37. package/build/{utils-8yqe12jr.js → utils-jf52rmrb.js} +2 -1
  38. package/package.json +1 -1
  39. package/build/agent-xg2xarp3.js +0 -19
@@ -3,22 +3,22 @@ import {
3
3
  } from "./cli-0fy9j5dw.js";
4
4
  import {
5
5
  OffensiveSecurityAgent
6
- } from "./cli-rn3mezj8.js";
6
+ } from "./cli-9agejx4x.js";
7
7
  import"./cli-tp1tqn3k.js";
8
- import"./cli-evenmfmt.js";
8
+ import"./cli-710a5ab8.js";
9
9
  import"./cli-3y0dgy56.js";
10
10
  import {
11
11
  hasToolCall
12
- } from "./cli-ctb1vg2p.js";
13
- import"./cli-03z6pswp.js";
12
+ } from "./cli-wntm40ab.js";
14
13
  import {
15
14
  tool
16
15
  } from "./cli-0ghkg3w6.js";
17
- import"./cli-39d581n4.js";
18
- import"./cli-mxms90xg.js";
19
- import"./cli-am3dgbv8.js";
20
- import"./cli-jh6h1myg.js";
16
+ import"./cli-tw7mm283.js";
17
+ import"./cli-wgnkk2ae.js";
21
18
  import"./cli-gpnb45ck.js";
19
+ import"./cli-vv6j2mec.js";
20
+ import"./cli-wzb6j1d9.js";
21
+ import"./cli-03z6pswp.js";
22
22
  import"./cli-8rxa073f.js";
23
23
 
24
24
  // src/core/agents/specialized/whiteboxAttackSurface/prompts.ts
@@ -0,0 +1,19 @@
1
+ import {
2
+ CodeAgent
3
+ } from "./cli-30w3njcs.js";
4
+ import"./cli-9agejx4x.js";
5
+ import"./cli-tp1tqn3k.js";
6
+ import"./cli-710a5ab8.js";
7
+ import"./cli-3y0dgy56.js";
8
+ import"./cli-wntm40ab.js";
9
+ import"./cli-0ghkg3w6.js";
10
+ import"./cli-tw7mm283.js";
11
+ import"./cli-wgnkk2ae.js";
12
+ import"./cli-gpnb45ck.js";
13
+ import"./cli-vv6j2mec.js";
14
+ import"./cli-wzb6j1d9.js";
15
+ import"./cli-03z6pswp.js";
16
+ import"./cli-8rxa073f.js";
17
+ export {
18
+ CodeAgent
19
+ };
@@ -8,14 +8,14 @@ import {
8
8
  pollWorkOSToken,
9
9
  selectWorkspace,
10
10
  startDeviceFlow
11
- } from "./cli-39d581n4.js";
11
+ } from "./cli-tw7mm283.js";
12
12
  import {
13
13
  config,
14
14
  getPensarApiUrl,
15
15
  getPensarConsoleUrl
16
- } from "./cli-mxms90xg.js";
17
- import"./cli-am3dgbv8.js";
18
- import"./cli-jh6h1myg.js";
16
+ } from "./cli-wgnkk2ae.js";
17
+ import"./cli-vv6j2mec.js";
18
+ import"./cli-wzb6j1d9.js";
19
19
  import {
20
20
  __require
21
21
  } from "./cli-8rxa073f.js";
@@ -1,21 +1,21 @@
1
1
  import {
2
2
  OffensiveSecurityAgent
3
- } from "./cli-rn3mezj8.js";
3
+ } from "./cli-9agejx4x.js";
4
4
  import {
5
5
  detectOSAndEnhancePrompt
6
6
  } from "./cli-tp1tqn3k.js";
7
- import"./cli-evenmfmt.js";
7
+ import"./cli-710a5ab8.js";
8
8
  import"./cli-3y0dgy56.js";
9
9
  import {
10
10
  hasToolCall
11
- } from "./cli-ctb1vg2p.js";
12
- import"./cli-03z6pswp.js";
11
+ } from "./cli-wntm40ab.js";
13
12
  import"./cli-0ghkg3w6.js";
14
- import"./cli-39d581n4.js";
15
- import"./cli-mxms90xg.js";
16
- import"./cli-am3dgbv8.js";
17
- import"./cli-jh6h1myg.js";
13
+ import"./cli-tw7mm283.js";
14
+ import"./cli-wgnkk2ae.js";
18
15
  import"./cli-gpnb45ck.js";
16
+ import"./cli-vv6j2mec.js";
17
+ import"./cli-wzb6j1d9.js";
18
+ import"./cli-03z6pswp.js";
19
19
  import"./cli-8rxa073f.js";
20
20
 
21
21
  // src/core/agents/specialized/authenticationAgent/agent.ts
@@ -1,18 +1,18 @@
1
1
  import {
2
2
  BlackboxAttackSurfaceAgent
3
- } from "./cli-jp69ygke.js";
4
- import"./cli-rn3mezj8.js";
3
+ } from "./cli-60drere9.js";
4
+ import"./cli-9agejx4x.js";
5
5
  import"./cli-tp1tqn3k.js";
6
- import"./cli-evenmfmt.js";
6
+ import"./cli-710a5ab8.js";
7
7
  import"./cli-3y0dgy56.js";
8
- import"./cli-ctb1vg2p.js";
9
- import"./cli-03z6pswp.js";
8
+ import"./cli-wntm40ab.js";
10
9
  import"./cli-0ghkg3w6.js";
11
- import"./cli-39d581n4.js";
12
- import"./cli-mxms90xg.js";
13
- import"./cli-am3dgbv8.js";
14
- import"./cli-jh6h1myg.js";
10
+ import"./cli-tw7mm283.js";
11
+ import"./cli-wgnkk2ae.js";
15
12
  import"./cli-gpnb45ck.js";
13
+ import"./cli-vv6j2mec.js";
14
+ import"./cli-wzb6j1d9.js";
15
+ import"./cli-03z6pswp.js";
16
16
  import"./cli-8rxa073f.js";
17
17
  export {
18
18
  BlackboxAttackSurfaceAgent
@@ -1,24 +1,24 @@
1
1
  import {
2
2
  runPentestWorkflow
3
- } from "./cli-vwyn3es3.js";
4
- import"./cli-e1axrn0s.js";
5
- import"./cli-e9n1z1dp.js";
6
- import"./cli-jp69ygke.js";
7
- import"./cli-fw5r7pfj.js";
8
- import"./cli-a9bs4kq9.js";
3
+ } from "./cli-rke1rjpf.js";
4
+ import"./cli-z5t4337e.js";
5
+ import"./cli-v3f4zxgx.js";
9
6
  import"./cli-0fy9j5dw.js";
10
- import"./cli-rn3mezj8.js";
7
+ import"./cli-60drere9.js";
8
+ import"./cli-fw5r7pfj.js";
9
+ import"./cli-30w3njcs.js";
10
+ import"./cli-9agejx4x.js";
11
11
  import"./cli-tp1tqn3k.js";
12
- import"./cli-evenmfmt.js";
12
+ import"./cli-710a5ab8.js";
13
13
  import"./cli-3y0dgy56.js";
14
- import"./cli-ctb1vg2p.js";
15
- import"./cli-03z6pswp.js";
14
+ import"./cli-wntm40ab.js";
16
15
  import"./cli-0ghkg3w6.js";
17
- import"./cli-39d581n4.js";
18
- import"./cli-mxms90xg.js";
19
- import"./cli-am3dgbv8.js";
20
- import"./cli-jh6h1myg.js";
16
+ import"./cli-tw7mm283.js";
17
+ import"./cli-wgnkk2ae.js";
21
18
  import"./cli-gpnb45ck.js";
19
+ import"./cli-vv6j2mec.js";
20
+ import"./cli-wzb6j1d9.js";
21
+ import"./cli-03z6pswp.js";
22
22
  import"./cli-8rxa073f.js";
23
23
 
24
24
  // src/core/api/blackboxPentest.ts
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  OffensiveSecurityAgent
3
- } from "./cli-rn3mezj8.js";
3
+ } from "./cli-9agejx4x.js";
4
4
  import {
5
5
  __commonJS,
6
6
  __require
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  OffensiveSecurityAgent
3
- } from "./cli-rn3mezj8.js";
3
+ } from "./cli-9agejx4x.js";
4
4
  import {
5
5
  stepCountIs
6
- } from "./cli-ctb1vg2p.js";
6
+ } from "./cli-wntm40ab.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.
@@ -2,7 +2,7 @@ import {
2
2
  config,
3
3
  ensureValidToken,
4
4
  getPensarApiUrl
5
- } from "./cli-mxms90xg.js";
5
+ } from "./cli-wgnkk2ae.js";
6
6
 
7
7
  // src/core/api/issues.ts
8
8
  async function getAuthHeaders() {
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  OffensiveSecurityAgent
3
- } from "./cli-rn3mezj8.js";
3
+ } from "./cli-9agejx4x.js";
4
4
  import {
5
5
  detectOSAndEnhancePrompt
6
6
  } from "./cli-tp1tqn3k.js";
7
7
  import {
8
8
  hasToolCall,
9
9
  stepCountIs
10
- } from "./cli-ctb1vg2p.js";
10
+ } from "./cli-wntm40ab.js";
11
11
 
12
12
  // src/core/agents/specialized/attackSurface/blackboxAgent.ts
13
13
  import { join } from "path";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  generateObjectResponse
3
- } from "./cli-ctb1vg2p.js";
3
+ } from "./cli-wntm40ab.js";
4
4
  import {
5
5
  exports_external1 as exports_external,
6
6
  init_zod,
@@ -16,7 +16,7 @@ import {
16
16
  update,
17
17
  write,
18
18
  writeRaw
19
- } from "./cli-evenmfmt.js";
19
+ } from "./cli-710a5ab8.js";
20
20
  import {
21
21
  parseTargetUrl
22
22
  } from "./cli-3y0dgy56.js";
@@ -29,7 +29,7 @@ import {
29
29
  require_tslib,
30
30
  streamResponse,
31
31
  toggleTool
32
- } from "./cli-ctb1vg2p.js";
32
+ } from "./cli-wntm40ab.js";
33
33
  import {
34
34
  _enum,
35
35
  _null,
@@ -57,15 +57,15 @@ import {
57
57
  } from "./cli-0ghkg3w6.js";
58
58
  import {
59
59
  signGatewayRequest
60
- } from "./cli-39d581n4.js";
60
+ } from "./cli-tw7mm283.js";
61
61
  import {
62
62
  config,
63
63
  ensureValidToken,
64
64
  getPensarApiUrl
65
- } from "./cli-mxms90xg.js";
65
+ } from "./cli-wgnkk2ae.js";
66
66
  import {
67
67
  getCurrentVersion
68
- } from "./cli-jh6h1myg.js";
68
+ } from "./cli-wzb6j1d9.js";
69
69
  import {
70
70
  __commonJS,
71
71
  __require,
@@ -109978,7 +109978,7 @@ async function generateThreatModelForEndpoint(ctx, input) {
109978
109978
  return threatModelLimiter(async () => {
109979
109979
  if (ctx.abortSignal?.aborted)
109980
109980
  return null;
109981
- const { CodeAgent } = await import("./agent-xg2xarp3.js");
109981
+ const { CodeAgent } = await import("./agent-ygmdd47f.js");
109982
109982
  const subagentId = `threat-model-${sanitize(input.appName)}-${sanitize(input.routePath)}`;
109983
109983
  ctx.eventBus?.emit("subagent-spawn", {
109984
109984
  subagentId,
@@ -110667,7 +110667,7 @@ When to use delegate_to_auth_subagent vs authenticate_session:
110667
110667
  if (credentials) {
110668
110668
  ctx.session.credentialManager.addFromAuthCredentials(credentials);
110669
110669
  }
110670
- const { runAuthenticationAgent } = await import("./authentication-jt2jbqj2.js");
110670
+ const { runAuthenticationAgent } = await import("./authentication-30wrh2pf.js");
110671
110671
  const localBus = new AgentEventBus;
110672
110672
  AgentEventBus.attachChild(localBus, ctx.eventBus, subagentId);
110673
110673
  const result = await runAuthenticationAgent({
@@ -111580,7 +111580,7 @@ should be passed directly to spawn_pentest_swarm for deep testing.`,
111580
111580
  });
111581
111581
  if (cwd) {
111582
111582
  try {
111583
- const { WhiteboxAttackSurfaceAgent } = await import("./agent-xw97p62b.js");
111583
+ const { WhiteboxAttackSurfaceAgent } = await import("./agent-826kcm6p.js");
111584
111584
  const localBus = new AgentEventBus;
111585
111585
  AgentEventBus.attachChild(localBus, ctx.eventBus, subagentId);
111586
111586
  const agent = new WhiteboxAttackSurfaceAgent({
@@ -111629,7 +111629,7 @@ should be passed directly to spawn_pentest_swarm for deep testing.`,
111629
111629
  }
111630
111630
  }
111631
111631
  try {
111632
- const { BlackboxAttackSurfaceAgent } = await import("./blackboxAgent-rq9z4g0p.js");
111632
+ const { BlackboxAttackSurfaceAgent } = await import("./blackboxAgent-q1z639g8.js");
111633
111633
  const localBus = new AgentEventBus;
111634
111634
  AgentEventBus.attachChild(localBus, ctx.eventBus, subagentId);
111635
111635
  const agent = new BlackboxAttackSurfaceAgent({
@@ -111705,7 +111705,7 @@ Pass every target you want tested — the swarm handles concurrency automaticall
111705
111705
  toolCallDescription: exports_external.string().describe("A concise, human-readable description of what this tool call is doing")
111706
111706
  }),
111707
111707
  execute: async ({ targets }) => {
111708
- const { runPentestSwarm, DEFAULT_CONCURRENCY } = await import("./pentest-tv2e2ygn.js");
111708
+ const { runPentestSwarm, DEFAULT_CONCURRENCY } = await import("./pentest-mczd9b5r.js");
111709
111709
  if (!ctx.model) {
111710
111710
  return {
111711
111711
  success: false,
@@ -111833,7 +111833,7 @@ Returns an array of results with the text output from each agent.`,
111833
111833
  });
111834
111834
  }
111835
111835
  async function runSingleCodingAgent(ctx, codebasePath, objective, agentIndex, name) {
111836
- const { CodeAgent } = await import("./agent-xg2xarp3.js");
111836
+ const { CodeAgent } = await import("./agent-ygmdd47f.js");
111837
111837
  const subagentId = `coding-agent-${agentIndex}`;
111838
111838
  ctx.eventBus?.emit("subagent-spawn", {
111839
111839
  subagentId,
@@ -111894,7 +111894,7 @@ Omit \`cwd\` for blackbox mode (live target probing only).`,
111894
111894
  toolCallDescription: exports_external.string().describe("A concise, human-readable description of what this tool call is doing")
111895
111895
  }),
111896
111896
  execute: async ({ target, cwd }) => {
111897
- const { runPentestWorkflow: workflow } = await import("./pentest-tv2e2ygn.js");
111897
+ const { runPentestWorkflow: workflow } = await import("./pentest-mczd9b5r.js");
111898
111898
  if (!ctx.model) {
111899
111899
  return {
111900
111900
  success: false,
@@ -14,31 +14,31 @@ import {
14
14
  updateManifestEntryStatus,
15
15
  writeAgentManifest,
16
16
  writeExecutionMetrics
17
- } from "./cli-e1axrn0s.js";
17
+ } from "./cli-z5t4337e.js";
18
18
  import {
19
19
  TargetedPentestAgent,
20
20
  buildPentestSystemPrompt
21
- } from "./cli-e9n1z1dp.js";
21
+ } from "./cli-v3f4zxgx.js";
22
+ import {
23
+ EndpointSchema
24
+ } from "./cli-0fy9j5dw.js";
22
25
  import {
23
26
  BlackboxAttackSurfaceAgent
24
- } from "./cli-jp69ygke.js";
27
+ } from "./cli-60drere9.js";
25
28
  import {
26
29
  createThreatModelPrompt
27
30
  } from "./cli-fw5r7pfj.js";
28
31
  import {
29
32
  CodeAgent
30
- } from "./cli-a9bs4kq9.js";
31
- import {
32
- EndpointSchema
33
- } from "./cli-0fy9j5dw.js";
33
+ } from "./cli-30w3njcs.js";
34
34
  import {
35
35
  FindingsRegistry,
36
36
  OffensiveSecurityAgent,
37
37
  PLAN_MODE_TOOL_NAMES
38
- } from "./cli-rn3mezj8.js";
38
+ } from "./cli-9agejx4x.js";
39
39
  import {
40
40
  hasToolCall
41
- } from "./cli-ctb1vg2p.js";
41
+ } from "./cli-wntm40ab.js";
42
42
  import {
43
43
  exports_external1 as exports_external,
44
44
  init_zod
@@ -3,7 +3,7 @@ import {
3
3
  ensureValidToken,
4
4
  getPensarApiUrl,
5
5
  getPensarGatewayUrl
6
- } from "./cli-mxms90xg.js";
6
+ } from "./cli-wgnkk2ae.js";
7
7
 
8
8
  // src/core/auth/signing.ts
9
9
  import { createHmac, createHash, randomUUID } from "crypto";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  OffensiveSecurityAgent,
3
3
  readPlan
4
- } from "./cli-rn3mezj8.js";
4
+ } from "./cli-9agejx4x.js";
5
5
  import {
6
6
  exports_external1 as exports_external,
7
7
  init_zod
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getCurrentVersion
3
- } from "./cli-jh6h1myg.js";
3
+ } from "./cli-wzb6j1d9.js";
4
4
 
5
5
  // src/core/config/config.ts
6
6
  import os from "os";
@@ -23,18 +23,11 @@ async function init() {
23
23
  const version = getCurrentVersion();
24
24
  return { ...DEFAULT_CONFIG, version };
25
25
  }
26
- async function get() {
27
- const folder = path.join(os.homedir(), ".pensar");
28
- const file = path.join(folder, "config.json");
29
- const exists = await fs.access(file).then(() => true).catch(() => false);
30
- if (!exists) {
31
- return await init();
32
- }
33
- const config = await fs.readFile(file, "utf8");
34
- const parsedConfig = JSON.parse(config);
26
+ function applyEnvFallbacks(parsedConfig) {
35
27
  const version = getCurrentVersion();
36
28
  return {
37
29
  ...parsedConfig,
30
+ responsibleUseAccepted: parsedConfig.responsibleUseAccepted ?? false,
38
31
  version,
39
32
  openAiAPIKey: parsedConfig.openAiAPIKey ?? process.env.OPENAI_API_KEY,
40
33
  anthropicAPIKey: parsedConfig.anthropicAPIKey ?? process.env.ANTHROPIC_API_KEY,
@@ -48,6 +41,18 @@ async function get() {
48
41
  runloopAPIKey: parsedConfig.runloopAPIKey ?? process.env.RUNLOOP_API_KEY
49
42
  };
50
43
  }
44
+ async function get() {
45
+ const folder = path.join(os.homedir(), ".pensar");
46
+ const file = path.join(folder, "config.json");
47
+ const exists = await fs.access(file).then(() => true).catch(() => false);
48
+ if (!exists) {
49
+ await init();
50
+ return applyEnvFallbacks(DEFAULT_CONFIG);
51
+ }
52
+ const config = await fs.readFile(file, "utf8");
53
+ const parsedConfig = JSON.parse(config);
54
+ return applyEnvFallbacks(parsedConfig);
55
+ }
51
56
  async function update(config) {
52
57
  const folder = path.join(os.homedir(), ".pensar");
53
58
  const file = path.join(folder, "config.json");
@@ -2,7 +2,7 @@ import {
2
2
  get,
3
3
  init,
4
4
  update
5
- } from "./cli-am3dgbv8.js";
5
+ } from "./cli-vv6j2mec.js";
6
6
 
7
7
  // src/core/api/constants.ts
8
8
  var PENSAR_API_BASE_URL = "https://api.pensar.dev";
@@ -1,7 +1,3 @@
1
- import {
2
- getModelInfo,
3
- init_models
4
- } from "./cli-03z6pswp.js";
5
1
  import {
6
2
  AISDKError,
7
3
  APICallError,
@@ -75,12 +71,16 @@ import {
75
71
  } from "./cli-0ghkg3w6.js";
76
72
  import {
77
73
  signGatewayRequest
78
- } from "./cli-39d581n4.js";
74
+ } from "./cli-tw7mm283.js";
79
75
  import {
80
76
  config,
81
77
  ensureValidToken,
82
78
  getPensarGatewayUrl
83
- } from "./cli-mxms90xg.js";
79
+ } from "./cli-wgnkk2ae.js";
80
+ import {
81
+ getModelInfo,
82
+ init_models
83
+ } from "./cli-03z6pswp.js";
84
84
  import {
85
85
  __commonJS,
86
86
  __esm,
@@ -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.4.0",
6
+ version: "1.5.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",
@@ -2,7 +2,7 @@ import {
2
2
  CweEntrySchema,
3
3
  ValidatedCweEntrySchema,
4
4
  hasCanonicalName
5
- } from "./cli-rn3mezj8.js";
5
+ } from "./cli-9agejx4x.js";
6
6
  import {
7
7
  exports_external1 as exports_external,
8
8
  init_zod
package/build/cli.js CHANGED
@@ -6,18 +6,18 @@ import {
6
6
  import"./cli-3y0dgy56.js";
7
7
  import {
8
8
  init_toolset
9
- } from "./cli-ctb1vg2p.js";
10
- import {
11
- init_models
12
- } from "./cli-03z6pswp.js";
9
+ } from "./cli-wntm40ab.js";
13
10
  import"./cli-0ghkg3w6.js";
14
- import"./cli-39d581n4.js";
15
- import"./cli-mxms90xg.js";
16
- import"./cli-am3dgbv8.js";
11
+ import"./cli-tw7mm283.js";
12
+ import"./cli-wgnkk2ae.js";
13
+ import"./cli-gpnb45ck.js";
14
+ import"./cli-vv6j2mec.js";
17
15
  import {
18
16
  package_default
19
- } from "./cli-jh6h1myg.js";
20
- import"./cli-gpnb45ck.js";
17
+ } from "./cli-wzb6j1d9.js";
18
+ import {
19
+ init_models
20
+ } from "./cli-03z6pswp.js";
21
21
  import {
22
22
  __require,
23
23
  __toESM
@@ -25,7 +25,7 @@ import {
25
25
  // package.json
26
26
  var package_default2 = {
27
27
  name: "@pensar/apex",
28
- version: "1.4.0",
28
+ version: "1.5.0",
29
29
  description: "AI-powered penetration testing CLI tool with terminal UI",
30
30
  module: "src/tui/index.tsx",
31
31
  main: "build/cli.js",
@@ -494,6 +494,26 @@ async function createInstrumentedBus(session) {
494
494
  });
495
495
  return { bus, cleanup: async () => wandbCleanup?.() };
496
496
  }
497
+ async function resolveCliModel() {
498
+ const explicit = getArg("--model");
499
+ if (explicit)
500
+ return explicit;
501
+ const { config: appConfig } = await import("./index-g9ghthsc.js");
502
+ const { getDefaultModelForConfig } = await import("./utils-jf52rmrb.js");
503
+ const pensarConfig = await appConfig.get();
504
+ const defaultModel = getDefaultModelForConfig(pensarConfig);
505
+ if (!defaultModel) {
506
+ console.error(`Error: No AI provider configured. Set one of:
507
+ ` + ` PENSAR_API_KEY \u2014 Pensar Console (recommended)
508
+ ` + ` ANTHROPIC_API_KEY \u2014 Anthropic direct
509
+ ` + ` OPENAI_API_KEY \u2014 OpenAI
510
+ ` + ` OPENROUTER_API_KEY \u2014 OpenRouter
511
+ ` + `
512
+ Or run 'pensar login' to connect to Pensar Console.`);
513
+ process.exit(1);
514
+ }
515
+ return defaultModel.id;
516
+ }
497
517
  function showHelp() {
498
518
  console.log(`Pensar - AI-Powered Penetration Testing CLI
499
519
 
@@ -518,13 +538,13 @@ Usage:
518
538
  operator options (-p):
519
539
  -p, --prompt <text|@file> (required) Prompt for the operator agent
520
540
  --target <url> Target URL / domain / IP
521
- --model <model> AI model (default: claude-sonnet-4-5)
541
+ --model <model> AI model (default: auto-selected from configured provider)
522
542
 
523
543
  pentest options:
524
544
  --target <url> (required) Target URL / domain / IP
525
545
  --cwd <path> Source code path \u2014 enables whitebox attack surface
526
546
  --mode <mode> Pentest mode: exfil (pivoting & flag extraction)
527
- --model <model> AI model (default: claude-sonnet-4-5)
547
+ --model <model> AI model (default: auto-selected from configured provider)
528
548
  --extended-thinking Enable extended thinking for supported models
529
549
  --task-driven Enable task-driven architecture (experimental)
530
550
  --prompt <text|@file> Guidance for the pentest agent (inline text or @filepath)
@@ -533,11 +553,11 @@ pentest options:
533
553
  targeted-pentest options:
534
554
  --target <url> (required) Target URL / domain / IP
535
555
  --objective <text> (required, repeatable) Testing objective
536
- --model <model> AI model (default: claude-sonnet-4-5)
556
+ --model <model> AI model (default: auto-selected from configured provider)
537
557
 
538
558
  threat-model options:
539
559
  --output, -o <path> Output file path (default: ./threat-model.md)
540
- --model <model> AI model (default: claude-sonnet-4-5)
560
+ --model <model> AI model (default: auto-selected from configured provider)
541
561
 
542
562
  Global options:
543
563
  -h, --help Show this help message
@@ -550,10 +570,9 @@ Global options:
550
570
  async function runPentest() {
551
571
  const { config: config2 } = await import("./main-3d7dfdvs.js").then((m)=>__toESM(m.default,1));
552
572
  config2();
553
- const { runPentestAgent } = await import("./blackboxPentest-3wwyqckx.js");
554
- const { sessions } = await import("./index-8cn46ysy.js");
555
- const { config: appConfig } = await import("./index-bx88n3qr.js");
556
- const { getDefaultModelForConfig } = await import("./utils-8yqe12jr.js");
573
+ const { runPentestAgent } = await import("./blackboxPentest-9v0xt57e.js");
574
+ const { sessions } = await import("./index-q06a58c3.js");
575
+ const { config: appConfig } = await import("./index-g9ghthsc.js");
557
576
  const target = getArgRequired("--target");
558
577
  const cwd = getArg("--cwd");
559
578
  const mode = getArg("--mode");
@@ -565,8 +584,7 @@ async function runPentest() {
565
584
  const resolvedPrompt = promptRaw ? resolveFlagValue(promptRaw) : undefined;
566
585
  const prompt = combinePromptParts(resolvedTm, resolvedPrompt);
567
586
  const pensarConfig = await appConfig.get();
568
- const dynamicDefault = getDefaultModelForConfig(pensarConfig)?.id ?? "claude-sonnet-4-5";
569
- const model = getArg("--model") ?? dynamicDefault;
587
+ const model = await resolveCliModel();
570
588
  const { exfilMode, warning: modeWarning } = resolvePentestMode(mode);
571
589
  if (modeWarning) {
572
590
  console.warn(modeWarning);
@@ -618,15 +636,13 @@ Report: ${reportPath}` : ""}`);
618
636
  async function runTargetedPentest() {
619
637
  const { config: config2 } = await import("./main-3d7dfdvs.js").then((m)=>__toESM(m.default,1));
620
638
  config2();
621
- const { runTargetedPentestAgent } = await import("./targetedPentest-nm0y2fv4.js");
622
- const { sessions } = await import("./index-8cn46ysy.js");
623
- const { config: appConfig } = await import("./index-bx88n3qr.js");
624
- const { getDefaultModelForConfig } = await import("./utils-8yqe12jr.js");
639
+ const { runTargetedPentestAgent } = await import("./targetedPentest-j457sh84.js");
640
+ const { sessions } = await import("./index-q06a58c3.js");
641
+ const { config: appConfig } = await import("./index-g9ghthsc.js");
625
642
  const target = getArgRequired("--target");
626
643
  const objectives = getAllArgs("--objective");
627
644
  const pensarConfig = await appConfig.get();
628
- const dynamicDefault = getDefaultModelForConfig(pensarConfig)?.id ?? "claude-sonnet-4-5";
629
- const model = getArg("--model") ?? dynamicDefault;
645
+ const model = await resolveCliModel();
630
646
  if (objectives.length === 0) {
631
647
  console.error("Error: at least one --objective is required");
632
648
  process.exit(1);
@@ -670,13 +686,11 @@ POCs: ${pocsPath}`);
670
686
  async function runThreatModel() {
671
687
  const { config: config2 } = await import("./main-3d7dfdvs.js").then((m)=>__toESM(m.default,1));
672
688
  config2();
673
- const { runThreatModelWorkflow } = await import("./threatModel-qrtk7rj4.js");
674
- const { config: appConfig } = await import("./index-bx88n3qr.js");
675
- const { getDefaultModelForConfig } = await import("./utils-8yqe12jr.js");
689
+ const { runThreatModelWorkflow } = await import("./threatModel-kk3f89wx.js");
690
+ const { config: appConfig } = await import("./index-g9ghthsc.js");
676
691
  const path = await import("path");
677
692
  const pensarConfig = await appConfig.get();
678
- const dynamicDefault = getDefaultModelForConfig(pensarConfig)?.id ?? "claude-sonnet-4-5";
679
- const model = getArg("--model") ?? dynamicDefault;
693
+ const model = await resolveCliModel();
680
694
  const outputArg = getArg("--output") ?? getArg("-o") ?? "threat-model.md";
681
695
  const resolvedPath = path.isAbsolute(outputArg) ? outputArg : path.resolve(process.cwd(), outputArg);
682
696
  const sep = "=".repeat(60);
@@ -709,11 +723,10 @@ Threat model written to: ${resolvedPath}`);
709
723
  async function runOperator() {
710
724
  const { config: config2 } = await import("./main-3d7dfdvs.js").then((m)=>__toESM(m.default,1));
711
725
  config2();
712
- const { runOffensiveSecurityAgent } = await import("./offesecAgent-pxnz905y.js");
713
- const { sessions, normalizeMessages, getResumeMessages } = await import("./index-8cn46ysy.js");
714
- const { ALL_TOOL_NAMES, SKILL_TOOL_NAMES } = await import("./index-hg0e235k.js");
715
- const { config: appConfig } = await import("./index-bx88n3qr.js");
716
- const { getDefaultModelForConfig } = await import("./utils-8yqe12jr.js");
726
+ const { runOffensiveSecurityAgent } = await import("./offesecAgent-h0ersxej.js");
727
+ const { sessions, normalizeMessages, getResumeMessages } = await import("./index-q06a58c3.js");
728
+ const { ALL_TOOL_NAMES, SKILL_TOOL_NAMES } = await import("./index-0pcd0tmc.js");
729
+ const { config: appConfig } = await import("./index-g9ghthsc.js");
717
730
  const { createInterface } = await import("readline");
718
731
  const { readFileSync: readFileSync2, existsSync } = await import("fs");
719
732
  const path = await import("path");
@@ -726,8 +739,7 @@ async function runOperator() {
726
739
  const prompt = resolveFlagValue(promptRaw);
727
740
  const target = getArg("--target");
728
741
  const pensarConfig = await appConfig.get();
729
- const dynamicDefault = getDefaultModelForConfig(pensarConfig)?.id ?? "claude-sonnet-4-5";
730
- const model = getArg("--model") ?? dynamicDefault;
742
+ const model = await resolveCliModel();
731
743
  const sep = "\u2500".repeat(60);
732
744
  console.log(`${sep}
733
745
  OPERATOR SESSION
@@ -823,25 +835,25 @@ if (hasFlag("-p") || command === "--prompt") {
823
835
  await runTargetedPentest();
824
836
  } else if (command === "login" || command === "auth") {
825
837
  process.argv = [process.argv[0], process.argv[1], ...args.slice(1)];
826
- await import("./auth-sc1hmsgv.js");
838
+ await import("./auth-xsgt862b.js");
827
839
  } else if (command === "uninstall") {
828
840
  process.argv = [process.argv[0], process.argv[1], ...args.slice(1)];
829
- await import("./uninstall-cy8m1788.js");
841
+ await import("./uninstall-8cqb79tf.js");
830
842
  } else if (command === "projects") {
831
843
  process.argv = [process.argv[0], process.argv[1], ...args.slice(1)];
832
- await import("./projects-wxke4080.js");
844
+ await import("./projects-9nf4z056.js");
833
845
  } else if (command === "pentests") {
834
846
  process.argv = [process.argv[0], process.argv[1], ...args.slice(1)];
835
- await import("./pentests-s9462spt.js");
847
+ await import("./pentests-dgf16fbb.js");
836
848
  } else if (command === "issues") {
837
849
  process.argv = [process.argv[0], process.argv[1], ...args.slice(1)];
838
- await import("./issues-k3tx6cng.js");
850
+ await import("./issues-dcb00e79.js");
839
851
  } else if (command === "fixes") {
840
852
  process.argv = [process.argv[0], process.argv[1], ...args.slice(1)];
841
- await import("./fixes-05de9mv3.js");
853
+ await import("./fixes-64yfftv5.js");
842
854
  } else if (command === "logs") {
843
855
  process.argv = [process.argv[0], process.argv[1], ...args.slice(1)];
844
- await import("./logs-q33a8qag.js");
856
+ await import("./logs-e6v46nst.js");
845
857
  } else if (command === "threat-model") {
846
858
  await runThreatModel();
847
859
  } else if (command === "doctor") {
@@ -853,7 +865,7 @@ if (hasFlag("-p") || command === "--prompt") {
853
865
  console.error("All other commands work with Node \u2014 run 'pensar --help'.");
854
866
  process.exit(1);
855
867
  }
856
- await import("./index-vaba4g8m.js");
868
+ await import("./index-532gd4bb.js");
857
869
  } else {
858
870
  console.error(`Error: Unknown command '${command}'`);
859
871
  console.error();
@@ -2,10 +2,10 @@
2
2
  import {
3
3
  getFix,
4
4
  listFixes
5
- } from "./cli-6r72e7et.js";
6
- import"./cli-mxms90xg.js";
7
- import"./cli-am3dgbv8.js";
8
- import"./cli-jh6h1myg.js";
5
+ } from "./cli-4cgqez3x.js";
6
+ import"./cli-wgnkk2ae.js";
7
+ import"./cli-vv6j2mec.js";
8
+ import"./cli-wzb6j1d9.js";
9
9
  import"./cli-8rxa073f.js";
10
10
 
11
11
  // src/cli/fixes.ts
@@ -7,18 +7,18 @@ import {
7
7
  SKILL_TOOL_NAMES,
8
8
  StepTraceWriter,
9
9
  createAllTools
10
- } from "./cli-rn3mezj8.js";
10
+ } from "./cli-9agejx4x.js";
11
11
  import"./cli-tp1tqn3k.js";
12
- import"./cli-evenmfmt.js";
12
+ import"./cli-710a5ab8.js";
13
13
  import"./cli-3y0dgy56.js";
14
- import"./cli-ctb1vg2p.js";
15
- import"./cli-03z6pswp.js";
14
+ import"./cli-wntm40ab.js";
16
15
  import"./cli-0ghkg3w6.js";
17
- import"./cli-39d581n4.js";
18
- import"./cli-mxms90xg.js";
19
- import"./cli-am3dgbv8.js";
20
- import"./cli-jh6h1myg.js";
16
+ import"./cli-tw7mm283.js";
17
+ import"./cli-wgnkk2ae.js";
21
18
  import"./cli-gpnb45ck.js";
19
+ import"./cli-vv6j2mec.js";
20
+ import"./cli-wzb6j1d9.js";
21
+ import"./cli-03z6pswp.js";
22
22
  import"./cli-8rxa073f.js";
23
23
  export {
24
24
  createAllTools,
@@ -1,20 +1,16 @@
1
- import {
2
- AVAILABLE_PROVIDERS,
3
- init_types
4
- } from "./cli-yz80qkzn.js";
5
1
  import {
6
2
  buildPentestPrompt,
7
3
  buildThreatModelPrompt,
8
4
  createSkillsRegistry,
9
5
  runOffensiveSecurityAgent
10
- } from "./cli-k0tycc78.js";
6
+ } from "./cli-1c0yqbxc.js";
11
7
  import {
12
8
  REPORT_FILENAME_MD,
13
9
  convertModelMessagesToUI,
14
10
  loadSubagents,
15
11
  readExecutionMetrics,
16
12
  writeExecutionMetrics
17
- } from "./cli-e1axrn0s.js";
13
+ } from "./cli-z5t4337e.js";
18
14
  import {
19
15
  createThreatModelPrompt
20
16
  } from "./cli-fw5r7pfj.js";
@@ -22,6 +18,10 @@ import {
22
18
  createWeaveTracer,
23
19
  resolveConfig
24
20
  } from "./cli-pkdjamer.js";
21
+ import {
22
+ AVAILABLE_PROVIDERS,
23
+ init_types
24
+ } from "./cli-yz80qkzn.js";
25
25
  import {
26
26
  ALL_TOOL_NAMES,
27
27
  ASK_USER_QUESTIONS_TOOL_NAME,
@@ -38,14 +38,14 @@ import {
38
38
  planFilePath,
39
39
  readPlan,
40
40
  sessions
41
- } from "./cli-rn3mezj8.js";
41
+ } from "./cli-9agejx4x.js";
42
42
  import {
43
43
  detectOSAndEnhancePrompt
44
44
  } from "./cli-tp1tqn3k.js";
45
45
  import {
46
46
  read,
47
47
  write
48
- } from "./cli-evenmfmt.js";
48
+ } from "./cli-710a5ab8.js";
49
49
  import {
50
50
  getAutoPopulatedHosts,
51
51
  getAutoPopulatedPorts,
@@ -57,11 +57,7 @@ import {
57
57
  init_toolset,
58
58
  modelSupportsThinking,
59
59
  stepCountIs
60
- } from "./cli-ctb1vg2p.js";
61
- import {
62
- AVAILABLE_MODELS,
63
- init_models
64
- } from "./cli-03z6pswp.js";
60
+ } from "./cli-wntm40ab.js";
65
61
  import"./cli-0ghkg3w6.js";
66
62
  import {
67
63
  disconnect,
@@ -73,19 +69,23 @@ import {
73
69
  selectWorkspace,
74
70
  startDeviceFlow,
75
71
  validateGateway
76
- } from "./cli-39d581n4.js";
72
+ } from "./cli-tw7mm283.js";
77
73
  import {
78
74
  config,
79
75
  getPensarApiUrl,
80
76
  getPensarConsoleUrl
81
- } from "./cli-mxms90xg.js";
77
+ } from "./cli-wgnkk2ae.js";
78
+ import"./cli-gpnb45ck.js";
82
79
  import {
83
80
  update
84
- } from "./cli-am3dgbv8.js";
81
+ } from "./cli-vv6j2mec.js";
85
82
  import {
86
83
  checkForUpdate
87
- } from "./cli-jh6h1myg.js";
88
- import"./cli-gpnb45ck.js";
84
+ } from "./cli-wzb6j1d9.js";
85
+ import {
86
+ AVAILABLE_MODELS,
87
+ init_models
88
+ } from "./cli-03z6pswp.js";
89
89
  import {
90
90
  __commonJS,
91
91
  __esm,
@@ -197,7 +197,8 @@ var init_utils = __esm(() => {
197
197
  anthropic: "claude-opus-4-6",
198
198
  openai: "gpt-5.2-pro",
199
199
  google: "gemini-3.1-pro-preview",
200
- openrouter: "anthropic/claude-opus-4.6"
200
+ openrouter: "anthropic/claude-opus-4.6",
201
+ bedrock: "anthropic.claude-opus-4-6-v1"
201
202
  };
202
203
  });
203
204
 
@@ -69359,7 +69360,7 @@ function AppContent({
69359
69360
  toast(`Update available: v${currentVersion} → v${latestVersion}. Run: pensar upgrade`, "warn", 8000);
69360
69361
  });
69361
69362
  const checkAuthToken = async () => {
69362
- const { isTokenExpired, isConnected: isConnected2 } = await import("./index-fh4dtkm8.js");
69363
+ const { isTokenExpired, isConnected: isConnected2 } = await import("./index-wj1sggpd.js");
69363
69364
  if (isConnected2(config2.data) && config2.data.accessToken && isTokenExpired(config2.data.accessToken, 60) && !config2.data.refreshToken && !config2.data.pensarAPIKey) {
69364
69365
  toast("Your Pensar Console session has expired. Run /login to refresh.", "warn", 8000);
69365
69366
  }
@@ -2,8 +2,8 @@ import {
2
2
  get,
3
3
  init,
4
4
  update
5
- } from "./cli-am3dgbv8.js";
6
- import"./cli-jh6h1myg.js";
5
+ } from "./cli-vv6j2mec.js";
6
+ import"./cli-wzb6j1d9.js";
7
7
  import"./cli-8rxa073f.js";
8
8
 
9
9
  // src/core/config/index.ts
@@ -13,25 +13,25 @@ import {
13
13
  update,
14
14
  write,
15
15
  writeRaw
16
- } from "./cli-evenmfmt.js";
16
+ } from "./cli-710a5ab8.js";
17
17
  import {
18
18
  ToolsetStateSchema,
19
19
  exports_toolset,
20
20
  init_toolset,
21
21
  toggleTool
22
- } from "./cli-ctb1vg2p.js";
23
- import"./cli-03z6pswp.js";
22
+ } from "./cli-wntm40ab.js";
24
23
  import {
25
24
  init_zod,
26
25
  zod_default
27
26
  } from "./cli-0ghkg3w6.js";
28
- import"./cli-39d581n4.js";
29
- import"./cli-mxms90xg.js";
30
- import"./cli-am3dgbv8.js";
27
+ import"./cli-tw7mm283.js";
28
+ import"./cli-wgnkk2ae.js";
29
+ import"./cli-gpnb45ck.js";
30
+ import"./cli-vv6j2mec.js";
31
31
  import {
32
32
  getCurrentVersion
33
- } from "./cli-jh6h1myg.js";
34
- import"./cli-gpnb45ck.js";
33
+ } from "./cli-wzb6j1d9.js";
34
+ import"./cli-03z6pswp.js";
35
35
  import {
36
36
  __require,
37
37
  __toCommonJS
@@ -9,15 +9,15 @@ import {
9
9
  signGatewayRequest,
10
10
  startDeviceFlow,
11
11
  validateGateway
12
- } from "./cli-39d581n4.js";
12
+ } from "./cli-tw7mm283.js";
13
13
  import {
14
14
  ensureValidToken,
15
15
  fetchWorkOSClientId,
16
16
  isTokenExpired,
17
17
  refreshAccessToken
18
- } from "./cli-mxms90xg.js";
19
- import"./cli-am3dgbv8.js";
20
- import"./cli-jh6h1myg.js";
18
+ } from "./cli-wgnkk2ae.js";
19
+ import"./cli-vv6j2mec.js";
20
+ import"./cli-wzb6j1d9.js";
21
21
  import"./cli-8rxa073f.js";
22
22
  export {
23
23
  validateGateway,
@@ -3,10 +3,10 @@ import {
3
3
  getIssue,
4
4
  listIssues,
5
5
  updateIssue
6
- } from "./cli-6r72e7et.js";
7
- import"./cli-mxms90xg.js";
8
- import"./cli-am3dgbv8.js";
9
- import"./cli-jh6h1myg.js";
6
+ } from "./cli-4cgqez3x.js";
7
+ import"./cli-wgnkk2ae.js";
8
+ import"./cli-vv6j2mec.js";
9
+ import"./cli-wzb6j1d9.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-6r72e7et.js";
6
- import"./cli-mxms90xg.js";
7
- import"./cli-am3dgbv8.js";
8
- import"./cli-jh6h1myg.js";
5
+ } from "./cli-4cgqez3x.js";
6
+ import"./cli-wgnkk2ae.js";
7
+ import"./cli-vv6j2mec.js";
8
+ import"./cli-wzb6j1d9.js";
9
9
  import"./cli-8rxa073f.js";
10
10
 
11
11
  // src/cli/logs.ts
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  OffensiveSecurityAgent
3
- } from "./cli-rn3mezj8.js";
3
+ } from "./cli-9agejx4x.js";
4
4
  import"./cli-tp1tqn3k.js";
5
- import"./cli-evenmfmt.js";
5
+ import"./cli-710a5ab8.js";
6
6
  import"./cli-3y0dgy56.js";
7
- import"./cli-ctb1vg2p.js";
8
- import"./cli-03z6pswp.js";
7
+ import"./cli-wntm40ab.js";
9
8
  import"./cli-0ghkg3w6.js";
10
- import"./cli-39d581n4.js";
11
- import"./cli-mxms90xg.js";
12
- import"./cli-am3dgbv8.js";
13
- import"./cli-jh6h1myg.js";
9
+ import"./cli-tw7mm283.js";
10
+ import"./cli-wgnkk2ae.js";
14
11
  import"./cli-gpnb45ck.js";
12
+ import"./cli-vv6j2mec.js";
13
+ import"./cli-wzb6j1d9.js";
14
+ import"./cli-03z6pswp.js";
15
15
  import"./cli-8rxa073f.js";
16
16
 
17
17
  // src/core/api/offesecAgent.ts
@@ -2,25 +2,25 @@ import {
2
2
  DEFAULT_CONCURRENCY,
3
3
  runPentestSwarm,
4
4
  runPentestWorkflow
5
- } from "./cli-vwyn3es3.js";
6
- import"./cli-e1axrn0s.js";
7
- import"./cli-e9n1z1dp.js";
8
- import"./cli-jp69ygke.js";
9
- import"./cli-fw5r7pfj.js";
10
- import"./cli-a9bs4kq9.js";
5
+ } from "./cli-rke1rjpf.js";
6
+ import"./cli-z5t4337e.js";
7
+ import"./cli-v3f4zxgx.js";
11
8
  import"./cli-0fy9j5dw.js";
12
- import"./cli-rn3mezj8.js";
9
+ import"./cli-60drere9.js";
10
+ import"./cli-fw5r7pfj.js";
11
+ import"./cli-30w3njcs.js";
12
+ import"./cli-9agejx4x.js";
13
13
  import"./cli-tp1tqn3k.js";
14
- import"./cli-evenmfmt.js";
14
+ import"./cli-710a5ab8.js";
15
15
  import"./cli-3y0dgy56.js";
16
- import"./cli-ctb1vg2p.js";
17
- import"./cli-03z6pswp.js";
16
+ import"./cli-wntm40ab.js";
18
17
  import"./cli-0ghkg3w6.js";
19
- import"./cli-39d581n4.js";
20
- import"./cli-mxms90xg.js";
21
- import"./cli-am3dgbv8.js";
22
- import"./cli-jh6h1myg.js";
18
+ import"./cli-tw7mm283.js";
19
+ import"./cli-wgnkk2ae.js";
23
20
  import"./cli-gpnb45ck.js";
21
+ import"./cli-vv6j2mec.js";
22
+ import"./cli-wzb6j1d9.js";
23
+ import"./cli-03z6pswp.js";
24
24
  import"./cli-8rxa073f.js";
25
25
  export {
26
26
  runPentestWorkflow,
@@ -3,10 +3,10 @@ import {
3
3
  dispatchPentest,
4
4
  getScan,
5
5
  listScans
6
- } from "./cli-6r72e7et.js";
7
- import"./cli-mxms90xg.js";
8
- import"./cli-am3dgbv8.js";
9
- import"./cli-jh6h1myg.js";
6
+ } from "./cli-4cgqez3x.js";
7
+ import"./cli-wgnkk2ae.js";
8
+ import"./cli-vv6j2mec.js";
9
+ import"./cli-wzb6j1d9.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-6r72e7et.js";
5
- import"./cli-mxms90xg.js";
6
- import"./cli-am3dgbv8.js";
7
- import"./cli-jh6h1myg.js";
4
+ } from "./cli-4cgqez3x.js";
5
+ import"./cli-wgnkk2ae.js";
6
+ import"./cli-vv6j2mec.js";
7
+ import"./cli-wzb6j1d9.js";
8
8
  import"./cli-8rxa073f.js";
9
9
 
10
10
  // src/cli/projects.ts
@@ -1,18 +1,18 @@
1
1
  import {
2
2
  TargetedPentestAgent
3
- } from "./cli-e9n1z1dp.js";
4
- import"./cli-rn3mezj8.js";
3
+ } from "./cli-v3f4zxgx.js";
4
+ import"./cli-9agejx4x.js";
5
5
  import"./cli-tp1tqn3k.js";
6
- import"./cli-evenmfmt.js";
6
+ import"./cli-710a5ab8.js";
7
7
  import"./cli-3y0dgy56.js";
8
- import"./cli-ctb1vg2p.js";
9
- import"./cli-03z6pswp.js";
8
+ import"./cli-wntm40ab.js";
10
9
  import"./cli-0ghkg3w6.js";
11
- import"./cli-39d581n4.js";
12
- import"./cli-mxms90xg.js";
13
- import"./cli-am3dgbv8.js";
14
- import"./cli-jh6h1myg.js";
10
+ import"./cli-tw7mm283.js";
11
+ import"./cli-wgnkk2ae.js";
15
12
  import"./cli-gpnb45ck.js";
13
+ import"./cli-vv6j2mec.js";
14
+ import"./cli-wzb6j1d9.js";
15
+ import"./cli-03z6pswp.js";
16
16
  import"./cli-8rxa073f.js";
17
17
 
18
18
  // src/core/api/targetedPentest.ts
@@ -2,27 +2,27 @@ import {
2
2
  buildThreatModelPrompt,
3
3
  createSkillsRegistry,
4
4
  runOffensiveSecurityAgent
5
- } from "./cli-k0tycc78.js";
5
+ } from "./cli-1c0yqbxc.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-rn3mezj8.js";
12
+ } from "./cli-9agejx4x.js";
13
13
  import"./cli-tp1tqn3k.js";
14
- import"./cli-evenmfmt.js";
14
+ import"./cli-710a5ab8.js";
15
15
  import"./cli-3y0dgy56.js";
16
16
  import {
17
17
  stepCountIs
18
- } from "./cli-ctb1vg2p.js";
19
- import"./cli-03z6pswp.js";
18
+ } from "./cli-wntm40ab.js";
20
19
  import"./cli-0ghkg3w6.js";
21
- import"./cli-39d581n4.js";
22
- import"./cli-mxms90xg.js";
23
- import"./cli-am3dgbv8.js";
24
- import"./cli-jh6h1myg.js";
20
+ import"./cli-tw7mm283.js";
21
+ import"./cli-wgnkk2ae.js";
25
22
  import"./cli-gpnb45ck.js";
23
+ import"./cli-vv6j2mec.js";
24
+ import"./cli-wzb6j1d9.js";
25
+ import"./cli-03z6pswp.js";
26
26
  import"./cli-8rxa073f.js";
27
27
 
28
28
  // src/core/workflows/threatModel.ts
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env bun
2
2
  import {
3
3
  detectInstallMethod
4
- } from "./cli-jh6h1myg.js";
4
+ } from "./cli-wzb6j1d9.js";
5
5
  import {
6
6
  __require
7
7
  } from "./cli-8rxa073f.js";
@@ -24,7 +24,8 @@ var PREFERRED_MODEL_BY_PROVIDER = {
24
24
  anthropic: "claude-opus-4-6",
25
25
  openai: "gpt-5.2-pro",
26
26
  google: "gemini-3.1-pro-preview",
27
- openrouter: "anthropic/claude-opus-4.6"
27
+ openrouter: "anthropic/claude-opus-4.6",
28
+ bedrock: "anthropic.claude-opus-4-6-v1"
28
29
  };
29
30
  function getConfiguredProviders(config) {
30
31
  return AVAILABLE_PROVIDERS.map((provider) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pensar/apex",
3
- "version": "1.4.0",
3
+ "version": "1.5.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,19 +0,0 @@
1
- import {
2
- CodeAgent
3
- } from "./cli-a9bs4kq9.js";
4
- import"./cli-rn3mezj8.js";
5
- import"./cli-tp1tqn3k.js";
6
- import"./cli-evenmfmt.js";
7
- import"./cli-3y0dgy56.js";
8
- import"./cli-ctb1vg2p.js";
9
- import"./cli-03z6pswp.js";
10
- import"./cli-0ghkg3w6.js";
11
- import"./cli-39d581n4.js";
12
- import"./cli-mxms90xg.js";
13
- import"./cli-am3dgbv8.js";
14
- import"./cli-jh6h1myg.js";
15
- import"./cli-gpnb45ck.js";
16
- import"./cli-8rxa073f.js";
17
- export {
18
- CodeAgent
19
- };