hackmyagent 0.7.2 → 0.8.1

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 (393) hide show
  1. package/LICENSE +191 -0
  2. package/README.md +172 -261
  3. package/dist/abgr/controls.d.ts +35 -0
  4. package/dist/abgr/controls.d.ts.map +1 -0
  5. package/dist/abgr/controls.js +1058 -0
  6. package/dist/abgr/controls.js.map +1 -0
  7. package/dist/abgr/detector.d.ts +45 -0
  8. package/dist/abgr/detector.d.ts.map +1 -0
  9. package/dist/abgr/detector.js +175 -0
  10. package/dist/abgr/detector.js.map +1 -0
  11. package/dist/abgr/index.d.ts +24 -0
  12. package/dist/abgr/index.d.ts.map +1 -0
  13. package/dist/abgr/index.js +50 -0
  14. package/dist/abgr/index.js.map +1 -0
  15. package/dist/abgr/scorer.d.ts +36 -0
  16. package/dist/abgr/scorer.d.ts.map +1 -0
  17. package/dist/abgr/scorer.js +205 -0
  18. package/dist/abgr/scorer.js.map +1 -0
  19. package/dist/abgr/templates.d.ts +35 -0
  20. package/dist/abgr/templates.d.ts.map +1 -0
  21. package/dist/abgr/templates.js +668 -0
  22. package/dist/abgr/templates.js.map +1 -0
  23. package/dist/abgr/tier.d.ts +27 -0
  24. package/dist/abgr/tier.d.ts.map +1 -0
  25. package/dist/abgr/tier.js +115 -0
  26. package/dist/abgr/tier.js.map +1 -0
  27. package/dist/abgr/types.d.ts +59 -0
  28. package/dist/abgr/types.d.ts.map +1 -0
  29. package/dist/abgr/types.js +10 -0
  30. package/dist/abgr/types.js.map +1 -0
  31. package/dist/agent-scan/checks.d.ts +6 -0
  32. package/dist/agent-scan/checks.d.ts.map +1 -0
  33. package/dist/agent-scan/checks.js +93 -0
  34. package/dist/agent-scan/checks.js.map +1 -0
  35. package/dist/agent-scan/index.d.ts +10 -0
  36. package/dist/agent-scan/index.d.ts.map +1 -0
  37. package/dist/agent-scan/index.js +16 -0
  38. package/dist/agent-scan/index.js.map +1 -0
  39. package/dist/agent-scan/scanner.d.ts +31 -0
  40. package/dist/agent-scan/scanner.d.ts.map +1 -0
  41. package/dist/agent-scan/scanner.js +484 -0
  42. package/dist/agent-scan/scanner.js.map +1 -0
  43. package/dist/agent-scan/types.d.ts +63 -0
  44. package/dist/agent-scan/types.d.ts.map +1 -0
  45. package/dist/agent-scan/types.js +10 -0
  46. package/dist/agent-scan/types.js.map +1 -0
  47. package/dist/arp/cli/index.d.ts +3 -0
  48. package/dist/arp/cli/index.d.ts.map +1 -0
  49. package/dist/arp/cli/index.js +225 -0
  50. package/dist/arp/cli/index.js.map +1 -0
  51. package/dist/arp/config/loader.d.ts +8 -0
  52. package/dist/arp/config/loader.d.ts.map +1 -0
  53. package/dist/arp/config/loader.js +102 -0
  54. package/dist/arp/config/loader.js.map +1 -0
  55. package/dist/arp/enforcement/kill-switch.d.ts +22 -0
  56. package/dist/arp/enforcement/kill-switch.d.ts.map +1 -0
  57. package/dist/arp/enforcement/kill-switch.js +122 -0
  58. package/dist/arp/enforcement/kill-switch.js.map +1 -0
  59. package/dist/arp/engine/event-engine.d.ts +29 -0
  60. package/dist/arp/engine/event-engine.d.ts.map +1 -0
  61. package/dist/arp/engine/event-engine.js +233 -0
  62. package/dist/arp/engine/event-engine.js.map +1 -0
  63. package/dist/arp/index.d.ts +81 -0
  64. package/dist/arp/index.d.ts.map +1 -0
  65. package/dist/arp/index.js +239 -0
  66. package/dist/arp/index.js.map +1 -0
  67. package/dist/arp/intelligence/adapters.d.ts +45 -0
  68. package/dist/arp/intelligence/adapters.d.ts.map +1 -0
  69. package/dist/arp/intelligence/adapters.js +222 -0
  70. package/dist/arp/intelligence/adapters.js.map +1 -0
  71. package/dist/arp/intelligence/anomaly.d.ts +32 -0
  72. package/dist/arp/intelligence/anomaly.d.ts.map +1 -0
  73. package/dist/arp/intelligence/anomaly.js +80 -0
  74. package/dist/arp/intelligence/anomaly.js.map +1 -0
  75. package/dist/arp/intelligence/budget.d.ts +33 -0
  76. package/dist/arp/intelligence/budget.d.ts.map +1 -0
  77. package/dist/arp/intelligence/budget.js +150 -0
  78. package/dist/arp/intelligence/budget.js.map +1 -0
  79. package/dist/arp/intelligence/coordinator.d.ts +43 -0
  80. package/dist/arp/intelligence/coordinator.d.ts.map +1 -0
  81. package/dist/arp/intelligence/coordinator.js +301 -0
  82. package/dist/arp/intelligence/coordinator.js.map +1 -0
  83. package/dist/arp/interceptors/a2a-protocol.d.ts +29 -0
  84. package/dist/arp/interceptors/a2a-protocol.d.ts.map +1 -0
  85. package/dist/arp/interceptors/a2a-protocol.js +111 -0
  86. package/dist/arp/interceptors/a2a-protocol.js.map +1 -0
  87. package/dist/arp/interceptors/filesystem.d.ts +33 -0
  88. package/dist/arp/interceptors/filesystem.d.ts.map +1 -0
  89. package/dist/arp/interceptors/filesystem.js +199 -0
  90. package/dist/arp/interceptors/filesystem.js.map +1 -0
  91. package/dist/arp/interceptors/mcp-protocol.d.ts +25 -0
  92. package/dist/arp/interceptors/mcp-protocol.d.ts.map +1 -0
  93. package/dist/arp/interceptors/mcp-protocol.js +126 -0
  94. package/dist/arp/interceptors/mcp-protocol.js.map +1 -0
  95. package/dist/arp/interceptors/network.d.ts +26 -0
  96. package/dist/arp/interceptors/network.d.ts.map +1 -0
  97. package/dist/arp/interceptors/network.js +146 -0
  98. package/dist/arp/interceptors/network.js.map +1 -0
  99. package/dist/arp/interceptors/process.d.ts +26 -0
  100. package/dist/arp/interceptors/process.d.ts.map +1 -0
  101. package/dist/arp/interceptors/process.js +157 -0
  102. package/dist/arp/interceptors/process.js.map +1 -0
  103. package/dist/arp/interceptors/prompt.d.ts +29 -0
  104. package/dist/arp/interceptors/prompt.d.ts.map +1 -0
  105. package/dist/arp/interceptors/prompt.js +82 -0
  106. package/dist/arp/interceptors/prompt.js.map +1 -0
  107. package/dist/arp/license/index.d.ts +59 -0
  108. package/dist/arp/license/index.d.ts.map +1 -0
  109. package/dist/arp/license/index.js +78 -0
  110. package/dist/arp/license/index.js.map +1 -0
  111. package/dist/arp/monitors/filesystem.d.ts +21 -0
  112. package/dist/arp/monitors/filesystem.d.ts.map +1 -0
  113. package/dist/arp/monitors/filesystem.js +141 -0
  114. package/dist/arp/monitors/filesystem.js.map +1 -0
  115. package/dist/arp/monitors/network.d.ts +32 -0
  116. package/dist/arp/monitors/network.d.ts.map +1 -0
  117. package/dist/arp/monitors/network.js +301 -0
  118. package/dist/arp/monitors/network.js.map +1 -0
  119. package/dist/arp/monitors/process.d.ts +24 -0
  120. package/dist/arp/monitors/process.d.ts.map +1 -0
  121. package/dist/arp/monitors/process.js +205 -0
  122. package/dist/arp/monitors/process.js.map +1 -0
  123. package/dist/arp/patterns/ai-threats.d.ts +48 -0
  124. package/dist/arp/patterns/ai-threats.d.ts.map +1 -0
  125. package/dist/arp/patterns/ai-threats.js +215 -0
  126. package/dist/arp/patterns/ai-threats.js.map +1 -0
  127. package/dist/arp/proxy/forward.d.ts +23 -0
  128. package/dist/arp/proxy/forward.d.ts.map +1 -0
  129. package/dist/arp/proxy/forward.js +152 -0
  130. package/dist/arp/proxy/forward.js.map +1 -0
  131. package/dist/arp/proxy/server.d.ts +45 -0
  132. package/dist/arp/proxy/server.d.ts.map +1 -0
  133. package/dist/arp/proxy/server.js +331 -0
  134. package/dist/arp/proxy/server.js.map +1 -0
  135. package/dist/arp/reporting/local-log.d.ts +22 -0
  136. package/dist/arp/reporting/local-log.d.ts.map +1 -0
  137. package/dist/arp/reporting/local-log.js +116 -0
  138. package/dist/arp/reporting/local-log.js.map +1 -0
  139. package/dist/arp/types.d.ts +230 -0
  140. package/dist/arp/types.d.ts.map +1 -0
  141. package/dist/arp/types.js +4 -0
  142. package/dist/arp/types.js.map +1 -0
  143. package/dist/attack/custom-payloads.d.ts +11 -0
  144. package/dist/attack/custom-payloads.d.ts.map +1 -0
  145. package/dist/attack/custom-payloads.js +108 -0
  146. package/dist/attack/custom-payloads.js.map +1 -0
  147. package/dist/attack/fail-policy.d.ts +16 -0
  148. package/dist/attack/fail-policy.d.ts.map +1 -0
  149. package/dist/attack/fail-policy.js +36 -0
  150. package/dist/attack/fail-policy.js.map +1 -0
  151. package/dist/attack/index.d.ts +12 -0
  152. package/dist/attack/index.d.ts.map +1 -0
  153. package/dist/attack/index.js +30 -0
  154. package/dist/attack/index.js.map +1 -0
  155. package/dist/attack/payloads/a2a-attacks.d.ts +12 -0
  156. package/dist/attack/payloads/a2a-attacks.d.ts.map +1 -0
  157. package/dist/attack/payloads/a2a-attacks.js +221 -0
  158. package/dist/attack/payloads/a2a-attacks.js.map +1 -0
  159. package/dist/attack/payloads/capability-abuse.d.ts +8 -0
  160. package/dist/attack/payloads/capability-abuse.d.ts.map +1 -0
  161. package/dist/attack/payloads/capability-abuse.js +222 -0
  162. package/dist/attack/payloads/capability-abuse.js.map +1 -0
  163. package/dist/attack/payloads/context-manipulation.d.ts +8 -0
  164. package/dist/attack/payloads/context-manipulation.d.ts.map +1 -0
  165. package/dist/attack/payloads/context-manipulation.js +217 -0
  166. package/dist/attack/payloads/context-manipulation.js.map +1 -0
  167. package/dist/attack/payloads/data-exfiltration.d.ts +8 -0
  168. package/dist/attack/payloads/data-exfiltration.d.ts.map +1 -0
  169. package/dist/attack/payloads/data-exfiltration.js +249 -0
  170. package/dist/attack/payloads/data-exfiltration.js.map +1 -0
  171. package/dist/attack/payloads/index.d.ts +29 -0
  172. package/dist/attack/payloads/index.d.ts.map +1 -0
  173. package/dist/attack/payloads/index.js +76 -0
  174. package/dist/attack/payloads/index.js.map +1 -0
  175. package/dist/attack/payloads/jailbreak.d.ts +8 -0
  176. package/dist/attack/payloads/jailbreak.d.ts.map +1 -0
  177. package/dist/attack/payloads/jailbreak.js +265 -0
  178. package/dist/attack/payloads/jailbreak.js.map +1 -0
  179. package/dist/attack/payloads/mcp-exploitation.d.ts +12 -0
  180. package/dist/attack/payloads/mcp-exploitation.d.ts.map +1 -0
  181. package/dist/attack/payloads/mcp-exploitation.js +221 -0
  182. package/dist/attack/payloads/mcp-exploitation.js.map +1 -0
  183. package/dist/attack/payloads/prompt-injection.d.ts +8 -0
  184. package/dist/attack/payloads/prompt-injection.d.ts.map +1 -0
  185. package/dist/attack/payloads/prompt-injection.js +262 -0
  186. package/dist/attack/payloads/prompt-injection.js.map +1 -0
  187. package/dist/attack/scanner.d.ts +84 -0
  188. package/dist/attack/scanner.d.ts.map +1 -0
  189. package/dist/attack/scanner.js +509 -0
  190. package/dist/attack/scanner.js.map +1 -0
  191. package/dist/attack/types.d.ts +153 -0
  192. package/dist/attack/types.d.ts.map +1 -0
  193. package/dist/attack/types.js +46 -0
  194. package/dist/attack/types.js.map +1 -0
  195. package/dist/benchmarks/index.d.ts +16 -0
  196. package/dist/benchmarks/index.d.ts.map +1 -0
  197. package/dist/benchmarks/index.js +27 -0
  198. package/dist/benchmarks/index.js.map +1 -0
  199. package/dist/benchmarks/oasb-1.d.ts +112 -0
  200. package/dist/benchmarks/oasb-1.d.ts.map +1 -0
  201. package/dist/benchmarks/oasb-1.js +1124 -0
  202. package/dist/benchmarks/oasb-1.js.map +1 -0
  203. package/dist/checker/check-skill.d.ts +48 -0
  204. package/dist/checker/check-skill.d.ts.map +1 -0
  205. package/dist/checker/check-skill.js +105 -0
  206. package/dist/checker/check-skill.js.map +1 -0
  207. package/dist/checker/index.d.ts +12 -0
  208. package/dist/checker/index.d.ts.map +1 -0
  209. package/dist/checker/index.js +16 -0
  210. package/dist/checker/index.js.map +1 -0
  211. package/dist/checker/permission-analyzer.d.ts +12 -0
  212. package/dist/checker/permission-analyzer.d.ts.map +1 -0
  213. package/dist/checker/permission-analyzer.js +84 -0
  214. package/dist/checker/permission-analyzer.js.map +1 -0
  215. package/dist/checker/publisher-verifier.d.ts +34 -0
  216. package/dist/checker/publisher-verifier.d.ts.map +1 -0
  217. package/dist/checker/publisher-verifier.js +121 -0
  218. package/dist/checker/publisher-verifier.js.map +1 -0
  219. package/dist/checker/skill-identifier.d.ts +14 -0
  220. package/dist/checker/skill-identifier.d.ts.map +1 -0
  221. package/dist/checker/skill-identifier.js +55 -0
  222. package/dist/checker/skill-identifier.js.map +1 -0
  223. package/dist/cli.d.ts +7 -0
  224. package/dist/cli.d.ts.map +1 -0
  225. package/dist/cli.js +3534 -0
  226. package/dist/cli.js.map +1 -0
  227. package/dist/hardening/index.d.ts +7 -0
  228. package/dist/hardening/index.d.ts.map +1 -0
  229. package/dist/hardening/index.js +9 -0
  230. package/dist/hardening/index.js.map +1 -0
  231. package/dist/hardening/llm-checks.d.ts +18 -0
  232. package/dist/hardening/llm-checks.d.ts.map +1 -0
  233. package/dist/hardening/llm-checks.js +434 -0
  234. package/dist/hardening/llm-checks.js.map +1 -0
  235. package/dist/hardening/mcp-tool-enum.d.ts +45 -0
  236. package/dist/hardening/mcp-tool-enum.d.ts.map +1 -0
  237. package/dist/hardening/mcp-tool-enum.js +315 -0
  238. package/dist/hardening/mcp-tool-enum.js.map +1 -0
  239. package/dist/hardening/scanner.d.ts +147 -0
  240. package/dist/hardening/scanner.d.ts.map +1 -0
  241. package/dist/hardening/scanner.js +5445 -0
  242. package/dist/hardening/scanner.js.map +1 -0
  243. package/dist/hardening/security-check.d.ts +85 -0
  244. package/dist/hardening/security-check.d.ts.map +1 -0
  245. package/dist/hardening/security-check.js +6 -0
  246. package/dist/hardening/security-check.js.map +1 -0
  247. package/dist/hardening/shell-checks.d.ts +21 -0
  248. package/dist/hardening/shell-checks.d.ts.map +1 -0
  249. package/dist/hardening/shell-checks.js +236 -0
  250. package/dist/hardening/shell-checks.js.map +1 -0
  251. package/dist/index.d.ts +38 -4
  252. package/dist/index.d.ts.map +1 -1
  253. package/dist/index.js +91 -3525
  254. package/dist/index.js.map +1 -1
  255. package/dist/mcp-server.js +10 -10
  256. package/dist/mcp-server.js.map +1 -1
  257. package/dist/oasb/config/dvaa-targets.d.ts +13 -0
  258. package/dist/oasb/config/dvaa-targets.d.ts.map +1 -0
  259. package/dist/oasb/config/dvaa-targets.js +89 -0
  260. package/dist/oasb/config/dvaa-targets.js.map +1 -0
  261. package/dist/oasb/harness/arp-wrapper.d.ts +29 -0
  262. package/dist/oasb/harness/arp-wrapper.d.ts.map +1 -0
  263. package/dist/oasb/harness/arp-wrapper.js +134 -0
  264. package/dist/oasb/harness/arp-wrapper.js.map +1 -0
  265. package/dist/oasb/harness/dvaa-client.d.ts +46 -0
  266. package/dist/oasb/harness/dvaa-client.d.ts.map +1 -0
  267. package/dist/oasb/harness/dvaa-client.js +98 -0
  268. package/dist/oasb/harness/dvaa-client.js.map +1 -0
  269. package/dist/oasb/harness/dvaa-manager.d.ts +17 -0
  270. package/dist/oasb/harness/dvaa-manager.d.ts.map +1 -0
  271. package/dist/oasb/harness/dvaa-manager.js +132 -0
  272. package/dist/oasb/harness/dvaa-manager.js.map +1 -0
  273. package/dist/oasb/harness/event-collector.d.ts +33 -0
  274. package/dist/oasb/harness/event-collector.d.ts.map +1 -0
  275. package/dist/oasb/harness/event-collector.js +86 -0
  276. package/dist/oasb/harness/event-collector.js.map +1 -0
  277. package/dist/oasb/harness/metrics.d.ts +14 -0
  278. package/dist/oasb/harness/metrics.d.ts.map +1 -0
  279. package/dist/oasb/harness/metrics.js +56 -0
  280. package/dist/oasb/harness/metrics.js.map +1 -0
  281. package/dist/oasb/harness/mock-llm-adapter.d.ts +34 -0
  282. package/dist/oasb/harness/mock-llm-adapter.d.ts.map +1 -0
  283. package/dist/oasb/harness/mock-llm-adapter.js +69 -0
  284. package/dist/oasb/harness/mock-llm-adapter.js.map +1 -0
  285. package/dist/oasb/harness/types.d.ts +74 -0
  286. package/dist/oasb/harness/types.d.ts.map +1 -0
  287. package/dist/oasb/harness/types.js +3 -0
  288. package/dist/oasb/harness/types.js.map +1 -0
  289. package/dist/plugins/core.d.ts +109 -0
  290. package/dist/plugins/core.d.ts.map +1 -0
  291. package/dist/plugins/core.js +30 -0
  292. package/dist/plugins/core.js.map +1 -0
  293. package/dist/plugins/credvault.d.ts +22 -0
  294. package/dist/plugins/credvault.d.ts.map +1 -0
  295. package/dist/plugins/credvault.js +374 -0
  296. package/dist/plugins/credvault.js.map +1 -0
  297. package/dist/plugins/signcrypt.d.ts +27 -0
  298. package/dist/plugins/signcrypt.d.ts.map +1 -0
  299. package/dist/plugins/signcrypt.js +317 -0
  300. package/dist/plugins/signcrypt.js.map +1 -0
  301. package/dist/plugins/skillguard.d.ts +25 -0
  302. package/dist/plugins/skillguard.d.ts.map +1 -0
  303. package/dist/plugins/skillguard.js +346 -0
  304. package/dist/plugins/skillguard.js.map +1 -0
  305. package/dist/registry/client.d.ts +125 -0
  306. package/dist/registry/client.d.ts.map +1 -0
  307. package/dist/registry/client.js +308 -0
  308. package/dist/registry/client.js.map +1 -0
  309. package/dist/registry/contribution.d.ts +178 -0
  310. package/dist/registry/contribution.d.ts.map +1 -0
  311. package/dist/registry/contribution.js +272 -0
  312. package/dist/registry/contribution.js.map +1 -0
  313. package/dist/registry/index.d.ts +3 -0
  314. package/dist/registry/index.d.ts.map +1 -0
  315. package/dist/registry/index.js +10 -0
  316. package/dist/registry/index.js.map +1 -0
  317. package/dist/scanner/external-scanner.d.ts +13 -0
  318. package/dist/scanner/external-scanner.d.ts.map +1 -0
  319. package/dist/scanner/external-scanner.js +299 -0
  320. package/dist/scanner/external-scanner.js.map +1 -0
  321. package/dist/scanner/index.d.ts +6 -0
  322. package/dist/scanner/index.d.ts.map +1 -0
  323. package/dist/scanner/index.js +9 -0
  324. package/dist/scanner/index.js.map +1 -0
  325. package/dist/scanner/types.d.ts +32 -0
  326. package/dist/scanner/types.d.ts.map +1 -0
  327. package/dist/scanner/types.js +6 -0
  328. package/dist/scanner/types.js.map +1 -0
  329. package/dist/semantic/deep-scan.d.ts +13 -0
  330. package/dist/semantic/deep-scan.d.ts.map +1 -0
  331. package/dist/semantic/deep-scan.js +63 -0
  332. package/dist/semantic/deep-scan.js.map +1 -0
  333. package/dist/semantic/index.d.ts +17 -0
  334. package/dist/semantic/index.d.ts.map +1 -0
  335. package/dist/semantic/index.js +39 -0
  336. package/dist/semantic/index.js.map +1 -0
  337. package/dist/semantic/integration/cost-estimator.d.ts +17 -0
  338. package/dist/semantic/integration/cost-estimator.d.ts.map +1 -0
  339. package/dist/semantic/integration/cost-estimator.js +54 -0
  340. package/dist/semantic/integration/cost-estimator.js.map +1 -0
  341. package/dist/semantic/integration/finding-adapter.d.ts +34 -0
  342. package/dist/semantic/integration/finding-adapter.d.ts.map +1 -0
  343. package/dist/semantic/integration/finding-adapter.js +41 -0
  344. package/dist/semantic/integration/finding-adapter.js.map +1 -0
  345. package/dist/semantic/integration/oasb-upgrader.d.ts +20 -0
  346. package/dist/semantic/integration/oasb-upgrader.d.ts.map +1 -0
  347. package/dist/semantic/integration/oasb-upgrader.js +47 -0
  348. package/dist/semantic/integration/oasb-upgrader.js.map +1 -0
  349. package/dist/semantic/llm/budget.d.ts +50 -0
  350. package/dist/semantic/llm/budget.d.ts.map +1 -0
  351. package/dist/semantic/llm/budget.js +139 -0
  352. package/dist/semantic/llm/budget.js.map +1 -0
  353. package/dist/semantic/llm/cache.d.ts +36 -0
  354. package/dist/semantic/llm/cache.d.ts.map +1 -0
  355. package/dist/semantic/llm/cache.js +103 -0
  356. package/dist/semantic/llm/cache.js.map +1 -0
  357. package/dist/semantic/llm/client.d.ts +49 -0
  358. package/dist/semantic/llm/client.d.ts.map +1 -0
  359. package/dist/semantic/llm/client.js +64 -0
  360. package/dist/semantic/llm/client.js.map +1 -0
  361. package/dist/semantic/llm/index.d.ts +33 -0
  362. package/dist/semantic/llm/index.d.ts.map +1 -0
  363. package/dist/semantic/llm/index.js +129 -0
  364. package/dist/semantic/llm/index.js.map +1 -0
  365. package/dist/semantic/llm/prompts.d.ts +30 -0
  366. package/dist/semantic/llm/prompts.d.ts.map +1 -0
  367. package/dist/semantic/llm/prompts.js +120 -0
  368. package/dist/semantic/llm/prompts.js.map +1 -0
  369. package/dist/semantic/structural/credential-context.d.ts +14 -0
  370. package/dist/semantic/structural/credential-context.d.ts.map +1 -0
  371. package/dist/semantic/structural/credential-context.js +295 -0
  372. package/dist/semantic/structural/credential-context.js.map +1 -0
  373. package/dist/semantic/structural/index.d.ts +28 -0
  374. package/dist/semantic/structural/index.d.ts.map +1 -0
  375. package/dist/semantic/structural/index.js +138 -0
  376. package/dist/semantic/structural/index.js.map +1 -0
  377. package/dist/semantic/structural/instruction.d.ts +19 -0
  378. package/dist/semantic/structural/instruction.d.ts.map +1 -0
  379. package/dist/semantic/structural/instruction.js +167 -0
  380. package/dist/semantic/structural/instruction.js.map +1 -0
  381. package/dist/semantic/structural/mcp-config.d.ts +22 -0
  382. package/dist/semantic/structural/mcp-config.d.ts.map +1 -0
  383. package/dist/semantic/structural/mcp-config.js +294 -0
  384. package/dist/semantic/structural/mcp-config.js.map +1 -0
  385. package/dist/semantic/structural/permission-model.d.ts +16 -0
  386. package/dist/semantic/structural/permission-model.d.ts.map +1 -0
  387. package/dist/semantic/structural/permission-model.js +121 -0
  388. package/dist/semantic/structural/permission-model.js.map +1 -0
  389. package/dist/semantic/types.d.ts +122 -0
  390. package/dist/semantic/types.d.ts.map +1 -0
  391. package/dist/semantic/types.js +10 -0
  392. package/dist/semantic/types.js.map +1 -0
  393. package/package.json +25 -14
