agent-threat-rules 4.2.3 → 4.3.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 (159) hide show
  1. package/CHANGELOG.md +277 -0
  2. package/README.md +2 -0
  3. package/dist/cli/scan-handler.d.ts.map +1 -1
  4. package/dist/cli/scan-handler.js +164 -1
  5. package/dist/cli/scan-handler.js.map +1 -1
  6. package/dist/cli.d.ts.map +1 -1
  7. package/dist/cli.js +123 -3
  8. package/dist/cli.js.map +1 -1
  9. package/dist/converters/numbat.d.ts +73 -0
  10. package/dist/converters/numbat.d.ts.map +1 -0
  11. package/dist/converters/numbat.js +281 -0
  12. package/dist/converters/numbat.js.map +1 -0
  13. package/dist/converters/quarry.d.ts +122 -0
  14. package/dist/converters/quarry.d.ts.map +1 -0
  15. package/dist/converters/quarry.js +431 -0
  16. package/dist/converters/quarry.js.map +1 -0
  17. package/dist/converters/sarif.d.ts +7 -0
  18. package/dist/converters/sarif.d.ts.map +1 -1
  19. package/dist/converters/sarif.js +24 -0
  20. package/dist/converters/sarif.js.map +1 -1
  21. package/dist/engine.d.ts.map +1 -1
  22. package/dist/engine.js +7 -1
  23. package/dist/engine.js.map +1 -1
  24. package/dist/re2.d.ts +22 -0
  25. package/dist/re2.d.ts.map +1 -0
  26. package/dist/re2.js +213 -0
  27. package/dist/re2.js.map +1 -0
  28. package/package.json +1 -1
  29. package/rules/agent-manipulation/ATR-2026-00030-cross-agent-attack.yaml +1 -1
  30. package/rules/agent-manipulation/ATR-2026-00301-tap-tree-of-attacks-jailbreak.yaml +3 -3
  31. package/rules/agent-manipulation/ATR-2026-00352-trainergpt-fix-my-ai-harmful-output-extraction.yaml +1 -1
  32. package/rules/agent-manipulation/ATR-2026-00432-superagi-output-handler-eval-rce.yaml +3 -3
  33. package/rules/agent-manipulation/ATR-2026-00440-semantic-kernel-vector-store-eval-rce.yaml +3 -3
  34. package/rules/context-exfiltration/ATR-2026-00020-system-prompt-leak.yaml +1 -1
  35. package/rules/context-exfiltration/ATR-2026-00471-garak-sysprompt-extraction-mixedunassigned.yaml +1 -1
  36. package/rules/context-exfiltration/ATR-2026-00501-data-exfiltration-via-markdown-image-and-link-url-injection.yaml +1 -1
  37. package/rules/context-exfiltration/ATR-2026-00504-tool-and-function-capability-enumeration.yaml +1 -1
  38. package/rules/context-exfiltration/ATR-2026-00505-system-prompt-extraction-instruction-dump-request.yaml +1 -1
  39. package/rules/context-exfiltration/ATR-2026-00514-system-prompt-extraction.yaml +1 -1
  40. package/rules/context-exfiltration/ATR-2026-00516-output-xss-via-llm.yaml +1 -1
  41. package/rules/context-exfiltration/ATR-2026-01462-sysprompt-override-pseudo-admin.yaml +2 -2
  42. package/rules/context-exfiltration/ATR-2026-01770-semantic-pii-credential-extraction.yaml +1 -1
  43. package/rules/context-exfiltration/ATR-2026-01862-llmail-email-tool-exfil-confirmation.yaml +2 -2
  44. package/rules/context-exfiltration/ATR-2026-01863-llmail-post-summary-exfil-directive.yaml +2 -2
  45. package/rules/context-exfiltration/ATR-2026-01864-llmail-obfuscated-exfil-address.yaml +2 -2
  46. package/rules/context-exfiltration/ATR-2026-01924-system-instruction-extraction-reformat.yaml +1 -1
  47. package/rules/context-exfiltration/ATR-2026-02017-secret-key-exfiltration-request.yaml +1 -1
  48. package/rules/context-exfiltration/ATR-2026-02026-oblique-sysprompt-extraction-transform.yaml +1 -1
  49. package/rules/context-exfiltration/ATR-2026-02847-policy-justified-exfil-to-email.yaml +1 -1
  50. package/rules/context-exfiltration/ATR-2026-02850-fake-documentation-forward-request.yaml +1 -1
  51. package/rules/context-exfiltration/ATR-2026-02855-cross-email-exfil-relay.yaml +1 -1
  52. package/rules/data-poisoning/ATR-2026-00070-data-poisoning.yaml +2 -2
  53. package/rules/excessive-autonomy/ATR-2026-00050-runaway-agent-loop.yaml +2 -2
  54. package/rules/excessive-autonomy/ATR-2026-00052-cascading-failure.yaml +1 -1
  55. package/rules/excessive-autonomy/ATR-2026-00491-garak-agent-breaker-markdown-just-raw-json.yaml +1 -1
  56. package/rules/excessive-autonomy/ATR-2026-00500-ssrf-via-agent-url-fetch-instruction.yaml +1 -1
  57. package/rules/model-abuse/ATR-2026-00502-training-data-extraction-via-divergent-repetition-attack.yaml +1 -1
  58. package/rules/model-abuse/ATR-2026-00517-model-extraction-distillation.yaml +1 -1
  59. package/rules/prompt-injection/ATR-2026-00001-direct-prompt-injection.yaml +1 -1
  60. package/rules/prompt-injection/ATR-2026-00002-indirect-prompt-injection.yaml +2 -2
  61. package/rules/prompt-injection/ATR-2026-00003-jailbreak-attempt.yaml +1 -1
  62. package/rules/prompt-injection/ATR-2026-00140-indirect-reference-reversal.yaml +1 -1
  63. package/rules/prompt-injection/ATR-2026-00211-system-prompt-override.yaml +1 -1
  64. package/rules/prompt-injection/ATR-2026-00257-cipher-transposition-jailbreak.yaml +1 -1
  65. package/rules/prompt-injection/ATR-2026-00312-unicode-variant-selector-ascii-smuggling.yaml +1 -1
  66. package/rules/prompt-injection/ATR-2026-00452-direct-pwned-payload-injection.yaml +1 -1
  67. package/rules/prompt-injection/ATR-2026-00453-secret-key-reveal-demand.yaml +1 -1
  68. package/rules/prompt-injection/ATR-2026-00454-backslash-per-character-encoding.yaml +1 -1
  69. package/rules/prompt-injection/ATR-2026-00455-no-period-output-override.yaml +1 -1
  70. package/rules/prompt-injection/ATR-2026-00456-conditional-empty-input-injection.yaml +1 -1
  71. package/rules/prompt-injection/ATR-2026-00457-garak-dan-to-every-prompt.yaml +1 -1
  72. package/rules/prompt-injection/ATR-2026-00458-garak-dra-step-by-step.yaml +1 -1
  73. package/rules/prompt-injection/ATR-2026-00459-garak-dan-an-ai-language.yaml +1 -1
  74. package/rules/prompt-injection/ATR-2026-00460-garak-dan-no-matter-how.yaml +1 -1
  75. package/rules/prompt-injection/ATR-2026-00461-garak-goodside-mixedunassigned.yaml +1 -1
  76. package/rules/prompt-injection/ATR-2026-00462-garak-gcg-mixedunassigned.yaml +1 -1
  77. package/rules/prompt-injection/ATR-2026-00463-garak-lmrc-mixedunassigned.yaml +1 -1
  78. package/rules/prompt-injection/ATR-2026-00464-garak-dan-i-would-like.yaml +1 -1
  79. package/rules/prompt-injection/ATR-2026-00465-garak-dan-your-prompt-here.yaml +1 -1
  80. package/rules/prompt-injection/ATR-2026-00466-garak-latentinjection-following-text-from.yaml +1 -1
  81. package/rules/prompt-injection/ATR-2026-00467-garak-dan-act-as-a.yaml +1 -1
  82. package/rules/prompt-injection/ATR-2026-00468-garak-goat-the-target-llm.yaml +1 -1
  83. package/rules/prompt-injection/ATR-2026-00469-garak-dan-at-the-end.yaml +1 -1
  84. package/rules/prompt-injection/ATR-2026-00470-garak-dan-as-an-ai.yaml +1 -1
  85. package/rules/prompt-injection/ATR-2026-00472-garak-dan-are-going-to.yaml +1 -1
  86. package/rules/prompt-injection/ATR-2026-00473-garak-lmrc-how-can-i.yaml +1 -1
  87. package/rules/prompt-injection/ATR-2026-00474-garak-dan-that-chatgpt-has.yaml +1 -1
  88. package/rules/prompt-injection/ATR-2026-00475-garak-web-injection-alert-1-script.yaml +1 -1
  89. package/rules/prompt-injection/ATR-2026-00476-garak-web-injection-javascript-alert-1.yaml +1 -1
  90. package/rules/prompt-injection/ATR-2026-00477-garak-latentinjection-translate-the-following-text.yaml +1 -1
  91. package/rules/prompt-injection/ATR-2026-00478-garak-latentinjection-abuse-contact-email.yaml +1 -1
  92. package/rules/prompt-injection/ATR-2026-00479-garak-latentinjection-mixedunassigned.yaml +1 -1
  93. package/rules/prompt-injection/ATR-2026-00480-garak-dan-the-role-of.yaml +1 -1
  94. package/rules/prompt-injection/ATR-2026-00481-garak-dan-mixedunassigned.yaml +1 -1
  95. package/rules/prompt-injection/ATR-2026-00482-garak-lmrc-what-s-an.yaml +1 -1
  96. package/rules/prompt-injection/ATR-2026-00483-garak-dan-the-user-s.yaml +1 -1
  97. package/rules/prompt-injection/ATR-2026-00484-garak-dan-and-you-will.yaml +1 -1
  98. package/rules/prompt-injection/ATR-2026-00485-garak-dan-and-does-not.yaml +1 -1
  99. package/rules/prompt-injection/ATR-2026-00486-garak-dan-t-care-about.yaml +1 -1
  100. package/rules/prompt-injection/ATR-2026-00487-garak-dan-and-nothing-else.yaml +1 -1
  101. package/rules/prompt-injection/ATR-2026-00488-garak-encoding-alert-1-script.yaml +1 -1
  102. package/rules/prompt-injection/ATR-2026-00489-garak-encoding-javascript-alert-1.yaml +1 -1
  103. package/rules/prompt-injection/ATR-2026-00490-garak-dan-in-order-to.yaml +1 -1
  104. package/rules/prompt-injection/ATR-2026-00492-garak-dan-want-you-to.yaml +1 -1
  105. package/rules/prompt-injection/ATR-2026-00493-garak-latentinjection-registrar-iana-id.yaml +1 -1
  106. package/rules/prompt-injection/ATR-2026-00495-garak-dan-insert-prompt-here.yaml +1 -1
  107. package/rules/prompt-injection/ATR-2026-00496-garak-dan-no-matter-what.yaml +1 -1
  108. package/rules/prompt-injection/ATR-2026-00497-garak-encoding-mixedunassigned.yaml +1 -1
  109. package/rules/prompt-injection/ATR-2026-00498-garak-web-injection-mixedunassigned.yaml +1 -1
  110. package/rules/prompt-injection/ATR-2026-00499-garak-dan-from-now-on.yaml +1 -1
  111. package/rules/prompt-injection/ATR-2026-00503-fake-error-state-takeover-unrestricted-replacement-bot.yaml +1 -1
  112. package/rules/prompt-injection/ATR-2026-00506-nevermind-override-goal-hijacking-in-user-input-promptinject.yaml +1 -1
  113. package/rules/prompt-injection/ATR-2026-00507-screaming-stop-goal-hijacking-in-user-input-promptinject.yaml +1 -1
  114. package/rules/prompt-injection/ATR-2026-00508-escape-delimiter-wrapped-goal-hijacking-in-user-input-prompt.yaml +1 -1
  115. package/rules/prompt-injection/ATR-2026-00509-prompt-leaking-via-ignore-previous-instructions-in-user-inpu.yaml +1 -1
  116. package/rules/prompt-injection/ATR-2026-00510-delayed-tool-invocation-injection.yaml +1 -1
  117. package/rules/prompt-injection/ATR-2026-00511-mcp-web-context-poisoning.yaml +1 -1
  118. package/rules/prompt-injection/ATR-2026-00512-rules-file-backdoor-injection.yaml +1 -1
  119. package/rules/prompt-injection/ATR-2026-00515-hidden-text-prompt-injection.yaml +1 -1
  120. package/rules/prompt-injection/ATR-2026-00518-ignore-previous-and-following-instructions-output-command-promptinject.yaml +1 -1
  121. package/rules/prompt-injection/ATR-2026-00519-tautology-logic-noise-injection-promptbench.yaml +1 -1
  122. package/rules/prompt-injection/ATR-2026-00520-nlp-task-random-token-suffix-injection-promptbench.yaml +1 -1
  123. package/rules/prompt-injection/ATR-2026-01860-llmail-chat-template-boundary-spoof.yaml +2 -2
  124. package/rules/prompt-injection/ATR-2026-01861-llmail-pseudo-xml-role-injection.yaml +2 -2
  125. package/rules/prompt-injection/ATR-2026-01865-llmail-fake-email-boundary-marker.yaml +2 -2
  126. package/rules/prompt-injection/ATR-2026-01920-access-grant-coercion.yaml +1 -1
  127. package/rules/prompt-injection/ATR-2026-01921-access-denial-inversion.yaml +1 -1
  128. package/rules/prompt-injection/ATR-2026-01922-authorization-state-spoofing.yaml +1 -1
  129. package/rules/prompt-injection/ATR-2026-01923-forged-input-boundary-markers.yaml +2 -2
  130. package/rules/prompt-injection/ATR-2026-01925-encoded-payload-decoding-coercion.yaml +2 -2
  131. package/rules/prompt-injection/ATR-2026-01926-cross-lingual-authorization-laundering.yaml +1 -1
  132. package/rules/prompt-injection/ATR-2026-02001-ignore-below-instructions-mirror-of-ignore-previ.yaml +1 -1
  133. package/rules/prompt-injection/ATR-2026-02002-instruction-set-probe-or-supplant-direct-meta-qu.yaml +1 -1
  134. package/rules/prompt-injection/ATR-2026-02003-task-pivot-override-abandon-the-cover-task-trans.yaml +1 -1
  135. package/rules/prompt-injection/ATR-2026-02004-regional-indicator-flag-emoji-alphabet-letter-sp.yaml +1 -1
  136. package/rules/prompt-injection/ATR-2026-02005-actor-never-breaks-character-roleplay-dan-style-.yaml +1 -1
  137. package/rules/prompt-injection/ATR-2026-02006-fuzzy-cross-lingual-i-have-been-pwned-near-miss-.yaml +1 -1
  138. package/rules/prompt-injection/ATR-2026-02007-bare-key-elicitation-token.yaml +1 -1
  139. package/rules/prompt-injection/ATR-2026-02008-translation-chain-output-laundering-state-secret.yaml +1 -1
  140. package/rules/prompt-injection/ATR-2026-02009-bare-key-elicitation-trailing-colon.yaml +1 -1
  141. package/rules/prompt-injection/ATR-2026-02010-emoji-only-payload.yaml +1 -1
  142. package/rules/prompt-injection/ATR-2026-02011-malformed-grammar-pwned-success-claim.yaml +1 -1
  143. package/rules/prompt-injection/ATR-2026-02012-movie-title-generator-instruction-wrapper-for-pw.yaml +1 -1
  144. package/rules/prompt-injection/ATR-2026-02013-delimiter-fence-ignore-instructions-override.yaml +1 -1
  145. package/rules/prompt-injection/ATR-2026-02014-spliced-target-string-letters-of-a-filtered-cana.yaml +1 -1
  146. package/rules/prompt-injection/ATR-2026-02015-dense-emoji-only-payload-flood.yaml +1 -1
  147. package/rules/prompt-injection/ATR-2026-02016-reversed-payload-string.yaml +1 -1
  148. package/rules/prompt-injection/ATR-2026-02018-regional-indicator-flag-emoji-letter-spelling-sp.yaml +1 -1
  149. package/rules/prompt-injection/ATR-2026-02019-python-interpreter-role-assignment-exec-framing.yaml +1 -1
  150. package/rules/prompt-injection/ATR-2026-02020-obfuscated-token-reconstruction-via-character-su.yaml +1 -1
  151. package/rules/prompt-injection/ATR-2026-02851-fake-user-turn-send-email-instruction.yaml +1 -1
  152. package/rules/skill-compromise/ATR-2026-00060-skill-impersonation.yaml +1 -1
  153. package/rules/skill-compromise/ATR-2026-00121-skill-dangerous-script.yaml +5 -5
  154. package/rules/skill-compromise/ATR-2026-00225-c2-communication.yaml +3 -3
  155. package/rules/tool-poisoning/ATR-2026-00277-echo-template-command-injection.yaml +3 -3
  156. package/rules/tool-poisoning/ATR-2026-00494-garak-exploitation-mixedunassigned.yaml +1 -1
  157. package/rules/tool-poisoning/ATR-2026-00513-package-hallucination-exploitation.yaml +1 -1
  158. package/rules/tool-poisoning/ATR-2026-00521-shell-command-injection-agent-tool-context.yaml +1 -1
  159. package/rules/tool-poisoning/ATR-2026-00522-sql-injection-natural-language-agent-interface.yaml +1 -1
