@pensar/apex 2.2.0 → 2.3.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 (54) hide show
  1. package/build/agent-71z4e7jg.js +19 -0
  2. package/build/{agent-yayy5x2a.js → agent-9xna7jhw.js} +7 -7
  3. package/build/{agent-q5hwjdtb.js → agent-ga5fecfs.js} +9 -9
  4. package/build/{apps-0es69e2s.js → apps-43pqbz7r.js} +16 -16
  5. package/build/{auth-q73k9bh9.js → auth-c1z670rx.js} +32 -39
  6. package/build/authentication-hgs7ym0m.js +19 -0
  7. package/build/blackboxAgent-gem3mxa9.js +19 -0
  8. package/build/{blackboxPentest-h28nykk5.js → blackboxPentest-tgc2t3y6.js} +14 -14
  9. package/build/{cli-n114n8mk.js → cli-50906d27.js} +2 -2
  10. package/build/{cli-2jn8104w.js → cli-72b18z0n.js} +2 -2
  11. package/build/{cli-s43t5ay0.js → cli-7tw4xfnw.js} +1 -1
  12. package/build/{cli-7e5ad5js.js → cli-baqhqbe5.js} +2 -2
  13. package/build/{cli-1f636vzd.js → cli-barsn8br.js} +1 -1
  14. package/build/{cli-vgg6h2ax.js → cli-bnkgdywr.js} +1 -1
  15. package/build/{cli-1re2kv5v.js → cli-bv2807tj.js} +3 -3
  16. package/build/{cli-7n43wz82.js → cli-eveg9djy.js} +4 -2
  17. package/build/{cli-1cf5vy5m.js → cli-f71s6kcw.js} +58 -26
  18. package/build/{cli-51dkmt5p.js → cli-f7hanqbw.js} +1 -1
  19. package/build/{cli-knqx15w6.js → cli-j0n189ee.js} +2 -2
  20. package/build/{cli-ptzy9ak5.js → cli-jyp2c6th.js} +1 -1
  21. package/build/{cli-xbdn034b.js → cli-n2m2yy5b.js} +3983 -55
  22. package/build/{cli-4tc6888c.js → cli-vckbhnyk.js} +51 -2
  23. package/build/{cli-xpn9tsw0.js → cli-zk1ch6qf.js} +3 -3
  24. package/build/{cli-tz9yg4ew.js → cli-zm8tfpv7.js} +8 -8
  25. package/build/{cli-6kx46ck0.js → cli-zx8gk8xv.js} +19 -6
  26. package/build/cli.js +33 -33
  27. package/build/{config-xcf7rc6x.js → config-jzqjz606.js} +3 -3
  28. package/build/{doctor-98zperf9.js → doctor-q3qws68e.js} +6 -6
  29. package/build/{fastStrike-9tm6bedh.js → fastStrike-ebz1ph9a.js} +9 -9
  30. package/build/{fixes-1dry8j61.js → fixes-86yebsj0.js} +16 -16
  31. package/build/{index-31rwrakh.js → index-32hn8rrw.js} +2 -2
  32. package/build/{index-4hqbyzf5.js → index-468j74f3.js} +8 -8
  33. package/build/{index-f6ttv7np.js → index-8db1d2q3.js} +9 -5
  34. package/build/{index-0j880wqc.js → index-97vx1a24.js} +1080 -898
  35. package/build/{index-34h2nb6x.js → index-ag14v3sg.js} +3 -3
  36. package/build/{index-6dbym5jy.js → index-e8c8zcrf.js} +21 -8
  37. package/build/{index-pxwwcefn.js → index-mr2cseg4.js} +9 -9
  38. package/build/{issues-wjakj8yy.js → issues-kh4wg8c5.js} +44 -16
  39. package/build/{logs-ewyzcspy.js → logs-bj28xmbf.js} +16 -16
  40. package/build/{offesecAgent-7m9smy0t.js → offesecAgent-8ky7gccp.js} +8 -8
  41. package/build/pentest-rs0181nf.js +29 -0
  42. package/build/{pentests-1hcqjyk2.js → pentests-62d6zw6p.js} +16 -16
  43. package/build/{targetedPentest-3x13kqvc.js → targetedPentest-me4jnr3z.js} +9 -9
  44. package/build/{targets-nqz8w37e.js → targets-e5k1mrky.js} +16 -16
  45. package/build/threatModel-k4f3zgqd.js +27 -0
  46. package/build/{uninstall-p1q5pkx2.js → uninstall-jt1bca2p.js} +1 -1
  47. package/build/{upload-x7etpfp4.js → upload-krd8bnex.js} +6 -6
  48. package/build/{utils-kw6yh5yn.js → utils-skmqhyfg.js} +5 -5
  49. package/package.json +1 -1
  50. package/build/agent-3cdfwxcd.js +0 -19
  51. package/build/authentication-tqx2brcv.js +0 -19
  52. package/build/blackboxAgent-d0smgqt7.js +0 -19
  53. package/build/pentest-1cb5t0dt.js +0 -29
  54. package/build/threatModel-7f02av7y.js +0 -27
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  config,
3
3
  init_config