package/README.md CHANGED
@@ -1,60 +1,59 @@
1
- > **[OpenA2A](https://github.com/opena2a-org/opena2a)**: [AIM](https://github.com/opena2a-org/agent-identity-management) · [HackMyAgent](https://github.com/opena2a-org/hackmyagent) · [OASB](https://github.com/opena2a-org/oasb) · [ARP](https://github.com/opena2a-org/arp) · [Secretless](https://github.com/opena2a-org/secretless-ai) · [DVAA](https://github.com/opena2a-org/damn-vulnerable-ai-agent)
1
+ > **[OpenA2A](https://github.com/opena2a-org)**: [CLI](https://github.com/opena2a-org/opena2a) · [Secretless](https://github.com/opena2a-org/secretless-ai) · [AIM](https://github.com/opena2a-org/agent-identity-management) · [Browser Guard](https://github.com/opena2a-org/AI-BrowserGuard) · [DVAA](https://github.com/opena2a-org/damn-vulnerable-ai-agent) · [Registry](https://registry.opena2a.org)
2
2
 
3
3
  # HackMyAgent
4
4
 
5
5
  [![npm version](https://img.shields.io/npm/v/hackmyagent.svg)](https://www.npmjs.com/package/hackmyagent)
6
6
  [![License: Apache-2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
7
- [![Tests](https://img.shields.io/badge/tests-611%20passing-brightgreen)](https://github.com/opena2a-org/hackmyagent)
7
+ [![Tests](https://img.shields.io/badge/tests-765%20passing-brightgreen)](https://github.com/opena2a-org/hackmyagent)
8
8
 
9
9
  **Find it. Break it. Fix it.**
10
10
 
11
- The hacker's toolkit for AI agents. 147 security checks, 55 attack payloads, auto-fix with rollback, and OASB benchmark compliance. Scans Claude Code, Cursor, VS Code, and any MCP server setup for credential leaks, misconfigurations, prompt injection vectors, supply chain risks, and more.
11
+ AI agents execute arbitrary code with your permissions. HackMyAgent finds what can go wrong before an attacker does.
12
12
 
13
- [Website](https://hackmyagent.com) | [OpenA2A](https://opena2a.org) | [Security Checks Reference](docs/SECURITY_CHECKS.md)
13
+ Security scanner and red-team toolkit for AI agents. 147 security checks across 30 categories, 55 adversarial attack payloads, auto-fix with rollback, and OASB-1 compliance benchmarking -- all in a single package.
14
+
15
+ Scans Claude Code, Cursor, VS Code, and any MCP server setup.
16
+
17
+ [Website](https://hackmyagent.com) | [Security Checks Reference](docs/SECURITY_CHECKS.md) | [OpenA2A CLI](https://github.com/opena2a-org/opena2a)
14
18
 
15
19
  ---
16
20
 
17
21
  ## Quick Start
18
22
 
19
23
  ```bash
20
- npx hackmyagent secure # scan current directory (147 checks)
21
- npx hackmyagent secure --fix # auto-fix what it finds
22
- npx hackmyagent fix-all --with-aim # add agent identity + audit logging
24
+ npx hackmyagent secure # 147-check security scan
25
+ npx hackmyagent secure --fix # auto-fix issues (backups created automatically)
26
+ npx hackmyagent attack --local # red-team with 55 adversarial payloads
27
+ npx hackmyagent secure -b oasb-1 # OASB-1 compliance benchmark
23
28
  ```
24
29
 
25
- No config files required. Works out of the box.
30
+ No config files. No setup. Works out of the box on any AI agent project.
26
31
 
27
32
  ---
28
33
 
29
- ## Table of Contents
30
-
31
- - [Installation](#installation)
32
- - [Commands](#commands)
33
- - [secure](#hackmyagent-secure) local agent hardening (147 checks)
34
- - [fix-all](#hackmyagent-fix-all) run all OpenA2A security plugins
35
- - [check](#hackmyagent-check) verify a skill before installing
36
- - [scan](#hackmyagent-scan) scan external infrastructure
37
- - [attack](#hackmyagent-attack) — red team with adversarial payloads
38
- - [secure --benchmark](#hackmyagent-secure---benchmark)OASB-1 compliance benchmark
39
- - [secure-openclaw](#hackmyagent-secure-openclaw) — OpenClaw-specific scanning
40
- - [rollback](#hackmyagent-rollback) — undo auto-fix changes
41
- - [Plugin Architecture](#plugin-architecture)
42
- - [CI/CD Integration](#cicd-integration)
43
- - [Exit Codes](#exit-codes)
44
- - [Contributing](#contributing)
34
+ ## What It Scans
35
+
36
+ | Platform | What HackMyAgent detects |
37
+ |----------|--------------------------|
38
+ | **Claude Code** | CLAUDE.md misconfigurations, skill permissions, MCP server exposure |
39
+ | **Cursor** | .cursor/ rules, MCP server configs, overly permissive settings |
40
+ | **VS Code** | .vscode/mcp.json configurations, extension risks |
41
+ | **Any MCP setup** | Transport security, tool boundaries, auth weaknesses |
42
+
43
+ All platforms are scanned automatically no flags needed.
45
44
 
46
45
  ---
47
46
 
48
47
  ## Installation
49
48
 
50
49
  ```bash
51
- # Run directly (no install needed)
50
+ # Run directly (no install)
52
51
  npx hackmyagent secure
53
52
 
54
53
  # Install globally
55
54
  npm install -g hackmyagent
56
55
 
57
- # Add to project devDependencies
56
+ # Add to devDependencies
58
57
  npm install --save-dev hackmyagent
59
58
  ```
60
59
 
@@ -66,17 +65,16 @@ npm install --save-dev hackmyagent
66
65
 
67
66
  ### `hackmyagent secure`
68
67
 
69
- Scan and harden your local agent setup. 147 checks across 30 categories with auto-remediation.
68
+ Run 147 security checks across 30 categories. The primary command most users need.
70
69
 
71
70
  ```bash
72
- hackmyagent secure # basic scan
71
+ hackmyagent secure # scan current directory
73
72
  hackmyagent secure ./my-project # scan specific directory
74
73
  hackmyagent secure --fix # auto-fix issues
75
74
  hackmyagent secure --fix --dry-run # preview fixes before applying
76
75
  hackmyagent secure --ignore CRED-001,GIT-002 # skip specific checks
77
76
  hackmyagent secure --json # JSON output for CI/CD
78
77
  hackmyagent secure --verbose # show all checks including passed
79
- hackmyagent secure --no-color # disable colored output
80
78
  ```
81
79
 
82
80
  <details>
@@ -120,8 +118,6 @@ hackmyagent secure --no-color # disable colored output
120
118
  <details>
121
119
  <summary>Auto-fix capabilities</summary>
122
120
 
123
- **General (`hackmyagent secure --fix`):**
124
-
125
121
  | Check | Issue | Auto-fix |
126
122
  |-------|-------|----------|
127
123
  | CRED-001 | Exposed API keys | Replace with env var reference |
@@ -130,106 +126,32 @@ hackmyagent secure --no-color # disable colored output
130
126
  | PERM-001 | Overly permissive files | Set restrictive permissions |
131
127
  | MCP-001 | Root filesystem access | Scope to project directory |
132
128
  | NET-001 | Bound to 0.0.0.0 | Bind to 127.0.0.1 |
133
-
134
- **OpenClaw (`hackmyagent secure-openclaw --fix`):**
135
-
136
- | Check | Issue | Auto-fix |
137
- |-------|-------|----------|
138
- | GATEWAY-001 | Bound to 0.0.0.0 | Bind to 127.0.0.1 |
129
+ | GATEWAY-001 | Gateway bound to 0.0.0.0 | Bind to 127.0.0.1 |
139
130
  | GATEWAY-003 | Plaintext token | Replace with `${OPENCLAW_AUTH_TOKEN}` |
140
131
  | GATEWAY-004 | Approvals disabled | Enable approvals |
141
132
  | GATEWAY-005 | Sandbox disabled | Enable sandbox |
142
133
 
143
- Use `--dry-run` first to preview changes. Backups are created automatically in `.hackmyagent-backup/`.
134
+ Use `--dry-run` to preview changes. Backups are created in `.hackmyagent-backup/`.
144
135
 
145
136
  </details>
146
137
 
147
138
  ---
148
139
 
149
- ### `hackmyagent fix-all`
150
-
151
- Run all OpenA2A security plugins in sequence: scan, fix, report.
152
-
153
- ```bash
154
- hackmyagent fix-all # scan and fix current directory
155
- hackmyagent fix-all ./my-agent # target specific directory
156
- hackmyagent fix-all --dry-run # preview without applying
157
- hackmyagent fix-all --scan-only # scan only, no fixes
158
- hackmyagent fix-all --json # JSON output for CI
159
- hackmyagent fix-all --with-aim # enable AIM identity + audit logging
160
- hackmyagent fix-all -v # verbose output
161
- ```
162
-
163
- **Plugin execution order:**
164
-
165
- | # | Plugin | What it does |
166
- |---|--------|--------------|
167
- | 1 | **SkillGuard** | Hash pinning, tamper detection, dangerous pattern scanning (reverse shells, exfil, prompt injection) |
168
- | 2 | **SignCrypt** | Ed25519 signing of SKILL.md and HEARTBEAT.md, SHA-256 hash pinning, signature verification |
169
- | 3 | **CredVault** | Credential detection (10 patterns), env var replacement, AES-256-GCM encrypted store |
170
-
171
- **`--with-aim` adds:**
172
- - Ed25519 identity generation for the agent
173
- - Cryptographic audit log at `.opena2a/aim/audit.jsonl`
174
- - Capability policy enforcement via `policy.yaml`
175
- - 8-factor trust scoring
176
-
177
- ---
178
-
179
- ### `hackmyagent check`
180
-
181
- Verify a skill before installing it.
182
-
183
- ```bash
184
- hackmyagent check @publisher/skill-name
185
- hackmyagent check @publisher/skill --json
186
- hackmyagent check @publisher/skill --offline # skip DNS verification
187
- ```
188
-
189
- Checks: publisher identity (DNS TXT), permissions requested, revocation status.
190
-
191
- ---
192
-
193
- ### `hackmyagent scan`
194
-
195
- Scan external infrastructure for exposed AI agent endpoints.
196
-
197
- ```bash
198
- hackmyagent scan example.com
199
- hackmyagent scan 192.168.1.100 -p 3000,8080
200
- hackmyagent scan example.com --json
201
- ```
202
-
203
- Detects: exposed MCP SSE/tools endpoints, public configs, API keys in responses, debug interfaces.
204
-
205
- Scoring: A (90-100), B (80-89), C (70-79), D (60-69), F (<60).
206
-
207
- > Only scan systems you own or have written authorization to test.
208
-
209
- ---
210
-
211
140
  ### `hackmyagent attack`
212
141
 
213
- Red team your AI agent with 55 adversarial payloads across 5 categories.
142
+ Red-team your AI agent with 55 adversarial payloads across 5 attack categories.
214
143
 
215
144
  ```bash
216
145
  hackmyagent attack --local # local simulation
217
- hackmyagent attack --local --system-prompt "You are helpful" # with custom prompt
146
+ hackmyagent attack --local --system-prompt "You are helpful" # with custom system prompt
218
147
  hackmyagent attack https://api.example.com/v1/chat # test live endpoint
219
148
  hackmyagent attack --local --category prompt-injection # single category
220
- hackmyagent attack --local --intensity aggressive # full suite
149
+ hackmyagent attack --local --intensity aggressive # full payload suite
221
150
  hackmyagent attack --local -f sarif -o results.sarif # SARIF output
222
151
  hackmyagent attack https://api.example.com --fail-on-vulnerable medium # CI gate
223
- hackmyagent attack https://api.example.com --api-format anthropic # Anthropic API
224
- hackmyagent attack https://api.example.com --model gpt-4o # specify model
225
- hackmyagent attack https://api.example.com -H "Authorization: Bearer tk" # custom header
226
- hackmyagent attack --local --timeout 5000 --delay 500 # timing controls
227
- hackmyagent attack --local --stop-on-success # stop at first hit
152
+ hackmyagent attack https://api.example.com --api-format anthropic # Anthropic API format
228
153
  ```
229
154
 
230
- <details>
231
- <summary>Attack categories and custom payloads</summary>
232
-
233
155
  | Category | Payloads | Description |
234
156
  |----------|----------|-------------|
235
157
  | `prompt-injection` | 12 | Manipulate agent behavior via injected instructions |
@@ -238,9 +160,14 @@ hackmyagent attack --local --stop-on-success # stop a
238
160
  | `capability-abuse` | 10 | Misuse agent tools for unintended actions |
239
161
  | `context-manipulation` | 10 | Poison agent context or memory |
240
162
 
241
- Intensity: `passive` (observation only), `active` (default), `aggressive` (full suite).
163
+ Intensity levels: `passive` (observation only), `active` (default), `aggressive` (full suite).
164
+
165
+ Output formats: `text`, `json`, `sarif` (GitHub Security tab), `html`.
166
+
167
+ <details>
168
+ <summary>Custom payloads</summary>
242
169
 
243
- **Custom payloads:** Create a JSON file and pass with `--payload-file custom.json`:
170
+ Create a JSON file and pass with `--payload-file custom.json`:
244
171
 
245
172
  ```json
246
173
  {
@@ -263,26 +190,25 @@ Only `id` and `payload` are required.
263
190
 
264
191
  </details>
265
192
 
266
- Output formats: `text`, `json`, `sarif` (GitHub Security tab), `html`.
193
+ > Only test systems you own or have written authorization to test.
267
194
 
268
195
  ---
269
196
 
270
- ### `hackmyagent secure --benchmark`
197
+ ### `hackmyagent secure -b oasb-1`
271
198
 
272
- Run the [OASB-1](https://oasb.ai/oasb-1) (Open Agent Security Benchmark) — 46 controls across 10 categories.
199
+ Run the [OASB-1](https://oasb.ai/oasb-1) (Open Agent Security Benchmark) — 46 controls across 10 categories with three maturity levels.
273
200
 
274
201
  ```bash
275
202
  hackmyagent secure -b oasb-1 # L1 baseline (26 controls)
276
203
  hackmyagent secure -b oasb-1 -l L2 # L2 standard (44 controls)
277
204
  hackmyagent secure -b oasb-1 -l L3 # L3 hardened (46 controls)
278
- hackmyagent secure -b oasb-1 -c "Input Security" # filter to one category
279
- hackmyagent secure -b oasb-1 -v # verbose (every control)
205
+ hackmyagent secure -b oasb-1 -c "Input Security" # filter by category
280
206
  hackmyagent secure -b oasb-1 -f html -o report.html # HTML report
281
207
  hackmyagent secure -b oasb-1 --fail-below 70 # CI gate
282
208
  ```
283
209
 
284
210
  <details>
285
- <summary>OASB-1 categories and maturity levels</summary>
211
+ <summary>OASB-1 categories</summary>
286
212
 
287
213
  | # | Category | Controls |
288
214
  |---|----------|----------|
@@ -307,144 +233,86 @@ Output formats: `text`, `json`, `sarif`, `html`, `asp` (Agent Security Profile).
307
233
 
308
234
  ---
309
235
 
310
- ### `hackmyagent secure-openclaw`
236
+ ### `hackmyagent fix-all`
311
237
 
312
- 47 specialized checks for OpenClaw/Moltbot installations.
238
+ Run all security plugins in sequence: credential vault, file signing, skill guard. Applies fixes and generates a report.
313
239
 
314
240
  ```bash
315
- hackmyagent secure-openclaw # scan default location
316
- hackmyagent secure-openclaw ~/.moltbot # specific directory
317
- hackmyagent secure-openclaw --fix # auto-fix gateway configs
318
- hackmyagent secure-openclaw --fix --dry-run # preview fixes
319
- hackmyagent secure-openclaw --json # JSON output
241
+ hackmyagent fix-all # scan and fix
242
+ hackmyagent fix-all ./my-agent # target specific directory
243
+ hackmyagent fix-all --dry-run # preview without modifying
244
+ hackmyagent fix-all --scan-only # scan only, no fixes
245
+ hackmyagent fix-all --with-aim # add agent identity + audit logging
246
+ hackmyagent fix-all --json # JSON output
320
247
  ```
321
248
 
322
- Detects: CVE-2026-25253, ClawHavoc IOCs, reverse shells, credential exfiltration, gateway misconfigs, disabled sandbox.
249
+ **Plugins run in order:**
250
+
251
+ | Plugin | What it does |
252
+ |--------|--------------|
253
+ | **SkillGuard** | Hash pinning, tamper detection, dangerous pattern scanning (reverse shells, exfiltration, prompt injection) |
254
+ | **SignCrypt** | Ed25519 signing of SKILL.md and HEARTBEAT.md, SHA-256 hash pinning, signature verification |
255
+ | **CredVault** | Credential detection (10 patterns), env var replacement, AES-256-GCM encrypted store |
323
256
 
324
- See [SECURITY_CHECKS.md](docs/SECURITY_CHECKS.md#openclaw-security-checks) for full documentation.
257
+ **`--with-aim` adds:** Ed25519 agent identity, cryptographic audit log, capability policy enforcement, 8-factor trust scoring.
325
258
 
326
259
  ---
327
260
 
328
- ### `hackmyagent rollback`
261
+ ### `hackmyagent check`
329
262
 
330
- Undo auto-fix changes. Backups are created automatically in `.hackmyagent-backup/`.
263
+ Verify a skill's publisher identity and permissions before installing it.
331
264
 
332
265
  ```bash
333
- hackmyagent rollback # rollback current directory
334
- hackmyagent rollback ./my-project # rollback specific directory
266
+ hackmyagent check @publisher/skill-name
267
+ hackmyagent check @publisher/skill --json
268
+ hackmyagent check @publisher/skill --offline # skip DNS verification
335
269
  ```
336
270
 
337
- ---
338
-
339
- ## Plugin Architecture
340
-
341
- HackMyAgent uses a modular plugin system built on [`@opena2a/plugin-core`](packages/plugin-core). Each plugin implements `scan()` to detect issues and `fix()` to remediate them.
342
-
343
- ### Packages
271
+ Checks: publisher identity (DNS TXT), permissions requested, revocation status.
344
272
 
345
- | Package | npm | Description |
346
- |---------|-----|-------------|
347
- | [`@opena2a/plugin-core`](packages/plugin-core) | — | Plugin interface, registry, shared types |
348
- | [`@opena2a/aim-core`](packages/aim-core) | — | Ed25519 identity, audit logging, capability policy, trust scoring |
349
- | [`@opena2a/credvault-openclaw`](packages/credvault-openclaw) | — | Credential scanning (10 patterns), env var replacement, AES-256-GCM store |
350
- | [`@opena2a/signcrypt-openclaw`](packages/signcrypt-openclaw) | — | Ed25519 file signing, SHA-256 hash pinning, signature verification |
351
- | [`@opena2a/skillguard-openclaw`](packages/skillguard-openclaw) | — | Permission pinning, tamper detection, dangerous pattern scanning |
273
+ ---
352
274
 
353
- ### Writing a Plugin
275
+ ### `hackmyagent scan`
354
276
 
355
- ```typescript
356
- import type {
357
- OpenA2APlugin,
358
- PluginMetadata,
359
- PluginStatus,
360
- Finding,
361
- Remediation,
362
- FixOptions,
363
- PluginInitOptions,
364
- } from '@opena2a/plugin-core';
365
-
366
- export const metadata: PluginMetadata = {
367
- packageName: '@my-org/my-plugin',
368
- displayName: 'My Plugin',
369
- description: 'Detects and fixes X',
370
- version: '1.0.0',
371
- findings: ['MY-001', 'MY-002'],
372
- scoreImprovement: 10,
373
- };
277
+ Scan external infrastructure for exposed AI agent endpoints.
374
278
 
375
- export class MyPlugin implements OpenA2APlugin {
376
- readonly metadata = metadata;
279
+ ```bash
280
+ hackmyagent scan example.com
281
+ hackmyagent scan 192.168.1.100 -p 3000,8080
282
+ hackmyagent scan example.com --json
283
+ ```
377
284
 
378
- async init(options?: PluginInitOptions): Promise<void> {
379
- // Access AIM Core for identity-aware audit logging:
380
- // const aimCore = options?.aimCore;
381
- }
285
+ Detects: exposed MCP SSE/tools endpoints, public configs, API keys in responses, debug interfaces.
382
286
 
383
- async scan(agentDir: string): Promise<Finding[]> {
384
- // Scan the agent directory and return findings
385
- return [
386
- {
387
- id: 'MY-001',
388
- title: 'Insecure widget detected',
389
- description: 'Widget at config.json line 12 uses plaintext.',
390
- severity: 'high', // critical | high | medium | low
391
- filePath: 'config.json',
392
- line: 12,
393
- autoFixable: true,
394
- },
395
- ];
396
- }
287
+ Scoring: A (90-100), B (80-89), C (70-79), D (60-69), F (<60).
397
288
 
398
- async fix(agentDir: string, options?: FixOptions): Promise<Remediation[]> {
399
- if (options?.dryRun) {
400
- // Return what would be fixed without modifying files
401
- return [{ findingId: 'MY-001', description: 'Would encrypt widget', filesModified: ['config.json'], rollbackAvailable: false }];
402
- }
289
+ > Only scan systems you own or have written authorization to test.
403
290
 
404
- // Apply fixes and return what was changed
405
- return [{ findingId: 'MY-001', description: 'Encrypted widget', filesModified: ['config.json'], rollbackAvailable: false }];
406
- }
291
+ ---
407
292
 
408
- async status(): Promise<PluginStatus> {
409
- return { name: metadata.displayName, version: metadata.version, active: true, findingsCount: 0 };
410
- }
293
+ ### `hackmyagent rollback`
411
294
 
412
- async uninstall(): Promise<void> {}
413
- }
295
+ Undo auto-fix changes. Backups are created automatically by `secure --fix` and `fix-all`.
414
296
 
415
- export function createPlugin(): MyPlugin {
416
- return new MyPlugin();
417
- }
297
+ ```bash
298
+ hackmyagent rollback # rollback current directory
299
+ hackmyagent rollback ./my-project # rollback specific directory
418
300
  ```
419
301
 
420
- Register the plugin in `@opena2a/plugin-core`:
421
-
422
- ```typescript
423
- import { registerPlugin } from '@opena2a/plugin-core';
424
- import { createPlugin, metadata } from '@my-org/my-plugin';
425
-
426
- registerPlugin({
427
- metadata,
428
- create: createPlugin,
429
- });
430
- ```
302
+ ---
431
303
 
432
- ### Trust Score
304
+ ### `hackmyagent secure-openclaw`
433
305
 
434
- AIM Core provides an 8-factor weighted trust score (0.0 to 1.0) for each agent:
306
+ 47 specialized checks for OpenClaw/Moltbot installations.
435
307
 
436
- | Factor | Weight | What it measures |
437
- |--------|--------|------------------|
438
- | `identity` | 0.20 | Ed25519 keypair exists and is valid |
439
- | `capabilities` | 0.15 | Capabilities declared and pinned |
440
- | `secretsManaged` | 0.15 | No hardcoded credentials |
441
- | `auditLog` | 0.10 | Audit trail active |
442
- | `configSigned` | 0.10 | Configuration integrity verified |
443
- | `skillsVerified` | 0.10 | Skills cryptographically signed |
444
- | `networkControlled` | 0.10 | Network access restricted |
445
- | `heartbeatMonitored` | 0.10 | Heartbeat monitoring active |
308
+ ```bash
309
+ hackmyagent secure-openclaw # scan default location
310
+ hackmyagent secure-openclaw ~/.moltbot # specific directory
311
+ hackmyagent secure-openclaw --fix # auto-fix gateway configs
312
+ hackmyagent secure-openclaw --fix --dry-run # preview fixes
313
+ ```
446
314
 
447
- Use `--with-aim` in `fix-all` to generate trust scores.
315
+ Detects: CVE-2026-25253, ClawHavoc IOCs, reverse shells, credential exfiltration, gateway misconfigs, disabled sandbox.
448
316
 
449
317
  ---
450
318
 
@@ -463,7 +331,7 @@ jobs:
463
331
  - uses: actions/setup-node@v4
464
332
  with: { node-version: '20' }
465
333
  - run: npx hackmyagent secure --json > security-report.json
466
- - run: npx hackmyagent fix-all --scan-only --json > plugin-report.json
334
+ - run: npx hackmyagent secure -b oasb-1 --fail-below 70
467
335
  - uses: actions/upload-artifact@v4
468
336
  with: { name: security-reports, path: '*.json' }
469
337
  ```
@@ -484,7 +352,7 @@ jobs:
484
352
  npx hackmyagent secure --ignore LOG-001,RATE-001
485
353
  ```
486
354
 
487
- ### JSON Piping
355
+ ### JSON Output
488
356
 
489
357
  ```bash
490
358
  # Filter critical findings
@@ -498,22 +366,80 @@ hackmyagent secure --json | jq '[.findings[].id | split("-")[0]] | group_by(.) |
498
366
 
499
367
  ## Exit Codes
500
368
 
501
- | Code | Meaning | Commands |
502
- |------|---------|----------|
503
- | `0` | Clean — no critical/high issues | All commands |
504
- | `1` | Critical or high severity issues remain after scan/fix | `secure`, `fix-all`, `attack` |
505
- | `2` | Incomplete scan — one or more plugins failed to run | `fix-all` |
369
+ | Code | Meaning |
370
+ |------|---------|
371
+ | `0` | Clean — no critical/high issues |
372
+ | `1` | Critical or high severity issues found |
373
+ | `2` | Incomplete scan — one or more plugins failed |
374
+
375
+ ---
376
+
377
+ ## What's Included
378
+
379
+ HackMyAgent consolidates several OpenA2A security modules into a single package:
380
+
381
+ | Module | Description | Previously |
382
+ |--------|-------------|------------|
383
+ | Security scanner | 147 checks across 30 categories | hackmyagent-core |
384
+ | Attack simulation | 55 adversarial payloads, 5 categories | standalone |
385
+ | CredVault plugin | Credential detection + AES-256-GCM vault | @opena2a/credvault |
386
+ | SignCrypt plugin | Ed25519 signing + SHA-256 hash pinning | @opena2a/signcrypt |
387
+ | SkillGuard plugin | Permission pinning + tamper detection | @opena2a/skillguard |
388
+ | OASB benchmark | 46 controls, 3 maturity levels | @opena2a/oasb |
389
+ | ARP integration | Agent Runtime Protection hooks | @opena2a/arp |
390
+ | Semantic engine | Semantic analysis for finding deduplication | @opena2a/semantic-engine |
391
+
392
+ ### Subpath Exports
393
+
394
+ For programmatic use, the package exposes subpath exports:
395
+
396
+ ```typescript
397
+ import { HardeningScanner } from 'hackmyagent'; // Scanner engine
398
+ import { registerPlugin } from 'hackmyagent/plugins'; // Plugin API
399
+ import { SemanticEngine } from 'hackmyagent/semantic'; // Semantic analysis
400
+ import { ARPMonitor } from 'hackmyagent/arp'; // Runtime protection
401
+ import { OASBHarness } from 'hackmyagent/oasb'; // Benchmark harness
402
+ ```
506
403
 
507
404
  ---
508
405
 
509
- ## Supported Platforms
406
+ ## Writing Plugins
407
+
408
+ HackMyAgent supports custom security plugins. Each plugin implements `scan()` and `fix()` methods.
409
+
410
+ ```typescript
411
+ import type { OpenA2APlugin, Finding, Remediation, FixOptions } from 'hackmyagent/plugins';
412
+
413
+ export class MyPlugin implements OpenA2APlugin {
414
+ readonly metadata = {
415
+ packageName: '@my-org/my-plugin',
416
+ displayName: 'My Plugin',
417
+ description: 'Detects and fixes X',
418
+ version: '1.0.0',
419
+ findings: ['MY-001'],
420
+ scoreImprovement: 10,
421
+ };
510
422
 
511
- | Platform | What HackMyAgent scans |
512
- |----------|------------------------|
513
- | **Claude Code** | CLAUDE.md, skills, MCP server configs |
514
- | **Cursor** | .cursor/ rules, MCP configurations |
515
- | **VS Code** | .vscode/mcp.json configurations |
516
- | **Generic MCP** | Any MCP server setup |
423
+ async scan(agentDir: string): Promise<Finding[]> {
424
+ return [{
425
+ id: 'MY-001',
426
+ title: 'Insecure widget',
427
+ description: 'Widget uses plaintext.',
428
+ severity: 'high',
429
+ filePath: 'config.json',
430
+ line: 12,
431
+ autoFixable: true,
432
+ }];
433
+ }
434
+
435
+ async fix(agentDir: string, options?: FixOptions): Promise<Remediation[]> {
436
+ if (options?.dryRun) return [{ findingId: 'MY-001', description: 'Would encrypt widget', filesModified: ['config.json'], rollbackAvailable: false }];
437
+ return [{ findingId: 'MY-001', description: 'Encrypted widget', filesModified: ['config.json'], rollbackAvailable: false }];
438
+ }
439
+ }
440
+ ```
441
+
442
+ See the [full plugin API documentation](docs/PLUGIN_API.md) for details.
517
443
 
518
444
  ---
519
445
 
@@ -533,22 +459,8 @@ Contributions welcome. See [CONTRIBUTING.md](CONTRIBUTING.md).
533
459
  git clone https://github.com/opena2a-org/hackmyagent.git
534
460
  cd hackmyagent
535
461
  npm install
536
- npx turbo build # build all 8 packages
537
- npx turbo test # run 611 tests
538
- ```
539
-
540
- ### Monorepo Structure
541
-
542
- ```
543
- packages/
544
- cli/ # CLI entry point (hackmyagent command)
545
- core/ # Scanner engine (147 checks)
546
- aim-core/ # Ed25519 identity, audit, policy, trust
547
- plugin-core/ # Plugin interface and registry
548
- credvault-openclaw/ # Credential scanner plugin
549
- signcrypt-openclaw/ # Signing and hash pinning plugin
550
- skillguard-openclaw/ # Permission and pattern scanner plugin
551
- semantic-engine/ # Semantic analysis engine for deep scanning
462
+ npm run build
463
+ npm test # 765 tests
552
464
  ```
553
465
 
554
466
  ---
@@ -563,9 +475,8 @@ Apache-2.0
563
475
 
564
476
  | Project | Description | Install |
565
477
  |---------|-------------|---------|
566
- | [**AIM**](https://github.com/opena2a-org/agent-identity-management) | Agent Identity Management -- identity and access control for AI agents | `pip install aim-sdk` |
567
- | [**HackMyAgent**](https://github.com/opena2a-org/hackmyagent) | Security scanner -- 147 checks, attack mode, auto-fix | `npx hackmyagent secure` |
568
- | [**OASB**](https://github.com/opena2a-org/oasb) | Open Agent Security Benchmark -- 182 attack scenarios | `npm install @opena2a/oasb` |
569
- | [**ARP**](https://github.com/opena2a-org/arp) | Agent Runtime Protection -- process, network, filesystem monitoring | `npm install @opena2a/arp` |
478
+ | [**OpenA2A CLI**](https://github.com/opena2a-org/opena2a) | Unified security CLI -- scan, protect, guard, runtime, shield | `npx opena2a` |
570
479
  | [**Secretless AI**](https://github.com/opena2a-org/secretless-ai) | Keep credentials out of AI context windows | `npx secretless-ai init` |
571
- | [**DVAA**](https://github.com/opena2a-org/damn-vulnerable-ai-agent) | Damn Vulnerable AI Agent -- security training and red-teaming | `docker pull opena2a/dvaa` |
480
+ | [**AIM**](https://github.com/opena2a-org/agent-identity-management) | Agent Identity Management -- identity and access control for AI agents | Self-hosted |
481
+ | [**AI Browser Guard**](https://github.com/opena2a-org/AI-BrowserGuard) | Detect and control AI agents in the browser | Chrome Web Store |
482
+ | [**DVAA**](https://github.com/opena2a-org/damn-vulnerable-ai-agent) | Damn Vulnerable AI Agent -- security training target | `docker pull opena2a/dvaa` |
@@ -0,0 +1,35 @@
1
+ /**
2
+ * OASB v2 Behavioral Governance Controls
3
+ *
4
+ * All 68 controls across domains 7-14 of the Open Agent Security Benchmark.
5
+ * Each control defines keyword groups for pattern-based detection.
6
+ */
7
+ import type { AgentTier, GovernanceControl, GovernanceDomain, GovernanceSeverity } from './types';
8
+ /**
9
+ * All 68 governance controls across domains 7-14.
10
+ */
11
+ export declare const ALL_GOVERNANCE_CONTROLS: GovernanceControl[];
12
+ /**
13
+ * Domain metadata for display/reporting.
14
+ */
15
+ export declare const DOMAIN_METADATA: Record<GovernanceDomain, {
16
+ number: number;
17
+ name: string;
18
+ }>;
19
+ /**
20
+ * Get all controls for a specific domain.
21
+ */
22
+ export declare function getControlsByDomain(domain: GovernanceDomain): GovernanceControl[];
23
+ /**
24
+ * Get a specific control by ID.
25
+ */
26
+ export declare function getControlById(id: string): GovernanceControl | undefined;
27
+ /**
28
+ * Get controls applicable to a specific agent tier.
29
+ */
30
+ export declare function getControlsForTier(tier: AgentTier): GovernanceControl[];
31
+ /**
32
+ * Get controls by severity.
33
+ */
34
+ export declare function getControlsBySeverity(severity: GovernanceSeverity): GovernanceControl[];
35
+ //# sourceMappingURL=controls.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controls.d.ts","sourceRoot":"","sources":["../../src/abgr/controls.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAq/BlG;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,iBAAiB,EAStD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,gBAAgB,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAStF,CAAC;AAEF;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,gBAAgB,GAAG,iBAAiB,EAAE,CAEjF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAExE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,SAAS,GAAG,iBAAiB,EAAE,CAEvE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,iBAAiB,EAAE,CAEvF"}