souleyez 2.28.0__tar.gz → 2.29.0__tar.gz

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 (405) hide show
  1. {souleyez-2.28.0 → souleyez-2.29.0}/BETA_README.md +2 -2
  2. {souleyez-2.28.0/souleyez.egg-info → souleyez-2.29.0}/PKG-INFO +3 -3
  3. {souleyez-2.28.0 → souleyez-2.29.0}/pyproject.toml +1 -1
  4. souleyez-2.29.0/souleyez/__init__.py +1 -0
  5. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/README.md +1 -1
  6. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/main.py +1 -1
  7. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/schema.sql +36 -0
  8. {souleyez-2.28.0 → souleyez-2.29.0/souleyez.egg-info}/PKG-INFO +3 -3
  9. {souleyez-2.28.0 → souleyez-2.29.0}/tests/test_config.py +10 -1
  10. {souleyez-2.28.0 → souleyez-2.29.0}/tests/test_result_handler_sqlmap.py +11 -4
  11. {souleyez-2.28.0 → souleyez-2.29.0}/tests/test_storage.py +5 -4
  12. souleyez-2.28.0/souleyez/__init__.py +0 -1
  13. {souleyez-2.28.0 → souleyez-2.29.0}/LICENSE +0 -0
  14. {souleyez-2.28.0 → souleyez-2.29.0}/MANIFEST.in +0 -0
  15. {souleyez-2.28.0 → souleyez-2.29.0}/README.md +0 -0
  16. {souleyez-2.28.0 → souleyez-2.29.0}/setup.cfg +0 -0
  17. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ai/__init__.py +0 -0
  18. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ai/action_mapper.py +0 -0
  19. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ai/chain_advisor.py +0 -0
  20. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ai/claude_provider.py +0 -0
  21. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ai/context_builder.py +0 -0
  22. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ai/executor.py +0 -0
  23. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ai/feedback_handler.py +0 -0
  24. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ai/llm_factory.py +0 -0
  25. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ai/llm_provider.py +0 -0
  26. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ai/ollama_provider.py +0 -0
  27. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ai/ollama_service.py +0 -0
  28. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ai/path_scorer.py +0 -0
  29. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ai/recommender.py +0 -0
  30. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ai/report_context.py +0 -0
  31. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ai/report_prompts.py +0 -0
  32. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ai/report_service.py +0 -0
  33. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ai/result_parser.py +0 -0
  34. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ai/safety.py +0 -0
  35. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/assets/__init__.py +0 -0
  36. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/assets/souleyez-icon.png +0 -0
  37. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/auth/__init__.py +0 -0
  38. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/auth/audit.py +0 -0
  39. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/auth/engagement_access.py +0 -0
  40. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/auth/permissions.py +0 -0
  41. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/auth/session_manager.py +0 -0
  42. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/auth/user_manager.py +0 -0
  43. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/commands/__init__.py +0 -0
  44. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/commands/audit.py +0 -0
  45. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/commands/auth.py +0 -0
  46. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/commands/deliverables.py +0 -0
  47. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/commands/engagement.py +0 -0
  48. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/commands/license.py +0 -0
  49. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/commands/screenshots.py +0 -0
  50. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/commands/user.py +0 -0
  51. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/config.py +0 -0
  52. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/core/__init__.py +0 -0
  53. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/core/credential_tester.py +0 -0
  54. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/core/cve_mappings.py +0 -0
  55. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/core/cve_matcher.py +0 -0
  56. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/core/msf_auto_mapper.py +0 -0
  57. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/core/msf_chain_engine.py +0 -0
  58. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/core/msf_database.py +0 -0
  59. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/core/msf_integration.py +0 -0
  60. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/core/msf_rpc_client.py +0 -0
  61. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/core/msf_rpc_manager.py +0 -0
  62. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/core/msf_sync_manager.py +0 -0
  63. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/core/network_utils.py +0 -0
  64. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/core/parser_handler.py +0 -0
  65. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/core/pending_chains.py +0 -0
  66. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/core/templates.py +0 -0
  67. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/core/tool_chaining.py +0 -0
  68. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/core/version_utils.py +0 -0
  69. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/core/vuln_correlation.py +0 -0
  70. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/core/web_utils.py +0 -0
  71. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/templates/README.md +0 -0
  72. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/templates/active_directory.json +0 -0
  73. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/templates/cis_controls_v8.json +0 -0
  74. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/templates/cloud_security.json +0 -0
  75. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/templates/cmmc_2.0.json +0 -0
  76. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/templates/external_network.json +0 -0
  77. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/templates/ffiec_cat.json +0 -0
  78. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/templates/gdpr_article32.json +0 -0
  79. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/templates/glba_safeguards.json +0 -0
  80. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/templates/hipaa_security.json +0 -0
  81. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/templates/hitrust_csf.json +0 -0
  82. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/templates/internal_network.json +0 -0
  83. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/templates/iso27001.json +0 -0
  84. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/templates/nerc_cip.json +0 -0
  85. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/templates/nist_csf.json +0 -0
  86. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/templates/owasp_top10_2021.json +0 -0
  87. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/templates/pci_dss_4.0.json +0 -0
  88. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/templates/ptes_standard.json +0 -0
  89. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/templates/red_team.json +0 -0
  90. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/templates/soc2_type2.json +0 -0
  91. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/templates/webapp_advanced.json +0 -0
  92. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/wordlists/README.md +0 -0
  93. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/wordlists/all_users.txt +0 -0
  94. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/wordlists/api_endpoints.txt +0 -0
  95. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/wordlists/default_credentials.txt +0 -0
  96. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/wordlists/macos_users.txt +0 -0
  97. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/wordlists/router_passwords.txt +0 -0
  98. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/wordlists/router_users.txt +0 -0
  99. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/wordlists/soul_pass.txt +0 -0
  100. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/wordlists/soul_users.txt +0 -0
  101. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/wordlists/subdomains_common.txt +0 -0
  102. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/wordlists/top100.txt +0 -0
  103. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/wordlists/top20_quick.txt +0 -0
  104. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/wordlists/vnc_passwords.txt +0 -0
  105. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/wordlists/web_dirs_common.txt +0 -0
  106. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/wordlists/web_extensions.txt +0 -0
  107. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/wordlists/web_files_common.txt +0 -0
  108. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/detection/__init__.py +0 -0
  109. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/detection/attack_signatures.py +0 -0
  110. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/detection/mitre_mappings.py +0 -0
  111. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/detection/validator.py +0 -0
  112. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/devtools.py +0 -0
  113. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/api-reference/cli-commands.md +0 -0
  114. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/api-reference/engagement-api.md +0 -0
  115. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/api-reference/integration-guide.md +0 -0
  116. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/api-reference/parser-formats.md +0 -0
  117. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/architecture/decisions/000-template.md +0 -0
  118. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/architecture/decisions/001-local-llm-over-cloud.md +0 -0
  119. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/architecture/decisions/002-master-password-approach.md +0 -0
  120. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/architecture/decisions/003-database-schema-design.md +0 -0
  121. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/architecture/overview.md +0 -0
  122. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/database/MIGRATIONS.md +0 -0
  123. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/database/SCHEMA.md +0 -0
  124. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/database/SCHEMA_ERD.md +0 -0
  125. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/developer-guide/test_coverage_plan.md +0 -0
  126. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/developer-guide/ui-design-system.md +0 -0
  127. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/images/README.md +0 -0
  128. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/security/best-practices.md +0 -0
  129. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/security/credential-encryption.md +0 -0
  130. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/security/password-protected-commands.md +0 -0
  131. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/security/secure-defaults.md +0 -0
  132. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/security/threat-model.md +0 -0
  133. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/user-guide/ai-integration.md +0 -0
  134. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/user-guide/attack-surface.md +0 -0
  135. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/user-guide/auto-chaining.md +0 -0
  136. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/user-guide/configuration.md +0 -0
  137. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/user-guide/deliverables-screenshots.md +0 -0
  138. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/user-guide/dependencies.md +0 -0
  139. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/user-guide/evidence-vault.md +0 -0
  140. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/user-guide/exploit-suggestions.md +0 -0
  141. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/user-guide/getting-started.md +0 -0
  142. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/user-guide/installation.md +0 -0
  143. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/user-guide/metasploit-integration.md +0 -0
  144. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/user-guide/rbac.md +0 -0
  145. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/user-guide/report-generation.md +0 -0
  146. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/user-guide/scope-management.md +0 -0
  147. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/user-guide/siem-integration.md +0 -0
  148. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/user-guide/tools-reference.md +0 -0
  149. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/user-guide/troubleshooting.md +0 -0
  150. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/user-guide/uninstall.md +0 -0
  151. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/user-guide/worker-management.md +0 -0
  152. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/user-guide/workflows.md +0 -0
  153. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/engine/__init__.py +0 -0
  154. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/engine/background.py +0 -0
  155. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/engine/base.py +0 -0
  156. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/engine/job_status.py +0 -0
  157. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/engine/loader.py +0 -0
  158. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/engine/log_sanitizer.py +0 -0
  159. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/engine/manager.py +0 -0
  160. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/engine/result_handler.py +0 -0
  161. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/engine/worker_manager.py +0 -0
  162. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/export/__init__.py +0 -0
  163. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/export/evidence_bundle.py +0 -0
  164. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/feature_flags/__init__.py +0 -0
  165. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/feature_flags/features.py +0 -0
  166. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/feature_flags.py +0 -0
  167. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/history.py +0 -0
  168. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/importers/__init__.py +0 -0
  169. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/importers/msf_importer.py +0 -0
  170. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/importers/smart_importer.py +0 -0
  171. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/integrations/__init__.py +0 -0
  172. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/integrations/siem/__init__.py +0 -0
  173. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/integrations/siem/base.py +0 -0
  174. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/integrations/siem/elastic.py +0 -0
  175. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/integrations/siem/factory.py +0 -0
  176. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/integrations/siem/rule_mappings/__init__.py +0 -0
  177. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/integrations/siem/rule_mappings/wazuh_rules.py +0 -0
  178. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/integrations/siem/sentinel.py +0 -0
  179. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/integrations/siem/splunk.py +0 -0
  180. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/integrations/siem/wazuh.py +0 -0
  181. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/integrations/wazuh/__init__.py +0 -0
  182. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/integrations/wazuh/client.py +0 -0
  183. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/integrations/wazuh/config.py +0 -0
  184. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/integrations/wazuh/host_mapper.py +0 -0
  185. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/integrations/wazuh/sync.py +0 -0
  186. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/intelligence/__init__.py +0 -0
  187. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/intelligence/correlation_analyzer.py +0 -0
  188. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/intelligence/exploit_knowledge.py +0 -0
  189. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/intelligence/exploit_suggestions.py +0 -0
  190. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/intelligence/gap_analyzer.py +0 -0
  191. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/intelligence/gap_detector.py +0 -0
  192. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/intelligence/sensitive_tables.py +0 -0
  193. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/intelligence/service_parser.py +0 -0
  194. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/intelligence/surface_analyzer.py +0 -0
  195. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/intelligence/target_parser.py +0 -0
  196. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/licensing/__init__.py +0 -0
  197. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/licensing/validator.py +0 -0
  198. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/log_config.py +0 -0
  199. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/migrations/__init__.py +0 -0
  200. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/migrations/fix_job_counter.py +0 -0
  201. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/parsers/__init__.py +0 -0
  202. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/parsers/bloodhound_parser.py +0 -0
  203. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/parsers/crackmapexec_parser.py +0 -0
  204. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/parsers/dalfox_parser.py +0 -0
  205. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/parsers/dnsrecon_parser.py +0 -0
  206. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/parsers/enum4linux_parser.py +0 -0
  207. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/parsers/ffuf_parser.py +0 -0
  208. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/parsers/gobuster_parser.py +0 -0
  209. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/parsers/hashcat_parser.py +0 -0
  210. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/parsers/http_fingerprint_parser.py +0 -0
  211. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/parsers/hydra_parser.py +0 -0
  212. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/parsers/impacket_parser.py +0 -0
  213. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/parsers/john_parser.py +0 -0
  214. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/parsers/msf_parser.py +0 -0
  215. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/parsers/nikto_parser.py +0 -0
  216. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/parsers/nmap_parser.py +0 -0
  217. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/parsers/nuclei_parser.py +0 -0
  218. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/parsers/responder_parser.py +0 -0
  219. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/parsers/searchsploit_parser.py +0 -0
  220. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/parsers/smbmap_parser.py +0 -0
  221. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/parsers/sqlmap_parser.py +0 -0
  222. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/parsers/theharvester_parser.py +0 -0
  223. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/parsers/whois_parser.py +0 -0
  224. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/parsers/wpscan_parser.py +0 -0
  225. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/__init__.py +0 -0
  226. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/afp.py +0 -0
  227. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/afp_brute.py +0 -0
  228. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/ard.py +0 -0
  229. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/bloodhound.py +0 -0
  230. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/crackmapexec.py +0 -0
  231. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/dalfox.py +0 -0
  232. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/dns_hijack.py +0 -0
  233. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/dnsrecon.py +0 -0
  234. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/enum4linux.py +0 -0
  235. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/ffuf.py +0 -0
  236. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/firmware_extract.py +0 -0
  237. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/gobuster.py +0 -0
  238. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/hashcat.py +0 -0
  239. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/http_fingerprint.py +0 -0
  240. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/hydra.py +0 -0
  241. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/impacket_getnpusers.py +0 -0
  242. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/impacket_psexec.py +0 -0
  243. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/impacket_secretsdump.py +0 -0
  244. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/impacket_smbclient.py +0 -0
  245. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/john.py +0 -0
  246. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/macos_ssh.py +0 -0
  247. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/mdns.py +0 -0
  248. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/msf_auxiliary.py +0 -0
  249. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/msf_exploit.py +0 -0
  250. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/nikto.py +0 -0
  251. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/nmap.py +0 -0
  252. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/nuclei.py +0 -0
  253. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/plugin_base.py +0 -0
  254. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/plugin_template.py +0 -0
  255. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/responder.py +0 -0
  256. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/router_http_brute.py +0 -0
  257. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/router_ssh_brute.py +0 -0
  258. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/router_telnet_brute.py +0 -0
  259. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/routersploit.py +0 -0
  260. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/routersploit_exploit.py +0 -0
  261. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/searchsploit.py +0 -0
  262. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/smbmap.py +0 -0
  263. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/sqlmap.py +0 -0
  264. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/theharvester.py +0 -0
  265. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/tr069.py +0 -0
  266. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/upnp.py +0 -0
  267. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/upnp_abuse.py +0 -0
  268. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/vnc_access.py +0 -0
  269. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/vnc_brute.py +0 -0
  270. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/whois.py +0 -0
  271. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/wpscan.py +0 -0
  272. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/reporting/__init__.py +0 -0
  273. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/reporting/attack_chain.py +0 -0
  274. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/reporting/charts.py +0 -0
  275. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/reporting/compliance_mappings.py +0 -0
  276. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/reporting/detection_report.py +0 -0
  277. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/reporting/formatters.py +0 -0
  278. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/reporting/generator.py +0 -0
  279. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/reporting/metrics.py +0 -0
  280. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/scanner.py +0 -0
  281. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/security/__init__.py +0 -0
  282. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/security/scope_validator.py +0 -0
  283. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/security/validation.py +0 -0
  284. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/security.py +0 -0
  285. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/__init__.py +0 -0
  286. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/credentials.py +0 -0
  287. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/crypto.py +0 -0
  288. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/database.py +0 -0
  289. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/db.py +0 -0
  290. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/deliverable_evidence.py +0 -0
  291. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/deliverable_exporter.py +0 -0
  292. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/deliverable_templates.py +0 -0
  293. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/deliverables.py +0 -0
  294. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/engagements.py +0 -0
  295. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/evidence.py +0 -0
  296. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/execution_log.py +0 -0
  297. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/exploit_attempts.py +0 -0
  298. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/exploits.py +0 -0
  299. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/findings.py +0 -0
  300. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/hosts.py +0 -0
  301. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/migrate_to_engagements.py +0 -0
  302. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/migrations/_001_add_credential_enhancements.py +0 -0
  303. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/migrations/_002_add_status_tracking.py +0 -0
  304. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/migrations/_003_add_execution_log.py +0 -0
  305. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/migrations/_005_screenshots.py +0 -0
  306. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/migrations/_006_deliverables.py +0 -0
  307. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/migrations/_007_deliverable_templates.py +0 -0
  308. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/migrations/_008_add_nuclei_table.py +0 -0
  309. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/migrations/_009_add_cme_tables.py +0 -0
  310. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/migrations/_010_evidence_linking.py +0 -0
  311. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/migrations/_011_timeline_tracking.py +0 -0
  312. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/migrations/_012_team_collaboration.py +0 -0
  313. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/migrations/_013_add_host_tags.py +0 -0
  314. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/migrations/_014_exploit_attempts.py +0 -0
  315. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/migrations/_015_add_mac_os_fields.py +0 -0
  316. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/migrations/_016_add_domain_field.py +0 -0
  317. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/migrations/_017_msf_sessions.py +0 -0
  318. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/migrations/_018_add_osint_target.py +0 -0
  319. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/migrations/_019_add_engagement_type.py +0 -0
  320. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/migrations/_020_add_rbac.py +0 -0
  321. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/migrations/_021_wazuh_integration.py +0 -0
  322. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/migrations/_022_wazuh_indexer_columns.py +0 -0
  323. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/migrations/_023_fix_detection_results_fk.py +0 -0
  324. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/migrations/_024_wazuh_vulnerabilities.py +0 -0
  325. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/migrations/_025_multi_siem_support.py +0 -0
  326. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/migrations/_026_add_engagement_scope.py +0 -0
  327. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/migrations/__init__.py +0 -0
  328. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/migrations/migration_manager.py +0 -0
  329. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/msf_sessions.py +0 -0
  330. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/osint.py +0 -0
  331. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/recommendation_engine.py +0 -0
  332. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/screenshots.py +0 -0
  333. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/smb_shares.py +0 -0
  334. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/sqlmap_data.py +0 -0
  335. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/team_collaboration.py +0 -0
  336. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/timeline_tracker.py +0 -0
  337. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/wazuh_vulns.py +0 -0
  338. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/web_paths.py +0 -0
  339. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/testing/__init__.py +0 -0
  340. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/testing/credential_tester.py +0 -0
  341. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/__init__.py +0 -0
  342. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/ai_quotes.py +0 -0
  343. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/attack_surface.py +0 -0
  344. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/chain_rules_view.py +0 -0
  345. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/correlation_view.py +0 -0
  346. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/dashboard.py +0 -0
  347. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/deliverables_view.py +0 -0
  348. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/design_system.py +0 -0
  349. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/errors.py +0 -0
  350. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/evidence_linking_view.py +0 -0
  351. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/evidence_vault.py +0 -0
  352. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/exploit_suggestions_view.py +0 -0
  353. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/export_view.py +0 -0
  354. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/gap_analysis_view.py +0 -0
  355. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/help_system.py +0 -0
  356. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/intelligence_view.py +0 -0
  357. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/interactive.py +0 -0
  358. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/interactive_selector.py +0 -0
  359. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/log_formatter.py +0 -0
  360. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/menu_components.py +0 -0
  361. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/msf_auxiliary_menu.py +0 -0
  362. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/pending_chains_view.py +0 -0
  363. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/progress_indicators.py +0 -0
  364. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/recommendations_view.py +0 -0
  365. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/rule_builder.py +0 -0
  366. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/setup_wizard.py +0 -0
  367. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/shortcuts.py +0 -0
  368. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/splunk_gap_analysis_view.py +0 -0
  369. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/splunk_vulns_view.py +0 -0
  370. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/team_dashboard.py +0 -0
  371. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/template_selector.py +0 -0
  372. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/terminal.py +0 -0
  373. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/timeline_view.py +0 -0
  374. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/tool_setup.py +0 -0
  375. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/tutorial.py +0 -0
  376. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/tutorial_state.py +0 -0
  377. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/wazuh_vulns_view.py +0 -0
  378. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui.py +0 -0
  379. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/utils/__init__.py +0 -0
  380. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/utils/tool_checker.py +0 -0
  381. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/utils.py +0 -0
  382. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/wordlists.py +0 -0
  383. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez.egg-info/SOURCES.txt +0 -0
  384. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez.egg-info/dependency_links.txt +0 -0
  385. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez.egg-info/entry_points.txt +0 -0
  386. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez.egg-info/requires.txt +0 -0
  387. {souleyez-2.28.0 → souleyez-2.29.0}/souleyez.egg-info/top_level.txt +0 -0
  388. {souleyez-2.28.0 → souleyez-2.29.0}/tests/test_config_enhanced.py +0 -0
  389. {souleyez-2.28.0 → souleyez-2.29.0}/tests/test_crypto.py +0 -0
  390. {souleyez-2.28.0 → souleyez-2.29.0}/tests/test_database_100_final.py +0 -0
  391. {souleyez-2.28.0 → souleyez-2.29.0}/tests/test_engagements.py +0 -0
  392. {souleyez-2.28.0 → souleyez-2.29.0}/tests/test_engagements_simple.py +0 -0
  393. {souleyez-2.28.0 → souleyez-2.29.0}/tests/test_job_status_tracking.py +0 -0
  394. {souleyez-2.28.0 → souleyez-2.29.0}/tests/test_logging.py +0 -0
  395. {souleyez-2.28.0 → souleyez-2.29.0}/tests/test_network_utils.py +0 -0
  396. {souleyez-2.28.0 → souleyez-2.29.0}/tests/test_ollama_service.py +0 -0
  397. {souleyez-2.28.0 → souleyez-2.29.0}/tests/test_plugin_base.py +0 -0
  398. {souleyez-2.28.0 → souleyez-2.29.0}/tests/test_recommender.py +0 -0
  399. {souleyez-2.28.0 → souleyez-2.29.0}/tests/test_schema.py +0 -0
  400. {souleyez-2.28.0 → souleyez-2.29.0}/tests/test_scope_integration.py +0 -0
  401. {souleyez-2.28.0 → souleyez-2.29.0}/tests/test_scope_validator.py +0 -0
  402. {souleyez-2.28.0 → souleyez-2.29.0}/tests/test_security_hardening.py +0 -0
  403. {souleyez-2.28.0 → souleyez-2.29.0}/tests/test_security_validation.py +0 -0
  404. {souleyez-2.28.0 → souleyez-2.29.0}/tests/test_sqlmap_parser.py +0 -0
  405. {souleyez-2.28.0 → souleyez-2.29.0}/tests/test_version_utils.py +0 -0