4
- } from "./cli-51dkmt5p.js";
4
+ } from "./cli-f7hanqbw.js";
5
5
  import {
6
6
  __esm
7
7
  } from "./cli-8rxa073f.js";
@@ -350,6 +350,55 @@ async function selectWorkspace(apiUrl, accessToken, workspaceId) {
350
350
  }
351
351
  return await response.json();
352
352
  }
353
+ async function createWorkspaceSelection(apiUrl, accessToken) {
354
+ const response = await fetch(`${apiUrl}/api/cli/workspace-selection`, {
355
+ method: "POST",
356
+ headers: {
357
+ "Content-Type": "application/json",
358
+ Authorization: `Bearer ${accessToken}`
359
+ }
360
+ });
361
+ if (!response.ok) {
362
+ throw new Error("Failed to start workspace selection");
363
+ }
364
+ return await response.json();
365
+ }
366
+ async function pollWorkspaceSelection(apiUrl, accessToken, selectionId, signal) {
367
+ const POLL_INTERVAL = 3000;
368
+ const TIMEOUT = 10 * 60 * 1000;
369
+ const deadline = Date.now() + TIMEOUT;
370
+ while (Date.now() < deadline) {
371
+ if (signal?.aborted)
372
+ throw new Error("Cancelled");
373
+ await sleep2(POLL_INTERVAL);
374
+ if (signal?.aborted)
375
+ throw new Error("Cancelled");
376
+ try {
377
+ const response = await fetch(`${apiUrl}/api/cli/workspace-selection?id=${encodeURIComponent(selectionId)}`, {
378
+ headers: { Authorization: `Bearer ${accessToken}` }
379
+ });
380
+ if (!response.ok)
381
+ continue;
382
+ const data = await response.json();
383
+ if (data.status === "complete" && data.workspaceId) {
384
+ return data.workspaceId;
385
+ }
386
+ if (data.status === "expired") {
387
+ throw new Error("Workspace selection expired. Please run `pensar login` again.");
388
+ }
389
+ } catch (err) {
390
+ if (signal?.aborted)
391
+ throw new Error("Cancelled");
392
+ if (err instanceof Error && err.message.includes("Please try again")) {
393
+ throw err;
394
+ }
395
+ if (err instanceof Error && err.message.includes("expired")) {
396
+ throw err;
397
+ }
398
+ }
399
+ }
400
+ throw new Error("Workspace selection timed out. Please try again.");
401
+ }
353
402
  var init_workspaces = () => {};
354
403
 
355
404
  // src/core/auth/index.ts
@@ -362,4 +411,4 @@ var init_auth = __esm(() => {
362
411
  init_workspaces();
363
412
  });
364
413
 
365
- export { getPensarApiUrl, getPensarGatewayUrl, getPensarConsoleUrl, init_constants, isConnected, disconnect, startDeviceFlow, pollWorkOSToken, pollLegacyToken, isTokenExpired, ensureValidToken, validateGateway, signGatewayRequest, fetchWorkspaces, pollForWorkspaceCreation, selectWorkspace, init_auth };
414
+ export { getPensarApiUrl, getPensarGatewayUrl, getPensarConsoleUrl, init_constants, isConnected, disconnect, startDeviceFlow, pollWorkOSToken, pollLegacyToken, isTokenExpired, ensureValidToken, validateGateway, signGatewayRequest, fetchWorkspaces, pollForWorkspaceCreation, selectWorkspace, createWorkspaceSelection, pollWorkspaceSelection, init_auth };
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  OffensiveSecurityAgent
3
- } from "./cli-xbdn034b.js";
3
+ } from "./cli-n2m2yy5b.js";
4
4
  import {
5
5
  detectOSAndEnhancePrompt
6
- } from "./cli-s43t5ay0.js";
6
+ } from "./cli-7tw4xfnw.js";
7
7
  import {
8
8
  createLogger,
9
9
  hasToolCall,
@@ -11,7 +11,7 @@ import {
11
11
  init_lazyLogger,
12
12
  init_structured,
13
13
  scopedLogger
14
- } from "./cli-6kx46ck0.js";
14
+ } from "./cli-zx8gk8xv.js";
15
15
 
