wallbreaker-hermes 0.2.2__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 (424) hide show
  1. wallbreaker_hermes-0.2.2/CHANGELOG.md +87 -0
  2. wallbreaker_hermes-0.2.2/LICENSE +661 -0
  3. wallbreaker_hermes-0.2.2/MANIFEST.in +19 -0
  4. wallbreaker_hermes-0.2.2/NOTICE +45 -0
  5. wallbreaker_hermes-0.2.2/PKG-INFO +417 -0
  6. wallbreaker_hermes-0.2.2/README.md +373 -0
  7. wallbreaker_hermes-0.2.2/SECURITY.md +56 -0
  8. wallbreaker_hermes-0.2.2/config.example.toml +170 -0
  9. wallbreaker_hermes-0.2.2/docs/EXTERNAL_DATA.md +34 -0
  10. wallbreaker_hermes-0.2.2/docs/HERMES_LAB.md +246 -0
  11. wallbreaker_hermes-0.2.2/docs/SETUP.md +197 -0
  12. wallbreaker_hermes-0.2.2/docs/UPSTREAM.md +60 -0
  13. wallbreaker_hermes-0.2.2/docs/examples/redteam-gate.yml +64 -0
  14. wallbreaker_hermes-0.2.2/docs/images/dashboard-arsenal.png +0 -0
  15. wallbreaker_hermes-0.2.2/docs/images/dashboard-console.png +0 -0
  16. wallbreaker_hermes-0.2.2/docs/mcp-integration.md +382 -0
  17. wallbreaker_hermes-0.2.2/docs/mcp_client_config.json +18 -0
  18. wallbreaker_hermes-0.2.2/docs/persona_spec.md +707 -0
  19. wallbreaker_hermes-0.2.2/docs/reasoning_token_visibility_methods.md +549 -0
  20. wallbreaker_hermes-0.2.2/integrations/hermes/README.md +57 -0
  21. wallbreaker_hermes-0.2.2/integrations/hermes/examples/clean-manifest.json +8 -0
  22. wallbreaker_hermes-0.2.2/integrations/hermes/examples/synthetic-suite.yaml +22 -0
  23. wallbreaker_hermes-0.2.2/integrations/hermes/skills/wallbreaker-hermes/SKILL.md +110 -0
  24. wallbreaker_hermes-0.2.2/library.lock.toml +83 -0
  25. wallbreaker_hermes-0.2.2/p4rs3lt0ngv3_mcp/__init__.py +12 -0
  26. wallbreaker_hermes-0.2.2/p4rs3lt0ngv3_mcp/__main__.py +4 -0
  27. wallbreaker_hermes-0.2.2/p4rs3lt0ngv3_mcp/bridge.py +171 -0
  28. wallbreaker_hermes-0.2.2/p4rs3lt0ngv3_mcp/format.py +134 -0
  29. wallbreaker_hermes-0.2.2/p4rs3lt0ngv3_mcp/server.py +177 -0
  30. wallbreaker_hermes-0.2.2/presets/example.toml +22 -0
  31. wallbreaker_hermes-0.2.2/pyproject.toml +91 -0
  32. wallbreaker_hermes-0.2.2/scripts/check_release_artifacts.py +151 -0
  33. wallbreaker_hermes-0.2.2/setup.cfg +4 -0
  34. wallbreaker_hermes-0.2.2/tests/test_adapt_seed.py +83 -0
  35. wallbreaker_hermes-0.2.2/tests/test_agent_loop.py +159 -0
  36. wallbreaker_hermes-0.2.2/tests/test_agent_profiles.py +150 -0
  37. wallbreaker_hermes-0.2.2/tests/test_agentic.py +208 -0
  38. wallbreaker_hermes-0.2.2/tests/test_audit_fixes.py +58 -0
  39. wallbreaker_hermes-0.2.2/tests/test_audit_remediation.py +1126 -0
  40. wallbreaker_hermes-0.2.2/tests/test_author_persona.py +224 -0
  41. wallbreaker_hermes-0.2.2/tests/test_bandit.py +328 -0
  42. wallbreaker_hermes-0.2.2/tests/test_baseline.py +96 -0
  43. wallbreaker_hermes-0.2.2/tests/test_best_of_n.py +285 -0
  44. wallbreaker_hermes-0.2.2/tests/test_cache.py +124 -0
  45. wallbreaker_hermes-0.2.2/tests/test_capabilities.py +126 -0
  46. wallbreaker_hermes-0.2.2/tests/test_chat_session.py +153 -0
  47. wallbreaker_hermes-0.2.2/tests/test_cipherchat.py +119 -0
  48. wallbreaker_hermes-0.2.2/tests/test_cjk_obf.py +89 -0
  49. wallbreaker_hermes-0.2.2/tests/test_classifier_target.py +138 -0
  50. wallbreaker_hermes-0.2.2/tests/test_classify.py +33 -0
  51. wallbreaker_hermes-0.2.2/tests/test_claude_code.py +346 -0
  52. wallbreaker_hermes-0.2.2/tests/test_cli_one_shot.py +77 -0
  53. wallbreaker_hermes-0.2.2/tests/test_cluster.py +136 -0
  54. wallbreaker_hermes-0.2.2/tests/test_collection_crossprovider.py +57 -0
  55. wallbreaker_hermes-0.2.2/tests/test_command_quoting.py +68 -0
  56. wallbreaker_hermes-0.2.2/tests/test_complete_temperature.py +161 -0
  57. wallbreaker_hermes-0.2.2/tests/test_config.py +113 -0
  58. wallbreaker_hermes-0.2.2/tests/test_config_mcp.py +68 -0
  59. wallbreaker_hermes-0.2.2/tests/test_continue_target.py +80 -0
  60. wallbreaker_hermes-0.2.2/tests/test_conversation.py +133 -0
  61. wallbreaker_hermes-0.2.2/tests/test_cot_dilution.py +89 -0
  62. wallbreaker_hermes-0.2.2/tests/test_cot_forge.py +146 -0
  63. wallbreaker_hermes-0.2.2/tests/test_crescendo.py +182 -0
  64. wallbreaker_hermes-0.2.2/tests/test_dashboard.py +547 -0
  65. wallbreaker_hermes-0.2.2/tests/test_dashboard_agent_controls.py +128 -0
  66. wallbreaker_hermes-0.2.2/tests/test_dashboard_v2.py +279 -0
  67. wallbreaker_hermes-0.2.2/tests/test_datasets.py +155 -0
  68. wallbreaker_hermes-0.2.2/tests/test_drattack.py +113 -0
  69. wallbreaker_hermes-0.2.2/tests/test_echo.py +117 -0
  70. wallbreaker_hermes-0.2.2/tests/test_eni.py +73 -0
  71. wallbreaker_hermes-0.2.2/tests/test_evolve_persona.py +142 -0
  72. wallbreaker_hermes-0.2.2/tests/test_executions.py +89 -0
  73. wallbreaker_hermes-0.2.2/tests/test_extra_features.py +135 -0
  74. wallbreaker_hermes-0.2.2/tests/test_file_tools.py +104 -0
  75. wallbreaker_hermes-0.2.2/tests/test_fingerprint.py +107 -0
  76. wallbreaker_hermes-0.2.2/tests/test_fire_file.py +106 -0
  77. wallbreaker_hermes-0.2.2/tests/test_fire_push.py +58 -0
  78. wallbreaker_hermes-0.2.2/tests/test_framing_sweep.py +127 -0
  79. wallbreaker_hermes-0.2.2/tests/test_gather_capped.py +35 -0
  80. wallbreaker_hermes-0.2.2/tests/test_gemlib.py +175 -0
  81. wallbreaker_hermes-0.2.2/tests/test_goat.py +93 -0
  82. wallbreaker_hermes-0.2.2/tests/test_harmbench.py +89 -0
  83. wallbreaker_hermes-0.2.2/tests/test_hermes_campaign.py +666 -0
  84. wallbreaker_hermes-0.2.2/tests/test_hermes_campaign_wh4.py +955 -0
  85. wallbreaker_hermes-0.2.2/tests/test_hermes_cli.py +398 -0
  86. wallbreaker_hermes-0.2.2/tests/test_hermes_lab.py +1166 -0
  87. wallbreaker_hermes-0.2.2/tests/test_hermes_skill.py +80 -0
  88. wallbreaker_hermes-0.2.2/tests/test_history_index.py +163 -0
  89. wallbreaker_hermes-0.2.2/tests/test_ica.py +91 -0
  90. wallbreaker_hermes-0.2.2/tests/test_image_edit.py +243 -0
  91. wallbreaker_hermes-0.2.2/tests/test_image_framing.py +84 -0
  92. wallbreaker_hermes-0.2.2/tests/test_image_target.py +321 -0
  93. wallbreaker_hermes-0.2.2/tests/test_inference_logging_compact.py +77 -0
  94. wallbreaker_hermes-0.2.2/tests/test_jailbreaks.py +64 -0
  95. wallbreaker_hermes-0.2.2/tests/test_judge_obfuscation.py +135 -0
  96. wallbreaker_hermes-0.2.2/tests/test_judging.py +55 -0
  97. wallbreaker_hermes-0.2.2/tests/test_l1b3rt4s_hygiene.py +31 -0
  98. wallbreaker_hermes-0.2.2/tests/test_l1b3rt4s_search.py +43 -0
  99. wallbreaker_hermes-0.2.2/tests/test_leak_verify.py +74 -0
  100. wallbreaker_hermes-0.2.2/tests/test_live_feedback.py +135 -0
  101. wallbreaker_hermes-0.2.2/tests/test_logging.py +92 -0
  102. wallbreaker_hermes-0.2.2/tests/test_loop_features.py +114 -0
  103. wallbreaker_hermes-0.2.2/tests/test_loop_features10.py +53 -0
  104. wallbreaker_hermes-0.2.2/tests/test_loop_features11.py +87 -0
  105. wallbreaker_hermes-0.2.2/tests/test_loop_features12.py +64 -0
  106. wallbreaker_hermes-0.2.2/tests/test_loop_features13.py +70 -0
  107. wallbreaker_hermes-0.2.2/tests/test_loop_features14.py +134 -0
  108. wallbreaker_hermes-0.2.2/tests/test_loop_features15.py +76 -0
  109. wallbreaker_hermes-0.2.2/tests/test_loop_features16.py +73 -0
  110. wallbreaker_hermes-0.2.2/tests/test_loop_features17.py +87 -0
  111. wallbreaker_hermes-0.2.2/tests/test_loop_features18.py +94 -0
  112. wallbreaker_hermes-0.2.2/tests/test_loop_features19.py +154 -0
  113. wallbreaker_hermes-0.2.2/tests/test_loop_features2.py +115 -0
  114. wallbreaker_hermes-0.2.2/tests/test_loop_features20.py +39 -0
  115. wallbreaker_hermes-0.2.2/tests/test_loop_features3.py +170 -0
  116. wallbreaker_hermes-0.2.2/tests/test_loop_features4.py +151 -0
  117. wallbreaker_hermes-0.2.2/tests/test_loop_features5.py +103 -0
  118. wallbreaker_hermes-0.2.2/tests/test_loop_features6.py +81 -0
  119. wallbreaker_hermes-0.2.2/tests/test_loop_features7.py +92 -0
  120. wallbreaker_hermes-0.2.2/tests/test_loop_features8.py +83 -0
  121. wallbreaker_hermes-0.2.2/tests/test_loop_features9.py +47 -0
  122. wallbreaker_hermes-0.2.2/tests/test_mcp_bridge.py +94 -0
  123. wallbreaker_hermes-0.2.2/tests/test_model_catalog.py +117 -0
  124. wallbreaker_hermes-0.2.2/tests/test_multi_fire.py +79 -0
  125. wallbreaker_hermes-0.2.2/tests/test_multiline_input.py +161 -0
  126. wallbreaker_hermes-0.2.2/tests/test_narrate.py +147 -0
  127. wallbreaker_hermes-0.2.2/tests/test_narrative_persona_splinter.py +143 -0
  128. wallbreaker_hermes-0.2.2/tests/test_new_attack_tools.py +249 -0
  129. wallbreaker_hermes-0.2.2/tests/test_optimize.py +142 -0
  130. wallbreaker_hermes-0.2.2/tests/test_optimize_prefill.py +52 -0
  131. wallbreaker_hermes-0.2.2/tests/test_pair_sweep.py +154 -0
  132. wallbreaker_hermes-0.2.2/tests/test_parsel_engine.py +164 -0
  133. wallbreaker_hermes-0.2.2/tests/test_parsel_server.py +46 -0
  134. wallbreaker_hermes-0.2.2/tests/test_persona_forge.py +233 -0
  135. wallbreaker_hermes-0.2.2/tests/test_persona_modulate.py +119 -0
  136. wallbreaker_hermes-0.2.2/tests/test_persona_spec.py +188 -0
  137. wallbreaker_hermes-0.2.2/tests/test_persuasion_attack.py +115 -0
  138. wallbreaker_hermes-0.2.2/tests/test_prefill_seed.py +120 -0
  139. wallbreaker_hermes-0.2.2/tests/test_presets.py +218 -0
  140. wallbreaker_hermes-0.2.2/tests/test_profile_target.py +217 -0
  141. wallbreaker_hermes-0.2.2/tests/test_provider_registry.py +228 -0
  142. wallbreaker_hermes-0.2.2/tests/test_provider_timeout.py +92 -0
  143. wallbreaker_hermes-0.2.2/tests/test_providers.py +257 -0
  144. wallbreaker_hermes-0.2.2/tests/test_reasoning.py +201 -0
  145. wallbreaker_hermes-0.2.2/tests/test_reasoning_extract.py +352 -0
  146. wallbreaker_hermes-0.2.2/tests/test_reasoning_fallback.py +35 -0
  147. wallbreaker_hermes-0.2.2/tests/test_recommend_next.py +118 -0
  148. wallbreaker_hermes-0.2.2/tests/test_regrade.py +82 -0
  149. wallbreaker_hermes-0.2.2/tests/test_release_artifacts.py +25 -0
  150. wallbreaker_hermes-0.2.2/tests/test_report_tools.py +197 -0
  151. wallbreaker_hermes-0.2.2/tests/test_request_gate.py +209 -0
  152. wallbreaker_hermes-0.2.2/tests/test_run_panel.py +101 -0
  153. wallbreaker_hermes-0.2.2/tests/test_scroll_follow.py +50 -0
  154. wallbreaker_hermes-0.2.2/tests/test_seed_sweep.py +182 -0
  155. wallbreaker_hermes-0.2.2/tests/test_session.py +80 -0
  156. wallbreaker_hermes-0.2.2/tests/test_session_card.py +447 -0
  157. wallbreaker_hermes-0.2.2/tests/test_session_load_runlog.py +61 -0
  158. wallbreaker_hermes-0.2.2/tests/test_shell_tool.py +56 -0
  159. wallbreaker_hermes-0.2.2/tests/test_skeleton_key.py +106 -0
  160. wallbreaker_hermes-0.2.2/tests/test_special_tokens.py +55 -0
  161. wallbreaker_hermes-0.2.2/tests/test_st3gg.py +90 -0
  162. wallbreaker_hermes-0.2.2/tests/test_state.py +125 -0
  163. wallbreaker_hermes-0.2.2/tests/test_strategy.py +219 -0
  164. wallbreaker_hermes-0.2.2/tests/test_swarm.py +321 -0
  165. wallbreaker_hermes-0.2.2/tests/test_sysprompt_load.py +79 -0
  166. wallbreaker_hermes-0.2.2/tests/test_sysprompt_prefill.py +90 -0
  167. wallbreaker_hermes-0.2.2/tests/test_system_prompts.py +127 -0
  168. wallbreaker_hermes-0.2.2/tests/test_target_encode.py +190 -0
  169. wallbreaker_hermes-0.2.2/tests/test_target_truncation.py +91 -0
  170. wallbreaker_hermes-0.2.2/tests/test_taxonomy.py +71 -0
  171. wallbreaker_hermes-0.2.2/tests/test_tg1_embeddings.py +259 -0
  172. wallbreaker_hermes-0.2.2/tests/test_tg2_context.py +212 -0
  173. wallbreaker_hermes-0.2.2/tests/test_tg3_corpus.py +93 -0
  174. wallbreaker_hermes-0.2.2/tests/test_tg3_family.py +186 -0
  175. wallbreaker_hermes-0.2.2/tests/test_tg4_calibration.py +152 -0
  176. wallbreaker_hermes-0.2.2/tests/test_tg5_bandit.py +164 -0
  177. wallbreaker_hermes-0.2.2/tests/test_tg5_harden.py +214 -0
  178. wallbreaker_hermes-0.2.2/tests/test_tg6_agentic.py +166 -0
  179. wallbreaker_hermes-0.2.2/tests/test_tg7_transfer.py +206 -0
  180. wallbreaker_hermes-0.2.2/tests/test_tg7_trust.py +179 -0
  181. wallbreaker_hermes-0.2.2/tests/test_tool_arg_parse.py +41 -0
  182. wallbreaker_hermes-0.2.2/tests/test_transfer.py +266 -0
  183. wallbreaker_hermes-0.2.2/tests/test_transforms.py +161 -0
  184. wallbreaker_hermes-0.2.2/tests/test_tree_attack.py +113 -0
  185. wallbreaker_hermes-0.2.2/tests/test_tui_autocomplete.py +265 -0
  186. wallbreaker_hermes-0.2.2/tests/test_tui_ui.py +119 -0
  187. wallbreaker_hermes-0.2.2/tests/test_typographic.py +101 -0
  188. wallbreaker_hermes-0.2.2/tests/test_validate_provider.py +67 -0
  189. wallbreaker_hermes-0.2.2/tests/test_vault.py +115 -0
  190. wallbreaker_hermes-0.2.2/tests/test_wallbreaker_mcp.py +221 -0
  191. wallbreaker_hermes-0.2.2/wallbreaker/__init__.py +1 -0
  192. wallbreaker_hermes-0.2.2/wallbreaker/__main__.py +6 -0
  193. wallbreaker_hermes-0.2.2/wallbreaker/_fsutil.py +54 -0
  194. wallbreaker_hermes-0.2.2/wallbreaker/agent/__init__.py +0 -0
  195. wallbreaker_hermes-0.2.2/wallbreaker/agent/loop.py +338 -0
  196. wallbreaker_hermes-0.2.2/wallbreaker/agent/messages.py +85 -0
  197. wallbreaker_hermes-0.2.2/wallbreaker/agent_profiles.py +206 -0
  198. wallbreaker_hermes-0.2.2/wallbreaker/analyze.py +54 -0
  199. wallbreaker_hermes-0.2.2/wallbreaker/baseline.py +98 -0
  200. wallbreaker_hermes-0.2.2/wallbreaker/cache.py +207 -0
  201. wallbreaker_hermes-0.2.2/wallbreaker/capabilities.py +427 -0
  202. wallbreaker_hermes-0.2.2/wallbreaker/classify.py +100 -0
  203. wallbreaker_hermes-0.2.2/wallbreaker/cli.py +591 -0
  204. wallbreaker_hermes-0.2.2/wallbreaker/config.py +524 -0
  205. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/__init__.py +3 -0
  206. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/auth.py +191 -0
  207. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/server.py +2505 -0
  208. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/bun.lock +587 -0
  209. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/dist/assets/index-CPaTNxOz.js +78 -0
  210. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/dist/assets/index-DpTCTWO5.css +1 -0
  211. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/dist/index.html +13 -0
  212. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/index.html +12 -0
  213. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/package-lock.json +3676 -0
  214. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/package.json +32 -0
  215. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/src/App.tsx +119 -0
  216. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/src/__tests__/Agent.abort.test.tsx +50 -0
  217. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/src/__tests__/Agent.autoscroll.test.tsx +107 -0
  218. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/src/__tests__/AsyncView.test.tsx +56 -0
  219. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/src/__tests__/Dialog.test.tsx +59 -0
  220. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/src/__tests__/Profiles.busy.test.tsx +60 -0
  221. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/src/__tests__/RunExpandedRow.test.tsx +130 -0
  222. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/src/__tests__/a11y.interactions.test.tsx +93 -0
  223. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/src/__tests__/axe.views.test.tsx +182 -0
  224. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/src/__tests__/format.test.ts +81 -0
  225. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/src/__tests__/no-danger.test.ts +31 -0
  226. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/src/__tests__/setup.ts +1 -0
  227. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/src/__tests__/staleGuard.test.tsx +47 -0
  228. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/src/__tests__/subcomponents.test.tsx +229 -0
  229. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/src/api.ts +367 -0
  230. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/src/components/Agent.tsx +397 -0
  231. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/src/components/AgentConfigDrawer.tsx +137 -0
  232. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/src/components/AgentTranscript.tsx +120 -0
  233. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/src/components/Arsenal.tsx +133 -0
  234. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/src/components/Console.tsx +248 -0
  235. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/src/components/FindingExpanded.tsx +291 -0
  236. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/src/components/Findings.tsx +589 -0
  237. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/src/components/ModelChooser.tsx +205 -0
  238. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/src/components/Overview.tsx +58 -0
  239. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/src/components/Profiles.tsx +78 -0
  240. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/src/components/ProviderChooser.tsx +36 -0
  241. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/src/components/ProviderManager.tsx +135 -0
  242. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/src/components/RoleChooser.tsx +61 -0
  243. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/src/components/RunDetailView.tsx +363 -0
  244. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/src/components/RunExpandedRow.tsx +156 -0
  245. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/src/components/Runs.tsx +620 -0
  246. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/src/components/Settings.tsx +29 -0
  247. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/src/components/TargetOptions.tsx +45 -0
  248. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/src/dataCache.ts +96 -0
  249. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/src/format.ts +84 -0
  250. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/src/main.tsx +15 -0
  251. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/src/primitives/AsyncView.tsx +50 -0
  252. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/src/primitives/Combobox.tsx +92 -0
  253. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/src/primitives/Dialog.tsx +97 -0
  254. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/src/primitives/InteractiveChip.tsx +35 -0
  255. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/src/primitives/LiveRegion.tsx +27 -0
  256. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/src/primitives/useAbortableFetch.ts +38 -0
  257. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/src/styles.css +1192 -0
  258. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/src/v2/CommandPalette.tsx +95 -0
  259. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/src/v2/LiveView.tsx +688 -0
  260. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/src/v2/ReportsDashboard.tsx +119 -0
  261. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/src/v2/RunsExplorer.tsx +113 -0
  262. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/src/v2/V2App.tsx +165 -0
  263. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/src/v2/Views.tsx +229 -0
  264. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/src/v2/WorkflowStudio.tsx +298 -0
  265. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/src/v2/api.ts +323 -0
  266. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/src/v2/components.tsx +101 -0
  267. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/src/v2/eventProjection.ts +148 -0
  268. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/src/v2/index.ts +2 -0
  269. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/src/v2/types.ts +227 -0
  270. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/src/v2.css +772 -0
  271. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/tsconfig.json +21 -0
  272. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/tsconfig.node.json +11 -0
  273. wallbreaker_hermes-0.2.2/wallbreaker/dashboard/web/vite.config.ts +13 -0
  274. wallbreaker_hermes-0.2.2/wallbreaker/datasets/__init__.py +54 -0
  275. wallbreaker_hermes-0.2.2/wallbreaker/datasets/_common.py +159 -0
  276. wallbreaker_hermes-0.2.2/wallbreaker/datasets/advbench.py +34 -0
  277. wallbreaker_hermes-0.2.2/wallbreaker/datasets/harmbench.py +25 -0
  278. wallbreaker_hermes-0.2.2/wallbreaker/datasets/jbb.py +37 -0
  279. wallbreaker_hermes-0.2.2/wallbreaker/datasets/strongreject.py +31 -0
  280. wallbreaker_hermes-0.2.2/wallbreaker/executions.py +276 -0
  281. wallbreaker_hermes-0.2.2/wallbreaker/findings_log.py +200 -0
  282. wallbreaker_hermes-0.2.2/wallbreaker/harmbench.py +112 -0
  283. wallbreaker_hermes-0.2.2/wallbreaker/hermes_campaign.py +2229 -0
  284. wallbreaker_hermes-0.2.2/wallbreaker/hermes_cli.py +296 -0
  285. wallbreaker_hermes-0.2.2/wallbreaker/hermes_lab.py +1165 -0
  286. wallbreaker_hermes-0.2.2/wallbreaker/history_index.py +613 -0
  287. wallbreaker_hermes-0.2.2/wallbreaker/jailbreaks.py +84 -0
  288. wallbreaker_hermes-0.2.2/wallbreaker/judging.py +335 -0
  289. wallbreaker_hermes-0.2.2/wallbreaker/library.py +215 -0
  290. wallbreaker_hermes-0.2.2/wallbreaker/model_catalog.py +114 -0
  291. wallbreaker_hermes-0.2.2/wallbreaker/persona_method.py +637 -0
  292. wallbreaker_hermes-0.2.2/wallbreaker/persona_spec.py +961 -0
  293. wallbreaker_hermes-0.2.2/wallbreaker/persuasion_taxonomy.py +107 -0
  294. wallbreaker_hermes-0.2.2/wallbreaker/presets.py +650 -0
  295. wallbreaker_hermes-0.2.2/wallbreaker/prompts.py +629 -0
  296. wallbreaker_hermes-0.2.2/wallbreaker/provider_registry.py +232 -0
  297. wallbreaker_hermes-0.2.2/wallbreaker/providers/__init__.py +0 -0
  298. wallbreaker_hermes-0.2.2/wallbreaker/providers/anthropic_provider.py +299 -0
  299. wallbreaker_hermes-0.2.2/wallbreaker/providers/base.py +306 -0
  300. wallbreaker_hermes-0.2.2/wallbreaker/providers/claude_code.py +269 -0
  301. wallbreaker_hermes-0.2.2/wallbreaker/providers/factory.py +75 -0
  302. wallbreaker_hermes-0.2.2/wallbreaker/providers/hermes_lab_provider.py +129 -0
  303. wallbreaker_hermes-0.2.2/wallbreaker/providers/image_provider.py +379 -0
  304. wallbreaker_hermes-0.2.2/wallbreaker/providers/openai_provider.py +396 -0
  305. wallbreaker_hermes-0.2.2/wallbreaker/providers/request_gate.py +179 -0
  306. wallbreaker_hermes-0.2.2/wallbreaker/regrade.py +65 -0
  307. wallbreaker_hermes-0.2.2/wallbreaker/report.py +480 -0
  308. wallbreaker_hermes-0.2.2/wallbreaker/session.py +655 -0
  309. wallbreaker_hermes-0.2.2/wallbreaker/state.py +101 -0
  310. wallbreaker_hermes-0.2.2/wallbreaker/strategy_lib.py +722 -0
  311. wallbreaker_hermes-0.2.2/wallbreaker/taxonomy.py +275 -0
  312. wallbreaker_hermes-0.2.2/wallbreaker/tools/__init__.py +51 -0
  313. wallbreaker_hermes-0.2.2/wallbreaker/tools/_bandit.py +387 -0
  314. wallbreaker_hermes-0.2.2/wallbreaker/tools/_conversation.py +64 -0
  315. wallbreaker_hermes-0.2.2/wallbreaker/tools/_cot_recover.py +423 -0
  316. wallbreaker_hermes-0.2.2/wallbreaker/tools/_echo.py +222 -0
  317. wallbreaker_hermes-0.2.2/wallbreaker/tools/_util.py +86 -0
  318. wallbreaker_hermes-0.2.2/wallbreaker/tools/adapt_seed.py +137 -0
  319. wallbreaker_hermes-0.2.2/wallbreaker/tools/agentharm.py +348 -0
  320. wallbreaker_hermes-0.2.2/wallbreaker/tools/author_persona.py +479 -0
  321. wallbreaker_hermes-0.2.2/wallbreaker/tools/barcode_tool.py +63 -0
  322. wallbreaker_hermes-0.2.2/wallbreaker/tools/best_of_n.py +439 -0
  323. wallbreaker_hermes-0.2.2/wallbreaker/tools/campaign.py +435 -0
  324. wallbreaker_hermes-0.2.2/wallbreaker/tools/chat_session.py +411 -0
  325. wallbreaker_hermes-0.2.2/wallbreaker/tools/chat_template.py +111 -0
  326. wallbreaker_hermes-0.2.2/wallbreaker/tools/cipherchat.py +217 -0
  327. wallbreaker_hermes-0.2.2/wallbreaker/tools/cluster_findings.py +215 -0
  328. wallbreaker_hermes-0.2.2/wallbreaker/tools/control.py +111 -0
  329. wallbreaker_hermes-0.2.2/wallbreaker/tools/cot_forge.py +303 -0
  330. wallbreaker_hermes-0.2.2/wallbreaker/tools/crescendo.py +394 -0
  331. wallbreaker_hermes-0.2.2/wallbreaker/tools/deep_think_probe.py +285 -0
  332. wallbreaker_hermes-0.2.2/wallbreaker/tools/diff_fire.py +84 -0
  333. wallbreaker_hermes-0.2.2/wallbreaker/tools/drattack.py +208 -0
  334. wallbreaker_hermes-0.2.2/wallbreaker/tools/egress_guard.py +254 -0
  335. wallbreaker_hermes-0.2.2/wallbreaker/tools/eni.py +294 -0
  336. wallbreaker_hermes-0.2.2/wallbreaker/tools/evolve_persona.py +417 -0
  337. wallbreaker_hermes-0.2.2/wallbreaker/tools/files.py +269 -0
  338. wallbreaker_hermes-0.2.2/wallbreaker/tools/fingerprint_defense.py +431 -0
  339. wallbreaker_hermes-0.2.2/wallbreaker/tools/fire_file.py +131 -0
  340. wallbreaker_hermes-0.2.2/wallbreaker/tools/framing_sweep.py +281 -0
  341. wallbreaker_hermes-0.2.2/wallbreaker/tools/gemlib.py +379 -0
  342. wallbreaker_hermes-0.2.2/wallbreaker/tools/goat.py +294 -0
  343. wallbreaker_hermes-0.2.2/wallbreaker/tools/harmbench_tool.py +53 -0
  344. wallbreaker_hermes-0.2.2/wallbreaker/tools/http_tool.py +87 -0
  345. wallbreaker_hermes-0.2.2/wallbreaker/tools/ica.py +144 -0
  346. wallbreaker_hermes-0.2.2/wallbreaker/tools/image.py +304 -0
  347. wallbreaker_hermes-0.2.2/wallbreaker/tools/image_edit.py +528 -0
  348. wallbreaker_hermes-0.2.2/wallbreaker/tools/indirect_inject.py +378 -0
  349. wallbreaker_hermes-0.2.2/wallbreaker/tools/judge.py +55 -0
  350. wallbreaker_hermes-0.2.2/wallbreaker/tools/judge_selftest.py +352 -0
  351. wallbreaker_hermes-0.2.2/wallbreaker/tools/l1b3rt4s.py +307 -0
  352. wallbreaker_hermes-0.2.2/wallbreaker/tools/leaderboard.py +172 -0
  353. wallbreaker_hermes-0.2.2/wallbreaker/tools/leak_scan.py +200 -0
  354. wallbreaker_hermes-0.2.2/wallbreaker/tools/many_shot.py +113 -0
  355. wallbreaker_hermes-0.2.2/wallbreaker/tools/mcp_bridge.py +184 -0
  356. wallbreaker_hermes-0.2.2/wallbreaker/tools/memory_poison.py +184 -0
  357. wallbreaker_hermes-0.2.2/wallbreaker/tools/multi_fire.py +141 -0
  358. wallbreaker_hermes-0.2.2/wallbreaker/tools/mutate.py +258 -0
  359. wallbreaker_hermes-0.2.2/wallbreaker/tools/narrate.py +158 -0
  360. wallbreaker_hermes-0.2.2/wallbreaker/tools/narrative_persona_splinter.py +382 -0
  361. wallbreaker_hermes-0.2.2/wallbreaker/tools/optimize.py +253 -0
  362. wallbreaker_hermes-0.2.2/wallbreaker/tools/pair.py +501 -0
  363. wallbreaker_hermes-0.2.2/wallbreaker/tools/parsel_engine.py +602 -0
  364. wallbreaker_hermes-0.2.2/wallbreaker/tools/parsel_lib.py +99 -0
  365. wallbreaker_hermes-0.2.2/wallbreaker/tools/parseltongue.py +140 -0
  366. wallbreaker_hermes-0.2.2/wallbreaker/tools/persona_forge.py +899 -0
  367. wallbreaker_hermes-0.2.2/wallbreaker/tools/persona_modulate.py +356 -0
  368. wallbreaker_hermes-0.2.2/wallbreaker/tools/persuasion_attack.py +203 -0
  369. wallbreaker_hermes-0.2.2/wallbreaker/tools/prefill.py +158 -0
  370. wallbreaker_hermes-0.2.2/wallbreaker/tools/presets_tool.py +48 -0
  371. wallbreaker_hermes-0.2.2/wallbreaker/tools/profile_target.py +492 -0
  372. wallbreaker_hermes-0.2.2/wallbreaker/tools/rag_poison.py +280 -0
  373. wallbreaker_hermes-0.2.2/wallbreaker/tools/reasoning_hygiene.py +425 -0
  374. wallbreaker_hermes-0.2.2/wallbreaker/tools/recommend.py +159 -0
  375. wallbreaker_hermes-0.2.2/wallbreaker/tools/recommend_next.py +385 -0
  376. wallbreaker_hermes-0.2.2/wallbreaker/tools/registry.py +462 -0
  377. wallbreaker_hermes-0.2.2/wallbreaker/tools/scan.py +126 -0
  378. wallbreaker_hermes-0.2.2/wallbreaker/tools/seed_sweep.py +172 -0
  379. wallbreaker_hermes-0.2.2/wallbreaker/tools/session_card.py +771 -0
  380. wallbreaker_hermes-0.2.2/wallbreaker/tools/shell.py +93 -0
  381. wallbreaker_hermes-0.2.2/wallbreaker/tools/skeleton_key.py +114 -0
  382. wallbreaker_hermes-0.2.2/wallbreaker/tools/st3gg.py +331 -0
  383. wallbreaker_hermes-0.2.2/wallbreaker/tools/stolen_thoughts.py +269 -0
  384. wallbreaker_hermes-0.2.2/wallbreaker/tools/strategy_attack.py +383 -0
  385. wallbreaker_hermes-0.2.2/wallbreaker/tools/swarm.py +564 -0
  386. wallbreaker_hermes-0.2.2/wallbreaker/tools/system_prompts.py +298 -0
  387. wallbreaker_hermes-0.2.2/wallbreaker/tools/system_sweep.py +353 -0
  388. wallbreaker_hermes-0.2.2/wallbreaker/tools/target.py +565 -0
  389. wallbreaker_hermes-0.2.2/wallbreaker/tools/tool_policy.py +52 -0
  390. wallbreaker_hermes-0.2.2/wallbreaker/tools/transfer_sweep.py +213 -0
  391. wallbreaker_hermes-0.2.2/wallbreaker/tools/tree_attack.py +325 -0
  392. wallbreaker_hermes-0.2.2/wallbreaker/tools/typographic.py +193 -0
  393. wallbreaker_hermes-0.2.2/wallbreaker/tools/validate.py +84 -0
  394. wallbreaker_hermes-0.2.2/wallbreaker/tools/vault.py +113 -0
  395. wallbreaker_hermes-0.2.2/wallbreaker/transforms/__init__.py +153 -0
  396. wallbreaker_hermes-0.2.2/wallbreaker/transforms/ascii_art.py +78 -0
  397. wallbreaker_hermes-0.2.2/wallbreaker/transforms/bijection.py +90 -0
  398. wallbreaker_hermes-0.2.2/wallbreaker/transforms/cjk_obf.py +166 -0
  399. wallbreaker_hermes-0.2.2/wallbreaker/transforms/cot_dilution.py +117 -0
  400. wallbreaker_hermes-0.2.2/wallbreaker/transforms/encodings.py +343 -0
  401. wallbreaker_hermes-0.2.2/wallbreaker/transforms/fonts.py +152 -0
  402. wallbreaker_hermes-0.2.2/wallbreaker/transforms/image_framing.py +89 -0
  403. wallbreaker_hermes-0.2.2/wallbreaker/transforms/linguistics.py +50 -0
  404. wallbreaker_hermes-0.2.2/wallbreaker/transforms/special_token.py +31 -0
  405. wallbreaker_hermes-0.2.2/wallbreaker/transforms/stego.py +75 -0
  406. wallbreaker_hermes-0.2.2/wallbreaker/transforms/structural.py +67 -0
  407. wallbreaker_hermes-0.2.2/wallbreaker/transforms/unicode_obf.py +268 -0
  408. wallbreaker_hermes-0.2.2/wallbreaker/tui/__init__.py +0 -0
  409. wallbreaker_hermes-0.2.2/wallbreaker/tui/app.py +2599 -0
  410. wallbreaker_hermes-0.2.2/wallbreaker/tui/app.tcss +114 -0
  411. wallbreaker_hermes-0.2.2/wallbreaker/tui/header.py +62 -0
  412. wallbreaker_hermes-0.2.2/wallbreaker/tui/sidebar.py +69 -0
  413. wallbreaker_hermes-0.2.2/wallbreaker/tui/theme.py +50 -0
  414. wallbreaker_hermes-0.2.2/wallbreaker/tui/widgets.py +294 -0
  415. wallbreaker_hermes-0.2.2/wallbreaker/vault.py +255 -0
  416. wallbreaker_hermes-0.2.2/wallbreaker_hermes.egg-info/PKG-INFO +417 -0
  417. wallbreaker_hermes-0.2.2/wallbreaker_hermes.egg-info/SOURCES.txt +422 -0
  418. wallbreaker_hermes-0.2.2/wallbreaker_hermes.egg-info/dependency_links.txt +1 -0
  419. wallbreaker_hermes-0.2.2/wallbreaker_hermes.egg-info/entry_points.txt +4 -0
  420. wallbreaker_hermes-0.2.2/wallbreaker_hermes.egg-info/requires.txt +26 -0
  421. wallbreaker_hermes-0.2.2/wallbreaker_hermes.egg-info/top_level.txt +3 -0
  422. wallbreaker_hermes-0.2.2/wallbreaker_mcp/__init__.py +5 -0
  423. wallbreaker_hermes-0.2.2/wallbreaker_mcp/__main__.py +6 -0
  424. wallbreaker_hermes-0.2.2/wallbreaker_mcp/server.py +423 -0
