pentesting 0.7.34 → 0.7.36

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 (2) hide show
  1. package/dist/index.js +67 -2
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -5492,6 +5492,51 @@ var SessionManager = class extends EventEmitter5 {
5492
5492
  return [];
5493
5493
  }
5494
5494
  }
5495
+ /**
5496
+ * Clean up old sessions (older than maxAgeDays)
5497
+ */
5498
+ async cleanupOldSessions(maxAgeDays = 7) {
5499
+ const sessions = await this.listSessions();
5500
+ const now = Date.now();
5501
+ const maxAgeMs = maxAgeDays * 24 * 60 * 60 * 1e3;
5502
+ let deletedCount = 0;
5503
+ for (const session of sessions) {
5504
+ const sessionAge = now - new Date(session.updatedAt).getTime();
5505
+ if (sessionAge > maxAgeMs && session.status !== "active") {
5506
+ const deleted = await this.deleteSession(session.id);
5507
+ if (deleted) {
5508
+ deletedCount++;
5509
+ }
5510
+ }
5511
+ }
5512
+ if (deletedCount > 0) {
5513
+ this.emit("sessions_cleaned", { count: deletedCount });
5514
+ }
5515
+ return deletedCount;
5516
+ }
5517
+ /**
5518
+ * Clean up empty or corrupted sessions
5519
+ */
5520
+ async cleanupInvalidSessions() {
5521
+ await this.initialize();
5522
+ let deletedCount = 0;
5523
+ try {
5524
+ const entries = await fs3.readdir(this.sessionsDir, { withFileTypes: true });
5525
+ for (const entry of entries) {
5526
+ if (entry.isDirectory()) {
5527
+ const metadataPath = path3.join(this.sessionsDir, entry.name, "metadata.json");
5528
+ try {
5529
+ await fs3.access(metadataPath);
5530
+ } catch {
5531
+ await fs3.rm(path3.join(this.sessionsDir, entry.name), { recursive: true });
5532
+ deletedCount++;
5533
+ }
5534
+ }
5535
+ }
5536
+ } catch {
5537
+ }
5538
+ return deletedCount;
5539
+ }
5495
5540
  /**
5496
5541
  * Get most recent session
5497
5542
  */
@@ -6589,6 +6634,16 @@ var App = ({ autoApprove = false, target }) => {
6589
6634
  const [wasInterrupted, setWasInterrupted] = useState(false);
6590
6635
  const [spinnerHue, setSpinnerHue] = useState(0);
6591
6636
  const [, forceUpdate] = useState(0);
6637
+ const SPINNER_COLORS = [
6638
+ "#FF6B6B",
6639
+ "#FF8E53",
6640
+ "#FFC107",
6641
+ "#4CAF50",
6642
+ "#00BCD4",
6643
+ "#2196F3",
6644
+ "#9C27B0",
6645
+ "#E91E63"
6646
+ ];
6592
6647
  const [agent] = useState(() => new AutonomousHackingAgent(void 0, { autoApprove }));
6593
6648
  const sessionManager2 = getSessionManager();
6594
6649
  const approvalManager2 = getApprovalManager({ yoloMode: autoApprove });
@@ -6624,7 +6679,17 @@ var App = ({ autoApprove = false, target }) => {
6624
6679
  }
6625
6680
  });
6626
6681
  });
6627
- }, []);
6682
+ sessionManager2.cleanupOldSessions(7).then((count) => {
6683
+ if (count > 0) {
6684
+ console.log(`[Session] Cleaned up ${count} old sessions`);
6685
+ }
6686
+ });
6687
+ sessionManager2.cleanupInvalidSessions().then((count) => {
6688
+ if (count > 0) {
6689
+ console.log(`[Session] Removed ${count} invalid sessions`);
6690
+ }
6691
+ });
6692
+ }, [sessionManager2]);
6628
6693
  const startTimeRef = useRef(0);
6629
6694
  const timerRef = useRef(null);
6630
6695
  const addMessage = useCallback((type, content, duration) => {
@@ -7479,7 +7544,7 @@ ${list}`);
7479
7544
  ] }),
7480
7545
  isProcessing ? /* @__PURE__ */ jsxs2(Box2, { flexDirection: "column", children: [
7481
7546
  /* @__PURE__ */ jsxs2(Box2, { children: [
7482
- /* @__PURE__ */ jsx2(Text2, { color: `hsl(${spinnerHue}, 70%, 60%)`, children: /* @__PURE__ */ jsx2(Spinner, { type: "dots" }) }),
7547
+ /* @__PURE__ */ jsx2(Text2, { color: SPINNER_COLORS[Math.floor(spinnerHue / 45) % SPINNER_COLORS.length], children: /* @__PURE__ */ jsx2(Spinner, { type: "dots" }) }),
7483
7548
  /* @__PURE__ */ jsxs2(Text2, { color: THEME.text.muted, children: [
7484
7549
  " ",
7485
7550
  currentStatus,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pentesting",
3
- "version": "0.7.34",
3
+ "version": "0.7.36",
4
4
  "description": "Autonomous Penetration Testing AI Agent",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",