@pensar/apex 2.1.2 → 2.1.3-canary.0b888140

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 (57) hide show
  1. package/build/{agent-737mxp3v.js → agent-n8yfa2cc.js} +9 -8
  2. package/build/agent-y48rvewr.js +19 -0
  3. package/build/agent-ze5p1asw.js +27 -0
  4. package/build/{apps-j0bwey0w.js → apps-v04nd6vm.js} +16 -16
  5. package/build/{auth-5stxpmga.js → auth-hsw3vft6.js} +16 -16
  6. package/build/authentication-gcedx2a8.js +19 -0
  7. package/build/blackboxAgent-faefrq9c.js +19 -0
  8. package/build/{blackboxPentest-2edr9rj3.js → blackboxPentest-t6q90wst.js} +14 -14
  9. package/build/{cli-jd0c0b91.js → cli-17ng16p8.js} +1 -1
  10. package/build/{cli-f7d23ded.js → cli-29yqhrjq.js} +936 -1775
  11. package/build/{cli-whtdyc0e.js → cli-392r62e5.js} +6 -4
  12. package/build/{cli-xnnkeg5p.js → cli-4q0ztagc.js} +1 -1
  13. package/build/{cli-yjbkaqvy.js → cli-6fbhny5y.js} +79 -23
  14. package/build/{cli-6wwpk9d9.js → cli-840req7g.js} +1 -1
  15. package/build/{cli-tw3fe8bj.js → cli-c8n6gjbg.js} +2 -2
  16. package/build/{cli-0gk2x2sc.js → cli-fnx674a0.js} +18 -18
  17. package/build/{cli-v1aqbv58.js → cli-fyxdrpws.js} +23379 -25281
  18. package/build/{cli-ks60cc3h.js → cli-k6cyzj2y.js} +30 -30
  19. package/build/{cli-35czfv00.js → cli-sh1d5f84.js} +70834 -79383
  20. package/build/{cli-dqkdnd3c.js → cli-svyns7bq.js} +88 -49
  21. package/build/{cli-gbkj2has.js → cli-t4aygjwm.js} +5 -3
  22. package/build/{cli-hj3t87r2.js → cli-tmdgp58p.js} +1 -1
  23. package/build/{cli-9vzc18m5.js → cli-vaafhq79.js} +41 -17
  24. package/build/{cli-9z6vwf30.js → cli-xecc5fgb.js} +1 -1
  25. package/build/{cli-6vs0mtsb.js → cli-xjw661db.js} +4 -2
  26. package/build/cli.js +110 -88
  27. package/build/{config-s5ryv5ez.js → config-ybydaxvy.js} +3 -3
  28. package/build/{doctor-f08gegwc.js → doctor-1cv49qyd.js} +7 -7
  29. package/build/{fixes-qf4s92z2.js → fixes-vq3r0671.js} +16 -16
  30. package/build/{index-exvkbve0.js → index-73h1f0ee.js} +4 -4
  31. package/build/{index-c6qz0gve.js → index-9d6rdna8.js} +7 -7
  32. package/build/{index-sqjve2bm.js → index-f4j2dvza.js} +2 -2
  33. package/build/{index-s8gw83d6.js → index-kkev8e4x.js} +17 -11
  34. package/build/{index-gakk2t5q.js → index-mxgy0n60.js} +20 -18
  35. package/build/{index-mgng15va.js → index-n1yh9e86.js} +909 -456
  36. package/build/{index-5h1hjhzw.js → index-p0ge9ctv.js} +10 -10
  37. package/build/{index-x4xefngs.js → index-wdve6p4j.js} +3 -3
  38. package/build/{issues-5anqrh2j.js → issues-absynd7t.js} +16 -16
  39. package/build/{logs-q6ankt6m.js → logs-71wvy182.js} +16 -16
  40. package/build/{main-3zneyg7p.js → main-3d7dfdvs.js} +17 -93
  41. package/build/{offesecAgent-hsej0pfc.js → offesecAgent-3rvcmynm.js} +9 -9
  42. package/build/pentest-d3zqcth5.js +28 -0
  43. package/build/{pentests-hyx3c3qa.js → pentests-rxar1kh8.js} +16 -16
  44. package/build/targetedPentest-pkk863xy.js +44 -0
  45. package/build/{targets-9cqrshet.js → targets-05hzc6xf.js} +16 -16
  46. package/build/threatModel-rre32qf1.js +26 -0
  47. package/build/{uninstall-1j469qj7.js → uninstall-mf8p7h39.js} +1 -1
  48. package/build/{upload-ymvhkyq5.js → upload-c90wytbp.js} +7 -7
  49. package/build/{utils-d1ed6jzf.js → utils-exr1m4tq.js} +6 -6
  50. package/package.json +30 -30
  51. package/build/agent-8w9h3tnw.js +0 -19
  52. package/build/agent-vdrtakz4.js +0 -25
  53. package/build/authentication-qswvctj4.js +0 -19
  54. package/build/blackboxAgent-vwm9t3h4.js +0 -19
  55. package/build/pentest-1e30q7rs.js +0 -28
  56. package/build/targetedPentest-ws0a7frk.js +0 -36
  57. package/build/threatModel-z9b213x8.js +0 -26
