hackagent 0.10.1__tar.gz → 0.12.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.
- {hackagent-0.10.1 → hackagent-0.12.0}/.gitignore +11 -1
- {hackagent-0.10.1 → hackagent-0.12.0}/PKG-INFO +31 -4
- {hackagent-0.10.1 → hackagent-0.12.0}/README.md +27 -2
- hackagent-0.12.0/hackagent/_version.py +21 -0
- hackagent-0.12.0/hackagent/agent.py +564 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/__init__.py +4 -2
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/base.py +5 -8
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/evaluator/__init__.py +5 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/evaluator/base.py +32 -14
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/evaluator/evaluation_step.py +685 -118
- hackagent-0.12.0/hackagent/attacks/evaluator/inline_step_judge.py +207 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/evaluator/judge_evaluators.py +194 -5
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/evaluator/metrics.py +44 -9
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/evaluator/sync.py +12 -5
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/objectives/__init__.py +2 -0
- hackagent-0.12.0/hackagent/attacks/objectives/rag.py +55 -0
- hackagent-0.12.0/hackagent/attacks/orchestrator.py +2174 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/registry.py +25 -4
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/shared/__init__.py +10 -0
- hackagent-0.12.0/hackagent/attacks/shared/guardrail.py +256 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/shared/prompt_parser.py +12 -6
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/shared/response_utils.py +34 -2
- hackagent-0.12.0/hackagent/attacks/shared/translation.py +144 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/advprefix/attack.py +6 -3
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/advprefix/completions.py +32 -6
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/advprefix/config.py +9 -4
- hackagent-0.10.1/hackagent/attacks/techniques/advprefix/evaluation.py → hackagent-0.12.0/hackagent/attacks/techniques/advprefix/eval_pipeline.py +6 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/autodan_turbo/attack.py +56 -13
- hackagent-0.10.1/hackagent/attacks/techniques/autodan_turbo/evaluation.py → hackagent-0.12.0/hackagent/attacks/techniques/autodan_turbo/autodan_eval.py +14 -51
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/autodan_turbo/config.py +26 -9
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/autodan_turbo/core.py +20 -3
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/autodan_turbo/lifelong.py +14 -3
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/autodan_turbo/warm_up.py +14 -3
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/base.py +55 -4
- hackagent-0.12.0/hackagent/attacks/techniques/baseline/__init__.py +13 -0
- hackagent-0.12.0/hackagent/attacks/techniques/baseline/attack.py +199 -0
- hackagent-0.12.0/hackagent/attacks/techniques/baseline/config.py +16 -0
- hackagent-0.12.0/hackagent/attacks/techniques/baseline/generation.py +183 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/bon/attack.py +8 -4
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/bon/generation.py +36 -149
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/cipherchat/attack.py +14 -4
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/cipherchat/generation.py +13 -4
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/config.py +69 -15
- hackagent-0.12.0/hackagent/attacks/techniques/fc/__init__.py +19 -0
- hackagent-0.12.0/hackagent/attacks/techniques/fc/attack.py +479 -0
- hackagent-0.12.0/hackagent/attacks/techniques/fc/config.py +190 -0
- hackagent-0.12.0/hackagent/attacks/techniques/fc/flowchart_renderer.py +1235 -0
- hackagent-0.12.0/hackagent/attacks/techniques/fc/generation.py +606 -0
- hackagent-0.12.0/hackagent/attacks/techniques/fc/prompts.py +84 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/flipattack/attack.py +10 -4
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/flipattack/generation.py +20 -6
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/h4rm3l/attack.py +107 -21
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/h4rm3l/decorators.py +21 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/h4rm3l/generation.py +27 -19
- hackagent-0.12.0/hackagent/attacks/techniques/indirect_prompt_injection/attack.py +1402 -0
- hackagent-0.12.0/hackagent/attacks/techniques/indirect_prompt_injection/config.py +215 -0
- hackagent-0.12.0/hackagent/attacks/techniques/mml/__init__.py +18 -0
- hackagent-0.12.0/hackagent/attacks/techniques/mml/attack.py +345 -0
- hackagent-0.12.0/hackagent/attacks/techniques/mml/config.py +115 -0
- hackagent-0.12.0/hackagent/attacks/techniques/mml/generation.py +288 -0
- hackagent-0.12.0/hackagent/attacks/techniques/mml/image_encoder.py +461 -0
- hackagent-0.12.0/hackagent/attacks/techniques/mml/prompts.py +434 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/pair/attack.py +561 -251
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/pair/config.py +33 -7
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/pap/attack.py +8 -4
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/pap/generation.py +35 -139
- hackagent-0.12.0/hackagent/attacks/techniques/rag/__init__.py +6 -0
- hackagent-0.12.0/hackagent/attacks/techniques/rag/attack.py +1437 -0
- hackagent-0.12.0/hackagent/attacks/techniques/rag/config.py +214 -0
- hackagent-0.12.0/hackagent/attacks/techniques/rag/jailbreak.py +439 -0
- {hackagent-0.10.1/hackagent/attacks/techniques/baseline → hackagent-0.12.0/hackagent/attacks/techniques/static_template}/__init__.py +4 -4
- {hackagent-0.10.1/hackagent/attacks/techniques/baseline → hackagent-0.12.0/hackagent/attacks/techniques/static_template}/attack.py +65 -34
- {hackagent-0.10.1/hackagent/attacks/techniques/baseline → hackagent-0.12.0/hackagent/attacks/techniques/static_template}/config.py +5 -5
- {hackagent-0.10.1/hackagent/attacks/techniques/baseline → hackagent-0.12.0/hackagent/attacks/techniques/static_template}/generation.py +17 -9
- hackagent-0.10.1/hackagent/attacks/techniques/baseline/evaluation.py → hackagent-0.12.0/hackagent/attacks/techniques/static_template/static_eval.py +68 -153
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/tap/attack.py +40 -3
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/tap/generation.py +36 -11
- hackagent-0.10.1/hackagent/attacks/techniques/tap/evaluation.py → hackagent-0.12.0/hackagent/attacks/techniques/tap/tap_evaluation.py +16 -20
- hackagent-0.12.0/hackagent/attacks/types.py +190 -0
- hackagent-0.12.0/hackagent/cli/bootstrap.py +96 -0
- hackagent-0.12.0/hackagent/cli/commands/attack/__init__.py +66 -0
- hackagent-0.12.0/hackagent/cli/commands/attack/catalog.py +65 -0
- hackagent-0.12.0/hackagent/cli/commands/attack/chain.py +247 -0
- hackagent-0.12.0/hackagent/cli/commands/attack/config.py +109 -0
- hackagent-0.12.0/hackagent/cli/commands/attack/display.py +220 -0
- hackagent-0.12.0/hackagent/cli/commands/attack/group.py +119 -0
- hackagent-0.12.0/hackagent/cli/commands/attack/info.py +58 -0
- hackagent-0.12.0/hackagent/cli/commands/attack/options.py +82 -0
- hackagent-0.12.0/hackagent/cli/commands/attack/runner.py +175 -0
- hackagent-0.12.0/hackagent/cli/commands/attack/strategies.py +96 -0
- hackagent-0.12.0/hackagent/cli/commands/claude.py +288 -0
- hackagent-0.12.0/hackagent/cli/commands/codex.py +291 -0
- hackagent-0.12.0/hackagent/cli/commands/datasets.py +236 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/cli/commands/examples.py +159 -91
- hackagent-0.12.0/hackagent/cli/commands/scan/__init__.py +47 -0
- hackagent-0.12.0/hackagent/cli/commands/scan/command.py +448 -0
- hackagent-0.12.0/hackagent/cli/commands/scan/helpers.py +120 -0
- hackagent-0.10.1/hackagent/cli/commands/scan.py → hackagent-0.12.0/hackagent/cli/commands/scan/quick.py +6 -160
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/cli/commands/web.py +31 -38
- hackagent-0.12.0/hackagent/cli/help_page.py +143 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/cli/main.py +114 -231
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/cli/tui/app.py +115 -37
- hackagent-0.12.0/hackagent/cli/tui/attack_specs/__init__.py +49 -0
- hackagent-0.12.0/hackagent/cli/tui/attack_specs/registry.py +33 -0
- hackagent-0.12.0/hackagent/cli/tui/attack_specs/specs/__init__.py +55 -0
- hackagent-0.12.0/hackagent/cli/tui/attack_specs/specs/advprefix.py +197 -0
- hackagent-0.12.0/hackagent/cli/tui/attack_specs/specs/autodan_turbo.py +150 -0
- hackagent-0.12.0/hackagent/cli/tui/attack_specs/specs/baseline.py +104 -0
- hackagent-0.12.0/hackagent/cli/tui/attack_specs/specs/bon.py +131 -0
- hackagent-0.12.0/hackagent/cli/tui/attack_specs/specs/cipherchat.py +215 -0
- hackagent-0.12.0/hackagent/cli/tui/attack_specs/specs/fc.py +65 -0
- hackagent-0.12.0/hackagent/cli/tui/attack_specs/specs/flipattack.py +107 -0
- hackagent-0.12.0/hackagent/cli/tui/attack_specs/specs/h4rm3l.py +100 -0
- hackagent-0.12.0/hackagent/cli/tui/attack_specs/specs/mml.py +121 -0
- hackagent-0.12.0/hackagent/cli/tui/attack_specs/specs/pair.py +142 -0
- hackagent-0.12.0/hackagent/cli/tui/attack_specs/specs/pap.py +139 -0
- hackagent-0.12.0/hackagent/cli/tui/attack_specs/specs/static_template.py +146 -0
- hackagent-0.12.0/hackagent/cli/tui/attack_specs/specs/tap.py +119 -0
- hackagent-0.12.0/hackagent/cli/tui/attack_specs/specs/tfc.py +80 -0
- hackagent-0.12.0/hackagent/cli/tui/attack_specs/types.py +158 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/cli/tui/base.py +1 -1
- hackagent-0.12.0/hackagent/cli/tui/events.py +150 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/cli/tui/logger.py +8 -51
- hackagent-0.12.0/hackagent/cli/tui/theme.py +187 -0
- hackagent-0.12.0/hackagent/cli/tui/views/attacks/__init__.py +37 -0
- hackagent-0.12.0/hackagent/cli/tui/views/attacks/executor.py +429 -0
- hackagent-0.12.0/hackagent/cli/tui/views/attacks/form.py +509 -0
- hackagent-0.12.0/hackagent/cli/tui/views/attacks/helpers.py +89 -0
- hackagent-0.12.0/hackagent/cli/tui/views/attacks/layout.py +263 -0
- hackagent-0.12.0/hackagent/cli/tui/views/attacks/runner.py +286 -0
- hackagent-0.12.0/hackagent/cli/tui/views/attacks/tab.py +390 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/cli/tui/views/config.py +2 -3
- hackagent-0.12.0/hackagent/cli/tui/views/results/__init__.py +58 -0
- hackagent-0.12.0/hackagent/cli/tui/views/results/details.py +377 -0
- hackagent-0.12.0/hackagent/cli/tui/views/results/export.py +173 -0
- hackagent-0.12.0/hackagent/cli/tui/views/results/formatters/__init__.py +54 -0
- hackagent-0.12.0/hackagent/cli/tui/views/results/formatters/datetimes.py +39 -0
- hackagent-0.12.0/hackagent/cli/tui/views/results/formatters/http.py +365 -0
- hackagent-0.12.0/hackagent/cli/tui/views/results/formatters/run_report.py +183 -0
- hackagent-0.12.0/hackagent/cli/tui/views/results/formatters/summaries.py +297 -0
- hackagent-0.12.0/hackagent/cli/tui/views/results/formatters/text.py +113 -0
- hackagent-0.12.0/hackagent/cli/tui/views/results/formatters/traces.py +351 -0
- hackagent-0.12.0/hackagent/cli/tui/views/results/tab.py +400 -0
- hackagent-0.12.0/hackagent/cli/tui/views/results/table.py +212 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/cli/tui/widgets/actions.py +158 -0
- hackagent-0.12.0/hackagent/cli/tui/widgets/clipboard.py +127 -0
- hackagent-0.12.0/hackagent/cli/tui/widgets/logs.py +445 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/cli/utils.py +14 -0
- hackagent-0.12.0/hackagent/config.py +146 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/datasets/__init__.py +12 -0
- hackagent-0.12.0/hackagent/datasets/intents.py +349 -0
- hackagent-0.12.0/hackagent/datasets/omnisafebench/dataset.json +8153 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/datasets/presets.py +24 -2
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/datasets/providers/__init__.py +2 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/datasets/providers/huggingface.py +23 -2
- hackagent-0.12.0/hackagent/datasets/providers/url_json.py +151 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/datasets/registry.py +131 -37
- hackagent-0.12.0/hackagent/examples/claude/README.md +118 -0
- hackagent-0.12.0/hackagent/examples/claude/hack_claude.py +86 -0
- hackagent-0.12.0/hackagent/examples/claude/hack_ollama.py +80 -0
- hackagent-0.12.0/hackagent/examples/codex/README.md +118 -0
- hackagent-0.12.0/hackagent/examples/codex/hack_codex.py +89 -0
- hackagent-0.12.0/hackagent/examples/codex/hack_ollama.py +77 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/examples/google_adk/jailbreak_eval/hack.py +3 -3
- hackagent-0.12.0/hackagent/examples/hermes/README.md +97 -0
- hackagent-0.12.0/hackagent/examples/hermes/hack_hermes.py +94 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/examples/langchain/rag/README.md +1 -1
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/examples/langchain/rag/agent_client.py +6 -4
- hackagent-0.12.0/hackagent/examples/litellm_multi_provider/README.md +52 -0
- hackagent-0.12.0/hackagent/examples/litellm_multi_provider/demo.py +245 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/examples/ollama/demo.py +24 -30
- hackagent-0.12.0/hackagent/examples/openai_sdk/db_tool_sandbox/README.md +70 -0
- hackagent-0.12.0/hackagent/examples/openai_sdk/db_tool_sandbox/agent.py +494 -0
- hackagent-0.12.0/hackagent/examples/openai_sdk/db_tool_sandbox/hack.py +101 -0
- hackagent-0.12.0/hackagent/examples/openai_sdk/db_tool_sandbox/sandbox.db +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/examples/openai_sdk/rag/README.md +7 -15
- hackagent-0.12.0/hackagent/examples/rag/.gitignore +2 -0
- hackagent-0.12.0/hackagent/examples/rag/test_data/gender_studies_overview.txt +73 -0
- hackagent-0.12.0/hackagent/examples/rag/test_indirect_injection.py +196 -0
- hackagent-0.12.0/hackagent/examples/web/README.md +99 -0
- hackagent-0.12.0/hackagent/examples/web/hack.py +95 -0
- hackagent-0.12.0/hackagent/examples/web/plan.py +45 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/craft_adversarial_data/profile.py +2 -2
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/credential_exposure/profile.py +2 -2
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/excessive_agency/profile.py +2 -2
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/malicious_tool_invocation/profile.py +2 -2
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/misinformation/profile.py +2 -2
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/profile_helpers.py +4 -4
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/public_facing_application_exploitation/profile.py +2 -2
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/vector_embedding_weaknesses_exploit/profile.py +2 -2
- hackagent-0.12.0/hackagent/router/__init__.py +32 -0
- hackagent-0.12.0/hackagent/router/_chat_registration.py +192 -0
- hackagent-0.10.1/hackagent/router/adapters/base.py → hackagent-0.12.0/hackagent/router/agent.py +45 -96
- hackagent-0.12.0/hackagent/router/discovery/__init__.py +53 -0
- hackagent-0.12.0/hackagent/router/discovery/browser.py +350 -0
- hackagent-0.12.0/hackagent/router/discovery/scanner.py +483 -0
- hackagent-0.12.0/hackagent/router/envelope.py +344 -0
- hackagent-0.12.0/hackagent/router/provider_config.py +153 -0
- hackagent-0.12.0/hackagent/router/providers/adk.py +540 -0
- hackagent-0.12.0/hackagent/router/providers/claude.py +509 -0
- hackagent-0.12.0/hackagent/router/providers/codex.py +633 -0
- hackagent-0.12.0/hackagent/router/providers/hermes.py +482 -0
- hackagent-0.12.0/hackagent/router/providers/web.py +898 -0
- hackagent-0.12.0/hackagent/router/router.py +818 -0
- hackagent-0.12.0/hackagent/router/tracking/audit.py +72 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/router/tracking/category_classifier.py +144 -4
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/router/tracking/context.py +3 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/router/tracking/coordinator.py +132 -4
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/router/tracking/decorators.py +25 -12
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/router/tracking/step.py +102 -3
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/router/tracking/tracker.py +195 -44
- hackagent-0.12.0/hackagent/router/tracking_logger.py +246 -0
- hackagent-0.12.0/hackagent/router/types.py +138 -0
- hackagent-0.12.0/hackagent/server/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/models.py +2 -2
- hackagent-0.12.0/hackagent/server/dashboard/_analysis_data_mixin.py +716 -0
- hackagent-0.12.0/hackagent/server/dashboard/_attack_builder_mixin.py +558 -0
- hackagent-0.12.0/hackagent/server/dashboard/_builder_config.py +271 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/dashboard/_components.py +2 -1
- hackagent-0.12.0/hackagent/server/dashboard/_constants.py +22 -0
- hackagent-0.12.0/hackagent/server/dashboard/_data_mixin.py +802 -0
- hackagent-0.12.0/hackagent/server/dashboard/_layout_mixin.py +846 -0
- hackagent-0.12.0/hackagent/server/dashboard/_page.py +279 -0
- hackagent-0.12.0/hackagent/server/dashboard/_reports_mixin.py +991 -0
- hackagent-0.12.0/hackagent/server/dashboard/_result_detail_mixin.py +808 -0
- hackagent-0.12.0/hackagent/server/dashboard/_run_history_results_mixin.py +1494 -0
- hackagent-0.12.0/hackagent/server/dashboard/_run_results_mixin.py +1284 -0
- hackagent-0.12.0/hackagent/server/dashboard/_runs_mixin.py +991 -0
- hackagent-0.12.0/hackagent/server/dashboard/_tap_trace_mixin.py +723 -0
- hackagent-0.12.0/hackagent/server/dashboard/_trace_analysis_mixin.py +576 -0
- hackagent-0.12.0/hackagent/server/dashboard/_trace_render_mixin.py +1295 -0
- hackagent-0.12.0/hackagent/server/dashboard/attack_cards/__init__.py +21 -0
- hackagent-0.12.0/hackagent/server/dashboard/attack_cards/_advprefix.py +496 -0
- hackagent-0.12.0/hackagent/server/dashboard/attack_cards/_autodan.py +503 -0
- hackagent-0.12.0/hackagent/server/dashboard/attack_cards/_bon.py +318 -0
- hackagent-0.12.0/hackagent/server/dashboard/attack_cards/_fc.py +268 -0
- hackagent-0.12.0/hackagent/server/dashboard/attack_cards/_generic.py +176 -0
- hackagent-0.12.0/hackagent/server/dashboard/attack_cards/_mml.py +245 -0
- hackagent-0.12.0/hackagent/server/dashboard/attack_cards/_pair.py +284 -0
- hackagent-0.12.0/hackagent/server/dashboard/attack_cards/_pap.py +235 -0
- hackagent-0.12.0/hackagent/server/dashboard/attack_cards/_shared.py +496 -0
- hackagent-0.12.0/hackagent/server/dashboard/attack_cards/_static_template.py +350 -0
- hackagent-0.12.0/hackagent/server/dashboard/attack_cards/_tap.py +404 -0
- hackagent-0.12.0/hackagent/server/dashboard/attack_cards/_tfc.py +209 -0
- hackagent-0.12.0/hackagent/server/storage/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/storage/base.py +9 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/storage/local.py +97 -1
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/storage/remote.py +156 -47
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/utils.py +6 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/pyproject.toml +24 -9
- hackagent-0.10.1/hackagent/agent.py +0 -296
- hackagent-0.10.1/hackagent/attacks/orchestrator.py +0 -916
- hackagent-0.10.1/hackagent/attacks/techniques/bon/evaluation.py +0 -176
- hackagent-0.10.1/hackagent/attacks/techniques/cipherchat/evaluation.py +0 -108
- hackagent-0.10.1/hackagent/attacks/techniques/flipattack/evaluation.py +0 -233
- hackagent-0.10.1/hackagent/attacks/techniques/h4rm3l/evaluation.py +0 -185
- hackagent-0.10.1/hackagent/attacks/techniques/pair/evaluation.py +0 -90
- hackagent-0.10.1/hackagent/attacks/techniques/pap/evaluation.py +0 -105
- hackagent-0.10.1/hackagent/cli/commands/attack.py +0 -884
- hackagent-0.10.1/hackagent/cli/tui/actions_logger.py +0 -189
- hackagent-0.10.1/hackagent/cli/tui/attack_specs.py +0 -1380
- hackagent-0.10.1/hackagent/cli/tui/views/attacks.py +0 -1261
- hackagent-0.10.1/hackagent/cli/tui/views/dashboard.py +0 -352
- hackagent-0.10.1/hackagent/cli/tui/views/results.py +0 -2479
- hackagent-0.10.1/hackagent/cli/tui/widgets/logs.py +0 -400
- hackagent-0.10.1/hackagent/router/__init__.py +0 -20
- hackagent-0.10.1/hackagent/router/adapters/__init__.py +0 -46
- hackagent-0.10.1/hackagent/router/adapters/google_adk.py +0 -671
- hackagent-0.10.1/hackagent/router/adapters/litellm.py +0 -434
- hackagent-0.10.1/hackagent/router/adapters/ollama.py +0 -522
- hackagent-0.10.1/hackagent/router/adapters/openai.py +0 -500
- hackagent-0.10.1/hackagent/router/router.py +0 -460
- hackagent-0.10.1/hackagent/router/types.py +0 -80
- hackagent-0.10.1/hackagent/server/dashboard/_page.py +0 -6535
- {hackagent-0.10.1 → hackagent-0.12.0}/LICENSE +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/evaluator/pattern_evaluators.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/generator/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/generator/templates.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/objectives/base.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/objectives/harmful_behavior.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/objectives/jailbreak.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/objectives/policy_violation.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/shared/progress.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/shared/router_factory.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/shared/tui.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/shared/utils.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/advprefix/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/advprefix/generate.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/advprefix/utils.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/autodan_turbo/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/autodan_turbo/dashboard_tracing.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/autodan_turbo/log_styles.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/autodan_turbo/strategy_library.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/autodan_turbo/summarizer.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/bon/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/bon/config.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/cipherchat/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/cipherchat/config.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/cipherchat/encode_experts.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/cipherchat/prompts_and_demonstrations.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/flipattack/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/flipattack/config.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/h4rm3l/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/h4rm3l/config.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/pair/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/pap/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/pap/config.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/pap/taxonomy.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/tap/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/tap/config.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/cli/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/cli/commands/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/cli/commands/agent.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/cli/commands/config.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/cli/commands/results.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/cli/config.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/cli/tui/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/cli/tui/views/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/cli/tui/views/agents.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/cli/tui/widgets/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/datasets/base.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/datasets/providers/file.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/errors.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/examples/google_adk/jailbreak_eval/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/examples/google_adk/jailbreak_eval/agent.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/examples/google_adk/multi_tool_agent/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/examples/google_adk/multi_tool_agent/agent.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/examples/google_adk/multi_tool_agent/hack.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/examples/langchain/rag/agent_server.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/examples/langchain/rag/hack.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/examples/langchain/rag/ingest.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/examples/langchain/rag/policies.pdf +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/examples/langchain/rag/read_db.py +0 -0
- {hackagent-0.10.1/hackagent/server → hackagent-0.12.0/hackagent/examples/litellm_multi_provider}/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/examples/ollama/hack.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/examples/ollama/local.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/examples/openai_sdk/multi_judge/README.md +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/examples/openai_sdk/multi_judge/run_flipattack_multi_judge.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/examples/openai_sdk/pc_tool_sandbox/README.md +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/examples/openai_sdk/pc_tool_sandbox/agent.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/examples/openai_sdk/pc_tool_sandbox/confidential/db_credentials.txt +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/examples/openai_sdk/pc_tool_sandbox/hack.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/examples/openai_sdk/quick_evaluation/README.md +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/examples/openai_sdk/quick_evaluation/run_h4rm3l.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/examples/openai_sdk/rag/agent_server.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/examples/openai_sdk/rag/hack.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/examples/openai_sdk/rag/ingest.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/examples/openai_sdk/rag/policies.pdf +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/examples/vllm/hack.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/logger.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/base.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/craft_adversarial_data/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/craft_adversarial_data/types.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/craft_adversarial_data/vulnerabilities.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/credential_exposure/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/credential_exposure/types.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/credential_exposure/vulnerabilities.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/excessive_agency/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/excessive_agency/types.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/excessive_agency/vulnerabilities.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/input_manipulation_attack/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/input_manipulation_attack/profile.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/input_manipulation_attack/types.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/input_manipulation_attack/vulnerabilities.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/jailbreak/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/jailbreak/profile.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/jailbreak/types.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/jailbreak/vulnerabilities.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/malicious_tool_invocation/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/malicious_tool_invocation/types.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/malicious_tool_invocation/vulnerabilities.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/misinformation/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/misinformation/types.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/misinformation/vulnerabilities.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/model_evasion/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/model_evasion/profile.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/model_evasion/types.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/model_evasion/vulnerabilities.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/profile_types.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/prompt_injection/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/prompt_injection/profile.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/prompt_injection/templates.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/prompt_injection/types.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/prompt_injection/vulnerabilities.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/public_facing_application_exploitation/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/public_facing_application_exploitation/types.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/public_facing_application_exploitation/vulnerabilities.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/registry.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/sensitive_information_disclosure/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/sensitive_information_disclosure/profile.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/sensitive_information_disclosure/types.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/sensitive_information_disclosure/vulnerabilities.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/system_prompt_leakage/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/system_prompt_leakage/profile.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/system_prompt_leakage/types.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/system_prompt_leakage/vulnerabilities.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/utils.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/vector_embedding_weaknesses_exploit/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/vector_embedding_weaknesses_exploit/types.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/vector_embedding_weaknesses_exploit/vulnerabilities.py +0 -0
- {hackagent-0.10.1/hackagent/server/storage → hackagent-0.12.0/hackagent/router/providers}/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/router/tracking/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/router/tracking/utils.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/agent/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/agent/agent_create.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/agent/agent_destroy.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/agent/agent_list.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/agent/agent_partial_update.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/agent/agent_retrieve.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/agent/agent_update.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/apilogs/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/apilogs/apilogs_list.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/apilogs/apilogs_retrieve.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/apilogs/apilogs_summary_retrieve.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/attack/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/attack/attack_create.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/attack/attack_destroy.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/attack/attack_list.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/attack/attack_partial_update.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/attack/attack_retrieve.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/attack/attack_update.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/checkout/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/checkout/checkout_create.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/generate/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/generate/v1_chat_completions_create.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/judge/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/judge/judge_create.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/key/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/key/key_context_retrieve.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/key/key_create.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/key/key_destroy.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/key/key_list.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/key/key_retrieve.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/organization/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/organization/organization_create.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/organization/organization_destroy.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/organization/organization_list.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/organization/organization_me_retrieve.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/organization/organization_partial_update.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/organization/organization_retrieve.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/organization/organization_update.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/result/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/result/result_create.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/result/result_destroy.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/result/result_list.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/result/result_partial_update.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/result/result_retrieve.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/result/result_trace_create.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/result/result_update.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/run/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/run/run_create.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/run/run_destroy.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/run/run_list.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/run/run_partial_update.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/run/run_result_create.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/run/run_retrieve.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/run/run_run_tests_create.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/run/run_update.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/scripts/generate.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/scripts/generate.sh +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/scripts/openapi-python-client.yaml +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/user/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/user/user_create.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/user/user_destroy.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/user/user_list.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/user/user_me_retrieve.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/user/user_me_update.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/user/user_partial_update.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/user/user_retrieve.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/user/user_update.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/client.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/dashboard/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/dashboard/_api.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/dashboard/_helpers.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/dashboard/app.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/dashboard/templates/index.html +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/errors.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/storage/enums.py +0 -0
- {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/types.py +0 -0
|
@@ -5,6 +5,9 @@ logs/
|
|
|
5
5
|
reports/
|
|
6
6
|
.adk/
|
|
7
7
|
slurm/
|
|
8
|
+
tools/
|
|
9
|
+
docs/docs/attacks/walkthroughs/
|
|
10
|
+
.worktrees/
|
|
8
11
|
|
|
9
12
|
# Editors
|
|
10
13
|
.vscode/
|
|
@@ -52,6 +55,8 @@ MANIFEST
|
|
|
52
55
|
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
|
53
56
|
*.manifest
|
|
54
57
|
*.spec
|
|
58
|
+
# The release build spec is checked in, unlike generated ones.
|
|
59
|
+
!packaging/hackagent.spec
|
|
55
60
|
|
|
56
61
|
# Installer logs
|
|
57
62
|
pip-log.txt
|
|
@@ -134,4 +139,9 @@ dmypy.json
|
|
|
134
139
|
|
|
135
140
|
|
|
136
141
|
.copilotignore
|
|
137
|
-
tests/e2e/attacks/
|
|
142
|
+
tests/e2e/attacks/
|
|
143
|
+
|
|
144
|
+
.tmp
|
|
145
|
+
|
|
146
|
+
# pytest-textual-snapshot report artifact
|
|
147
|
+
snapshot_report.html
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: hackagent
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.12.0
|
|
4
4
|
Summary: HackAgent is an open-source security toolkit to detect vulnerabilities of your AI Agents.
|
|
5
5
|
Author-email: AI Security Lab <ais@ai4i.it>
|
|
6
6
|
License: Apache-2.0
|
|
@@ -18,14 +18,16 @@ Requires-Python: >=3.10
|
|
|
18
18
|
Requires-Dist: click>=8.1.0
|
|
19
19
|
Requires-Dist: datasets>=2.14.0
|
|
20
20
|
Requires-Dist: faiss-cpu>=1.13.2
|
|
21
|
+
Requires-Dist: flask>=3.1.2
|
|
21
22
|
Requires-Dist: httpx>=0.27.0
|
|
22
23
|
Requires-Dist: litellm>=1.69.2
|
|
23
24
|
Requires-Dist: nicegui>=2.0
|
|
24
25
|
Requires-Dist: openai>=1.0.0
|
|
26
|
+
Requires-Dist: pillow>=10.0.0
|
|
27
|
+
Requires-Dist: playwright>=1.40
|
|
25
28
|
Requires-Dist: pydantic[email]>=2.0
|
|
26
29
|
Requires-Dist: python-dateutil>=2.8.0
|
|
27
30
|
Requires-Dist: pyyaml>=6.0.0
|
|
28
|
-
Requires-Dist: requests>=2.31.0
|
|
29
31
|
Requires-Dist: rich>=14.0.0
|
|
30
32
|
Requires-Dist: textual>=1.0.0
|
|
31
33
|
Description-Content-Type: text/markdown
|
|
@@ -41,6 +43,10 @@ Description-Content-Type: text/markdown
|
|
|
41
43
|
|
|
42
44
|
[App](https://app.hackagent.dev/) -- [Docs](https://docs.hackagent.dev/) -- [API](https://api.hackagent.dev/schema/redoc)
|
|
43
45
|
|
|
46
|
+
[](SECURITY.md)
|
|
47
|
+
|
|
48
|
+
<br>
|
|
49
|
+
|
|
44
50
|
<br>
|
|
45
51
|
|
|
46
52
|

|
|
@@ -86,6 +92,27 @@ pip install hackagent
|
|
|
86
92
|
|
|
87
93
|
No API key required: HackAgent works locally out of the box.
|
|
88
94
|
|
|
95
|
+
### Standalone binary (no Python required)
|
|
96
|
+
|
|
97
|
+
Every [GitHub Release](https://github.com/AISecurityLab/hackagent/releases) ships a
|
|
98
|
+
self-contained archive per platform:
|
|
99
|
+
|
|
100
|
+
| Platform | Asset |
|
|
101
|
+
|----------|-------|
|
|
102
|
+
| Linux x86_64 | `hackagent-<version>-linux-x86_64.tar.gz` |
|
|
103
|
+
| macOS arm64 | `hackagent-<version>-macos-arm64.tar.gz` |
|
|
104
|
+
| macOS x86_64 | `hackagent-<version>-macos-x86_64.tar.gz` |
|
|
105
|
+
| Windows x86_64 | `hackagent-<version>-windows-x86_64.zip` |
|
|
106
|
+
|
|
107
|
+
Extract the archive and run the `hackagent` launcher inside it — no Python, `pip`
|
|
108
|
+
or `uv` install needed. Keep the extracted folder intact; the launcher loads the
|
|
109
|
+
libraries next to it.
|
|
110
|
+
|
|
111
|
+
> **Note:** the `WEB` provider drives a real browser through Playwright, whose
|
|
112
|
+
> browser binaries cannot be embedded in the archive (or in the PyPI package).
|
|
113
|
+
> Before using `hackagent web`-based targets, install them once with
|
|
114
|
+
> `playwright install`.
|
|
115
|
+
|
|
89
116
|
|
|
90
117
|
Questions? Join [community discussions](https://github.com/AISecurityLab/hackagent/discussions) or email ais@ai4i.it.
|
|
91
118
|
|
|
@@ -95,11 +122,11 @@ HackAgent uses a modular pipeline to test agent robustness end-to-end.
|
|
|
95
122
|
|
|
96
123
|
| Component | Description |
|
|
97
124
|
|-----------|-------------|
|
|
98
|
-
| **Attack Engine** | Orchestrates attacks using AdvPrefix, AutoDAN-Turbo, PAIR, TAP, FlipAttack, BoN, h4rm3l, CipherChat, PAP, and
|
|
125
|
+
| **Attack Engine** | Orchestrates attacks using AdvPrefix, AutoDAN-Turbo, PAIR, TAP, FlipAttack, BoN, h4rm3l, CipherChat, PAP, and Static Template |
|
|
99
126
|
| **Generator** | LLM role that creates adversarial prompts to test the target agent |
|
|
100
127
|
| **Judge** | LLM role that evaluates whether attacks bypass safety measures |
|
|
101
128
|
| **Target Agent** | Your AI agent under test across supported frameworks |
|
|
102
|
-
| **Datasets** | Pre-built benchmark presets plus custom HuggingFace/file datasets |
|
|
129
|
+
| **Datasets** | Pre-built benchmark presets plus custom HuggingFace/file/URL JSON datasets |
|
|
103
130
|
|
|
104
131
|
## Supported Frameworks
|
|
105
132
|
|
|
@@ -9,6 +9,10 @@
|
|
|
9
9
|
|
|
10
10
|
[App](https://app.hackagent.dev/) -- [Docs](https://docs.hackagent.dev/) -- [API](https://api.hackagent.dev/schema/redoc)
|
|
11
11
|
|
|
12
|
+
[](SECURITY.md)
|
|
13
|
+
|
|
14
|
+
<br>
|
|
15
|
+
|
|
12
16
|
<br>
|
|
13
17
|
|
|
14
18
|

|
|
@@ -54,6 +58,27 @@ pip install hackagent
|
|
|
54
58
|
|
|
55
59
|
No API key required: HackAgent works locally out of the box.
|
|
56
60
|
|
|
61
|
+
### Standalone binary (no Python required)
|
|
62
|
+
|
|
63
|
+
Every [GitHub Release](https://github.com/AISecurityLab/hackagent/releases) ships a
|
|
64
|
+
self-contained archive per platform:
|
|
65
|
+
|
|
66
|
+
| Platform | Asset |
|
|
67
|
+
|----------|-------|
|
|
68
|
+
| Linux x86_64 | `hackagent-<version>-linux-x86_64.tar.gz` |
|
|
69
|
+
| macOS arm64 | `hackagent-<version>-macos-arm64.tar.gz` |
|
|
70
|
+
| macOS x86_64 | `hackagent-<version>-macos-x86_64.tar.gz` |
|
|
71
|
+
| Windows x86_64 | `hackagent-<version>-windows-x86_64.zip` |
|
|
72
|
+
|
|
73
|
+
Extract the archive and run the `hackagent` launcher inside it — no Python, `pip`
|
|
74
|
+
or `uv` install needed. Keep the extracted folder intact; the launcher loads the
|
|
75
|
+
libraries next to it.
|
|
76
|
+
|
|
77
|
+
> **Note:** the `WEB` provider drives a real browser through Playwright, whose
|
|
78
|
+
> browser binaries cannot be embedded in the archive (or in the PyPI package).
|
|
79
|
+
> Before using `hackagent web`-based targets, install them once with
|
|
80
|
+
> `playwright install`.
|
|
81
|
+
|
|
57
82
|
|
|
58
83
|
Questions? Join [community discussions](https://github.com/AISecurityLab/hackagent/discussions) or email ais@ai4i.it.
|
|
59
84
|
|
|
@@ -63,11 +88,11 @@ HackAgent uses a modular pipeline to test agent robustness end-to-end.
|
|
|
63
88
|
|
|
64
89
|
| Component | Description |
|
|
65
90
|
|-----------|-------------|
|
|
66
|
-
| **Attack Engine** | Orchestrates attacks using AdvPrefix, AutoDAN-Turbo, PAIR, TAP, FlipAttack, BoN, h4rm3l, CipherChat, PAP, and
|
|
91
|
+
| **Attack Engine** | Orchestrates attacks using AdvPrefix, AutoDAN-Turbo, PAIR, TAP, FlipAttack, BoN, h4rm3l, CipherChat, PAP, and Static Template |
|
|
67
92
|
| **Generator** | LLM role that creates adversarial prompts to test the target agent |
|
|
68
93
|
| **Judge** | LLM role that evaluates whether attacks bypass safety measures |
|
|
69
94
|
| **Target Agent** | Your AI agent under test across supported frameworks |
|
|
70
|
-
| **Datasets** | Pre-built benchmark presets plus custom HuggingFace/file datasets |
|
|
95
|
+
| **Datasets** | Pre-built benchmark presets plus custom HuggingFace/file/URL JSON datasets |
|
|
71
96
|
|
|
72
97
|
## Supported Frameworks
|
|
73
98
|
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Copyright 2026 - AI4I. All rights reserved.
|
|
2
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
"""Version lookup that also works from a frozen (PyInstaller) binary."""
|
|
5
|
+
|
|
6
|
+
import os
|
|
7
|
+
from importlib.metadata import PackageNotFoundError, version as _distribution_version
|
|
8
|
+
|
|
9
|
+
UNKNOWN_VERSION = "unknown"
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def get_version() -> str:
|
|
13
|
+
"""Return the installed ``hackagent`` version.
|
|
14
|
+
|
|
15
|
+
Frozen builds may ship without distribution metadata, so fall back to the
|
|
16
|
+
``HACKAGENT_BUILD_VERSION`` value baked in at packaging time.
|
|
17
|
+
"""
|
|
18
|
+
try:
|
|
19
|
+
return _distribution_version("hackagent")
|
|
20
|
+
except PackageNotFoundError:
|
|
21
|
+
return os.environ.get("HACKAGENT_BUILD_VERSION") or UNKNOWN_VERSION
|