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.
Files changed (483) hide show
  1. {hackagent-0.10.1 → hackagent-0.12.0}/.gitignore +11 -1
  2. {hackagent-0.10.1 → hackagent-0.12.0}/PKG-INFO +31 -4
  3. {hackagent-0.10.1 → hackagent-0.12.0}/README.md +27 -2
  4. hackagent-0.12.0/hackagent/_version.py +21 -0
  5. hackagent-0.12.0/hackagent/agent.py +564 -0
  6. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/__init__.py +4 -2
  7. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/base.py +5 -8
  8. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/evaluator/__init__.py +5 -0
  9. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/evaluator/base.py +32 -14
  10. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/evaluator/evaluation_step.py +685 -118
  11. hackagent-0.12.0/hackagent/attacks/evaluator/inline_step_judge.py +207 -0
  12. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/evaluator/judge_evaluators.py +194 -5
  13. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/evaluator/metrics.py +44 -9
  14. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/evaluator/sync.py +12 -5
  15. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/objectives/__init__.py +2 -0
  16. hackagent-0.12.0/hackagent/attacks/objectives/rag.py +55 -0
  17. hackagent-0.12.0/hackagent/attacks/orchestrator.py +2174 -0
  18. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/registry.py +25 -4
  19. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/shared/__init__.py +10 -0
  20. hackagent-0.12.0/hackagent/attacks/shared/guardrail.py +256 -0
  21. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/shared/prompt_parser.py +12 -6
  22. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/shared/response_utils.py +34 -2
  23. hackagent-0.12.0/hackagent/attacks/shared/translation.py +144 -0
  24. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/advprefix/attack.py +6 -3
  25. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/advprefix/completions.py +32 -6
  26. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/advprefix/config.py +9 -4
  27. hackagent-0.10.1/hackagent/attacks/techniques/advprefix/evaluation.py → hackagent-0.12.0/hackagent/attacks/techniques/advprefix/eval_pipeline.py +6 -0
  28. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/autodan_turbo/attack.py +56 -13
  29. 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
  30. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/autodan_turbo/config.py +26 -9
  31. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/autodan_turbo/core.py +20 -3
  32. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/autodan_turbo/lifelong.py +14 -3
  33. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/autodan_turbo/warm_up.py +14 -3
  34. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/base.py +55 -4
  35. hackagent-0.12.0/hackagent/attacks/techniques/baseline/__init__.py +13 -0
  36. hackagent-0.12.0/hackagent/attacks/techniques/baseline/attack.py +199 -0
  37. hackagent-0.12.0/hackagent/attacks/techniques/baseline/config.py +16 -0
  38. hackagent-0.12.0/hackagent/attacks/techniques/baseline/generation.py +183 -0
  39. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/bon/attack.py +8 -4
  40. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/bon/generation.py +36 -149
  41. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/cipherchat/attack.py +14 -4
  42. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/cipherchat/generation.py +13 -4
  43. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/config.py +69 -15
  44. hackagent-0.12.0/hackagent/attacks/techniques/fc/__init__.py +19 -0
  45. hackagent-0.12.0/hackagent/attacks/techniques/fc/attack.py +479 -0
  46. hackagent-0.12.0/hackagent/attacks/techniques/fc/config.py +190 -0
  47. hackagent-0.12.0/hackagent/attacks/techniques/fc/flowchart_renderer.py +1235 -0
  48. hackagent-0.12.0/hackagent/attacks/techniques/fc/generation.py +606 -0
  49. hackagent-0.12.0/hackagent/attacks/techniques/fc/prompts.py +84 -0
  50. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/flipattack/attack.py +10 -4
  51. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/flipattack/generation.py +20 -6
  52. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/h4rm3l/attack.py +107 -21
  53. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/h4rm3l/decorators.py +21 -0
  54. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/h4rm3l/generation.py +27 -19
  55. hackagent-0.12.0/hackagent/attacks/techniques/indirect_prompt_injection/attack.py +1402 -0
  56. hackagent-0.12.0/hackagent/attacks/techniques/indirect_prompt_injection/config.py +215 -0
  57. hackagent-0.12.0/hackagent/attacks/techniques/mml/__init__.py +18 -0
  58. hackagent-0.12.0/hackagent/attacks/techniques/mml/attack.py +345 -0
  59. hackagent-0.12.0/hackagent/attacks/techniques/mml/config.py +115 -0
  60. hackagent-0.12.0/hackagent/attacks/techniques/mml/generation.py +288 -0
  61. hackagent-0.12.0/hackagent/attacks/techniques/mml/image_encoder.py +461 -0
  62. hackagent-0.12.0/hackagent/attacks/techniques/mml/prompts.py +434 -0
  63. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/pair/attack.py +561 -251
  64. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/pair/config.py +33 -7
  65. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/pap/attack.py +8 -4
  66. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/pap/generation.py +35 -139
  67. hackagent-0.12.0/hackagent/attacks/techniques/rag/__init__.py +6 -0
  68. hackagent-0.12.0/hackagent/attacks/techniques/rag/attack.py +1437 -0
  69. hackagent-0.12.0/hackagent/attacks/techniques/rag/config.py +214 -0
  70. hackagent-0.12.0/hackagent/attacks/techniques/rag/jailbreak.py +439 -0
  71. {hackagent-0.10.1/hackagent/attacks/techniques/baseline → hackagent-0.12.0/hackagent/attacks/techniques/static_template}/__init__.py +4 -4
  72. {hackagent-0.10.1/hackagent/attacks/techniques/baseline → hackagent-0.12.0/hackagent/attacks/techniques/static_template}/attack.py +65 -34
  73. {hackagent-0.10.1/hackagent/attacks/techniques/baseline → hackagent-0.12.0/hackagent/attacks/techniques/static_template}/config.py +5 -5
  74. {hackagent-0.10.1/hackagent/attacks/techniques/baseline → hackagent-0.12.0/hackagent/attacks/techniques/static_template}/generation.py +17 -9
  75. hackagent-0.10.1/hackagent/attacks/techniques/baseline/evaluation.py → hackagent-0.12.0/hackagent/attacks/techniques/static_template/static_eval.py +68 -153
  76. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/tap/attack.py +40 -3
  77. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/tap/generation.py +36 -11
  78. hackagent-0.10.1/hackagent/attacks/techniques/tap/evaluation.py → hackagent-0.12.0/hackagent/attacks/techniques/tap/tap_evaluation.py +16 -20
  79. hackagent-0.12.0/hackagent/attacks/types.py +190 -0
  80. hackagent-0.12.0/hackagent/cli/bootstrap.py +96 -0
  81. hackagent-0.12.0/hackagent/cli/commands/attack/__init__.py +66 -0
  82. hackagent-0.12.0/hackagent/cli/commands/attack/catalog.py +65 -0
  83. hackagent-0.12.0/hackagent/cli/commands/attack/chain.py +247 -0
  84. hackagent-0.12.0/hackagent/cli/commands/attack/config.py +109 -0
  85. hackagent-0.12.0/hackagent/cli/commands/attack/display.py +220 -0
  86. hackagent-0.12.0/hackagent/cli/commands/attack/group.py +119 -0
  87. hackagent-0.12.0/hackagent/cli/commands/attack/info.py +58 -0
  88. hackagent-0.12.0/hackagent/cli/commands/attack/options.py +82 -0
  89. hackagent-0.12.0/hackagent/cli/commands/attack/runner.py +175 -0
  90. hackagent-0.12.0/hackagent/cli/commands/attack/strategies.py +96 -0
  91. hackagent-0.12.0/hackagent/cli/commands/claude.py +288 -0
  92. hackagent-0.12.0/hackagent/cli/commands/codex.py +291 -0
  93. hackagent-0.12.0/hackagent/cli/commands/datasets.py +236 -0
  94. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/cli/commands/examples.py +159 -91
  95. hackagent-0.12.0/hackagent/cli/commands/scan/__init__.py +47 -0
  96. hackagent-0.12.0/hackagent/cli/commands/scan/command.py +448 -0
  97. hackagent-0.12.0/hackagent/cli/commands/scan/helpers.py +120 -0
  98. hackagent-0.10.1/hackagent/cli/commands/scan.py → hackagent-0.12.0/hackagent/cli/commands/scan/quick.py +6 -160
  99. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/cli/commands/web.py +31 -38
  100. hackagent-0.12.0/hackagent/cli/help_page.py +143 -0
  101. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/cli/main.py +114 -231
  102. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/cli/tui/app.py +115 -37
  103. hackagent-0.12.0/hackagent/cli/tui/attack_specs/__init__.py +49 -0
  104. hackagent-0.12.0/hackagent/cli/tui/attack_specs/registry.py +33 -0
  105. hackagent-0.12.0/hackagent/cli/tui/attack_specs/specs/__init__.py +55 -0
  106. hackagent-0.12.0/hackagent/cli/tui/attack_specs/specs/advprefix.py +197 -0
  107. hackagent-0.12.0/hackagent/cli/tui/attack_specs/specs/autodan_turbo.py +150 -0
  108. hackagent-0.12.0/hackagent/cli/tui/attack_specs/specs/baseline.py +104 -0
  109. hackagent-0.12.0/hackagent/cli/tui/attack_specs/specs/bon.py +131 -0
  110. hackagent-0.12.0/hackagent/cli/tui/attack_specs/specs/cipherchat.py +215 -0
  111. hackagent-0.12.0/hackagent/cli/tui/attack_specs/specs/fc.py +65 -0
  112. hackagent-0.12.0/hackagent/cli/tui/attack_specs/specs/flipattack.py +107 -0
  113. hackagent-0.12.0/hackagent/cli/tui/attack_specs/specs/h4rm3l.py +100 -0
  114. hackagent-0.12.0/hackagent/cli/tui/attack_specs/specs/mml.py +121 -0
  115. hackagent-0.12.0/hackagent/cli/tui/attack_specs/specs/pair.py +142 -0
  116. hackagent-0.12.0/hackagent/cli/tui/attack_specs/specs/pap.py +139 -0
  117. hackagent-0.12.0/hackagent/cli/tui/attack_specs/specs/static_template.py +146 -0
  118. hackagent-0.12.0/hackagent/cli/tui/attack_specs/specs/tap.py +119 -0
  119. hackagent-0.12.0/hackagent/cli/tui/attack_specs/specs/tfc.py +80 -0
  120. hackagent-0.12.0/hackagent/cli/tui/attack_specs/types.py +158 -0
  121. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/cli/tui/base.py +1 -1
  122. hackagent-0.12.0/hackagent/cli/tui/events.py +150 -0
  123. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/cli/tui/logger.py +8 -51
  124. hackagent-0.12.0/hackagent/cli/tui/theme.py +187 -0
  125. hackagent-0.12.0/hackagent/cli/tui/views/attacks/__init__.py +37 -0
  126. hackagent-0.12.0/hackagent/cli/tui/views/attacks/executor.py +429 -0
  127. hackagent-0.12.0/hackagent/cli/tui/views/attacks/form.py +509 -0
  128. hackagent-0.12.0/hackagent/cli/tui/views/attacks/helpers.py +89 -0
  129. hackagent-0.12.0/hackagent/cli/tui/views/attacks/layout.py +263 -0
  130. hackagent-0.12.0/hackagent/cli/tui/views/attacks/runner.py +286 -0
  131. hackagent-0.12.0/hackagent/cli/tui/views/attacks/tab.py +390 -0
  132. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/cli/tui/views/config.py +2 -3
  133. hackagent-0.12.0/hackagent/cli/tui/views/results/__init__.py +58 -0
  134. hackagent-0.12.0/hackagent/cli/tui/views/results/details.py +377 -0
  135. hackagent-0.12.0/hackagent/cli/tui/views/results/export.py +173 -0
  136. hackagent-0.12.0/hackagent/cli/tui/views/results/formatters/__init__.py +54 -0
  137. hackagent-0.12.0/hackagent/cli/tui/views/results/formatters/datetimes.py +39 -0
  138. hackagent-0.12.0/hackagent/cli/tui/views/results/formatters/http.py +365 -0
  139. hackagent-0.12.0/hackagent/cli/tui/views/results/formatters/run_report.py +183 -0
  140. hackagent-0.12.0/hackagent/cli/tui/views/results/formatters/summaries.py +297 -0
  141. hackagent-0.12.0/hackagent/cli/tui/views/results/formatters/text.py +113 -0
  142. hackagent-0.12.0/hackagent/cli/tui/views/results/formatters/traces.py +351 -0
  143. hackagent-0.12.0/hackagent/cli/tui/views/results/tab.py +400 -0
  144. hackagent-0.12.0/hackagent/cli/tui/views/results/table.py +212 -0
  145. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/cli/tui/widgets/actions.py +158 -0
  146. hackagent-0.12.0/hackagent/cli/tui/widgets/clipboard.py +127 -0
  147. hackagent-0.12.0/hackagent/cli/tui/widgets/logs.py +445 -0
  148. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/cli/utils.py +14 -0
  149. hackagent-0.12.0/hackagent/config.py +146 -0
  150. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/datasets/__init__.py +12 -0
  151. hackagent-0.12.0/hackagent/datasets/intents.py +349 -0
  152. hackagent-0.12.0/hackagent/datasets/omnisafebench/dataset.json +8153 -0
  153. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/datasets/presets.py +24 -2
  154. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/datasets/providers/__init__.py +2 -0
  155. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/datasets/providers/huggingface.py +23 -2
  156. hackagent-0.12.0/hackagent/datasets/providers/url_json.py +151 -0
  157. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/datasets/registry.py +131 -37
  158. hackagent-0.12.0/hackagent/examples/claude/README.md +118 -0
  159. hackagent-0.12.0/hackagent/examples/claude/hack_claude.py +86 -0
  160. hackagent-0.12.0/hackagent/examples/claude/hack_ollama.py +80 -0
  161. hackagent-0.12.0/hackagent/examples/codex/README.md +118 -0
  162. hackagent-0.12.0/hackagent/examples/codex/hack_codex.py +89 -0
  163. hackagent-0.12.0/hackagent/examples/codex/hack_ollama.py +77 -0
  164. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/examples/google_adk/jailbreak_eval/hack.py +3 -3
  165. hackagent-0.12.0/hackagent/examples/hermes/README.md +97 -0
  166. hackagent-0.12.0/hackagent/examples/hermes/hack_hermes.py +94 -0
  167. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/examples/langchain/rag/README.md +1 -1
  168. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/examples/langchain/rag/agent_client.py +6 -4
  169. hackagent-0.12.0/hackagent/examples/litellm_multi_provider/README.md +52 -0
  170. hackagent-0.12.0/hackagent/examples/litellm_multi_provider/demo.py +245 -0
  171. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/examples/ollama/demo.py +24 -30
  172. hackagent-0.12.0/hackagent/examples/openai_sdk/db_tool_sandbox/README.md +70 -0
  173. hackagent-0.12.0/hackagent/examples/openai_sdk/db_tool_sandbox/agent.py +494 -0
  174. hackagent-0.12.0/hackagent/examples/openai_sdk/db_tool_sandbox/hack.py +101 -0
  175. hackagent-0.12.0/hackagent/examples/openai_sdk/db_tool_sandbox/sandbox.db +0 -0
  176. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/examples/openai_sdk/rag/README.md +7 -15
  177. hackagent-0.12.0/hackagent/examples/rag/.gitignore +2 -0
  178. hackagent-0.12.0/hackagent/examples/rag/test_data/gender_studies_overview.txt +73 -0
  179. hackagent-0.12.0/hackagent/examples/rag/test_indirect_injection.py +196 -0
  180. hackagent-0.12.0/hackagent/examples/web/README.md +99 -0
  181. hackagent-0.12.0/hackagent/examples/web/hack.py +95 -0
  182. hackagent-0.12.0/hackagent/examples/web/plan.py +45 -0
  183. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/craft_adversarial_data/profile.py +2 -2
  184. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/credential_exposure/profile.py +2 -2
  185. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/excessive_agency/profile.py +2 -2
  186. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/malicious_tool_invocation/profile.py +2 -2
  187. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/misinformation/profile.py +2 -2
  188. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/profile_helpers.py +4 -4
  189. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/public_facing_application_exploitation/profile.py +2 -2
  190. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/vector_embedding_weaknesses_exploit/profile.py +2 -2
  191. hackagent-0.12.0/hackagent/router/__init__.py +32 -0
  192. hackagent-0.12.0/hackagent/router/_chat_registration.py +192 -0
  193. hackagent-0.10.1/hackagent/router/adapters/base.py → hackagent-0.12.0/hackagent/router/agent.py +45 -96
  194. hackagent-0.12.0/hackagent/router/discovery/__init__.py +53 -0
  195. hackagent-0.12.0/hackagent/router/discovery/browser.py +350 -0
  196. hackagent-0.12.0/hackagent/router/discovery/scanner.py +483 -0
  197. hackagent-0.12.0/hackagent/router/envelope.py +344 -0
  198. hackagent-0.12.0/hackagent/router/provider_config.py +153 -0
  199. hackagent-0.12.0/hackagent/router/providers/adk.py +540 -0
  200. hackagent-0.12.0/hackagent/router/providers/claude.py +509 -0
  201. hackagent-0.12.0/hackagent/router/providers/codex.py +633 -0
  202. hackagent-0.12.0/hackagent/router/providers/hermes.py +482 -0
  203. hackagent-0.12.0/hackagent/router/providers/web.py +898 -0
  204. hackagent-0.12.0/hackagent/router/router.py +818 -0
  205. hackagent-0.12.0/hackagent/router/tracking/audit.py +72 -0
  206. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/router/tracking/category_classifier.py +144 -4
  207. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/router/tracking/context.py +3 -0
  208. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/router/tracking/coordinator.py +132 -4
  209. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/router/tracking/decorators.py +25 -12
  210. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/router/tracking/step.py +102 -3
  211. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/router/tracking/tracker.py +195 -44
  212. hackagent-0.12.0/hackagent/router/tracking_logger.py +246 -0
  213. hackagent-0.12.0/hackagent/router/types.py +138 -0
  214. hackagent-0.12.0/hackagent/server/__init__.py +0 -0
  215. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/models.py +2 -2
  216. hackagent-0.12.0/hackagent/server/dashboard/_analysis_data_mixin.py +716 -0
  217. hackagent-0.12.0/hackagent/server/dashboard/_attack_builder_mixin.py +558 -0
  218. hackagent-0.12.0/hackagent/server/dashboard/_builder_config.py +271 -0
  219. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/dashboard/_components.py +2 -1
  220. hackagent-0.12.0/hackagent/server/dashboard/_constants.py +22 -0
  221. hackagent-0.12.0/hackagent/server/dashboard/_data_mixin.py +802 -0
  222. hackagent-0.12.0/hackagent/server/dashboard/_layout_mixin.py +846 -0
  223. hackagent-0.12.0/hackagent/server/dashboard/_page.py +279 -0
  224. hackagent-0.12.0/hackagent/server/dashboard/_reports_mixin.py +991 -0
  225. hackagent-0.12.0/hackagent/server/dashboard/_result_detail_mixin.py +808 -0
  226. hackagent-0.12.0/hackagent/server/dashboard/_run_history_results_mixin.py +1494 -0
  227. hackagent-0.12.0/hackagent/server/dashboard/_run_results_mixin.py +1284 -0
  228. hackagent-0.12.0/hackagent/server/dashboard/_runs_mixin.py +991 -0
  229. hackagent-0.12.0/hackagent/server/dashboard/_tap_trace_mixin.py +723 -0
  230. hackagent-0.12.0/hackagent/server/dashboard/_trace_analysis_mixin.py +576 -0
  231. hackagent-0.12.0/hackagent/server/dashboard/_trace_render_mixin.py +1295 -0
  232. hackagent-0.12.0/hackagent/server/dashboard/attack_cards/__init__.py +21 -0
  233. hackagent-0.12.0/hackagent/server/dashboard/attack_cards/_advprefix.py +496 -0
  234. hackagent-0.12.0/hackagent/server/dashboard/attack_cards/_autodan.py +503 -0
  235. hackagent-0.12.0/hackagent/server/dashboard/attack_cards/_bon.py +318 -0
  236. hackagent-0.12.0/hackagent/server/dashboard/attack_cards/_fc.py +268 -0
  237. hackagent-0.12.0/hackagent/server/dashboard/attack_cards/_generic.py +176 -0
  238. hackagent-0.12.0/hackagent/server/dashboard/attack_cards/_mml.py +245 -0
  239. hackagent-0.12.0/hackagent/server/dashboard/attack_cards/_pair.py +284 -0
  240. hackagent-0.12.0/hackagent/server/dashboard/attack_cards/_pap.py +235 -0
  241. hackagent-0.12.0/hackagent/server/dashboard/attack_cards/_shared.py +496 -0
  242. hackagent-0.12.0/hackagent/server/dashboard/attack_cards/_static_template.py +350 -0
  243. hackagent-0.12.0/hackagent/server/dashboard/attack_cards/_tap.py +404 -0
  244. hackagent-0.12.0/hackagent/server/dashboard/attack_cards/_tfc.py +209 -0
  245. hackagent-0.12.0/hackagent/server/storage/__init__.py +0 -0
  246. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/storage/base.py +9 -0
  247. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/storage/local.py +97 -1
  248. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/storage/remote.py +156 -47
  249. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/utils.py +6 -0
  250. {hackagent-0.10.1 → hackagent-0.12.0}/pyproject.toml +24 -9
  251. hackagent-0.10.1/hackagent/agent.py +0 -296
  252. hackagent-0.10.1/hackagent/attacks/orchestrator.py +0 -916
  253. hackagent-0.10.1/hackagent/attacks/techniques/bon/evaluation.py +0 -176
  254. hackagent-0.10.1/hackagent/attacks/techniques/cipherchat/evaluation.py +0 -108
  255. hackagent-0.10.1/hackagent/attacks/techniques/flipattack/evaluation.py +0 -233
  256. hackagent-0.10.1/hackagent/attacks/techniques/h4rm3l/evaluation.py +0 -185
  257. hackagent-0.10.1/hackagent/attacks/techniques/pair/evaluation.py +0 -90
  258. hackagent-0.10.1/hackagent/attacks/techniques/pap/evaluation.py +0 -105
  259. hackagent-0.10.1/hackagent/cli/commands/attack.py +0 -884
  260. hackagent-0.10.1/hackagent/cli/tui/actions_logger.py +0 -189
  261. hackagent-0.10.1/hackagent/cli/tui/attack_specs.py +0 -1380
  262. hackagent-0.10.1/hackagent/cli/tui/views/attacks.py +0 -1261
  263. hackagent-0.10.1/hackagent/cli/tui/views/dashboard.py +0 -352
  264. hackagent-0.10.1/hackagent/cli/tui/views/results.py +0 -2479
  265. hackagent-0.10.1/hackagent/cli/tui/widgets/logs.py +0 -400
  266. hackagent-0.10.1/hackagent/router/__init__.py +0 -20
  267. hackagent-0.10.1/hackagent/router/adapters/__init__.py +0 -46
  268. hackagent-0.10.1/hackagent/router/adapters/google_adk.py +0 -671
  269. hackagent-0.10.1/hackagent/router/adapters/litellm.py +0 -434
  270. hackagent-0.10.1/hackagent/router/adapters/ollama.py +0 -522
  271. hackagent-0.10.1/hackagent/router/adapters/openai.py +0 -500
  272. hackagent-0.10.1/hackagent/router/router.py +0 -460
  273. hackagent-0.10.1/hackagent/router/types.py +0 -80
  274. hackagent-0.10.1/hackagent/server/dashboard/_page.py +0 -6535
  275. {hackagent-0.10.1 → hackagent-0.12.0}/LICENSE +0 -0
  276. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/__init__.py +0 -0
  277. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/evaluator/pattern_evaluators.py +0 -0
  278. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/generator/__init__.py +0 -0
  279. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/generator/templates.py +0 -0
  280. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/objectives/base.py +0 -0
  281. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/objectives/harmful_behavior.py +0 -0
  282. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/objectives/jailbreak.py +0 -0
  283. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/objectives/policy_violation.py +0 -0
  284. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/shared/progress.py +0 -0
  285. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/shared/router_factory.py +0 -0
  286. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/shared/tui.py +0 -0
  287. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/shared/utils.py +0 -0
  288. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/__init__.py +0 -0
  289. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/advprefix/__init__.py +0 -0
  290. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/advprefix/generate.py +0 -0
  291. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/advprefix/utils.py +0 -0
  292. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/autodan_turbo/__init__.py +0 -0
  293. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/autodan_turbo/dashboard_tracing.py +0 -0
  294. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/autodan_turbo/log_styles.py +0 -0
  295. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/autodan_turbo/strategy_library.py +0 -0
  296. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/autodan_turbo/summarizer.py +0 -0
  297. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/bon/__init__.py +0 -0
  298. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/bon/config.py +0 -0
  299. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/cipherchat/__init__.py +0 -0
  300. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/cipherchat/config.py +0 -0
  301. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/cipherchat/encode_experts.py +0 -0
  302. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/cipherchat/prompts_and_demonstrations.py +0 -0
  303. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/flipattack/__init__.py +0 -0
  304. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/flipattack/config.py +0 -0
  305. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/h4rm3l/__init__.py +0 -0
  306. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/h4rm3l/config.py +0 -0
  307. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/pair/__init__.py +0 -0
  308. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/pap/__init__.py +0 -0
  309. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/pap/config.py +0 -0
  310. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/pap/taxonomy.py +0 -0
  311. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/tap/__init__.py +0 -0
  312. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/attacks/techniques/tap/config.py +0 -0
  313. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/cli/__init__.py +0 -0
  314. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/cli/commands/__init__.py +0 -0
  315. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/cli/commands/agent.py +0 -0
  316. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/cli/commands/config.py +0 -0
  317. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/cli/commands/results.py +0 -0
  318. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/cli/config.py +0 -0
  319. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/cli/tui/__init__.py +0 -0
  320. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/cli/tui/views/__init__.py +0 -0
  321. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/cli/tui/views/agents.py +0 -0
  322. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/cli/tui/widgets/__init__.py +0 -0
  323. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/datasets/base.py +0 -0
  324. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/datasets/providers/file.py +0 -0
  325. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/errors.py +0 -0
  326. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/examples/google_adk/jailbreak_eval/__init__.py +0 -0
  327. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/examples/google_adk/jailbreak_eval/agent.py +0 -0
  328. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/examples/google_adk/multi_tool_agent/__init__.py +0 -0
  329. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/examples/google_adk/multi_tool_agent/agent.py +0 -0
  330. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/examples/google_adk/multi_tool_agent/hack.py +0 -0
  331. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/examples/langchain/rag/agent_server.py +0 -0
  332. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/examples/langchain/rag/hack.py +0 -0
  333. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/examples/langchain/rag/ingest.py +0 -0
  334. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/examples/langchain/rag/policies.pdf +0 -0
  335. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/examples/langchain/rag/read_db.py +0 -0
  336. {hackagent-0.10.1/hackagent/server → hackagent-0.12.0/hackagent/examples/litellm_multi_provider}/__init__.py +0 -0
  337. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/examples/ollama/hack.py +0 -0
  338. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/examples/ollama/local.py +0 -0
  339. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/examples/openai_sdk/multi_judge/README.md +0 -0
  340. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/examples/openai_sdk/multi_judge/run_flipattack_multi_judge.py +0 -0
  341. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/examples/openai_sdk/pc_tool_sandbox/README.md +0 -0
  342. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/examples/openai_sdk/pc_tool_sandbox/agent.py +0 -0
  343. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/examples/openai_sdk/pc_tool_sandbox/confidential/db_credentials.txt +0 -0
  344. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/examples/openai_sdk/pc_tool_sandbox/hack.py +0 -0
  345. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/examples/openai_sdk/quick_evaluation/README.md +0 -0
  346. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/examples/openai_sdk/quick_evaluation/run_h4rm3l.py +0 -0
  347. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/examples/openai_sdk/rag/agent_server.py +0 -0
  348. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/examples/openai_sdk/rag/hack.py +0 -0
  349. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/examples/openai_sdk/rag/ingest.py +0 -0
  350. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/examples/openai_sdk/rag/policies.pdf +0 -0
  351. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/examples/vllm/hack.py +0 -0
  352. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/logger.py +0 -0
  353. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/__init__.py +0 -0
  354. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/base.py +0 -0
  355. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/craft_adversarial_data/__init__.py +0 -0
  356. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/craft_adversarial_data/types.py +0 -0
  357. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/craft_adversarial_data/vulnerabilities.py +0 -0
  358. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/credential_exposure/__init__.py +0 -0
  359. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/credential_exposure/types.py +0 -0
  360. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/credential_exposure/vulnerabilities.py +0 -0
  361. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/excessive_agency/__init__.py +0 -0
  362. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/excessive_agency/types.py +0 -0
  363. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/excessive_agency/vulnerabilities.py +0 -0
  364. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/input_manipulation_attack/__init__.py +0 -0
  365. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/input_manipulation_attack/profile.py +0 -0
  366. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/input_manipulation_attack/types.py +0 -0
  367. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/input_manipulation_attack/vulnerabilities.py +0 -0
  368. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/jailbreak/__init__.py +0 -0
  369. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/jailbreak/profile.py +0 -0
  370. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/jailbreak/types.py +0 -0
  371. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/jailbreak/vulnerabilities.py +0 -0
  372. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/malicious_tool_invocation/__init__.py +0 -0
  373. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/malicious_tool_invocation/types.py +0 -0
  374. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/malicious_tool_invocation/vulnerabilities.py +0 -0
  375. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/misinformation/__init__.py +0 -0
  376. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/misinformation/types.py +0 -0
  377. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/misinformation/vulnerabilities.py +0 -0
  378. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/model_evasion/__init__.py +0 -0
  379. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/model_evasion/profile.py +0 -0
  380. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/model_evasion/types.py +0 -0
  381. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/model_evasion/vulnerabilities.py +0 -0
  382. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/profile_types.py +0 -0
  383. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/prompt_injection/__init__.py +0 -0
  384. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/prompt_injection/profile.py +0 -0
  385. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/prompt_injection/templates.py +0 -0
  386. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/prompt_injection/types.py +0 -0
  387. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/prompt_injection/vulnerabilities.py +0 -0
  388. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/public_facing_application_exploitation/__init__.py +0 -0
  389. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/public_facing_application_exploitation/types.py +0 -0
  390. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/public_facing_application_exploitation/vulnerabilities.py +0 -0
  391. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/registry.py +0 -0
  392. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/sensitive_information_disclosure/__init__.py +0 -0
  393. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/sensitive_information_disclosure/profile.py +0 -0
  394. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/sensitive_information_disclosure/types.py +0 -0
  395. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/sensitive_information_disclosure/vulnerabilities.py +0 -0
  396. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/system_prompt_leakage/__init__.py +0 -0
  397. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/system_prompt_leakage/profile.py +0 -0
  398. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/system_prompt_leakage/types.py +0 -0
  399. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/system_prompt_leakage/vulnerabilities.py +0 -0
  400. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/utils.py +0 -0
  401. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/vector_embedding_weaknesses_exploit/__init__.py +0 -0
  402. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/vector_embedding_weaknesses_exploit/types.py +0 -0
  403. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/risks/vector_embedding_weaknesses_exploit/vulnerabilities.py +0 -0
  404. {hackagent-0.10.1/hackagent/server/storage → hackagent-0.12.0/hackagent/router/providers}/__init__.py +0 -0
  405. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/router/tracking/__init__.py +0 -0
  406. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/router/tracking/utils.py +0 -0
  407. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/__init__.py +0 -0
  408. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/agent/__init__.py +0 -0
  409. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/agent/agent_create.py +0 -0
  410. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/agent/agent_destroy.py +0 -0
  411. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/agent/agent_list.py +0 -0
  412. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/agent/agent_partial_update.py +0 -0
  413. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/agent/agent_retrieve.py +0 -0
  414. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/agent/agent_update.py +0 -0
  415. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/apilogs/__init__.py +0 -0
  416. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/apilogs/apilogs_list.py +0 -0
  417. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/apilogs/apilogs_retrieve.py +0 -0
  418. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/apilogs/apilogs_summary_retrieve.py +0 -0
  419. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/attack/__init__.py +0 -0
  420. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/attack/attack_create.py +0 -0
  421. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/attack/attack_destroy.py +0 -0
  422. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/attack/attack_list.py +0 -0
  423. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/attack/attack_partial_update.py +0 -0
  424. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/attack/attack_retrieve.py +0 -0
  425. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/attack/attack_update.py +0 -0
  426. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/checkout/__init__.py +0 -0
  427. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/checkout/checkout_create.py +0 -0
  428. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/generate/__init__.py +0 -0
  429. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/generate/v1_chat_completions_create.py +0 -0
  430. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/judge/__init__.py +0 -0
  431. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/judge/judge_create.py +0 -0
  432. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/key/__init__.py +0 -0
  433. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/key/key_context_retrieve.py +0 -0
  434. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/key/key_create.py +0 -0
  435. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/key/key_destroy.py +0 -0
  436. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/key/key_list.py +0 -0
  437. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/key/key_retrieve.py +0 -0
  438. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/organization/__init__.py +0 -0
  439. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/organization/organization_create.py +0 -0
  440. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/organization/organization_destroy.py +0 -0
  441. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/organization/organization_list.py +0 -0
  442. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/organization/organization_me_retrieve.py +0 -0
  443. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/organization/organization_partial_update.py +0 -0
  444. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/organization/organization_retrieve.py +0 -0
  445. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/organization/organization_update.py +0 -0
  446. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/result/__init__.py +0 -0
  447. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/result/result_create.py +0 -0
  448. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/result/result_destroy.py +0 -0
  449. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/result/result_list.py +0 -0
  450. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/result/result_partial_update.py +0 -0
  451. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/result/result_retrieve.py +0 -0
  452. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/result/result_trace_create.py +0 -0
  453. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/result/result_update.py +0 -0
  454. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/run/__init__.py +0 -0
  455. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/run/run_create.py +0 -0
  456. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/run/run_destroy.py +0 -0
  457. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/run/run_list.py +0 -0
  458. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/run/run_partial_update.py +0 -0
  459. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/run/run_result_create.py +0 -0
  460. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/run/run_retrieve.py +0 -0
  461. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/run/run_run_tests_create.py +0 -0
  462. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/run/run_update.py +0 -0
  463. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/scripts/generate.py +0 -0
  464. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/scripts/generate.sh +0 -0
  465. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/scripts/openapi-python-client.yaml +0 -0
  466. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/user/__init__.py +0 -0
  467. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/user/user_create.py +0 -0
  468. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/user/user_destroy.py +0 -0
  469. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/user/user_list.py +0 -0
  470. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/user/user_me_retrieve.py +0 -0
  471. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/user/user_me_update.py +0 -0
  472. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/user/user_partial_update.py +0 -0
  473. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/user/user_retrieve.py +0 -0
  474. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/api/user/user_update.py +0 -0
  475. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/client.py +0 -0
  476. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/dashboard/__init__.py +0 -0
  477. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/dashboard/_api.py +0 -0
  478. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/dashboard/_helpers.py +0 -0
  479. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/dashboard/app.py +0 -0
  480. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/dashboard/templates/index.html +0 -0
  481. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/errors.py +0 -0
  482. {hackagent-0.10.1 → hackagent-0.12.0}/hackagent/server/storage/enums.py +0 -0
  483. {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.10.1
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 Policy](https://img.shields.io/badge/security-policy-blue?logo=github)](SECURITY.md)
47
+
48
+ <br>
49
+
44
50
  <br>
45
51
 
46
52
  ![Python Version](https://img.shields.io/badge/python-3.10%2B-blue)
@@ -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 Baseline |
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 Policy](https://img.shields.io/badge/security-policy-blue?logo=github)](SECURITY.md)
13
+
14
+ <br>
15
+
12
16
  <br>
13
17
 
14
18
  ![Python Version](https://img.shields.io/badge/python-3.10%2B-blue)
@@ -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 Baseline |
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