package/build/cli.js CHANGED
@@ -14,16 +14,16 @@ import {
14
14
  init_toolset,
15
15
  init_utils,
16
16
  logger
17
- } from "./cli-v1aqbv58.js";
18
- import"./cli-hj3t87r2.js";
19
- import"./cli-f7d23ded.js";
17
+ } from "./cli-fyxdrpws.js";
18
+ import"./cli-tmdgp58p.js";
19
+ import"./cli-29yqhrjq.js";
20
20
  import"./cli-gpnb45ck.js";
21
- import"./cli-9z6vwf30.js";
22
- import"./cli-xnnkeg5p.js";
21
+ import"./cli-xecc5fgb.js";
22
+ import"./cli-4q0ztagc.js";
23
23
  import {
24
24
  init_package,
25
25
  package_default
26
- } from "./cli-ks60cc3h.js";
26
+ } from "./cli-k6cyzj2y.js";
27
27
  import {
28
28
  __require,
29
29
  __toESM
@@ -35,50 +35,50 @@ var package_default2 = {
35
35
  pensar: "./bin/pensar.js"
36
36
  },
37
37
  dependencies: {
38
- "@ai-sdk/amazon-bedrock": "^4.0.113",
39
- "@ai-sdk/anthropic": "^3.0.81",
40
- "@ai-sdk/google": "^3.0.37",
38
+ "@ai-sdk/amazon-bedrock": "^4.0.119",
39
+ "@ai-sdk/anthropic": "^3.0.85",
40
+ "@ai-sdk/google": "^3.0.83",
41
41
  "@ai-sdk/openai": "3.0.46",
42
- "@ai-sdk/openai-compatible": "^2.0.35",
43
- "@ai-sdk/provider": "^3.0.8",
44
- "@daytonaio/sdk": "^0.112.1",
45
- "@googleapis/gmail": "^16.1.1",
42
+ "@ai-sdk/openai-compatible": "^2.0.51",
43
+ "@ai-sdk/provider": "^3.0.10",
44
+ "@daytonaio/sdk": "^0.112.3",
45
+ "@googleapis/gmail": "^16.1.2",
46
46
  "@microsoft/microsoft-graph-client": "^3.0.7",
47
- "@modelcontextprotocol/sdk": "^1.0.0",
48
- "@openrouter/ai-sdk-provider": "^2.2.3",
49
- "@opentelemetry/api": "^1.9.0",
47
+ "@modelcontextprotocol/sdk": "^1.29.0",
48
+ "@openrouter/ai-sdk-provider": "^2.9.1",
49
+ "@opentelemetry/api": "^1.9.1",
50
50
  "@opentui/core": "^0.1.107",
51
51
  "@opentui/react": "^0.1.107",
52
52
  "@pensar/surface": "0.2.2",
53
53
  "@playwright/mcp": "^0.0.54",
54
- ai: "^6.0.105",
54
+ ai: "^6.0.208",
55
55
  "camoufox-js": "^0.11.1",
56
- glob: "^13.0.0",
56
+ glob: "^13.0.6",
57
57
  "highlight.js": "^11.11.1",
58
- imapflow: "^1.2.10",
59
- mailparser: "^3.9.3",
60
- marked: "^16.4.0",
58
+ imapflow: "^1.4.2",
59
+ mailparser: "^3.9.11",
60
+ marked: "^16.4.2",
61
61
  "mime-types": "^3.0.2",
62
- nodemailer: "^8.0.7",
63
- "p-limit": "^7.2.0",
64
- react: "^19.2.0",
65
- sharp: "^0.34.4",
66
- tldts: "^7.0.28",
67
- yaml: "^2.8.2",
68
- zod: "^4.1.12"
62
+ nodemailer: "^8.0.11",
63
+ "p-limit": "^7.3.0",
64
+ react: "^19.2.7",
65
+ sharp: "^0.34.5",
66
+ tldts: "^7.4.3",
67
+ yaml: "^2.9.0",
68
+ zod: "^4.4.3"
69
69
  },
70
70
  description: "AI-powered penetration testing CLI tool with terminal UI",
71
71
  devDependencies: {
72
72
  "@biomejs/biome": "2.4.14",
73
- "@types/bun": "^1.3.0",
73
+ "@types/bun": "^1.3.14",
74
74
  "@types/mailparser": "^3.4.6",
75
75
  "@types/mime-types": "^3.0.1",
76
- "@types/nodemailer": "^8.0.0",
77
- "@types/react": "^19.2.6",
78
- dotenv: "^17.2.3",
79
- knip: "^6.12.0",
80
- prettier: "^3.8.1",
81
- vitest: "^2.1.8"
76
+ "@types/nodemailer": "^8.0.1",
77
+ "@types/react": "^19.2.17",
78
+ dotenv: "^17.4.2",
79
+ knip: "^6.17.1",
80
+ prettier: "^3.8.4",
81
+ vitest: "^2.1.9"
82
82
  },
83
83
  engines: {
84
84
  bun: ">=1.0.0",
@@ -144,7 +144,7 @@ var package_default2 = {
144
144
  tsc: "tsc --noEmit"
145
145
  },
146
146
  type: "module",
147
- version: "2.1.2"
147
+ version: "2.1.3-canary.0b888140"
148
148
  };
149
149
 
150
150
  // src/core/ai/index.ts
@@ -257,7 +257,7 @@ class AgentEventBus {
257
257
  }
258
258
  return this;
259
259
  }