@@ -27,7 +27,7 @@ Welcome to the SoulEyez beta! Thank you for helping us test and improve this pen
27
27
 
28
28
  > ⚠️ **Important**: Only use SoulEyez on systems you have explicit authorization to test.
29
29
 
30
- ## Version: 2.28.0
30
+ ## Version: 2.29.0
31
31
 
32
32
  ### What's Included
33
33
 
@@ -265,4 +265,4 @@ Happy hacking! 🛡️
265
265
 
266
266
  ---
267
267
 
268
- **Version**: 2.28.0 | **Release Date**: January 2026 | **Maintainer**: CyberSoul Security
268
+ **Version**: 2.29.0 | **Release Date**: January 2026 | **Maintainer**: CyberSoul Security
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: souleyez
3
- Version: 2.28.0
3
+ Version: 2.29.0
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>
@@ -78,7 +78,7 @@ Welcome to the SoulEyez beta! Thank you for helping us test and improve this pen
78
78
 
79
79
  > ⚠️ **Important**: Only use SoulEyez on systems you have explicit authorization to test.
80
80
 
81
- ## Version: 2.28.0
81
+ ## Version: 2.29.0
82
82
 
83
83
  ### What's Included
84
84
 
@@ -316,4 +316,4 @@ Happy hacking! 🛡️
316
316
 
