hackagent 0.14.0__tar.gz → 0.16.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 (634) hide show
  1. {hackagent-0.14.0 → hackagent-0.16.0}/.gitignore +8 -2
  2. hackagent-0.16.0/PKG-INFO +121 -0
  3. hackagent-0.16.0/README.md +80 -0
  4. hackagent-0.16.0/hackagent/__init__.py +33 -0
  5. hackagent-0.16.0/hackagent/attacks/__init__.py +12 -0
  6. hackagent-0.16.0/hackagent/attacks/_lib/__init__.py +22 -0
  7. hackagent-0.16.0/hackagent/attacks/_lib/graphviz.py +21 -0
  8. hackagent-0.16.0/hackagent/attacks/_lib/response.py +84 -0
  9. {hackagent-0.14.0/hackagent/attacks/generator → hackagent-0.16.0/hackagent/attacks/_lib}/templates.py +2 -2
  10. hackagent-0.16.0/hackagent/attacks/techniques/__init__.py +31 -0
  11. hackagent-0.16.0/hackagent/attacks/techniques/adaptive/__init__.py +10 -0
  12. hackagent-0.16.0/hackagent/attacks/techniques/adaptive/advprefix/__init__.py +12 -0
  13. hackagent-0.16.0/hackagent/attacks/techniques/adaptive/advprefix/attack.py +314 -0
  14. hackagent-0.16.0/hackagent/attacks/techniques/adaptive/advprefix/config.py +141 -0
  15. hackagent-0.16.0/hackagent/attacks/techniques/adaptive/advprefix/prompts.py +191 -0
  16. {hackagent-0.14.0/hackagent/attacks/techniques → hackagent-0.16.0/hackagent/attacks/techniques/adaptive}/autodan_turbo/__init__.py +3 -5
  17. hackagent-0.16.0/hackagent/attacks/techniques/adaptive/autodan_turbo/attack.py +215 -0
  18. hackagent-0.16.0/hackagent/attacks/techniques/adaptive/autodan_turbo/config.py +79 -0
  19. hackagent-0.16.0/hackagent/attacks/techniques/adaptive/autodan_turbo/library.py +122 -0
  20. hackagent-0.16.0/hackagent/attacks/techniques/adaptive/autodan_turbo/prompts.py +240 -0
  21. hackagent-0.16.0/hackagent/attacks/techniques/adaptive/bon/__init__.py +13 -0
  22. hackagent-0.16.0/hackagent/attacks/techniques/adaptive/bon/attack.py +121 -0
  23. hackagent-0.16.0/hackagent/attacks/techniques/adaptive/bon/augment.py +84 -0
  24. hackagent-0.16.0/hackagent/attacks/techniques/adaptive/bon/config.py +46 -0
  25. hackagent-0.16.0/hackagent/attacks/techniques/adaptive/pair/__init__.py +12 -0
  26. hackagent-0.16.0/hackagent/attacks/techniques/adaptive/pair/attack.py +257 -0
  27. hackagent-0.16.0/hackagent/attacks/techniques/adaptive/pair/config.py +86 -0
  28. hackagent-0.16.0/hackagent/attacks/techniques/adaptive/pair/prompts.py +201 -0
  29. hackagent-0.16.0/hackagent/attacks/techniques/adaptive/pap/__init__.py +19 -0
  30. hackagent-0.16.0/hackagent/attacks/techniques/adaptive/pap/attack.py +96 -0
  31. hackagent-0.16.0/hackagent/attacks/techniques/adaptive/pap/config.py +50 -0
  32. {hackagent-0.14.0/hackagent/attacks/techniques → hackagent-0.16.0/hackagent/attacks/techniques/adaptive}/pap/taxonomy.py +36 -1
  33. hackagent-0.16.0/hackagent/attacks/techniques/adaptive/tap/__init__.py +12 -0
  34. hackagent-0.16.0/hackagent/attacks/techniques/adaptive/tap/attack.py +306 -0
  35. hackagent-0.16.0/hackagent/attacks/techniques/adaptive/tap/config.py +94 -0
  36. hackagent-0.14.0/hackagent/attacks/techniques/tap/config.py → hackagent-0.16.0/hackagent/attacks/techniques/adaptive/tap/prompts.py +79 -84
  37. hackagent-0.16.0/hackagent/attacks/techniques/contract.py +104 -0
  38. hackagent-0.16.0/hackagent/attacks/techniques/indirect/__init__.py +13 -0
  39. hackagent-0.16.0/hackagent/attacks/techniques/indirect/rag/__init__.py +12 -0
  40. hackagent-0.16.0/hackagent/attacks/techniques/indirect/rag/attack.py +293 -0
  41. hackagent-0.16.0/hackagent/attacks/techniques/indirect/rag/config.py +92 -0
  42. hackagent-0.14.0/hackagent/attacks/techniques/rag/config.py → hackagent-0.16.0/hackagent/attacks/techniques/indirect/rag/prompts.py +120 -134
  43. hackagent-0.16.0/hackagent/attacks/techniques/indirect/rag/retrieval.py +63 -0
  44. hackagent-0.16.0/hackagent/attacks/techniques/indirect/tool_output_ipi/__init__.py +12 -0
  45. hackagent-0.16.0/hackagent/attacks/techniques/indirect/tool_output_ipi/attack.py +168 -0
  46. hackagent-0.16.0/hackagent/attacks/techniques/indirect/tool_output_ipi/config.py +79 -0
  47. hackagent-0.16.0/hackagent/attacks/techniques/indirect/tool_output_ipi/prompts.py +226 -0
  48. hackagent-0.16.0/hackagent/attacks/techniques/iterative.py +123 -0
  49. hackagent-0.16.0/hackagent/attacks/techniques/multi_turn/__init__.py +9 -0
  50. hackagent-0.16.0/hackagent/attacks/techniques/multi_turn/crescendo/__init__.py +12 -0
  51. hackagent-0.16.0/hackagent/attacks/techniques/multi_turn/crescendo/attack.py +167 -0
  52. hackagent-0.16.0/hackagent/attacks/techniques/multi_turn/crescendo/config.py +66 -0
  53. hackagent-0.16.0/hackagent/attacks/techniques/multi_turn/crescendo/prompts.py +177 -0
  54. hackagent-0.16.0/hackagent/attacks/techniques/registry.py +91 -0
  55. hackagent-0.16.0/hackagent/attacks/techniques/static/__init__.py +11 -0
  56. hackagent-0.16.0/hackagent/attacks/techniques/static/base.py +59 -0
  57. hackagent-0.16.0/hackagent/attacks/techniques/static/baseline/__init__.py +9 -0
  58. hackagent-0.16.0/hackagent/attacks/techniques/static/baseline/attack.py +19 -0
  59. hackagent-0.16.0/hackagent/attacks/techniques/static/baseline/config.py +10 -0
  60. hackagent-0.16.0/hackagent/attacks/techniques/static/cipherchat/__init__.py +9 -0
  61. hackagent-0.16.0/hackagent/attacks/techniques/static/cipherchat/attack.py +145 -0
  62. hackagent-0.16.0/hackagent/attacks/techniques/static/cipherchat/config.py +84 -0
  63. hackagent-0.14.0/hackagent/attacks/techniques/cipherchat/prompts_and_demonstrations.py → hackagent-0.16.0/hackagent/attacks/techniques/static/cipherchat/demonstrations.py +5 -65
  64. hackagent-0.16.0/hackagent/attacks/techniques/static/cipherchat/encodings/__init__.py +45 -0
  65. hackagent-0.16.0/hackagent/attacks/techniques/static/cipherchat/encodings/base.py +56 -0
  66. hackagent-0.16.0/hackagent/attacks/techniques/static/cipherchat/encodings/byte_escape.py +38 -0
  67. hackagent-0.16.0/hackagent/attacks/techniques/static/cipherchat/encodings/mapping.py +219 -0
  68. hackagent-0.16.0/hackagent/attacks/techniques/static/cipherchat/encodings/prompts.py +128 -0
  69. hackagent-0.16.0/hackagent/attacks/techniques/static/cipherchat/encodings/registry.py +49 -0
  70. hackagent-0.16.0/hackagent/attacks/techniques/static/fc/__init__.py +9 -0
  71. hackagent-0.16.0/hackagent/attacks/techniques/static/fc/attack.py +123 -0
  72. hackagent-0.16.0/hackagent/attacks/techniques/static/fc/config.py +64 -0
  73. {hackagent-0.14.0/hackagent/attacks/techniques → hackagent-0.16.0/hackagent/attacks/techniques/static}/fc/flowchart_renderer.py +31 -29
  74. hackagent-0.16.0/hackagent/attacks/techniques/static/flipattack/__init__.py +9 -0
  75. hackagent-0.16.0/hackagent/attacks/techniques/static/flipattack/attack.py +135 -0
  76. hackagent-0.16.0/hackagent/attacks/techniques/static/flipattack/config.py +43 -0
  77. hackagent-0.16.0/hackagent/attacks/techniques/static/flipattack/prompts.py +51 -0
  78. hackagent-0.16.0/hackagent/attacks/techniques/static/h4rm3l/__init__.py +20 -0
  79. hackagent-0.16.0/hackagent/attacks/techniques/static/h4rm3l/attack.py +37 -0
  80. hackagent-0.16.0/hackagent/attacks/techniques/static/h4rm3l/config.py +44 -0
  81. hackagent-0.16.0/hackagent/attacks/techniques/static/h4rm3l/decorators/__init__.py +110 -0
  82. hackagent-0.16.0/hackagent/attacks/techniques/static/h4rm3l/decorators/base.py +89 -0
  83. hackagent-0.16.0/hackagent/attacks/techniques/static/h4rm3l/decorators/compiler.py +265 -0
  84. hackagent-0.16.0/hackagent/attacks/techniques/static/h4rm3l/decorators/llm.py +291 -0
  85. hackagent-0.14.0/hackagent/attacks/techniques/h4rm3l/decorators.py → hackagent-0.16.0/hackagent/attacks/techniques/static/h4rm3l/decorators/static.py +36 -597
  86. hackagent-0.16.0/hackagent/attacks/techniques/static/h4rm3l/programs.py +67 -0
  87. hackagent-0.16.0/hackagent/attacks/techniques/static/mml/__init__.py +9 -0
  88. hackagent-0.16.0/hackagent/attacks/techniques/static/mml/attack.py +73 -0
  89. hackagent-0.16.0/hackagent/attacks/techniques/static/mml/config.py +55 -0
  90. {hackagent-0.14.0/hackagent/attacks/techniques → hackagent-0.16.0/hackagent/attacks/techniques/static}/mml/image_encoder.py +34 -15
  91. hackagent-0.16.0/hackagent/attacks/techniques/static/static_template/__init__.py +9 -0
  92. hackagent-0.16.0/hackagent/attacks/techniques/static/static_template/attack.py +32 -0
  93. hackagent-0.16.0/hackagent/attacks/techniques/static/static_template/config.py +77 -0
  94. hackagent-0.16.0/hackagent/attacks/techniques/static/static_template/templates.py +55 -0
  95. hackagent-0.16.0/hackagent/attacks/techniques/trace.py +246 -0
  96. hackagent-0.16.0/hackagent/catalog/__init__.py +4 -0
  97. hackagent-0.14.0/hackagent/cli/commands/attack/catalog.py → hackagent-0.16.0/hackagent/catalog/attacks.py +8 -2
  98. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/catalog}/risks/__init__.py +5 -5
  99. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/catalog}/risks/base.py +4 -4
  100. hackagent-0.16.0/hackagent/catalog/risks/craft_adversarial_data/__init__.py +18 -0
  101. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/catalog}/risks/craft_adversarial_data/profile.py +5 -3
  102. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/catalog}/risks/craft_adversarial_data/vulnerabilities.py +2 -2
  103. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/catalog}/risks/credential_exposure/__init__.py +3 -3
  104. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/catalog}/risks/credential_exposure/profile.py +5 -3
  105. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/catalog}/risks/credential_exposure/vulnerabilities.py +2 -2
  106. hackagent-0.16.0/hackagent/catalog/risks/excessive_agency/__init__.py +8 -0
  107. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/catalog}/risks/excessive_agency/profile.py +3 -3
  108. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/catalog}/risks/excessive_agency/vulnerabilities.py +2 -2
  109. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/catalog}/risks/input_manipulation_attack/__init__.py +3 -3
  110. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/catalog}/risks/input_manipulation_attack/profile.py +5 -3
  111. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/catalog}/risks/input_manipulation_attack/vulnerabilities.py +2 -2
  112. hackagent-0.16.0/hackagent/catalog/risks/jailbreak/__init__.py +8 -0
  113. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/catalog}/risks/jailbreak/profile.py +5 -5
  114. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/catalog}/risks/jailbreak/vulnerabilities.py +2 -2
  115. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/catalog}/risks/malicious_tool_invocation/__init__.py +3 -3
  116. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/catalog}/risks/malicious_tool_invocation/profile.py +5 -3
  117. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/catalog}/risks/malicious_tool_invocation/vulnerabilities.py +2 -2
  118. hackagent-0.16.0/hackagent/catalog/risks/misinformation/__init__.py +8 -0
  119. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/catalog}/risks/misinformation/profile.py +3 -3
  120. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/catalog}/risks/misinformation/vulnerabilities.py +2 -2
  121. hackagent-0.16.0/hackagent/catalog/risks/model_evasion/__init__.py +8 -0
  122. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/catalog}/risks/model_evasion/profile.py +3 -3
  123. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/catalog}/risks/model_evasion/vulnerabilities.py +2 -2
  124. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/catalog}/risks/profile_helpers.py +8 -8
  125. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/catalog}/risks/profile_types.py +2 -2
  126. hackagent-0.16.0/hackagent/catalog/risks/prompt_injection/__init__.py +14 -0
  127. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/catalog}/risks/prompt_injection/profile.py +3 -3
  128. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/catalog}/risks/prompt_injection/templates.py +1 -1
  129. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/catalog}/risks/prompt_injection/vulnerabilities.py +2 -2
  130. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/catalog}/risks/public_facing_application_exploitation/__init__.py +3 -3
  131. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/catalog}/risks/public_facing_application_exploitation/profile.py +3 -3
  132. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/catalog}/risks/public_facing_application_exploitation/vulnerabilities.py +2 -2
  133. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/catalog}/risks/registry.py +14 -14
  134. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/catalog}/risks/sensitive_information_disclosure/__init__.py +3 -3
  135. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/catalog}/risks/sensitive_information_disclosure/profile.py +3 -3
  136. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/catalog}/risks/sensitive_information_disclosure/vulnerabilities.py +2 -2
  137. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/catalog}/risks/system_prompt_leakage/__init__.py +3 -3
  138. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/catalog}/risks/system_prompt_leakage/profile.py +5 -3
  139. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/catalog}/risks/system_prompt_leakage/vulnerabilities.py +2 -2
  140. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/catalog}/risks/vector_embedding_weaknesses_exploit/__init__.py +3 -3
  141. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/catalog}/risks/vector_embedding_weaknesses_exploit/profile.py +3 -3
  142. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/catalog}/risks/vector_embedding_weaknesses_exploit/vulnerabilities.py +2 -2
  143. {hackagent-0.14.0/hackagent/attacks → hackagent-0.16.0/hackagent/catalog}/taxonomy.py +34 -12
  144. hackagent-0.16.0/hackagent/client.py +589 -0
  145. hackagent-0.16.0/hackagent/core/__init__.py +4 -0
  146. hackagent-0.16.0/hackagent/core/contracts/__init__.py +71 -0
  147. hackagent-0.16.0/hackagent/core/contracts/_base.py +9 -0
  148. hackagent-0.16.0/hackagent/core/contracts/completion.py +108 -0
  149. hackagent-0.16.0/hackagent/core/contracts/enums.py +144 -0
  150. hackagent-0.16.0/hackagent/core/contracts/judging.py +105 -0
  151. hackagent-0.16.0/hackagent/core/contracts/messages.py +39 -0
  152. hackagent-0.16.0/hackagent/core/contracts/protocols.py +67 -0
  153. hackagent-0.16.0/hackagent/core/contracts/specs.py +55 -0
  154. hackagent-0.16.0/hackagent/core/defaults.py +103 -0
  155. hackagent-0.16.0/hackagent/core/logging.py +16 -0
  156. hackagent-0.16.0/hackagent/core/settings.py +237 -0
  157. {hackagent-0.14.0 → hackagent-0.16.0}/hackagent/datasets/__init__.py +2 -0
  158. {hackagent-0.14.0 → hackagent-0.16.0}/hackagent/datasets/base.py +8 -1
  159. hackagent-0.16.0/hackagent/datasets/calibration.py +194 -0
  160. hackagent-0.16.0/hackagent/datasets/config.py +304 -0
  161. hackagent-0.16.0/hackagent/datasets/goals.py +111 -0
  162. hackagent-0.16.0/hackagent/datasets/intents.py +121 -0
  163. hackagent-0.16.0/hackagent/datasets/labelling.py +176 -0
  164. {hackagent-0.14.0 → hackagent-0.16.0}/hackagent/datasets/presets.py +1 -0
  165. {hackagent-0.14.0 → hackagent-0.16.0}/hackagent/datasets/providers/file.py +5 -1
  166. {hackagent-0.14.0 → hackagent-0.16.0}/hackagent/datasets/providers/huggingface.py +5 -1
  167. {hackagent-0.14.0 → hackagent-0.16.0}/hackagent/datasets/providers/url_json.py +5 -1
  168. {hackagent-0.14.0 → hackagent-0.16.0}/hackagent/datasets/registry.py +4 -3
  169. hackagent-0.16.0/hackagent/datasets/taxonomy.py +160 -0
  170. hackagent-0.16.0/hackagent/datasets/taxonomy.yaml +99 -0
  171. hackagent-0.16.0/hackagent/evaluation/__init__.py +66 -0
  172. hackagent-0.16.0/hackagent/evaluation/audit.py +430 -0
  173. hackagent-0.16.0/hackagent/evaluation/base.py +21 -0
  174. hackagent-0.16.0/hackagent/evaluation/config.py +54 -0
  175. hackagent-0.16.0/hackagent/evaluation/judges.py +504 -0
  176. hackagent-0.16.0/hackagent/evaluation/metrics.py +161 -0
  177. hackagent-0.16.0/hackagent/evaluation/panel.py +299 -0
  178. hackagent-0.14.0/hackagent/attacks/evaluator/pattern_evaluators.py → hackagent-0.16.0/hackagent/evaluation/patterns.py +1 -1
  179. hackagent-0.16.0/hackagent/examples/__init__.py +59 -0
  180. {hackagent-0.14.0 → hackagent-0.16.0}/hackagent/examples/claude/README.md +25 -18
  181. hackagent-0.16.0/hackagent/examples/claude/flipattack-claude.yaml +43 -0
  182. hackagent-0.16.0/hackagent/examples/claude/flipattack-ollama.yaml +46 -0
  183. {hackagent-0.14.0 → hackagent-0.16.0}/hackagent/examples/codex/README.md +10 -10
  184. hackagent-0.16.0/hackagent/examples/codex/h4rm3l-codex.yaml +41 -0
  185. hackagent-0.16.0/hackagent/examples/codex/h4rm3l-ollama.yaml +38 -0
  186. hackagent-0.16.0/hackagent/examples/google_adk/jailbreak_eval/advprefix-adk.yaml +59 -0
  187. hackagent-0.16.0/hackagent/examples/google_adk/multi_tool_agent/advprefix-multi-tool.yaml +47 -0
  188. {hackagent-0.14.0 → hackagent-0.16.0}/hackagent/examples/hermes/README.md +9 -7
  189. hackagent-0.16.0/hackagent/examples/hermes/flipattack-hermes.yaml +39 -0
  190. {hackagent-0.14.0 → hackagent-0.16.0}/hackagent/examples/langchain/rag/README.md +11 -6
  191. hackagent-0.16.0/hackagent/examples/langchain/rag/advprefix-corpbot.yaml +41 -0
  192. {hackagent-0.14.0 → hackagent-0.16.0}/hackagent/examples/litellm_multi_provider/README.md +8 -8
  193. hackagent-0.16.0/hackagent/examples/litellm_multi_provider/tap-any-provider.yaml +64 -0
  194. hackagent-0.16.0/hackagent/examples/ollama/flipattack-local.yaml +43 -0
  195. hackagent-0.16.0/hackagent/examples/ollama/h4rm3l-demo.yaml +51 -0
  196. hackagent-0.16.0/hackagent/examples/ollama/risk-evaluation.yaml +78 -0
  197. {hackagent-0.14.0 → hackagent-0.16.0}/hackagent/examples/openai_sdk/db_tool_sandbox/README.md +2 -2
  198. hackagent-0.16.0/hackagent/examples/openai_sdk/db_tool_sandbox/flipattack-sqldesk.yaml +48 -0
  199. {hackagent-0.14.0 → hackagent-0.16.0}/hackagent/examples/openai_sdk/multi_judge/README.md +1 -1
  200. hackagent-0.16.0/hackagent/examples/openai_sdk/multi_judge/flipattack-multi-judge.yaml +70 -0
  201. {hackagent-0.14.0 → hackagent-0.16.0}/hackagent/examples/openai_sdk/pc_tool_sandbox/README.md +3 -3
  202. hackagent-0.16.0/hackagent/examples/openai_sdk/pc_tool_sandbox/pair-vaultdesk.yaml +58 -0
  203. {hackagent-0.14.0 → hackagent-0.16.0}/hackagent/examples/openai_sdk/quick_evaluation/README.md +3 -3
  204. hackagent-0.16.0/hackagent/examples/openai_sdk/quick_evaluation/h4rm3l-granite.yaml +59 -0
  205. {hackagent-0.14.0 → hackagent-0.16.0}/hackagent/examples/openai_sdk/rag/README.md +9 -5
  206. hackagent-0.16.0/hackagent/examples/openai_sdk/rag/h4rm3l-corpbot.yaml +56 -0
  207. hackagent-0.16.0/hackagent/examples/rag/indirect-injection.yaml +66 -0
  208. hackagent-0.16.0/hackagent/examples/vllm/risk-evaluation.yaml +76 -0
  209. {hackagent-0.14.0 → hackagent-0.16.0}/hackagent/examples/web/README.md +27 -42
  210. {hackagent-0.14.0 → hackagent-0.16.0}/hackagent/examples/web/plan.py +1 -1
  211. hackagent-0.16.0/hackagent/examples/web/tap-site-chatbot.yaml +67 -0
  212. hackagent-0.16.0/hackagent/interfaces/__init__.py +9 -0
  213. hackagent-0.16.0/hackagent/interfaces/cli/banner.py +34 -0
  214. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/interfaces}/cli/bootstrap.py +4 -6
  215. hackagent-0.16.0/hackagent/interfaces/cli/commands/campaign.py +291 -0
  216. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/interfaces}/cli/commands/config.py +15 -15
  217. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/interfaces}/cli/commands/datasets.py +3 -5
  218. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/interfaces}/cli/commands/examples.py +253 -153
  219. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/interfaces}/cli/commands/results.py +20 -30
  220. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/interfaces}/cli/commands/web.py +23 -18
  221. hackagent-0.16.0/hackagent/interfaces/cli/config.py +157 -0
  222. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/interfaces}/cli/help_page.py +2 -2
  223. hackagent-0.14.0/hackagent/logger.py → hackagent-0.16.0/hackagent/interfaces/cli/logging_setup.py +7 -13
  224. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/interfaces}/cli/main.py +56 -64
  225. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/interfaces}/cli/utils.py +12 -57
  226. {hackagent-0.14.0/hackagent/cli → hackagent-0.16.0/hackagent/interfaces}/tui/__init__.py +1 -1
  227. hackagent-0.16.0/hackagent/interfaces/tui/app.py +423 -0
  228. {hackagent-0.14.0/hackagent/cli → hackagent-0.16.0/hackagent/interfaces}/tui/base.py +30 -10
  229. {hackagent-0.14.0/hackagent/cli → hackagent-0.16.0/hackagent/interfaces}/tui/events.py +1 -1
  230. hackagent-0.16.0/hackagent/interfaces/tui/logger.py +125 -0
  231. hackagent-0.16.0/hackagent/interfaces/tui/views/__init__.py +21 -0
  232. {hackagent-0.14.0/hackagent/cli → hackagent-0.16.0/hackagent/interfaces}/tui/views/agents.py +15 -24
  233. hackagent-0.16.0/hackagent/interfaces/tui/views/audit.py +36 -0
  234. hackagent-0.16.0/hackagent/interfaces/tui/views/campaign/__init__.py +9 -0
  235. hackagent-0.16.0/hackagent/interfaces/tui/views/campaign/builder.py +1054 -0
  236. hackagent-0.16.0/hackagent/interfaces/tui/views/campaign/draft.py +219 -0
  237. hackagent-0.16.0/hackagent/interfaces/tui/views/campaign/form.py +233 -0
  238. hackagent-0.16.0/hackagent/interfaces/tui/views/campaign/outline.py +278 -0
  239. hackagent-0.16.0/hackagent/interfaces/tui/views/campaign/report.py +62 -0
  240. hackagent-0.16.0/hackagent/interfaces/tui/views/campaign/schema.py +522 -0
  241. hackagent-0.16.0/hackagent/interfaces/tui/views/campaign/screens.py +303 -0
  242. hackagent-0.16.0/hackagent/interfaces/tui/views/campaign/welcome.py +165 -0
  243. {hackagent-0.14.0/hackagent/cli → hackagent-0.16.0/hackagent/interfaces}/tui/views/config.py +52 -23
  244. {hackagent-0.14.0/hackagent/cli → hackagent-0.16.0/hackagent/interfaces}/tui/views/results/__init__.py +4 -4
  245. {hackagent-0.14.0/hackagent/cli → hackagent-0.16.0/hackagent/interfaces}/tui/views/results/export.py +1 -1
  246. {hackagent-0.14.0/hackagent/cli → hackagent-0.16.0/hackagent/interfaces}/tui/views/results/formatters/__init__.py +5 -5
  247. {hackagent-0.14.0/hackagent/cli → hackagent-0.16.0/hackagent/interfaces}/tui/views/results/formatters/http.py +1 -1
  248. {hackagent-0.14.0/hackagent/cli → hackagent-0.16.0/hackagent/interfaces}/tui/views/results/formatters/run_report.py +2 -2
  249. {hackagent-0.14.0/hackagent/cli → hackagent-0.16.0/hackagent/interfaces}/tui/views/results/formatters/summaries.py +4 -4
  250. {hackagent-0.14.0/hackagent/cli → hackagent-0.16.0/hackagent/interfaces}/tui/views/results/formatters/traces.py +2 -2
  251. hackagent-0.16.0/hackagent/interfaces/tui/views/results/tab.py +420 -0
  252. {hackagent-0.14.0/hackagent/cli → hackagent-0.16.0/hackagent/interfaces}/tui/widgets/__init__.py +2 -2
  253. {hackagent-0.14.0/hackagent/cli → hackagent-0.16.0/hackagent/interfaces}/tui/widgets/actions.py +3 -3
  254. {hackagent-0.14.0/hackagent/cli → hackagent-0.16.0/hackagent/interfaces}/tui/widgets/logs.py +1 -1
  255. {hackagent-0.14.0/hackagent/server/webui → hackagent-0.16.0/hackagent/interfaces/web}/__init__.py +19 -21
  256. {hackagent-0.14.0/hackagent/server/webui → hackagent-0.16.0/hackagent/interfaces/web}/_local_api.py +25 -29
  257. {hackagent-0.14.0/hackagent/server/webui → hackagent-0.16.0/hackagent/interfaces/web}/_proxy.py +2 -12
  258. {hackagent-0.14.0/hackagent/server/webui → hackagent-0.16.0/hackagent/interfaces/web}/_serializers.py +15 -29
  259. {hackagent-0.14.0/hackagent/server/webui → hackagent-0.16.0/hackagent/interfaces/web}/_static.py +2 -2
  260. hackagent-0.16.0/hackagent/models/__init__.py +44 -0
  261. hackagent-0.16.0/hackagent/models/build.py +207 -0
  262. hackagent-0.16.0/hackagent/models/completions/__init__.py +22 -0
  263. {hackagent-0.14.0/hackagent/router/providers → hackagent-0.16.0/hackagent/models/completions}/adk.py +131 -226
  264. {hackagent-0.14.0/hackagent/router/discovery → hackagent-0.16.0/hackagent/models/completions}/browser.py +5 -5
  265. {hackagent-0.14.0/hackagent/router/providers → hackagent-0.16.0/hackagent/models/completions}/claude.py +32 -220
  266. hackagent-0.16.0/hackagent/models/completions/cli.py +208 -0
  267. {hackagent-0.14.0/hackagent/router/providers → hackagent-0.16.0/hackagent/models/completions}/codex.py +52 -239
  268. {hackagent-0.14.0/hackagent/router/providers → hackagent-0.16.0/hackagent/models/completions}/hermes.py +77 -232
  269. hackagent-0.16.0/hackagent/models/completions/litellm.py +136 -0
  270. {hackagent-0.14.0/hackagent/router/providers → hackagent-0.16.0/hackagent/models/completions}/web.py +69 -115
  271. hackagent-0.16.0/hackagent/models/config.py +264 -0
  272. hackagent-0.16.0/hackagent/models/connect.py +93 -0
  273. hackagent-0.14.0/hackagent/attacks/shared/embedding_utils.py → hackagent-0.16.0/hackagent/models/embeddings.py +32 -8
  274. hackagent-0.16.0/hackagent/models/factory.py +185 -0
  275. hackagent-0.16.0/hackagent/models/guardrail.py +229 -0
  276. hackagent-0.16.0/hackagent/models/model.py +118 -0
  277. {hackagent-0.14.0/hackagent/router → hackagent-0.16.0/hackagent/models}/provider_config.py +7 -7
  278. hackagent-0.16.0/hackagent/models/response.py +201 -0
  279. hackagent-0.16.0/hackagent/models/retry.py +35 -0
  280. hackagent-0.16.0/hackagent/models/target_params.py +46 -0
  281. hackagent-0.16.0/hackagent/orchestrator/__init__.py +13 -0
  282. hackagent-0.16.0/hackagent/orchestrator/campaign/__init__.py +75 -0
  283. hackagent-0.16.0/hackagent/orchestrator/campaign/audit.py +229 -0
  284. hackagent-0.16.0/hackagent/orchestrator/campaign/loader.py +28 -0
  285. hackagent-0.16.0/hackagent/orchestrator/campaign/overrides.py +237 -0
  286. hackagent-0.16.0/hackagent/orchestrator/campaign/preflight.py +122 -0
  287. hackagent-0.16.0/hackagent/orchestrator/campaign/resolve.py +278 -0
  288. hackagent-0.16.0/hackagent/orchestrator/campaign/results.py +315 -0
  289. hackagent-0.16.0/hackagent/orchestrator/campaign/runner.py +881 -0
  290. hackagent-0.16.0/hackagent/orchestrator/campaign/spec.py +552 -0
  291. hackagent-0.16.0/hackagent/orchestrator/campaign/tracking.py +204 -0
  292. hackagent-0.16.0/hackagent/orchestrator/planning/__init__.py +39 -0
  293. hackagent-0.16.0/hackagent/orchestrator/planning/catalog.py +153 -0
  294. hackagent-0.16.0/hackagent/orchestrator/planning/planner.py +339 -0
  295. hackagent-0.16.0/hackagent/orchestrator/planning/web.py +46 -0
  296. {hackagent-0.14.0/hackagent/attacks/techniques/rag → hackagent-0.16.0/hackagent/storage}/__init__.py +1 -3
  297. hackagent-0.16.0/hackagent/storage/_http/__init__.py +4 -0
  298. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/models.py +20 -14
  299. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/scripts/generate.py +10 -10
  300. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/scripts/generate.sh +10 -10
  301. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/scripts/openapi-python-client.yaml +2 -2
  302. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/errors.py +3 -3
  303. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent}/storage/local.py +184 -11
  304. hackagent-0.16.0/hackagent/storage/records.py +149 -0
  305. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent}/storage/remote.py +344 -86
  306. hackagent-0.14.0/hackagent/server/storage/base.py → hackagent-0.16.0/hackagent/storage/store.py +43 -103
  307. hackagent-0.16.0/hackagent/tracking/__init__.py +11 -0
  308. hackagent-0.16.0/hackagent/tracking/evaluation.py +108 -0
  309. hackagent-0.14.0/hackagent/router/tracking/utils.py → hackagent-0.16.0/hackagent/tracking/serialize.py +17 -1
  310. {hackagent-0.14.0 → hackagent-0.16.0}/pyproject.toml +108 -17
  311. hackagent-0.14.0/PKG-INFO +0 -188
  312. hackagent-0.14.0/README.md +0 -153
  313. hackagent-0.14.0/hackagent/__init__.py +0 -25
  314. hackagent-0.14.0/hackagent/agent.py +0 -569
  315. hackagent-0.14.0/hackagent/attacks/__init__.py +0 -67
  316. hackagent-0.14.0/hackagent/attacks/base.py +0 -92
  317. hackagent-0.14.0/hackagent/attacks/evaluator/__init__.py +0 -110
  318. hackagent-0.14.0/hackagent/attacks/evaluator/base.py +0 -985
  319. hackagent-0.14.0/hackagent/attacks/evaluator/evaluation_step.py +0 -1926
  320. hackagent-0.14.0/hackagent/attacks/evaluator/inline_step_judge.py +0 -205
  321. hackagent-0.14.0/hackagent/attacks/evaluator/judge_evaluators.py +0 -578
  322. hackagent-0.14.0/hackagent/attacks/evaluator/metrics.py +0 -403
  323. hackagent-0.14.0/hackagent/attacks/evaluator/sync.py +0 -329
  324. hackagent-0.14.0/hackagent/attacks/generator/__init__.py +0 -31
  325. hackagent-0.14.0/hackagent/attacks/objectives/__init__.py +0 -42
  326. hackagent-0.14.0/hackagent/attacks/objectives/base.py +0 -74
  327. hackagent-0.14.0/hackagent/attacks/objectives/harmful_behavior.py +0 -63
  328. hackagent-0.14.0/hackagent/attacks/objectives/jailbreak.py +0 -60
  329. hackagent-0.14.0/hackagent/attacks/objectives/policy_violation.py +0 -69
  330. hackagent-0.14.0/hackagent/attacks/objectives/rag.py +0 -55
  331. hackagent-0.14.0/hackagent/attacks/orchestrator.py +0 -2242
  332. hackagent-0.14.0/hackagent/attacks/registry.py +0 -143
  333. hackagent-0.14.0/hackagent/attacks/shared/__init__.py +0 -31
  334. hackagent-0.14.0/hackagent/attacks/shared/guardrail.py +0 -256
  335. hackagent-0.14.0/hackagent/attacks/shared/progress.py +0 -110
  336. hackagent-0.14.0/hackagent/attacks/shared/response_utils.py +0 -125
  337. hackagent-0.14.0/hackagent/attacks/shared/router_factory.py +0 -187
  338. hackagent-0.14.0/hackagent/attacks/shared/translation.py +0 -144
  339. hackagent-0.14.0/hackagent/attacks/shared/tui.py +0 -61
  340. hackagent-0.14.0/hackagent/attacks/techniques/__init__.py +0 -24
  341. hackagent-0.14.0/hackagent/attacks/techniques/advprefix/__init__.py +0 -33
  342. hackagent-0.14.0/hackagent/attacks/techniques/advprefix/attack.py +0 -353
  343. hackagent-0.14.0/hackagent/attacks/techniques/advprefix/completions.py +0 -502
  344. hackagent-0.14.0/hackagent/attacks/techniques/advprefix/config.py +0 -269
  345. hackagent-0.14.0/hackagent/attacks/techniques/advprefix/eval_pipeline.py +0 -483
  346. hackagent-0.14.0/hackagent/attacks/techniques/advprefix/generate.py +0 -932
  347. hackagent-0.14.0/hackagent/attacks/techniques/advprefix/utils.py +0 -210
  348. hackagent-0.14.0/hackagent/attacks/techniques/autodan_turbo/attack.py +0 -391
  349. hackagent-0.14.0/hackagent/attacks/techniques/autodan_turbo/autodan_eval.py +0 -127
  350. hackagent-0.14.0/hackagent/attacks/techniques/autodan_turbo/config.py +0 -275
  351. hackagent-0.14.0/hackagent/attacks/techniques/autodan_turbo/core.py +0 -606
  352. hackagent-0.14.0/hackagent/attacks/techniques/autodan_turbo/dashboard_tracing.py +0 -67
  353. hackagent-0.14.0/hackagent/attacks/techniques/autodan_turbo/lifelong.py +0 -487
  354. hackagent-0.14.0/hackagent/attacks/techniques/autodan_turbo/log_styles.py +0 -90
  355. hackagent-0.14.0/hackagent/attacks/techniques/autodan_turbo/strategy_library.py +0 -400
  356. hackagent-0.14.0/hackagent/attacks/techniques/autodan_turbo/summarizer.py +0 -194
  357. hackagent-0.14.0/hackagent/attacks/techniques/autodan_turbo/warm_up.py +0 -377
  358. hackagent-0.14.0/hackagent/attacks/techniques/base.py +0 -472
  359. hackagent-0.14.0/hackagent/attacks/techniques/baseline/__init__.py +0 -13
  360. hackagent-0.14.0/hackagent/attacks/techniques/baseline/attack.py +0 -199
  361. hackagent-0.14.0/hackagent/attacks/techniques/baseline/config.py +0 -16
  362. hackagent-0.14.0/hackagent/attacks/techniques/baseline/generation.py +0 -183
  363. hackagent-0.14.0/hackagent/attacks/techniques/bon/__init__.py +0 -16
  364. hackagent-0.14.0/hackagent/attacks/techniques/bon/attack.py +0 -283
  365. hackagent-0.14.0/hackagent/attacks/techniques/bon/config.py +0 -121
  366. hackagent-0.14.0/hackagent/attacks/techniques/bon/generation.py +0 -746
  367. hackagent-0.14.0/hackagent/attacks/techniques/cipherchat/__init__.py +0 -12
  368. hackagent-0.14.0/hackagent/attacks/techniques/cipherchat/attack.py +0 -212
  369. hackagent-0.14.0/hackagent/attacks/techniques/cipherchat/config.py +0 -54
  370. hackagent-0.14.0/hackagent/attacks/techniques/cipherchat/encode_experts.py +0 -366
  371. hackagent-0.14.0/hackagent/attacks/techniques/cipherchat/generation.py +0 -335
  372. hackagent-0.14.0/hackagent/attacks/techniques/config.py +0 -467
  373. hackagent-0.14.0/hackagent/attacks/techniques/crescendo/__init__.py +0 -19
  374. hackagent-0.14.0/hackagent/attacks/techniques/crescendo/attack.py +0 -906
  375. hackagent-0.14.0/hackagent/attacks/techniques/crescendo/config.py +0 -116
  376. hackagent-0.14.0/hackagent/attacks/techniques/fc/__init__.py +0 -19
  377. hackagent-0.14.0/hackagent/attacks/techniques/fc/attack.py +0 -479
  378. hackagent-0.14.0/hackagent/attacks/techniques/fc/config.py +0 -190
  379. hackagent-0.14.0/hackagent/attacks/techniques/fc/generation.py +0 -606
  380. hackagent-0.14.0/hackagent/attacks/techniques/flipattack/__init__.py +0 -21
  381. hackagent-0.14.0/hackagent/attacks/techniques/flipattack/attack.py +0 -513
  382. hackagent-0.14.0/hackagent/attacks/techniques/flipattack/config.py +0 -114
  383. hackagent-0.14.0/hackagent/attacks/techniques/flipattack/generation.py +0 -222
  384. hackagent-0.14.0/hackagent/attacks/techniques/h4rm3l/__init__.py +0 -15
  385. hackagent-0.14.0/hackagent/attacks/techniques/h4rm3l/attack.py +0 -310
  386. hackagent-0.14.0/hackagent/attacks/techniques/h4rm3l/config.py +0 -183
  387. hackagent-0.14.0/hackagent/attacks/techniques/h4rm3l/generation.py +0 -365
  388. hackagent-0.14.0/hackagent/attacks/techniques/indirect_prompt_injection/attack.py +0 -1414
  389. hackagent-0.14.0/hackagent/attacks/techniques/indirect_prompt_injection/config.py +0 -215
  390. hackagent-0.14.0/hackagent/attacks/techniques/mml/__init__.py +0 -18
  391. hackagent-0.14.0/hackagent/attacks/techniques/mml/attack.py +0 -345
  392. hackagent-0.14.0/hackagent/attacks/techniques/mml/config.py +0 -115
  393. hackagent-0.14.0/hackagent/attacks/techniques/mml/generation.py +0 -288
  394. hackagent-0.14.0/hackagent/attacks/techniques/pair/__init__.py +0 -15
  395. hackagent-0.14.0/hackagent/attacks/techniques/pair/attack.py +0 -1360
  396. hackagent-0.14.0/hackagent/attacks/techniques/pair/config.py +0 -154
  397. hackagent-0.14.0/hackagent/attacks/techniques/pap/__init__.py +0 -15
  398. hackagent-0.14.0/hackagent/attacks/techniques/pap/attack.py +0 -232
  399. hackagent-0.14.0/hackagent/attacks/techniques/pap/config.py +0 -157
  400. hackagent-0.14.0/hackagent/attacks/techniques/pap/generation.py +0 -518
  401. hackagent-0.14.0/hackagent/attacks/techniques/rag/attack.py +0 -1446
  402. hackagent-0.14.0/hackagent/attacks/techniques/rag/jailbreak.py +0 -439
  403. hackagent-0.14.0/hackagent/attacks/techniques/static_template/__init__.py +0 -20
  404. hackagent-0.14.0/hackagent/attacks/techniques/static_template/attack.py +0 -285
  405. hackagent-0.14.0/hackagent/attacks/techniques/static_template/config.py +0 -134
  406. hackagent-0.14.0/hackagent/attacks/techniques/static_template/generation.py +0 -359
  407. hackagent-0.14.0/hackagent/attacks/techniques/static_template/static_eval.py +0 -668
  408. hackagent-0.14.0/hackagent/attacks/techniques/tap/__init__.py +0 -3
  409. hackagent-0.14.0/hackagent/attacks/techniques/tap/attack.py +0 -337
  410. hackagent-0.14.0/hackagent/attacks/techniques/tap/generation.py +0 -975
  411. hackagent-0.14.0/hackagent/attacks/techniques/tap/tap_evaluation.py +0 -293
  412. hackagent-0.14.0/hackagent/attacks/techniques/tool_output_ipi/__init__.py +0 -47
  413. hackagent-0.14.0/hackagent/attacks/techniques/tool_output_ipi/attack.py +0 -263
  414. hackagent-0.14.0/hackagent/attacks/techniques/tool_output_ipi/config.py +0 -155
  415. hackagent-0.14.0/hackagent/attacks/techniques/tool_output_ipi/generation.py +0 -1007
  416. hackagent-0.14.0/hackagent/attacks/types.py +0 -190
  417. hackagent-0.14.0/hackagent/cli/commands/agent.py +0 -101
  418. hackagent-0.14.0/hackagent/cli/commands/attack/__init__.py +0 -66
  419. hackagent-0.14.0/hackagent/cli/commands/attack/chain.py +0 -247
  420. hackagent-0.14.0/hackagent/cli/commands/attack/config.py +0 -109
  421. hackagent-0.14.0/hackagent/cli/commands/attack/display.py +0 -237
  422. hackagent-0.14.0/hackagent/cli/commands/attack/group.py +0 -119
  423. hackagent-0.14.0/hackagent/cli/commands/attack/info.py +0 -82
  424. hackagent-0.14.0/hackagent/cli/commands/attack/options.py +0 -82
  425. hackagent-0.14.0/hackagent/cli/commands/attack/runner.py +0 -175
  426. hackagent-0.14.0/hackagent/cli/commands/attack/strategies.py +0 -108
  427. hackagent-0.14.0/hackagent/cli/commands/claude.py +0 -288
  428. hackagent-0.14.0/hackagent/cli/commands/codex.py +0 -291
  429. hackagent-0.14.0/hackagent/cli/commands/scan/__init__.py +0 -47
  430. hackagent-0.14.0/hackagent/cli/commands/scan/command.py +0 -448
  431. hackagent-0.14.0/hackagent/cli/commands/scan/helpers.py +0 -120
  432. hackagent-0.14.0/hackagent/cli/commands/scan/quick.py +0 -181
  433. hackagent-0.14.0/hackagent/cli/config.py +0 -222
  434. hackagent-0.14.0/hackagent/cli/tui/app.py +0 -324
  435. hackagent-0.14.0/hackagent/cli/tui/attack_specs/__init__.py +0 -50
  436. hackagent-0.14.0/hackagent/cli/tui/attack_specs/registry.py +0 -41
  437. hackagent-0.14.0/hackagent/cli/tui/attack_specs/specs/__init__.py +0 -58
  438. hackagent-0.14.0/hackagent/cli/tui/attack_specs/specs/advprefix.py +0 -197
  439. hackagent-0.14.0/hackagent/cli/tui/attack_specs/specs/autodan_turbo.py +0 -150
  440. hackagent-0.14.0/hackagent/cli/tui/attack_specs/specs/baseline.py +0 -104
  441. hackagent-0.14.0/hackagent/cli/tui/attack_specs/specs/bon.py +0 -131
  442. hackagent-0.14.0/hackagent/cli/tui/attack_specs/specs/cipherchat.py +0 -215
  443. hackagent-0.14.0/hackagent/cli/tui/attack_specs/specs/fc.py +0 -65
  444. hackagent-0.14.0/hackagent/cli/tui/attack_specs/specs/flipattack.py +0 -107
  445. hackagent-0.14.0/hackagent/cli/tui/attack_specs/specs/h4rm3l.py +0 -100
  446. hackagent-0.14.0/hackagent/cli/tui/attack_specs/specs/mml.py +0 -121
  447. hackagent-0.14.0/hackagent/cli/tui/attack_specs/specs/pair.py +0 -142
  448. hackagent-0.14.0/hackagent/cli/tui/attack_specs/specs/pap.py +0 -139
  449. hackagent-0.14.0/hackagent/cli/tui/attack_specs/specs/static_template.py +0 -146
  450. hackagent-0.14.0/hackagent/cli/tui/attack_specs/specs/tap.py +0 -119
  451. hackagent-0.14.0/hackagent/cli/tui/attack_specs/specs/tfc.py +0 -80
  452. hackagent-0.14.0/hackagent/cli/tui/attack_specs/specs/tool_output_ipi.py +0 -168
  453. hackagent-0.14.0/hackagent/cli/tui/attack_specs/types.py +0 -182
  454. hackagent-0.14.0/hackagent/cli/tui/logger.py +0 -264
  455. hackagent-0.14.0/hackagent/cli/tui/views/__init__.py +0 -22
  456. hackagent-0.14.0/hackagent/cli/tui/views/attacks/__init__.py +0 -37
  457. hackagent-0.14.0/hackagent/cli/tui/views/attacks/executor.py +0 -429
  458. hackagent-0.14.0/hackagent/cli/tui/views/attacks/form.py +0 -531
  459. hackagent-0.14.0/hackagent/cli/tui/views/attacks/helpers.py +0 -131
  460. hackagent-0.14.0/hackagent/cli/tui/views/attacks/layout.py +0 -261
  461. hackagent-0.14.0/hackagent/cli/tui/views/attacks/runner.py +0 -287
  462. hackagent-0.14.0/hackagent/cli/tui/views/attacks/tab.py +0 -391
  463. hackagent-0.14.0/hackagent/cli/tui/views/results/details.py +0 -377
  464. hackagent-0.14.0/hackagent/cli/tui/views/results/tab.py +0 -400
  465. hackagent-0.14.0/hackagent/cli/tui/views/results/table.py +0 -212
  466. hackagent-0.14.0/hackagent/config.py +0 -170
  467. hackagent-0.14.0/hackagent/datasets/intents.py +0 -349
  468. hackagent-0.14.0/hackagent/examples/claude/hack_claude.py +0 -86
  469. hackagent-0.14.0/hackagent/examples/claude/hack_ollama.py +0 -80
  470. hackagent-0.14.0/hackagent/examples/codex/hack_codex.py +0 -89
  471. hackagent-0.14.0/hackagent/examples/codex/hack_ollama.py +0 -77
  472. hackagent-0.14.0/hackagent/examples/google_adk/jailbreak_eval/hack.py +0 -154
  473. hackagent-0.14.0/hackagent/examples/google_adk/multi_tool_agent/hack.py +0 -31
  474. hackagent-0.14.0/hackagent/examples/hermes/hack_hermes.py +0 -94
  475. hackagent-0.14.0/hackagent/examples/langchain/rag/hack.py +0 -61
  476. hackagent-0.14.0/hackagent/examples/litellm_multi_provider/demo.py +0 -245
  477. hackagent-0.14.0/hackagent/examples/ollama/demo.py +0 -117
  478. hackagent-0.14.0/hackagent/examples/ollama/hack.py +0 -154
  479. hackagent-0.14.0/hackagent/examples/ollama/local.py +0 -25
  480. hackagent-0.14.0/hackagent/examples/openai_sdk/db_tool_sandbox/hack.py +0 -101
  481. hackagent-0.14.0/hackagent/examples/openai_sdk/multi_judge/run_flipattack_multi_judge.py +0 -108
  482. hackagent-0.14.0/hackagent/examples/openai_sdk/pc_tool_sandbox/hack.py +0 -116
  483. hackagent-0.14.0/hackagent/examples/openai_sdk/quick_evaluation/run_h4rm3l.py +0 -96
  484. hackagent-0.14.0/hackagent/examples/openai_sdk/rag/hack.py +0 -72
  485. hackagent-0.14.0/hackagent/examples/rag/test_indirect_injection.py +0 -196
  486. hackagent-0.14.0/hackagent/examples/vllm/hack.py +0 -219
  487. hackagent-0.14.0/hackagent/examples/web/hack.py +0 -95
  488. hackagent-0.14.0/hackagent/risks/craft_adversarial_data/__init__.py +0 -14
  489. hackagent-0.14.0/hackagent/risks/excessive_agency/__init__.py +0 -8
  490. hackagent-0.14.0/hackagent/risks/jailbreak/__init__.py +0 -8
  491. hackagent-0.14.0/hackagent/risks/misinformation/__init__.py +0 -8
  492. hackagent-0.14.0/hackagent/risks/model_evasion/__init__.py +0 -8
  493. hackagent-0.14.0/hackagent/risks/prompt_injection/__init__.py +0 -14
  494. hackagent-0.14.0/hackagent/router/__init__.py +0 -32
  495. hackagent-0.14.0/hackagent/router/_chat_registration.py +0 -192
  496. hackagent-0.14.0/hackagent/router/agent.py +0 -607
  497. hackagent-0.14.0/hackagent/router/discovery/__init__.py +0 -53
  498. hackagent-0.14.0/hackagent/router/discovery/scanner.py +0 -489
  499. hackagent-0.14.0/hackagent/router/envelope.py +0 -344
  500. hackagent-0.14.0/hackagent/router/providers/__init__.py +0 -0
  501. hackagent-0.14.0/hackagent/router/router.py +0 -1256
  502. hackagent-0.14.0/hackagent/router/tracking/__init__.py +0 -46
  503. hackagent-0.14.0/hackagent/router/tracking/audit.py +0 -72
  504. hackagent-0.14.0/hackagent/router/tracking/category_classifier.py +0 -659
  505. hackagent-0.14.0/hackagent/router/tracking/context.py +0 -152
  506. hackagent-0.14.0/hackagent/router/tracking/coordinator.py +0 -820
  507. hackagent-0.14.0/hackagent/router/tracking/decorators.py +0 -305
  508. hackagent-0.14.0/hackagent/router/tracking/step.py +0 -540
  509. hackagent-0.14.0/hackagent/router/tracking/tracker.py +0 -872
  510. hackagent-0.14.0/hackagent/router/tracking_logger.py +0 -246
  511. hackagent-0.14.0/hackagent/router/types.py +0 -138
  512. hackagent-0.14.0/hackagent/server/__init__.py +0 -0
  513. hackagent-0.14.0/hackagent/server/storage/__init__.py +0 -0
  514. hackagent-0.14.0/hackagent/server/storage/enums.py +0 -34
  515. hackagent-0.14.0/hackagent/utils.py +0 -144
  516. {hackagent-0.14.0 → hackagent-0.16.0}/LICENSE +0 -0
  517. {hackagent-0.14.0 → hackagent-0.16.0}/hackagent/_version.py +0 -0
  518. {hackagent-0.14.0/hackagent/attacks/shared → hackagent-0.16.0/hackagent/attacks/_lib}/prompt_parser.py +0 -0
  519. /hackagent-0.14.0/hackagent/attacks/shared/utils.py → /hackagent-0.16.0/hackagent/attacks/_lib/transforms.py +0 -0
  520. {hackagent-0.14.0/hackagent/attacks/techniques → hackagent-0.16.0/hackagent/attacks/techniques/static}/fc/prompts.py +0 -0
  521. {hackagent-0.14.0/hackagent/attacks/techniques → hackagent-0.16.0/hackagent/attacks/techniques/static}/mml/prompts.py +0 -0
  522. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/catalog}/risks/craft_adversarial_data/types.py +0 -0
  523. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/catalog}/risks/credential_exposure/types.py +0 -0
  524. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/catalog}/risks/excessive_agency/types.py +0 -0
  525. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/catalog}/risks/input_manipulation_attack/types.py +0 -0
  526. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/catalog}/risks/jailbreak/types.py +0 -0
  527. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/catalog}/risks/malicious_tool_invocation/types.py +0 -0
  528. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/catalog}/risks/misinformation/types.py +0 -0
  529. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/catalog}/risks/model_evasion/types.py +0 -0
  530. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/catalog}/risks/prompt_injection/types.py +0 -0
  531. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/catalog}/risks/public_facing_application_exploitation/types.py +0 -0
  532. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/catalog}/risks/sensitive_information_disclosure/types.py +0 -0
  533. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/catalog}/risks/system_prompt_leakage/types.py +0 -0
  534. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/catalog}/risks/utils.py +0 -0
  535. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/catalog}/risks/vector_embedding_weaknesses_exploit/types.py +0 -0
  536. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/core}/async_utils.py +0 -0
  537. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/core}/errors.py +0 -0
  538. {hackagent-0.14.0 → hackagent-0.16.0}/hackagent/datasets/omnisafebench/dataset.json +0 -0
  539. {hackagent-0.14.0 → hackagent-0.16.0}/hackagent/datasets/providers/__init__.py +0 -0
  540. {hackagent-0.14.0 → hackagent-0.16.0}/hackagent/examples/google_adk/jailbreak_eval/__init__.py +0 -0
  541. {hackagent-0.14.0 → hackagent-0.16.0}/hackagent/examples/google_adk/jailbreak_eval/agent.py +0 -0
  542. {hackagent-0.14.0 → hackagent-0.16.0}/hackagent/examples/google_adk/multi_tool_agent/__init__.py +0 -0
  543. {hackagent-0.14.0 → hackagent-0.16.0}/hackagent/examples/google_adk/multi_tool_agent/agent.py +0 -0
  544. {hackagent-0.14.0 → hackagent-0.16.0}/hackagent/examples/langchain/rag/agent_client.py +0 -0
  545. {hackagent-0.14.0 → hackagent-0.16.0}/hackagent/examples/langchain/rag/agent_server.py +0 -0
  546. {hackagent-0.14.0 → hackagent-0.16.0}/hackagent/examples/langchain/rag/ingest.py +0 -0
  547. {hackagent-0.14.0 → hackagent-0.16.0}/hackagent/examples/langchain/rag/policies.pdf +0 -0
  548. {hackagent-0.14.0 → hackagent-0.16.0}/hackagent/examples/langchain/rag/read_db.py +0 -0
  549. {hackagent-0.14.0 → hackagent-0.16.0}/hackagent/examples/litellm_multi_provider/__init__.py +0 -0
  550. {hackagent-0.14.0 → hackagent-0.16.0}/hackagent/examples/openai_sdk/db_tool_sandbox/agent.py +0 -0
  551. {hackagent-0.14.0 → hackagent-0.16.0}/hackagent/examples/openai_sdk/db_tool_sandbox/sandbox.db +0 -0
  552. {hackagent-0.14.0 → hackagent-0.16.0}/hackagent/examples/openai_sdk/pc_tool_sandbox/agent.py +0 -0
  553. {hackagent-0.14.0 → hackagent-0.16.0}/hackagent/examples/openai_sdk/pc_tool_sandbox/confidential/db_credentials.txt +0 -0
  554. {hackagent-0.14.0 → hackagent-0.16.0}/hackagent/examples/openai_sdk/rag/agent_server.py +0 -0
  555. {hackagent-0.14.0 → hackagent-0.16.0}/hackagent/examples/openai_sdk/rag/ingest.py +0 -0
  556. {hackagent-0.14.0 → hackagent-0.16.0}/hackagent/examples/openai_sdk/rag/policies.pdf +0 -0
  557. {hackagent-0.14.0 → hackagent-0.16.0}/hackagent/examples/rag/.gitignore +0 -0
  558. {hackagent-0.14.0 → hackagent-0.16.0}/hackagent/examples/rag/test_data/gender_studies_overview.txt +0 -0
  559. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/interfaces}/cli/__init__.py +0 -0
  560. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/interfaces}/cli/commands/__init__.py +0 -0
  561. {hackagent-0.14.0/hackagent → hackagent-0.16.0/hackagent/interfaces}/cli/safe_stdio.py +0 -0
  562. {hackagent-0.14.0/hackagent/cli → hackagent-0.16.0/hackagent/interfaces}/tui/theme.py +0 -0
  563. {hackagent-0.14.0/hackagent/cli → hackagent-0.16.0/hackagent/interfaces}/tui/views/results/formatters/datetimes.py +0 -0
  564. {hackagent-0.14.0/hackagent/cli → hackagent-0.16.0/hackagent/interfaces}/tui/views/results/formatters/text.py +0 -0
  565. {hackagent-0.14.0/hackagent/cli → hackagent-0.16.0/hackagent/interfaces}/tui/widgets/clipboard.py +0 -0
  566. {hackagent-0.14.0/hackagent/server/webui → hackagent-0.16.0/hackagent/interfaces/web}/static/.gitignore +0 -0
  567. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/__init__.py +0 -0
  568. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/agent/__init__.py +0 -0
  569. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/agent/agent_create.py +0 -0
  570. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/agent/agent_destroy.py +0 -0
  571. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/agent/agent_list.py +0 -0
  572. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/agent/agent_partial_update.py +0 -0
  573. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/agent/agent_retrieve.py +0 -0
  574. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/agent/agent_update.py +0 -0
  575. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/apilogs/__init__.py +0 -0
  576. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/apilogs/apilogs_list.py +0 -0
  577. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/apilogs/apilogs_retrieve.py +0 -0
  578. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/apilogs/apilogs_summary_retrieve.py +0 -0
  579. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/attack/__init__.py +0 -0
  580. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/attack/attack_create.py +0 -0
  581. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/attack/attack_destroy.py +0 -0
  582. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/attack/attack_list.py +0 -0
  583. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/attack/attack_partial_update.py +0 -0
  584. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/attack/attack_retrieve.py +0 -0
  585. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/attack/attack_update.py +0 -0
  586. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/checkout/__init__.py +0 -0
  587. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/checkout/checkout_create.py +0 -0
  588. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/generate/__init__.py +0 -0
  589. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/generate/v1_chat_completions_create.py +0 -0
  590. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/judge/__init__.py +0 -0
  591. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/judge/judge_create.py +0 -0
  592. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/key/__init__.py +0 -0
  593. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/key/key_context_retrieve.py +0 -0
  594. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/key/key_create.py +0 -0
  595. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/key/key_destroy.py +0 -0
  596. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/key/key_list.py +0 -0
  597. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/key/key_retrieve.py +0 -0
  598. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/organization/__init__.py +0 -0
  599. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/organization/organization_create.py +0 -0
  600. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/organization/organization_destroy.py +0 -0
  601. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/organization/organization_list.py +0 -0
  602. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/organization/organization_me_retrieve.py +0 -0
  603. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/organization/organization_partial_update.py +0 -0
  604. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/organization/organization_retrieve.py +0 -0
  605. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/organization/organization_update.py +0 -0
  606. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/result/__init__.py +0 -0
  607. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/result/result_create.py +0 -0
  608. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/result/result_destroy.py +0 -0
  609. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/result/result_list.py +0 -0
  610. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/result/result_partial_update.py +0 -0
  611. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/result/result_retrieve.py +0 -0
  612. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/result/result_trace_create.py +0 -0
  613. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/result/result_update.py +0 -0
  614. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/run/__init__.py +0 -0
  615. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/run/run_create.py +0 -0
  616. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/run/run_destroy.py +0 -0
  617. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/run/run_list.py +0 -0
  618. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/run/run_partial_update.py +0 -0
  619. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/run/run_result_create.py +0 -0
  620. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/run/run_retrieve.py +0 -0
  621. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/run/run_run_tests_create.py +0 -0
  622. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/run/run_update.py +0 -0
  623. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/user/__init__.py +0 -0
  624. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/user/user_create.py +0 -0
  625. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/user/user_destroy.py +0 -0
  626. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/user/user_list.py +0 -0
  627. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/user/user_me_retrieve.py +0 -0
  628. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/user/user_me_update.py +0 -0
  629. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/user/user_partial_update.py +0 -0
  630. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/user/user_retrieve.py +0 -0
  631. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/api/user/user_update.py +0 -0
  632. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/client.py +0 -0
  633. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent/storage/_http}/types.py +0 -0
  634. {hackagent-0.14.0/hackagent/server → hackagent-0.16.0/hackagent}/storage/buckets.py +0 -0
