@panguard-ai/atr 1.5.0 → 1.5.5

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 (245) hide show
  1. package/dist/action-executor.d.ts +44 -0
  2. package/dist/action-executor.d.ts.map +1 -0
  3. package/dist/action-executor.js +130 -0
  4. package/dist/action-executor.js.map +1 -0
  5. package/dist/adapters/default-adapter.d.ts +24 -0
  6. package/dist/adapters/default-adapter.d.ts.map +1 -0
  7. package/dist/adapters/default-adapter.js +51 -0
  8. package/dist/adapters/default-adapter.js.map +1 -0
  9. package/dist/adapters/stdio-adapter.d.ts +30 -0
  10. package/dist/adapters/stdio-adapter.d.ts.map +1 -0
  11. package/dist/adapters/stdio-adapter.js +128 -0
  12. package/dist/adapters/stdio-adapter.js.map +1 -0
  13. package/dist/badge.d.ts +42 -0
  14. package/dist/badge.d.ts.map +1 -0
  15. package/dist/badge.js +163 -0
  16. package/dist/badge.js.map +1 -0
  17. package/dist/capability-extractor.d.ts +35 -0
  18. package/dist/capability-extractor.d.ts.map +1 -0
  19. package/dist/capability-extractor.js +91 -0
  20. package/dist/capability-extractor.js.map +1 -0
  21. package/dist/cli/scan-handler.d.ts +21 -0
  22. package/dist/cli/scan-handler.d.ts.map +1 -0
  23. package/dist/cli/scan-handler.js +276 -0
  24. package/dist/cli/scan-handler.js.map +1 -0
  25. package/dist/cli/tc-pipeline.d.ts +18 -0
  26. package/dist/cli/tc-pipeline.d.ts.map +1 -0
  27. package/dist/cli/tc-pipeline.js +295 -0
  28. package/dist/cli/tc-pipeline.js.map +1 -0
  29. package/dist/cli.d.ts +12 -0
  30. package/dist/cli.d.ts.map +1 -0
  31. package/dist/cli.js +894 -0
  32. package/dist/cli.js.map +1 -0
  33. package/dist/content-hash.d.ts +7 -0
  34. package/dist/content-hash.d.ts.map +1 -0
  35. package/dist/content-hash.js +10 -0
  36. package/dist/content-hash.js.map +1 -0
  37. package/dist/converters/elastic.d.ts +36 -0
  38. package/dist/converters/elastic.d.ts.map +1 -0
  39. package/dist/converters/elastic.js +125 -0
  40. package/dist/converters/elastic.js.map +1 -0
  41. package/dist/converters/generic-regex.d.ts +37 -0
  42. package/dist/converters/generic-regex.d.ts.map +1 -0
  43. package/dist/converters/generic-regex.js +59 -0
  44. package/dist/converters/generic-regex.js.map +1 -0
  45. package/dist/converters/index.d.ts +32 -0
  46. package/dist/converters/index.d.ts.map +1 -0
  47. package/dist/converters/index.js +38 -0
  48. package/dist/converters/index.js.map +1 -0
  49. package/dist/converters/sarif.d.ts +18 -0
  50. package/dist/converters/sarif.d.ts.map +1 -0
  51. package/dist/converters/sarif.js +142 -0
  52. package/dist/converters/sarif.js.map +1 -0
  53. package/dist/converters/splunk.d.ts +19 -0
  54. package/dist/converters/splunk.d.ts.map +1 -0
  55. package/dist/converters/splunk.js +148 -0
  56. package/dist/converters/splunk.js.map +1 -0
  57. package/dist/coverage-analyzer.d.ts +43 -0
  58. package/dist/coverage-analyzer.d.ts.map +1 -0
  59. package/dist/coverage-analyzer.js +329 -0
  60. package/dist/coverage-analyzer.js.map +1 -0
  61. package/dist/embedding/build-corpus.d.ts +15 -0
  62. package/dist/embedding/build-corpus.d.ts.map +1 -0
  63. package/dist/embedding/build-corpus.js +105 -0
  64. package/dist/embedding/build-corpus.js.map +1 -0
  65. package/dist/embedding/model-loader.d.ts +41 -0
  66. package/dist/embedding/model-loader.d.ts.map +1 -0
  67. package/dist/embedding/model-loader.js +90 -0
  68. package/dist/embedding/model-loader.js.map +1 -0
  69. package/dist/embedding/vector-store.d.ts +41 -0
  70. package/dist/embedding/vector-store.d.ts.map +1 -0
  71. package/dist/embedding/vector-store.js +70 -0
  72. package/dist/embedding/vector-store.js.map +1 -0
  73. package/dist/engine.d.ts +222 -0
  74. package/dist/engine.d.ts.map +1 -0
  75. package/dist/engine.js +1185 -0
  76. package/dist/engine.js.map +1 -0
  77. package/dist/eval/corpus.d.ts +42 -0
  78. package/dist/eval/corpus.d.ts.map +1 -0
  79. package/dist/eval/corpus.js +427 -0
  80. package/dist/eval/corpus.js.map +1 -0
  81. package/dist/eval/eval-harness.d.ts +44 -0
  82. package/dist/eval/eval-harness.d.ts.map +1 -0
  83. package/dist/eval/eval-harness.js +296 -0
  84. package/dist/eval/eval-harness.js.map +1 -0
  85. package/dist/eval/index.d.ts +13 -0
  86. package/dist/eval/index.d.ts.map +1 -0
  87. package/dist/eval/index.js +9 -0
  88. package/dist/eval/index.js.map +1 -0
  89. package/dist/eval/metrics.d.ts +74 -0
  90. package/dist/eval/metrics.d.ts.map +1 -0
  91. package/dist/eval/metrics.js +108 -0
  92. package/dist/eval/metrics.js.map +1 -0
  93. package/dist/eval/pint-corpus.d.ts +34 -0
  94. package/dist/eval/pint-corpus.d.ts.map +1 -0
  95. package/dist/eval/pint-corpus.js +113 -0
  96. package/dist/eval/pint-corpus.js.map +1 -0
  97. package/dist/eval/rule-corpus.d.ts +9 -0
  98. package/dist/eval/rule-corpus.d.ts.map +1 -0
  99. package/dist/eval/rule-corpus.js +4780 -0
  100. package/dist/eval/rule-corpus.js.map +1 -0
  101. package/dist/eval/rule-metrics.d.ts +34 -0
  102. package/dist/eval/rule-metrics.d.ts.map +1 -0
  103. package/dist/eval/rule-metrics.js +92 -0
  104. package/dist/eval/rule-metrics.js.map +1 -0
  105. package/dist/eval/run-eval.d.ts +7 -0
  106. package/dist/eval/run-eval.d.ts.map +1 -0
  107. package/dist/eval/run-eval.js +11 -0
  108. package/dist/eval/run-eval.js.map +1 -0
  109. package/dist/eval/run-pint-benchmark.d.ts +18 -0
  110. package/dist/eval/run-pint-benchmark.d.ts.map +1 -0
  111. package/dist/eval/run-pint-benchmark.js +159 -0
  112. package/dist/eval/run-pint-benchmark.js.map +1 -0
  113. package/dist/eval/skill-benchmark.d.ts +66 -0
  114. package/dist/eval/skill-benchmark.d.ts.map +1 -0
  115. package/dist/eval/skill-benchmark.js +194 -0
  116. package/dist/eval/skill-benchmark.js.map +1 -0
  117. package/dist/flywheel.d.ts +54 -0
  118. package/dist/flywheel.d.ts.map +1 -0
  119. package/dist/flywheel.js +121 -0
  120. package/dist/flywheel.js.map +1 -0
  121. package/dist/hook-handler.d.ts +61 -0
  122. package/dist/hook-handler.d.ts.map +1 -0
  123. package/dist/hook-handler.js +178 -0
  124. package/dist/hook-handler.js.map +1 -0
  125. package/dist/layer-integration.d.ts +55 -0
  126. package/dist/layer-integration.d.ts.map +1 -0
  127. package/dist/layer-integration.js +187 -0
  128. package/dist/layer-integration.js.map +1 -0
  129. package/dist/loader.d.ts +18 -0
  130. package/dist/loader.d.ts.map +1 -0
  131. package/dist/loader.js +129 -0
  132. package/dist/loader.js.map +1 -0
  133. package/dist/mcp-server.d.ts +13 -0
  134. package/dist/mcp-server.d.ts.map +1 -0
  135. package/dist/mcp-server.js +246 -0
  136. package/dist/mcp-server.js.map +1 -0
  137. package/dist/mcp-tools/coverage-gaps.d.ts +13 -0
  138. package/dist/mcp-tools/coverage-gaps.d.ts.map +1 -0
  139. package/dist/mcp-tools/coverage-gaps.js +55 -0
  140. package/dist/mcp-tools/coverage-gaps.js.map +1 -0
  141. package/dist/mcp-tools/list-rules.d.ts +17 -0
  142. package/dist/mcp-tools/list-rules.d.ts.map +1 -0
  143. package/dist/mcp-tools/list-rules.js +45 -0
  144. package/dist/mcp-tools/list-rules.js.map +1 -0
  145. package/dist/mcp-tools/scan-skill.d.ts +17 -0
  146. package/dist/mcp-tools/scan-skill.d.ts.map +1 -0
  147. package/dist/mcp-tools/scan-skill.js +65 -0
  148. package/dist/mcp-tools/scan-skill.js.map +1 -0
  149. package/dist/mcp-tools/scan.d.ts +24 -0
  150. package/dist/mcp-tools/scan.d.ts.map +1 -0
  151. package/dist/mcp-tools/scan.js +94 -0
  152. package/dist/mcp-tools/scan.js.map +1 -0
  153. package/dist/mcp-tools/submit-proposal.d.ts +12 -0
  154. package/dist/mcp-tools/submit-proposal.d.ts.map +1 -0
  155. package/dist/mcp-tools/submit-proposal.js +103 -0
  156. package/dist/mcp-tools/submit-proposal.js.map +1 -0
  157. package/dist/mcp-tools/threat-summary.d.ts +12 -0
  158. package/dist/mcp-tools/threat-summary.d.ts.map +1 -0
  159. package/dist/mcp-tools/threat-summary.js +74 -0
  160. package/dist/mcp-tools/threat-summary.js.map +1 -0
  161. package/dist/mcp-tools/validate.d.ts +15 -0
  162. package/dist/mcp-tools/validate.d.ts.map +1 -0
  163. package/dist/mcp-tools/validate.js +51 -0
  164. package/dist/mcp-tools/validate.js.map +1 -0
  165. package/dist/modules/embedding.d.ts +71 -0
  166. package/dist/modules/embedding.d.ts.map +1 -0
  167. package/dist/modules/embedding.js +141 -0
  168. package/dist/modules/embedding.js.map +1 -0
  169. package/dist/modules/index.d.ts +144 -0
  170. package/dist/modules/index.d.ts.map +1 -0
  171. package/dist/modules/index.js +82 -0
  172. package/dist/modules/index.js.map +1 -0
  173. package/dist/modules/semantic.d.ts +106 -0
  174. package/dist/modules/semantic.d.ts.map +1 -0
  175. package/dist/modules/semantic.js +359 -0
  176. package/dist/modules/semantic.js.map +1 -0
  177. package/dist/modules/session.d.ts +70 -0
  178. package/dist/modules/session.d.ts.map +1 -0
  179. package/dist/modules/session.js +128 -0
  180. package/dist/modules/session.js.map +1 -0
  181. package/dist/quality/adapters/atr.d.ts +65 -0
  182. package/dist/quality/adapters/atr.d.ts.map +1 -0
  183. package/dist/quality/adapters/atr.js +154 -0
  184. package/dist/quality/adapters/atr.js.map +1 -0
  185. package/dist/quality/adapters/index.d.ts +10 -0
  186. package/dist/quality/adapters/index.d.ts.map +1 -0
  187. package/dist/quality/adapters/index.js +10 -0
  188. package/dist/quality/adapters/index.js.map +1 -0
  189. package/dist/quality/compute-confidence.d.ts +45 -0
  190. package/dist/quality/compute-confidence.d.ts.map +1 -0
  191. package/dist/quality/compute-confidence.js +133 -0
  192. package/dist/quality/compute-confidence.js.map +1 -0
  193. package/dist/quality/index.d.ts +36 -0
  194. package/dist/quality/index.d.ts.map +1 -0
  195. package/dist/quality/index.js +39 -0
  196. package/dist/quality/index.js.map +1 -0
  197. package/dist/quality/quality-gate.d.ts +86 -0
  198. package/dist/quality/quality-gate.d.ts.map +1 -0
  199. package/dist/quality/quality-gate.js +187 -0
  200. package/dist/quality/quality-gate.js.map +1 -0
  201. package/dist/quality/types.d.ts +129 -0
  202. package/dist/quality/types.d.ts.map +1 -0
  203. package/dist/quality/types.js +10 -0
  204. package/dist/quality/types.js.map +1 -0
  205. package/dist/quality/validate-maturity.d.ts +51 -0
  206. package/dist/quality/validate-maturity.d.ts.map +1 -0
  207. package/dist/quality/validate-maturity.js +134 -0
  208. package/dist/quality/validate-maturity.js.map +1 -0
  209. package/dist/rule-scaffolder.d.ts +53 -0
  210. package/dist/rule-scaffolder.d.ts.map +1 -0
  211. package/dist/rule-scaffolder.js +301 -0
  212. package/dist/rule-scaffolder.js.map +1 -0
  213. package/dist/session-tracker.d.ts +58 -0
  214. package/dist/session-tracker.d.ts.map +1 -0
  215. package/dist/session-tracker.js +176 -0
  216. package/dist/session-tracker.js.map +1 -0
  217. package/dist/shadow-evaluator.d.ts +48 -0
  218. package/dist/shadow-evaluator.d.ts.map +1 -0
  219. package/dist/shadow-evaluator.js +129 -0
  220. package/dist/shadow-evaluator.js.map +1 -0
  221. package/dist/skill-fingerprint.d.ts +85 -0
  222. package/dist/skill-fingerprint.d.ts.map +1 -0
  223. package/dist/skill-fingerprint.js +284 -0
  224. package/dist/skill-fingerprint.js.map +1 -0
  225. package/dist/tc-reporter.d.ts +50 -0
  226. package/dist/tc-reporter.d.ts.map +1 -0
  227. package/dist/tc-reporter.js +164 -0
  228. package/dist/tc-reporter.js.map +1 -0
  229. package/dist/tier0-invariant.d.ts +49 -0
  230. package/dist/tier0-invariant.d.ts.map +1 -0
  231. package/dist/tier0-invariant.js +185 -0
  232. package/dist/tier0-invariant.js.map +1 -0
  233. package/dist/tier1-blacklist.d.ts +48 -0
  234. package/dist/tier1-blacklist.d.ts.map +1 -0
  235. package/dist/tier1-blacklist.js +92 -0
  236. package/dist/tier1-blacklist.js.map +1 -0
  237. package/dist/types.d.ts +232 -0
  238. package/dist/types.d.ts.map +1 -0
  239. package/dist/types.js +6 -0
  240. package/dist/types.js.map +1 -0
  241. package/dist/verdict.d.ts +26 -0
  242. package/dist/verdict.d.ts.map +1 -0
  243. package/dist/verdict.js +127 -0
  244. package/dist/verdict.js.map +1 -0
  245. package/package.json +9 -10
