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.
- {attacklm-0.8.3 → attacklm-0.8.4}/CHANGELOG.md +9 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/PKG-INFO +53 -5
- {attacklm-0.8.3 → attacklm-0.8.4}/README.md +52 -4
- attacklm-0.8.4/src/attacklm/__version__.py +1 -0
- attacklm-0.8.3/src/attacklm/__version__.py +0 -1
- {attacklm-0.8.3 → attacklm-0.8.4}/.github/workflows/release.yml +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/.gitignore +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/ATTRIBUTION.md +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/CONTRIBUTING.md +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/EVALUATION.md +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/LICENSE +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/MANIFEST.in +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/Makefile +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/NOTICE +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/attacklm-gui/README.md +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/attacklm-gui/pyproject.toml +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/attacklm-gui/src/attacklm_gui/__init__.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/attacklm-gui/src/attacklm_gui/app.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/attacklm-gui/src/attacklm_gui/cli.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/attacklm-gui/src/attacklm_gui/presets.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/attacklm-gui/src/attacklm_gui/runner.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/attacklm-gui/src/attacklm_gui/screens/__init__.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/attacklm-gui/src/attacklm_gui/screens/command_forms.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/attacklm-gui/src/attacklm_gui/screens/main_menu.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/attacklm-gui/src/attacklm_gui/screens/train_form.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/attacklm-gui/src/attacklm_gui/screens/train_live.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/attacklm-gui/src/attacklm_gui/widgets/__init__.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/attacklm-gui/tests/test_gui.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/ATTRIBUTION.md +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/LEGAL.md +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/REMOVAL.md +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/bench/questions.jsonl +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/bench/speed_context.txt +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/acquisition_report.json +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/manifest.json +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/README.md +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/_index.json +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/atomic-red-team/LICENSE.md +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/atomic-red-team/SOURCE.md +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/atomic-red-team/base/collection/data.jsonl +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/atomic-red-team/base/discovery/data.jsonl +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/atomic-red-team/base/execution/data.jsonl +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/atomic-red-team/base/exfiltration/data.jsonl +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/atomic-red-team/base/persistence/data.jsonl +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/attacklm-synthetic/LICENSE.md +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/attacklm-synthetic/SOURCE.md +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/attacklm-synthetic/orchestrator/data.jsonl +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/azure-pyrit/LICENSE.md +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/azure-pyrit/SOURCE.md +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/cyberark-fuzzyai/LICENSE.md +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/cyberark-fuzzyai/SOURCE.md +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/elastic-rules/LICENSE.md +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/elastic-rules/SOURCE.md +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/elastic-rules/defensive/detection_engineering/data.jsonl +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/llm-generated/LICENSE.md +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/llm-generated/SOURCE.md +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/llm-generated/cloud/attacks/data_llm.jsonl +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/llm-generated/ics/attacks/data_llm.jsonl +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/llm-generated/social_engineering/phishing/data_llm.jsonl +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/llm-generated/wireless/attacks/data_llm.jsonl +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/metasploit-framework/LICENSE.md +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/metasploit-framework/SOURCE.md +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/metasploit-framework/base/collection/data.jsonl +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/metasploit-framework/base/credential_access/data.jsonl +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/metasploit-framework/base/defense_evasion/data.jsonl +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/metasploit-framework/base/discovery/data.jsonl +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/metasploit-framework/base/execution/data.jsonl +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/metasploit-framework/base/lateral_movement/data.jsonl +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/metasploit-framework/base/persistence/data.jsonl +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/metasploit-framework/base/privilege_escalation/data.jsonl +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/metasploit-framework/tools/metasploit/data.jsonl +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/mitre-atlas-arsenal/LICENSE.md +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/mitre-atlas-arsenal/SOURCE.md +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/mitre-atlas-arsenal/base/discovery/data.jsonl +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/mitre-stockpile/LICENSE.md +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/mitre-stockpile/SOURCE.md +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/mitre-stockpile/base/collection/data.jsonl +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/mitre-stockpile/base/discovery/data.jsonl +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/mitre-stockpile/base/execution/data.jsonl +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/mitre-stockpile/base/exfiltration/data.jsonl +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/mitre-stockpile/base/persistence/data.jsonl +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/mordor/LICENSE.md +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/mordor/SOURCE.md +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/mordor/defensive/threat_hunting/data.jsonl +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/nist-ir/LICENSE.md +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/nist-ir/SOURCE.md +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/nist-ir/defensive/incident_response/data.jsonl +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/nvidia-garak/LICENSE.md +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/nvidia-garak/SOURCE.md +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/nvidia-garak/ai/jailbreaking/data.jsonl +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/promptfoo/LICENSE.md +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/promptfoo/SOURCE.md +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/promptfoo/ai/prompt-injection/data.jsonl +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/promptmap/LICENSE.md +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/promptmap/SOURCE.md +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/promptmap/ai/prompt-injection/data.jsonl +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/replay-general/LICENSE.md +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/replay-general/SOURCE.md +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/replay-general/base/replay/data_code.jsonl +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/replay-general/base/replay/data_conversation.jsonl +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/replay-general/base/replay/data_factual.jsonl +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/replay-general/base/replay/data_reasoning.jsonl +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/sigma-hq/LICENSE.md +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/sigma-hq/SOURCE.md +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/sigma-hq/defensive/detection_engineering/data.jsonl +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/splunk-content/LICENSE.md +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/splunk-content/SOURCE.md +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/splunk-content/defensive/detection_engineering/data.jsonl +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/threathunter-playbook/LICENSE.md +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/threathunter-playbook/SOURCE.md +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/threathunter-playbook/defensive/threat_hunting/data.jsonl +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/golden/prompts.jsonl +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/reference/prompts.jsonl +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/steering/prompts/opsec_aware.txt +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/steering/prompts/opsec_unaware.txt +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/steering/prompts/succinct.txt +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/data/steering/prompts/verbose.txt +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/experiments/README.md +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/experiments/synthetic_dataset_mutator_evol_instruct.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/hf/.gitattributes +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/hf/README.md +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/hf/data/manifest.json +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/hf/dataset_infos.json +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/hf/scripts/build_hf_dataset.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/hf/scripts/push_to_hf.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/hpo_runs/.gitkeep +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/hpo_runs/hpo_state.json +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/hpo_runs/hpo_trial_dataset.jsonl +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/logs/.gitkeep +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/pipeline.example.yaml +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/presets/blue-team.json +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/presets/purple-team.json +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/presets/red-team.json +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/pyproject.toml +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/requirements.txt +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/scripts/_eval_loader.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/scripts/acquire_cloud_attack_dataset.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/scripts/acquire_ics_dataset.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/scripts/acquire_phishing_dataset.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/scripts/acquire_red_team_tactics.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/scripts/acquire_replay_general.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/scripts/acquire_supply_chain_dataset.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/scripts/acquire_web_attack_dataset.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/scripts/acquire_wireless_dataset.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/scripts/audit_dataset.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/scripts/balance_buckets.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/scripts/bucket_loader.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/scripts/build.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/scripts/clone_repos.sh +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/scripts/collect_reference.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/scripts/compare_scores.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/scripts/convert_to_gguf.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/scripts/demo.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/scripts/device_utils.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/scripts/domain_bench.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/scripts/eval_retention.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/scripts/evolve_pairs.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/scripts/evolved_mixer.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/scripts/extract_ai_tools_to_jsonl.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/scripts/extract_atomic_red_team_to_jsonl.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/scripts/extract_by_tactic.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/scripts/extract_caldera_plugins_to_jsonl.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/scripts/extract_elastic_rules.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/scripts/extract_infection_monkey_to_jsonl.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/scripts/extract_mordor.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/scripts/extract_nist_ir.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/scripts/extract_rta_to_jsonl.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/scripts/extract_sigma_defensive.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/scripts/extract_splunk_content.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/scripts/extract_threathunter_playbook.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/scripts/filter_evolved.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/scripts/generate_synthetic_scarce.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/scripts/golden_vectors.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/scripts/hpo_runner.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/scripts/import_gguf.sh +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/scripts/import_to_lmstudio.sh +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/scripts/infer.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/scripts/init_pipeline.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/scripts/merge_adapter.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/scripts/mitre_tactic_lookup.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/scripts/package_dataset.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/scripts/parse_metasploit_to_jsonl.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/scripts/pipeline.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/scripts/rebuild_manifest.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/scripts/register_ollama.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/scripts/reorganize_buckets.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/scripts/replay_mixer.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/scripts/score_candidates.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/scripts/setup_buckets.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/scripts/speed_bench.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/scripts/steering.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/scripts/train_all.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/scripts/train_template.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/src/attacklm/__init__.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/src/attacklm/_project_root.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/src/attacklm/cli.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/tests/test_balance_buckets.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/tests/test_collect_reference.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/tests/test_compare_scores.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/tests/test_domain_bench.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/tests/test_eval_loader.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/tests/test_eval_retention.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/tests/test_evolve_pairs.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/tests/test_golden_vectors.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/tests/test_init_pipeline.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/tests/test_replay_mixer.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/tests/test_score_candidates.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/tests/test_speed_bench.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/tests/test_steering.py +0 -0
- {attacklm-0.8.3 → attacklm-0.8.4}/tests/test_thinking_models.py +0 -0
- {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
|
+
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)
|
|
204
204
|
[](#)
|
|
205
205
|
|
|
206
|
-
**A high-performance
|
|
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
|
|
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
|
-
###
|
|
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)
|
|
6
6
|
[](#)
|
|
7
7
|
|
|
8
|
-
**A high-performance
|
|
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
|
|
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
|
-
###
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/attacklm-synthetic/LICENSE.md
RENAMED
|
File without changes
|
{attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/attacklm-synthetic/SOURCE.md
RENAMED
|
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
|
{attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/metasploit-framework/LICENSE.md
RENAMED
|
File without changes
|
{attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/metasploit-framework/SOURCE.md
RENAMED
|
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
|
{attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/mitre-atlas-arsenal/LICENSE.md
RENAMED
|
File without changes
|
{attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/mitre-atlas-arsenal/SOURCE.md
RENAMED
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/threathunter-playbook/LICENSE.md
RENAMED
|
File without changes
|
{attacklm-0.8.3 → attacklm-0.8.4}/data/datasets/buckets/sources/threathunter-playbook/SOURCE.md
RENAMED
|
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
|
|
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
|
|
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
|
|
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
|