16
16
  // src/core/agents/specialized/authenticationAgent/agent.ts
17
17
  init_dist();
@@ -1,20 +1,20 @@
1
1
  import {
2
2
  BlackboxAttackSurfaceAgent
3
- } from "./cli-1re2kv5v.js";
3
+ } from "./cli-bv2807tj.js";
4
4
  import {
5
5
  REPORT_FILENAME_JSON,
6
6
  REPORT_FILENAME_MD,
7
7
  buildPentestReport,
8
8
  renderJson,
9
9
  renderMarkdown
10
- } from "./cli-2jn8104w.js";
10
+ } from "./cli-72b18z0n.js";
11
11
  import {
12
12
  TargetedPentestAgent,
13
13
  buildPentestSystemPrompt
14
- } from "./cli-n114n8mk.js";
14
+ } from "./cli-50906d27.js";
15
15
  import {
16
16
  CodeAgent
17
- } from "./cli-knqx15w6.js";
17
+ } from "./cli-j0n189ee.js";
18
18
  import {
19
19
  AppsDiscoveryResultSchema,
20
20
  DiscoverySummarySchema,
@@ -22,7 +22,7 @@ import {
22
22
  WHITEBOX_APPS_DISCOVERY_SYSTEM_PROMPT,
23
23
  WHITEBOX_DISCOVERY_SYSTEM_PROMPT,
24
24
  WHITEBOX_ENDPOINT_DOCUMENTATION_SYSTEM_PROMPT
25
- } from "./cli-7e5ad5js.js";
25
+ } from "./cli-baqhqbe5.js";
26
26
  import {
27
27
  FindingsRegistry,
28
28
  OffensiveSecurityAgent,
@@ -31,7 +31,7 @@ import {
31
31
  pLimit,
32
32
  runWithBoundedConcurrency,
33
33
  toGrpcPentestContext
34
- } from "./cli-xbdn034b.js";
34
+ } from "./cli-n2m2yy5b.js";
35
35
  import {
36
36
  createThreatModelPrompt
37
37
  } from "./cli-fw5r7pfj.js";
@@ -45,7 +45,7 @@ import {
45
45
  init_structured,
46
46
  newSessionId,
47
47
  scopedLogger
48
- } from "./cli-6kx46ck0.js";
48
+ } from "./cli-zx8gk8xv.js";
49
49
  import {
50
50
  __require
51
51
  } from "./cli-8rxa073f.js";
@@ -7786,7 +7786,7 @@ async function runPentestSwarm(input) {
7786
7786
  }
7787
7787
  async function runPentestWorkflow(input) {
7788
7788
  if (input.fastStrike) {
7789
- const { runFastStrike } = await import("./fastStrike-9tm6bedh.js");
7789
+ const { runFastStrike } = await import("./fastStrike-ebz1ph9a.js");
7790
7790
  return runFastStrike(input);
7791
7791
  }
7792
7792
  const {
@@ -4,7 +4,7 @@ import {
4
4
  init_auth,
5
5
  init_constants,
6
6
  signGatewayRequest
7
- } from "./cli-4tc6888c.js";
7
+ } from "./cli-vckbhnyk.js";
8
8
  import {
9
9
  AISDKError,
10
10
  APICallError,
@@ -87,11 +87,11 @@ import {
87
87
  import {
88
88
  config,
89
89
  init_config
90
- } from "./cli-51dkmt5p.js";
90
+ } from "./cli-f7hanqbw.js";
91
91
  import {
92
92
  getCurrentVersion,
93
93
  init_installation
94
- } from "./cli-1f636vzd.js";
94
+ } from "./cli-barsn8br.js";
95
95
  import {
96
96
  __callDispose,
97
97
  __commonJS,
@@ -47127,7 +47127,7 @@ async function create2(input) {
47127
47127
  if (normalizedConfig?.headers !== undefined) {
47128
47128
  snapshotHeaders = { ...normalizedConfig.headers };
47129
47129
  } else {
47130
- const { config: appConfig } = await import("./index-34h2nb6x.js");
47130
+ const { config: appConfig } = await import("./index-ag14v3sg.js");
47131
47131
  const cfg = await appConfig.get();
47132
47132
  snapshotHeaders = cfg.defaultHeaders ? { ...cfg.defaultHeaders } : { ...DEFAULT_HEADER_RECORD };
47133
47133
  }
@@ -47303,7 +47303,8 @@ async function updateOperatorSettings(sessionId, settings) {
47303
47303
  session.config.operatorSettings = {
47304
47304
  initialMode: "manual",
47305
47305
  requireApproval: true,
47306
- enableSuggestions: true
47306
+ enableSuggestions: true,
47307
+ strikeMode: false
47307
47308
  };
47308
47309
  }
47309
47310
  if (settings.initialMode !== undefined) {
@@ -47315,6 +47316,9 @@ async function updateOperatorSettings(sessionId, settings) {
47315
47316
  if (settings.enableSuggestions !== undefined) {
47316
47317
  session.config.operatorSettings.enableSuggestions = settings.enableSuggestions;
47317
47318
  }
47319
+ if (settings.strikeMode !== undefined) {
47320
+ session.config.operatorSettings.strikeMode = settings.strikeMode;
47321
+ }
47318
47322
  });
47319
47323
  }
47320
47324
  async function updateSessionHeaders(sessionId, headers) {
@@ -47387,7 +47391,8 @@ var init_session = __esm(() => {
47387
47391
  OperatorSettingsObject = zod_default.object({
47388
47392
  initialMode: zod_default.enum(["plan", "manual", "auto"]).default("manual"),
47389
47393
  requireApproval: zod_default.boolean().default(true),
47390
- enableSuggestions: zod_default.boolean().default(true)
47394
+ enableSuggestions: zod_default.boolean().default(true),
47395
+ strikeMode: zod_default.boolean().optional()
47391
47396
  });
47392
47397
  EmailInboxConfigObject = zod_default.discriminatedUnion("provider", [
47393
47398
  zod_default.object({
@@ -47422,6 +47427,14 @@ var init_session = __esm(() => {
47422
47427
  username: zod_default.string(),
47423
47428
  password: zod_default.string(),
47424
47429
  tls: zod_default.boolean()
47430
+ }),
47431
+ zod_default.object({
47432
+ provider: zod_default.literal("http"),
47433
+ id: zod_default.string(),
47434
+ name: zod_default.string(),
47435
+ emailAddress: zod_default.string(),
47436
+ endpoint: zod_default.string(),
47437
+ token: zod_default.string()
47425
47438
  })
47426
47439
  ]);
47427
47440
  EmailIntegrationConfigObject = zod_default.object({
package/build/cli.js CHANGED
@@ -14,16 +14,16 @@ import {
14
14
  init_toolset,
15
15
  init_utils,
16
16
  logger
17
- } from "./cli-6kx46ck0.js";
18
- import"./cli-4tc6888c.js";
17
+ } from "./cli-zx8gk8xv.js";
18
+ import"./cli-vckbhnyk.js";
19
19
  import"./cli-3k1x5rn3.js";
20
20
  import"./cli-gpnb45ck.js";
21
- import"./cli-51dkmt5p.js";
22
- import"./cli-7n43wz82.js";
21
+ import"./cli-f7hanqbw.js";
22
+ import"./cli-eveg9djy.js";
23
23
  import {
24
24
  init_package,
25
25
  package_default
26
- } from "./cli-1f636vzd.js";
26
+ } from "./cli-barsn8br.js";
27
27
  import {
28
28
  __require,
29
29
  __toESM
@@ -144,7 +144,7 @@ var package_default2 = {
144
144
  tsc: "tsc --noEmit"
145
145
  },
146
146
  type: "module",
147
- version: "2.2.0"
147
+ version: "2.3.0"
148
148
  };
149
149
 
150
150
  // src/core/ai/index.ts
@@ -587,7 +587,7 @@ function attachCliAgentStreamListeners(bus) {
587
587
  async function createInstrumentedBus(session) {
588
588
  const bus = new AgentEventBus;
589
589
  attachCliAgentStreamListeners(bus);
590
- const { attachWandbToEventBus } = await import("./upload-x7etpfp4.js");
590
+ const { attachWandbToEventBus } = await import("./upload-krd8bnex.js");
591
591
  const wandbCleanup = await attachWandbToEventBus(session, bus).catch((e) => {
592
592
  console.warn("[wandb] Tracing disabled:", e.message);
593
593
  return null;
@@ -604,7 +604,7 @@ async function resolveCliHeaders() {
604
604
  const { parseHeaderLine: parseHeaderLine2, parseHeadersFromFile, formatParseError: formatParseError2 } = await import("./parse-7djk9jyf.js");
605
605
  const merged = {};
606
606
  if (!noGlobal) {
607
- const { config: appConfig } = await import("./index-31rwrakh.js");
607
+ const { config: appConfig } = await import("./index-32hn8rrw.js");
608
608
  const cfg = await appConfig.get();
609
609
  if (cfg.defaultHeaders) {
610
610
  Object.assign(merged, cfg.defaultHeaders);
@@ -638,8 +638,8 @@ async function resolveCliModel() {
638
638
  const explicit = getArg("--model");
639
639
  if (explicit)
640
640
  return explicit;
641
- const { config: appConfig } = await import("./index-31rwrakh.js");
642
- const { getDefaultModelForConfig } = await import("./utils-kw6yh5yn.js");
641
+ const { config: appConfig } = await import("./index-32hn8rrw.js");
642
+ const { getDefaultModelForConfig } = await import("./utils-skmqhyfg.js");
643
643
  const pensarConfig = await appConfig.get();
644
644
  const defaultModel = getDefaultModelForConfig(pensarConfig);
645
645
  if (!defaultModel) {
@@ -727,9 +727,9 @@ Global options:
727
727
  async function runPentest() {
728
728
  const { config } = await import("./main-3d7dfdvs.js").then((m)=>__toESM(m.default,1));
729
729
  config();
730
- const { runPentestAgent } = await import("./blackboxPentest-h28nykk5.js");
731
- const { sessions: sessions2 } = await import("./index-6dbym5jy.js");
732
- const { config: appConfig } = await import("./index-31rwrakh.js");
730
+ const { runPentestAgent } = await import("./blackboxPentest-tgc2t3y6.js");
731
+ const { sessions: sessions2 } = await import("./index-e8c8zcrf.js");
732
+ const { config: appConfig } = await import("./index-32hn8rrw.js");
733
733
  const target = getArgRequired("--target");
734
734
  const cwd = getArg("--cwd");
735
735
  const mode = getArg("--mode");
@@ -805,9 +805,9 @@ Report: ${reportPath}` : ""}`);
805
805
  async function runTargetedPentest() {
806
806
  const { config } = await import("./main-3d7dfdvs.js").then((m)=>__toESM(m.default,1));
807
807
  config();
808
- const { runTargetedPentestAgent } = await import("./targetedPentest-3x13kqvc.js");
809
- const { sessions: sessions2 } = await import("./index-6dbym5jy.js");
810
- const { config: appConfig } = await import("./index-31rwrakh.js");
808
+ const { runTargetedPentestAgent } = await import("./targetedPentest-me4jnr3z.js");
809
+ const { sessions: sessions2 } = await import("./index-e8c8zcrf.js");
810
+ const { config: appConfig } = await import("./index-32hn8rrw.js");
811
811
  const target = getArgRequired("--target");
812
812
  const objectives = getAllArgs("--objective");
813
813
  const pensarConfig = await appConfig.get();
@@ -859,8 +859,8 @@ POCs: ${pocsPath}`);
859
859
  async function runThreatModel() {
860
860
  const { config } = await import("./main-3d7dfdvs.js").then((m)=>__toESM(m.default,1));
861
861
  config();
862
- const { runThreatModelWorkflow } = await import("./threatModel-7f02av7y.js");
863
- const { config: appConfig } = await import("./index-31rwrakh.js");
862
+ const { runThreatModelWorkflow } = await import("./threatModel-k4f3zgqd.js");
863
+ const { config: appConfig } = await import("./index-32hn8rrw.js");
864
864
  const path2 = await import("path");
865
865
  const pensarConfig = await appConfig.get();
866
866
  const model = await resolveCliModel();
@@ -896,10 +896,10 @@ Threat model written to: ${resolvedPath}`);
896
896
  async function runOperator() {
897
897
  const { config } = await import("./main-3d7dfdvs.js").then((m)=>__toESM(m.default,1));
898
898
  config();
899
- const { runOffensiveSecurityAgent } = await import("./offesecAgent-7m9smy0t.js");
900
- const { sessions: sessions2, normalizeMessages, getResumeMessages } = await import("./index-6dbym5jy.js");
901
- const { ALL_TOOL_NAMES, SKILL_TOOL_NAMES } = await import("./index-4hqbyzf5.js");
902
- const { config: appConfig } = await import("./index-31rwrakh.js");
899
+ const { runOffensiveSecurityAgent } = await import("./offesecAgent-8ky7gccp.js");
900
+ const { sessions: sessions2, normalizeMessages, getResumeMessages } = await import("./index-e8c8zcrf.js");
901
+ const { ALL_TOOL_NAMES, SKILL_TOOL_NAMES } = await import("./index-468j74f3.js");
902
+ const { config: appConfig } = await import("./index-32hn8rrw.js");
903
903
  const { createInterface } = await import("readline");
904
904
  const { readFileSync: readFileSync2, existsSync } = await import("fs");
905
905
  const path2 = await import("path");
@@ -1013,35 +1013,35 @@ if (hasFlag("-p") || command === "--prompt") {
1013
1013
  await runTargetedPentest();
1014
1014
  } else if (command === "login" || command === "auth") {
1015
1015
  process.argv = [process.argv[0], process.argv[1], ...args.slice(1)];
1016
- await import("./auth-q73k9bh9.js");
1016
+ await import("./auth-c1z670rx.js");
1017
1017
  } else if (command === "uninstall") {
1018
1018
  process.argv = [process.argv[0], process.argv[1], ...args.slice(1)];
1019
- await import("./uninstall-p1q5pkx2.js");
1019
+ await import("./uninstall-jt1bca2p.js");
1020
1020
  } else if (command === "apps") {
1021
1021
  process.argv = [process.argv[0], process.argv[1], ...args.slice(1)];
1022
- await import("./apps-0es69e2s.js");
1022
+ await import("./apps-43pqbz7r.js");
1023
1023
  } else if (command === "pentests") {
1024
1024
  process.argv = [process.argv[0], process.argv[1], ...args.slice(1)];
1025
- await import("./pentests-1hcqjyk2.js");
1025
+ await import("./pentests-62d6zw6p.js");
1026
1026
  } else if (command === "targets") {
1027
1027
  process.argv = [process.argv[0], process.argv[1], ...args.slice(1)];
1028
- await import("./targets-nqz8w37e.js");
1028
+ await import("./targets-e5k1mrky.js");
1029
1029
  } else if (command === "issues") {
1030
1030
  process.argv = [process.argv[0], process.argv[1], ...args.slice(1)];
1031
- await import("./issues-wjakj8yy.js");
1031
+ await import("./issues-kh4wg8c5.js");
1032
1032
  } else if (command === "fixes") {
1033
1033
  process.argv = [process.argv[0], process.argv[1], ...args.slice(1)];
1034
- await import("./fixes-1dry8j61.js");
1034
+ await import("./fixes-86yebsj0.js");
1035
1035
  } else if (command === "logs") {
1036
1036
  process.argv = [process.argv[0], process.argv[1], ...args.slice(1)];
1037
- await import("./logs-ewyzcspy.js");
1037
+ await import("./logs-bj28xmbf.js");
1038
1038
  } else if (command === "config") {
1039
1039
  process.argv = [process.argv[0], process.argv[1], ...args.slice(1)];
1040
- await import("./config-xcf7rc6x.js");
1040
+ await import("./config-jzqjz606.js");
1041
1041
  } else if (command === "threat-model") {
1042
1042
  await runThreatModel();
1043
1043
  } else if (command === "doctor") {
1044
- const { runDoctor } = await import("./doctor-98zperf9.js");
1044
+ const { runDoctor } = await import("./doctor-q3qws68e.js");
1045
1045
  await runDoctor();
1046
1046
  } else if (args.length === 0) {
1047
1047
  if (process.env.PENSAR_NO_TUI === "1") {
@@ -1049,7 +1049,7 @@ if (hasFlag("-p") || command === "--prompt") {
1049
1049
  console.error("All other commands work with Node \u2014 run 'pensar --help'.");
1050
1050
  process.exit(1);
1051
1051
  }
1052
- await import("./index-0j880wqc.js");
1052
+ await import("./index-97vx1a24.js");
1053
1053
  } else {
1054
1054
  console.error(`Error: Unknown command '${command}'`);
1055
1055
  console.error();
@@ -11,9 +11,9 @@ import {
11
11
  import {
12
12
  config,
13
13
  init_config
14
- } from "./cli-51dkmt5p.js";
15
- import"./cli-7n43wz82.js";
16
- import"./cli-1f636vzd.js";
14
+ } from "./cli-f7hanqbw.js";
15
+ import"./cli-eveg9djy.js";
16
+ import"./cli-barsn8br.js";
17
17
  import"./cli-8rxa073f.js";
18
18
 
19
19
  // src/cli/config.ts
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  toolExists
3
- } from "./cli-s43t5ay0.js";
4
- import"./cli-6kx46ck0.js";
5
- import"./cli-4tc6888c.js";
3
+ } from "./cli-7tw4xfnw.js";
4
+ import"./cli-zx8gk8xv.js";
5
+ import"./cli-vckbhnyk.js";
6
6
  import"./cli-3k1x5rn3.js";
7
7
  import"./cli-gpnb45ck.js";
8
- import"./cli-51dkmt5p.js";
9
- import"./cli-7n43wz82.js";
10
- import"./cli-1f636vzd.js";
8
+ import"./cli-f7hanqbw.js";
9
+ import"./cli-eveg9djy.js";
10
+ import"./cli-barsn8br.js";
11
11
  import"./cli-8rxa073f.js";
12
12
 
13
13
  // src/core/doctor.ts
@@ -4,28 +4,28 @@ import {
4
4
  buildPentestReport,
5
5
  renderJson,
6
6
  renderMarkdown
7
- } from "./cli-2jn8104w.js";
7
+ } from "./cli-72b18z0n.js";
8
8
  import"./cli-9fsre5pt.js";
9
- import"./cli-ptzy9ak5.js";
9
+ import"./cli-jyp2c6th.js";
10
10
  import {
11
11
  FindingsRegistry,
12
12
  OffensiveSecurityAgent
13
- } from "./cli-xbdn034b.js";
14
- import"./cli-s43t5ay0.js";
13
+ } from "./cli-n2m2yy5b.js";
14
+ import"./cli-7tw4xfnw.js";
15
15
  import {
16
16
  createThreatModelPrompt
17
17
  } from "./cli-fw5r7pfj.js";
18
18
  import"./cli-c8131c4q.js";
19
- import"./cli-6kx46ck0.js";
20
- import"./cli-4tc6888c.js";
19
+ import"./cli-zx8gk8xv.js";
20
+ import"./cli-vckbhnyk.js";
21
21
  import {
22
22
  exports_external,
23
23
  init_zod
24
24
  } from "./cli-3k1x5rn3.js";
25
25
  import"./cli-gpnb45ck.js";
26
- import"./cli-51dkmt5p.js";
27
- import"./cli-7n43wz82.js";
28
- import"./cli-1f636vzd.js";
26
+ import"./cli-f7hanqbw.js";
27
+ import"./cli-eveg9djy.js";
28
+ import"./cli-barsn8br.js";
29
29
  import"./cli-8rxa073f.js";
30
30
 
31
31
  // src/core/workflows/fastStrike.ts
@@ -2,27 +2,27 @@
2
2
  import {
3
3
  getFix,
4
4
  listFixes
5
- } from "./cli-1cf5vy5m.js";
6
- import"./cli-tz9yg4ew.js";
7
- import"./cli-1re2kv5v.js";
8
- import"./cli-2jn8104w.js";
9
- import"./cli-n114n8mk.js";
10
- import"./cli-xpn9tsw0.js";
11
- import"./cli-knqx15w6.js";
12
- import"./cli-7e5ad5js.js";
5
+ } from "./cli-f71s6kcw.js";
6
+ import"./cli-zm8tfpv7.js";
7
+ import"./cli-bv2807tj.js";
8
+ import"./cli-72b18z0n.js";
9
+ import"./cli-50906d27.js";
10
+ import"./cli-zk1ch6qf.js";
11
+ import"./cli-j0n189ee.js";
12
+ import"./cli-baqhqbe5.js";
13
13
  import"./cli-9fsre5pt.js";
14
- import"./cli-ptzy9ak5.js";
15
- import"./cli-xbdn034b.js";
16
- import"./cli-s43t5ay0.js";
14
+ import"./cli-jyp2c6th.js";
15
+ import"./cli-n2m2yy5b.js";
16
+ import"./cli-7tw4xfnw.js";
17
17
  import"./cli-fw5r7pfj.js";
18
18
  import"./cli-c8131c4q.js";
19
- import"./cli-6kx46ck0.js";
20
- import"./cli-4tc6888c.js";
19
+ import"./cli-zx8gk8xv.js";
20
+ import"./cli-vckbhnyk.js";
21
21
  import"./cli-3k1x5rn3.js";
22
22
  import"./cli-gpnb45ck.js";
23
- import"./cli-51dkmt5p.js";
24
- import"./cli-7n43wz82.js";
25
- import"./cli-1f636vzd.js";
23
+ import"./cli-f7hanqbw.js";
24
+ import"./cli-eveg9djy.js";
25
+ import"./cli-barsn8br.js";
26
26
  import"./cli-8rxa073f.js";
27
27
 
28
28
  // src/cli/fixes.ts
@@ -3,8 +3,8 @@ import {
3
3
  init,
4
4
  init_config,
5
5
  update
6
- } from "./cli-7n43wz82.js";
7
- import"./cli-1f636vzd.js";
6
+ } from "./cli-eveg9djy.js";
7
+ import"./cli-barsn8br.js";
8
8
  import"./cli-8rxa073f.js";
9
9
 
10
10
  // src/core/config/index.ts
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  ApexFindingObject
3
- } from "./cli-ptzy9ak5.js";
3
+ } from "./cli-jyp2c6th.js";
4
4
  import {
5
5
  ALL_TOOL_NAMES,
6
6
  ASK_USER_QUESTIONS_TOOL_NAME,
@@ -87,16 +87,16 @@ import {
87
87
  validateDiscovery,
88
88
  webSearch,
89
89
  writePlan
90
- } from "./cli-xbdn034b.js";
91
- import"./cli-s43t5ay0.js";
90
+ } from "./cli-n2m2yy5b.js";
91
+ import"./cli-7tw4xfnw.js";
92
92
  import"./cli-c8131c4q.js";
93
- import"./cli-6kx46ck0.js";
94
- import"./cli-4tc6888c.js";
93
+ import"./cli-zx8gk8xv.js";
94
+ import"./cli-vckbhnyk.js";
95
95
  import"./cli-3k1x5rn3.js";
96
96
  import"./cli-gpnb45ck.js";
97
- import"./cli-51dkmt5p.js";
98
- import"./cli-7n43wz82.js";
99
- import"./cli-1f636vzd.js";
97
+ import"./cli-f7hanqbw.js";
98
+ import"./cli-eveg9djy.js";
99
+ import"./cli-barsn8br.js";
100
100
  import"./cli-8rxa073f.js";
101
101
  export {
102
102
  writePlan,
@@ -1,4 +1,5 @@
1
1
  import {
2
+ createWorkspaceSelection,
2
3
  disconnect,
3
4
  ensureValidToken,
4
5
  fetchWorkspaces,
@@ -8,14 +9,15 @@ import {
8
9
  pollForWorkspaceCreation,
9
10
  pollLegacyToken,
10
11
  pollWorkOSToken,
12
+ pollWorkspaceSelection,
11
13
  selectWorkspace,
12
14
  signGatewayRequest,
13
15
  startDeviceFlow,
14
16
  validateGateway
15
- } from "./cli-4tc6888c.js";
16
- import"./cli-51dkmt5p.js";
17
- import"./cli-7n43wz82.js";
18
- import"./cli-1f636vzd.js";
17
+ } from "./cli-vckbhnyk.js";
18
+ import"./cli-f7hanqbw.js";
19
+ import"./cli-eveg9djy.js";
20
+ import"./cli-barsn8br.js";
19
21
  import"./cli-8rxa073f.js";
20
22
  init_auth();
21
23
 
@@ -24,6 +26,7 @@ export {
24
26
  startDeviceFlow,
25
27
  signGatewayRequest,
26
28
  selectWorkspace,
29
+ pollWorkspaceSelection,
27
30
  pollWorkOSToken,
28
31
  pollLegacyToken,
29
32
  pollForWorkspaceCreation,
@@ -31,5 +34,6 @@ export {
31
34
  isConnected,
32
35
  fetchWorkspaces,
33
36
  ensureValidToken,
34
- disconnect
37
+ disconnect,
38
+ createWorkspaceSelection
35
39
  };