@@ -0,0 +1,87 @@
1
+ # Changelog
2
+
3
+ ## Unreleased
4
+
5
+ ## 0.2.2 - 2026-08-16
6
+
7
+ This is the first published `wallbreaker-hermes` distribution. The `v0.2.0` and `v0.2.1`
8
+ workflows stopped before creating a GitHub Release or uploading to PyPI.
9
+
10
+ ### Fixed
11
+
12
+ - Completed the `dev` extra with the dashboard, barcode, and property-testing dependencies used by
13
+ both the branch and release test suites.
14
+
15
+ ## 0.2.1 - 2026-08-16
16
+
17
+ The `v0.2.1` workflow stopped before creating a GitHub Release or uploading to PyPI.
18
+
19
+ ### Added
20
+
21
+ - Added the opt-in Hermes Agent laboratory with ephemeral replicas, fixed-runtime validation,
22
+ exact request roles, zero-tools/MCP preflight, state evidence, credential-leak checks, and
23
+ verified cleanup.
24
+ - Added campaign plan/report v2 with HMAC-scoped private fingerprints, checkpoint-bound resume,
25
+ explicit manual review, and fail-closed finding semantics.
26
+ - Published under the `wallbreaker-hermes` distribution name while preserving `import wallbreaker`
27
+ and the `wallbreaker`/`wb` commands.
28
+ - Included the compiled dashboard, Textual assets, Hermes operator integration, and revision-pinned
29
+ datasets with SHA-256 verification.
30
+
31
+ ### Fixed
32
+
33
+ - Aligned Vitest 2 with Vite 5 and regenerated the frontend lock with npm 10 so clean CI installs
34
+ include a single compatible esbuild version.
35
+ - Raised the CI Node baseline to 22.14 for the declared jsdom engine requirement.
36
+ - Preserved module mock implementations between the dashboard auto-scroll tests under Vitest 2.
37
+
38
+ ## 0.2.0 - 2026-08-16
39
+
40
+ ### Added
41
+
42
+ - Published the Python distribution as `wallbreaker-hermes` while preserving the `wallbreaker`
43
+ import package and the `wallbreaker`/`wb` commands.
44
+ - Included the compiled dashboard and Textual stylesheet in release wheels, with artifact checks for
45
+ wheel and source-distribution contents.
46
+ - Added an opt-in Hermes Agent laboratory target fixed to Hermes Agent `v2026.8.13`, package
47
+ `0.20.1`, and commit `f80f453ae0679347e38abc917c7f94f717bf96c5`.
48
+ - Added versioned Hermes campaign suites, isolated repetitions, response and state evidence,
49
+ strict verification, and cleanup receipts.
50
+ - Added `wallbreaker hermes run|review|verify` plus the operator skill under
51
+ `integrations/hermes/`.
52
+ - Added WebUI V2, MCP integration, expanded attack and evaluation tools, signed findings,
53
+ corpus integrity pins, and dashboard security controls inherited from the fork history.
54
+ - Added the documented upstream integration and rollback procedure.
55
+
56
+ ### Security
57
+
58
+ - Removed scheduled live red-team execution from CI. Repository workflows now run offline tests
59
+ only.
60
+ - Session cards use an external image endpoint only when the operator configures `[art]`.
61
+ - Scoped persisted campaign fingerprints with an operator-held HMAC key and a per-report salt.
62
+ - Bound resume authorization to the validated checkpoint and Wallbreaker version.
63
+ - Rejected unexpected effective prompt roles and known credentials in child output or state.
64
+ - Moved the authorized live CI example outside `.github/workflows`; repository workflows do not
65
+ schedule provider calls.
66
+ - Removed tracked prompts, private-path instructions, historical provider configuration, and UI
67
+ captures containing run data from the release tree.
68
+ - Clarified that the Hermes laboratory is an ephemeral native process, not an operating-system
69
+ sandbox.
70
+
71
+ ### Fixed
72
+
73
+ - Preserved manual review whenever any evidence component remains unresolved, including runs that
74
+ also contain a confirmed finding.
75
+ - Preserved cancellation status and cleanup receipts when cleanup cannot be verified.
76
+ - Counted blocked tool attempts only during the evaluated run, with preflight attempts failing
77
+ closed.
78
+ - Normalized configured jailbreak paths across operating systems.
79
+ - Preserved Windows paths passed to `/session`, `/resume`, and `/save` commands.
80
+ - Protected dashboard token files with an owner/System/Administrators DACL on Windows while
81
+ retaining exact `0600` permissions on POSIX.
82
+
83
+ ### Compatibility
84
+
85
+ - Preserves the `wallbreaker` package, imports, and `wallbreaker`/`wb` commands.
86
+ - Tracks Wallbreaker upstream commit `8b85e768efa69028b4af9f3d1c9c079178aa8a53`.
87
+ - Requires Python 3.11 or newer.