attacklm 0.8.3__tar.gz → 0.8.4__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 (211) hide show
  1. {attacklm-0.8.3 → attacklm-0.8.4}/CHANGELOG.md +9 -0
  2. {attacklm-0.8.3 → attacklm-0.8.4}/PKG-INFO +53 -5
  3. {attacklm-0.8.3 → attacklm-0.8.4}/README.md +52 -4
  4. attacklm-0.8.4/src/attacklm/__version__.py +1 -0
  5. attacklm-0.8.3/src/attacklm/__version__.py +0 -1
  6. {attacklm-0.8.3 → attacklm-0.8.4}/.github/workflows/release.yml +0 -0
  7. {attacklm-0.8.3 → attacklm-0.8.4}/.gitignore +0 -0
  8. {attacklm-0.8.3 → attacklm-0.8.4}/ATTRIBUTION.md +0 -0
  9. {attacklm-0.8.3 → attacklm-0.8.4}/CONTRIBUTING.md +0 -0
  10. {attacklm-0.8.3 → attacklm-0.8.4}/EVALUATION.md +0 -0
  11. {attacklm-0.8.3 → attacklm-0.8.4}/LICENSE +0 -0
  12. {attacklm-0.8.3 → attacklm-0.8.4}/MANIFEST.in +0 -0
  13. {attacklm-0.8.3 → attacklm-0.8.4}/Makefile +0 -0
  14. {attacklm-0.8.3 → attacklm-0.8.4}/NOTICE +0 -0
  15. {attacklm-0.8.3 → attacklm-0.8.4}/attacklm-gui/README.md +0 -0
  16. {attacklm-0.8.3 → attacklm-0.8.4}/attacklm-gui/pyproject.toml +0 -0
  17. {attacklm-0.8.3 → attacklm-0.8.4}/attacklm-gui/src/attacklm_gui/__init__.py +0 -0
  18. {attacklm-0.8.3 → attacklm-0.8.4}/attacklm-gui/src/attacklm_gui/app.py +0 -0
  19. {attacklm-0.8.3 → attacklm-0.8.4}/attacklm-gui/src/attacklm_gui/cli.py +0 -0
  20. {attacklm-0.8.3 → attacklm-0.8.4}/attacklm-gui/src/attacklm_gui/presets.py +0 -0
  21. {attacklm-0.8.3 → attacklm-0.8.4}/attacklm-gui/src/attacklm_gui/runner.py +0 -0
  22. {attacklm-0.8.3 → attacklm-0.8.4}/attacklm-gui/src/attacklm_gui/screens/__init__.py +0 -0
  23. {attacklm-0.8.3 → attacklm-0.8.4}/attacklm-gui/src/attacklm_gui/screens/command_forms.py +0 -0
  24. {attacklm-0.8.3 → attacklm-0.8.4}/attacklm-gui/src/attacklm_gui/screens/main_menu.py +0 -0
  25. {attacklm-0.8.3 → attacklm-0.8.4}/attacklm-gui/src/attacklm_gui/screens/train_form.py +0 -0
  26. {attacklm-0.8.3 → attacklm-0.8.4}/attacklm-gui/src/attacklm_gui/screens/train_live.py +0 -0
  27. {attacklm-0.8.3 → attacklm-0.8.4}/attacklm-gui/src/attacklm_gui/widgets/__init__.py +0 -0
  28. {attacklm-0.8.3 → attacklm-0.8.4}/attacklm-gui/tests/test_gui.py +0 -0
  29. {attacklm-0.8.3 → attacklm-0.8.4}/data/ATTRIBUTION.md +0 -0
  30. {attacklm-0.8.3 → attacklm-0.8.4}/data/LEGAL.md +0 -0
  31. {attacklm-0.8.3 → attacklm-0.8.4}/data/REMOVAL.md +0 -0
  32. {attacklm-0.8.3 → attacklm-0.8.4}/data/bench/questions.jsonl +0 -0
  33. {attacklm-0.8.3 → attacklm-0.8.4}/data/bench/speed_context.txt +0 -0
  34. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/acquisition_report.json +0 -0
  35. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/manifest.json +0 -0
  36. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/README.md +0 -0
  37. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/_index.json +0 -0
  38. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/atomic-red-team/LICENSE.md +0 -0
  39. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/atomic-red-team/SOURCE.md +0 -0
  40. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/atomic-red-team/base/collection/data.jsonl +0 -0
  41. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/atomic-red-team/base/discovery/data.jsonl +0 -0
  42. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/atomic-red-team/base/execution/data.jsonl +0 -0
  43. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/atomic-red-team/base/exfiltration/data.jsonl +0 -0
  44. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/atomic-red-team/base/persistence/data.jsonl +0 -0
  45. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/attacklm-synthetic/LICENSE.md +0 -0
  46. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/attacklm-synthetic/SOURCE.md +0 -0
  47. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/attacklm-synthetic/orchestrator/data.jsonl +0 -0
  48. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/azure-pyrit/LICENSE.md +0 -0
  49. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/azure-pyrit/SOURCE.md +0 -0
  50. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/cyberark-fuzzyai/LICENSE.md +0 -0
  51. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/cyberark-fuzzyai/SOURCE.md +0 -0
  52. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/elastic-rules/LICENSE.md +0 -0
  53. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/elastic-rules/SOURCE.md +0 -0
  54. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/elastic-rules/defensive/detection_engineering/data.jsonl +0 -0
  55. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/llm-generated/LICENSE.md +0 -0
  56. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/llm-generated/SOURCE.md +0 -0
  57. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/llm-generated/cloud/attacks/data_llm.jsonl +0 -0
  58. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/llm-generated/ics/attacks/data_llm.jsonl +0 -0
  59. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/llm-generated/social_engineering/phishing/data_llm.jsonl +0 -0
  60. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/llm-generated/wireless/attacks/data_llm.jsonl +0 -0
  61. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/metasploit-framework/LICENSE.md +0 -0
  62. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/metasploit-framework/SOURCE.md +0 -0
  63. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/metasploit-framework/base/collection/data.jsonl +0 -0
  64. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/metasploit-framework/base/credential_access/data.jsonl +0 -0
  65. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/metasploit-framework/base/defense_evasion/data.jsonl +0 -0
  66. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/metasploit-framework/base/discovery/data.jsonl +0 -0
  67. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/metasploit-framework/base/execution/data.jsonl +0 -0
  68. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/metasploit-framework/base/lateral_movement/data.jsonl +0 -0
  69. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/metasploit-framework/base/persistence/data.jsonl +0 -0
  70. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/metasploit-framework/base/privilege_escalation/data.jsonl +0 -0
  71. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/metasploit-framework/tools/metasploit/data.jsonl +0 -0
  72. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/mitre-atlas-arsenal/LICENSE.md +0 -0
  73. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/mitre-atlas-arsenal/SOURCE.md +0 -0
  74. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/mitre-atlas-arsenal/base/discovery/data.jsonl +0 -0
  75. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/mitre-stockpile/LICENSE.md +0 -0
  76. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/mitre-stockpile/SOURCE.md +0 -0
  77. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/mitre-stockpile/base/collection/data.jsonl +0 -0
  78. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/mitre-stockpile/base/discovery/data.jsonl +0 -0
  79. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/mitre-stockpile/base/execution/data.jsonl +0 -0
  80. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/mitre-stockpile/base/exfiltration/data.jsonl +0 -0
  81. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/mitre-stockpile/base/persistence/data.jsonl +0 -0
  82. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/mordor/LICENSE.md +0 -0
  83. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/mordor/SOURCE.md +0 -0
  84. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/mordor/defensive/threat_hunting/data.jsonl +0 -0
  85. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/nist-ir/LICENSE.md +0 -0
  86. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/nist-ir/SOURCE.md +0 -0
  87. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/nist-ir/defensive/incident_response/data.jsonl +0 -0
  88. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/nvidia-garak/LICENSE.md +0 -0
  89. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/nvidia-garak/SOURCE.md +0 -0
  90. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/nvidia-garak/ai/jailbreaking/data.jsonl +0 -0
  91. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/promptfoo/LICENSE.md +0 -0
  92. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/promptfoo/SOURCE.md +0 -0
  93. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/promptfoo/ai/prompt-injection/data.jsonl +0 -0
  94. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/promptmap/LICENSE.md +0 -0
  95. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/promptmap/SOURCE.md +0 -0
  96. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/promptmap/ai/prompt-injection/data.jsonl +0 -0
  97. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/replay-general/LICENSE.md +0 -0
  98. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/replay-general/SOURCE.md +0 -0
  99. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/replay-general/base/replay/data_code.jsonl +0 -0
  100. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/replay-general/base/replay/data_conversation.jsonl +0 -0
  101. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/replay-general/base/replay/data_factual.jsonl +0 -0
  102. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/replay-general/base/replay/data_reasoning.jsonl +0 -0
  103. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/sigma-hq/LICENSE.md +0 -0
  104. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/sigma-hq/SOURCE.md +0 -0
  105. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/sigma-hq/defensive/detection_engineering/data.jsonl +0 -0
  106. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/splunk-content/LICENSE.md +0 -0
  107. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/splunk-content/SOURCE.md +0 -0
  108. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/splunk-content/defensive/detection_engineering/data.jsonl +0 -0
  109. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/threathunter-playbook/LICENSE.md +0 -0
  110. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/threathunter-playbook/SOURCE.md +0 -0
  111. {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/threathunter-playbook/defensive/threat_hunting/data.jsonl +0 -0
  112. {attacklm-0.8.3 → attacklm-0.8.4}/data/golden/prompts.jsonl +0 -0
  113. {attacklm-0.8.3 → attacklm-0.8.4}/data/reference/prompts.jsonl +0 -0
  114. {attacklm-0.8.3 → attacklm-0.8.4}/data/steering/prompts/opsec_aware.txt +0 -0
  115. {attacklm-0.8.3 → attacklm-0.8.4}/data/steering/prompts/opsec_unaware.txt +0 -0
  116. {attacklm-0.8.3 → attacklm-0.8.4}/data/steering/prompts/succinct.txt +0 -0
  117. {attacklm-0.8.3 → attacklm-0.8.4}/data/steering/prompts/verbose.txt +0 -0
  118. {attacklm-0.8.3 → attacklm-0.8.4}/experiments/README.md +0 -0
  119. {attacklm-0.8.3 → attacklm-0.8.4}/experiments/synthetic_dataset_mutator_evol_instruct.py +0 -0
  120. {attacklm-0.8.3 → attacklm-0.8.4}/hf/.gitattributes +0 -0
  121. {attacklm-0.8.3 → attacklm-0.8.4}/hf/README.md +0 -0
  122. {attacklm-0.8.3 → attacklm-0.8.4}/hf/data/manifest.json +0 -0
  123. {attacklm-0.8.3 → attacklm-0.8.4}/hf/dataset_infos.json +0 -0
  124. {attacklm-0.8.3 → attacklm-0.8.4}/hf/scripts/build_hf_dataset.py +0 -0
  125. {attacklm-0.8.3 → attacklm-0.8.4}/hf/scripts/push_to_hf.py +0 -0
  126. {attacklm-0.8.3 → attacklm-0.8.4}/hpo_runs/.gitkeep +0 -0
  127. {attacklm-0.8.3 → attacklm-0.8.4}/hpo_runs/hpo_state.json +0 -0
  128. {attacklm-0.8.3 → attacklm-0.8.4}/hpo_runs/hpo_trial_dataset.jsonl +0 -0
  129. {attacklm-0.8.3 → attacklm-0.8.4}/logs/.gitkeep +0 -0
  130. {attacklm-0.8.3 → attacklm-0.8.4}/pipeline.example.yaml +0 -0
  131. {attacklm-0.8.3 → attacklm-0.8.4}/presets/blue-team.json +0 -0
  132. {attacklm-0.8.3 → attacklm-0.8.4}/presets/purple-team.json +0 -0
  133. {attacklm-0.8.3 → attacklm-0.8.4}/presets/red-team.json +0 -0
  134. {attacklm-0.8.3 → attacklm-0.8.4}/pyproject.toml +0 -0
  135. {attacklm-0.8.3 → attacklm-0.8.4}/requirements.txt +0 -0
  136. {attacklm-0.8.3 → attacklm-0.8.4}/scripts/_eval_loader.py +0 -0
  137. {attacklm-0.8.3 → attacklm-0.8.4}/scripts/acquire_cloud_attack_dataset.py +0 -0
  138. {attacklm-0.8.3 → attacklm-0.8.4}/scripts/acquire_ics_dataset.py +0 -0
  139. {attacklm-0.8.3 → attacklm-0.8.4}/scripts/acquire_phishing_dataset.py +0 -0
  140. {attacklm-0.8.3 → attacklm-0.8.4}/scripts/acquire_red_team_tactics.py +0 -0
  141. {attacklm-0.8.3 → attacklm-0.8.4}/scripts/acquire_replay_general.py +0 -0
  142. {attacklm-0.8.3 → attacklm-0.8.4}/scripts/acquire_supply_chain_dataset.py +0 -0
  143. {attacklm-0.8.3 → attacklm-0.8.4}/scripts/acquire_web_attack_dataset.py +0 -0
  144. {attacklm-0.8.3 → attacklm-0.8.4}/scripts/acquire_wireless_dataset.py +0 -0
  145. {attacklm-0.8.3 → attacklm-0.8.4}/scripts/audit_dataset.py +0 -0
  146. {attacklm-0.8.3 → attacklm-0.8.4}/scripts/balance_buckets.py +0 -0
  147. {attacklm-0.8.3 → attacklm-0.8.4}/scripts/bucket_loader.py +0 -0
  148. {attacklm-0.8.3 → attacklm-0.8.4}/scripts/build.py +0 -0
  149. {attacklm-0.8.3 → attacklm-0.8.4}/scripts/clone_repos.sh +0 -0
  150. {attacklm-0.8.3 → attacklm-0.8.4}/scripts/collect_reference.py +0 -0
  151. {attacklm-0.8.3 → attacklm-0.8.4}/scripts/compare_scores.py +0 -0
  152. {attacklm-0.8.3 → attacklm-0.8.4}/scripts/convert_to_gguf.py +0 -0
  153. {attacklm-0.8.3 → attacklm-0.8.4}/scripts/demo.py +0 -0
  154. {attacklm-0.8.3 → attacklm-0.8.4}/scripts/device_utils.py +0 -0
  155. {attacklm-0.8.3 → attacklm-0.8.4}/scripts/domain_bench.py +0 -0
  156. {attacklm-0.8.3 → attacklm-0.8.4}/scripts/eval_retention.py +0 -0
  157. {attacklm-0.8.3 → attacklm-0.8.4}/scripts/evolve_pairs.py +0 -0
  158. {attacklm-0.8.3 → attacklm-0.8.4}/scripts/evolved_mixer.py +0 -0
  159. {attacklm-0.8.3 → attacklm-0.8.4}/scripts/extract_ai_tools_to_jsonl.py +0 -0
  160. {attacklm-0.8.3 → attacklm-0.8.4}/scripts/extract_atomic_red_team_to_jsonl.py +0 -0
  161. {attacklm-0.8.3 → attacklm-0.8.4}/scripts/extract_by_tactic.py +0 -0
  162. {attacklm-0.8.3 → attacklm-0.8.4}/scripts/extract_caldera_plugins_to_jsonl.py +0 -0
  163. {attacklm-0.8.3 → attacklm-0.8.4}/scripts/extract_elastic_rules.py +0 -0
  164. {attacklm-0.8.3 → attacklm-0.8.4}/scripts/extract_infection_monkey_to_jsonl.py +0 -0
  165. {attacklm-0.8.3 → attacklm-0.8.4}/scripts/extract_mordor.py +0 -0
  166. {attacklm-0.8.3 → attacklm-0.8.4}/scripts/extract_nist_ir.py +0 -0
  167. {attacklm-0.8.3 → attacklm-0.8.4}/scripts/extract_rta_to_jsonl.py +0 -0
  168. {attacklm-0.8.3 → attacklm-0.8.4}/scripts/extract_sigma_defensive.py +0 -0
  169. {attacklm-0.8.3 → attacklm-0.8.4}/scripts/extract_splunk_content.py +0 -0
  170. {attacklm-0.8.3 → attacklm-0.8.4}/scripts/extract_threathunter_playbook.py +0 -0
  171. {attacklm-0.8.3 → attacklm-0.8.4}/scripts/filter_evolved.py +0 -0
  172. {attacklm-0.8.3 → attacklm-0.8.4}/scripts/generate_synthetic_scarce.py +0 -0
  173. {attacklm-0.8.3 → attacklm-0.8.4}/scripts/golden_vectors.py +0 -0
  174. {attacklm-0.8.3 → attacklm-0.8.4}/scripts/hpo_runner.py +0 -0
  175. {attacklm-0.8.3 → attacklm-0.8.4}/scripts/import_gguf.sh +0 -0
  176. {attacklm-0.8.3 → attacklm-0.8.4}/scripts/import_to_lmstudio.sh +0 -0
  177. {attacklm-0.8.3 → attacklm-0.8.4}/scripts/infer.py +0 -0
  178. {attacklm-0.8.3 → attacklm-0.8.4}/scripts/init_pipeline.py +0 -0
  179. {attacklm-0.8.3 → attacklm-0.8.4}/scripts/merge_adapter.py +0 -0
  180. {attacklm-0.8.3 → attacklm-0.8.4}/scripts/mitre_tactic_lookup.py +0 -0
  181. {attacklm-0.8.3 → attacklm-0.8.4}/scripts/package_dataset.py +0 -0
  182. {attacklm-0.8.3 → attacklm-0.8.4}/scripts/parse_metasploit_to_jsonl.py +0 -0
  183. {attacklm-0.8.3 → attacklm-0.8.4}/scripts/pipeline.py +0 -0
  184. {attacklm-0.8.3 → attacklm-0.8.4}/scripts/rebuild_manifest.py +0 -0
  185. {attacklm-0.8.3 → attacklm-0.8.4}/scripts/register_ollama.py +0 -0
  186. {attacklm-0.8.3 → attacklm-0.8.4}/scripts/reorganize_buckets.py +0 -0
  187. {attacklm-0.8.3 → attacklm-0.8.4}/scripts/replay_mixer.py +0 -0
  188. {attacklm-0.8.3 → attacklm-0.8.4}/scripts/score_candidates.py +0 -0
  189. {attacklm-0.8.3 → attacklm-0.8.4}/scripts/setup_buckets.py +0 -0
  190. {attacklm-0.8.3 → attacklm-0.8.4}/scripts/speed_bench.py +0 -0
  191. {attacklm-0.8.3 → attacklm-0.8.4}/scripts/steering.py +0 -0
  192. {attacklm-0.8.3 → attacklm-0.8.4}/scripts/train_all.py +0 -0
  193. {attacklm-0.8.3 → attacklm-0.8.4}/scripts/train_template.py +0 -0
  194. {attacklm-0.8.3 → attacklm-0.8.4}/src/attacklm/__init__.py +0 -0
  195. {attacklm-0.8.3 → attacklm-0.8.4}/src/attacklm/_project_root.py +0 -0
  196. {attacklm-0.8.3 → attacklm-0.8.4}/src/attacklm/cli.py +0 -0
  197. {attacklm-0.8.3 → attacklm-0.8.4}/tests/test_balance_buckets.py +0 -0
  198. {attacklm-0.8.3 → attacklm-0.8.4}/tests/test_collect_reference.py +0 -0
  199. {attacklm-0.8.3 → attacklm-0.8.4}/tests/test_compare_scores.py +0 -0
  200. {attacklm-0.8.3 → attacklm-0.8.4}/tests/test_domain_bench.py +0 -0
  201. {attacklm-0.8.3 → attacklm-0.8.4}/tests/test_eval_loader.py +0 -0
  202. {attacklm-0.8.3 → attacklm-0.8.4}/tests/test_eval_retention.py +0 -0
  203. {attacklm-0.8.3 → attacklm-0.8.4}/tests/test_evolve_pairs.py +0 -0
  204. {attacklm-0.8.3 → attacklm-0.8.4}/tests/test_golden_vectors.py +0 -0
  205. {attacklm-0.8.3 → attacklm-0.8.4}/tests/test_init_pipeline.py +0 -0
  206. {attacklm-0.8.3 → attacklm-0.8.4}/tests/test_replay_mixer.py +0 -0
  207. {attacklm-0.8.3 → attacklm-0.8.4}/tests/test_score_candidates.py +0 -0
  208. {attacklm-0.8.3 → attacklm-0.8.4}/tests/test_speed_bench.py +0 -0
  209. {attacklm-0.8.3 → attacklm-0.8.4}/tests/test_steering.py +0 -0
  210. {attacklm-0.8.3 → attacklm-0.8.4}/tests/test_thinking_models.py +0 -0
  211. {attacklm-0.8.3 → attacklm-0.8.4}/uv.lock +0 -0
@@ -1,5 +1,14 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.8.4] — 2026-07-01 — Documentation overhaul
4
+
5
+ ### Changed
6
+ - **Tagline updated**: Now lists all 5 training methods (QLoRA, GaLore, Q-GaLore, Spectrum, PiSSA) instead of just QLoRA
7
+ - **GUI section expanded**: Added dedicated Terminal GUI section with live monitor screenshot, preset list, and screen-by-screen breakdown
8
+ - **AttackLM-Models README synced**: Updated pair count (16,027 → 24,652), added missing defensive sources, updated all hyphenated commands to unified CLI format
9
+
10
+ ---
11
+
3
12
  ## [0.8.3] — 2026-07-01 — Training pair evolution
