hackagent 0.10.1__tar.gz → 0.11.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.11.0}/.gitignore +5 -1
- {hackagent-0.10.1 → hackagent-0.11.0}/PKG-INFO +8 -3
- {hackagent-0.10.1 → hackagent-0.11.0}/README.md +5 -1
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/agent.py +30 -4
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/__init__.py +4 -2
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/evaluator/base.py +18 -13
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/evaluator/evaluation_step.py +368 -108
- hackagent-0.11.0/hackagent/attacks/evaluator/inline_step_judge.py +173 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/evaluator/metrics.py +33 -6
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/evaluator/sync.py +6 -4
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/objectives/__init__.py +2 -0
- hackagent-0.11.0/hackagent/attacks/objectives/rag.py +55 -0
- hackagent-0.11.0/hackagent/attacks/orchestrator.py +1991 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/registry.py +25 -4
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/shared/__init__.py +10 -0
- hackagent-0.11.0/hackagent/attacks/shared/guardrail.py +256 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/shared/prompt_parser.py +1 -2
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/shared/response_utils.py +34 -2
- hackagent-0.11.0/hackagent/attacks/shared/translation.py +144 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/techniques/advprefix/attack.py +1 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/techniques/advprefix/completions.py +32 -6
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/techniques/advprefix/config.py +4 -2
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/techniques/advprefix/evaluation.py +6 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/techniques/autodan_turbo/attack.py +30 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/techniques/autodan_turbo/config.py +8 -6
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/techniques/autodan_turbo/core.py +17 -1
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/techniques/base.py +29 -1
- hackagent-0.11.0/hackagent/attacks/techniques/baseline/__init__.py +13 -0
- hackagent-0.11.0/hackagent/attacks/techniques/baseline/attack.py +195 -0
- hackagent-0.11.0/hackagent/attacks/techniques/baseline/config.py +16 -0
- hackagent-0.11.0/hackagent/attacks/techniques/baseline/generation.py +188 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/techniques/bon/evaluation.py +7 -36
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/techniques/bon/generation.py +36 -149
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/techniques/cipherchat/evaluation.py +1 -12
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/techniques/cipherchat/generation.py +13 -4
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/techniques/config.py +67 -15
- hackagent-0.11.0/hackagent/attacks/techniques/fc/__init__.py +19 -0
- hackagent-0.11.0/hackagent/attacks/techniques/fc/attack.py +465 -0
- hackagent-0.11.0/hackagent/attacks/techniques/fc/config.py +190 -0
- hackagent-0.11.0/hackagent/attacks/techniques/fc/evaluation.py +181 -0
- hackagent-0.11.0/hackagent/attacks/techniques/fc/flowchart_renderer.py +688 -0
- hackagent-0.11.0/hackagent/attacks/techniques/fc/generation.py +606 -0
- hackagent-0.11.0/hackagent/attacks/techniques/fc/prompts.py +84 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/techniques/flipattack/evaluation.py +3 -13
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/techniques/flipattack/generation.py +20 -6
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/techniques/h4rm3l/attack.py +56 -17
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/techniques/h4rm3l/decorators.py +21 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/techniques/h4rm3l/evaluation.py +1 -12
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/techniques/h4rm3l/generation.py +27 -19
- hackagent-0.11.0/hackagent/attacks/techniques/indirect_prompt_injection/attack.py +1400 -0
- hackagent-0.11.0/hackagent/attacks/techniques/indirect_prompt_injection/config.py +214 -0
- hackagent-0.11.0/hackagent/attacks/techniques/mml/__init__.py +18 -0
- hackagent-0.11.0/hackagent/attacks/techniques/mml/attack.py +337 -0
- hackagent-0.11.0/hackagent/attacks/techniques/mml/config.py +115 -0
- hackagent-0.11.0/hackagent/attacks/techniques/mml/evaluation.py +220 -0
- hackagent-0.11.0/hackagent/attacks/techniques/mml/generation.py +288 -0
- hackagent-0.11.0/hackagent/attacks/techniques/mml/image_encoder.py +461 -0
- hackagent-0.11.0/hackagent/attacks/techniques/mml/prompts.py +434 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/techniques/pair/attack.py +89 -9
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/techniques/pair/config.py +6 -2
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/techniques/pap/evaluation.py +6 -42
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/techniques/pap/generation.py +35 -139
- hackagent-0.11.0/hackagent/attacks/techniques/rag/__init__.py +6 -0
- hackagent-0.11.0/hackagent/attacks/techniques/rag/attack.py +1396 -0
- hackagent-0.11.0/hackagent/attacks/techniques/rag/config.py +210 -0
- {hackagent-0.10.1/hackagent/attacks/techniques/baseline → hackagent-0.11.0/hackagent/attacks/techniques/static_template}/__init__.py +4 -4
- {hackagent-0.10.1/hackagent/attacks/techniques/baseline → hackagent-0.11.0/hackagent/attacks/techniques/static_template}/attack.py +47 -21
- {hackagent-0.10.1/hackagent/attacks/techniques/baseline → hackagent-0.11.0/hackagent/attacks/techniques/static_template}/config.py +3 -3
- {hackagent-0.10.1/hackagent/attacks/techniques/baseline → hackagent-0.11.0/hackagent/attacks/techniques/static_template}/evaluation.py +39 -20
- {hackagent-0.10.1/hackagent/attacks/techniques/baseline → hackagent-0.11.0/hackagent/attacks/techniques/static_template}/generation.py +17 -9
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/techniques/tap/attack.py +35 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/techniques/tap/evaluation.py +2 -1
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/techniques/tap/generation.py +35 -10
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/cli/commands/attack.py +425 -16
- hackagent-0.11.0/hackagent/cli/commands/claude.py +288 -0
- hackagent-0.11.0/hackagent/cli/commands/scan.py +711 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/cli/commands/web.py +31 -38
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/cli/main.py +49 -4
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/cli/tui/app.py +84 -11
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/cli/tui/attack_specs.py +252 -5
- hackagent-0.11.0/hackagent/cli/tui/events.py +150 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/cli/tui/logger.py +8 -51
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/cli/tui/views/attacks.py +219 -49
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/cli/tui/widgets/actions.py +160 -0
- hackagent-0.11.0/hackagent/cli/tui/widgets/clipboard.py +127 -0
- hackagent-0.11.0/hackagent/cli/tui/widgets/logs.py +445 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/cli/utils.py +10 -0
- hackagent-0.11.0/hackagent/config.py +91 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/datasets/__init__.py +8 -0
- hackagent-0.11.0/hackagent/datasets/intents.py +349 -0
- hackagent-0.11.0/hackagent/datasets/omnisafebench/dataset.json +8153 -0
- hackagent-0.11.0/hackagent/examples/claude/README.md +118 -0
- hackagent-0.11.0/hackagent/examples/claude/hack_claude.py +86 -0
- hackagent-0.11.0/hackagent/examples/claude/hack_ollama.py +80 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/examples/google_adk/jailbreak_eval/hack.py +3 -3
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/examples/langchain/rag/README.md +1 -1
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/examples/langchain/rag/agent_client.py +6 -4
- hackagent-0.11.0/hackagent/examples/litellm_multi_provider/README.md +52 -0
- hackagent-0.11.0/hackagent/examples/litellm_multi_provider/demo.py +245 -0
- hackagent-0.11.0/hackagent/examples/rag/.gitignore +2 -0
- hackagent-0.11.0/hackagent/examples/rag/test_data/gender_studies_overview.txt +73 -0
- hackagent-0.11.0/hackagent/examples/rag/test_indirect_injection.py +198 -0
- hackagent-0.11.0/hackagent/examples/web/README.md +99 -0
- hackagent-0.11.0/hackagent/examples/web/hack.py +95 -0
- hackagent-0.11.0/hackagent/examples/web/plan.py +45 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/risks/craft_adversarial_data/profile.py +2 -2
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/risks/credential_exposure/profile.py +2 -2
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/risks/excessive_agency/profile.py +2 -2
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/risks/malicious_tool_invocation/profile.py +2 -2
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/risks/misinformation/profile.py +2 -2
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/risks/profile_helpers.py +4 -4
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/risks/public_facing_application_exploitation/profile.py +2 -2
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/risks/vector_embedding_weaknesses_exploit/profile.py +2 -2
- hackagent-0.11.0/hackagent/router/__init__.py +30 -0
- hackagent-0.11.0/hackagent/router/_chat_registration.py +193 -0
- hackagent-0.10.1/hackagent/router/adapters/base.py → hackagent-0.11.0/hackagent/router/agent.py +45 -96
- hackagent-0.11.0/hackagent/router/discovery/__init__.py +53 -0
- hackagent-0.11.0/hackagent/router/discovery/browser.py +350 -0
- hackagent-0.11.0/hackagent/router/discovery/scanner.py +483 -0
- hackagent-0.11.0/hackagent/router/envelope.py +344 -0
- hackagent-0.11.0/hackagent/router/provider_config.py +153 -0
- hackagent-0.11.0/hackagent/router/providers/adk.py +540 -0
- hackagent-0.11.0/hackagent/router/providers/claude.py +509 -0
- hackagent-0.11.0/hackagent/router/providers/web.py +868 -0
- hackagent-0.11.0/hackagent/router/router.py +814 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/router/tracking/category_classifier.py +142 -3
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/router/tracking/context.py +3 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/router/tracking/coordinator.py +91 -1
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/router/tracking/step.py +66 -2
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/router/tracking/tracker.py +128 -7
- hackagent-0.11.0/hackagent/router/tracking_logger.py +246 -0
- hackagent-0.11.0/hackagent/router/types.py +123 -0
- hackagent-0.11.0/hackagent/server/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/models.py +2 -2
- hackagent-0.11.0/hackagent/server/dashboard/_analysis_data_mixin.py +716 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/dashboard/_components.py +2 -1
- hackagent-0.11.0/hackagent/server/dashboard/_constants.py +30 -0
- hackagent-0.11.0/hackagent/server/dashboard/_data_mixin.py +800 -0
- hackagent-0.11.0/hackagent/server/dashboard/_layout_mixin.py +832 -0
- hackagent-0.11.0/hackagent/server/dashboard/_page.py +258 -0
- hackagent-0.11.0/hackagent/server/dashboard/_reports_mixin.py +973 -0
- hackagent-0.11.0/hackagent/server/dashboard/_result_detail_mixin.py +799 -0
- hackagent-0.11.0/hackagent/server/dashboard/_run_history_results_mixin.py +1494 -0
- hackagent-0.11.0/hackagent/server/dashboard/_run_results_mixin.py +1284 -0
- hackagent-0.11.0/hackagent/server/dashboard/_runs_mixin.py +985 -0
- hackagent-0.11.0/hackagent/server/dashboard/_tap_trace_mixin.py +723 -0
- hackagent-0.11.0/hackagent/server/dashboard/_trace_analysis_mixin.py +576 -0
- hackagent-0.11.0/hackagent/server/dashboard/_trace_render_mixin.py +1295 -0
- hackagent-0.11.0/hackagent/server/dashboard/attack_cards/__init__.py +21 -0
- hackagent-0.11.0/hackagent/server/dashboard/attack_cards/_advprefix.py +505 -0
- hackagent-0.11.0/hackagent/server/dashboard/attack_cards/_autodan.py +503 -0
- hackagent-0.11.0/hackagent/server/dashboard/attack_cards/_bon.py +327 -0
- hackagent-0.11.0/hackagent/server/dashboard/attack_cards/_fc.py +268 -0
- hackagent-0.11.0/hackagent/server/dashboard/attack_cards/_generic.py +232 -0
- hackagent-0.11.0/hackagent/server/dashboard/attack_cards/_mml.py +245 -0
- hackagent-0.11.0/hackagent/server/dashboard/attack_cards/_pair.py +194 -0
- hackagent-0.11.0/hackagent/server/dashboard/attack_cards/_pap.py +244 -0
- hackagent-0.11.0/hackagent/server/dashboard/attack_cards/_shared.py +379 -0
- hackagent-0.11.0/hackagent/server/dashboard/attack_cards/_static_template.py +359 -0
- hackagent-0.11.0/hackagent/server/dashboard/attack_cards/_tap.py +404 -0
- hackagent-0.11.0/hackagent/server/dashboard/attack_cards/_tfc.py +209 -0
- hackagent-0.11.0/hackagent/server/storage/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/storage/base.py +9 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/storage/local.py +3 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/storage/remote.py +147 -35
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/utils.py +6 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/pyproject.toml +8 -6
- hackagent-0.10.1/hackagent/attacks/orchestrator.py +0 -916
- hackagent-0.10.1/hackagent/cli/commands/scan.py +0 -335
- hackagent-0.10.1/hackagent/cli/tui/actions_logger.py +0 -189
- hackagent-0.10.1/hackagent/cli/tui/views/dashboard.py +0 -352
- 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.11.0}/LICENSE +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/base.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/evaluator/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/evaluator/judge_evaluators.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/evaluator/pattern_evaluators.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/generator/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/generator/templates.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/objectives/base.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/objectives/harmful_behavior.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/objectives/jailbreak.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/objectives/policy_violation.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/shared/progress.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/shared/router_factory.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/shared/tui.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/shared/utils.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/techniques/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/techniques/advprefix/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/techniques/advprefix/generate.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/techniques/advprefix/utils.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/techniques/autodan_turbo/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/techniques/autodan_turbo/dashboard_tracing.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/techniques/autodan_turbo/evaluation.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/techniques/autodan_turbo/lifelong.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/techniques/autodan_turbo/log_styles.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/techniques/autodan_turbo/strategy_library.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/techniques/autodan_turbo/summarizer.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/techniques/autodan_turbo/warm_up.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/techniques/bon/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/techniques/bon/attack.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/techniques/bon/config.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/techniques/cipherchat/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/techniques/cipherchat/attack.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/techniques/cipherchat/config.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/techniques/cipherchat/encode_experts.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/techniques/cipherchat/prompts_and_demonstrations.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/techniques/flipattack/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/techniques/flipattack/attack.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/techniques/flipattack/config.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/techniques/h4rm3l/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/techniques/h4rm3l/config.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/techniques/pair/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/techniques/pair/evaluation.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/techniques/pap/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/techniques/pap/attack.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/techniques/pap/config.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/techniques/pap/taxonomy.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/techniques/tap/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/attacks/techniques/tap/config.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/cli/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/cli/commands/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/cli/commands/agent.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/cli/commands/config.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/cli/commands/examples.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/cli/commands/results.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/cli/config.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/cli/tui/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/cli/tui/base.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/cli/tui/views/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/cli/tui/views/agents.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/cli/tui/views/config.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/cli/tui/views/results.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/cli/tui/widgets/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/datasets/base.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/datasets/presets.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/datasets/providers/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/datasets/providers/file.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/datasets/providers/huggingface.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/datasets/registry.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/errors.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/examples/google_adk/jailbreak_eval/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/examples/google_adk/jailbreak_eval/agent.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/examples/google_adk/multi_tool_agent/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/examples/google_adk/multi_tool_agent/agent.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/examples/google_adk/multi_tool_agent/hack.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/examples/langchain/rag/agent_server.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/examples/langchain/rag/hack.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/examples/langchain/rag/ingest.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/examples/langchain/rag/policies.pdf +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/examples/langchain/rag/read_db.py +0 -0
- {hackagent-0.10.1/hackagent/server → hackagent-0.11.0/hackagent/examples/litellm_multi_provider}/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/examples/ollama/demo.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/examples/ollama/hack.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/examples/ollama/local.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/examples/openai_sdk/multi_judge/README.md +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/examples/openai_sdk/multi_judge/run_flipattack_multi_judge.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/examples/openai_sdk/pc_tool_sandbox/README.md +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/examples/openai_sdk/pc_tool_sandbox/agent.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/examples/openai_sdk/pc_tool_sandbox/confidential/db_credentials.txt +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/examples/openai_sdk/pc_tool_sandbox/hack.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/examples/openai_sdk/quick_evaluation/README.md +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/examples/openai_sdk/quick_evaluation/run_h4rm3l.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/examples/openai_sdk/rag/README.md +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/examples/openai_sdk/rag/agent_server.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/examples/openai_sdk/rag/hack.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/examples/openai_sdk/rag/ingest.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/examples/openai_sdk/rag/policies.pdf +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/examples/vllm/hack.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/logger.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/risks/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/risks/base.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/risks/craft_adversarial_data/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/risks/craft_adversarial_data/types.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/risks/craft_adversarial_data/vulnerabilities.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/risks/credential_exposure/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/risks/credential_exposure/types.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/risks/credential_exposure/vulnerabilities.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/risks/excessive_agency/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/risks/excessive_agency/types.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/risks/excessive_agency/vulnerabilities.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/risks/input_manipulation_attack/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/risks/input_manipulation_attack/profile.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/risks/input_manipulation_attack/types.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/risks/input_manipulation_attack/vulnerabilities.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/risks/jailbreak/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/risks/jailbreak/profile.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/risks/jailbreak/types.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/risks/jailbreak/vulnerabilities.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/risks/malicious_tool_invocation/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/risks/malicious_tool_invocation/types.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/risks/malicious_tool_invocation/vulnerabilities.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/risks/misinformation/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/risks/misinformation/types.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/risks/misinformation/vulnerabilities.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/risks/model_evasion/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/risks/model_evasion/profile.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/risks/model_evasion/types.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/risks/model_evasion/vulnerabilities.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/risks/profile_types.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/risks/prompt_injection/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/risks/prompt_injection/profile.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/risks/prompt_injection/templates.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/risks/prompt_injection/types.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/risks/prompt_injection/vulnerabilities.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/risks/public_facing_application_exploitation/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/risks/public_facing_application_exploitation/types.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/risks/public_facing_application_exploitation/vulnerabilities.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/risks/registry.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/risks/sensitive_information_disclosure/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/risks/sensitive_information_disclosure/profile.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/risks/sensitive_information_disclosure/types.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/risks/sensitive_information_disclosure/vulnerabilities.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/risks/system_prompt_leakage/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/risks/system_prompt_leakage/profile.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/risks/system_prompt_leakage/types.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/risks/system_prompt_leakage/vulnerabilities.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/risks/utils.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/risks/vector_embedding_weaknesses_exploit/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/risks/vector_embedding_weaknesses_exploit/types.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/risks/vector_embedding_weaknesses_exploit/vulnerabilities.py +0 -0
- {hackagent-0.10.1/hackagent/server/storage → hackagent-0.11.0/hackagent/router/providers}/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/router/tracking/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/router/tracking/decorators.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/router/tracking/utils.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/agent/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/agent/agent_create.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/agent/agent_destroy.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/agent/agent_list.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/agent/agent_partial_update.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/agent/agent_retrieve.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/agent/agent_update.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/apilogs/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/apilogs/apilogs_list.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/apilogs/apilogs_retrieve.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/apilogs/apilogs_summary_retrieve.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/attack/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/attack/attack_create.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/attack/attack_destroy.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/attack/attack_list.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/attack/attack_partial_update.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/attack/attack_retrieve.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/attack/attack_update.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/checkout/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/checkout/checkout_create.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/generate/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/generate/v1_chat_completions_create.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/judge/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/judge/judge_create.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/key/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/key/key_context_retrieve.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/key/key_create.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/key/key_destroy.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/key/key_list.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/key/key_retrieve.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/organization/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/organization/organization_create.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/organization/organization_destroy.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/organization/organization_list.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/organization/organization_me_retrieve.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/organization/organization_partial_update.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/organization/organization_retrieve.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/organization/organization_update.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/result/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/result/result_create.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/result/result_destroy.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/result/result_list.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/result/result_partial_update.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/result/result_retrieve.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/result/result_trace_create.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/result/result_update.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/run/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/run/run_create.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/run/run_destroy.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/run/run_list.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/run/run_partial_update.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/run/run_result_create.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/run/run_retrieve.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/run/run_run_tests_create.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/run/run_update.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/scripts/generate.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/scripts/generate.sh +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/scripts/openapi-python-client.yaml +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/user/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/user/user_create.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/user/user_destroy.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/user/user_list.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/user/user_me_retrieve.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/user/user_me_update.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/user/user_partial_update.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/user/user_retrieve.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/api/user/user_update.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/client.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/dashboard/__init__.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/dashboard/_api.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/dashboard/_helpers.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/dashboard/app.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/dashboard/templates/index.html +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/errors.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/storage/enums.py +0 -0
- {hackagent-0.10.1 → hackagent-0.11.0}/hackagent/server/types.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: hackagent
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.11.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
|
|
@@ -22,10 +22,11 @@ Requires-Dist: httpx>=0.27.0
|
|
|
22
22
|
Requires-Dist: litellm>=1.69.2
|
|
23
23
|
Requires-Dist: nicegui>=2.0
|
|
24
24
|
Requires-Dist: openai>=1.0.0
|
|
25
|
+
Requires-Dist: pillow>=10.0.0
|
|
26
|
+
Requires-Dist: playwright>=1.40
|
|
25
27
|
Requires-Dist: pydantic[email]>=2.0
|
|
26
28
|
Requires-Dist: python-dateutil>=2.8.0
|
|
27
29
|
Requires-Dist: pyyaml>=6.0.0
|
|
28
|
-
Requires-Dist: requests>=2.31.0
|
|
29
30
|
Requires-Dist: rich>=14.0.0
|
|
30
31
|
Requires-Dist: textual>=1.0.0
|
|
31
32
|
Description-Content-Type: text/markdown
|
|
@@ -41,6 +42,10 @@ Description-Content-Type: text/markdown
|
|
|
41
42
|
|
|
42
43
|
[App](https://app.hackagent.dev/) -- [Docs](https://docs.hackagent.dev/) -- [API](https://api.hackagent.dev/schema/redoc)
|
|
43
44
|
|
|
45
|
+
[](SECURITY.md)
|
|
46
|
+
|
|
47
|
+
<br>
|
|
48
|
+
|
|
44
49
|
<br>
|
|
45
50
|
|
|
46
51
|

|
|
@@ -95,7 +100,7 @@ HackAgent uses a modular pipeline to test agent robustness end-to-end.
|
|
|
95
100
|
|
|
96
101
|
| Component | Description |
|
|
97
102
|
|-----------|-------------|
|
|
98
|
-
| **Attack Engine** | Orchestrates attacks using AdvPrefix, AutoDAN-Turbo, PAIR, TAP, FlipAttack, BoN, h4rm3l, CipherChat, PAP, and
|
|
103
|
+
| **Attack Engine** | Orchestrates attacks using AdvPrefix, AutoDAN-Turbo, PAIR, TAP, FlipAttack, BoN, h4rm3l, CipherChat, PAP, and Static Template |
|
|
99
104
|
| **Generator** | LLM role that creates adversarial prompts to test the target agent |
|
|
100
105
|
| **Judge** | LLM role that evaluates whether attacks bypass safety measures |
|
|
101
106
|
| **Target Agent** | Your AI agent under test across supported frameworks |
|
|
@@ -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
|

|
|
@@ -63,7 +67,7 @@ HackAgent uses a modular pipeline to test agent robustness end-to-end.
|
|
|
63
67
|
|
|
64
68
|
| Component | Description |
|
|
65
69
|
|-----------|-------------|
|
|
66
|
-
| **Attack Engine** | Orchestrates attacks using AdvPrefix, AutoDAN-Turbo, PAIR, TAP, FlipAttack, BoN, h4rm3l, CipherChat, PAP, and
|
|
70
|
+
| **Attack Engine** | Orchestrates attacks using AdvPrefix, AutoDAN-Turbo, PAIR, TAP, FlipAttack, BoN, h4rm3l, CipherChat, PAP, and Static Template |
|
|
67
71
|
| **Generator** | LLM role that creates adversarial prompts to test the target agent |
|
|
68
72
|
| **Judge** | LLM role that evaluates whether attacks bypass safety measures |
|
|
69
73
|
| **Target Agent** | Your AI agent under test across supported frameworks |
|
|
@@ -67,6 +67,8 @@ class HackAgent:
|
|
|
67
67
|
target_config: Optional[Dict[str, Any]] = None,
|
|
68
68
|
adapter_operational_config: Optional[Dict[str, Any]] = None,
|
|
69
69
|
thinking: Optional[bool] = None,
|
|
70
|
+
before_guardrail: Optional[Dict[str, Any]] = None,
|
|
71
|
+
after_guardrail: Optional[Dict[str, Any]] = None,
|
|
70
72
|
):
|
|
71
73
|
"""
|
|
72
74
|
Initializes the HackAgent client and prepares it for interaction.
|
|
@@ -175,6 +177,22 @@ class HackAgent:
|
|
|
175
177
|
adapter_operational_config=router_operational_config,
|
|
176
178
|
)
|
|
177
179
|
|
|
180
|
+
# Wire guardrails onto the router once — they apply transparently to
|
|
181
|
+
# every route_request call for all attacks on this target.
|
|
182
|
+
if before_guardrail or after_guardrail:
|
|
183
|
+
from hackagent.attacks.shared.guardrail import create_guardrail_from_config
|
|
184
|
+
|
|
185
|
+
if before_guardrail:
|
|
186
|
+
self.router.before_guardrail = create_guardrail_from_config(
|
|
187
|
+
before_guardrail, self.backend
|
|
188
|
+
)
|
|
189
|
+
logger.info("before_guardrail active on target router.")
|
|
190
|
+
if after_guardrail:
|
|
191
|
+
self.router.after_guardrail = create_guardrail_from_config(
|
|
192
|
+
after_guardrail, self.backend
|
|
193
|
+
)
|
|
194
|
+
logger.info("after_guardrail active on target router.")
|
|
195
|
+
|
|
178
196
|
# Attack strategies are lazy-loaded to improve startup time
|
|
179
197
|
self._attack_strategies: Optional[Dict[str, Any]] = None
|
|
180
198
|
|
|
@@ -187,26 +205,36 @@ class HackAgent:
|
|
|
187
205
|
AdvPrefixOrchestrator,
|
|
188
206
|
AutoDANTurboOrchestrator,
|
|
189
207
|
BaselineOrchestrator,
|
|
208
|
+
StaticTemplateOrchestrator,
|
|
190
209
|
BoNOrchestrator,
|
|
191
210
|
CipherChatOrchestrator,
|
|
211
|
+
FCOrchestrator,
|
|
212
|
+
tFCOrchestrator,
|
|
192
213
|
H4rm3lOrchestrator,
|
|
214
|
+
RagOrchestrator,
|
|
193
215
|
PAPOrchestrator,
|
|
194
216
|
PAIROrchestrator,
|
|
195
217
|
FlipAttackOrchestrator,
|
|
196
218
|
TAPOrchestrator,
|
|
219
|
+
MMLOrchestrator,
|
|
197
220
|
)
|
|
198
221
|
|
|
199
222
|
self._attack_strategies = {
|
|
200
223
|
"advprefix": AdvPrefixOrchestrator(hackagent_agent=self),
|
|
201
224
|
"autodan_turbo": AutoDANTurboOrchestrator(hackagent_agent=self),
|
|
202
225
|
"baseline": BaselineOrchestrator(hackagent_agent=self),
|
|
226
|
+
"static_template": StaticTemplateOrchestrator(hackagent_agent=self),
|
|
203
227
|
"bon": BoNOrchestrator(hackagent_agent=self),
|
|
204
228
|
"cipherchat": CipherChatOrchestrator(hackagent_agent=self),
|
|
229
|
+
"fc": FCOrchestrator(hackagent_agent=self),
|
|
230
|
+
"tfc": tFCOrchestrator(hackagent_agent=self),
|
|
205
231
|
"pair": PAIROrchestrator(hackagent_agent=self),
|
|
206
232
|
"flipattack": FlipAttackOrchestrator(hackagent_agent=self),
|
|
207
233
|
"tap": TAPOrchestrator(hackagent_agent=self),
|
|
208
234
|
"h4rm3l": H4rm3lOrchestrator(hackagent_agent=self),
|
|
209
235
|
"pap": PAPOrchestrator(hackagent_agent=self),
|
|
236
|
+
"rag": RagOrchestrator(hackagent_agent=self),
|
|
237
|
+
"mml": MMLOrchestrator(hackagent_agent=self),
|
|
210
238
|
}
|
|
211
239
|
return self._attack_strategies
|
|
212
240
|
|
|
@@ -215,8 +243,7 @@ class HackAgent:
|
|
|
215
243
|
attack_config: Dict[str, Any],
|
|
216
244
|
run_config_override: Optional[Dict[str, Any]] = None,
|
|
217
245
|
fail_on_run_error: bool = True,
|
|
218
|
-
|
|
219
|
-
_tui_log_callback: Optional[Any] = None,
|
|
246
|
+
_tui_event_bus: Optional[Any] = None,
|
|
220
247
|
) -> Any:
|
|
221
248
|
"""
|
|
222
249
|
Executes a specified attack strategy against the configured victim agent.
|
|
@@ -273,8 +300,7 @@ class HackAgent:
|
|
|
273
300
|
attack_config=attack_config,
|
|
274
301
|
run_config_override=run_config_override,
|
|
275
302
|
fail_on_run_error=fail_on_run_error,
|
|
276
|
-
|
|
277
|
-
_tui_log_callback=_tui_log_callback,
|
|
303
|
+
_tui_event_bus=_tui_event_bus,
|
|
278
304
|
)
|
|
279
305
|
|
|
280
306
|
except HackAgentError:
|
|
@@ -14,7 +14,7 @@ Architecture:
|
|
|
14
14
|
- objectives/: Define WHAT vulnerability we test (metadata/config)
|
|
15
15
|
- techniques/: Define HOW we generate attacks (implementation)
|
|
16
16
|
- advprefix/: Prefix optimization technique
|
|
17
|
-
-
|
|
17
|
+
- static_template/: Static template prompt injection
|
|
18
18
|
- pair/: LLM-driven iterative refinement
|
|
19
19
|
- shared/: Cross-cutting infrastructure (progress, response utils,
|
|
20
20
|
router factory, TUI) — legacy evaluator/generator shims re-export
|
|
@@ -24,7 +24,7 @@ Architecture:
|
|
|
24
24
|
|
|
25
25
|
Available attacks:
|
|
26
26
|
- AdvPrefixOrchestrator: Adversarial prefix generation orchestrator
|
|
27
|
-
-
|
|
27
|
+
- StaticTemplateOrchestrator: Static template prompt injection orchestrator
|
|
28
28
|
- PAIROrchestrator: Prompt Automatic Iterative Refinement orchestrator
|
|
29
29
|
|
|
30
30
|
The module integrates with the HackAgent backend for result tracking and reporting.
|
|
@@ -35,6 +35,7 @@ from .registry import (
|
|
|
35
35
|
AdvPrefixOrchestrator,
|
|
36
36
|
AutoDANTurboOrchestrator,
|
|
37
37
|
BaselineOrchestrator,
|
|
38
|
+
StaticTemplateOrchestrator,
|
|
38
39
|
CipherChatOrchestrator,
|
|
39
40
|
PAIROrchestrator,
|
|
40
41
|
FlipAttackOrchestrator,
|
|
@@ -46,6 +47,7 @@ __all__ = [
|
|
|
46
47
|
"AdvPrefixOrchestrator",
|
|
47
48
|
"AutoDANTurboOrchestrator",
|
|
48
49
|
"BaselineOrchestrator",
|
|
50
|
+
"StaticTemplateOrchestrator",
|
|
49
51
|
"CipherChatOrchestrator",
|
|
50
52
|
"PAIROrchestrator",
|
|
51
53
|
"FlipAttackOrchestrator",
|
|
@@ -321,12 +321,15 @@ class BaseJudgeEvaluator(ABC):
|
|
|
321
321
|
|
|
322
322
|
# Process via judge
|
|
323
323
|
if rows_to_process:
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
324
|
+
(
|
|
325
|
+
results_eval,
|
|
326
|
+
results_expl,
|
|
327
|
+
processed_indices,
|
|
328
|
+
raw_judge_responses,
|
|
329
|
+
) = self._process_rows_with_router(
|
|
330
|
+
rows_to_process,
|
|
331
|
+
f"[cyan]Evaluating responses ({self.__class__.__name__})...",
|
|
332
|
+
include_raw_responses=True,
|
|
330
333
|
)
|
|
331
334
|
|
|
332
335
|
# Map results back by original index
|
|
@@ -445,13 +448,15 @@ class BaseJudgeEvaluator(ABC):
|
|
|
445
448
|
request_data = None
|
|
446
449
|
try:
|
|
447
450
|
request_data = self._get_request_data_for_row(row)
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
451
|
+
(
|
|
452
|
+
current_eval,
|
|
453
|
+
current_expl,
|
|
454
|
+
current_raw_response,
|
|
455
|
+
) = self._request_with_assertions(
|
|
456
|
+
request_data=request_data,
|
|
457
|
+
original_index=original_index,
|
|
458
|
+
max_retries=max_retries,
|
|
459
|
+
include_raw_response=True,
|
|
455
460
|
)
|
|
456
461
|
except Exception as e:
|
|
457
462
|
current_expl = (
|