souleyez 2.43.23__py3-none-any.whl → 2.43.24__py3-none-any.whl

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.
souleyez/__init__.py CHANGED
@@ -1,2 +1,2 @@
1
- __version__ = '2.43.23'
1
+ __version__ = '2.43.24'
2
2
 
souleyez/docs/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # SoulEyez Documentation
2
2
 
3
- **Version:** 2.43.23
3
+ **Version:** 2.43.24
4
4
  **Last Updated:** January 12, 2026
5
5
  **Organization:** CyberSoul Security
6
6
 
souleyez/main.py CHANGED
@@ -173,7 +173,7 @@ def _check_privileged_tools():
173
173
 
174
174
 
175
175
  @click.group()
176
- @click.version_option(version='2.43.23')
176
+ @click.version_option(version='2.43.24')
177
177
  def cli():
178
178
  """SoulEyez - AI-Powered Pentesting Platform by CyberSoul Security"""
179
179
  from souleyez.log_config import init_logging
@@ -5607,7 +5607,8 @@ def view_job_detail(job_id: int):
5607
5607
 
5608
5608
  # Parse and display ffuf/gobuster results if available (only when not showing raw logs)
5609
5609
  # Also check 'no_results' status - background parser may have missed results due to timing
5610
- if not show_raw_logs and job.get('tool') in ['ffuf', 'gobuster'] and job.get('status') in ['done', 'completed', 'no_results', 'warning'] and log_path and os.path.exists(log_path):
5610
+ # Also handle 'error' status to show helpful error messages
5611
+ if not show_raw_logs and job.get('tool') in ['ffuf', 'gobuster'] and job.get('status') in ['done', 'completed', 'no_results', 'warning', 'error'] and log_path and os.path.exists(log_path):
5611
5612
  try:
5612
5613
  if job.get('tool') == 'ffuf':
5613
5614
  from souleyez.parsers.ffuf_parser import parse_ffuf
@@ -5618,8 +5619,50 @@ def view_job_detail(job_id: int):
5618
5619
  log_content = f.read()
5619
5620
  parsed = parse_gobuster_output(log_content, job.get('target', ''))
5620
5621
 
5622
+ # Check for timeout in log
5623
+ timed_out = 'timed out' in log_content.lower() or 'Command timed out' in log_content
5624
+
5625
+ # Show error summary for jobs with error status
5626
+ if job.get('status') == 'error':
5627
+ click.echo(click.style("=" * 70, fg='red'))
5628
+ click.echo(click.style("❌ SCAN FAILED", bold=True, fg='red'))
5629
+ click.echo(click.style("=" * 70, fg='red'))
5630
+ click.echo()
5631
+
5632
+ # Check if it was a timeout
5633
+ if timed_out:
5634
+ click.echo(" Scan reached timeout before completing.")
5635
+ click.echo()
5636
+ click.echo(click.style(" Possible causes:", fg='bright_black'))
5637
+ click.echo(click.style(" • Target is rate limiting requests", fg='bright_black'))
5638
+ click.echo(click.style(" • Wordlist too large for timeout window", fg='bright_black'))
5639
+ click.echo(click.style(" • Network latency issues", fg='bright_black'))
5640
+ click.echo()
5641
+ click.echo(click.style(" Suggestions:", fg='bright_black'))
5642
+ click.echo(click.style(" • Try smaller wordlist", fg='bright_black'))
5643
+ click.echo(click.style(" • Increase --delay between requests", fg='bright_black'))
5644
+ click.echo(click.style(" • Reduce threads with -t", fg='bright_black'))
5645
+ else:
5646
+ # Try to extract error message from log
5647
+ import re
5648
+ error_msg = None
5649
+ if 'ERROR:' in log_content:
5650
+ match = re.search(r'ERROR:\s*(.+?)(?:\n|$)', log_content)
5651
+ if match:
5652
+ error_msg = match.group(1).strip()
5653
+
5654
+ if error_msg:
5655
+ click.echo(f" Error: {error_msg}")
5656
+ else:
5657
+ click.echo(" Scan failed - see raw logs for details.")
5658
+ click.echo(" Press [r] to view raw logs.")
5659
+
5660
+ click.echo()
5661
+ click.echo(click.style("=" * 70, fg='red'))
5662
+ click.echo()
5663
+
5621
5664
  # Show warning summary for jobs with warning status
5622
- if job.get('status') == 'warning':
5665
+ elif job.get('status') == 'warning':
5623
5666
  click.echo(click.style("=" * 70, fg='yellow'))
5624
5667
  click.echo(click.style("⚠️ SCAN WARNING", bold=True, fg='yellow'))
5625
5668
  click.echo(click.style("=" * 70, fg='yellow'))
@@ -5826,7 +5869,40 @@ def view_job_detail(job_id: int):
5826
5869
  if not show_all_paths and len(status_groups[status]) > 10:
5827
5870
  click.echo(f" ... and {len(status_groups[status]) - 10} more")
5828
5871
  click.echo()
5829
-
5872
+
5873
+ # No paths found - show helpful no_results summary
5874
+ elif job.get('status') in ['no_results', 'done', 'completed'] and not job.get('status') == 'error':
5875
+ click.echo(click.style("=" * 70, fg='cyan'))
5876
+ click.echo(click.style("GOBUSTER SCAN RESULTS", bold=True, fg='cyan'))
5877
+ click.echo(click.style("=" * 70, fg='cyan'))
5878
+ click.echo()
5879
+ click.echo(" No paths discovered.")
5880
+ click.echo()
5881
+
5882
+ # Extract wordlist name from args
5883
+ args = job.get('args', [])
5884
+ for i, arg in enumerate(args):
5885
+ if arg == '-w' and i + 1 < len(args):
5886
+ import os
5887
+ wordlist = os.path.basename(args[i + 1])
5888
+ click.echo(f" Wordlist: {wordlist}")
5889
+ break
5890
+
5891
+ # Extract extensions
5892
+ for i, arg in enumerate(args):
5893
+ if arg == '-x' and i + 1 < len(args):
5894
+ click.echo(f" Extensions: {args[i + 1]}")
5895
+ break
5896
+
5897
+ click.echo()
5898
+ click.echo(click.style(" This could mean:", fg='bright_black'))
5899
+ click.echo(click.style(" • Target has good security (no exposed paths)", fg='bright_black'))
5900
+ click.echo(click.style(" • Try a different/larger wordlist", fg='bright_black'))
5901
+ click.echo(click.style(" • Target may be blocking automated requests", fg='bright_black'))
5902
+ click.echo()
5903
+ click.echo(click.style("=" * 70, fg='cyan'))
5904
+ click.echo()
5905
+
5830
5906
  except Exception as e:
5831
5907
  # Silently fail - not critical
5832
5908
  pass
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: souleyez
3
- Version: 2.43.23
3
+ Version: 2.43.24
4
4
  Summary: AI-Powered Penetration Testing Platform with 40+ integrated tools
5
5
  Author-email: CyberSoul Security <contact@cybersoulsecurity.com>
6
6
  Maintainer-email: CyberSoul Security <contact@cybersoulsecurity.com>
@@ -1,10 +1,10 @@
1
- souleyez/__init__.py,sha256=_O0zQDjjfN2p0SJ7vxTMimFsacmNRt7DRcREfGCtzsA,25
1
+ souleyez/__init__.py,sha256=Dlm8Sb-gazHcbQW7XGgbdPvDd9-TWKpWV4WZt5kPQug,25
2
2
  souleyez/config.py,sha256=av357I3GYRWAklv8Dto-9-5Db699Wq5znez7zo7241Q,11595
3
3
  souleyez/devtools.py,sha256=rptmUY4a5eVvYjdEc6273MSagL-D9xibPOFgohVqUno,3508
4
4
  souleyez/feature_flags.py,sha256=mo6YAq07lc6sR3lEFKmIwTKxXZ2JPxwa5X97uR_mu50,4642
5
5
  souleyez/history.py,sha256=gzs5I_j-3OigIP6yfmBChdqxaFmyUIxvTpzWUPe_Q6c,2853
6
6
  souleyez/log_config.py,sha256=MMhPAJOqgXDfuE-xm5g0RxAfWndcmbhFHvIEMm1a_Wo,5830
7
- souleyez/main.py,sha256=BISz7PzhK03R7UTB-0Cnozk3kVOx0ctBxtZdg4bCo78,129101
7
+ souleyez/main.py,sha256=EDUJ8QB1TBBalTxQROu40kQ5dr2mgS2ehMyJLt-hL_I,129101
8
8
  souleyez/scanner.py,sha256=U3IWHRrJ5aQ32dSHiVAHB60w1R_z0E0QxfM99msYNlw,3124
9
9
  souleyez/security.py,sha256=S84m1QmnKz_6NgH2I6IBIAorMHxRPNYVFSnks5xjihQ,2479
10
10
  souleyez/ui.py,sha256=15pfsqoDPnojAqr5S0TZHJE2ZkSHzkHpNVfVvsRj66A,34301
@@ -104,7 +104,7 @@ souleyez/detection/__init__.py,sha256=QIhvXjFdjrquQ6A0VQ7GZQkK_EXB59t8Dv9PKXhEUe
104
104
  souleyez/detection/attack_signatures.py,sha256=akgWwiIkh6WYnghCuLhRV0y6FS0SQ0caGF8tZUc49oA,6965
105
105
  souleyez/detection/mitre_mappings.py,sha256=xejE80YK-g8kKaeQoo-vBl8P3t8RTTItbfN0NaVZw6s,20558
106
106
  souleyez/detection/validator.py,sha256=-AJ7QSJ3-6jFKLnPG_Rc34IXyF4JPyI82BFUgTA9zw0,15641