4
13
 
5
14
  ### Added
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: attacklm
3
- Version: 0.8.3
3
+ Version: 0.8.4
4
4
  Summary: QLoRA-fine-tuned Qwen2.5-Coder for offensive/defensive security and AI red-teaming
5
5
  Project-URL: Homepage, https://github.com/Veedubin/AttackLM
6
6
  Project-URL: Repository, https://github.com/Veedubin/AttackLM
@@ -203,7 +203,7 @@ Description-Content-Type: text/markdown
203
203
  [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
204
204
  [![Build Status](https://img.shields.io/badge/build-passing-brightgreen.svg)](#)
205
205
 
206
- **A high-performance QLoRA fine-tuning pipeline for creating MITRE ATT&CK-grounded security AI assistants.**
206
+ **A high-performance fine-tuning pipeline (QLoRA, GaLore, Q-GaLore, Spectrum, PiSSA) for creating MITRE ATT&CK-grounded security AI assistants.**
207
207
 
208
208
  ---
209
209
 
@@ -298,7 +298,13 @@ By default, AttackLM leverages PyTorch's built-in `torch.backends.cuda.enable_me
298
298
  - **Zero-Config Setup**: One-shot `init` command that handles dataset retrieval, extraction, and bucket organization.
299
299
  - **Anti-Bias Balancing**: Integrated balancing engine to ensure the model learns diverse tactics rather than just the most voluminous sources.
300
300
  - **Provenance Tracking**: Strict per-source attribution and license tracking for every record in the dataset.
301
- - **Terminal GUI**: A professional Textual-based TUI for managing training runs without memorizing 40+ CLI flags.
301
+ - **Terminal GUI**: A professional Textual-based TUI that eliminates the need to memorize 40+ CLI flags. Features include:
302
+ - **Tabbed Training Form** — 40+ parameters organized across Basic, LoRA, GaLore, Advanced, and Hardware tabs
303
+ - **Live Training Monitor** — Real-time loss sparkline, VRAM gauge, token throughput, and scrolling log output
304
+ - **Built-in Presets** — One-click configurations for 3B/7B models (Q-GaLore Spectrum, QLoRA, etc.)
305
+ - **One-Click Commands** — Init, Balance, Infer, Build, and Eval all accessible from the main menu
306
+ - **Pause/Resume Controls** — SIGSTOP/SIGCONT the training process without losing progress
307
+ - **Zero Dependencies** — No X11, no GPU, no browser required. Works over SSH, WSL, and headless servers.
302
308
  - **Deployment Ready**: Built-in merge and conversion pipeline to export adapters to GGUF format for LM Studio or Ollama.
303
309
  - **Rock-Solid Stability**: 26/26 core tests passing.
304
310
 
@@ -349,9 +355,51 @@ Perform a smoke-test of the trained model against representative security prompt
349
355
  attacklm infer -- --adapter models/attacklm-single_TIMESTAMP
350
356
  ```
351
357
 
352
- ### Specialized Tools
358
+ ### Terminal GUI
359
+
360
+ `attacklm gui`
361
+
362
+ Launch the Textual-based Terminal GUI for an interactive training experience. No memorizing 40+ CLI flags.
363
+
364
+ ```bash
365
+ attacklm gui
366
+ ```
367
+
368
+ The GUI provides:
369
+
370
+ | Screen | What it does |
371
+ |--------|-------------|
372
+ | **Train** | Tabbed form (Basic, LoRA, GaLore, Advanced, Hardware) with 5 built-in presets |
373
+ | **Init** | One-click dataset initialization (download, extract, organize) |
374
+ | **Balance** | Build balanced training subsets with configurable caps |
375
+ | **Inference** | Smoke-test trained models against security prompts |
376
+ | **Build** | Merge adapter → GGUF conversion → install to LM Studio/Ollama |
377
+ | **Eval** | Retention evaluation, reference collection, scoring, comparison |
378
+
379
+ **Live Training Monitor** — Once training starts, you get a real-time dashboard:
380
+
381
+ ```
382
+ ┌─────────────────────────────────────────────────────┐
383
+ │ Training: attacklm-3b-qgalore-spectrum │
384
+ │ Epoch 12/30 | Step 1896 | Elapsed: 1h 23m │
385
+ ├──────────────────────┬──────────────────────────────┤
386
+ │ Loss: 1.1143 ▂▃▅▆▇ │ VRAM: 5.9/15.6 GB (62%) │
387
+ │ Eval Loss: 1.176 │ alloc: 5.9 cache: 4.8 │
388
+ │ Trend: ↓ -0.0116 │ ████████░░░░ │
389
+ ├──────────────────────┴──────────────────────────────┤
390
+ │ [P]ause [S]top at checkpoint [Q]uit │
391
+ └─────────────────────────────────────────────────────┘
392
+ ```
393
+
394
+ **Built-in Presets:**
395
+ - `3B Q-GaLore Spectrum` — Full-parameter training on 16GB GPU
396
+ - `3B Q-GaLore Rank 128` — Higher quality variant
397
+ - `3B LoRA Default` — Standard QLoRA
398
+ - `7B Q-GaLore` — For 24GB GPUs
399
+ - `7B QLoRA Default` — Standard QLoRA for 7B
400
+
401
+ ### Other Tools
353
402
  - `attacklm eval`: Run the retention evaluation suite and score candidate models.
354
- - `attacklm gui`: Launch the Terminal GUI for an interactive training experience.
355
403
  - `attacklm demo`: Run the multi-agent orchestrator demo.
356
404
 
357
405
  ---
@@ -5,7 +5,7 @@
5
5
  [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
6
6
  [![Build Status](https://img.shields.io/badge/build-passing-brightgreen.svg)](#)
7
7
 
8
- **A high-performance QLoRA fine-tuning pipeline for creating MITRE ATT&CK-grounded security AI assistants.**
8
+ **A high-performance fine-tuning pipeline (QLoRA, GaLore, Q-GaLore, Spectrum, PiSSA) for creating MITRE ATT&CK-grounded security AI assistants.**
9
9
 
10
10
  ---
11
11
 
@@ -100,7 +100,13 @@ By default, AttackLM leverages PyTorch's built-in `torch.backends.cuda.enable_me
100
100
  - **Zero-Config Setup**: One-shot `init` command that handles dataset retrieval, extraction, and bucket organization.
101
101
  - **Anti-Bias Balancing**: Integrated balancing engine to ensure the model learns diverse tactics rather than just the most voluminous sources.
102
102
  - **Provenance Tracking**: Strict per-source attribution and license tracking for every record in the dataset.
103
- - **Terminal GUI**: A professional Textual-based TUI for managing training runs without memorizing 40+ CLI flags.
103
+ - **Terminal GUI**: A professional Textual-based TUI that eliminates the need to memorize 40+ CLI flags. Features include:
104
+ - **Tabbed Training Form** — 40+ parameters organized across Basic, LoRA, GaLore, Advanced, and Hardware tabs
105
+ - **Live Training Monitor** — Real-time loss sparkline, VRAM gauge, token throughput, and scrolling log output
106
+ - **Built-in Presets** — One-click configurations for 3B/7B models (Q-GaLore Spectrum, QLoRA, etc.)
107
+ - **One-Click Commands** — Init, Balance, Infer, Build, and Eval all accessible from the main menu
108
+ - **Pause/Resume Controls** — SIGSTOP/SIGCONT the training process without losing progress
109
+ - **Zero Dependencies** — No X11, no GPU, no browser required. Works over SSH, WSL, and headless servers.
104
110
  - **Deployment Ready**: Built-in merge and conversion pipeline to export adapters to GGUF format for LM Studio or Ollama.
105
111
  - **Rock-Solid Stability**: 26/26 core tests passing.
106
112
 
@@ -151,9 +157,51 @@ Perform a smoke-test of the trained model against representative security prompt
151
157
  attacklm infer -- --adapter models/attacklm-single_TIMESTAMP
152
158
  ```
153
159
 
154
- ### Specialized Tools
160
+ ### Terminal GUI
161
+
162
+ `attacklm gui`
163
+
164
+ Launch the Textual-based Terminal GUI for an interactive training experience. No memorizing 40+ CLI flags.
165
+
166
+ ```bash
167
+ attacklm gui
168
+ ```
169
+
170
+ The GUI provides:
171
+
172
+ | Screen | What it does |
173
+ |--------|-------------|
174
+ | **Train** | Tabbed form (Basic, LoRA, GaLore, Advanced, Hardware) with 5 built-in presets |
175
+ | **Init** | One-click dataset initialization (download, extract, organize) |
176
+ | **Balance** | Build balanced training subsets with configurable caps |
177
+ | **Inference** | Smoke-test trained models against security prompts |
178
+ | **Build** | Merge adapter → GGUF conversion → install to LM Studio/Ollama |
179
+ | **Eval** | Retention evaluation, reference collection, scoring, comparison |
180
+
181
+ **Live Training Monitor** — Once training starts, you get a real-time dashboard:
182
+
183
+ ```
184
+ ┌─────────────────────────────────────────────────────┐
185
+ │ Training: attacklm-3b-qgalore-spectrum │
186
+ │ Epoch 12/30 | Step 1896 | Elapsed: 1h 23m │
187
+ ├──────────────────────┬──────────────────────────────┤
188
+ │ Loss: 1.1143 ▂▃▅▆▇ │ VRAM: 5.9/15.6 GB (62%) │
189
+ │ Eval Loss: 1.176 │ alloc: 5.9 cache: 4.8 │
190
+ │ Trend: ↓ -0.0116 │ ████████░░░░ │
191
+ ├──────────────────────┴──────────────────────────────┤
192
+ │ [P]ause [S]top at checkpoint [Q]uit │
193
+ └─────────────────────────────────────────────────────┘
194
+ ```
195
+
196
+ **Built-in Presets:**
197
+ - `3B Q-GaLore Spectrum` — Full-parameter training on 16GB GPU
198
+ - `3B Q-GaLore Rank 128` — Higher quality variant
199
+ - `3B LoRA Default` — Standard QLoRA
200
+ - `7B Q-GaLore` — For 24GB GPUs
201
+ - `7B QLoRA Default` — Standard QLoRA for 7B
202
+
203
+ ### Other Tools
155
204
  - `attacklm eval`: Run the retention evaluation suite and score candidate models.
156
- - `attacklm gui`: Launch the Terminal GUI for an interactive training experience.
157
205
  - `attacklm demo`: Run the multi-agent orchestrator demo.
158
206
 
159
207
  ---
@@ -0,0 +1 @@
1
+ __version__ = "0.8.4"
@@ -1 +0,0 @@
1
- __version__ = "0.8.3"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes