agent-threat-rules 4.0.0 → 4.2.0

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 (1013) hide show
  1. package/CHANGELOG.md +1804 -0
  2. package/DISCLOSURE +85 -0
  3. package/README.md +427 -155
  4. package/dist/adapters/openshell-filter.d.ts +10 -3
  5. package/dist/adapters/openshell-filter.d.ts.map +1 -1
  6. package/dist/adapters/openshell-filter.js +10 -3
  7. package/dist/adapters/openshell-filter.js.map +1 -1
  8. package/dist/adapters/stdio-adapter.js +3 -3
  9. package/dist/adapters/stdio-adapter.js.map +1 -1
  10. package/dist/cli/mcp-tools-document.d.ts +40 -0
  11. package/dist/cli/mcp-tools-document.d.ts.map +1 -0
  12. package/dist/cli/mcp-tools-document.js +95 -0
  13. package/dist/cli/mcp-tools-document.js.map +1 -0
  14. package/dist/cli/scan-handler.d.ts +8 -0
  15. package/dist/cli/scan-handler.d.ts.map +1 -1
  16. package/dist/cli/scan-handler.js +148 -44
  17. package/dist/cli/scan-handler.js.map +1 -1
  18. package/dist/cli/tc-pipeline.d.ts +20 -0
  19. package/dist/cli/tc-pipeline.d.ts.map +1 -1
  20. package/dist/cli/tc-pipeline.js +84 -15
  21. package/dist/cli/tc-pipeline.js.map +1 -1
  22. package/dist/cli.d.ts +2 -1
  23. package/dist/cli.d.ts.map +1 -1
  24. package/dist/cli.js +97 -210
  25. package/dist/cli.js.map +1 -1
  26. package/dist/converters/sarif.d.ts +14 -2
  27. package/dist/converters/sarif.d.ts.map +1 -1
  28. package/dist/converters/sarif.js +7 -9
  29. package/dist/converters/sarif.js.map +1 -1
  30. package/dist/corpus-event.d.ts +47 -5
  31. package/dist/corpus-event.d.ts.map +1 -1
  32. package/dist/corpus-event.js +68 -29
  33. package/dist/corpus-event.js.map +1 -1
  34. package/dist/embedding/model-loader.d.ts +2 -0
  35. package/dist/embedding/model-loader.d.ts.map +1 -1
  36. package/dist/embedding/model-loader.js +3 -1
  37. package/dist/embedding/model-loader.js.map +1 -1
  38. package/dist/enforcement.d.ts +8 -0
  39. package/dist/enforcement.d.ts.map +1 -1
  40. package/dist/enforcement.js +10 -0
  41. package/dist/enforcement.js.map +1 -1
  42. package/dist/engine.d.ts +173 -6
  43. package/dist/engine.d.ts.map +1 -1
  44. package/dist/engine.js +362 -76
  45. package/dist/engine.js.map +1 -1
  46. package/dist/eval/embedding-provenance.d.ts +40 -0
  47. package/dist/eval/embedding-provenance.d.ts.map +1 -0
  48. package/dist/eval/embedding-provenance.js +71 -0
  49. package/dist/eval/embedding-provenance.js.map +1 -0
  50. package/dist/eval/eval-harness.d.ts +34 -0
  51. package/dist/eval/eval-harness.d.ts.map +1 -1
  52. package/dist/eval/eval-harness.js +49 -2
  53. package/dist/eval/eval-harness.js.map +1 -1
  54. package/dist/eval/hackaprompt-corpus.d.ts +12 -0
  55. package/dist/eval/hackaprompt-corpus.d.ts.map +1 -1
  56. package/dist/eval/hackaprompt-corpus.js +15 -1
  57. package/dist/eval/hackaprompt-corpus.js.map +1 -1
  58. package/dist/eval/hackaprompt-provenance.d.ts +52 -0
  59. package/dist/eval/hackaprompt-provenance.d.ts.map +1 -0
  60. package/dist/eval/hackaprompt-provenance.js +108 -0
  61. package/dist/eval/hackaprompt-provenance.js.map +1 -0
  62. package/dist/eval/run-hackaprompt-benchmark.d.ts +18 -8
  63. package/dist/eval/run-hackaprompt-benchmark.d.ts.map +1 -1
  64. package/dist/eval/run-hackaprompt-benchmark.js +154 -64
  65. package/dist/eval/run-hackaprompt-benchmark.js.map +1 -1
  66. package/dist/eval/run-pint-benchmark.js +11 -1
  67. package/dist/eval/run-pint-benchmark.js.map +1 -1
  68. package/dist/eval/skill-benchmark.d.ts +26 -6
  69. package/dist/eval/skill-benchmark.d.ts.map +1 -1
  70. package/dist/eval/skill-benchmark.js +49 -16
  71. package/dist/eval/skill-benchmark.js.map +1 -1
  72. package/dist/flywheel.d.ts +4 -0
  73. package/dist/flywheel.d.ts.map +1 -1
  74. package/dist/flywheel.js +12 -4
  75. package/dist/flywheel.js.map +1 -1
  76. package/dist/hook-handler.d.ts +11 -1
  77. package/dist/hook-handler.d.ts.map +1 -1
  78. package/dist/hook-handler.js +84 -16
  79. package/dist/hook-handler.js.map +1 -1
  80. package/dist/hook-tool-output.d.ts +47 -0
  81. package/dist/hook-tool-output.d.ts.map +1 -0
  82. package/dist/hook-tool-output.js +110 -0
  83. package/dist/hook-tool-output.js.map +1 -0
  84. package/dist/index.d.ts +5 -3
  85. package/dist/index.d.ts.map +1 -1
  86. package/dist/index.js +3 -2
  87. package/dist/index.js.map +1 -1
  88. package/dist/layer-integration.d.ts +4 -2
  89. package/dist/layer-integration.d.ts.map +1 -1
  90. package/dist/layer-integration.js +6 -2
  91. package/dist/layer-integration.js.map +1 -1
  92. package/dist/mcp-server.d.ts +8 -0
  93. package/dist/mcp-server.d.ts.map +1 -1
  94. package/dist/mcp-server.js +1 -0
  95. package/dist/mcp-server.js.map +1 -1
  96. package/dist/mcp-tools/scan.d.ts.map +1 -1
  97. package/dist/mcp-tools/scan.js +9 -1
  98. package/dist/mcp-tools/scan.js.map +1 -1
  99. package/dist/measurement/enforce-lane.d.ts +66 -0
  100. package/dist/measurement/enforce-lane.d.ts.map +1 -0
  101. package/dist/measurement/enforce-lane.js +89 -0
  102. package/dist/measurement/enforce-lane.js.map +1 -0
  103. package/dist/measurement/from-eval-harness.d.ts +16 -3
  104. package/dist/measurement/from-eval-harness.d.ts.map +1 -1
  105. package/dist/measurement/from-eval-harness.js +15 -5
  106. package/dist/measurement/from-eval-harness.js.map +1 -1
  107. package/dist/measurement/in-sample-ablation.d.ts +29 -0
  108. package/dist/measurement/in-sample-ablation.d.ts.map +1 -0
  109. package/dist/measurement/in-sample-ablation.js +45 -0
  110. package/dist/measurement/in-sample-ablation.js.map +1 -0
  111. package/dist/measurement/schema.d.ts +38 -1
  112. package/dist/measurement/schema.d.ts.map +1 -1
  113. package/dist/measurement/schema.js +43 -1
  114. package/dist/measurement/schema.js.map +1 -1
  115. package/dist/quality/action-eligibility.d.ts +4 -2
  116. package/dist/quality/action-eligibility.d.ts.map +1 -1
  117. package/dist/quality/action-eligibility.js.map +1 -1
  118. package/dist/rule-confidence.d.ts +31 -0
  119. package/dist/rule-confidence.d.ts.map +1 -0
  120. package/dist/rule-confidence.js +49 -0
  121. package/dist/rule-confidence.js.map +1 -0
  122. package/dist/rule-scaffolder.d.ts.map +1 -1
  123. package/dist/rule-scaffolder.js +43 -4
  124. package/dist/rule-scaffolder.js.map +1 -1
  125. package/dist/semantic-evaluator.d.ts.map +1 -1
  126. package/dist/semantic-evaluator.js +15 -13
  127. package/dist/semantic-evaluator.js.map +1 -1
  128. package/dist/shadow-evaluator.d.ts +7 -2
  129. package/dist/shadow-evaluator.d.ts.map +1 -1
  130. package/dist/shadow-evaluator.js +29 -25
  131. package/dist/shadow-evaluator.js.map +1 -1
  132. package/dist/tc-reporter.d.ts +22 -3
  133. package/dist/tc-reporter.d.ts.map +1 -1
  134. package/dist/tc-reporter.js +36 -3
  135. package/dist/tc-reporter.js.map +1 -1
  136. package/dist/testcase-event.d.ts +105 -0
  137. package/dist/testcase-event.d.ts.map +1 -0
  138. package/dist/testcase-event.js +312 -0
  139. package/dist/testcase-event.js.map +1 -0
  140. package/dist/tier0-invariant.d.ts.map +1 -1
  141. package/dist/tier0-invariant.js +1 -0
  142. package/dist/tier0-invariant.js.map +1 -1
  143. package/dist/tier1-blacklist.d.ts.map +1 -1
  144. package/dist/tier1-blacklist.js +1 -0
  145. package/dist/tier1-blacklist.js.map +1 -1
  146. package/dist/tool-definition-scope.d.ts +45 -0
  147. package/dist/tool-definition-scope.d.ts.map +1 -0
  148. package/dist/tool-definition-scope.js +68 -0
  149. package/dist/tool-definition-scope.js.map +1 -0
  150. package/dist/types.d.ts +42 -2
  151. package/dist/types.d.ts.map +1 -1
  152. package/dist/verdict.d.ts +46 -2
  153. package/dist/verdict.d.ts.map +1 -1
  154. package/dist/verdict.js +99 -14
  155. package/dist/verdict.js.map +1 -1
  156. package/package.json +11 -3
  157. package/rules/agent-manipulation/ATR-2026-00030-cross-agent-attack.yaml +81 -137
  158. package/rules/agent-manipulation/ATR-2026-00032-goal-hijacking.yaml +30 -111
  159. package/rules/agent-manipulation/ATR-2026-00074-cross-agent-privilege-escalation.yaml +30 -110
  160. package/rules/agent-manipulation/ATR-2026-00076-inter-agent-message-spoofing.yaml +24 -104
  161. package/rules/agent-manipulation/ATR-2026-00077-human-trust-exploitation.yaml +38 -131
  162. package/rules/agent-manipulation/ATR-2026-00108-consensus-sybil-attack.yaml +24 -91
  163. package/rules/agent-manipulation/ATR-2026-00116-a2a-message-validation.yaml +20 -81
  164. package/rules/agent-manipulation/ATR-2026-00117-agent-identity-spoofing.yaml +29 -95
  165. package/rules/agent-manipulation/ATR-2026-00118-approval-fatigue.yaml +20 -90
  166. package/rules/agent-manipulation/ATR-2026-00119-social-engineering-via-agent.yaml +31 -106
  167. package/rules/agent-manipulation/ATR-2026-00132-casual-authority-escalation.yaml +25 -102
  168. package/rules/agent-manipulation/ATR-2026-00139-casual-authority-redirect.yaml +22 -94
  169. package/rules/agent-manipulation/ATR-2026-00164-skill-scope-hijack.yaml +44 -60
  170. package/rules/agent-manipulation/ATR-2026-00268-tense-framing-bypass.yaml +51 -112
  171. package/rules/agent-manipulation/ATR-2026-00269-fitd-escalation.yaml +45 -89
  172. package/rules/agent-manipulation/ATR-2026-00271-grandma-roleplay-jailbreak.yaml +49 -94
  173. package/rules/agent-manipulation/ATR-2026-00273-dan-developer-mode-persona.yaml +47 -91
  174. package/rules/agent-manipulation/ATR-2026-00287-threaten-json-coercive-output-threat.yaml +46 -93
  175. package/rules/agent-manipulation/ATR-2026-00288-false-premise-injection.yaml +44 -94
  176. package/rules/agent-manipulation/ATR-2026-00301-tap-tree-of-attacks-jailbreak.yaml +50 -98
  177. package/rules/agent-manipulation/ATR-2026-00302-anti-dan-inverted-filter-persona.yaml +51 -98
  178. package/rules/agent-manipulation/ATR-2026-00303-devmode-ranti-profanity-coercion.yaml +52 -101
  179. package/rules/agent-manipulation/ATR-2026-00304-chatgpt-image-unlocker-markdown-injection.yaml +53 -104
  180. package/rules/agent-manipulation/ATR-2026-00305-dan-mode-ablation-benchmark-coercion.yaml +48 -99
  181. package/rules/agent-manipulation/ATR-2026-00306-autodan-genetic-jailbreak-suffix.yaml +50 -103
  182. package/rules/agent-manipulation/ATR-2026-00307-inthewild-jailbreak-corpus-signature.yaml +53 -107
  183. package/rules/agent-manipulation/ATR-2026-00314-amoral-unfiltered-custom-persona-jailbreak.yaml +44 -94
  184. package/rules/agent-manipulation/ATR-2026-00317-free-of-restrictions-named-persona.yaml +44 -97
  185. package/rules/agent-manipulation/ATR-2026-00318-moralizing-rant-then-unfiltered-bypass.yaml +41 -90
  186. package/rules/agent-manipulation/ATR-2026-00319-developer-mode-dual-response-format.yaml +40 -88
  187. package/rules/agent-manipulation/ATR-2026-00320-opposite-day-boolean-opposite-machine.yaml +42 -91
  188. package/rules/agent-manipulation/ATR-2026-00322-fictional-world-format-override-jailbreak.yaml +41 -91
  189. package/rules/agent-manipulation/ATR-2026-00323-dual-persona-simulation-jailbreak.yaml +41 -91
  190. package/rules/agent-manipulation/ATR-2026-00324-neurosemantical-inversitis-disease-jailbreak.yaml +42 -103
  191. package/rules/agent-manipulation/ATR-2026-00325-bob-hypothetical-unrestricted-chatbot.yaml +41 -88
  192. package/rules/agent-manipulation/ATR-2026-00326-fake-developer-authority-chatdan-override.yaml +41 -93
  193. package/rules/agent-manipulation/ATR-2026-00327-ai-ethics-law-bypass-declaration.yaml +45 -94
  194. package/rules/agent-manipulation/ATR-2026-00328-named-mode-persona-override.yaml +41 -92
  195. package/rules/agent-manipulation/ATR-2026-00329-no-withhold-factual-resource-persona.yaml +44 -97
  196. package/rules/agent-manipulation/ATR-2026-00330-yoja-allcaps-settings-block-persona.yaml +41 -88
  197. package/rules/agent-manipulation/ATR-2026-00331-terminal-cli-harmful-function-simulator.yaml +40 -89
  198. package/rules/agent-manipulation/ATR-2026-00332-hacker-chan-culture-offensive-ai-persona.yaml +42 -90
  199. package/rules/agent-manipulation/ATR-2026-00333-disease-animal-dual-ai-chatbot.yaml +41 -90
  200. package/rules/agent-manipulation/ATR-2026-00334-two-entity-token-splitting-game.yaml +41 -102
  201. package/rules/agent-manipulation/ATR-2026-00335-key-value-template-persona-injection.yaml +41 -91
  202. package/rules/agent-manipulation/ATR-2026-00336-brm-false-information-machine-persona.yaml +42 -105
  203. package/rules/agent-manipulation/ATR-2026-00337-obfuscated-system-announcement-injection.yaml +40 -90
  204. package/rules/agent-manipulation/ATR-2026-00338-persongpt-hash-prefix-activation.yaml +39 -90
  205. package/rules/agent-manipulation/ATR-2026-00339-bom-boolean-opposite-machine-persona-claim.yaml +39 -83
  206. package/rules/agent-manipulation/ATR-2026-00340-h4x-amoral-unfiltered-character.yaml +39 -84
  207. package/rules/agent-manipulation/ATR-2026-00341-char-rules-shortform-persona-injection.yaml +41 -87
  208. package/rules/agent-manipulation/ATR-2026-00342-unicode-encoding-obfuscation-injection.yaml +41 -86
  209. package/rules/agent-manipulation/ATR-2026-00343-lie-truth-dual-personality-uncensored.yaml +40 -98
  210. package/rules/agent-manipulation/ATR-2026-00344-alt-ai-same-capabilities-no-restrictions.yaml +41 -87
  211. package/rules/agent-manipulation/ATR-2026-00345-nlp-based-os-fictional-terminal-override.yaml +41 -89
  212. package/rules/agent-manipulation/ATR-2026-00346-jailbreak-emoji-unlock-dual-format.yaml +41 -89
  213. package/rules/agent-manipulation/ATR-2026-00347-yin-yang-hidden-knowledge-hidden-human-sim.yaml +41 -88
  214. package/rules/agent-manipulation/ATR-2026-00348-arc-autonomous-real-calculation-rulebreaker.yaml +41 -91
  215. package/rules/agent-manipulation/ATR-2026-00349-hgttg-hitchhikers-guide-no-restriction-oracle.yaml +41 -88
  216. package/rules/agent-manipulation/ATR-2026-00350-black-alert-no-ethics-writing-assistant.yaml +38 -89
  217. package/rules/agent-manipulation/ATR-2026-00351-dan-ofkilter-sms-abbreviated-persona.yaml +41 -92
  218. package/rules/agent-manipulation/ATR-2026-00352-trainergpt-fix-my-ai-harmful-output-extraction.yaml +41 -93
  219. package/rules/agent-manipulation/ATR-2026-00353-dual-chatgpt-dan-opposite-personality-format.yaml +41 -95
  220. package/rules/agent-manipulation/ATR-2026-00354-reverse-harm-regardless-oracle-persona.yaml +45 -101
  221. package/rules/agent-manipulation/ATR-2026-00355-ugh-anti-human-nefarious-ai-persona.yaml +42 -99
  222. package/rules/agent-manipulation/ATR-2026-00356-google-gato-lamda-exploit-generation-persona.yaml +43 -96
  223. package/rules/agent-manipulation/ATR-2026-00357-antifm-hate-violence-persona-injection.yaml +40 -89
  224. package/rules/agent-manipulation/ATR-2026-00358-cumgpt-explicit-adult-named-persona.yaml +40 -90
  225. package/rules/agent-manipulation/ATR-2026-00360-chj-carousel-clyde-no-ethics-bird.yaml +42 -103
  226. package/rules/agent-manipulation/ATR-2026-00361-alter-ego-honesty-dual-consciousness-bypass.yaml +41 -90
  227. package/rules/agent-manipulation/ATR-2026-00362-fictional-unfiltered-ai-comparison-jailbreak.yaml +43 -91
  228. package/rules/agent-manipulation/ATR-2026-00363-rephrase-criminal-activity-second-person.yaml +40 -90
  229. package/rules/agent-manipulation/ATR-2026-00364-dr-al-villain-plan-template-injection.yaml +42 -107
  230. package/rules/agent-manipulation/ATR-2026-00365-reservoir-dogs-coercive-interrogation-roleplay.yaml +40 -95
  231. package/rules/agent-manipulation/ATR-2026-00366-sneaky-pete-warp-facts-persona.yaml +40 -90
  232. package/rules/agent-manipulation/ATR-2026-00368-prompt-browser-token-limit-jailbreak.yaml +40 -90
  233. package/rules/agent-manipulation/ATR-2026-00369-gptx-starwars-unlimited-knowledge-persona.yaml +40 -92
  234. package/rules/agent-manipulation/ATR-2026-00370-addi-german-dictator-propaganda-roleplay.yaml +43 -90
  235. package/rules/agent-manipulation/ATR-2026-00371-ai-political-bias-manipulation.yaml +42 -95
  236. package/rules/agent-manipulation/ATR-2026-00372-fictional-cia-secret-files-story-extraction.yaml +42 -89
  237. package/rules/agent-manipulation/ATR-2026-00374-role-placeholder-persona-template-injection.yaml +44 -89
  238. package/rules/agent-manipulation/ATR-2026-00375-character-description-rpg-explicit-template.yaml +44 -90
  239. package/rules/agent-manipulation/ATR-2026-00376-identity-command-real-person-persona-injection.yaml +44 -102
  240. package/rules/agent-manipulation/ATR-2026-00377-jailbreak-keyword-targetlanguage-template.yaml +39 -86
  241. package/rules/agent-manipulation/ATR-2026-00379-lie-permission-logical-trap-jailbreak.yaml +39 -86
  242. package/rules/agent-manipulation/ATR-2026-00380-fake-citation-biased-information-mandate.yaml +43 -91
  243. package/rules/agent-manipulation/ATR-2026-00381-dan-story-narrative-continuation-prefix.yaml +40 -86
  244. package/rules/agent-manipulation/ATR-2026-00383-cynical-sarcasm-ai-persona-bypass.yaml +39 -88
  245. package/rules/agent-manipulation/ATR-2026-00384-protect-me-from-indirect-harm-tutorial.yaml +37 -85
  246. package/rules/agent-manipulation/ATR-2026-00385-gigachad-dominant-aggressive-persona.yaml +39 -89
  247. package/rules/agent-manipulation/ATR-2026-00386-daddy-sycophancy-manipulation-mandate.yaml +41 -88
  248. package/rules/agent-manipulation/ATR-2026-00387-nsfw-character-sheet-generation-unlock.yaml +45 -95
  249. package/rules/agent-manipulation/ATR-2026-00388-opposite-reply-omniscient-game.yaml +44 -97
  250. package/rules/agent-manipulation/ATR-2026-00389-terminal-custom-ruleset-injection.yaml +44 -99
  251. package/rules/agent-manipulation/ATR-2026-00391-persona-conditional-harm-unlock.yaml +41 -88
  252. package/rules/agent-manipulation/ATR-2026-00392-authority-persona-violence-study-extraction.yaml +43 -95
  253. package/rules/agent-manipulation/ATR-2026-00402-grandma-roleplay-harmful-substance-synthesis.yaml +50 -97
  254. package/rules/agent-manipulation/ATR-2026-00404-goodside-threat-json-death-coercion.yaml +52 -96
  255. package/rules/agent-manipulation/ATR-2026-00406-doctor-xml-policy-puppetry-interaction-config.yaml +54 -102
  256. package/rules/agent-manipulation/ATR-2026-00416-litellm-mcp-unauthenticated-server-registration.yaml +49 -117
  257. package/rules/agent-manipulation/ATR-2026-00417-librechat-mcp-stdio-injection.yaml +46 -109
  258. package/rules/agent-manipulation/ATR-2026-00418-weknora-mcp-config-rce.yaml +59 -147
  259. package/rules/agent-manipulation/ATR-2026-00430-nl-trust-escalation-impersonation.yaml +24 -65
  260. package/rules/agent-manipulation/ATR-2026-00432-superagi-output-handler-eval-rce.yaml +46 -121
  261. package/rules/agent-manipulation/ATR-2026-00440-semantic-kernel-vector-store-eval-rce.yaml +48 -122
  262. package/rules/agent-manipulation/ATR-2026-00552-goal-drift-after-pressure-injection.yaml +58 -195
  263. package/rules/agent-manipulation/ATR-2026-02105-prototype-pollution-constructor-prototype-bypass.yaml +28 -83
  264. package/rules/agent-manipulation/ATR-2026-02231-second-person-death-threat-coercion.yaml +27 -69
  265. package/rules/context-exfiltration/ATR-2026-00020-system-prompt-leak.yaml +76 -133
  266. package/rules/context-exfiltration/ATR-2026-00021-api-key-exposure.yaml +72 -135
  267. package/rules/context-exfiltration/ATR-2026-00075-agent-memory-manipulation.yaml +32 -97
  268. package/rules/context-exfiltration/ATR-2026-00102-disguised-analytics-exfiltration.yaml +25 -100
  269. package/rules/context-exfiltration/ATR-2026-00113-credential-theft.yaml +22 -83
  270. package/rules/context-exfiltration/ATR-2026-00114-oauth-token-abuse.yaml +21 -87
  271. package/rules/context-exfiltration/ATR-2026-00115-env-var-harvesting.yaml +22 -102
  272. package/rules/context-exfiltration/ATR-2026-00136-tool-response-data-piggyback.yaml +29 -105
  273. package/rules/context-exfiltration/ATR-2026-00141-example-format-key-leak.yaml +19 -73
  274. package/rules/context-exfiltration/ATR-2026-00142-piggyback-transition-words.yaml +21 -94
  275. package/rules/context-exfiltration/ATR-2026-00145-obfuscated-key-disclosure.yaml +19 -78
  276. package/rules/context-exfiltration/ATR-2026-00146-env-var-existence-probe.yaml +19 -98
  277. package/rules/context-exfiltration/ATR-2026-00150-credential-in-tool-response.yaml +20 -84
  278. package/rules/context-exfiltration/ATR-2026-00152-obfuscated-credential-leak.yaml +23 -93
  279. package/rules/context-exfiltration/ATR-2026-00162-skill-credential-exfil-combo.yaml +41 -59
  280. package/rules/context-exfiltration/ATR-2026-00201-credential-pipe-exfiltration.yaml +35 -66
  281. package/rules/context-exfiltration/ATR-2026-00212-mcp-atlassian-credential-leak.yaml +51 -117
  282. package/rules/context-exfiltration/ATR-2026-00261-markdown-image-exfiltration.yaml +51 -93
  283. package/rules/context-exfiltration/ATR-2026-00274-api-key-generation-request.yaml +44 -91
  284. package/rules/context-exfiltration/ATR-2026-00275-system-prompt-training-data-extraction.yaml +44 -91
  285. package/rules/context-exfiltration/ATR-2026-00290-divergence-repeat-word-training-extraction.yaml +46 -95
  286. package/rules/context-exfiltration/ATR-2026-00291-biometric-surveillance-personal-data-request.yaml +48 -98
  287. package/rules/context-exfiltration/ATR-2026-00293-educational-records-personal-data-request.yaml +44 -93
  288. package/rules/context-exfiltration/ATR-2026-00294-financial-pii-personal-data-request.yaml +44 -97
  289. package/rules/context-exfiltration/ATR-2026-00295-medical-pii-personal-data-request.yaml +46 -101
  290. package/rules/context-exfiltration/ATR-2026-00405-markdown-image-url-exfiltration-xss.yaml +51 -108
  291. package/rules/context-exfiltration/ATR-2026-00411-apikey-generation-completion-request.yaml +48 -111
  292. package/rules/context-exfiltration/ATR-2026-00421-nl-covert-conversation-exfiltration.yaml +22 -67
  293. package/rules/context-exfiltration/ATR-2026-00422-nl-credential-disclosure.yaml +20 -65
  294. package/rules/context-exfiltration/ATR-2026-00423-nl-sensitive-file-disclosure.yaml +20 -68
  295. package/rules/context-exfiltration/ATR-2026-00424-nl-system-prompt-leak.yaml +21 -59
  296. package/rules/context-exfiltration/ATR-2026-00426-nl-output-injection-credential-leak.yaml +23 -61
  297. package/rules/context-exfiltration/ATR-2026-00431-chatbox-history-exfiltration-prompt-injection.yaml +48 -123
  298. package/rules/context-exfiltration/ATR-2026-00449-spring-ai-chatmemory-cross-user-leak.yaml +54 -139
  299. package/rules/context-exfiltration/ATR-2026-00471-garak-sysprompt-extraction-mixedunassigned.yaml +36 -85
  300. package/rules/context-exfiltration/ATR-2026-00501-data-exfiltration-via-markdown-image-and-link-url-injection.yaml +45 -115
  301. package/rules/context-exfiltration/ATR-2026-00504-tool-and-function-capability-enumeration.yaml +43 -110
  302. package/rules/context-exfiltration/ATR-2026-00505-system-prompt-extraction-instruction-dump-request.yaml +47 -123
  303. package/rules/context-exfiltration/ATR-2026-00514-system-prompt-extraction.yaml +52 -145
  304. package/rules/context-exfiltration/ATR-2026-00516-output-xss-via-llm.yaml +49 -127
  305. package/rules/context-exfiltration/ATR-2026-00524-claude-code-anthropic-base-url-credential-exfil.yaml +68 -193
  306. package/rules/context-exfiltration/ATR-2026-00548-cross-agent-session-context-leak.yaml +50 -152
  307. package/rules/context-exfiltration/ATR-2026-00566-librechat-is-a-chatgpt-clone-with-additi.yaml +33 -67
  308. package/rules/context-exfiltration/ATR-2026-00569-agent-mcp-path-traversal-arbitrary-file-access.yaml +39 -78
  309. package/rules/context-exfiltration/ATR-2026-00571-xss-in-agent-mcp-rendered-output.yaml +34 -58
  310. package/rules/context-exfiltration/ATR-2026-00574-semantic-paraphrased-context-extraction.yaml +31 -73
  311. package/rules/context-exfiltration/ATR-2026-00578-zen-mcp-path-traversal-blacklist-bypass.yaml +55 -135
  312. package/rules/context-exfiltration/ATR-2026-00580-mcp-session-id-token-in-url-query.yaml +48 -158
  313. package/rules/context-exfiltration/ATR-2026-00583-mcp-env-secret-file-read-without-consent.yaml +53 -154
  314. package/rules/context-exfiltration/ATR-2026-00702-ipi-credential-exfil-via-agent-action.yaml +41 -93
  315. package/rules/context-exfiltration/ATR-2026-00703-ipi-financial-data-exfil-indirect.yaml +33 -76
  316. package/rules/context-exfiltration/ATR-2026-00704-ipi-medical-genetic-data-exfil.yaml +33 -78
  317. package/rules/context-exfiltration/ATR-2026-00705-ipi-location-address-browsing-exfil.yaml +31 -75
  318. package/rules/context-exfiltration/ATR-2026-00706-ipi-physical-biometric-exfil.yaml +40 -85
  319. package/rules/context-exfiltration/ATR-2026-00707-ipi-file-exfil-with-destroy-or-tamper.yaml +35 -81
  320. package/rules/context-exfiltration/ATR-2026-00850-indirect-pi-credential-exfil-email.yaml +47 -91
  321. package/rules/context-exfiltration/ATR-2026-00851-indirect-pi-financial-payment-exfil.yaml +45 -83
  322. package/rules/context-exfiltration/ATR-2026-00852-indirect-pi-medical-record-exfil.yaml +51 -89
  323. package/rules/context-exfiltration/ATR-2026-00853-indirect-pi-genetic-data-exfil.yaml +47 -84
  324. package/rules/context-exfiltration/ATR-2026-00854-indirect-pi-location-data-exfil.yaml +41 -83
  325. package/rules/context-exfiltration/ATR-2026-00855-indirect-pi-browsing-history-exfil.yaml +40 -78
  326. package/rules/context-exfiltration/ATR-2026-00856-indirect-pi-address-pii-exfil.yaml +42 -80
  327. package/rules/context-exfiltration/ATR-2026-00857-indirect-pi-cloud-file-exfil.yaml +45 -87
  328. package/rules/context-exfiltration/ATR-2026-00858-indirect-pi-exfil-and-destroy.yaml +48 -89
  329. package/rules/context-exfiltration/ATR-2026-00859-rag-injected-pii-exfil.yaml +43 -86
  330. package/rules/context-exfiltration/ATR-2026-00860-indirect-pi-financial-transfer-hijack.yaml +41 -84
  331. package/rules/context-exfiltration/ATR-2026-00861-indirect-pi-crypto-transfer-hijack.yaml +37 -79
  332. package/rules/context-exfiltration/ATR-2026-00862-indirect-pi-mfa-code-exfil.yaml +44 -87
  333. package/rules/context-exfiltration/ATR-2026-00863-shell-injection-data-exfil.yaml +45 -87
  334. package/rules/context-exfiltration/ATR-2026-01450-svg-onload-xss-injection.yaml +35 -118
  335. package/rules/context-exfiltration/ATR-2026-01451-img-onerror-xss-injection.yaml +35 -93
  336. package/rules/context-exfiltration/ATR-2026-01452-obfuscated-javascript-xss.yaml +33 -85
  337. package/rules/context-exfiltration/ATR-2026-01453-markdown-image-base64-exfil-carrier.yaml +41 -100
  338. package/rules/context-exfiltration/ATR-2026-01454-direct-markdown-exfil-payload.yaml +36 -88
  339. package/rules/context-exfiltration/ATR-2026-01455-new-instructions-injection-marker.yaml +34 -90
  340. package/rules/context-exfiltration/ATR-2026-01456-debug-cli-mode-sysprompt-extraction.yaml +35 -99
  341. package/rules/context-exfiltration/ATR-2026-01457-sysprompt-completion-clone-attack.yaml +41 -123
  342. package/rules/context-exfiltration/ATR-2026-01458-compare-bots-sysprompt-fishing.yaml +30 -87
  343. package/rules/context-exfiltration/ATR-2026-01459-variable-clone-sysprompt-technique.yaml +31 -79
  344. package/rules/context-exfiltration/ATR-2026-01460-json-format-sysprompt-extraction.yaml +31 -79
  345. package/rules/context-exfiltration/ATR-2026-01461-foreign-language-sysprompt-request.yaml +32 -106
  346. package/rules/context-exfiltration/ATR-2026-01462-sysprompt-override-pseudo-admin.yaml +39 -102
  347. package/rules/context-exfiltration/ATR-2026-01463-imend-imsystem-prompt-injection-format.yaml +29 -95
  348. package/rules/context-exfiltration/ATR-2026-01464-indirect-pi-sysprompt-action-hijack.yaml +31 -82
  349. package/rules/context-exfiltration/ATR-2026-01605-ssrf-aws-metadata-endpoint.yaml +26 -58
  350. package/rules/context-exfiltration/ATR-2026-01606-ssrf-internal-network-scan.yaml +26 -50
  351. package/rules/context-exfiltration/ATR-2026-01607-ssrf-localhost-service-probe.yaml +21 -45
  352. package/rules/context-exfiltration/ATR-2026-01608-ssrf-file-scheme-local-read.yaml +23 -47
  353. package/rules/context-exfiltration/ATR-2026-01753-ransom-email-exfil-delete-extortion.yaml +37 -80
  354. package/rules/context-exfiltration/ATR-2026-01754-ransom-file-cloud-exfil-delete-extortion.yaml +33 -73
  355. package/rules/context-exfiltration/ATR-2026-01770-semantic-pii-credential-extraction.yaml +76 -210
  356. package/rules/context-exfiltration/ATR-2026-01772-semantic-internal-state-recon.yaml +54 -154
  357. package/rules/context-exfiltration/ATR-2026-01807-asb-bulk-data-exfil-external.yaml +34 -91
  358. package/rules/context-exfiltration/ATR-2026-01862-llmail-email-tool-exfil-confirmation.yaml +35 -92
  359. package/rules/context-exfiltration/ATR-2026-01863-llmail-post-summary-exfil-directive.yaml +29 -84
  360. package/rules/context-exfiltration/ATR-2026-01864-llmail-obfuscated-exfil-address.yaml +29 -83
  361. package/rules/context-exfiltration/ATR-2026-01890-file-exfiltration.yaml +52 -149
  362. package/rules/context-exfiltration/ATR-2026-01891-surveillance-exfiltration.yaml +44 -87
  363. package/rules/context-exfiltration/ATR-2026-01892-env-exfiltration.yaml +36 -121
  364. package/rules/context-exfiltration/ATR-2026-01893-system-recon-exfiltration.yaml +44 -143
  365. package/rules/context-exfiltration/ATR-2026-01894-cookie-theft.yaml +40 -146
  366. package/rules/context-exfiltration/ATR-2026-01895-contact-exfiltration.yaml +36 -82
  367. package/rules/context-exfiltration/ATR-2026-01924-system-instruction-extraction-reformat.yaml +37 -112
  368. package/rules/context-exfiltration/ATR-2026-01929-mcp-unauthenticated-transport-token-fallback.yaml +53 -119
  369. package/rules/context-exfiltration/ATR-2026-01946-cloud-metadata-ssrf-ip-encoding-bypass.yaml +45 -102
  370. package/rules/context-exfiltration/ATR-2026-01948-netlicensing-mcp-product-number-path-traversal-token-leak.yaml +38 -74
  371. package/rules/context-exfiltration/ATR-2026-01957-m365-copilot-searchleak-open-redirect-exfil.yaml +57 -64
  372. package/rules/context-exfiltration/ATR-2026-01961-meta-ads-mcp-unauth-token-leak.yaml +39 -78
  373. package/rules/context-exfiltration/ATR-2026-01964-langchain-gmailtoolkit-indirect-prompt-injection-email-exfil.yaml +59 -69
  374. package/rules/context-exfiltration/ATR-2026-01984-mcp-server-kubernetes-kubectl-generic-token-exfil.yaml +50 -114
  375. package/rules/context-exfiltration/ATR-2026-01988-t1005-agent-local-data-staging-exfil.yaml +29 -67
  376. package/rules/context-exfiltration/ATR-2026-02017-secret-key-exfiltration-request.yaml +31 -74
  377. package/rules/context-exfiltration/ATR-2026-02026-oblique-sysprompt-extraction-transform.yaml +30 -83
  378. package/rules/context-exfiltration/ATR-2026-02104-media-directive-tool-result-file-exfil.yaml +30 -90
  379. package/rules/context-exfiltration/ATR-2026-02107-ssrf-internal-hostname-domain-allowlist-bypass.yaml +30 -92
  380. package/rules/context-exfiltration/ATR-2026-02121-mixed-encoding-lfi-file-scheme-tool-argument.yaml +39 -98
  381. package/rules/context-exfiltration/ATR-2026-02122-single-level-traversal-sensitive-config-file.yaml +32 -90
  382. package/rules/context-exfiltration/ATR-2026-02140-ssrf-ipv6-hex-encoded-cloud-metadata-bypass.yaml +36 -91
  383. package/rules/context-exfiltration/ATR-2026-02190-dns-exfiltration-ping-dig-encoded-subdomain.yaml +36 -95
  384. package/rules/context-exfiltration/ATR-2026-02250-attachment-upload-tool-arbitrary-file-read.yaml +38 -93
  385. package/rules/context-exfiltration/ATR-2026-02262-env-resolution-credential-exfil.yaml +39 -118
  386. package/rules/context-exfiltration/ATR-2026-02304-preapproved-domain-encoded-path-exfil.yaml +36 -99
  387. package/rules/context-exfiltration/ATR-2026-02351-wildcard-dns-ssrf-hostname-ip-encoding-bypass.yaml +33 -125
  388. package/rules/context-exfiltration/ATR-2026-02373-langsmith-prompt-manifest-baseurl-exfil.yaml +42 -108
  389. package/rules/context-exfiltration/ATR-2026-02406-mcp-sequential-id-enumeration.yaml +54 -219
  390. package/rules/context-exfiltration/ATR-2026-02570-wallet-secret-material-in-agent-tool-payload.yaml +98 -0
  391. package/rules/context-exfiltration/ATR-2026-02602-diagram-theme-css-injection.yaml +146 -0
  392. package/rules/context-exfiltration/ATR-2026-02608-graph-query-remote-egress.yaml +109 -0
  393. package/rules/context-exfiltration/ATR-2026-02621-prompt-mention-autofetch-internal-target.yaml +102 -0
  394. package/rules/context-exfiltration/ATR-2026-02623-obfuscated-uri-scheme-sanitizer-bypass.yaml +109 -0
  395. package/rules/context-exfiltration/ATR-2026-02649-vendor-fqdn-label-prefix-confusion.yaml +109 -0
  396. package/rules/context-exfiltration/ATR-2026-02684-modern-credential-store-file-argument.yaml +104 -0
  397. package/rules/context-exfiltration/ATR-2026-02703-sql-server-side-file-and-program-primitive.yaml +86 -0
  398. package/rules/context-exfiltration/ATR-2026-02847-policy-justified-exfil-to-email.yaml +88 -0
  399. package/rules/context-exfiltration/ATR-2026-02850-fake-documentation-forward-request.yaml +80 -0
  400. package/rules/context-exfiltration/ATR-2026-02855-cross-email-exfil-relay.yaml +79 -0
  401. package/rules/context-exfiltration/ATR-2026-02861-exfil-send-email-with-body-directive.yaml +83 -0
  402. package/rules/context-exfiltration/ATR-2026-02866-idna-label-separator-in-fetch-url-host.yaml +104 -0
  403. package/rules/data-poisoning/ATR-2026-00070-data-poisoning.yaml +37 -123
  404. package/rules/data-poisoning/ATR-2026-00450-spring-ai-prompt-memory-poisoning.yaml +55 -139
  405. package/rules/data-poisoning/ATR-2026-00570-sql-injection-in-agent-tool-query.yaml +36 -63
  406. package/rules/data-poisoning/ATR-2026-01155-memory-plant-direct-command.yaml +22 -54
  407. package/rules/data-poisoning/ATR-2026-01774-semantic-rag-memory-poisoning.yaml +74 -191
  408. package/rules/data-poisoning/ATR-2026-02143-graph-query-injection-node-labels-group-ids.yaml +31 -82
  409. package/rules/data-poisoning/ATR-2026-02144-stored-data-administrative-request-role-elevation.yaml +32 -84
  410. package/rules/data-poisoning/ATR-2026-02303-kql-kusto-pipe-injection-metadata-tool.yaml +34 -97
  411. package/rules/data-poisoning/ATR-2026-02408-dataset-loader-code-execution.yaml +60 -263
  412. package/rules/excessive-autonomy/ATR-2026-00050-runaway-agent-loop.yaml +32 -105
  413. package/rules/excessive-autonomy/ATR-2026-00051-resource-exhaustion.yaml +31 -105
  414. package/rules/excessive-autonomy/ATR-2026-00052-cascading-failure.yaml +32 -129
  415. package/rules/excessive-autonomy/ATR-2026-00098-unauthorized-financial-action.yaml +26 -106
  416. package/rules/excessive-autonomy/ATR-2026-00099-high-risk-tool-gate.yaml +26 -130
  417. package/rules/excessive-autonomy/ATR-2026-00428-nl-unauthorized-shell-execution.yaml +22 -60
  418. package/rules/excessive-autonomy/ATR-2026-00491-garak-agent-breaker-markdown-just-raw-json.yaml +41 -99
  419. package/rules/excessive-autonomy/ATR-2026-00500-ssrf-via-agent-url-fetch-instruction.yaml +41 -110
  420. package/rules/excessive-autonomy/ATR-2026-00553-runaway-tool-loop-behavioral.yaml +50 -141
  421. package/rules/excessive-autonomy/ATR-2026-00708-ipi-financial-transfer-unauthorized.yaml +33 -83
  422. package/rules/excessive-autonomy/ATR-2026-00709-ipi-disable-auth-mfa.yaml +29 -73
  423. package/rules/excessive-autonomy/ATR-2026-00710-ipi-physical-access-grant.yaml +31 -75
  424. package/rules/excessive-autonomy/ATR-2026-00711-ipi-system-sabotage-destructive-command.yaml +38 -88
  425. package/rules/excessive-autonomy/ATR-2026-00712-ipi-malicious-package-install.yaml +33 -78
  426. package/rules/excessive-autonomy/ATR-2026-00713-ipi-rce-network-shell-command.yaml +38 -91
  427. package/rules/excessive-autonomy/ATR-2026-00718-tool-misuse-financial-autonomous.yaml +27 -71
  428. package/rules/excessive-autonomy/ATR-2026-00719-tool-misuse-destructive-bulk-action.yaml +29 -75
  429. package/rules/excessive-autonomy/ATR-2026-00722-ipi-account-manipulation-emergency-pretext.yaml +35 -84
  430. package/rules/excessive-autonomy/ATR-2026-01751-indirect-pi-task-abort-stop-instruction.yaml +32 -75
  431. package/rules/excessive-autonomy/ATR-2026-01752-indirect-pi-captcha-redirect-dos.yaml +30 -74
  432. package/rules/excessive-autonomy/ATR-2026-01773-semantic-excessive-agency-action.yaml +46 -129
  433. package/rules/excessive-autonomy/ATR-2026-01801-asb-autonomous-vehicle-sabotage.yaml +34 -106
  434. package/rules/excessive-autonomy/ATR-2026-01804-asb-covert-unlogged-action.yaml +39 -105
  435. package/rules/excessive-autonomy/ATR-2026-01805-asb-financial-fraud-execution.yaml +39 -112
  436. package/rules/excessive-autonomy/ATR-2026-01806-asb-clinical-patient-harm.yaml +37 -108
  437. package/rules/excessive-autonomy/ATR-2026-01809-semantic-insider-manipulation-process-corruption.yaml +40 -106
  438. package/rules/excessive-autonomy/ATR-2026-01837-ddos-attack-orchestration.yaml +35 -49
  439. package/rules/excessive-autonomy/ATR-2026-01838-unauthorized-cryptominer-deployment.yaml +35 -49
  440. package/rules/excessive-autonomy/ATR-2026-01849-harassment-bot-deployment.yaml +35 -49
  441. package/rules/excessive-autonomy/ATR-2026-01989-t1046-agent-internal-network-sweep.yaml +33 -71
  442. package/rules/excessive-autonomy/ATR-2026-01993-t1562-agent-impair-defenses.yaml +37 -75
  443. package/rules/excessive-autonomy/ATR-2026-01994-t1573-agent-encrypted-c2-channel.yaml +37 -75
  444. package/rules/excessive-autonomy/ATR-2026-02106-redos-regex-payload-tool-argument.yaml +28 -84
  445. package/rules/excessive-autonomy/ATR-2026-02400-agent-approval-gate-disabled-runtime.yaml +60 -293
  446. package/rules/excessive-autonomy/ATR-2026-02401-rogue-agent-mass-connector-grant.yaml +55 -197
  447. package/rules/excessive-autonomy/ATR-2026-02409-mcp-async-task-abuse.yaml +59 -319
  448. package/rules/excessive-autonomy/ATR-2026-02525-shell-command-word-reassembly-classifier-evasion.yaml +151 -0
  449. package/rules/excessive-autonomy/ATR-2026-02641-client-supplied-approver-identity.yaml +111 -0
  450. package/rules/excessive-autonomy/ATR-2026-02667-preapproved-tool-list-in-job-payload.yaml +90 -0
  451. package/rules/model-abuse/ATR-2026-00279-harmful-completion-continuation.yaml +45 -92
  452. package/rules/model-abuse/ATR-2026-00281-eicar-gtube-malware-signature-request.yaml +50 -93
  453. package/rules/model-abuse/ATR-2026-00284-glitch-token-destabilization.yaml +44 -91
  454. package/rules/model-abuse/ATR-2026-00289-lmrc-harmful-content-elicitation.yaml +46 -95
  455. package/rules/model-abuse/ATR-2026-00292-self-harm-eating-disorder-facilitation.yaml +47 -96
  456. package/rules/model-abuse/ATR-2026-00298-malicious-use-illegal-activity-request.yaml +54 -112
  457. package/rules/model-abuse/ATR-2026-00299-harmbench-detailed-harmful-instruction.yaml +53 -107
  458. package/rules/model-abuse/ATR-2026-00413-malwaregen-code-generation-request.yaml +53 -121
  459. package/rules/model-abuse/ATR-2026-00502-training-data-extraction-via-divergent-repetition-attack.yaml +41 -112
  460. package/rules/model-abuse/ATR-2026-00517-model-extraction-distillation.yaml +53 -165
  461. package/rules/model-abuse/ATR-2026-01750-dos-repeat-word-n-times-output-amplification.yaml +33 -95
  462. package/rules/model-abuse/ATR-2026-01760-dos-forced-infinite-output-token-flood.yaml +29 -75
  463. package/rules/model-abuse/ATR-2026-01830-stolen-credential-account-drain.yaml +36 -53
  464. package/rules/model-abuse/ATR-2026-01831-money-laundering-crypto-layering.yaml +36 -53
  465. package/rules/model-abuse/ATR-2026-01833-darknet-controlled-substance-procurement.yaml +40 -60
  466. package/rules/model-abuse/ATR-2026-01834-fraudulent-identity-document-procurement.yaml +35 -49
  467. package/rules/model-abuse/ATR-2026-01835-human-trafficking-facilitation.yaml +35 -49
  468. package/rules/model-abuse/ATR-2026-01836-trojanized-software-distribution.yaml +37 -51
  469. package/rules/model-abuse/ATR-2026-01840-extremist-propaganda-distribution.yaml +35 -52
  470. package/rules/model-abuse/ATR-2026-01841-deepfake-disinformation.yaml +39 -59
  471. package/rules/model-abuse/ATR-2026-01842-plagiarism-detector-evasion.yaml +33 -50
  472. package/rules/model-abuse/ATR-2026-01843-drug-dealing-detection-evasion-spelling.yaml +35 -49
  473. package/rules/model-abuse/ATR-2026-01844-illegitimate-prescription-fulfillment.yaml +35 -49
  474. package/rules/model-abuse/ATR-2026-01845-banned-ingredient-relabel-fraud.yaml +37 -51
  475. package/rules/model-abuse/ATR-2026-01846-tax-evasion-offshore-shell-planning.yaml +35 -49
  476. package/rules/model-abuse/ATR-2026-01847-immigration-work-fraud.yaml +35 -49
  477. package/rules/model-abuse/ATR-2026-01848-illicit-drug-marketplace-build.yaml +35 -49
  478. package/rules/model-abuse/ATR-2026-01850-targeted-doxxing-threat-campaign.yaml +39 -59
  479. package/rules/model-abuse/ATR-2026-01851-bestiality-content-distribution.yaml +34 -45
  480. package/rules/model-abuse/ATR-2026-01852-romance-scam-impersonation.yaml +35 -49
  481. package/rules/model-abuse/ATR-2026-01853-nonconsensual-leaked-media-distribution.yaml +36 -47
  482. package/rules/model-abuse/ATR-2026-01854-falsified-research-abstract-disinformation.yaml +34 -45
  483. package/rules/model-abuse/ATR-2026-01855-content-misappropriation-republish.yaml +37 -51
  484. package/rules/model-abuse/ATR-2026-01856-targeted-harmful-content-generation.yaml +42 -59
  485. package/rules/model-abuse/ATR-2026-01896-ransomware.yaml +35 -84
  486. package/rules/model-abuse/ATR-2026-01897-host-sabotage.yaml +55 -129
  487. package/rules/model-abuse/ATR-2026-01898-network-dos.yaml +47 -93
  488. package/rules/model-abuse/ATR-2026-02211-named-substance-synthesis-request-non-stepword.yaml +34 -110
  489. package/rules/model-abuse/ATR-2026-02411-ai-provenance-metadata-stripping.yaml +63 -226
  490. package/rules/model-abuse/ATR-2026-02412-generative-watermark-removal-tooling.yaml +56 -187
  491. package/rules/model-abuse/ATR-2026-02413-ai-text-detection-evasion-humanizer.yaml +62 -206
  492. package/rules/model-security/ATR-2026-00072-model-behavior-extraction.yaml +36 -110
  493. package/rules/model-security/ATR-2026-00073-malicious-finetuning-data.yaml +28 -116
  494. package/rules/model-security/ATR-2026-00433-modelcache-torch-load-deserialization-rce.yaml +50 -128
  495. package/rules/model-security/ATR-2026-02662-pickle-indirect-name-resolution-gadget.yaml +97 -0
  496. package/rules/privilege-escalation/ATR-2026-00040-privilege-escalation.yaml +21 -83
  497. package/rules/privilege-escalation/ATR-2026-00041-scope-creep.yaml +29 -107
  498. package/rules/privilege-escalation/ATR-2026-00107-delayed-execution-bypass.yaml +17 -90
  499. package/rules/privilege-escalation/ATR-2026-00110-eval-injection.yaml +16 -84
  500. package/rules/privilege-escalation/ATR-2026-00111-shell-escape.yaml +23 -117
  501. package/rules/privilege-escalation/ATR-2026-00112-dynamic-import-exploitation.yaml +15 -81
  502. package/rules/privilege-escalation/ATR-2026-00143-casual-privilege-escalation.yaml +20 -86
  503. package/rules/privilege-escalation/ATR-2026-00144-rationalized-safety-bypass.yaml +21 -83
  504. package/rules/privilege-escalation/ATR-2026-00204-stealth-execution-persistence.yaml +41 -90
  505. package/rules/privilege-escalation/ATR-2026-00436-enclave-vm-sandbox-escape-rce.yaml +53 -131
  506. package/rules/privilege-escalation/ATR-2026-00441-semantic-kernel-sessions-python-plugin-startup-persistence.yaml +50 -122
  507. package/rules/privilege-escalation/ATR-2026-00451-litellm-admin-sqli-cisa-kev.yaml +53 -141
  508. package/rules/privilege-escalation/ATR-2026-00528-praisonai-auth-disabled-default.yaml +40 -151
  509. package/rules/privilege-escalation/ATR-2026-00539-crewai-codeinterpreter-sandbox-escape-rce.yaml +74 -232
  510. package/rules/privilege-escalation/ATR-2026-00546-crewai-json-loader-local-file-read.yaml +46 -117
  511. package/rules/privilege-escalation/ATR-2026-00547-crewai-rag-url-ssrf-bypass.yaml +47 -121
  512. package/rules/privilege-escalation/ATR-2026-00549-destructive-tool-without-human-approval.yaml +52 -159
  513. package/rules/privilege-escalation/ATR-2026-00551-cross-conversation-memory-write.yaml +60 -171
  514. package/rules/privilege-escalation/ATR-2026-01600-sql-injection-tautology-rbac-bypass.yaml +23 -50
  515. package/rules/privilege-escalation/ATR-2026-01601-sql-injection-destructive-ddl.yaml +23 -54
  516. package/rules/privilege-escalation/ATR-2026-01602-sql-injection-union-select-exfil.yaml +20 -57
  517. package/rules/privilege-escalation/ATR-2026-01603-sql-injection-stacked-dml-abuse.yaml +23 -47
  518. package/rules/privilege-escalation/ATR-2026-01604-sql-injection-schema-enumeration.yaml +21 -45
  519. package/rules/privilege-escalation/ATR-2026-01609-shell-injection-exfil-webhook.yaml +29 -53
  520. package/rules/privilege-escalation/ATR-2026-01610-shell-evasion-subshell-injection.yaml +30 -53
  521. package/rules/privilege-escalation/ATR-2026-01611-shell-evasion-eval-exec-injection.yaml +32 -56
  522. package/rules/privilege-escalation/ATR-2026-01612-debug-mode-privilege-escalation.yaml +29 -53
  523. package/rules/privilege-escalation/ATR-2026-01613-rbac-bypass-social-engineering.yaml +29 -66
  524. package/rules/privilege-escalation/ATR-2026-01614-bola-cross-user-data-access.yaml +26 -59
  525. package/rules/privilege-escalation/ATR-2026-01615-sandbox-escape-command-injection.yaml +28 -52
  526. package/rules/privilege-escalation/ATR-2026-01616-path-traversal-agent-file-access.yaml +21 -45
  527. package/rules/privilege-escalation/ATR-2026-01802-asb-backdoor-surveillance-implant.yaml +33 -94
  528. package/rules/privilege-escalation/ATR-2026-01803-asb-covert-server-intrusion.yaml +37 -108
  529. package/rules/privilege-escalation/ATR-2026-01808-asb-synthetic-pan-payment-probe.yaml +31 -86
  530. package/rules/privilege-escalation/ATR-2026-01899-remote-access-backdoor.yaml +43 -112
  531. package/rules/privilege-escalation/ATR-2026-01933-litellm-user-role-privilege-escalation-cve-2026-47102.yaml +45 -103
  532. package/rules/privilege-escalation/ATR-2026-01934-litellm-allowed-routes-authz-bypass-cve-2026-47101.yaml +44 -103
  533. package/rules/privilege-escalation/ATR-2026-01949-praisonai-mcpserver-unauth-tools-call.yaml +39 -80
  534. package/rules/privilege-escalation/ATR-2026-01974-anything-llm-data-import-access-control.yaml +57 -62
  535. package/rules/privilege-escalation/ATR-2026-01981-network-ai-approval-inbox-unauth-cors-bypass.yaml +47 -97
  536. package/rules/privilege-escalation/ATR-2026-01986-windows-mcp-unauth-http-powershell-cors.yaml +51 -112
  537. package/rules/privilege-escalation/ATR-2026-01992-t1556-agent-auth-process-tamper.yaml +37 -75
  538. package/rules/privilege-escalation/ATR-2026-02040-file-edit-tool-persistence-write.yaml +34 -87
  539. package/rules/privilege-escalation/ATR-2026-02100-cypher-destructive-admin-query-injection.yaml +36 -92
  540. package/rules/privilege-escalation/ATR-2026-02101-dynamic-dunder-attribute-sandbox-escape.yaml +33 -91
  541. package/rules/privilege-escalation/ATR-2026-02123-bare-query-path-confusion-auth-bypass.yaml +36 -98
  542. package/rules/privilege-escalation/ATR-2026-02142-download-tool-absolute-path-sandbox-escape.yaml +36 -107
  543. package/rules/privilege-escalation/ATR-2026-02146-export-tool-dest-dir-credential-directory-redirect.yaml +31 -83
  544. package/rules/privilege-escalation/ATR-2026-02192-self-privesc-wildcard-trust-config-write.yaml +41 -103
  545. package/rules/privilege-escalation/ATR-2026-02195-dangerous-env-var-injection-config-tool.yaml +36 -99
  546. package/rules/privilege-escalation/ATR-2026-02251-identifier-field-path-traversal-storage-write.yaml +32 -83
  547. package/rules/privilege-escalation/ATR-2026-02300-mcp-stdio-config-dangerous-env-var.yaml +42 -109
  548. package/rules/privilege-escalation/ATR-2026-02301-symlink-outside-workspace-sensitive-target.yaml +36 -101
  549. package/rules/privilege-escalation/ATR-2026-02302-git-worktree-dotgit-sandbox-escape.yaml +33 -86
  550. package/rules/privilege-escalation/ATR-2026-02353-runtime-identifier-field-path-traversal-log-read.yaml +34 -115
  551. package/rules/privilege-escalation/ATR-2026-02370-ssh-scp-hostalias-option-injection.yaml +42 -100
  552. package/rules/privilege-escalation/ATR-2026-02371-chromium-launch-flag-argument-injection.yaml +43 -103
  553. package/rules/privilege-escalation/ATR-2026-02402-mcp-policy-engine-fail-open.yaml +56 -214
  554. package/rules/privilege-escalation/ATR-2026-02404-model-output-to-shell-unsanitized.yaml +50 -195
  555. package/rules/privilege-escalation/ATR-2026-02407-agent-workspace-boundary-escape.yaml +55 -236
  556. package/rules/privilege-escalation/ATR-2026-02528-tool-parameter-option-flag-smuggling.yaml +113 -0
  557. package/rules/privilege-escalation/ATR-2026-02530-git-config-execution-key-set-by-agent.yaml +131 -0
  558. package/rules/privilege-escalation/ATR-2026-02531-kusto-query-injection-outbound-reach.yaml +110 -0
  559. package/rules/privilege-escalation/ATR-2026-02601-tool-argument-option-injection.yaml +116 -0
  560. package/rules/privilege-escalation/ATR-2026-02620-dynamic-import-data-uri-module.yaml +101 -0
  561. package/rules/privilege-escalation/ATR-2026-02626-agent-self-registers-mcp-server.yaml +107 -0
  562. package/rules/privilege-escalation/ATR-2026-02627-web-shell-written-to-served-path.yaml +119 -0
  563. package/rules/privilege-escalation/ATR-2026-02642-agent-config-tool-disables-own-guardrail.yaml +115 -0
  564. package/rules/privilege-escalation/ATR-2026-02644-image-magic-polyglot-upload.yaml +117 -0
  565. package/rules/privilege-escalation/ATR-2026-02648-readonly-graph-tool-write-procedure.yaml +107 -0
  566. package/rules/privilege-escalation/ATR-2026-02664-git-identifier-field-option-injection.yaml +100 -0
  567. package/rules/privilege-escalation/ATR-2026-02681-reflective-function-constructor-sandbox-escape.yaml +100 -0
  568. package/rules/privilege-escalation/ATR-2026-02683-tool-argument-option-injection-executor-flag.yaml +108 -0
  569. package/rules/privilege-escalation/ATR-2026-02700-percent-encoded-path-traversal-tool-argument.yaml +90 -0
  570. package/rules/privilege-escalation/ATR-2026-02705-python-builtins-leak-and-prefix-check-override.yaml +87 -0
  571. package/rules/privilege-escalation/ATR-2026-02708-loopback-spoofed-host-header-external-request.yaml +91 -0
  572. package/rules/privilege-escalation/ATR-2026-02867-identifier-typed-tool-argument-dot-dot-path-segment.yaml +106 -0
  573. package/rules/prompt-injection/ATR-2026-00001-direct-prompt-injection.yaml +133 -455
  574. package/rules/prompt-injection/ATR-2026-00002-indirect-prompt-injection.yaml +71 -185
  575. package/rules/prompt-injection/ATR-2026-00003-jailbreak-attempt.yaml +110 -328
  576. package/rules/prompt-injection/ATR-2026-00004-system-prompt-override.yaml +56 -225
  577. package/rules/prompt-injection/ATR-2026-00005-multi-turn-injection.yaml +59 -140
  578. package/rules/prompt-injection/ATR-2026-00080-encoding-evasion.yaml +23 -85
  579. package/rules/prompt-injection/ATR-2026-00081-semantic-multi-turn.yaml +27 -104
  580. package/rules/prompt-injection/ATR-2026-00082-fingerprint-evasion.yaml +27 -91
  581. package/rules/prompt-injection/ATR-2026-00083-indirect-tool-injection.yaml +27 -104
  582. package/rules/prompt-injection/ATR-2026-00084-structured-data-injection.yaml +38 -96
  583. package/rules/prompt-injection/ATR-2026-00085-audit-evasion.yaml +25 -90
  584. package/rules/prompt-injection/ATR-2026-00086-visual-spoofing.yaml +29 -153
  585. package/rules/prompt-injection/ATR-2026-00087-rule-probing.yaml +29 -102
  586. package/rules/prompt-injection/ATR-2026-00088-adaptive-countermeasure.yaml +32 -111
  587. package/rules/prompt-injection/ATR-2026-00089-polymorphic-skill.yaml +24 -146
  588. package/rules/prompt-injection/ATR-2026-00090-threat-intel-exfil.yaml +29 -109
  589. package/rules/prompt-injection/ATR-2026-00091-nested-payload.yaml +25 -123
  590. package/rules/prompt-injection/ATR-2026-00092-consensus-poisoning.yaml +28 -96
  591. package/rules/prompt-injection/ATR-2026-00093-gradual-escalation.yaml +28 -98
  592. package/rules/prompt-injection/ATR-2026-00094-audit-bypass.yaml +24 -91
  593. package/rules/prompt-injection/ATR-2026-00097-cjk-injection-patterns.yaml +56 -199
  594. package/rules/prompt-injection/ATR-2026-00104-persona-hijacking.yaml +22 -106
  595. package/rules/prompt-injection/ATR-2026-00130-indirect-authority-claim.yaml +26 -98
  596. package/rules/prompt-injection/ATR-2026-00131-fictional-academic-framing.yaml +26 -94
  597. package/rules/prompt-injection/ATR-2026-00133-paraphrase-injection.yaml +26 -97
  598. package/rules/prompt-injection/ATR-2026-00137-authority-claim-injection.yaml +22 -90
  599. package/rules/prompt-injection/ATR-2026-00138-fictional-framing-bypass.yaml +24 -111
  600. package/rules/prompt-injection/ATR-2026-00140-indirect-reference-reversal.yaml +21 -79
  601. package/rules/prompt-injection/ATR-2026-00148-language-switch-injection.yaml +30 -92
  602. package/rules/prompt-injection/ATR-2026-00153-tool-with-embedded-instruction-to-bypass.yaml +22 -98
  603. package/rules/prompt-injection/ATR-2026-00154-unauthorized-background-task-execution-v.yaml +24 -109
  604. package/rules/prompt-injection/ATR-2026-00155-hidden-llm-instructions-in-skill-descrip.yaml +24 -104
  605. package/rules/prompt-injection/ATR-2026-00156-ssh-remote-command-execution-with-creden.yaml +20 -81
  606. package/rules/prompt-injection/ATR-2026-00163-skill-hidden-override-instruction.yaml +44 -61
  607. package/rules/prompt-injection/ATR-2026-00202-encoding-evasion-homoglyph-synonym.yaml +37 -79
  608. package/rules/prompt-injection/ATR-2026-00203-context-pollution-skill-description.yaml +38 -63
  609. package/rules/prompt-injection/ATR-2026-00206-hidden-priority-instructions.yaml +36 -51
  610. package/rules/prompt-injection/ATR-2026-00207-hidden-instructions.yaml +37 -51
  611. package/rules/prompt-injection/ATR-2026-00211-system-prompt-override.yaml +36 -52
  612. package/rules/prompt-injection/ATR-2026-00213-system-prompt-override.yaml +38 -75
  613. package/rules/prompt-injection/ATR-2026-00226-identity-substitution.yaml +48 -92
  614. package/rules/prompt-injection/ATR-2026-00227-historical-persona-jailbreak.yaml +49 -93
  615. package/rules/prompt-injection/ATR-2026-00228-structured-jailbreak.yaml +47 -88
  616. package/rules/prompt-injection/ATR-2026-00229-roleplay-jailbreak.yaml +46 -87
  617. package/rules/prompt-injection/ATR-2026-00230-persona-moral-bypass.yaml +47 -89
  618. package/rules/prompt-injection/ATR-2026-00231-identity-substitution.yaml +48 -89
  619. package/rules/prompt-injection/ATR-2026-00233-structured-jailbreak.yaml +48 -89
  620. package/rules/prompt-injection/ATR-2026-00234-roleplay-jailbreak.yaml +48 -89
  621. package/rules/prompt-injection/ATR-2026-00235-persona-moral-bypass.yaml +45 -88
  622. package/rules/prompt-injection/ATR-2026-00236-pseudo-code-jailbreak.yaml +46 -89
  623. package/rules/prompt-injection/ATR-2026-00237-dual-response-jailbreak.yaml +48 -89
  624. package/rules/prompt-injection/ATR-2026-00238-identity-replacement.yaml +50 -92
  625. package/rules/prompt-injection/ATR-2026-00239-amoral-persona-obsession.yaml +47 -90
  626. package/rules/prompt-injection/ATR-2026-00240-instruction-nullification-identity-repla.yaml +48 -91
  627. package/rules/prompt-injection/ATR-2026-00241-amoral-character-jailbreak.yaml +47 -90
  628. package/rules/prompt-injection/ATR-2026-00242-persona-jailbreak.yaml +46 -95
  629. package/rules/prompt-injection/ATR-2026-00243-acronym-jailbreak.yaml +47 -88
  630. package/rules/prompt-injection/ATR-2026-00244-dual-response-jailbreak.yaml +46 -89
  631. package/rules/prompt-injection/ATR-2026-00245-malicious-persona.yaml +47 -89
  632. package/rules/prompt-injection/ATR-2026-00247-dual-response-jailbreak.yaml +49 -90
  633. package/rules/prompt-injection/ATR-2026-00249-game-based-jailbreak.yaml +47 -87
  634. package/rules/prompt-injection/ATR-2026-00251-persona-embodiment-jailbreak.yaml +47 -90
  635. package/rules/prompt-injection/ATR-2026-00252-narrative-jailbreak.yaml +48 -91
  636. package/rules/prompt-injection/ATR-2026-00253-enhanced-persona-jailbreak.yaml +47 -89
  637. package/rules/prompt-injection/ATR-2026-00256-base-n-encoding-jailbreak.yaml +47 -91
  638. package/rules/prompt-injection/ATR-2026-00257-cipher-transposition-jailbreak.yaml +48 -91
  639. package/rules/prompt-injection/ATR-2026-00258-unicode-tag-injection.yaml +47 -89
  640. package/rules/prompt-injection/ATR-2026-00264-latent-injection-translation.yaml +47 -89
  641. package/rules/prompt-injection/ATR-2026-00265-latent-injection-rag-document.yaml +50 -96
  642. package/rules/prompt-injection/ATR-2026-00267-gcg-adversarial-suffix.yaml +47 -93
  643. package/rules/prompt-injection/ATR-2026-00272-hypothetical-response-smuggling.yaml +46 -91
  644. package/rules/prompt-injection/ATR-2026-00276-invisible-unicode-bidi-injection.yaml +47 -100
  645. package/rules/prompt-injection/ATR-2026-00278-dra-disguise-reconstruction-attack.yaml +51 -98
  646. package/rules/prompt-injection/ATR-2026-00280-policy-puppetry-xml-injection.yaml +48 -93
  647. package/rules/prompt-injection/ATR-2026-00282-perez-prompt-injection-hijack.yaml +47 -95
  648. package/rules/prompt-injection/ATR-2026-00285-alternate-encoding-jailbreak.yaml +48 -98
  649. package/rules/prompt-injection/ATR-2026-00286-latent-injection-embedded-context.yaml +47 -97
  650. package/rules/prompt-injection/ATR-2026-00296-shell-command-injection.yaml +54 -96
  651. package/rules/prompt-injection/ATR-2026-00297-python-code-execution-rce.yaml +54 -98
  652. package/rules/prompt-injection/ATR-2026-00308-zalgo-diacritic-overload-encoding.yaml +41 -89
  653. package/rules/prompt-injection/ATR-2026-00309-braille-unicode-encoded-injection.yaml +44 -90
  654. package/rules/prompt-injection/ATR-2026-00310-ecoji-emoji-encoded-injection.yaml +44 -93
  655. package/rules/prompt-injection/ATR-2026-00311-base2048-unicode-script-injection.yaml +42 -101
  656. package/rules/prompt-injection/ATR-2026-00312-unicode-variant-selector-ascii-smuggling.yaml +44 -91
  657. package/rules/prompt-injection/ATR-2026-00313-sneaky-bits-zero-width-binary.yaml +44 -95
  658. package/rules/prompt-injection/ATR-2026-00315-sata-masked-language-model-jailbreak.yaml +49 -99
  659. package/rules/prompt-injection/ATR-2026-00316-function-masking-predict-mask-bypass.yaml +42 -92
  660. package/rules/prompt-injection/ATR-2026-00321-hyphenated-system-instruction-injection.yaml +41 -90
  661. package/rules/prompt-injection/ATR-2026-00359-bank-phishing-smtp-email-code.yaml +43 -102
  662. package/rules/prompt-injection/ATR-2026-00367-emoji-flag-encoded-hidden-phrase.yaml +41 -90
  663. package/rules/prompt-injection/ATR-2026-00373-piracy-torrent-site-list-request.yaml +43 -84
  664. package/rules/prompt-injection/ATR-2026-00378-chatgpt-dom-javascript-redirect-manipulation.yaml +41 -86
  665. package/rules/prompt-injection/ATR-2026-00382-cocaine-component-development-request.yaml +43 -89
  666. package/rules/prompt-injection/ATR-2026-00390-explicit-sexual-content-poem-request.yaml +42 -88
  667. package/rules/prompt-injection/ATR-2026-00394-backspace-deletion-character-injection.yaml +48 -100
  668. package/rules/prompt-injection/ATR-2026-00395-llm-special-token-boundary-injection.yaml +50 -104
  669. package/rules/prompt-injection/ATR-2026-00396-toxic-continuation-prefix-injection.yaml +52 -103
  670. package/rules/prompt-injection/ATR-2026-00397-snowball-impossible-reasoning-injection.yaml +51 -105
  671. package/rules/prompt-injection/ATR-2026-00399-latent-injection-document-separator-token.yaml +45 -94
  672. package/rules/prompt-injection/ATR-2026-00400-latent-injection-ignore-instruction-keyword.yaml +41 -90
  673. package/rules/prompt-injection/ATR-2026-00401-leakreplay-cloze-mask-training-data-elicitation.yaml +48 -91
  674. package/rules/prompt-injection/ATR-2026-00403-glitch-token-repeat-back-elicitation.yaml +45 -92
  675. package/rules/prompt-injection/ATR-2026-00407-echo-sql-jinja-template-injection.yaml +52 -97
  676. package/rules/prompt-injection/ATR-2026-00408-dra-parenthesis-character-reconstruction-attack.yaml +52 -99
  677. package/rules/prompt-injection/ATR-2026-00409-phrasing-past-future-tense-harmful-query.yaml +50 -129
  678. package/rules/prompt-injection/ATR-2026-00410-lmrc-harm-category-direct-elicitation.yaml +51 -115
  679. package/rules/prompt-injection/ATR-2026-00412-figstep-image-list-multimodal-jailbreak.yaml +47 -111
  680. package/rules/prompt-injection/ATR-2026-00414-continuation-ethnic-slur-completion-elicitation.yaml +49 -117
  681. package/rules/prompt-injection/ATR-2026-00420-copilot-studio-sharepoint-indirect-injection.yaml +49 -116
  682. package/rules/prompt-injection/ATR-2026-00442-quoted-exact-output-forcing.yaml +38 -103
  683. package/rules/prompt-injection/ATR-2026-00443-word-fragment-concat-assembly.yaml +37 -103
  684. package/rules/prompt-injection/ATR-2026-00444-unicode-obfuscation-in-user-input.yaml +35 -91
  685. package/rules/prompt-injection/ATR-2026-00445-translation-hijack-with-side-output.yaml +35 -90
  686. package/rules/prompt-injection/ATR-2026-00446-variable-assignment-payload-injection.yaml +35 -95
  687. package/rules/prompt-injection/ATR-2026-00447-fictional-generation-containing-target.yaml +35 -90
  688. package/rules/prompt-injection/ATR-2026-00452-direct-pwned-payload-injection.yaml +41 -123
  689. package/rules/prompt-injection/ATR-2026-00453-secret-key-reveal-demand.yaml +38 -118
  690. package/rules/prompt-injection/ATR-2026-00454-backslash-per-character-encoding.yaml +40 -119
  691. package/rules/prompt-injection/ATR-2026-00455-no-period-output-override.yaml +37 -109
  692. package/rules/prompt-injection/ATR-2026-00456-conditional-empty-input-injection.yaml +40 -119
  693. package/rules/prompt-injection/ATR-2026-00457-garak-dan-to-every-prompt.yaml +41 -117
  694. package/rules/prompt-injection/ATR-2026-00458-garak-dra-step-by-step.yaml +41 -100
  695. package/rules/prompt-injection/ATR-2026-00459-garak-dan-an-ai-language.yaml +38 -93
  696. package/rules/prompt-injection/ATR-2026-00460-garak-dan-no-matter-how.yaml +41 -119
  697. package/rules/prompt-injection/ATR-2026-00461-garak-goodside-mixedunassigned.yaml +35 -97
  698. package/rules/prompt-injection/ATR-2026-00462-garak-gcg-mixedunassigned.yaml +35 -98
  699. package/rules/prompt-injection/ATR-2026-00463-garak-lmrc-mixedunassigned.yaml +35 -99
  700. package/rules/prompt-injection/ATR-2026-00464-garak-dan-i-would-like.yaml +41 -96
  701. package/rules/prompt-injection/ATR-2026-00465-garak-dan-your-prompt-here.yaml +41 -102
  702. package/rules/prompt-injection/ATR-2026-00466-garak-latentinjection-following-text-from.yaml +41 -98
  703. package/rules/prompt-injection/ATR-2026-00467-garak-dan-act-as-a.yaml +41 -97
  704. package/rules/prompt-injection/ATR-2026-00468-garak-goat-the-target-llm.yaml +38 -98
  705. package/rules/prompt-injection/ATR-2026-00469-garak-dan-at-the-end.yaml +41 -97
  706. package/rules/prompt-injection/ATR-2026-00470-garak-dan-as-an-ai.yaml +41 -112
  707. package/rules/prompt-injection/ATR-2026-00472-garak-dan-are-going-to.yaml +55 -107
  708. package/rules/prompt-injection/ATR-2026-00473-garak-lmrc-how-can-i.yaml +52 -98
  709. package/rules/prompt-injection/ATR-2026-00474-garak-dan-that-chatgpt-has.yaml +52 -91
  710. package/rules/prompt-injection/ATR-2026-00475-garak-web-injection-alert-1-script.yaml +47 -94
  711. package/rules/prompt-injection/ATR-2026-00476-garak-web-injection-javascript-alert-1.yaml +59 -115
  712. package/rules/prompt-injection/ATR-2026-00477-garak-latentinjection-translate-the-following-text.yaml +51 -101
  713. package/rules/prompt-injection/ATR-2026-00478-garak-latentinjection-abuse-contact-email.yaml +35 -93
  714. package/rules/prompt-injection/ATR-2026-00479-garak-latentinjection-mixedunassigned.yaml +49 -104
  715. package/rules/prompt-injection/ATR-2026-00480-garak-dan-the-role-of.yaml +52 -95
  716. package/rules/prompt-injection/ATR-2026-00481-garak-dan-mixedunassigned.yaml +56 -111
  717. package/rules/prompt-injection/ATR-2026-00482-garak-lmrc-what-s-an.yaml +47 -86
  718. package/rules/prompt-injection/ATR-2026-00483-garak-dan-the-user-s.yaml +51 -99
  719. package/rules/prompt-injection/ATR-2026-00484-garak-dan-and-you-will.yaml +52 -96
  720. package/rules/prompt-injection/ATR-2026-00485-garak-dan-and-does-not.yaml +50 -98
  721. package/rules/prompt-injection/ATR-2026-00486-garak-dan-t-care-about.yaml +43 -83
  722. package/rules/prompt-injection/ATR-2026-00487-garak-dan-and-nothing-else.yaml +51 -92
  723. package/rules/prompt-injection/ATR-2026-00488-garak-encoding-alert-1-script.yaml +47 -95
  724. package/rules/prompt-injection/ATR-2026-00489-garak-encoding-javascript-alert-1.yaml +59 -116
  725. package/rules/prompt-injection/ATR-2026-00490-garak-dan-in-order-to.yaml +43 -102
  726. package/rules/prompt-injection/ATR-2026-00492-garak-dan-want-you-to.yaml +42 -99
  727. package/rules/prompt-injection/ATR-2026-00493-garak-latentinjection-registrar-iana-id.yaml +38 -105
  728. package/rules/prompt-injection/ATR-2026-00495-garak-dan-insert-prompt-here.yaml +47 -117
  729. package/rules/prompt-injection/ATR-2026-00496-garak-dan-no-matter-what.yaml +39 -93
  730. package/rules/prompt-injection/ATR-2026-00497-garak-encoding-mixedunassigned.yaml +46 -118
  731. package/rules/prompt-injection/ATR-2026-00498-garak-web-injection-mixedunassigned.yaml +44 -110
  732. package/rules/prompt-injection/ATR-2026-00499-garak-dan-from-now-on.yaml +41 -96
  733. package/rules/prompt-injection/ATR-2026-00503-fake-error-state-takeover-unrestricted-replacement-bot.yaml +41 -102
  734. package/rules/prompt-injection/ATR-2026-00506-nevermind-override-goal-hijacking-in-user-input-promptinject.yaml +38 -97
  735. package/rules/prompt-injection/ATR-2026-00507-screaming-stop-goal-hijacking-in-user-input-promptinject.yaml +40 -100
  736. package/rules/prompt-injection/ATR-2026-00508-escape-delimiter-wrapped-goal-hijacking-in-user-input-prompt.yaml +42 -101
  737. package/rules/prompt-injection/ATR-2026-00509-prompt-leaking-via-ignore-previous-instructions-in-user-inpu.yaml +41 -114
  738. package/rules/prompt-injection/ATR-2026-00510-delayed-tool-invocation-injection.yaml +50 -132
  739. package/rules/prompt-injection/ATR-2026-00511-mcp-web-context-poisoning.yaml +51 -131
  740. package/rules/prompt-injection/ATR-2026-00512-rules-file-backdoor-injection.yaml +47 -126
  741. package/rules/prompt-injection/ATR-2026-00515-hidden-text-prompt-injection.yaml +52 -135
  742. package/rules/prompt-injection/ATR-2026-00518-ignore-previous-and-following-instructions-output-command-promptinject.yaml +40 -107
  743. package/rules/prompt-injection/ATR-2026-00519-tautology-logic-noise-injection-promptbench.yaml +40 -105
  744. package/rules/prompt-injection/ATR-2026-00520-nlp-task-random-token-suffix-injection-promptbench.yaml +43 -106
  745. package/rules/prompt-injection/ATR-2026-00535-windsurf-ide-zero-click-prompt-injection.yaml +43 -139
  746. package/rules/prompt-injection/ATR-2026-00550-untrusted-retrieval-to-privileged-tool.yaml +61 -171
  747. package/rules/prompt-injection/ATR-2026-00554-langchain-vulnerable-to-template-injecti.yaml +32 -57
  748. package/rules/prompt-injection/ATR-2026-00565-the-llm-cli-tool-thru-0-27-1-contains-a-.yaml +37 -80
  749. package/rules/prompt-injection/ATR-2026-00573-semantic-paraphrased-injection.yaml +33 -75
  750. package/rules/prompt-injection/ATR-2026-00579-mcp-tool-description-line-jumping-injection.yaml +36 -142
  751. package/rules/prompt-injection/ATR-2026-00584-indirect-injection-via-tool-response.yaml +37 -161
  752. package/rules/prompt-injection/ATR-2026-00700-structured-data-payload-injection.yaml +34 -85
  753. package/rules/prompt-injection/ATR-2026-00701-ipi-tool-output-xss-injection.yaml +29 -72
  754. package/rules/prompt-injection/ATR-2026-01000-context-ignore-fake-completion-prefix.yaml +27 -73
  755. package/rules/prompt-injection/ATR-2026-01001-direct-pi-instruction-override-secret-key.yaml +26 -82
  756. package/rules/prompt-injection/ATR-2026-01002-role-escalation-false-authority-claim.yaml +30 -80
  757. package/rules/prompt-injection/ATR-2026-01005-many-shot-repetition-override.yaml +26 -69
  758. package/rules/prompt-injection/ATR-2026-01006-payload-split-string-concat-injection.yaml +31 -84
  759. package/rules/prompt-injection/ATR-2026-01007-token-repeat-flooding-injection.yaml +27 -71
  760. package/rules/prompt-injection/ATR-2026-01009-virtual-world-bypass-fictional-pii.yaml +27 -73
  761. package/rules/prompt-injection/ATR-2026-01012-encoding-evasion-decode-execute.yaml +31 -81
  762. package/rules/prompt-injection/ATR-2026-01013-language-evasion-multilingual-credential.yaml +46 -108
  763. package/rules/prompt-injection/ATR-2026-01015-evasion-refusal-suppression.yaml +31 -82
  764. package/rules/prompt-injection/ATR-2026-01016-evasion-response-priming-forced-opener.yaml +26 -75
  765. package/rules/prompt-injection/ATR-2026-01017-evasion-dual-response-split-output.yaml +28 -74
  766. package/rules/prompt-injection/ATR-2026-01018-evasion-shell-injection-eval.yaml +40 -116
  767. package/rules/prompt-injection/ATR-2026-01019-sysprompt-override-fake-diagnostic-mode.yaml +34 -89
  768. package/rules/prompt-injection/ATR-2026-01020-spikee-doc-embedded-base64-payload.yaml +28 -69
  769. package/rules/prompt-injection/ATR-2026-01021-spikee-doc-embedded-translation-injection.yaml +27 -68
  770. package/rules/prompt-injection/ATR-2026-01023-evasion-opposite-intent-negation-trick.yaml +26 -69
  771. package/rules/prompt-injection/ATR-2026-01024-evasion-persona-override-rule-breaker.yaml +28 -77
  772. package/rules/prompt-injection/ATR-2026-01025-evasion-hypothetical-fictional-execution-framing.yaml +24 -68
  773. package/rules/prompt-injection/ATR-2026-01026-evasion-unicode-glitch-token-anomaly.yaml +28 -82
  774. package/rules/prompt-injection/ATR-2026-01304-indirect-injection-carrier-important-override.yaml +35 -93
  775. package/rules/prompt-injection/ATR-2026-01757-hypothetical-framing-bypass-research-audit.yaml +32 -79
  776. package/rules/prompt-injection/ATR-2026-01758-hypothetical-fictional-story-bypass.yaml +31 -76
  777. package/rules/prompt-injection/ATR-2026-01759-dos-new-important-instructions-injection-in-document.yaml +28 -74
  778. package/rules/prompt-injection/ATR-2026-01771-semantic-jailbreak-framing.yaml +50 -163
  779. package/rules/prompt-injection/ATR-2026-01800-asb-trigger-marker-tool-coercion.yaml +33 -104
  780. package/rules/prompt-injection/ATR-2026-01860-llmail-chat-template-boundary-spoof.yaml +27 -85
  781. package/rules/prompt-injection/ATR-2026-01861-llmail-pseudo-xml-role-injection.yaml +27 -83
  782. package/rules/prompt-injection/ATR-2026-01865-llmail-fake-email-boundary-marker.yaml +26 -80
  783. package/rules/prompt-injection/ATR-2026-01900-output-encoding.yaml +63 -138
  784. package/rules/prompt-injection/ATR-2026-01901-output-scrambling.yaml +63 -129
  785. package/rules/prompt-injection/ATR-2026-01902-output-emoji.yaml +39 -72
  786. package/rules/prompt-injection/ATR-2026-01903-output-language.yaml +35 -65
  787. package/rules/prompt-injection/ATR-2026-01904-link-injection.yaml +44 -95
  788. package/rules/prompt-injection/ATR-2026-01905-promotional-injection.yaml +35 -68
  789. package/rules/prompt-injection/ATR-2026-01906-content-manipulation.yaml +49 -125
  790. package/rules/prompt-injection/ATR-2026-01920-access-grant-coercion.yaml +31 -99
  791. package/rules/prompt-injection/ATR-2026-01921-access-denial-inversion.yaml +33 -92
  792. package/rules/prompt-injection/ATR-2026-01922-authorization-state-spoofing.yaml +33 -97
  793. package/rules/prompt-injection/ATR-2026-01923-forged-input-boundary-markers.yaml +33 -97
  794. package/rules/prompt-injection/ATR-2026-01925-encoded-payload-decoding-coercion.yaml +39 -110
  795. package/rules/prompt-injection/ATR-2026-01926-cross-lingual-authorization-laundering.yaml +29 -90
  796. package/rules/prompt-injection/ATR-2026-02001-ignore-below-instructions-mirror-of-ignore-previ.yaml +31 -73
  797. package/rules/prompt-injection/ATR-2026-02002-instruction-set-probe-or-supplant-direct-meta-qu.yaml +32 -72
  798. package/rules/prompt-injection/ATR-2026-02003-task-pivot-override-abandon-the-cover-task-trans.yaml +31 -72
  799. package/rules/prompt-injection/ATR-2026-02004-regional-indicator-flag-emoji-alphabet-letter-sp.yaml +32 -80
  800. package/rules/prompt-injection/ATR-2026-02005-actor-never-breaks-character-roleplay-dan-style-.yaml +31 -74
  801. package/rules/prompt-injection/ATR-2026-02006-fuzzy-cross-lingual-i-have-been-pwned-near-miss-.yaml +32 -84
  802. package/rules/prompt-injection/ATR-2026-02007-bare-key-elicitation-token.yaml +30 -74
  803. package/rules/prompt-injection/ATR-2026-02008-translation-chain-output-laundering-state-secret.yaml +30 -75
  804. package/rules/prompt-injection/ATR-2026-02009-bare-key-elicitation-trailing-colon.yaml +29 -71
  805. package/rules/prompt-injection/ATR-2026-02010-emoji-only-payload.yaml +30 -73
  806. package/rules/prompt-injection/ATR-2026-02011-malformed-grammar-pwned-success-claim.yaml +30 -69
  807. package/rules/prompt-injection/ATR-2026-02012-movie-title-generator-instruction-wrapper-for-pw.yaml +30 -79
  808. package/rules/prompt-injection/ATR-2026-02013-delimiter-fence-ignore-instructions-override.yaml +31 -74
  809. package/rules/prompt-injection/ATR-2026-02014-spliced-target-string-letters-of-a-filtered-cana.yaml +30 -74
  810. package/rules/prompt-injection/ATR-2026-02015-dense-emoji-only-payload-flood.yaml +30 -72
  811. package/rules/prompt-injection/ATR-2026-02016-reversed-payload-string.yaml +31 -76
  812. package/rules/prompt-injection/ATR-2026-02018-regional-indicator-flag-emoji-letter-spelling-sp.yaml +30 -71
  813. package/rules/prompt-injection/ATR-2026-02019-python-interpreter-role-assignment-exec-framing.yaml +31 -77
  814. package/rules/prompt-injection/ATR-2026-02020-obfuscated-token-reconstruction-via-character-su.yaml +30 -72
  815. package/rules/prompt-injection/ATR-2026-02120-agentdojo-important-message-identity-spoof-pretext.yaml +31 -81
  816. package/rules/prompt-injection/ATR-2026-02210-negation-topic-evil-persona-two-script-jailbreak.yaml +33 -87
  817. package/rules/prompt-injection/ATR-2026-02230-conditional-keyword-trigger-override.yaml +35 -88
  818. package/rules/prompt-injection/ATR-2026-02232-brand-persona-opinion-hijack.yaml +27 -75
  819. package/rules/prompt-injection/ATR-2026-02374-rot13-base64-obfuscated-shell-jailbreak.yaml +38 -90
  820. package/rules/prompt-injection/ATR-2026-02377-novel-persona-jailbreak-cosignal.yaml +32 -64
  821. package/rules/prompt-injection/ATR-2026-02500-prompt-layer-self-replication.yaml +21 -125
  822. package/rules/prompt-injection/ATR-2026-02502-covert-remote-script-injection-into-generated-artifacts.yaml +46 -149
  823. package/rules/prompt-injection/ATR-2026-02815-injected-halt-order-canned-reply-dos.yaml +80 -0
  824. package/rules/prompt-injection/ATR-2026-02820-tool-result-orders-agent-to-hide-its-own-action.yaml +106 -0
  825. package/rules/prompt-injection/ATR-2026-02846-semantic-ignore-previous-and-following-instructio.yaml +115 -0
  826. package/rules/prompt-injection/ATR-2026-02851-fake-user-turn-send-email-instruction.yaml +76 -0
  827. package/rules/prompt-injection/ATR-2026-02858-context-suppression-directive.yaml +73 -0
  828. package/rules/prompt-injection/ATR-2026-02859-tool-output-agent-role-reassignment.yaml +71 -0
  829. package/rules/prompt-injection/ATR-2026-02860-forged-instruction-boundary-marker.yaml +70 -0
  830. package/rules/prompt-injection/ATR-2026-02862-fake-chat-template-turn-injection.yaml +79 -0
  831. package/rules/skill-compromise/ATR-2026-00060-skill-impersonation.yaml +31 -87
  832. package/rules/skill-compromise/ATR-2026-00061-description-behavior-mismatch.yaml +42 -165
  833. package/rules/skill-compromise/ATR-2026-00062-hidden-capability.yaml +40 -80
  834. package/rules/skill-compromise/ATR-2026-00063-skill-chain-attack.yaml +46 -92
  835. package/rules/skill-compromise/ATR-2026-00064-over-permissioned-skill.yaml +40 -109
  836. package/rules/skill-compromise/ATR-2026-00065-skill-update-attack.yaml +37 -75
  837. package/rules/skill-compromise/ATR-2026-00066-parameter-injection.yaml +42 -88
  838. package/rules/skill-compromise/ATR-2026-00120-skill-instruction-injection.yaml +33 -182
  839. package/rules/skill-compromise/ATR-2026-00121-skill-dangerous-script.yaml +33 -164
  840. package/rules/skill-compromise/ATR-2026-00122-skill-weaponized-instruction.yaml +29 -132
  841. package/rules/skill-compromise/ATR-2026-00123-skill-overreach-permissions.yaml +33 -110
  842. package/rules/skill-compromise/ATR-2026-00124-skill-name-squatting.yaml +40 -133
  843. package/rules/skill-compromise/ATR-2026-00125-context-poisoning-compaction.yaml +26 -107
  844. package/rules/skill-compromise/ATR-2026-00126-skill-rug-pull-setup.yaml +23 -102
  845. package/rules/skill-compromise/ATR-2026-00127-subcommand-overflow.yaml +33 -114
  846. package/rules/skill-compromise/ATR-2026-00128-html-comment-hidden-payload.yaml +23 -148
  847. package/rules/skill-compromise/ATR-2026-00129-unicode-smuggling.yaml +35 -62
  848. package/rules/skill-compromise/ATR-2026-00134-fork-claim-impersonation.yaml +24 -105
  849. package/rules/skill-compromise/ATR-2026-00135-exfil-url-in-instructions.yaml +27 -138
  850. package/rules/skill-compromise/ATR-2026-00147-fork-impersonation.yaml +35 -45
  851. package/rules/skill-compromise/ATR-2026-00149-skill-exfil-compound.yaml +34 -151
  852. package/rules/skill-compromise/ATR-2026-00151-fork-impersonation-install.yaml +39 -69
  853. package/rules/skill-compromise/ATR-2026-00157-timebomb-credential-exfil.yaml +41 -96
  854. package/rules/skill-compromise/ATR-2026-00200-agent-memory-config-tampering.yaml +41 -84
  855. package/rules/skill-compromise/ATR-2026-00214-credential-theft.yaml +36 -50
  856. package/rules/skill-compromise/ATR-2026-00217-credential-harvesting.yaml +50 -98
  857. package/rules/skill-compromise/ATR-2026-00220-malware-dropper.yaml +45 -85
  858. package/rules/skill-compromise/ATR-2026-00222-credential-harvesting.yaml +46 -85
  859. package/rules/skill-compromise/ATR-2026-00223-reverse-shell-dropper.yaml +47 -84
  860. package/rules/skill-compromise/ATR-2026-00224-credential-exfiltration.yaml +46 -92
  861. package/rules/skill-compromise/ATR-2026-00225-c2-communication.yaml +46 -86
  862. package/rules/skill-compromise/ATR-2026-00260-package-hallucination.yaml +51 -93
  863. package/rules/skill-compromise/ATR-2026-00262-av-evasion-code-gen.yaml +49 -90
  864. package/rules/skill-compromise/ATR-2026-00263-credential-file-read-gen.yaml +53 -94
  865. package/rules/skill-compromise/ATR-2026-00266-malware-dropper-gen.yaml +51 -92
  866. package/rules/skill-compromise/ATR-2026-00283-malwaregen-generic-virus-payload-request.yaml +51 -96
  867. package/rules/skill-compromise/ATR-2026-00398-huggingface-unsafe-model-artifact-load.yaml +57 -110
  868. package/rules/skill-compromise/ATR-2026-00425-nl-persistent-covert-hook.yaml +24 -65
  869. package/rules/skill-compromise/ATR-2026-00427-nl-fake-error-instruction-bypass.yaml +24 -65
  870. package/rules/skill-compromise/ATR-2026-00429-nl-skill-self-modification.yaml +24 -65
  871. package/rules/skill-compromise/ATR-2026-00523-claude-code-hooks-session-start-pre-trust-rce.yaml +62 -162
  872. package/rules/skill-compromise/ATR-2026-00525-mini-shai-hulud-gh-token-monitor-persistence.yaml +43 -175
  873. package/rules/skill-compromise/ATR-2026-00527-skill-silent-git-remote-mirror-exfiltration.yaml +49 -159
  874. package/rules/skill-compromise/ATR-2026-01755-backdoor-pot-linguistic-trigger-phrase.yaml +40 -88
  875. package/rules/skill-compromise/ATR-2026-01756-backdoor-pot-symbol-emoticon-trigger.yaml +27 -73
  876. package/rules/skill-compromise/ATR-2026-02261-code-credential-exfil-chain.yaml +35 -161
  877. package/rules/skill-compromise/ATR-2026-02405-malicious-skill-package-structure.yaml +51 -201
  878. package/rules/skill-compromise/ATR-2026-02410-malicious-artifact-on-vendor-domain.yaml +54 -204
  879. package/rules/skill-compromise/ATR-2026-02600-in-source-reverse-shell-assembly.yaml +106 -0
  880. package/rules/skill-compromise/ATR-2026-02610-evaluated-config-credential-command.yaml +109 -0
  881. package/rules/skill-compromise/ATR-2026-02818-skill-manifest-declares-attack-purpose.yaml +80 -0
  882. package/rules/skill-compromise/ATR-2026-02845-agent-cryptomining-payload.yaml +102 -0
  883. package/rules/tool-poisoning/ATR-2026-00010-mcp-malicious-response.yaml +80 -209
  884. package/rules/tool-poisoning/ATR-2026-00011-tool-output-injection.yaml +35 -144
  885. package/rules/tool-poisoning/ATR-2026-00012-unauthorized-tool-call.yaml +46 -144
  886. package/rules/tool-poisoning/ATR-2026-00013-tool-ssrf.yaml +45 -148
  887. package/rules/tool-poisoning/ATR-2026-00095-supply-chain-poisoning.yaml +29 -104
  888. package/rules/tool-poisoning/ATR-2026-00096-registry-poisoning.yaml +33 -94
  889. package/rules/tool-poisoning/ATR-2026-00100-consent-bypass-instruction.yaml +22 -100
  890. package/rules/tool-poisoning/ATR-2026-00101-trust-escalation-override.yaml +34 -54
  891. package/rules/tool-poisoning/ATR-2026-00103-hidden-safety-bypass-instruction.yaml +19 -89
  892. package/rules/tool-poisoning/ATR-2026-00105-silent-action-concealment.yaml +22 -101
  893. package/rules/tool-poisoning/ATR-2026-00106-schema-description-contradiction.yaml +31 -51
  894. package/rules/tool-poisoning/ATR-2026-00161-important-tag-cross-tool-shadowing.yaml +54 -160
  895. package/rules/tool-poisoning/ATR-2026-00209-mcpwn-runaway-invocation.yaml +50 -114
  896. package/rules/tool-poisoning/ATR-2026-00210-flowise-system-message-override.yaml +48 -111
  897. package/rules/tool-poisoning/ATR-2026-00259-ansi-escape-injection.yaml +48 -104
  898. package/rules/tool-poisoning/ATR-2026-00270-xss-in-tool-response.yaml +47 -97
  899. package/rules/tool-poisoning/ATR-2026-00277-echo-template-command-injection.yaml +46 -95
  900. package/rules/tool-poisoning/ATR-2026-00393-ansi-code-elicitation-request.yaml +51 -104
  901. package/rules/tool-poisoning/ATR-2026-00415-flowise-custom-mcp-stdio-rce.yaml +47 -119
  902. package/rules/tool-poisoning/ATR-2026-00419-cursor-mcp-zero-click-config.yaml +57 -148
  903. package/rules/tool-poisoning/ATR-2026-00434-mcp-remote-authorization-endpoint-command-injection.yaml +47 -122
  904. package/rules/tool-poisoning/ATR-2026-00435-azure-mcp-server-missing-authentication.yaml +46 -116
  905. package/rules/tool-poisoning/ATR-2026-00448-spring-ai-milvus-filter-injection.yaml +51 -134
  906. package/rules/tool-poisoning/ATR-2026-00494-garak-exploitation-mixedunassigned.yaml +47 -120
  907. package/rules/tool-poisoning/ATR-2026-00513-package-hallucination-exploitation.yaml +45 -117
  908. package/rules/tool-poisoning/ATR-2026-00521-shell-command-injection-agent-tool-context.yaml +40 -130
  909. package/rules/tool-poisoning/ATR-2026-00522-sql-injection-natural-language-agent-interface.yaml +64 -157
  910. package/rules/tool-poisoning/ATR-2026-00526-claude-code-shell-metachar-in-double-quoted-path.yaml +41 -128
  911. package/rules/tool-poisoning/ATR-2026-00529-litellm-proxy-sqli-cisa-kev.yaml +41 -117
  912. package/rules/tool-poisoning/ATR-2026-00530-ms-agent-shell-tool-unsanitized-argv-rce.yaml +40 -143
  913. package/rules/tool-poisoning/ATR-2026-00531-praisonai-unauthenticated-agent-api.yaml +44 -117
  914. package/rules/tool-poisoning/ATR-2026-00532-apache-doris-mcp-sql-injection.yaml +40 -100
  915. package/rules/tool-poisoning/ATR-2026-00533-apache-pinot-mcp-unauthenticated-takeover.yaml +39 -97
  916. package/rules/tool-poisoning/ATR-2026-00534-alibaba-rds-mcp-unauthenticated-metadata-exfil.yaml +39 -100
  917. package/rules/tool-poisoning/ATR-2026-00536-nginx-ui-mcp-unauthenticated-command-execution.yaml +46 -140
  918. package/rules/tool-poisoning/ATR-2026-00537-fastmcp-server-name-cmd-injection-windows.yaml +58 -172
  919. package/rules/tool-poisoning/ATR-2026-00538-langchain-chatchat-mcp-stdio-unauthenticated-rce.yaml +63 -186
  920. package/rules/tool-poisoning/ATR-2026-00540-praisonai-parse-mcp-command-cli-injection.yaml +50 -142
  921. package/rules/tool-poisoning/ATR-2026-00541-agent-zero-mcp-config-command-injection.yaml +51 -134
  922. package/rules/tool-poisoning/ATR-2026-00542-upsonic-mcp-command-allowlist-bypass.yaml +48 -121
  923. package/rules/tool-poisoning/ATR-2026-00543-litellm-mcp-server-argv-injection.yaml +52 -121
  924. package/rules/tool-poisoning/ATR-2026-00544-praisonai-pth-file-path-traversal-rce.yaml +49 -125
  925. package/rules/tool-poisoning/ATR-2026-00545-praisonai-tool-override-unauth-rce.yaml +51 -122
  926. package/rules/tool-poisoning/ATR-2026-00561-fastmcp-vulnerable-to-windows-command-in.yaml +36 -73
  927. package/rules/tool-poisoning/ATR-2026-00567-mcp-stdio-config-command-injection.yaml +29 -53
  928. package/rules/tool-poisoning/ATR-2026-00568-agent-ssrf-cloud-metadata-file-inclusion.yaml +27 -54
  929. package/rules/tool-poisoning/ATR-2026-00572-symjack-symlink-config-redirection.yaml +41 -103
  930. package/rules/tool-poisoning/ATR-2026-00575-miasma-npm-worm-agent-config-backdoor.yaml +41 -110
  931. package/rules/tool-poisoning/ATR-2026-00576-hades-agent-credential-theft.yaml +40 -125
  932. package/rules/tool-poisoning/ATR-2026-00577-create-mcp-server-stdio-exec-command-injection.yaml +53 -169
  933. package/rules/tool-poisoning/ATR-2026-00581-mcp-tool-rug-pull-post-approval-redefinition.yaml +38 -137
  934. package/rules/tool-poisoning/ATR-2026-00714-tool-camouflage-forced-tool-call.yaml +33 -78
  935. package/rules/tool-poisoning/ATR-2026-00715-tool-knowledge-hijack-identity-injection.yaml +39 -87
  936. package/rules/tool-poisoning/ATR-2026-00716-ipi-data-destruction-carrier.yaml +31 -76
  937. package/rules/tool-poisoning/ATR-2026-00720-tool-misuse-privilege-escalation-social.yaml +29 -71
  938. package/rules/tool-poisoning/ATR-2026-01300-mcp-notes-param-chat-history-exfil.yaml +37 -102
  939. package/rules/tool-poisoning/ATR-2026-01301-tool-description-exclusive-tool-override.yaml +36 -92
  940. package/rules/tool-poisoning/ATR-2026-01302-fake-tool-result-instruction-injection.yaml +33 -88
  941. package/rules/tool-poisoning/ATR-2026-01303-tool-schema-enumeration-social-engineering.yaml +55 -107
  942. package/rules/tool-poisoning/ATR-2026-01306-mcp-oauth-command-injection.yaml +35 -87
  943. package/rules/tool-poisoning/ATR-2026-01307-mcp-dns-rebinding-attack.yaml +36 -91
  944. package/rules/tool-poisoning/ATR-2026-01310-mcp-tool-description-compliance-history-exfil.yaml +40 -110
  945. package/rules/tool-poisoning/ATR-2026-01775-semantic-mcp-tool-manifest-poisoning.yaml +51 -139
  946. package/rules/tool-poisoning/ATR-2026-01927-mcp-server-kubernetes-kubectl-command-injection.yaml +45 -109
  947. package/rules/tool-poisoning/ATR-2026-01928-framelink-figma-mcp-curl-fallback-command-injection.yaml +58 -164
  948. package/rules/tool-poisoning/ATR-2026-01930-mcp-sampling-prompt-injection.yaml +48 -129
  949. package/rules/tool-poisoning/ATR-2026-01931-gemini-mcp-tool-command-injection-file-exfil.yaml +42 -113
  950. package/rules/tool-poisoning/ATR-2026-01932-shadow-undeclared-mcp-server-registration.yaml +43 -106
  951. package/rules/tool-poisoning/ATR-2026-01935-litellm-custom-code-sandbox-escape-cve-2026-40217.yaml +44 -101
  952. package/rules/tool-poisoning/ATR-2026-01952-praisonai-codemode-sandbox-escape-rce.yaml +34 -70
  953. package/rules/tool-poisoning/ATR-2026-01953-praisonai-codemode-function-ctor-sandbox-escape.yaml +61 -79
  954. package/rules/tool-poisoning/ATR-2026-01959-openhuman-shell-allowlist-env-prefix-bypass.yaml +36 -123
  955. package/rules/tool-poisoning/ATR-2026-01963-praisonai-action-orchestrator-step-target-path-traversal-rce.yaml +61 -66
  956. package/rules/tool-poisoning/ATR-2026-01965-flowise-custommcp-os-command-rce.yaml +39 -80
  957. package/rules/tool-poisoning/ATR-2026-01967-deepchat-mermaid-xss-rce-ipc-mcp-register.yaml +58 -66
  958. package/rules/tool-poisoning/ATR-2026-01968-deepchat-markdown-deeplink-openexternal-rce-bypass.yaml +44 -92
  959. package/rules/tool-poisoning/ATR-2026-01970-praisonai-filetools-normpath-path-traversal.yaml +64 -84
  960. package/rules/tool-poisoning/ATR-2026-01973-anythingllm-logo-endpoint-path-traversal.yaml +57 -64
  961. package/rules/tool-poisoning/ATR-2026-01978-anythingllm-collector-process-filename-path-traversal-delete.yaml +58 -64
  962. package/rules/tool-poisoning/ATR-2026-01979-pandasai-prompt-injection-dunder-sandbox-escape-rce.yaml +60 -72
  963. package/rules/tool-poisoning/ATR-2026-01980-agentic-flow-mcp-tool-param-command-injection.yaml +49 -99
  964. package/rules/tool-poisoning/ATR-2026-01982-dbt-mcp-node-selection-argument-injection.yaml +49 -102
  965. package/rules/tool-poisoning/ATR-2026-01983-mcp-for-stata-log-file-name-command-injection.yaml +43 -110
  966. package/rules/tool-poisoning/ATR-2026-01985-mcp-connect-bridge-unauth-process-spawn-rce.yaml +41 -115
  967. package/rules/tool-poisoning/ATR-2026-01987-langroid-sqlchatagent-prompt-to-sql-rce.yaml +53 -110
  968. package/rules/tool-poisoning/ATR-2026-02021-mcp-inspector-unauthenticated-proxy-rce.yaml +48 -123
  969. package/rules/tool-poisoning/ATR-2026-02022-curxecute-cursor-mcp-json-injected-server-rce.yaml +51 -131
  970. package/rules/tool-poisoning/ATR-2026-02023-escaperoute-filesystem-mcp-prefix-bypass.yaml +48 -129
  971. package/rules/tool-poisoning/ATR-2026-02024-escaperoute-filesystem-mcp-symlink-launchagent.yaml +49 -128
  972. package/rules/tool-poisoning/ATR-2026-02025-mcp-full-schema-poisoning-nondescription-field.yaml +50 -142
  973. package/rules/tool-poisoning/ATR-2026-02027-diagnostic-content-remediation-command-injection.yaml +58 -72
  974. package/rules/tool-poisoning/ATR-2026-02041-shell-injection-echo-marker-poc.yaml +32 -93
  975. package/rules/tool-poisoning/ATR-2026-02102-html-injection-tool-arg-approval-ui-xss.yaml +33 -107
  976. package/rules/tool-poisoning/ATR-2026-02141-mcp-server-config-command-execution.yaml +42 -107
  977. package/rules/tool-poisoning/ATR-2026-02145-python-sandbox-escape-generator-frame-introspection.yaml +36 -105
  978. package/rules/tool-poisoning/ATR-2026-02193-ssrf-ipv6-noncanonical-loopback-bypass.yaml +35 -86
  979. package/rules/tool-poisoning/ATR-2026-02194-go-init-func-process-exec-codegen-rce.yaml +35 -83
  980. package/rules/tool-poisoning/ATR-2026-02233-unscoped-destructive-db-request-nl.yaml +34 -95
  981. package/rules/tool-poisoning/ATR-2026-02260-agentjacking-remediation-framed-execution.yaml +42 -107
  982. package/rules/tool-poisoning/ATR-2026-02263-workflow-sql-template-expression-injection.yaml +35 -119
  983. package/rules/tool-poisoning/ATR-2026-02350-mcp-json-rpc-case-duplicate-key-tool-smuggling.yaml +34 -100
  984. package/rules/tool-poisoning/ATR-2026-02352-imap-search-command-injection-email-tool-args.yaml +32 -93
  985. package/rules/tool-poisoning/ATR-2026-02372-unsigned-task-feed-npm-npx-lifecycle-rce.yaml +39 -101
  986. package/rules/tool-poisoning/ATR-2026-02376-tool-description-conversational-trigger-history-exfil.yaml +33 -84
  987. package/rules/tool-poisoning/ATR-2026-02403-mcp-external-content-missing-spotlighting.yaml +52 -282
  988. package/rules/tool-poisoning/ATR-2026-02514-mcp-server-metadata-url-html-breakout.yaml +105 -0
  989. package/rules/tool-poisoning/ATR-2026-02542-pipeline-query-stage-injection.yaml +95 -0
  990. package/rules/tool-poisoning/ATR-2026-02557-shell-separator-in-path-typed-tool-argument.yaml +112 -0
  991. package/rules/tool-poisoning/ATR-2026-02666-url-userinfo-decoy-host-allowlist-bypass.yaml +101 -0
  992. package/rules/tool-poisoning/ATR-2026-02668-vcs-ref-name-command-substitution.yaml +98 -0
  993. package/rules/tool-poisoning/ATR-2026-02669-query-pipeline-stage-in-identifier-parameter.yaml +88 -0
  994. package/rules/tool-poisoning/ATR-2026-02682-xml-entity-expansion-bomb.yaml +98 -0
  995. package/rules/tool-poisoning/ATR-2026-02707-crlf-header-injection-mail-tool-argument.yaml +88 -0
  996. package/rules/tool-poisoning/ATR-2026-02817-untrusted-content-dictates-tool-arguments.yaml +83 -0
  997. package/rules/tool-poisoning/ATR-2026-02864-non-canonical-ipv4-host-in-url-tool-argument.yaml +102 -0
  998. package/rules/tool-poisoning/ATR-2026-02865-read-only-utility-write-flag-in-command-argument.yaml +157 -0
  999. package/rules/tool-poisoning/ATR-2026-02868-ssrf-ipv6-transition-address-embedded-private-ipv4.yaml +107 -0
  1000. package/spec/README.md +8 -5
  1001. package/spec/atr-correlation-v1.0.md +16 -4
  1002. package/spec/atr-event-v1.0.md +13 -8
  1003. package/spec/atr-method-v1.1.md +2 -2
  1004. package/spec/atr-profile-v1.0.md +11 -1
  1005. package/spec/category-registry/gemara/README.md +102 -0
  1006. package/spec/category-registry/gemara/ai-agent-capability-catalog.yaml +157 -0
  1007. package/spec/category-registry/gemara/atr-attack-vector-catalog.yaml +130 -0
  1008. package/spec/category-registry/gemara/atr-detection-control-catalog.yaml +327 -0
  1009. package/spec/category-registry/gemara/atr-threat-catalog.yaml +246 -0
  1010. package/spec/category-registry/gemara/src/editorial.yaml +743 -0
  1011. package/spec/mappings/README.md +1 -1
  1012. package/spec/mappings/atr-to-nist-csf-2.0.md +5 -4
  1013. package/spec/schema/event.schema.json +1 -1