@@ -0,0 +1,127 @@
1
+ /**
2
+ * Verdict computation from ATR rule matches.
3
+ *
4
+ * Pure functions that determine the outcome (allow/ask/deny)
5
+ * based on severity, confidence, and auto-response thresholds.
6
+ *
7
+ * @module agent-threat-rules/verdict
8
+ */
9
+ /** Severity rank from most severe (0) to least severe (4) */
10
+ export const SEVERITY_RANK = {
11
+ critical: 0,
12
+ high: 1,
13
+ medium: 2,
14
+ low: 3,
15
+ informational: 4,
16
+ };
17
+ /**
18
+ * Check whether auto-response is enabled for a matched rule.
19
+ * The auto_response_threshold field on ATRResponse indicates the
20
+ * minimum confidence level at which the action should be taken
21
+ * automatically (without human approval).
22
+ */
23
+ export function isAutoResponseEnabled(match) {
24
+ const threshold = match.rule.response.auto_response_threshold;
25
+ if (!threshold)
26
+ return false;
27
+ const thresholdMap = {
28
+ high: 0.9,
29
+ medium: 0.7,
30
+ low: 0.5,
31
+ };
32
+ const requiredConfidence = thresholdMap[threshold];
33
+ if (requiredConfidence === undefined)
34
+ return false;
35
+ return match.confidence >= requiredConfidence;
36
+ }
37
+ /**
38
+ * Determine the verdict outcome based on severity and confidence.
39
+ *
40
+ * Decision matrix:
41
+ * - critical severity -> deny
42
+ * - high severity, conf >= 0.8 -> deny
43
+ * - high severity, conf < 0.8 -> ask
44
+ * - medium severity, conf >= 0.6 -> ask
45
+ * - everything else -> allow
46
+ */
47
+ function determineOutcome(severity, confidence) {
48
+ if (severity === 'critical') {
49
+ return 'deny';
50
+ }
51
+ if (severity === 'high') {
52
+ return confidence >= 0.8 ? 'deny' : 'ask';
53
+ }
54
+ if (severity === 'medium' && confidence >= 0.6) {
55
+ return 'ask';
56
+ }
57
+ return 'allow';
58
+ }
59
+ /**
60
+ * Collect unique actions from all matched rules, preserving order
61
+ * of first appearance.
62
+ */
63
+ function collectUniqueActions(matches) {
64
+ const seen = new Set();
65
+ const actions = [];
66
+ for (const match of matches) {
67
+ for (const action of match.rule.response.actions) {
68
+ if (!seen.has(action)) {
69
+ seen.add(action);
70
+ actions.push(action);
71
+ }
72
+ }
73
+ }
74
+ return Object.freeze(actions);
75
+ }
76
+ /**
77
+ * Build a human-readable reason string from the highest severity match.
78
+ */
79
+ function buildReason(highestMatch, outcome, matchCount) {
80
+ if (!highestMatch) {
81
+ return 'No rules matched.';
82
+ }
83
+ const { rule, confidence } = highestMatch;
84
+ const pct = Math.round(confidence * 100);
85
+ return (`${outcome.toUpperCase()}: ${rule.title} ` +
86
+ `[${rule.severity}/${pct}% confidence] ` +
87
+ `(${matchCount} rule${matchCount === 1 ? '' : 's'} matched)`);
88
+ }
89
+ /**
90
+ * Compute a verdict from an array of ATR matches.
91
+ *
92
+ * This is a pure function -- no side effects, no mutation.
93
+ * Returns a frozen ATRVerdict object.
94
+ */
95
+ export function computeVerdict(matches) {
96
+ if (matches.length === 0) {
97
+ return Object.freeze({
98
+ outcome: 'allow',
99
+ reason: 'No rules matched.',
100
+ matchCount: 0,
101
+ highestSeverity: null,
102
+ highestConfidence: 0,
103
+ actions: Object.freeze([]),
104
+ matches: Object.freeze([]),
105
+ timestamp: new Date().toISOString(),
106
+ });
107
+ }
108
+ // Matches are already sorted by the engine (severity desc, confidence desc).
109
+ // The first match has the highest severity.
110
+ const highestMatch = matches[0];
111
+ const highestSeverity = highestMatch.rule.severity;
112
+ const highestConfidence = highestMatch.confidence;
113
+ const outcome = determineOutcome(highestSeverity, highestConfidence);
114
+ const actions = collectUniqueActions(matches);
115
+ const reason = buildReason(highestMatch, outcome, matches.length);
116
+ return Object.freeze({
117
+ outcome,
118
+ reason,
119
+ matchCount: matches.length,
120
+ highestSeverity,
121
+ highestConfidence,
122
+ actions,
123
+ matches: Object.freeze([...matches]),
124
+ timestamp: new Date().toISOString(),
125
+ });
126
+ }
127
+ //# sourceMappingURL=verdict.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verdict.js","sourceRoot":"","sources":["../src/verdict.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@panguard-ai/atr",
3
- "version": "1.5.0",
3
+ "version": "1.5.5",
4
4
  "type": "module",
5
5
  "description": "Thin wrapper around agent-threat-rules — re-exports all detection logic for monorepo consumers.",
6
6
  "main": "./dist/index.js",
@@ -24,18 +24,17 @@
24
24
  "access": "public"
25
25
  },
26
26
  "license": "MIT",
27
- "scripts": {
28
- "build": "tsc --build",
29
- "clean": "rm -rf dist tsconfig.tsbuildinfo",
30
- "typecheck": "tsc --noEmit",
31
- "test": "echo 'Tests run in agent-threat-rules upstream'",
32
- "prepublishOnly": "npm run build"
33
- },
34
27
  "dependencies": {
35
- "agent-threat-rules": "^1.2.0"
28
+ "agent-threat-rules": "^2.1.1"
36
29
  },
37
30
  "devDependencies": {
38
31
  "@types/node": "^22.14.0",
39
32
  "typescript": "~5.7.3"
33
+ },
34
+ "scripts": {
35
+ "build": "tsc --build",
36
+ "clean": "rm -rf dist tsconfig.tsbuildinfo",
37
+ "typecheck": "tsc --noEmit",
38
+ "test": "echo 'Tests run in agent-threat-rules upstream'"
40
39
  }
41
- }
40
+ }