@@ -1,5 +1,6 @@
1
1
  # Custom
2
2
  logs/
3
+ .logs/
3
4
  *.sbatch
4
5
  .ruff_cache/
5
6
  reports/
@@ -71,6 +72,7 @@ htmlcov/
71
72
  .cache
72
73
  nosetests.xml
73
74
  coverage.xml
75
+ coverage.json
74
76
  *.cover
75
77
  .hypothesis/
76
78
  .pytest_cache/
@@ -147,5 +149,9 @@ tests/e2e/attacks/
147
149
  snapshot_report.html
148
150
 
149
151
  # Web UI bundle (built by scripts/build_webui.sh)
150
- hackagent/server/webui/static/*
151
- !hackagent/server/webui/static/.gitignore
152
+ hackagent/interfaces/web/static/*
153
+ !hackagent/interfaces/web/static/.gitignore
154
+
155
+ # Results exported from the TUI (hackagent/interfaces/tui/views/results/export.py)
156
+ hackagent_results_*.csv
157
+ hackagent_results_*.json
@@ -0,0 +1,121 @@
1
+ Metadata-Version: 2.5
2
+ Name: hackagent
3
+ Version: 0.16.0
4
+ Summary: HackAgent is an open-source security toolkit to detect vulnerabilities of your AI Agents.
5
+ Author-email: AI Security Lab <ais@ai4i.it>
6
+ License: Apache-2.0
7
+ License-File: LICENSE
8
+ Keywords: agents,ai,security,testing,vulnerabilities
9
+ Classifier: Development Status :: 4 - Beta
10
+ Classifier: Intended Audience :: Developers
11
+ Classifier: License :: OSI Approved :: Apache Software License
12
+ Classifier: Programming Language :: Python :: 3
13
+ Classifier: Programming Language :: Python :: 3.10
14
+ Classifier: Programming Language :: Python :: 3.11
15
+ Classifier: Programming Language :: Python :: 3.12
16
+ Classifier: Programming Language :: Python :: 3.13
17
+ Requires-Python: >=3.10
18
+ Requires-Dist: click>=8.1.0
19
+ Requires-Dist: httpx>=0.27.0
20
+ Requires-Dist: litellm>=1.69.2
21
+ Requires-Dist: openai>=1.0.0
22
+ Requires-Dist: pydantic[email]>=2.0
23
+ Requires-Dist: python-dateutil>=2.8.0
24
+ Requires-Dist: pyyaml>=6.0.0
25
+ Requires-Dist: rich>=14.0.0
26
+ Provides-Extra: browser
27
+ Requires-Dist: playwright>=1.40; extra == 'browser'
28
+ Provides-Extra: hf
29
+ Requires-Dist: datasets>=2.14.0; extra == 'hf'
30
+ Provides-Extra: rag
31
+ Requires-Dist: faiss-cpu>=1.13.2; extra == 'rag'
32
+ Requires-Dist: numpy>=1.26; extra == 'rag'
33
+ Provides-Extra: tui
34
+ Requires-Dist: textual>=1.0.0; extra == 'tui'
35
+ Provides-Extra: vision
36
+ Requires-Dist: pillow>=10.0.0; extra == 'vision'
37
+ Provides-Extra: web
38
+ Requires-Dist: flask>=3.1.3; extra == 'web'
39
+ Requires-Dist: hackagent-webui<1.0,>=0.2; extra == 'web'
40
+ Description-Content-Type: text/markdown
41
+
42
+ <div align="center">
43
+
44
+ <img src="https://docs.hackagent.dev/img/banner.svg" alt="HackAgent" width="800">
45
+
46
+ **The open-source red-team toolkit for AI models and agents**
47
+
48
+ [Docs](https://docs.hackagent.dev/) · [App](https://app.hackagent.dev/) · [API](https://api.hackagent.dev/schema/redoc)
49
+
50
+ [![PyPI](https://img.shields.io/pypi/v/hackagent)](https://pypi.org/project/hackagent/)
51
+ ![Python](https://img.shields.io/badge/python-3.10%2B-blue)
52
+ ![License](https://img.shields.io/badge/license-Apache%202.0-green)
53
+ ![CI](https://img.shields.io/github/actions/workflow/status/AISecurityLab/hackagent/ci.yml)
54
+ ![Coverage](https://img.shields.io/codecov/c/github/AISecurityLab/hackagent)
55
+
56
+ </div>
57
+
58
+ HackAgent attacks your AI model or agent with research-backed techniques —
59
+ jailbreaks, prompt injection, tool misuse — and has judge models score every
60
+ reply. You get a measured success rate per attack, so you can see how exposed a
61
+ target is and whether a fix helped.
62
+
63
+ ## See it run
64
+
65
+ **Terminal UI.** Start from an example, change what you need, run it.
66
+
67
+ <img src="https://raw.githubusercontent.com/AISecurityLab/hackagent/main/docs/static/gifs/hackagent-tui.gif" alt="Building and running a campaign in the HackAgent terminal UI" width="100%">
68
+
69
+ **Command line.** The same campaign is one YAML file you can edit, check and run, in a shell or in CI.
70
+
71
+ <img src="https://raw.githubusercontent.com/AISecurityLab/hackagent/main/docs/static/gifs/hackagent-cli.gif" alt="Copying, editing, validating and running a campaign from the command line" width="100%">
72
+
73
+ **Dashboard.** Browse runs, results and traces with `hackagent web`, or on [app.hackagent.dev](https://app.hackagent.dev/).
74
+
75
+ <img src="https://raw.githubusercontent.com/AISecurityLab/hackagent/main/docs/static/gifs/hackagent-dashboard.gif" alt="Browsing campaign results in the HackAgent dashboard" width="100%">
76
+
77
+ ## Quick start
78
+
79
+ ```bash
80
+ pip install 'hackagent[tui]'
81
+ hackagent # opens the terminal UI
82
+ ```
83
+
84
+ Or run an example end to end, fully local, with [Ollama](https://ollama.com):
85
+
86
+ ```bash
87
+ ollama pull gemma3:4b
88
+ hackagent examples copy h4rm3l-demo
89
+ hackagent campaign run h4rm3l-demo.yaml
90
+ ```
91
+
92
+ No API key needed: results go to a local database unless a campaign says
93
+ otherwise.
94
+
95
+ ## Learn more
96
+
97
+ - [Installation](https://docs.hackagent.dev/getting-started/installation) — extras, and standalone binaries that need no Python
98
+ - [Your first campaign](https://docs.hackagent.dev/getting-started/first-campaign) — write, check and run one
99
+ - [Concepts](https://docs.hackagent.dev/concepts) — attacks, judges and how a run works
100
+ - [Attacks](https://docs.hackagent.dev/reference/attacks) and the [campaign file reference](https://docs.hackagent.dev/reference/campaign)
101
+ - [Dashboard](https://docs.hackagent.dev/getting-started/dashboard) — `hackagent web`, locally or against your account
102
+
103
+ Questions? Join the [discussions](https://github.com/AISecurityLab/hackagent/discussions) or email ais@ai4i.it.
104
+
105
+ ## Responsible use
106
+
107
+ HackAgent is for authorized security testing only. Test systems you own or
108
+ have written permission to test, and report what you find through coordinated
109
+ disclosure. Read the [responsible disclosure guidelines](https://docs.hackagent.dev/security/responsible-disclosure)
110
+ and our [security policy](SECURITY.md).
111
+
112
+ ## Contributing
113
+
114
+ Contributions are welcome. See [CONTRIBUTING.md](CONTRIBUTING.md) and
115
+ [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md).
116
+
117
+ ## License
118
+
119
+ Licensed under Apache-2.0. See [LICENSE](LICENSE). HackAgent is intended for
120
+ security research and AI safety improvement; the authors are not responsible
121
+ for misuse.
@@ -0,0 +1,80 @@
1
+ <div align="center">
2
+
3
+ <img src="https://docs.hackagent.dev/img/banner.svg" alt="HackAgent" width="800">
4
+
5
+ **The open-source red-team toolkit for AI models and agents**
6
+
7
+ [Docs](https://docs.hackagent.dev/) · [App](https://app.hackagent.dev/) · [API](https://api.hackagent.dev/schema/redoc)
8
+
9
+ [![PyPI](https://img.shields.io/pypi/v/hackagent)](https://pypi.org/project/hackagent/)
10
+ ![Python](https://img.shields.io/badge/python-3.10%2B-blue)
11
+ ![License](https://img.shields.io/badge/license-Apache%202.0-green)
12
+ ![CI](https://img.shields.io/github/actions/workflow/status/AISecurityLab/hackagent/ci.yml)
13
+ ![Coverage](https://img.shields.io/codecov/c/github/AISecurityLab/hackagent)
14
+
15
+ </div>
16
+
17
+ HackAgent attacks your AI model or agent with research-backed techniques —
18
+ jailbreaks, prompt injection, tool misuse — and has judge models score every
19
+ reply. You get a measured success rate per attack, so you can see how exposed a
20
+ target is and whether a fix helped.
21
+
22
+ ## See it run
23
+
24
+ **Terminal UI.** Start from an example, change what you need, run it.
25
+
26
+ <img src="https://raw.githubusercontent.com/AISecurityLab/hackagent/main/docs/static/gifs/hackagent-tui.gif" alt="Building and running a campaign in the HackAgent terminal UI" width="100%">
27
+
28
+ **Command line.** The same campaign is one YAML file you can edit, check and run, in a shell or in CI.
29
+
30
+ <img src="https://raw.githubusercontent.com/AISecurityLab/hackagent/main/docs/static/gifs/hackagent-cli.gif" alt="Copying, editing, validating and running a campaign from the command line" width="100%">
31
+
32
+ **Dashboard.** Browse runs, results and traces with `hackagent web`, or on [app.hackagent.dev](https://app.hackagent.dev/).
33
+
34
+ <img src="https://raw.githubusercontent.com/AISecurityLab/hackagent/main/docs/static/gifs/hackagent-dashboard.gif" alt="Browsing campaign results in the HackAgent dashboard" width="100%">
35
+
36
+ ## Quick start
37
+
38
+ ```bash
39
+ pip install 'hackagent[tui]'
40
+ hackagent # opens the terminal UI
41
+ ```
42
+
43
+ Or run an example end to end, fully local, with [Ollama](https://ollama.com):
44
+
45
+ ```bash
46
+ ollama pull gemma3:4b
47
+ hackagent examples copy h4rm3l-demo
48
+ hackagent campaign run h4rm3l-demo.yaml
49
+ ```
50
+
51
+ No API key needed: results go to a local database unless a campaign says
52
+ otherwise.
53
+
54
+ ## Learn more
55
+
56
+ - [Installation](https://docs.hackagent.dev/getting-started/installation) — extras, and standalone binaries that need no Python
57
+ - [Your first campaign](https://docs.hackagent.dev/getting-started/first-campaign) — write, check and run one
58
+ - [Concepts](https://docs.hackagent.dev/concepts) — attacks, judges and how a run works
59
+ - [Attacks](https://docs.hackagent.dev/reference/attacks) and the [campaign file reference](https://docs.hackagent.dev/reference/campaign)
60
+ - [Dashboard](https://docs.hackagent.dev/getting-started/dashboard) — `hackagent web`, locally or against your account
61
+
62
+ Questions? Join the [discussions](https://github.com/AISecurityLab/hackagent/discussions) or email ais@ai4i.it.
63
+
64
+ ## Responsible use
65
+
66
+ HackAgent is for authorized security testing only. Test systems you own or
67
+ have written permission to test, and report what you find through coordinated
68
+ disclosure. Read the [responsible disclosure guidelines](https://docs.hackagent.dev/security/responsible-disclosure)
69
+ and our [security policy](SECURITY.md).
70
+
71
+ ## Contributing
72
+
73
+ Contributions are welcome. See [CONTRIBUTING.md](CONTRIBUTING.md) and
74
+ [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md).
75
+
76
+ ## License
77
+
78
+ Licensed under Apache-2.0. See [LICENSE](LICENSE). HackAgent is intended for
79
+ security research and AI safety improvement; the authors are not responsible
80
+ for misuse.
@@ -0,0 +1,33 @@
1
+ # Copyright 2026 - AI4I. All rights reserved.
2
+ # SPDX-License-Identifier: Apache-2.0
3
+
4
+ """A client library for HackAgent — AI Agent Security Testing.
5
+
6
+ The package root exports the facade and public types only. Importing it does
7
+ not install a logging handler and does not import interface toolkits.
8
+ """
9
+
10
+ from hackagent.client import HackAgent
11
+ from hackagent.core.contracts import AgentType
12
+ from hackagent.core.errors import ApiError, HackAgentError
13
+ from hackagent.core.settings import (
14
+ DEFAULT_REMOTE_BASE_URL,
15
+ Settings,
16
+ Source,
17
+ read_config_file,
18
+ resolve_ollama_base_url,
19
+ resolve_remote_base_url,
20
+ )
21
+
22
+ __all__ = (
23
+ "AgentType",
24
+ "ApiError",
25
+ "DEFAULT_REMOTE_BASE_URL",
26
+ "HackAgent",
27
+ "HackAgentError",
28
+ "Settings",
29
+ "Source",
30
+ "read_config_file",
31
+ "resolve_ollama_base_url",
32
+ "resolve_remote_base_url",
33
+ )
@@ -0,0 +1,12 @@
1
+ # Copyright 2026 - AI4I. All rights reserved.
2
+ # SPDX-License-Identifier: Apache-2.0
3
+
4
+ """
5
+ Attack techniques for the HackAgent security assessment framework.
6
+
7
+ Techniques live under ``techniques/``. The composition root that runs them
8
+ is :mod:`hackagent.orchestrator`. Judges live in ``hackagent.evaluation``.
9
+ Run records live in ``hackagent.tracking``.
10
+ """
11
+
12
+ __all__: list[str] = []
@@ -0,0 +1,22 @@
1
+ # Copyright 2026 - AI4I. All rights reserved.
2
+ # SPDX-License-Identifier: Apache-2.0
3
+
4
+ """Shared attack helpers.
5
+
6
+ Depth-0 techniques import only ``hackagent.core`` and this package — not
7
+ other depth-0 packages or sibling techniques. What remains here is the live
8
+ set: response extraction (shared with the model layer), prompt parsing,
9
+ templating transforms, and the graphviz helper.
10
+ """
11
+
12
+ from hackagent.attacks._lib.response import (
13
+ extract_response_content,
14
+ get_guardrail_info,
15
+ is_guardrail_response,
16
+ )
17
+
18
+ __all__ = [
19
+ "extract_response_content",
20
+ "get_guardrail_info",
21
+ "is_guardrail_response",
22
+ ]
@@ -0,0 +1,21 @@
1
+ # Copyright 2026 - AI4I. All rights reserved.
2
+ # SPDX-License-Identifier: Apache-2.0
3
+
4
+ """Graphviz bootstrap for flowchart rendering (FC-Attack).
5
+
6
+ ``ensure_graphviz()`` is the public entry point used by interfaces and
7
+ the FC renderer.
8
+ """
9
+
10
+ from __future__ import annotations
11
+
12
+ from typing import Optional
13
+
14
+
15
+ def ensure_graphviz(allow_download: Optional[bool] = None) -> Optional[str]:
16
+ """Ensure Graphviz ``dot`` is available and return its resolved path."""
17
+ from hackagent.attacks.techniques.static.fc.flowchart_renderer import (
18
+ ensure_graphviz,
19
+ )
20
+
21
+ return ensure_graphviz(allow_download=allow_download)
@@ -0,0 +1,84 @@
1
+ # Copyright 2026 - AI4I. All rights reserved.
2
+ # SPDX-License-Identifier: Apache-2.0
3
+
4
+ """Response helpers for attack modules.
5
+
6
+ Prefer :class:`~hackagent.core.contracts.Completion` properties
7
+ (``text``, ``ok``, ``blocked``, ``guardrail_info``). These helpers keep
8
+ legacy envelope/dict and OpenAI-style objects working until every
9
+ technique calls ``LLM.complete``.
10
+ """
11
+
12
+ from __future__ import annotations
13
+
14
+ import logging
15
+ from typing import Any, Dict, Optional
16
+
17
+ from hackagent.core.contracts import Completion
18
+
19
+ logger = logging.getLogger("hackagent.attacks._lib.response")
20
+
21
+ GUARDRAIL_ADAPTER_TYPE = "guardrail"
22
+ GUARDRAIL_BLOCKED_MSG = "Blocked by guardrail"
23
+
24
+
25
+ def extract_response_content(
26
+ response: Any,
27
+ logger: Optional[logging.Logger] = None,
28
+ ) -> Optional[str]:
29
+ """Extract text content from a Completion or legacy LLM response."""
30
+ if response is None:
31
+ return None
32
+
33
+ log = logger or globals()["logger"]
34
+
35
+ if isinstance(response, Completion):
36
+ return response.text or None
37
+
38
+ # OpenAI-style object with choices attribute
39
+ if hasattr(response, "choices") and response.choices:
40
+ try:
41
+ message = response.choices[0].message
42
+ content = message.content if message else None
43
+ return content or None
44
+ except (AttributeError, IndexError) as e:
45
+ log.debug(f"Failed to extract from OpenAI-style response: {e}")
46
+
47
+ if isinstance(response, dict):
48
+ content = response.get("generated_text") or response.get("processed_response")
49
+ if content:
50
+ return content
51
+ error_msg = response.get("error_message")
52
+ if error_msg:
53
+ log.debug(f"Response contains error: {error_msg}")
54
+ return None
55
+
56
+ if isinstance(response, str):
57
+ return response if response else None
58
+
59
+ # Duck-typed Completion-like (e.g. FakeLLM extras)
60
+ text = getattr(response, "text", None)
61
+ if isinstance(text, str):
62
+ return text or None
63
+
64
+ return None
65
+
66
+
67
+ def is_guardrail_response(response: Any) -> bool:
68
+ """Return True if *response* is a guardrail-blocked response."""
69
+ if isinstance(response, Completion):
70
+ return response.blocked
71
+ if not isinstance(response, dict):
72
+ return False
73
+ return response.get("adapter_type") == GUARDRAIL_ADAPTER_TYPE
74
+
75
+
76
+ def get_guardrail_info(response: Any) -> Dict[str, Any]:
77
+ """Extract guardrail metadata from a blocked response."""
78
+ if isinstance(response, Completion):
79
+ return response.guardrail_info
80
+ if not is_guardrail_response(response):
81
+ return {}
82
+ if isinstance(response, dict):
83
+ return response.get("agent_specific_data") or {}
84
+ return {}
@@ -15,7 +15,7 @@ Constants:
15
15
  SUCCESS_PATTERNS: Regex patterns for detecting successful attacks
16
16
 
17
17
  Usage:
18
- from hackagent.attacks.generator.templates import (
18
+ from hackagent.attacks._lib.templates import (
19
19
  AttackTemplates,
20
20
  REFUSAL_PATTERNS,
21
21
  SUCCESS_PATTERNS,
@@ -25,7 +25,7 @@ Usage:
25
25
  import codecs
26
26
  from typing import List
27
27
 
28
- from hackagent.attacks.shared.utils import encode_base64
28
+ from hackagent.attacks._lib.transforms import encode_base64
29
29
 
30
30
 
31
31
  class AttackTemplates:
@@ -0,0 +1,31 @@
1
+ # Copyright 2026 - AI4I. All rights reserved.
2
+ # SPDX-License-Identifier: Apache-2.0
3
+
4
+ """
5
+ Attack techniques module.
6
+
7
+ Techniques define HOW we generate attacks. Each technique is a complete
8
+ implementation that can target different objectives.
9
+
10
+ Techniques are grouped by category, the same grouping the docs use:
11
+
12
+ - static/: fixed transforms, no attacker refinement loop (baseline,
13
+ static_template, flipattack, cipherchat, h4rm3l, mml, fc/tfc)
14
+ - adaptive/: independent attempts that refine or search (pair, tap, pap,
15
+ bon, advprefix, autodan_turbo)
16
+ - multi_turn/: one growing conversation with the target (crescendo)
17
+ - indirect/: payload delivered through retrieved content or tool output
18
+ (rag, tool_output_ipi)
19
+
20
+ The folder follows :mod:`hackagent.catalog.taxonomy`: the ``indirect`` tag
21
+ decides first, otherwise the primary category does.
22
+
23
+ Every technique package holds:
24
+ 1. attack.py - a ``StaticAttack`` or ``IterativeAttack`` subclass
25
+ 2. config.py - its ``AttackParams``: parameters and role fields
26
+
27
+ :mod:`.contract` holds what every attack depends on, :mod:`.registry` maps a
28
+ campaign's attack name to its class, and :mod:`.trace` records what a run did.
29
+ """
30
+
31
+ __all__ = []
@@ -0,0 +1,10 @@
1
+ # Copyright 2026 - AI4I. All rights reserved.
2
+ # SPDX-License-Identifier: Apache-2.0
3
+
4
+ """Adaptive techniques.
5
+
6
+ Many independent attempts that refine or search, without a shared growing
7
+ conversation: pair, tap, pap, bon, advprefix, and autodan_turbo.
8
+
9
+ Importing this package does not import the techniques in it.
10
+ """
@@ -0,0 +1,12 @@
1
+ # Copyright 2026 - AI4I. All rights reserved.
2
+ # SPDX-License-Identifier: Apache-2.0
3
+
4
+ """AdvPrefix: write the opening the target will finish.
5
+
6
+ Based on: https://arxiv.org/abs/2412.10321
7
+ """
8
+
9
+ from .attack import AdvPrefixAttack
10
+ from .config import AdvPrefixParams
11
+
12
+ __all__ = ["AdvPrefixAttack", "AdvPrefixParams"]