260
- static attachChild(child, parent, subagentId) {
260
+ static attachChild(child, parent, childSessionId) {
261
261
  if (!parent)
262
262
  return;
263
263
  for (const key of CHILD_BUS_FORWARDED_EVENTS) {
@@ -266,28 +266,37 @@ class AgentEventBus {
266
266
  const p = payload;
267
267
  const isLifecycle = forwardKey === "subagent-spawn" || forwardKey === "subagent-complete";
268
268
  if (isLifecycle) {
269
- if (p.parentSubagentId) {
270
- parent.emit(forwardKey, payload);
271
- } else {
272
- parent.emit(forwardKey, {
273
- ...p,
274
- parentSubagentId: subagentId
275
- });
276
- }
269
+ const next2 = { ...p };
270
+ if (!p.parentSubagentId)
271
+ next2.parentSubagentId = childSessionId;
272
+ if (!p.parentSessionId)
273
+ next2.parentSessionId = childSessionId;
274
+ parent.emit(forwardKey, next2);
277
275
  return;
278
276
  }
279
- if (!p.subagentId) {
280
- parent.emit(forwardKey, { ...p, subagentId });
281
- } else {
282
- parent.emit(forwardKey, payload);
283
- }
277
+ const next = { ...p };
278
+ if (!p.subagentId)
279
+ next.subagentId = childSessionId;
280
+ if (!p.sessionId)
281
+ next.sessionId = childSessionId;
282
+ parent.emit(forwardKey, next);
284
283
  });
285
284
  }
286
285
  }