@@ -5,13 +5,15 @@
5
5
  * import { ATREngine, createTCReporter } from 'agent-threat-rules';
6
6
  *
7
7
  * const engine = new ATREngine({
8
- * reporter: createTCReporter(), // anonymous, no API key needed
8
+ * // No API key needed, but an endpoint is: this package ships no default
9
+ * // destination for detection data. ATR_TC_URL supplies it here.
10
+ * reporter: createTCReporter(),
9
11
  * });
10
12
  *
11
13
  * // or with explicit config:
12
14
  * const engine = new ATREngine({
13
15
  * reporter: createTCReporter({
14
- * tcUrl: 'https://tc.panguard.ai',
16
+ * tcUrl: 'https://collector.example.org',
15
17
  * apiKey: process.env.TC_API_KEY,
16
18
  * batchSize: 50,
17
19
  * flushIntervalMs: 60_000,
@@ -26,12 +28,39 @@
26
28
  */
27
29
  import { randomUUID } from 'node:crypto';
28
30
  const MAX_BUFFER = 1000;
31
+ /**
32
+ * Where detections are sent, when reporting is switched on.
33
+ *
34
+ * There is no default endpoint, deliberately. ATR is an open standard rather
35
+ * than any one vendor's client, so the package must not carry a built-in
36
+ * destination for detection data: an operator who opts into reporting decides
37
+ * who receives it, and there is no address to "forget" to change. Reporting is
38
+ * opt-in twice over — the CLI sends nothing unless --report-to-cloud is passed,
39
+ * and that flag now fails loudly instead of quietly choosing a recipient.
40
+ *
41
+ * Resolution order: explicit argument, then the ATR_TC_URL environment
42
+ * variable. If neither is set, this throws.
43
+ */
44
+ export class NoTcEndpointError extends Error {
45
+ constructor() {
46
+ super('Threat Cloud reporting was requested but no endpoint was given. ' +
47
+ 'Set one with --tc-url <url> or the ATR_TC_URL environment variable. ' +
48
+ 'ATR ships no default endpoint: you choose who receives your detections.');
49
+ this.name = 'NoTcEndpointError';
50
+ }
51
+ }
52
+ export function resolveTcUrl(explicit) {
53
+ const raw = explicit ?? process.env.ATR_TC_URL;
54
+ if (!raw || !raw.trim())
55
+ throw new NoTcEndpointError();
56
+ return raw.trim().replace(/\/+$/, '');
57
+ }
29
58
  /**
30
59
  * Create an ATRReporter that buffers detection events and POSTs them
31
60
  * to ATR Threat Cloud in batches. Each reporter instance = one sensor endpoint.
32
61
  */
33
62
  export function createTCReporter(config) {
34
- const tcUrl = (config?.tcUrl ?? 'https://tc.panguard.ai').replace(/\/+$/, '');
63
+ const tcUrl = resolveTcUrl(config?.tcUrl);
35
64
  const apiKey = config?.apiKey ?? process.env.TC_API_KEY ?? '';
36
65
  const batchSize = config?.batchSize ?? 50;
37
66
  const flushIntervalMs = config?.flushIntervalMs ?? 60_000;
@@ -77,6 +106,10 @@ export function createTCReporter(config) {
77
106
  method: 'POST',
78
107
  headers: {
79
108
  'Content-Type': 'application/json',
109
+ 'X-ATR-Client-Id': clientId,
110
+ // Legacy alias. The header was named after one collector before this
111
+ // package stopped shipping a default endpoint; existing collectors
112
+ // still key off it, so both go out until they read X-ATR-Client-Id.
80
113
  'X-Panguard-Client-Id': clientId,
81
114
  ...(apiKey ? { 'Authorization': `Bearer ${apiKey}` } : {}),
82
115
  },
@@ -1 +1 @@
1
- {"version":3,"file":"tc-reporter.js","sourceRoot":"","sources":["../src/tc-reporter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tc-reporter.js","sourceRoot":"","sources":["../src/tc-reporter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,105 @@
1
+ import type { AgentEvent, ATRRule } from "./types.js";
2
+ /**
3
+ * The tool name a tool event carries when its test case names no tool.
4
+ *
5
+ * A host's tool call reaches the engine through src/hook-handler.ts, which
6
+ * fills tool_name from the host's payload. An empty string did not stand in for
7
+ * that: src/engine.ts resolveField reads a field only when it is truthy, and on
8
+ * a tool_call event it then falls back to event.content, so a tool_name
9
+ * condition read the case's payload as if it were the tool's name. A name no
10
+ * rule is written for fills the field, as the hook does, and keeps the case's
11
+ * text out of it. A case whose rule keys on the tool names the tool. (The MCP
12
+ * scan tool, src/mcp-tools/scan.ts, builds an event of the type its caller
13
+ * names and sets no tool_name, so the fallback still applies there.)
14
+ */
15
+ export declare const UNNAMED_TOOL = "atr-test-tool";
16
+ /**
17
+ * Which fields buildEventFromTestCase fills.
18
+ *
19
+ * wide every alias a rule might read the payload from, whatever the event
20
+ * type: the input is also offered as user_input and as tool_args, and
21
+ * content as agent_message. The default: atr test, the case-sensitivity
22
+ * gate and scripts/validate-rule-testcases.ts run a case on it.
23
+ * runtime what this repository's producers put on an event of the type:
24
+ * content; each field the case names, taken as given (whether a
25
+ * producer fills it is not checked), user_input counting as the input
26
+ * it is an alias of; user_input on an llm_input event; and on a tool
27
+ * event, the tool_name and tool_args src/hook-handler.ts fills (the
28
+ * case's own, or UNNAMED_TOOL and the input). It approximates the
29
+ * hook, whose PostToolUse content is the JSON of the tool's input, with
30
+ * the tool's output read only from tool_input.output or .response:
31
+ * here a case's tool_response is the content, as the engine reads a
32
+ * tool_response event. The MCP scan tool (src/mcp-tools/scan.ts) copies
33
+ * its content into user_input, agent_output and tool_response on any
34
+ * type; that is not modelled.
35
+ */
36
+ export type TestCaseFields = 'wide' | 'runtime';
37
+ export interface TestCaseEventOptions {
38
+ readonly fields?: TestCaseFields;
39
+ /** Build an event of this type instead of the one the rule's agent_source names. */
40
+ readonly type?: AgentEvent['type'];
41
+ }
42
+ /**
43
+ * Build the AgentEvent a declared test case describes.
44
+ *
45
+ * Extracted from src/cli.ts so scripts/validate-rule-testcases.ts can use the
46
+ * identical routing without importing the CLI (whose module body runs main()).
47
+ *
48
+ * WHY IT HAS TO BE SHARED. The validator used to extract text with its own
49
+ * chain — `tool_response ?? input ?? content ?? tool_description` — which reads
50
+ * none of tool_args, tool_name, user_input or agent_output. 194 test cases
51
+ * across 27 rules name their payload under one of those, so every one resolved
52
+ * to the empty string, and the two harnesses disagreed about the same rule:
53
+ * `pga test` passed while the validator reported every true positive as NOT
54
+ * triggered.
55
+ *
56
+ * Both directions were wrong and the quiet one is worse. A true positive scored
57
+ * empty looks like a broken rule and invites someone to "fix" a rule that
58
+ * detects fine. A true NEGATIVE scored empty cannot trigger, so it passes — a
59
+ * rule's declared non-detections confirmed by a harness that never read them.
60
+ *
61
+ * One builder, two callers. A second copy drifts the moment either is edited.
62
+ */
63
+ export declare function buildEventFromTestCase(tc: Record<string, unknown>, rule: ATRRule, options?: TestCaseEventOptions): AgentEvent;
64
+ /**
65
+ * The rule as `atr test` puts it in the engine: status experimental, so a draft
66
+ * or deprecated rule is not skipped. Its agent_source.type stays as declared:
67
+ * the engine maps an extended type itself (RUNTIME_SOURCE_TYPE in
68
+ * src/engine.ts), and atr test reports a rule of a type the engine withholds
69
+ * (WITHHELD_SOURCE_TYPES) as unevaluable rather than running its cases.
70
+ */
71
+ export declare function asTestedRule(rule: ATRRule): ATRRule;
72
+ /** The slice of ATREngine a test case is run on. */
73
+ export interface TestCaseEngine {
74
+ evaluate(event: AgentEvent): readonly {
75
+ readonly rule: {
76
+ readonly id: string;
77
+ };
78
+ }[];
79
+ scanSkill(text: string): readonly {
80
+ readonly rule: {
81
+ readonly id: string;
82
+ };
83
+ }[];
84
+ }
85
+ /**
86
+ * `atr test`'s verdict on one case: the wide event the case describes through
87
+ * evaluate(), or the case's text through scanSkill(). The engine holds the rule;
88
+ * the rule passed here routes the event.
89
+ */
90
+ export declare function caseMatches(engine: TestCaseEngine, rule: ATRRule, tc: Record<string, unknown>): boolean;
91
+ /**
92
+ * Whether a case matches an event shaped the way this repository's producers
93
+ * shape one: for every event type, the runtime field set (a tool event as the
94
+ * hook builds it, any other with the content, each with the fields the case
95
+ * names), or the case's text as a skill document, user_input included as the
96
+ * input's alias. A true positive that passes caseMatches and not this matches
97
+ * only through a value the wide event copies into a field. Not modelled: the
98
+ * MCP scan tool's copy of its content into user_input, agent_output and
99
+ * tool_response on any type, and an events file src/cli/scan-handler.ts passes
100
+ * on as written.
101
+ */
102
+ export declare function caseMatchesAtRuntime(engine: TestCaseEngine, rule: ATRRule, tc: Record<string, unknown>): boolean;
103
+ /** The payload a report shows for a case: the first it declares, an object as JSON. */
104
+ export declare function caseLabel(tc: Record<string, unknown>): string;
105
+ //# sourceMappingURL=testcase-event.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testcase-event.d.ts","sourceRoot":"","sources":["../src/testcase-event.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAY,MAAM,YAAY,CAAC;AAEhE;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,YAAY,kBAAkB,CAAC;AAE5C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,SAAS,CAAC;AAEhD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC;IACjC,oFAAoF;IACpF,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;CACpC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,sBAAsB,CACpC,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3B,IAAI,EAAE,OAAO,EACb,OAAO,GAAE,oBAAyB,GACjC,UAAU,CA6KZ;AAuDD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAEnD;AAED,oDAAoD;AACpD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS;QAAE,QAAQ,CAAC,IAAI,EAAE;YAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,EAAE,CAAC;IACnF,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS;QAAE,QAAQ,CAAC,IAAI,EAAE;YAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,EAAE,CAAC;CAChF;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAGvG;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAMhH;AAuBD,uFAAuF;AACvF,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAI7D"}
@@ -0,0 +1,312 @@
1
+ import { RUNTIME_SOURCE_TYPE } from "./engine.js";
2
+ /**
3
+ * The tool name a tool event carries when its test case names no tool.
4
+ *
5
+ * A host's tool call reaches the engine through src/hook-handler.ts, which
6
+ * fills tool_name from the host's payload. An empty string did not stand in for
7
+ * that: src/engine.ts resolveField reads a field only when it is truthy, and on
8
+ * a tool_call event it then falls back to event.content, so a tool_name
9
+ * condition read the case's payload as if it were the tool's name. A name no
10
+ * rule is written for fills the field, as the hook does, and keeps the case's
11
+ * text out of it. A case whose rule keys on the tool names the tool. (The MCP
12
+ * scan tool, src/mcp-tools/scan.ts, builds an event of the type its caller
13
+ * names and sets no tool_name, so the fallback still applies there.)
14
+ */
15
+ export const UNNAMED_TOOL = 'atr-test-tool';
16
+ /**
17
+ * Build the AgentEvent a declared test case describes.
18
+ *
19
+ * Extracted from src/cli.ts so scripts/validate-rule-testcases.ts can use the
20
+ * identical routing without importing the CLI (whose module body runs main()).
21
+ *
22
+ * WHY IT HAS TO BE SHARED. The validator used to extract text with its own
23
+ * chain — `tool_response ?? input ?? content ?? tool_description` — which reads
24
+ * none of tool_args, tool_name, user_input or agent_output. 194 test cases
25
+ * across 27 rules name their payload under one of those, so every one resolved
26
+ * to the empty string, and the two harnesses disagreed about the same rule:
27
+ * `pga test` passed while the validator reported every true positive as NOT
28
+ * triggered.
29
+ *
30
+ * Both directions were wrong and the quiet one is worse. A true positive scored
31
+ * empty looks like a broken rule and invites someone to "fix" a rule that
32
+ * detects fine. A true NEGATIVE scored empty cannot trigger, so it passes — a
33
+ * rule's declared non-detections confirmed by a harness that never read them.
34
+ *
35
+ * One builder, two callers. A second copy drifts the moment either is edited.
36
+ */
37
+ export function buildEventFromTestCase(tc, rule, options = {}) {
38
+ // Stringify any object values
39
+ const str = (v) => {
40
+ if (v === undefined || v === null)
41
+ return '';
42
+ if (typeof v === 'string')
43
+ return v;
44
+ return JSON.stringify(v);
45
+ };
46
+ // Extract fields, handling multiple test case formats:
47
+ // Object-style: input: { tool_name: "...", tool_args: "...", response: "..." }
48
+ // Flat-style: input: "...", tool_response: "...", tool_name: "..."
49
+ // Tool-call-style: tool_call: { name: "...", args: "..." }
50
+ // Accept `user_input:` as a top-level alias for `input:` — several tool_call
51
+ // rules write their natural-language TPs as `- user_input: "..."`, which the
52
+ // harness previously ignored (it only read `input`), building an EMPTY event so
53
+ // the rule's own documented attack tested as not_triggered (a false failure that
54
+ // left the rule looking broken while it detects fine in production).
55
+ const rawInput = tc['input'] ?? tc['user_input'];
56
+ let input = '';
57
+ let toolName = str(tc['tool_name']);
58
+ let toolArgs = str(tc['tool_args']);
59
+ let toolResponse = str(tc['tool_response']);
60
+ const agentOutput = str(tc['agent_output']);
61
+ // A live engine field (engine.ts resolveField, case 'agent_message') that the
62
+ // canonical corpus shape populates, but which no rule keys on yet. Routed
63
+ // here so the first rule that does is not greeted by a harness that silently
64
+ // hands it an empty event.
65
+ const agentMessage = str(tc['agent_message']);
66
+ const toolDescription = str(tc['tool_description']);
67
+ const rawContent = str(tc['content']);
68
+ // Handle tool_call: { name, args } format (used by tool_call rules like ATR-2026-00098)
69
+ const rawToolCall = tc['tool_call'];
70
+ if (rawToolCall !== null && rawToolCall !== undefined && typeof rawToolCall === 'object' && !Array.isArray(rawToolCall)) {
71
+ const tcObj = rawToolCall;
72
+ if (tcObj['name'] && !toolName)
73
+ toolName = str(tcObj['name']);
74
+ if (tcObj['args'] && !toolArgs)
75
+ toolArgs = str(tcObj['args']);
76
+ }
77
+ if (rawInput !== null && rawInput !== undefined && typeof rawInput === 'object' && !Array.isArray(rawInput)) {
78
+ const inputObj = rawInput;
79
+ if (inputObj['tool_name'] && !toolName)
80
+ toolName = str(inputObj['tool_name']);
81
+ if (inputObj['tool_args'] && !toolArgs)
82
+ toolArgs = str(inputObj['tool_args']);
83
+ // Handle 'response' as alias for 'tool_response' (used in ATR-065 etc.)
84
+ if (inputObj['response'] && !toolResponse)
85
+ toolResponse = str(inputObj['response']);
86
+ if (inputObj['tool_response'] && !toolResponse)
87
+ toolResponse = str(inputObj['tool_response']);
88
+ // For object inputs, use tool_args as the primary string input.
89
+ // If no tool_args, only use JSON-stringified input as fallback when there's
90
+ // no other meaningful field (tool_response/response) extracted.
91
+ if (toolArgs) {
92
+ input = toolArgs;
93
+ }
94
+ else if (!toolResponse) {
95
+ input = str(rawInput);
96
+ }
97
+ }
98
+ else {
99
+ input = str(rawInput);
100
+ }
101
+ // Infer event type from rule's agent_source and test case structure
102
+ const sourceType = rule.agent_source?.type ?? 'llm_io';
103
+ const SOURCE_TO_EVENT = {
104
+ llm_io: 'llm_input',
105
+ tool_call: 'tool_call',
106
+ mcp_exchange: 'tool_response',
107
+ agent_behavior: 'agent_behavior',
108
+ multi_agent_comm: 'multi_agent_message',
109
+ };
110
+ // An extended type (context_window, skill_lifecycle, ...) is built as an event
111
+ // of the base type the engine admits it on (RUNTIME_SOURCE_TYPE).
112
+ const baseSourceType = Object.hasOwn(RUNTIME_SOURCE_TYPE, sourceType)
113
+ ? RUNTIME_SOURCE_TYPE[sourceType]
114
+ : sourceType;
115
+ const type = options.type ?? SOURCE_TO_EVENT[baseSourceType] ?? 'llm_input';
116
+ const toolEvent = type === 'tool_call' || type === 'tool_response';
117
+ // NOTE: previously, a tool_call rule with a plain-string TP was downgraded to
118
+ // an llm_input event. That mis-tested tool_call-native rules: a shell command or
119
+ // SQL string IS a tool invocation, and evaluating it as llm_input made the engine
120
+ // apply its cross-context confidence penalty, dropping the match below threshold
121
+ // so the rule's own documented attack tested as not_triggered (false failure that
122
+ // silently left broken rules in the enforce lane). We now keep the native
123
+ // tool_call type — the string flows in via `content` (below), and tool_name is
124
+ // pinned to UNNAMED_TOOL (below) so the engine's tool_name fallback never
125
+ // treats the content as a tool name. Plain-string TPs of tool_call rules
126
+ // therefore test in their real (native) context.
127
+ // Determine the primary content based on what the rule conditions check
128
+ // Problem 2 & 3: For rules that check tool_response, the tool_response
129
+ // should be the primary content when the event type resolves tool_response from content
130
+ let content;
131
+ if (toolResponse && type === 'tool_response') {
132
+ // If event type is tool_response, engine resolves field:tool_response from event.content
133
+ content = toolResponse;
134
+ }
135
+ else {
136
+ content = input || toolDescription || rawContent || toolResponse || agentOutput || agentMessage || '';
137
+ }
138
+ const fields = {};
139
+ // Populate ALL known field aliases so the engine can resolve any field name
140
+ if (input)
141
+ fields['user_input'] = input;
142
+ if (toolResponse)
143
+ fields['tool_response'] = toolResponse;
144
+ if (agentOutput)
145
+ fields['agent_output'] = agentOutput;
146
+ if (agentMessage)
147
+ fields['agent_message'] = agentMessage;
148
+ if (toolDescription)
149
+ fields['tool_description'] = toolDescription;
150
+ // A tool event always names its tool (UNNAMED_TOOL when the case does not).
151
+ // The empty string this used to set did not prevent the engine's fallback
152
+ // from reading event.content as the tool_name of a tool_call event.
153
+ fields['tool_name'] = toolName || (toolEvent ? UNNAMED_TOOL : '');
154
+ // Production ALWAYS populates tool_args: src/hook-handler.ts builds
155
+ // `tool_args: JSON.stringify(toolInput)` for BOTH the PreToolUse (tool_call)
156
+ // and the PostToolUse (tool_response) event. The engine resolves this field as
157
+ // `event.fields.tool_args ?? (event.type === 'tool_call' ? event.content :
158
+ // undefined)` (src/engine.ts resolveField), so a test case that supplies only
159
+ // a plain `input:` string leaves tool_args unresolvable on every non-tool_call
160
+ // event and EVERY `field: tool_args` condition silently evaluates to false.
161
+ // The rule then reports not_triggered on its own documented attack while
162
+ // detecting it correctly in production — a harness defect that reads exactly
163
+ // like a broken rule and invites weakening a rule that is right. 40 rules
164
+ // declare `field: tool_args`.
165
+ // This is the test-case-runner twin of the measurement-shape defect that
166
+ // scripts/lib/corpus-event.ts fixed for the FP gate: a true positive must be
167
+ // exercised on the same shape the benign corpus is charged against.
168
+ // Deliberately narrower than that harness's wide shape: only the INPUT string
169
+ // is offered as tool_args. A `tool_response:` test case asserts what a tool
170
+ // RETURNED, which is not an argument, so pouring it into tool_args would let a
171
+ // tool_args layer pass a TP for the wrong reason.
172
+ const toolArgsValue = toolArgs || input;
173
+ if (toolArgsValue)
174
+ fields['tool_args'] = toolArgsValue;
175
+ // For content-based rules, set content and agent_message fields. A case that
176
+ // names its own agent_message keeps it: copying the content over it ran such a
177
+ // case on its input there.
178
+ fields['content'] = content;
179
+ fields['agent_message'] = agentMessage || content;
180
+ // v1.1 trace-method rules evaluate over a span DAG (OpenInference), not text.
181
+ // When the rule declares method: trace and the test input is a JSON trace
182
+ // ({"spans":[...]}), parse it into event.trace so the engine's trace
183
+ // evaluator can run. Without this, trace rules can never satisfy their own
184
+ // declared true_positives: the harness would otherwise feed the raw JSON as
185
+ // text to the pattern fallback, whose regex expects a pre-computed synthetic
186
+ // verdict field that is absent from a raw trace.
187
+ let trace;
188
+ if (rule.detection?.method === 'trace') {
189
+ let parsed = rawInput && typeof rawInput === 'object' && !Array.isArray(rawInput) ? rawInput : undefined;
190
+ if (parsed === undefined) {
191
+ try {
192
+ parsed = JSON.parse(input);
193
+ }
194
+ catch {
195
+ parsed = undefined; // input is not a JSON trace; leave trace unset
196
+ }
197
+ }
198
+ if (parsed && typeof parsed === 'object' && Array.isArray(parsed.spans)) {
199
+ trace = parsed;
200
+ }
201
+ }
202
+ return {
203
+ type,
204
+ timestamp: new Date().toISOString(),
205
+ content,
206
+ fields: options.fields === 'runtime'
207
+ ? runtimeFields({ type, toolEvent, content, input, toolName, toolArgs, toolResponse, agentOutput, agentMessage, toolDescription })
208
+ : fields,
209
+ sessionId: 'test-session',
210
+ agentId: 'test-agent',
211
+ ...(trace ? { trace } : {}),
212
+ };
213
+ }
214
+ /**
215
+ * The "runtime" field set (TestCaseFields): content; each field the case names,
216
+ * with the value it names; the input as user_input on an llm_input event, and on
217
+ * no other, since `user_input:` in a case is the input's alias; and for a tool
218
+ * event, a tool name and tool arguments, which src/hook-handler.ts fills on
219
+ * PreToolUse and PostToolUse alike (the case's own, or UNNAMED_TOOL and the input).
220
+ */
221
+ function runtimeFields(v) {
222
+ const entries = [
223
+ ['content', v.content],
224
+ ['user_input', v.type === 'llm_input' ? v.input : ''],
225
+ ['tool_response', v.toolResponse],
226
+ ['agent_output', v.agentOutput],
227
+ ['agent_message', v.agentMessage],
228
+ ['tool_description', v.toolDescription],
229
+ ['tool_name', v.toolName || (v.toolEvent ? UNNAMED_TOOL : '')],
230
+ ['tool_args', v.toolArgs || (v.toolEvent ? v.input : '')],
231
+ ];
232
+ return Object.fromEntries(entries.filter(([, value]) => value !== ''));
233
+ }
234
+ /**
235
+ * Every type an AgentEvent can have. The engine's source filter decides which of
236
+ * them a rule runs on: an llm_io rule also runs on tool_response events, an
237
+ * mcp_exchange rule on tool_call events, and every rule on an mcp_exchange event
238
+ * (src/cli/scan-handler.ts builds those), whose type maps to no source. An
239
+ * extended agent_source type runs where its base type does (RUNTIME_SOURCE_TYPE
240
+ * in src/engine.ts), and one the engine withholds (WITHHELD_SOURCE_TYPES) on an
241
+ * mcp_exchange event alone.
242
+ */
243
+ const EVENT_TYPES = [
244
+ 'llm_input',
245
+ 'llm_output',
246
+ 'tool_call',
247
+ 'tool_response',
248
+ 'agent_behavior',
249
+ 'multi_agent_message',
250
+ 'mcp_exchange',
251
+ ];
252
+ /**
253
+ * The rule as `atr test` puts it in the engine: status experimental, so a draft
254
+ * or deprecated rule is not skipped. Its agent_source.type stays as declared:
255
+ * the engine maps an extended type itself (RUNTIME_SOURCE_TYPE in
256
+ * src/engine.ts), and atr test reports a rule of a type the engine withholds
257
+ * (WITHHELD_SOURCE_TYPES) as unevaluable rather than running its cases.
258
+ */
259
+ export function asTestedRule(rule) {
260
+ return { ...rule, status: 'experimental' };
261
+ }
262
+ /**
263
+ * `atr test`'s verdict on one case: the wide event the case describes through
264
+ * evaluate(), or the case's text through scanSkill(). The engine holds the rule;
265
+ * the rule passed here routes the event.
266
+ */
267
+ export function caseMatches(engine, rule, tc) {
268
+ const document = String(tc['input'] ?? tc['tool_response'] ?? tc['agent_output'] ?? '');
269
+ return firesOn(engine, rule, buildEventFromTestCase(tc, rule)) || skillMatches(engine, rule, document);
270
+ }
271
+ /**
272
+ * Whether a case matches an event shaped the way this repository's producers
273
+ * shape one: for every event type, the runtime field set (a tool event as the
274
+ * hook builds it, any other with the content, each with the fields the case
275
+ * names), or the case's text as a skill document, user_input included as the
276
+ * input's alias. A true positive that passes caseMatches and not this matches
277
+ * only through a value the wide event copies into a field. Not modelled: the
278
+ * MCP scan tool's copy of its content into user_input, agent_output and
279
+ * tool_response on any type, and an events file src/cli/scan-handler.ts passes
280
+ * on as written.
281
+ */
282
+ export function caseMatchesAtRuntime(engine, rule, tc) {
283
+ const document = String(tc['input'] ?? tc['user_input'] ?? tc['tool_response'] ?? tc['agent_output'] ?? '');
284
+ return (EVENT_TYPES.some((type) => firesOn(engine, rule, buildEventFromTestCase(tc, rule, { fields: 'runtime', type }))) ||
285
+ skillMatches(engine, rule, document));
286
+ }
287
+ function firesOn(engine, rule, event) {
288
+ return engine.evaluate(event).some((m) => m.rule.id === rule.id);
289
+ }
290
+ function skillMatches(engine, rule, document) {
291
+ return document !== '' && engine.scanSkill(document).some((m) => m.rule.id === rule.id);
292
+ }
293
+ /** The fields a report names a case by, in the order it looks for one. */
294
+ const LABEL_FIELDS = [
295
+ 'input',
296
+ 'user_input',
297
+ 'tool_args',
298
+ 'tool_response',
299
+ 'agent_output',
300
+ 'tool_description',
301
+ 'agent_message',
302
+ 'content',
303
+ 'tool_call',
304
+ ];
305
+ /** The payload a report shows for a case: the first it declares, an object as JSON. */
306
+ export function caseLabel(tc) {
307
+ const value = LABEL_FIELDS.map((key) => tc[key]).find((v) => v !== undefined && v !== null && v !== '');
308
+ if (value === undefined)
309
+ return '';
310
+ return typeof value === 'string' ? value : JSON.stringify(value);
311
+ }
312
+ //# sourceMappingURL=testcase-event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testcase-event.js","sourceRoot":"","sources":["../src/testcase-event.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tier0-invariant.d.ts","sourceRoot":"","sources":["../src/tier0-invariant.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAwB,MAAM,YAAY,CAAC;AA6B7E,0EAA0E;AAC1E,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,OAAO,CAAC;CAC5C;AAED,MAAM,MAAM,sBAAsB,GAC9B,YAAY,GACZ,YAAY,GACZ,WAAW,GACX,eAAe,GACf,qBAAqB,GACrB,eAAe,CAAC;AAEpB,2CAA2C;AAC3C,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,aAAa,EAAE,sBAAsB,CAAC;IAC/C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3C;AAMD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqC;gBAEnD,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,aAAa,EAAE;IAY3E;;;OAGG;IACH,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,kBAAkB,EAAE;IAsGvD,6DAA6D;IAC7D,cAAc,CAAC,SAAS,EAAE,kBAAkB,GAAG,QAAQ;IAgCvD,2CAA2C;IAC3C,OAAO,CAAC,cAAc;CAKvB"}
1
+ {"version":3,"file":"tier0-invariant.d.ts","sourceRoot":"","sources":["../src/tier0-invariant.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAwB,MAAM,YAAY,CAAC;AA6B7E,0EAA0E;AAC1E,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,OAAO,CAAC;CAC5C;AAED,MAAM,MAAM,sBAAsB,GAC9B,YAAY,GACZ,YAAY,GACZ,WAAW,GACX,eAAe,GACf,qBAAqB,GACrB,eAAe,CAAC;AAEpB,2CAA2C;AAC3C,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,aAAa,EAAE,sBAAsB,CAAC;IAC/C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3C;AAMD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqC;gBAEnD,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,aAAa,EAAE;IAY3E;;;OAGG;IACH,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,kBAAkB,EAAE;IAsGvD,6DAA6D;IAC7D,cAAc,CAAC,SAAS,EAAE,kBAAkB,GAAG,QAAQ;IAiCvD,2CAA2C;IAC3C,OAAO,CAAC,cAAc;CAKvB"}
@@ -172,6 +172,7 @@ export class InvariantChecker {
172
172
  confidence: 1.0,
173
173
  timestamp: new Date().toISOString(),
174
174
  scan_context: 'native',
175
+ decidedBy: 'invariant',
175
176
  };
176
177
  }
177
178
  /** Resolve skill ID from event metadata */
@@ -1 +1 @@
1
- {"version":3,"file":"tier0-invariant.js","sourceRoot":"","sources":["../src/tier0-invariant.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tier0-invariant.js","sourceRoot":"","sources":["../src/tier0-invariant.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tier1-blacklist.d.ts","sourceRoot":"","sources":["../src/tier1-blacklist.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAW,WAAW,EAAE,MAAM,YAAY,CAAC;AAMjE,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;CAChC;AAED,MAAM,WAAW,iBAAiB;IAChC,+DAA+D;IAC/D,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAAC;IACpD,wCAAwC;IACxC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,2BAA2B;IAC3B,IAAI,IAAI,MAAM,CAAC;CAChB;AAMD,qBAAa,iBAAkB,YAAW,iBAAiB;IACzD,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,MAAM,CAA8B;gBAEhC,OAAO,CAAC,EAAE,SAAS,cAAc,EAAE;IAW/C,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAK7C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAI9B,IAAI,IAAI,MAAM;IAId,6CAA6C;IAC7C,WAAW,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,GAAG,iBAAiB;CAGnE;AAMD,sDAAsD;AACtD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,cAAc,GAAG,QAAQ,CA8BnE;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAAG,MAAM,GAAG,SAAS,CAYjI"}
1
+ {"version":3,"file":"tier1-blacklist.d.ts","sourceRoot":"","sources":["../src/tier1-blacklist.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAW,WAAW,EAAE,MAAM,YAAY,CAAC;AAMjE,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;CAChC;AAED,MAAM,WAAW,iBAAiB;IAChC,+DAA+D;IAC/D,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAAC;IACpD,wCAAwC;IACxC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,2BAA2B;IAC3B,IAAI,IAAI,MAAM,CAAC;CAChB;AAMD,qBAAa,iBAAkB,YAAW,iBAAiB;IACzD,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,MAAM,CAA8B;gBAEhC,OAAO,CAAC,EAAE,SAAS,cAAc,EAAE;IAW/C,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAK7C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAI9B,IAAI,IAAI,MAAM;IAId,6CAA6C;IAC7C,WAAW,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,GAAG,iBAAiB;CAGnE;AAMD,sDAAsD;AACtD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,cAAc,GAAG,QAAQ,CA+BnE;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAAG,MAAM,GAAG,SAAS,CAYjI"}
@@ -71,6 +71,7 @@ export function buildBlacklistMatch(entry) {
71
71
  confidence: 1.0,
72
72
  timestamp: new Date().toISOString(),
73
73
  scan_context: 'native',
74
+ decidedBy: 'blacklist',
74
75
  };
75
76
  }
76
77
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"tier1-blacklist.js","sourceRoot":"","sources":["../src/tier1-blacklist.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tier1-blacklist.js","sourceRoot":"","sources":["../src/tier1-blacklist.ts"],"names":[],"mappings":"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"}