souleyez 2.43.5__py3-none-any.whl → 2.43.6__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.5'
1
+ __version__ = '2.43.6'
2
2
 
souleyez/docs/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # SoulEyez Documentation
2
2
 
3
- **Version:** 2.43.5
4
- **Last Updated:** January 11, 2026
3
+ **Version:** 2.43.6
4
+ **Last Updated:** January 12, 2026
5
5
  **Organization:** CyberSoul Security
6
6
 
7
7
  Welcome to the SoulEyez documentation! This documentation covers architecture, development, user guides, and operational information for the SoulEyez penetration testing platform.
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.5')
176
+ @click.version_option(version='2.43.6')
177
177
  def cli():
178
178
  """SoulEyez - AI-Powered Pentesting Platform by CyberSoul Security"""
179
179
  from souleyez.log_config import init_logging
@@ -17,6 +17,7 @@ from rich.table import Table
17
17
  from souleyez.ui.design_system import DesignSystem
18
18
  from souleyez.engine.loader import discover_plugins
19
19
  from souleyez.engine.background import enqueue_job, list_jobs, get_job
20
+ from souleyez.security.scope_validator import ScopeViolationError
20
21
  from souleyez.storage.engagements import EngagementManager
21
22
  from souleyez.storage.hosts import HostManager
22
23
  from souleyez.storage.findings import FindingsManager
@@ -3955,19 +3956,29 @@ def launch_job(job_params: Dict[str, Any]) -> Optional[int]:
3955
3956
  click.echo()
3956
3957
 
3957
3958
  job_ids = []
3959
+ blocked_targets = []
3958
3960
  for t in targets:
3959
- job_id = enqueue_job(
3960
- tool=tool_name,
3961
- target=t,
3962
- args=args,
3963
- label=label,
3964
- metadata=metadata if metadata else None
3965
- )
3966
- job_ids.append(job_id)
3967
- click.echo(click.style(f"✓ Job #{job_id} enqueued for {t}", fg='green'))
3961
+ try:
3962
+ job_id = enqueue_job(
3963
+ tool=tool_name,
3964
+ target=t,
3965
+ args=args,
3966
+ label=label,
3967
+ metadata=metadata if metadata else None
3968
+ )
3969
+ job_ids.append(job_id)
3970
+ click.echo(click.style(f"✓ Job #{job_id} enqueued for {t}", fg='green'))
3971
+ except ScopeViolationError:
3972
+ blocked_targets.append(t)
3973
+ click.echo(click.style(f"✗ BLOCKED (out of scope): {t}", fg='red', bold=True))
3968
3974
 
3969
3975
  click.echo()
3970
- click.echo(click.style(f"✓ {len(job_ids)} jobs enqueued successfully!", fg='green', bold=True))
3976
+ if blocked_targets:
3977
+ click.echo(click.style(f"⚠ {len(blocked_targets)} targets blocked (out of scope)", fg='yellow', bold=True))
3978
+ if job_ids:
3979
+ click.echo(click.style(f"✓ {len(job_ids)} jobs enqueued successfully!", fg='green', bold=True))
3980
+ else:
3981
+ click.echo(click.style("✗ No jobs created - all targets blocked", fg='red', bold=True))
3971
3982
  click.echo(f"Tool: {tool_name}")
3972
3983
  if label:
3973
3984
  click.echo(f"Label: {label}")
@@ -3998,6 +4009,15 @@ def launch_job(job_params: Dict[str, Any]) -> Optional[int]:
3998
4009
 
3999
4010
  return job_id # Return the job_id
4000
4011
 
4012
+ except ScopeViolationError as e:
4013
+ click.echo()
4014
+ click.echo(click.style("✗ JOB BLOCKED - OUT OF SCOPE", fg='red', bold=True))
4015
+ click.echo(click.style(f" Target: {job_params.get('target', 'unknown')}", fg='red'))
4016
+ click.echo(click.style(f" Reason: {e}", fg='yellow'))
4017
+ click.echo()
4018
+ click.echo(click.style(" Scope enforcement is set to 'block' for this engagement.", fg='cyan'))
4019
+ click.echo(click.style(" Use 'souleyez scope' to view or modify scope settings.", fg='cyan'))
4020
+ return None
4001
4021
  except Exception as e:
4002
4022
  click.echo(click.style(f"✗ Error enqueueing job: {e}", fg='red'))
4003
4023
  return None
@@ -5054,6 +5074,7 @@ def _view_ai_suggestions(engagement_id: int):
5054
5074
  # Accept all suggestions
5055
5075
  if click.confirm(f" Queue all {len(suggestions)} AI suggestions?", default=True):
5056
5076
  queued = 0
5077
+ blocked = 0
5057
5078
  for sug in suggestions:
5058
5079
  try:
5059
5080
  job_id = enqueue_job(
@@ -5065,12 +5086,17 @@ def _view_ai_suggestions(engagement_id: int):
5065
5086
  )
5066
5087
  if job_id:
5067
5088
  queued += 1
5089
+ except ScopeViolationError:
5090
+ blocked += 1
5091
+ click.echo(click.style(f" ✗ BLOCKED: {sug['target']} (out of scope)", fg='red'))
5068
5092
  except Exception as e:
5069
5093
  pass
5070
5094
 
5071
5095
  # Mark all as approved
5072
5096
  _mark_suggestions_approved(engagement_id, [s for s in suggestions])
5073
- click.echo(click.style(f"\n ✓ Queued {queued} job(s)", fg='green'))
5097
+ if blocked:
5098
+ click.echo(click.style(f"\n ⚠ {blocked} job(s) blocked (out of scope)", fg='yellow'))
5099
+ click.echo(click.style(f" ✓ Queued {queued} job(s)", fg='green'))
5074
5100
  click.pause()
5075
5101
  return
5076
5102
  continue
@@ -5153,6 +5179,11 @@ def _view_suggestion_detail(engagement_id: int, suggestion: dict, all_suggestion
5153
5179
  )
5154
5180
  _mark_suggestions_approved(engagement_id, [suggestion])
5155
5181
  click.echo(click.style(f"\n ✓ Queued job #{job_id}", fg='green'))
5182
+ except ScopeViolationError as e:
5183
+ click.echo()
5184
+ click.echo(click.style(" ✗ JOB BLOCKED - OUT OF SCOPE", fg='red', bold=True))
5185
+ click.echo(click.style(f" Target: {suggestion['target']}", fg='red'))
5186
+ click.echo(click.style(f" Reason: {e}", fg='yellow'))
5156
5187
  except Exception as e:
5157
5188
  click.echo(click.style(f"\n ✗ Failed to queue: {e}", fg='red'))
5158
5189
  click.pause()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: souleyez
3
- Version: 2.43.5
3
+ Version: 2.43.6
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=Xw87vqKskpwi-pQCDE6S_GKsPiR7XqEGoV-PRxHMQ2c,24
1
+ souleyez/__init__.py,sha256=vVSk_skOILY9eSW1r86Nhmh7JKMXU5OwHFPBN7nuO70,24
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=IOeninidtEeQcExYhmlM9GzbQAIBec3IoDJjnbC8yTU,129100
7
+ souleyez/main.py,sha256=h_kWBWR3Bm32I6iepDomN_BOfg2xHmu7eUZfCVFlbpQ,129100
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=TcNcs_55hpXB_ASRqvW95DAj9kXuGv1A5f4Z8At0Ybo,7187
107
+ souleyez/docs/README.md,sha256=jIHgHz1PuAZqawL354iek_c3czdc0Yenk7Tw55Ah4VI,7187
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=7sHfvx4P8n5irLVEG1w_1sASTBBDWWUW2yIVuCsx-y4,1407173
350
+ souleyez/ui/interactive.py,sha256=3WUuQMTNvVjcklkKbxmZCSFL0PqcQEeiaONTDtl4duU,1409094
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
@@ -370,9 +370,9 @@ souleyez/ui/tutorial_state.py,sha256=Thf7_qCj4VKjG7UqgJqa9kjIqiFUU-7Q7kG4v-u2B4A
370
370
  souleyez/ui/wazuh_vulns_view.py,sha256=3vJJEmrjgS2wD6EDB7ZV7WxgytBHTm-1WqNDjp7lVEI,21830
371
371
  souleyez/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
372
372
  souleyez/utils/tool_checker.py,sha256=YZjEeHudjglvJk_MA-iQLzqEItFybhCy6PfaPoBANtE,30830
373
- souleyez-2.43.5.dist-info/licenses/LICENSE,sha256=J7vDD5QMF4w2oSDm35eBgosATE70ah1M40u9W4EpTZs,1090
374
- souleyez-2.43.5.dist-info/METADATA,sha256=DFvOmIQeXr4F9SnA--_Zt0Fi9YKgUqLLKai48C9vo-c,10425
375
- souleyez-2.43.5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
376
- souleyez-2.43.5.dist-info/entry_points.txt,sha256=bN5W1dhjDZJl3TKclMjRpfQvGPmyrJLwwDuCj_X39HE,48
377
- souleyez-2.43.5.dist-info/top_level.txt,sha256=afAMzS9p4lcdBNxhGo6jl3ipQE9HUvvNIPOdjtPjr_Q,9
378
- souleyez-2.43.5.dist-info/RECORD,,
373
+ souleyez-2.43.6.dist-info/licenses/LICENSE,sha256=J7vDD5QMF4w2oSDm35eBgosATE70ah1M40u9W4EpTZs,1090
374
+ souleyez-2.43.6.dist-info/METADATA,sha256=XLeqpZvidpaBjrKIkGf8i7lDYfvhkQMHTMEkE6SPwgQ,10425
375
+ souleyez-2.43.6.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
376
+ souleyez-2.43.6.dist-info/entry_points.txt,sha256=bN5W1dhjDZJl3TKclMjRpfQvGPmyrJLwwDuCj_X39HE,48
377
+ souleyez-2.43.6.dist-info/top_level.txt,sha256=afAMzS9p4lcdBNxhGo6jl3ipQE9HUvvNIPOdjtPjr_Q,9
378
+ souleyez-2.43.6.dist-info/RECORD,,