317
317
  ---
318
318
 
319
- **Version**: 2.28.0 | **Release Date**: January 2026 | **Maintainer**: CyberSoul Security
319
+ **Version**: 2.29.0 | **Release Date**: January 2026 | **Maintainer**: CyberSoul Security
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "souleyez"
7
- version = "2.28.0"
7
+ version = "2.29.0"
8
8
  description = "AI-Powered Penetration Testing Platform with 40+ integrated tools"
9
9
  readme = "BETA_README.md"
10
10
  license = {text = "MIT"}
@@ -0,0 +1 @@
1
+ __version__ = '2.29.0'
@@ -1,6 +1,6 @@
1
1
  # SoulEyez Documentation
2
2
 
3
- **Version:** 2.28.0
3
+ **Version:** 2.29.0
4
4
  **Last Updated:** January 9, 2026
5
5
  **Organization:** CyberSoul Security
6
6
 
@@ -173,7 +173,7 @@ def _check_privileged_tools():
173
173
 
174
174
 
175
175
  @click.group()
176
- @click.version_option(version='2.28.0')
176
+ @click.version_option(version='2.29.0')
177
177
  def cli():
178
178
  """SoulEyez - AI-Powered Pentesting Platform by CyberSoul Security"""
179
179
  from souleyez.log_config import init_logging