107
- souleyez/docs/README.md,sha256=1IbE4JAOBBHmIvSu9AiYaiXllUTR4kYFYexCGDEQy84,7188
107
+ souleyez/docs/README.md,sha256=lQyXwVpbC_iSI3lrL0tgVT5Q8pcKg2GhphEjeUqC8FM,7188
108
108
  souleyez/docs/api-reference/cli-commands.md,sha256=lTLFnILN3YRVdqCaag7WgsYXfDGglb1TuPexkxDsVdE,12917
109
109
  souleyez/docs/api-reference/engagement-api.md,sha256=nd-EvQMtiJrobg2bzFEADp853HP1Uhb9dmgok0_-neE,11672
110
110
  souleyez/docs/api-reference/integration-guide.md,sha256=c96uX79ukHyYotLa54wZ20Kx-EUZnrKegTeGkfLD-pw,16285
@@ -347,7 +347,7 @@ souleyez/ui/export_view.py,sha256=0nQvVsKk7FU4uRzSfJ_qBZh_Lfn8hgGA2rbJ5bNg5-Y,65
347
347
  souleyez/ui/gap_analysis_view.py,sha256=AytAOEBq010wwo9hne1TE-uJpY_xicjLrFANbvN3r3w,30727
348
348
  souleyez/ui/help_system.py,sha256=nKGxLaMi-TKYs6xudTyw_tZqBb1cGFEuYYh6N-MAsJE,16648
349
349
  souleyez/ui/intelligence_view.py,sha256=VeAQ-3mANRnLIVpRqocL3JV0HUmJtADdxDeC5lzQhE0,32168
350
- souleyez/ui/interactive.py,sha256=x2THKw7npsTYEhK6qy7r-yor_uP2NtMdXjuGXTu0ANU,1423390
350
+ souleyez/ui/interactive.py,sha256=SKur3ctjoUba1-gLE8MgORlA4-BzTCXXNEA0nAZTI88,1427636
351
351
  souleyez/ui/interactive_selector.py,sha256=6A51fgmFRnemBY0aCPHIhK2Rpba16NjSGKLzC0Q5vI8,16407
352
352
  souleyez/ui/log_formatter.py,sha256=akhIkYoO_cCaKxS1V5N3iPmIrHzgsU7pmsedx70s9TI,3845
353
353
  souleyez/ui/menu_components.py,sha256=N8zq2QXGmfaLJ08l53MMYt1y-5LRWgpZH6r8nXHonj8,3519
@@ -371,9 +371,9 @@ souleyez/ui/wazuh_vulns_view.py,sha256=3vJJEmrjgS2wD6EDB7ZV7WxgytBHTm-1WqNDjp7lV
371
371
  souleyez/ui/wordlist_browser.py,sha256=iQ2YYxrVo8FGCfM-Bc0teVBijSAbd2rjbSQ2hOE7eiY,16110
372
372
  souleyez/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
373
373
  souleyez/utils/tool_checker.py,sha256=YzNajZpFyKJA5fp0Kq_gQ0YnKb7J1BaKJSZ8vP-IWj8,30868
374
- souleyez-2.43.23.dist-info/licenses/LICENSE,sha256=J7vDD5QMF4w2oSDm35eBgosATE70ah1M40u9W4EpTZs,1090
375
- souleyez-2.43.23.dist-info/METADATA,sha256=KU_fLA17aF-ze8k-cCoWGoyKBlLrRT6WlE6_SOBfXdE,10427
376
- souleyez-2.43.23.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
377
- souleyez-2.43.23.dist-info/entry_points.txt,sha256=bN5W1dhjDZJl3TKclMjRpfQvGPmyrJLwwDuCj_X39HE,48
378
- souleyez-2.43.23.dist-info/top_level.txt,sha256=afAMzS9p4lcdBNxhGo6jl3ipQE9HUvvNIPOdjtPjr_Q,9
379
- souleyez-2.43.23.dist-info/RECORD,,
374
+ souleyez-2.43.24.dist-info/licenses/LICENSE,sha256=J7vDD5QMF4w2oSDm35eBgosATE70ah1M40u9W4EpTZs,1090
375
+ souleyez-2.43.24.dist-info/METADATA,sha256=SSLMWcK2w5a2tSL6HC8iGtK63CGSHYKdI9FwSP0w2QQ,10427
376
+ souleyez-2.43.24.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
377
+ souleyez-2.43.24.dist-info/entry_points.txt,sha256=bN5W1dhjDZJl3TKclMjRpfQvGPmyrJLwwDuCj_X39HE,48
378
+ souleyez-2.43.24.dist-info/top_level.txt,sha256=afAMzS9p4lcdBNxhGo6jl3ipQE9HUvvNIPOdjtPjr_Q,9
379
+ souleyez-2.43.24.dist-info/RECORD,,