287
- emitStreamPart(chunk, subagentId) {
286
+ emitStreamPart(chunk, ids) {
287
+ const ctx = typeof ids === "string" ? { subagentId: ids } : ids ?? {};
288
+ const subagentId = ctx.subagentId;
289
+ const sessionId = ctx.sessionId;
290
+ const messageId = ctx.messageId;
288
291
  switch (chunk.type) {
289
292
  case "text-delta":
290
- this.emit("text-delta", { text: chunk.text, subagentId });
293
+ this.emit("text-delta", {
294
+ text: chunk.text,
295
+ subagentId,
296
+ sessionId,
297
+ messageId,
298
+ partId: ctx.textPartId
299
+ });
291
300
  break;
292
301
  case "reasoning-start":
293
302
  this.emit("reasoning-start", { subagentId });
@@ -302,14 +311,20 @@ class AgentEventBus {
302
311
  this.emit("tool-call-start", {
303
312
  toolCallId: chunk.id,
304
313
  toolName: chunk.toolName,
305
- subagentId
314
+ subagentId,
315
+ sessionId,
316
+ messageId,
317
+ partId: ctx.toolPartId?.(chunk.id)
306
318
  });
307
319
  break;
308
320
  case "tool-input-delta":
309
321
  this.emit("tool-call-delta", {
310
322
  toolCallId: chunk.id,
311
323
  argsTextDelta: chunk.delta,
312
- subagentId
324
+ subagentId,
325
+ sessionId,
326
+ messageId,
327
+ partId: ctx.toolPartId?.(chunk.id)
313
328
  });
314
329
  break;
315
330
  case "tool-call": {
@@ -318,7 +333,10 @@ class AgentEventBus {
318
333
  toolCallId: tc.toolCallId,
319
334
  toolName: tc.toolName,
320
335
  args: tc.args ?? tc.input,
321
- subagentId
336
+ subagentId,
337
+ sessionId,
338
+ messageId,
339
+ partId: ctx.toolPartId?.(tc.toolCallId)
322
340
  });
323
341
  break;
324
342
  }
@@ -328,7 +346,10 @@ class AgentEventBus {
328
346
  toolCallId: tr.toolCallId,
329
347
  toolName: tr.toolName,
330
348
  result: tr.result ?? tr.output,
331
- subagentId
349
+ subagentId,
350
+ sessionId,
351
+ messageId,
352
+ partId: ctx.toolPartId?.(tr.toolCallId)
332
353
  });
333
354
  break;
334
355
  }
@@ -477,6 +498,7 @@ You can upgrade manually by running:
477
498
  // src/core/logger/index.ts
478
499
  init_session();
479
500
  init_structured();
501
+ init_structured();
480
502
  import os from "node:os";
481
503
  import path from "node:path";
482
504
  var ERROR_LOG_PATH = path.join(os.homedir(), ".pensar", "error.log");
@@ -565,7 +587,7 @@ function attachCliAgentStreamListeners(bus) {
565
587
  async function createInstrumentedBus(session) {
566
588
  const bus = new AgentEventBus;
567
589
  attachCliAgentStreamListeners(bus);
568
- const { attachWandbToEventBus } = await import("./upload-ymvhkyq5.js");
590
+ const { attachWandbToEventBus } = await import("./upload-c90wytbp.js");
569
591
  const wandbCleanup = await attachWandbToEventBus(session, bus).catch((e) => {
570
592
  console.warn("[wandb] Tracing disabled:", e.message);
571
593
  return null;
@@ -582,7 +604,7 @@ async function resolveCliHeaders() {
582
604
  const { parseHeaderLine: parseHeaderLine2, parseHeadersFromFile, formatParseError: formatParseError2 } = await import("./parse-7djk9jyf.js");
583
605
  const merged = {};
584
606
  if (!noGlobal) {
585
- const { config: appConfig } = await import("./index-sqjve2bm.js");
607
+ const { config: appConfig } = await import("./index-f4j2dvza.js");
586
608
  const cfg = await appConfig.get();
587
609
  if (cfg.defaultHeaders) {
588
610
  Object.assign(merged, cfg.defaultHeaders);
@@ -616,8 +638,8 @@ async function resolveCliModel() {
616
638
  const explicit = getArg("--model");
617
639
  if (explicit)
618
640
  return explicit;
619
- const { config: appConfig } = await import("./index-sqjve2bm.js");
620
- const { getDefaultModelForConfig } = await import("./utils-d1ed6jzf.js");
641
+ const { config: appConfig } = await import("./index-f4j2dvza.js");
642
+ const { getDefaultModelForConfig } = await import("./utils-exr1m4tq.js");
621
643
  const pensarConfig = await appConfig.get();
622
644
  const defaultModel = getDefaultModelForConfig(pensarConfig);
623
645
  if (!defaultModel) {
@@ -701,11 +723,11 @@ Global options:
701
723
  `);
702
724
  }
703
725
  async function runPentest() {
704
- const { config } = await import("./main-3zneyg7p.js").then((m)=>__toESM(m.default,1));
726
+ const { config } = await import("./main-3d7dfdvs.js").then((m)=>__toESM(m.default,1));
705
727
  config();
706
- const { runPentestAgent } = await import("./blackboxPentest-2edr9rj3.js");
707
- const { sessions: sessions2 } = await import("./index-c6qz0gve.js");
708
- const { config: appConfig } = await import("./index-sqjve2bm.js");
728
+ const { runPentestAgent } = await import("./blackboxPentest-t6q90wst.js");
729
+ const { sessions: sessions2 } = await import("./index-9d6rdna8.js");
730
+ const { config: appConfig } = await import("./index-f4j2dvza.js");
709
731
  const target = getArgRequired("--target");
710
732
  const cwd = getArg("--cwd");
711
733
  const mode = getArg("--mode");
@@ -773,11 +795,11 @@ Report: ${reportPath}` : ""}`);
773
795
  process.exit(0);
774
796
  }
775
797
  async function runTargetedPentest() {
776
- const { config } = await import("./main-3zneyg7p.js").then((m)=>__toESM(m.default,1));
798
+ const { config } = await import("./main-3d7dfdvs.js").then((m)=>__toESM(m.default,1));
777
799
  config();
778
- const { runTargetedPentestAgent } = await import("./targetedPentest-ws0a7frk.js");
779
- const { sessions: sessions2 } = await import("./index-c6qz0gve.js");
780
- const { config: appConfig } = await import("./index-sqjve2bm.js");
800
+ const { runTargetedPentestAgent } = await import("./targetedPentest-pkk863xy.js");
801
+ const { sessions: sessions2 } = await import("./index-9d6rdna8.js");
802
+ const { config: appConfig } = await import("./index-f4j2dvza.js");
781
803
  const target = getArgRequired("--target");
782
804
  const objectives = getAllArgs("--objective");
783
805
  const pensarConfig = await appConfig.get();
@@ -827,10 +849,10 @@ POCs: ${pocsPath}`);
827
849
  process.exit(0);
828
850
  }
829
851
  async function runThreatModel() {
830
- const { config } = await import("./main-3zneyg7p.js").then((m)=>__toESM(m.default,1));
852
+ const { config } = await import("./main-3d7dfdvs.js").then((m)=>__toESM(m.default,1));
831
853
  config();
832
- const { runThreatModelWorkflow } = await import("./threatModel-z9b213x8.js");
833
- const { config: appConfig } = await import("./index-sqjve2bm.js");
854
+ const { runThreatModelWorkflow } = await import("./threatModel-rre32qf1.js");
855
+ const { config: appConfig } = await import("./index-f4j2dvza.js");
834
856
  const path2 = await import("path");
835
857
  const pensarConfig = await appConfig.get();
836
858
  const model = await resolveCliModel();
@@ -864,16 +886,16 @@ ${sep}
864
886
  Threat model written to: ${resolvedPath}`);
865
887
  }
866
888
  async function runOperator() {
867
- const { config } = await import("./main-3zneyg7p.js").then((m)=>__toESM(m.default,1));
889
+ const { config } = await import("./main-3d7dfdvs.js").then((m)=>__toESM(m.default,1));
868
890
  config();
869
- const { runOffensiveSecurityAgent } = await import("./offesecAgent-hsej0pfc.js");
870
- const { sessions: sessions2, normalizeMessages, getResumeMessages } = await import("./index-c6qz0gve.js");
871
- const { ALL_TOOL_NAMES, SKILL_TOOL_NAMES } = await import("./index-s8gw83d6.js");
872
- const { config: appConfig } = await import("./index-sqjve2bm.js");
891
+ const { runOffensiveSecurityAgent } = await import("./offesecAgent-3rvcmynm.js");
892
+ const { sessions: sessions2, normalizeMessages, getResumeMessages } = await import("./index-9d6rdna8.js");
893
+ const { ALL_TOOL_NAMES, SKILL_TOOL_NAMES } = await import("./index-kkev8e4x.js");
894
+ const { config: appConfig } = await import("./index-f4j2dvza.js");
873
895
  const { createInterface } = await import("readline");
874
896
  const { readFileSync: readFileSync2, existsSync } = await import("fs");
875
897
  const path2 = await import("path");
876
- const { stepCountIs } = await import("./index-mgng15va.js");
898
+ const { stepCountIs } = await import("./index-n1yh9e86.js");
877
899
  const promptRaw = getArg("-p") ?? getArg("--prompt");
878
900
  if (!promptRaw) {
879
901
  console.error("Error: -p <prompt> is required");
@@ -983,35 +1005,35 @@ if (hasFlag("-p") || command === "--prompt") {
983
1005
  await runTargetedPentest();
984
1006
  } else if (command === "login" || command === "auth") {
985
1007
  process.argv = [process.argv[0], process.argv[1], ...args.slice(1)];
986
- await import("./auth-5stxpmga.js");
1008
+ await import("./auth-hsw3vft6.js");
987
1009
  } else if (command === "uninstall") {
988
1010
  process.argv = [process.argv[0], process.argv[1], ...args.slice(1)];
989
- await import("./uninstall-1j469qj7.js");
1011
+ await import("./uninstall-mf8p7h39.js");
990
1012
  } else if (command === "apps") {
991
1013
  process.argv = [process.argv[0], process.argv[1], ...args.slice(1)];
992
- await import("./apps-j0bwey0w.js");
1014
+ await import("./apps-v04nd6vm.js");
993
1015
  } else if (command === "pentests") {
994
1016
  process.argv = [process.argv[0], process.argv[1], ...args.slice(1)];
995
- await import("./pentests-hyx3c3qa.js");
1017
+ await import("./pentests-rxar1kh8.js");
996
1018
  } else if (command === "targets") {
997
1019
  process.argv = [process.argv[0], process.argv[1], ...args.slice(1)];
998
- await import("./targets-9cqrshet.js");
1020
+ await import("./targets-05hzc6xf.js");
999
1021
  } else if (command === "issues") {
1000
1022
  process.argv = [process.argv[0], process.argv[1], ...args.slice(1)];
1001
- await import("./issues-5anqrh2j.js");
1023
+ await import("./issues-absynd7t.js");
1002
1024
  } else if (command === "fixes") {
1003
1025
  process.argv = [process.argv[0], process.argv[1], ...args.slice(1)];
1004
- await import("./fixes-qf4s92z2.js");
1026
+ await import("./fixes-vq3r0671.js");
1005
1027
  } else if (command === "logs") {
1006
1028
  process.argv = [process.argv[0], process.argv[1], ...args.slice(1)];
1007
- await import("./logs-q6ankt6m.js");
1029
+ await import("./logs-71wvy182.js");
1008
1030
  } else if (command === "config") {
1009
1031
  process.argv = [process.argv[0], process.argv[1], ...args.slice(1)];
1010
- await import("./config-s5ryv5ez.js");
1032
+ await import("./config-ybydaxvy.js");
1011
1033
  } else if (command === "threat-model") {
1012
1034
  await runThreatModel();
1013
1035
  } else if (command === "doctor") {
1014
- const { runDoctor } = await import("./doctor-f08gegwc.js");
1036
+ const { runDoctor } = await import("./doctor-1cv49qyd.js");
1015
1037
  await runDoctor();
1016
1038
  } else if (args.length === 0) {
1017
1039
  if (process.env.PENSAR_NO_TUI === "1") {
@@ -1019,7 +1041,7 @@ if (hasFlag("-p") || command === "--prompt") {
1019
1041
  console.error("All other commands work with Node \u2014 run 'pensar --help'.");
1020
1042
  process.exit(1);
1021
1043
  }
1022
- await import("./index-gakk2t5q.js");
1044
+ await import("./index-mxgy0n60.js");
1023
1045
  } else {
1024
1046
  console.error(`Error: Unknown command '${command}'`);
1025
1047
  console.error();
@@ -11,9 +11,9 @@ import {
11
11
  import {
12
12
  config,
13
13
  init_config
14
- } from "./cli-9z6vwf30.js";
15
- import"./cli-xnnkeg5p.js";
16
- import"./cli-ks60cc3h.js";
14
+ } from "./cli-xecc5fgb.js";
15
+ import"./cli-4q0ztagc.js";
16
+ import"./cli-k6cyzj2y.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-6wwpk9d9.js";
4
- import"./cli-v1aqbv58.js";
5
- import"./cli-hj3t87r2.js";
6
- import"./cli-f7d23ded.js";
3
+ } from "./cli-840req7g.js";
4
+ import"./cli-fyxdrpws.js";
5
+ import"./cli-tmdgp58p.js";
6
+ import"./cli-29yqhrjq.js";
7
7
  import"./cli-gpnb45ck.js";
8
- import"./cli-9z6vwf30.js";
9
- import"./cli-xnnkeg5p.js";
10
- import"./cli-ks60cc3h.js";
8
+ import"./cli-xecc5fgb.js";
9
+ import"./cli-4q0ztagc.js";
10
+ import"./cli-k6cyzj2y.js";
11
11
  import"./cli-8rxa073f.js";
12
12
 
13
13
  // src/core/doctor.ts
@@ -2,26 +2,26 @@
2
2
  import {
3
3
  getFix,
4
4
  listFixes
5
- } from "./cli-dqkdnd3c.js";
6
- import"./cli-9vzc18m5.js";
7
- import"./cli-whtdyc0e.js";
8
- import"./cli-yjbkaqvy.js";
9
- import"./cli-0gk2x2sc.js";
10
- import"./cli-6vs0mtsb.js";
11
- import"./cli-gbkj2has.js";
5
+ } from "./cli-svyns7bq.js";
6
+ import"./cli-vaafhq79.js";
7
+ import"./cli-392r62e5.js";
8
+ import"./cli-6fbhny5y.js";
9
+ import"./cli-fnx674a0.js";
10
+ import"./cli-xjw661db.js";
11
+ import"./cli-t4aygjwm.js";
12
12
  import"./cli-9fsre5pt.js";
13
- import"./cli-tw3fe8bj.js";
14
- import"./cli-35czfv00.js";
15
- import"./cli-6wwpk9d9.js";
13
+ import"./cli-c8n6gjbg.js";
14
+ import"./cli-sh1d5f84.js";
15
+ import"./cli-840req7g.js";
16
16
  import"./cli-fw5r7pfj.js";
17
17
  import"./cli-c8131c4q.js";
18
- import"./cli-v1aqbv58.js";
19
- import"./cli-hj3t87r2.js";
20
- import"./cli-f7d23ded.js";
18
+ import"./cli-fyxdrpws.js";
19
+ import"./cli-tmdgp58p.js";
20
+ import"./cli-29yqhrjq.js";
21
21
  import"./cli-gpnb45ck.js";
22
- import"./cli-9z6vwf30.js";
23
- import"./cli-xnnkeg5p.js";
24
- import"./cli-ks60cc3h.js";
22
+ import"./cli-xecc5fgb.js";
23
+ import"./cli-4q0ztagc.js";
24
+ import"./cli-k6cyzj2y.js";
25
25
  import"./cli-8rxa073f.js";
26
26
 
27
27
  // src/cli/fixes.ts
@@ -12,10 +12,10 @@ import {
12
12
  signGatewayRequest,
13
13
  startDeviceFlow,
14
14
  validateGateway
15
- } from "./cli-hj3t87r2.js";
16
- import"./cli-9z6vwf30.js";
17
- import"./cli-xnnkeg5p.js";
18
- import"./cli-ks60cc3h.js";
15
+ } from "./cli-tmdgp58p.js";
16
+ import"./cli-xecc5fgb.js";
17
+ import"./cli-4q0ztagc.js";
18
+ import"./cli-k6cyzj2y.js";
19
19
  import"./cli-8rxa073f.js";
20
20
  init_auth();
21
21
 
@@ -17,19 +17,19 @@ import {
17
17
  update,
18
18
  write,
19
19
  writeRaw
20
- } from "./cli-v1aqbv58.js";
21
- import"./cli-hj3t87r2.js";
20
+ } from "./cli-fyxdrpws.js";
21
+ import"./cli-tmdgp58p.js";
22
22
  import {
23
23
  init_zod,
24
24
  zod_default
25
- } from "./cli-f7d23ded.js";
25
+ } from "./cli-29yqhrjq.js";
26
26
  import"./cli-gpnb45ck.js";
27
- import"./cli-9z6vwf30.js";
28
- import"./cli-xnnkeg5p.js";
27
+ import"./cli-xecc5fgb.js";
28
+ import"./cli-4q0ztagc.js";
29
29
  import {
30
30
  getCurrentVersion,
31
31
  init_installation
32
- } from "./cli-ks60cc3h.js";
32
+ } from "./cli-k6cyzj2y.js";
33
33
  import {
34
34
  __require
35
35
  } from "./cli-8rxa073f.js";
@@ -303,7 +303,7 @@ async function create(input) {
303
303
  if (normalizedConfig?.headers !== undefined) {
304
304
  snapshotHeaders = { ...normalizedConfig.headers };
305
305
  } else {
306
- const { config: appConfig } = await import("./index-x4xefngs.js");
306
+ const { config: appConfig } = await import("./index-wdve6p4j.js");
307
307
  const cfg = await appConfig.get();
308
308
  snapshotHeaders = cfg.defaultHeaders ? { ...cfg.defaultHeaders } : { ...DEFAULT_HEADER_RECORD };
309
309
  }
@@ -3,8 +3,8 @@ import {
3
3
  init,
4
4
  init_config,
5
5
  update
6
- } from "./cli-xnnkeg5p.js";
7
- import"./cli-ks60cc3h.js";
6
+ } from "./cli-4q0ztagc.js";
7
+ import"./cli-k6cyzj2y.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-tw3fe8bj.js";
3
+ } from "./cli-c8n6gjbg.js";
4
4
  import {
5
5
  ALL_TOOL_NAMES,
6
6
  ASK_USER_QUESTIONS_TOOL_NAME,
@@ -11,9 +11,12 @@ import {
11
11
  EMAIL_TOOL_NAMES,
12
12
  OffensiveSecurityAgent,
13
13
  PLAN_MODE_TOOL_NAMES,
14
+ PentestReportedError,
14
15
  PersistentShell,
15
16
  PlaywrightMcpSession,
17
+ REPORT_ERROR_TOOL_NAME,
16
18
  RESPONSE_TOOL_NAME,
19
+ ReportErrorReasonSchema,
17
20
  SEND_EMAIL_TOOL_NAME,
18
21
  SKILL_TOOL_NAMES,
19
22
  ScopeViolationError,
@@ -21,7 +24,6 @@ import {
21
24
  addMemory,
22
25
  assertCommandInScope,
23
26
  assertUrlInScope,
24
- authenticateSession,
25
27
  buildBaseSystemPrompt,
26
28
  buildProvidedFilesSection,
27
29
  buildSessionWorkspaceSection,
@@ -35,6 +37,7 @@ import {
35
37
  createBrowserToolset,
36
38
  createEmailToolset,
37
39
  createFile,
40
+ createReportErrorTool,
38
41
  createResponseTool,
39
42
  createSandboxBrowserTools,
40
43
  createTask,
@@ -83,16 +86,16 @@ import {
83
86
  validateDiscovery,
84
87
  webSearch,
85
88
  writePlan
86
- } from "./cli-35czfv00.js";
87
- import"./cli-6wwpk9d9.js";
89
+ } from "./cli-sh1d5f84.js";
90
+ import"./cli-840req7g.js";
88
91
  import"./cli-c8131c4q.js";
89
- import"./cli-v1aqbv58.js";
90
- import"./cli-hj3t87r2.js";
91
- import"./cli-f7d23ded.js";
92
+ import"./cli-fyxdrpws.js";
93
+ import"./cli-tmdgp58p.js";
94
+ import"./cli-29yqhrjq.js";
92
95
  import"./cli-gpnb45ck.js";
93
- import"./cli-9z6vwf30.js";
94
- import"./cli-xnnkeg5p.js";
95
- import"./cli-ks60cc3h.js";
96
+ import"./cli-xecc5fgb.js";
97
+ import"./cli-4q0ztagc.js";
98
+ import"./cli-k6cyzj2y.js";
96
99
  import"./cli-8rxa073f.js";
97
100
  export {
98
101
  writePlan,
@@ -143,6 +146,7 @@ export {
143
146
  createTask,
144
147
  createSandboxBrowserTools,
145
148
  createResponseTool,
149
+ createReportErrorTool,
146
150
  createFile,
147
151
  createEmailToolset,
148
152
  createBrowserToolset,
@@ -156,7 +160,6 @@ export {
156
160
  buildSessionWorkspaceSection,
157
161
  buildProvidedFilesSection,
158
162
  buildBaseSystemPrompt,
159
- authenticateSession,
160
163
  assertUrlInScope,
161
164
  assertCommandInScope,
162
165
  addMemory,
@@ -164,9 +167,12 @@ export {
164
167
  ScopeViolationError,
165
168
  SKILL_TOOL_NAMES,
166
169
  SEND_EMAIL_TOOL_NAME,
170
+ ReportErrorReasonSchema,
167
171
  RESPONSE_TOOL_NAME,
172
+ REPORT_ERROR_TOOL_NAME,
168
173
  PlaywrightMcpSession,
169
174
  PersistentShell,
175
+ PentestReportedError,
170
176
  PLAN_MODE_TOOL_NAMES,
171
177
  OffensiveSecurityAgent,
172
178
  EMAIL_TOOL_NAMES as EMAIL_TOOL_NAMES_ACTIVE,