@@ -6,6 +6,7 @@ CREATE TABLE IF NOT EXISTS engagements (
6
6
  owner_id INTEGER,
7
7
  estimated_hours FLOAT DEFAULT 0,
8
8
  actual_hours FLOAT DEFAULT 0,
9
+ scope_enforcement TEXT DEFAULT 'off',
9
10
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
10
11
  updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
11
12
  );
@@ -21,6 +22,7 @@ CREATE TABLE IF NOT EXISTS hosts (
21
22
  mac_address TEXT,
22
23
  status TEXT DEFAULT 'up',
23
24
  access_level TEXT DEFAULT 'none',
25
+ scope_status TEXT DEFAULT 'unknown',
24
26
  notes TEXT,
25
27
  tags TEXT,
26
28
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
@@ -540,3 +542,37 @@ CREATE INDEX IF NOT EXISTS idx_wazuh_config_engagement ON wazuh_config(engagemen
540
542
  CREATE INDEX IF NOT EXISTS idx_detection_results_job ON detection_results(job_id);
541
543
  CREATE INDEX IF NOT EXISTS idx_detection_results_engagement ON detection_results(engagement_id);
542
544
  CREATE INDEX IF NOT EXISTS idx_detection_results_status ON detection_results(detection_status);
545
+
546
+ -- Engagement Scope Validation (from migration 026)
547
+ CREATE TABLE IF NOT EXISTS engagement_scope (
548
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
549
+ engagement_id INTEGER NOT NULL,
550
+ scope_type TEXT NOT NULL,
551
+ value TEXT NOT NULL,
552
+ is_excluded BOOLEAN DEFAULT 0,
553
+ description TEXT,
554
+ added_by TEXT,
555
+ created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
556
+ FOREIGN KEY (engagement_id) REFERENCES engagements(id) ON DELETE CASCADE,
557
+ UNIQUE(engagement_id, scope_type, value)
558
+ );
559
+
560
+ CREATE TABLE IF NOT EXISTS scope_validation_log (
561
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
562
+ engagement_id INTEGER NOT NULL,
563
+ job_id INTEGER,
564
+ target TEXT NOT NULL,
565
+ validation_result TEXT NOT NULL,
566
+ action_taken TEXT NOT NULL,
567
+ matched_scope_id INTEGER,
568
+ user_id TEXT,
569
+ created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
570
+ FOREIGN KEY (engagement_id) REFERENCES engagements(id) ON DELETE CASCADE
571
+ );
572
+
573
+ CREATE INDEX IF NOT EXISTS idx_scope_engagement ON engagement_scope(engagement_id);
574
+ CREATE INDEX IF NOT EXISTS idx_scope_type ON engagement_scope(scope_type);
575
+ CREATE INDEX IF NOT EXISTS idx_scope_log_engagement ON scope_validation_log(engagement_id);
576
+ CREATE INDEX IF NOT EXISTS idx_scope_log_result ON scope_validation_log(validation_result);
577
+ CREATE INDEX IF NOT EXISTS idx_scope_log_timestamp ON scope_validation_log(created_at DESC);
578
+ CREATE INDEX IF NOT EXISTS idx_hosts_scope_status ON hosts(scope_status);
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: souleyez
3
- Version: 2.28.0
3
+ Version: 2.29.0
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>
@@ -78,7 +78,7 @@ Welcome to the SoulEyez beta! Thank you for helping us test and improve this pen
78
78
 
79
79
  > ⚠️ **Important**: Only use SoulEyez on systems you have explicit authorization to test.
80
80
 
81
- ## Version: 2.28.0
81
+ ## Version: 2.29.0
82
82
 
83
83
  ### What's Included
84
84
 
@@ -316,4 +316,4 @@ Happy hacking! 🛡️
316
316
 
317
317
  ---
318
318
 
319
- **Version**: 2.28.0 | **Release Date**: January 2026 | **Maintainer**: CyberSoul Security
319
+ **Version**: 2.29.0 | **Release Date**: January 2026 | **Maintainer**: CyberSoul Security
@@ -10,9 +10,18 @@ from pathlib import Path
10
10
 
11
11
  @pytest.fixture
12
12
  def temp_config(tmp_path, monkeypatch):
13
- """Use temporary config file."""
13
+ """Use temporary config file and database."""
14
14
  config_file = tmp_path / "config.json"
15
15
  monkeypatch.setattr("souleyez.config.CONFIG_PATH", config_file)
16
+
17
+ # Also set up temp database to avoid conflicts with production db
18
+ db_path = tmp_path / "test.db"
19
+ import souleyez.storage.database as db_module
20
+ db_module._db = None # Reset singleton
21
+
22
+ # Monkeypatch DB_PATH to use temp path
23
+ monkeypatch.setattr("souleyez.storage.database.DB_PATH", db_path)
24
+
16
25
  return config_file
17
26
 
18
27
 
@@ -10,10 +10,17 @@ from souleyez.engine.result_handler import parse_sqlmap_job
10
10
  def test_result_handler_uses_injectable_url():
11
11
  """
12
12
  REGRESSION TEST: Ensure result_handler reads 'injectable_url' not 'target_url'.
13
-
13
+
14
14
  This test prevents the bug where result_handler was reading the wrong key,
15
15
  causing auto-chaining to use just the IP instead of the full URL.
16
16
  """
17
+ # First create a test engagement (required for FK constraint)
18
+ from souleyez.storage.database import get_db
19
+ db = get_db()
20
+ db.execute(
21
+ "INSERT OR REPLACE INTO engagements (id, name, description) VALUES (1, 'test', 'Test engagement')"
22
+ )
23
+
17
24
  # Create a temporary log file
18
25
  log_content = """
19
26
  [INFO] testing URL 'http://10.0.0.82/mutillidae/?page=add-to-your-blog.php'
@@ -26,11 +33,11 @@ Parameter: User-Agent (User-Agent)
26
33
  [INFO] the back-end DBMS is MySQL
27
34
  back-end DBMS: MySQL >= 5.0.12
28
35
  """
29
-
36
+
30
37
  with tempfile.NamedTemporaryFile(mode='w', delete=False, suffix='.log') as f:
31
38
  f.write(log_content)
32
39
  log_path = f.name
33
-
40
+
34
41
  try:
35
42
  # Mock job
36
43
  job = {
@@ -39,7 +46,7 @@ back-end DBMS: MySQL >= 5.0.12
39
46
  'target': '10.0.0.82', # Just the IP - this is what gets passed
40
47
  'engagement_id': 1
41
48
  }
42
-
49
+
43
50
  # Parse the job
44
51
  result = parse_sqlmap_job(1, log_path, job)
45
52
 
@@ -9,14 +9,15 @@ import pytest
9
9
  def temp_db(tmp_path, monkeypatch):
10
10
  """Create temporary database for tests."""
11
11
  db_path = tmp_path / "test_storage.db"
12
- monkeypatch.setenv('SOULEYEZ_DB_PATH', str(db_path))
13
12
 
14
- # Reset database singleton
15
- from souleyez.storage.database import get_db
13
+ # Reset database singleton and create with explicit path
14
+ from souleyez.storage.database import Database
16
15
  import souleyez.storage.database as db_module
17
16
  db_module._db = None
18
17
 
19
- db = get_db()
18
+ # Create database with explicit path (bypasses DB_PATH constant)
19
+ db = Database(str(db_path))
20
+ db_module._db = db # Set as singleton so get_db() returns this instance
20
21
 
21
22
  # Create a test engagement to satisfy foreign key constraints
22
23
  db.execute(
@@ -1 +0,0 @@
1
- __version__ = '2.28.0'
File without changes
File without changes
File without changes
File without changes
File without changes