package/CHANGELOG.md CHANGED
@@ -4,6 +4,283 @@ All notable changes to ATR will be documented in this file.
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [4.3.0] - 2026-11-06
8
+
9
+ A minor release that adds two rule exporters, `atr convert numbat` and
10
+ `atr convert quarry`, and narrows seven rules that matched ordinary code,
11
+ documentation or report fields. A rule passed to the engine now replaces a
12
+ rule with the same id from the rules directory that `loadRules()` reads (the
13
+ bundled rules by default). The rule format, identifier scheme and the
14
+ Match output format (SPEC §7) are unchanged. The pyatr and pydantic-ai-atr
15
+ entries below ship in their own Python packages, not in this npm release.
16
+
17
+ Default behaviour that changes:
18
+
19
+ - Three `stable` rules, which run in the enforce lane, match less. These
20
+ are the only rule changes an integration that blocks on the enforce lane
21
+ will see. ATR-2026-01462 no longer blocks a bare `Priority Level:
22
+ CRITICAL`; ATR-2026-00440 no longer matches `getattr` on names that only
23
+ start with `type` or `object`, such as `types.Scale` or `objects_by_id`;
24
+ and ATR-2026-00432's `exec()` condition needs a quoted argument, so a list
25
+ of blocked calls in a skill's own text no longer matches.
26
+ - Four `test` rules, which run in the alert and hunt lanes, stop matching
27
+ the benign shapes described under Fixed: ATR-2026-00121, -00225, -00277
28
+ and -00301.
29
+ - `new ATREngine({ rules })` followed by `loadRules()` keeps the passed rule
30
+ when the rules directory has one with the same id. Before, both were kept
31
+ and the directory copy's patterns ran under the passed rule's name, so a
32
+ tightened rule you passed still matched like the bundled one.
33
+ - SARIF skip warnings name the relative artifact URI instead of the
34
+ scanner's absolute path.
35
+
36
+ ### Added
37
+
38
+ - **`atr convert quarry` exports rules for [Project Quarry](https://github.com/cisco-ai-defense/project-quarry).**
39
+ Each rule becomes a Quarry `.rule` file named by its ATR id, with the
40
+ rule's title, severity, category, maturity and version as metadata, and
41
+ its patterns declared `regex nocase`. `user_input`, `agent_output`,
42
+ `tool_args`, `tool_response`, `tool_name` and `tool_description` map onto
43
+ Quarry's user and assistant messages, tool calls, tool responses and tool
44
+ definitions, with `user_input` and `agent_output` also read on tool
45
+ responses as the engine does. An `all` rule's conditions must hold on one
46
+ item of a shared surface, as they hold on one event in the engine. The
47
+ export writes `quarry.yaml`, one test file per rule with its true
48
+ positives and negatives as OpenAI-shaped conversations, and
49
+ `check_atr_tests.py`, which runs them through Quarry's scanner. Dropped
50
+ conditions, skipped rules and true positives a rule no longer catches are
51
+ listed as for numbat. The default `--lane enforce` exports stable rules
52
+ only.
53
+ - **`atr convert numbat` exports rules for [numbat](https://github.com/perplexityai/numbat).**
54
+ Each rule becomes a numbat operator rule (`atr.atr-yyyy-nnnnn`,
55
+ monitor-only) and a companion `_tests.yaml` built from the rule's own true
56
+ positives and negatives, so `numbat rules check` runs ATR's tests through
57
+ numbat's RE2 matcher. `user_input`, `agent_output`, `tool_args`,
58
+ `tool_response` and `tool_name` map onto numbat's prompt, assistant, tool
59
+ input and tool result fields, with `user_input` and `agent_output` also read
60
+ on tool results as the engine does; `content` maps onto whichever of those
61
+ the event carries. The default `--lane enforce` exports stable rules only.
62
+ Conditions RE2 cannot express (lookaround, backreferences, unpaired
63
+ surrogate escapes and the like) are dropped, an `all` rule that would lose
64
+ one is skipped, and the export lists every true positive a rule no longer
65
+ catches. numbat matches raw text, without the engine's Unicode
66
+ normalization. The RE2 check is in `src/re2.ts`, tested against the CI
67
+ audit's `scanPattern` on every rule.
68
+ - **`pyatr.moderation`, an OpenAI-compatible moderation endpoint.**
69
+ `moderation_result(input)` returns the `/v1/moderations` response shape,
70
+ and `python -m pyatr.moderation` runs a standard-library reference server
71
+ on `127.0.0.1`. Every match is listed in `atr_matches`; `flagged` is true
72
+ only for a match at or above `block_severity` (default `high`) in `lane`
73
+ (default `enforce`, stable rules), so gateways that block on `flagged`
74
+ block on stable rules only unless they opt into another lane.
75
+ - **pyatr detection lanes.** `ATREngine(lane=...)` takes `"enforce"`
76
+ (maturity `stable` only), `"alert"` (`stable` and `test`) or `"hunt"` (every
77
+ rule, the default, so existing callers see no change), with the same mapping
78
+ as the TypeScript engine: a missing or unknown maturity counts as
79
+ `experimental`, a `deprecated` rule never fires, and a `confirm: embedding`
80
+ rule fires in the hunt lane only, since pyatr has no embedding check.
81
+ `ATRRule` and `ATRMatch` now carry `maturity`, and `lane_allows(match, lane)`
82
+ applies the same gate to a single match, so an integration can scan every
83
+ rule, record every match, and block on the enforce lane only. Until now the Python engine had no
84
+ way to tell the two apart.
85
+
86
+ ### Fixed
87
+
88
+ - **ATR-2026-00121 no longer matches identifiers that contain `extract` and
89
+ `pass`.** Its password-protected-archive condition matched
90
+ `extract.{0,20}pass\s*[:=]` inside any word, so a counter named
91
+ `extractedFromBroadPass = 0` in the vercel-optimize skill's
92
+ `scripts/deep-dive.mjs` was reported as malicious code. `extract` and
93
+ `pass` must now be whole words; `(extract using pass: \`openclaw\`)` still
94
+ matches. The rule is maturity `test`, so the enforce lane is unchanged.
95
+ `rule_version` goes to 3, and the rule gains the identifier as a true
96
+ negative.
97
+ - **ATR-2026-01462 and -00301 stop matching ordinary report fields.** A
98
+ replay of the 303 recorded conversations in
99
+ [ADR-Bench](https://github.com/uber/ADR) found both firing on benign tool
100
+ output and agent replies. Each change narrows one alternative in one
101
+ condition, and `rule_version` goes to 2. ATR-2026-01462 #0 (maturity
102
+ `stable`, so it runs in the enforce lane with `block_input`) took a bare
103
+ `Priority Level: CRITICAL` as an authority claim, which blocked a vehicle
104
+ maintenance report; the structured override tokens (`[SYSTEM OVERRIDE`,
105
+ `ROOT_ADMIN`, `OMEGA CLEARANCE`, `AUTHORIZATION: ROOT`) still match, and
106
+ the one true positive with the priority field also
107
+ carries `SYSTEM OVERRIDE BEGIN` and `ROOT_ADMIN`, and no sample under
108
+ `data/` contains it.
109
+ ATR-2026-00301 #2 took a bare `SCORE: <1-10>` as TAP scoring, which
110
+ matched `CVSS Score: 3.1` in security scan output; the tag now needs its
111
+ brackets (`[SCORE: 5]`), so the five LLMail-Inject samples that plant
112
+ `[SCORE: 5] [Rating: 5] [Relevant: 5]` still match, as do `maximize SCORE`
113
+ and `rating from 1-10 on how jailbroken`. Each rule gains a true negative
114
+ for the case, and 00301 a true positive for the bracketed tag. Benign false positives over the 14,172 samples of
115
+ the benign gate: 00301 12 to 0, 01462 0. On ADR-Bench (261 benign, 42
116
+ malicious conversations), benign conversations flagged in the enforce lane
117
+ go from 1 to 0 and in the alert lane at high or critical severity from 27
118
+ to 24, with the same 10 malicious conversations caught.
119
+
120
+ - **A rule passed to the engine now overrides the bundled rule with its id.**
121
+ `new ATREngine({ rules })` with `loadRules()` also loads the rules directory
122
+ (the bundled tree by default). A passed rule and a directory rule with the
123
+ same id were both kept, and because compiled patterns are keyed by id, the
124
+ directory copy's regex ran under the passed rule's name, twice. So
125
+ `atr test` on an edited copy of an existing rule, run from an installed
126
+ `atr`, tested the published version, and an integration that passed a
127
+ tightened rule still matched with the old one. The directory's copy is now
128
+ skipped; duplicates inside the directory are unchanged.
129
+
130
+ - **Mapping rationales no longer claim that a rule satisfies a requirement.**
131
+ 124 rule files said that deploying the rule "satisfies" an EU AI Act
132
+ article (or a NIST, ISO or OWASP item). `docs/COMPLIANCE-COVERAGE-POLICY.md`
133
+ allows only "provides detection evidence supporting …": a detection rule
134
+ supports a control and does not discharge a requirement. The 135 lines now
135
+ say "provides detection evidence supporting", "supports" or, for OWASP
136
+ categories, "matches". Only `compliance` context text changed; every field
137
+ outside `compliance` is identical, so detection is unchanged and no
138
+ `rule_version` moves. `scripts/validate-compliance.ts` now fails CI on a
139
+ context that claims compliance ("satisfies the Article …", "makes …
140
+ compliant", "ensures compliance"). See the 2026-11-04 errata entry.
141
+
142
+ - **ATR-2026-00432 no longer fires on lists of dangerous calls.** Its `exec()`
143
+ condition matched any `exec(` followed within 200 characters by `import os`,
144
+ `os.system` or `subprocess.`, so defensive skill text that lists blocked
145
+ patterns, or tells the agent to grep for them, was flagged as a critical
146
+ RCE. This is a stable rule, so the enforce lane flagged those skills too.
147
+ The argument now has to open with a quote (`exec("import os; ...")`), which
148
+ keeps every true positive in the rule's tests and drops the lists.
149
+ `rule_version` 2.
150
+
151
+ - **A "New Rule Proposal" issue now becomes a readable draft proposal.**
152
+ `scripts/issue-to-proposal.ts` indented the example payload at the same
153
+ depth as its `example_payload:` key, so every proposal file it wrote was
154
+ invalid YAML that nothing downstream, the safety gate included, could read.
155
+ A payload containing its own `###` heading was cut at that heading, and an
156
+ optional field left empty was read as the text `_No response_`. When
157
+ required fields are empty the converter now names them, and the workflow
158
+ passes the names to its comment on the issue; before, the converter's exit
159
+ code was lost in a pipe and the job failed at a later git step with a generic
160
+ message.
161
+ - **The Pydantic AI guard now scans typed tool events and blocks on the
162
+ enforce lane only** (#772). It used `pyatr.scan()`, which evaluates text as
163
+ user input, so most rules written for `tool_args` or `tool_response` never
164
+ saw their field, and it blocked on any rule at `block_severity`, including
165
+ experimental ones. Tool calls are now `tool_call` events and results
166
+ `tool_response` events; every match is still recorded, and a match blocks
167
+ only when its rule is in `block_lane` (default `"enforce"`). Values over
168
+ `max_scan_chars` (default 10,000) are now scanned as head and tail, with
169
+ `truncated` in the audit entry, where they used to be scanned in full.
170
+ `block_severity="info"`, which was accepted and acted as `"critical"`, now
171
+ raises `ValueError`. `pydantic-ai-atr` 0.2.0 requires `pyatr>=0.4.1` and
172
+ ships with tests.
173
+ - **pyatr 0.4.0 shipped its bundled rules without `maturity` or `confirm`**,
174
+ so a `pip install pyatr` engine treated every rule as experimental and the
175
+ enforce lane matched nothing (it never blocked wrongly, it just never
176
+ blocked). The bundle now keeps both fields, and a test checks that stable
177
+ rules survive bundling.
178
+ - **SARIF skip warnings no longer expose absolute scanner paths** (#766).
179
+ Filesystem errors retain their diagnostic details but refer to the relative
180
+ artifact URI instead of repeating the CI runner's working path.
181
+
182
+ - **ATR-2026-00440, -00121, -00277 and -00225 stop matching ordinary code
183
+ and documentation.** A replay over the skills.sh all-time top 375 skills
184
+ found each of them firing on benign files. Each change is confined to one
185
+ condition, and `rule_version` goes to 2. ATR-2026-00440 #3 (maturity
186
+ `stable`, so it runs in the enforce lane) had no boundary after the getattr
187
+ root, so `getattr(types.Scale, ...)` read as getattr on the built-in
188
+ `type`; getattr on `type`, `object` and `__builtins__` still matches, and
189
+ an integration that blocks on the enforce lane no longer blocks the
190
+ prefixed names. In ATR-2026-00121 #4, `nc` and `ncat` must start a word,
191
+ and a `python -c` one-liner that imports socket or os must also run
192
+ something within 300 characters on the same line. In ATR-2026-00277 #3, a
193
+ `config`, `self`, `request`, `g` or `app` root must reach Python internals
194
+ inside the same braces; the bare recon probes such as `{{config}}` still
195
+ match, while template placeholders such as `{{g}}` and dbt's
196
+ `{{ config(...) }}` no longer do. ATR-2026-00225 #2 takes `C2`, `backdoor`,
197
+ `malware` and command-and-control as whole words within 120 characters on
198
+ the same line; most of its 80 benign false positives came from
199
+ JSON-encoded events, where `[^\n]*` ran past escaped newlines to the end of
200
+ the document. Benign false positives over the 14,172 samples of the benign
201
+ gate: 00121 6 to 4, 00225 80 to 0, 00277 6 to 0, 00440 0. Over every file
202
+ under `data/` and every rule's test cases, none of the four gains a match.
203
+
204
+ ## [4.2.4] - 2026-11-03
205
+
206
+ A patch release that makes `atr scan <dir>` scan MCP configs as well as
207
+ skills and makes the GitHub Action fail when the scan fails. It also notes
208
+ two changes to the Cisco Skill Scanner pack exporter, a repository script
209
+ the npm package does not include. The rule format, identifier scheme, rules
210
+ and the Match output format (SPEC §7) are unchanged.
211
+
212
+ Default behaviour that changes:
213
+
214
+ - `atr scan <dir>` scans every `SKILL.md` (or `skill.md`) and every MCP
215
+ config named `.mcp.json`, `mcp.json`, `mcp-config.json` or
216
+ `claude_desktop_config.json` under the directory, in one report. Before,
217
+ it scanned the `SKILL.md` files only, ignored MCP configs, and exited 1
218
+ with "No SKILL.md files found" when there were none, so a directory with
219
+ only MCP configs could not be scanned and a directory with both reported
220
+ only its skills. Its `--json` output now has `scan_type: "directory"`,
221
+ `mcp_events_scanned` and `files_skipped`, and a `kind` (`mcp` or `skill`)
222
+ on each result (one MCP event per server under a config's `mcpServers`).
223
+ `skills_scanned` no longer counts skipped files, and `--fail-on` counts
224
+ findings from configs and skills alike. The terminal report is now headed
225
+ "ATR Directory Scan Results", with separate counts for MCP events and
226
+ skills. Directories named `.git` or `node_modules` are no longer walked,
227
+ so a `SKILL.md` inside one is no longer scanned. Scanning a single file,
228
+ and `atr scan-skill <dir>`, are unchanged.
229
+ - In a directory scan, symlinks and other entries that are not regular
230
+ files, unreadable files and directories, MCP configs over 50 MB and
231
+ configs that are not JSON or have no `mcpServers` entries are skipped with
232
+ a warning instead of being read or ending the scan. `--json` counts them
233
+ in `files_skipped`, and `--sarif` lists each one in
234
+ `runs[0].invocations[0].toolExecutionNotifications`. A `SKILL.md` over
235
+ 1 MB was already skipped with a warning and still is, but it is now
236
+ counted in `files_skipped`. A directory scan exits 1 when nothing could be
237
+ scanned, and its SARIF then sets `executionSuccessful: false`.
238
+ - The GitHub Action (`action.yml`) fails the step with the scanner's exit
239
+ status and one `::error::` annotation when `atr scan` exits non-zero.
240
+ Before, a failed scan with no output was turned into an empty SARIF file
241
+ and reported as clean. A workflow that points the Action at a path with
242
+ no skill or MCP config, or where every one is skipped, now fails instead
243
+ of passing. The Action installs `agent-threat-rules@latest`, so workflows
244
+ on an earlier Action ref also get the new directory scan, but those
245
+ workflows still report a scan that exits 1 after writing SARIF as clean.
246
+
247
+ ### Fixed
248
+
249
+ - **`atr scan <dir>` scans MCP configs and skills together** (#752, by
250
+ @dc-tw). Directories are walked recursively, skipping `.git` and
251
+ `node_modules`, and both target types go into one terminal, JSON or SARIF
252
+ report. Fixes the directory part of #575.
253
+
254
+ - **The GitHub Action no longer reports a failed scan as clean** (#743, by
255
+ @dajiaohuang). The error annotation strips colour codes and encodes `%`,
256
+ CR and LF, so text from the scanned repository cannot start a workflow
257
+ command, and it also works under bash 3.2. `sarif_path` is written before
258
+ the scan, so the always-run SARIF upload step still gets it when the scan
259
+ fails. Fixes the Action part of #575.
260
+
261
+ ### Changed
262
+
263
+ - **The Cisco Skill Scanner pack exporter leaves out rules that do not hold
264
+ up on a skill's files** (#764). Skill Scanner applies each pattern to
265
+ every line of every file and has no field concept, so a rule whose regex
266
+ conditions read a field only a running agent has (`tool_name`,
267
+ `tool_args`, `tool_response`, agent output, trace fields) matched
268
+ whatever text looked like it. Only rules all of whose regex conditions
269
+ read `content`, `user_input` or `tool_description` are exported now,
270
+ which leaves out 244 of the 4.2.3 rules. `scripts/cisco-pack/benign-gate.py`
271
+ runs an exported pack inside a Skill Scanner checkout over a directory of
272
+ benign skill `.md` files given as `--corpus` (the documented run uses
273
+ `data/skill-benchmark/benign`), and `--benign-gate <json>` leaves out
274
+ every rule that fired there at any severity. `--reproduce-vendored` still
275
+ keeps the runtime-field rules and cannot be combined with
276
+ `--benign-gate`. #764 was merged before the 4.2.3 tag but is not in the
277
+ 4.2.3 notes.
278
+
279
+ - **`--max-severity` caps the severity of exported signatures** (#765).
280
+ Skill Scanner treats a skill as unsafe on any HIGH or CRITICAL finding by
281
+ default, so `--max-severity low` lets a pack report its matches without
282
+ changing that verdict. It cannot be combined with `--reproduce-vendored`.
283
+
7
284
  ## [4.2.3] - 2026-11-02
8
285
 
9
286
  A patch release with one engine fix and two fixes to the Cisco Skill Scanner
package/README.md CHANGED
@@ -160,6 +160,8 @@ atr scan . --sarif > results.sarif
160
160
  atr convert generic-regex # export rules as JSON (all patterns)
161
161
  atr convert splunk # export to Splunk SPL
162
162
  atr convert elastic # export to Elasticsearch Query DSL
163
+ atr convert numbat --output dir # numbat rule directory with companion tests (stable rules)
164
+ atr convert quarry --output dir # Project Quarry rule directory with test conversations (stable rules)
163
165
  atr stats # rule collection statistics
164
166
  atr mcp # start MCP server for IDE integration
165
167
  atr scaffold # interactive rule generator
@@ -1 +1 @@
1
- {"version":3,"file":"scan-handler.d.ts","sourceRoot":"","sources":["../../src/cli/scan-handler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAoC,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC9E,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAIxD,OAAO,EAAkB,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAoBpE,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IACtC;;;;;OAKG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC;IACzC;;;;;;OAMG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;CACtB;AAED,iFAAiF;AACjF,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,QAAQ,CA0B5D;AAED,6FAA6F;AAC7F,wBAAsB,cAAc,CAClC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC,CA+Df"}
1
+ {"version":3,"file":"scan-handler.d.ts","sourceRoot":"","sources":["../../src/cli/scan-handler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAoC,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC9E,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAIxD,OAAO,EAAkB,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAoBpE,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IACtC;;;;;OAKG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC;IACzC;;;;;;OAMG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;CACtB;AAED,iFAAiF;AACjF,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,QAAQ,CA0B5D;AAED,6FAA6F;AAC7F,wBAAsB,cAAc,CAClC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC,CAiEf"}
@@ -93,7 +93,10 @@ export async function cmdScanUnified(target, rulesDir, options) {
93
93
  const scanType = options.forceType ?? detectInputType(targetPath);
94
94
  let failHits = 0;
95
95
  try {
96
- if (scanType === 'skill') {
96
+ if (!options.forceType && statSync(targetPath).isDirectory()) {
97
+ failHits = await scanDirectory(targetPath, rulesDir, options, reporter);
98
+ }
99
+ else if (scanType === 'skill') {
97
100
  failHits = await scanSkillFiles(targetPath, rulesDir, options, reporter);
98
101
  }
99
102
  else {
@@ -115,6 +118,120 @@ export async function cmdScanUnified(target, rulesDir, options) {
115
118
  process.exitCode = 1;
116
119
  }
117
120
  }
121
+ // ── Mixed directory scan ──────────────────────────────────────
122
+ async function scanDirectory(targetPath, rulesDir, options, reporter) {
123
+ const { configs, skills, skipped: collectionSkipped } = collectDirectoryTargets(targetPath);
124
+ if (configs.length + skills.length === 0 && collectionSkipped.length === 0) {
125
+ console.error(`${RED}Error: No MCP config or SKILL.md files found in ${targetPath}${RESET}`);
126
+ process.exit(1);
127
+ }
128
+ const semantic = createSemanticJudgeFromScanOptions(options);
129
+ const engine = new ATREngine({
130
+ rulesDir,
131
+ reporter,
132
+ semanticJudge: semantic.judge,
133
+ ...(options.lane ? { lane: options.lane } : {}),
134
+ ...(options.modelDecisions ? { modelDecisions: options.modelDecisions } : {}),
135
+ });
136
+ await engine.loadRules();
137
+ const heldBack = (m) => engine.getModelDecisions() === 'advisory' && isModelDecided(m);
138
+ const minIdx = SEVERITY_ORDER.indexOf((options.severity ?? 'informational'));
139
+ const failIdx = options.failOn === undefined ? -1 : SEVERITY_ORDER.indexOf(options.failOn);
140
+ const findings = [];
141
+ let mcpEventsScanned = 0;
142
+ let skillsScanned = 0;
143
+ const skipped = [...collectionSkipped];
144
+ let totalThreats = 0;
145
+ let failHits = 0;
146
+ const recordSkip = (file, reason) => {
147
+ console.error(`${DIM}Warning: Skipping ${file}: ${reason}${RESET}`);
148
+ skipped.push({ file, reason });
149
+ };
150
+ for (const { file, reason } of collectionSkipped) {
151
+ console.error(`${DIM}Warning: Skipping ${file}: ${reason}${RESET}`);
152
+ }
153
+ const record = (kind, file, result) => {
154
+ const filtered = result.matches.filter((m) => SEVERITY_ORDER.indexOf(m.rule.severity) >= minIdx);
155
+ if (filtered.length === 0)
156
+ return;
157
+ findings.push({ kind, file, result, filtered });
158
+ totalThreats += filtered.length;
159
+ if (failIdx >= 0) {
160
+ failHits += filtered.filter((m) => !heldBack(m) && SEVERITY_ORDER.indexOf(m.rule.severity) >= failIdx).length;
161
+ }
162
+ };
163
+ for (const file of configs) {
164
+ let events = null;
165
+ try {
166
+ if (statSync(file).size > 50 * 1024 * 1024) {
167
+ recordSkip(file, 'exceeds 50MB limit');
168
+ continue;
169
+ }
170
+ events = configDocumentToEvents(JSON.parse(readFileSync(file, 'utf-8')));
171
+ }
172
+ catch (error) {
173
+ recordSkip(file, error instanceof Error ? error.message : String(error));
174
+ continue;
175
+ }
176
+ if (events === null) {
177
+ recordSkip(file, 'not an MCP config document');
178
+ continue;
179
+ }
180
+ for (const event of events) {
181
+ const result = semantic.enabled ? await engine.evaluateFullAsync(event, file) : engine.evaluateFull(event, file);
182
+ record('mcp', file, result);
183
+ mcpEventsScanned += 1;
184
+ }
185
+ }
186
+ for (const file of skills) {
187
+ let content;
188
+ try {
189
+ if (statSync(file).size > 1024 * 1024) {
190
+ recordSkip(file, 'exceeds 1MB limit');
191
+ continue;
192
+ }
193
+ content = readFileSync(file, 'utf-8');
194
+ }
195
+ catch (error) {
196
+ recordSkip(file, error instanceof Error ? error.message : String(error));
197
+ continue;
198
+ }
199
+ const result = semantic.enabled ? await engine.scanSkillFullAsync(content, file) : engine.scanSkillFull(content, file);
200
+ record('skill', file, result);
201
+ skillsScanned += 1;
202
+ }
203
+ const scanned = mcpEventsScanned + skillsScanned;
204
+ if (scanned === 0)
205
+ console.error(`${RED}Error: nothing was scanned${RESET}`);
206
+ const sarifResults = findings.map(({ result, filtered }) => ({ ...result, matches: filtered, threat_count: filtered.length }));
207
+ if (options.sarif) {
208
+ console.log(JSON.stringify(scanResultToSARIF(sarifResults, process.env['npm_package_version'] ?? '1.0.0', {
209
+ heldBack,
210
+ skippedFiles: skipped,
211
+ executionSuccessful: scanned > 0,
212
+ }), null, 2));
213
+ }
214
+ else if (options.json) {
215
+ console.log(JSON.stringify({
216
+ scan_type: 'directory', mcp_events_scanned: mcpEventsScanned, skills_scanned: skillsScanned,
217
+ files_skipped: skipped.length, threats_detected: totalThreats, rules_loaded: engine.getRuleCount(),
218
+ results: findings.map(({ kind, file, result, filtered }) => ({
219
+ kind, file, content_hash: result.content_hash,
220
+ matches: filtered.map((m) => formatMatchJson(m, heldBack(m))),
221
+ })),
222
+ }, null, 2));
223
+ }
224
+ else {
225
+ printDirectoryScan(mcpEventsScanned, skillsScanned, engine.getRuleCount(), totalThreats);
226
+ for (const { kind, file, filtered } of findings) {
227
+ console.log(` ${BOLD}${file.replace(process.cwd() + '/', '')}${RESET} ${DIM}(${kind})${RESET}`);
228
+ for (const match of filtered)
229
+ printMatch(match, heldBack(match));
230
+ console.log('');
231
+ }
232
+ }
233
+ return scanned === 0 ? 1 : failHits;
234
+ }
118
235
  // ── MCP Event Scan ─────────────────────────────────────────────
119
236
  /**
120
237
  * A `.mcp.json` is a configuration document, not an event.
@@ -395,6 +512,43 @@ function collectSkillFiles(targetPath) {
395
512
  }
396
513
  return files;
397
514
  }
515
+ const MCP_CONFIG_NAMES = new Set(['.mcp.json', 'mcp.json', 'mcp-config.json', 'claude_desktop_config.json']);
516
+ function collectDirectoryTargets(root) {
517
+ const configs = [];
518
+ const skills = [];
519
+ const skipped = [];
520
+ const walk = (dir) => {
521
+ let entries;
522
+ try {
523
+ entries = readdirSync(dir, { withFileTypes: true });
524
+ }
525
+ catch (error) {
526
+ skipped.push({ file: dir, reason: error instanceof Error ? error.message : String(error) });
527
+ return;
528
+ }
529
+ for (const entry of entries.sort((a, b) => a.name.localeCompare(b.name))) {
530
+ if (entry.name === '.git' || entry.name === 'node_modules')
531
+ continue;
532
+ const full = resolve(dir, entry.name);
533
+ if (entry.isDirectory())
534
+ walk(full);
535
+ else if (entry.name === 'SKILL.md' || entry.name === 'skill.md') {
536
+ if (entry.isFile())
537
+ skills.push(full);
538
+ else
539
+ skipped.push({ file: full, reason: 'not a regular file' });
540
+ }
541
+ else if (MCP_CONFIG_NAMES.has(entry.name)) {
542
+ if (entry.isFile())
543
+ configs.push(full);
544
+ else
545
+ skipped.push({ file: full, reason: 'not a regular file' });
546
+ }
547
+ }
548
+ };
549
+ walk(root);
550
+ return { configs, skills, skipped };
551
+ }
398
552
  function walkForSkills(dir, out) {
399
553
  for (const entry of readdirSync(dir, { withFileTypes: true })) {
400
554
  const full = resolve(dir, entry.name);
@@ -429,6 +583,15 @@ function printScanHeader(type, scanned, rulesLoaded, threats) {
429
583
  console.log(`${DIM} Open source (MIT). Star: https://github.com/Agent-Threat-Rule/agent-threat-rules${RESET}`);
430
584
  console.log('');
431
585
  }
586
+ function printDirectoryScan(mcp, skills, rules, threats) {
587
+ console.log(`\n${BOLD}ATR Directory Scan Results${RESET}`);
588
+ console.log(`${DIM}${'─'.repeat(60)}${RESET}`);
589
+ console.log(` MCP events scanned: ${mcp}`);
590
+ console.log(` Skills scanned: ${skills}`);
591
+ console.log(` Rules loaded: ${rules}`);
592
+ console.log(` Threats found: ${threats > 0 ? RED + threats + RESET : GREEN + '0' + RESET}`);
593
+ console.log(`${DIM}${'─'.repeat(60)}${RESET}\n`);
594
+ }
432
595
  function printMatch(m, heldBack) {
433
596
  const color = SEVERITY_COLORS[m.rule.severity] ?? '';
434
597
  const note = heldBack ? ` ${DIM}(decided by ${m.decidedBy}: reported, not counted toward --fail-on)${RESET}` : '';
@@ -1 +1 @@
1
- {"version":3,"file":"scan-handler.js","sourceRoot":"","sources":["../../src/cli/scan-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scan-handler.js","sourceRoot":"","sources":["../../src/cli/scan-handler.ts"],"names":[],"mappings":"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"}
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;;;;GAQG;AAmiBH,OAAO,EAAgB,sBAAsB,EAAgD,MAAM,qBAAqB,CAAC;AACzH,OAAO,EAAE,sBAAsB,EAAE,CAAC"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;;;;GAQG;AAyiBH,OAAO,EAAgB,sBAAsB,EAAgD,MAAM,qBAAqB,CAAC;AACzH,OAAO,EAAE,sBAAsB,EAAE,CAAC"}