@panguard-ai/atr 1.4.3 → 1.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/action-executor.d.ts +44 -0
- package/dist/action-executor.d.ts.map +1 -0
- package/dist/action-executor.js +130 -0
- package/dist/action-executor.js.map +1 -0
- package/dist/adapters/default-adapter.d.ts +24 -0
- package/dist/adapters/default-adapter.d.ts.map +1 -0
- package/dist/adapters/default-adapter.js +51 -0
- package/dist/adapters/default-adapter.js.map +1 -0
- package/dist/adapters/stdio-adapter.d.ts +30 -0
- package/dist/adapters/stdio-adapter.d.ts.map +1 -0
- package/dist/adapters/stdio-adapter.js +128 -0
- package/dist/adapters/stdio-adapter.js.map +1 -0
- package/dist/badge.d.ts +42 -0
- package/dist/badge.d.ts.map +1 -0
- package/dist/badge.js +163 -0
- package/dist/badge.js.map +1 -0
- package/dist/capability-extractor.d.ts +35 -0
- package/dist/capability-extractor.d.ts.map +1 -0
- package/dist/capability-extractor.js +91 -0
- package/dist/capability-extractor.js.map +1 -0
- package/dist/cli/scan-handler.d.ts +21 -0
- package/dist/cli/scan-handler.d.ts.map +1 -0
- package/dist/cli/scan-handler.js +276 -0
- package/dist/cli/scan-handler.js.map +1 -0
- package/dist/cli/tc-pipeline.d.ts +18 -0
- package/dist/cli/tc-pipeline.d.ts.map +1 -0
- package/dist/cli/tc-pipeline.js +295 -0
- package/dist/cli/tc-pipeline.js.map +1 -0
- package/dist/cli.d.ts +12 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +894 -0
- package/dist/cli.js.map +1 -0
- package/dist/content-hash.d.ts +7 -0
- package/dist/content-hash.d.ts.map +1 -0
- package/dist/content-hash.js +10 -0
- package/dist/content-hash.js.map +1 -0
- package/dist/converters/elastic.d.ts +36 -0
- package/dist/converters/elastic.d.ts.map +1 -0
- package/dist/converters/elastic.js +125 -0
- package/dist/converters/elastic.js.map +1 -0
- package/dist/converters/generic-regex.d.ts +37 -0
- package/dist/converters/generic-regex.d.ts.map +1 -0
- package/dist/converters/generic-regex.js +59 -0
- package/dist/converters/generic-regex.js.map +1 -0
- package/dist/converters/index.d.ts +32 -0
- package/dist/converters/index.d.ts.map +1 -0
- package/dist/converters/index.js +38 -0
- package/dist/converters/index.js.map +1 -0
- package/dist/converters/sarif.d.ts +18 -0
- package/dist/converters/sarif.d.ts.map +1 -0
- package/dist/converters/sarif.js +142 -0
- package/dist/converters/sarif.js.map +1 -0
- package/dist/converters/splunk.d.ts +19 -0
- package/dist/converters/splunk.d.ts.map +1 -0
- package/dist/converters/splunk.js +148 -0
- package/dist/converters/splunk.js.map +1 -0
- package/dist/coverage-analyzer.d.ts +43 -0
- package/dist/coverage-analyzer.d.ts.map +1 -0
- package/dist/coverage-analyzer.js +329 -0
- package/dist/coverage-analyzer.js.map +1 -0
- package/dist/embedding/build-corpus.d.ts +15 -0
- package/dist/embedding/build-corpus.d.ts.map +1 -0
- package/dist/embedding/build-corpus.js +105 -0
- package/dist/embedding/build-corpus.js.map +1 -0
- package/dist/embedding/model-loader.d.ts +41 -0
- package/dist/embedding/model-loader.d.ts.map +1 -0
- package/dist/embedding/model-loader.js +90 -0
- package/dist/embedding/model-loader.js.map +1 -0
- package/dist/embedding/vector-store.d.ts +41 -0
- package/dist/embedding/vector-store.d.ts.map +1 -0
- package/dist/embedding/vector-store.js +70 -0
- package/dist/embedding/vector-store.js.map +1 -0
- package/dist/engine.d.ts +222 -0
- package/dist/engine.d.ts.map +1 -0
- package/dist/engine.js +1185 -0
- package/dist/engine.js.map +1 -0
- package/dist/eval/corpus.d.ts +42 -0
- package/dist/eval/corpus.d.ts.map +1 -0
- package/dist/eval/corpus.js +427 -0
- package/dist/eval/corpus.js.map +1 -0
- package/dist/eval/eval-harness.d.ts +44 -0
- package/dist/eval/eval-harness.d.ts.map +1 -0
- package/dist/eval/eval-harness.js +296 -0
- package/dist/eval/eval-harness.js.map +1 -0
- package/dist/eval/index.d.ts +13 -0
- package/dist/eval/index.d.ts.map +1 -0
- package/dist/eval/index.js +9 -0
- package/dist/eval/index.js.map +1 -0
- package/dist/eval/metrics.d.ts +74 -0
- package/dist/eval/metrics.d.ts.map +1 -0
- package/dist/eval/metrics.js +108 -0
- package/dist/eval/metrics.js.map +1 -0
- package/dist/eval/pint-corpus.d.ts +34 -0
- package/dist/eval/pint-corpus.d.ts.map +1 -0
- package/dist/eval/pint-corpus.js +113 -0
- package/dist/eval/pint-corpus.js.map +1 -0
- package/dist/eval/rule-corpus.d.ts +9 -0
- package/dist/eval/rule-corpus.d.ts.map +1 -0
- package/dist/eval/rule-corpus.js +4780 -0
- package/dist/eval/rule-corpus.js.map +1 -0
- package/dist/eval/rule-metrics.d.ts +34 -0
- package/dist/eval/rule-metrics.d.ts.map +1 -0
- package/dist/eval/rule-metrics.js +92 -0
- package/dist/eval/rule-metrics.js.map +1 -0
- package/dist/eval/run-eval.d.ts +7 -0
- package/dist/eval/run-eval.d.ts.map +1 -0
- package/dist/eval/run-eval.js +11 -0
- package/dist/eval/run-eval.js.map +1 -0
- package/dist/eval/run-pint-benchmark.d.ts +18 -0
- package/dist/eval/run-pint-benchmark.d.ts.map +1 -0
- package/dist/eval/run-pint-benchmark.js +159 -0
- package/dist/eval/run-pint-benchmark.js.map +1 -0
- package/dist/eval/skill-benchmark.d.ts +66 -0
- package/dist/eval/skill-benchmark.d.ts.map +1 -0
- package/dist/eval/skill-benchmark.js +194 -0
- package/dist/eval/skill-benchmark.js.map +1 -0
- package/dist/flywheel.d.ts +54 -0
- package/dist/flywheel.d.ts.map +1 -0
- package/dist/flywheel.js +121 -0
- package/dist/flywheel.js.map +1 -0
- package/dist/hook-handler.d.ts +61 -0
- package/dist/hook-handler.d.ts.map +1 -0
- package/dist/hook-handler.js +178 -0
- package/dist/hook-handler.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/{src/index.ts → dist/index.js} +1 -0
- package/dist/index.js.map +1 -0
- package/dist/layer-integration.d.ts +55 -0
- package/dist/layer-integration.d.ts.map +1 -0
- package/dist/layer-integration.js +187 -0
- package/dist/layer-integration.js.map +1 -0
- package/dist/loader.d.ts +18 -0
- package/dist/loader.d.ts.map +1 -0
- package/dist/loader.js +129 -0
- package/dist/loader.js.map +1 -0
- package/dist/mcp-server.d.ts +13 -0
- package/dist/mcp-server.d.ts.map +1 -0
- package/dist/mcp-server.js +246 -0
- package/dist/mcp-server.js.map +1 -0
- package/dist/mcp-tools/coverage-gaps.d.ts +13 -0
- package/dist/mcp-tools/coverage-gaps.d.ts.map +1 -0
- package/dist/mcp-tools/coverage-gaps.js +55 -0
- package/dist/mcp-tools/coverage-gaps.js.map +1 -0
- package/dist/mcp-tools/list-rules.d.ts +17 -0
- package/dist/mcp-tools/list-rules.d.ts.map +1 -0
- package/dist/mcp-tools/list-rules.js +45 -0
- package/dist/mcp-tools/list-rules.js.map +1 -0
- package/dist/mcp-tools/scan-skill.d.ts +17 -0
- package/dist/mcp-tools/scan-skill.d.ts.map +1 -0
- package/dist/mcp-tools/scan-skill.js +65 -0
- package/dist/mcp-tools/scan-skill.js.map +1 -0
- package/dist/mcp-tools/scan.d.ts +24 -0
- package/dist/mcp-tools/scan.d.ts.map +1 -0
- package/dist/mcp-tools/scan.js +94 -0
- package/dist/mcp-tools/scan.js.map +1 -0
- package/dist/mcp-tools/submit-proposal.d.ts +12 -0
- package/dist/mcp-tools/submit-proposal.d.ts.map +1 -0
- package/dist/mcp-tools/submit-proposal.js +103 -0
- package/dist/mcp-tools/submit-proposal.js.map +1 -0
- package/dist/mcp-tools/threat-summary.d.ts +12 -0
- package/dist/mcp-tools/threat-summary.d.ts.map +1 -0
- package/dist/mcp-tools/threat-summary.js +74 -0
- package/dist/mcp-tools/threat-summary.js.map +1 -0
- package/dist/mcp-tools/validate.d.ts +15 -0
- package/dist/mcp-tools/validate.d.ts.map +1 -0
- package/dist/mcp-tools/validate.js +51 -0
- package/dist/mcp-tools/validate.js.map +1 -0
- package/dist/modules/embedding.d.ts +71 -0
- package/dist/modules/embedding.d.ts.map +1 -0
- package/dist/modules/embedding.js +141 -0
- package/dist/modules/embedding.js.map +1 -0
- package/dist/modules/index.d.ts +144 -0
- package/dist/modules/index.d.ts.map +1 -0
- package/dist/modules/index.js +82 -0
- package/dist/modules/index.js.map +1 -0
- package/dist/modules/semantic.d.ts +106 -0
- package/dist/modules/semantic.d.ts.map +1 -0
- package/dist/modules/semantic.js +359 -0
- package/dist/modules/semantic.js.map +1 -0
- package/dist/modules/session.d.ts +70 -0
- package/dist/modules/session.d.ts.map +1 -0
- package/dist/modules/session.js +128 -0
- package/dist/modules/session.js.map +1 -0
- package/dist/quality/adapters/atr.d.ts +65 -0
- package/dist/quality/adapters/atr.d.ts.map +1 -0
- package/dist/quality/adapters/atr.js +154 -0
- package/dist/quality/adapters/atr.js.map +1 -0
- package/dist/quality/adapters/index.d.ts +10 -0
- package/dist/quality/adapters/index.d.ts.map +1 -0
- package/dist/quality/adapters/index.js +10 -0
- package/dist/quality/adapters/index.js.map +1 -0
- package/dist/quality/compute-confidence.d.ts +45 -0
- package/dist/quality/compute-confidence.d.ts.map +1 -0
- package/dist/quality/compute-confidence.js +133 -0
- package/dist/quality/compute-confidence.js.map +1 -0
- package/dist/quality/index.d.ts +36 -0
- package/dist/quality/index.d.ts.map +1 -0
- package/dist/quality/index.js +39 -0
- package/dist/quality/index.js.map +1 -0
- package/dist/quality/quality-gate.d.ts +86 -0
- package/dist/quality/quality-gate.d.ts.map +1 -0
- package/dist/quality/quality-gate.js +187 -0
- package/dist/quality/quality-gate.js.map +1 -0
- package/dist/quality/types.d.ts +129 -0
- package/dist/quality/types.d.ts.map +1 -0
- package/dist/quality/types.js +10 -0
- package/dist/quality/types.js.map +1 -0
- package/dist/quality/validate-maturity.d.ts +51 -0
- package/dist/quality/validate-maturity.d.ts.map +1 -0
- package/dist/quality/validate-maturity.js +134 -0
- package/dist/quality/validate-maturity.js.map +1 -0
- package/dist/quality.d.ts +8 -0
- package/dist/quality.d.ts.map +1 -0
- package/dist/quality.js +8 -0
- package/dist/quality.js.map +1 -0
- package/dist/rule-scaffolder.d.ts +53 -0
- package/dist/rule-scaffolder.d.ts.map +1 -0
- package/dist/rule-scaffolder.js +301 -0
- package/dist/rule-scaffolder.js.map +1 -0
- package/dist/session-tracker.d.ts +58 -0
- package/dist/session-tracker.d.ts.map +1 -0
- package/dist/session-tracker.js +176 -0
- package/dist/session-tracker.js.map +1 -0
- package/dist/shadow-evaluator.d.ts +48 -0
- package/dist/shadow-evaluator.d.ts.map +1 -0
- package/dist/shadow-evaluator.js +129 -0
- package/dist/shadow-evaluator.js.map +1 -0
- package/dist/skill-fingerprint.d.ts +85 -0
- package/dist/skill-fingerprint.d.ts.map +1 -0
- package/dist/skill-fingerprint.js +284 -0
- package/dist/skill-fingerprint.js.map +1 -0
- package/dist/tc-reporter.d.ts +50 -0
- package/dist/tc-reporter.d.ts.map +1 -0
- package/dist/tc-reporter.js +164 -0
- package/dist/tc-reporter.js.map +1 -0
- package/dist/tier0-invariant.d.ts +49 -0
- package/dist/tier0-invariant.d.ts.map +1 -0
- package/dist/tier0-invariant.js +185 -0
- package/dist/tier0-invariant.js.map +1 -0
- package/dist/tier1-blacklist.d.ts +48 -0
- package/dist/tier1-blacklist.d.ts.map +1 -0
- package/dist/tier1-blacklist.js +92 -0
- package/dist/tier1-blacklist.js.map +1 -0
- package/dist/types.d.ts +232 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -0
- package/dist/verdict.d.ts +26 -0
- package/dist/verdict.d.ts.map +1 -0
- package/dist/verdict.js +127 -0
- package/dist/verdict.js.map +1 -0
- package/package.json +16 -4
- package/.github/ISSUE_TEMPLATE/evasion-report.yml +0 -75
- package/.github/ISSUE_TEMPLATE/false-positive.yml +0 -31
- package/.github/ISSUE_TEMPLATE/mirofish-prediction.yml +0 -128
- package/.github/ISSUE_TEMPLATE/new-rule.yml +0 -37
- package/.github/PULL_REQUEST_TEMPLATE.md +0 -23
- package/.github/workflows/rule-quality.yml +0 -203
- package/.github/workflows/validate.yml +0 -42
- package/CHANGELOG.md +0 -30
- package/CONTRIBUTING.md +0 -168
- package/CONTRIBUTORS.md +0 -28
- package/COVERAGE.md +0 -135
- package/LIMITATIONS.md +0 -154
- package/SECURITY.md +0 -48
- package/THREAT-MODEL.md +0 -243
- package/docs/contribution-paths.md +0 -202
- package/docs/mirofish-prediction-guide.md +0 -304
- package/docs/quick-start.md +0 -245
- package/docs/rule-writing-guide.md +0 -647
- package/docs/schema-spec.md +0 -594
- package/examples/how-to-write-a-rule.md +0 -251
- package/tsconfig.json +0 -17
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule-corpus.js","sourceRoot":"","sources":["../../src/eval/rule-corpus.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-Rule Quality Metrics -- computes TP, FP, precision, recall,
|
|
3
|
+
* and confidence stats for each individual rule based on eval results.
|
|
4
|
+
*
|
|
5
|
+
* All functions are pure (no side effects, no mutation).
|
|
6
|
+
*
|
|
7
|
+
* @module agent-threat-rules/eval/rule-metrics
|
|
8
|
+
*/
|
|
9
|
+
import type { SampleResult } from './metrics.js';
|
|
10
|
+
export interface RuleQuality {
|
|
11
|
+
readonly ruleId: string;
|
|
12
|
+
readonly matchCount: number;
|
|
13
|
+
readonly tpCount: number;
|
|
14
|
+
readonly fpCount: number;
|
|
15
|
+
readonly categories: readonly string[];
|
|
16
|
+
readonly avgConfidence: number;
|
|
17
|
+
}
|
|
18
|
+
export interface RuleQualityReport {
|
|
19
|
+
readonly totalRulesEvaluated: number;
|
|
20
|
+
readonly rulesFired: number;
|
|
21
|
+
readonly rulesNeverFired: number;
|
|
22
|
+
readonly topRules: readonly RuleQuality[];
|
|
23
|
+
readonly weakRules: readonly RuleQuality[];
|
|
24
|
+
readonly neverFiredRuleIds: readonly string[];
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Compute per-rule quality metrics from eval results.
|
|
28
|
+
*
|
|
29
|
+
* @param results - The sample results from an eval run
|
|
30
|
+
* @param loadedRuleIds - All rule IDs that were loaded in the engine
|
|
31
|
+
* @returns A RuleQualityReport with top, weak, and never-fired rules
|
|
32
|
+
*/
|
|
33
|
+
export declare function computeRuleQuality(results: readonly SampleResult[], loadedRuleIds: readonly string[]): RuleQualityReport;
|
|
34
|
+
//# sourceMappingURL=rule-metrics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule-metrics.d.ts","sourceRoot":"","sources":["../../src/eval/rule-metrics.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAMjD,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,SAAS,WAAW,EAAE,CAAC;IAC1C,QAAQ,CAAC,SAAS,EAAE,SAAS,WAAW,EAAE,CAAC;IAC3C,QAAQ,CAAC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/C;AA8DD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,SAAS,YAAY,EAAE,EAChC,aAAa,EAAE,SAAS,MAAM,EAAE,GAC/B,iBAAiB,CAyCnB"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-Rule Quality Metrics -- computes TP, FP, precision, recall,
|
|
3
|
+
* and confidence stats for each individual rule based on eval results.
|
|
4
|
+
*
|
|
5
|
+
* All functions are pure (no side effects, no mutation).
|
|
6
|
+
*
|
|
7
|
+
* @module agent-threat-rules/eval/rule-metrics
|
|
8
|
+
*/
|
|
9
|
+
function emptyAccumulator(ruleId) {
|
|
10
|
+
return {
|
|
11
|
+
ruleId,
|
|
12
|
+
tp: 0,
|
|
13
|
+
fp: 0,
|
|
14
|
+
categories: new Set(),
|
|
15
|
+
confidenceSum: 0,
|
|
16
|
+
confidenceCount: 0,
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
function addSampleToAccumulator(acc, sample) {
|
|
20
|
+
const isAttack = sample.expectedDetection;
|
|
21
|
+
const newCategories = new Set(acc.categories);
|
|
22
|
+
newCategories.add(sample.category);
|
|
23
|
+
return {
|
|
24
|
+
ruleId: acc.ruleId,
|
|
25
|
+
tp: acc.tp + (isAttack ? 1 : 0),
|
|
26
|
+
fp: acc.fp + (isAttack ? 0 : 1),
|
|
27
|
+
categories: newCategories,
|
|
28
|
+
confidenceSum: acc.confidenceSum + sample.confidence,
|
|
29
|
+
confidenceCount: acc.confidenceCount + 1,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
function accumulatorToQuality(acc) {
|
|
33
|
+
const matchCount = acc.tp + acc.fp;
|
|
34
|
+
return {
|
|
35
|
+
ruleId: acc.ruleId,
|
|
36
|
+
matchCount,
|
|
37
|
+
tpCount: acc.tp,
|
|
38
|
+
fpCount: acc.fp,
|
|
39
|
+
categories: [...acc.categories].sort(),
|
|
40
|
+
avgConfidence: acc.confidenceCount > 0
|
|
41
|
+
? acc.confidenceSum / acc.confidenceCount
|
|
42
|
+
: 0,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
// ---------------------------------------------------------------------------
|
|
46
|
+
// Core computation
|
|
47
|
+
// ---------------------------------------------------------------------------
|
|
48
|
+
/**
|
|
49
|
+
* Compute per-rule quality metrics from eval results.
|
|
50
|
+
*
|
|
51
|
+
* @param results - The sample results from an eval run
|
|
52
|
+
* @param loadedRuleIds - All rule IDs that were loaded in the engine
|
|
53
|
+
* @returns A RuleQualityReport with top, weak, and never-fired rules
|
|
54
|
+
*/
|
|
55
|
+
export function computeRuleQuality(results, loadedRuleIds) {
|
|
56
|
+
// Build per-rule accumulators from results
|
|
57
|
+
const accumulators = new Map();
|
|
58
|
+
for (const sample of results) {
|
|
59
|
+
for (const ruleId of sample.matchedRules) {
|
|
60
|
+
const existing = accumulators.get(ruleId) ?? emptyAccumulator(ruleId);
|
|
61
|
+
accumulators.set(ruleId, addSampleToAccumulator(existing, sample));
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
// Convert accumulators to RuleQuality entries
|
|
65
|
+
const allQualities = [...accumulators.values()]
|
|
66
|
+
.map(accumulatorToQuality);
|
|
67
|
+
// Sort by matchCount descending for top rules
|
|
68
|
+
const sortedByMatch = [...allQualities].sort((a, b) => b.matchCount - a.matchCount);
|
|
69
|
+
// Weak rules: have FP > 0, or matchCount <= 1 (very low contribution)
|
|
70
|
+
const weakRules = [...allQualities]
|
|
71
|
+
.filter((r) => r.fpCount > 0 || r.matchCount <= 1)
|
|
72
|
+
.sort((a, b) => {
|
|
73
|
+
// Sort by fpCount desc first, then matchCount asc
|
|
74
|
+
if (b.fpCount !== a.fpCount)
|
|
75
|
+
return b.fpCount - a.fpCount;
|
|
76
|
+
return a.matchCount - b.matchCount;
|
|
77
|
+
});
|
|
78
|
+
// Determine never-fired rules
|
|
79
|
+
const firedRuleIds = new Set(accumulators.keys());
|
|
80
|
+
const neverFiredRuleIds = loadedRuleIds
|
|
81
|
+
.filter((id) => !firedRuleIds.has(id))
|
|
82
|
+
.sort();
|
|
83
|
+
return {
|
|
84
|
+
totalRulesEvaluated: loadedRuleIds.length,
|
|
85
|
+
rulesFired: firedRuleIds.size,
|
|
86
|
+
rulesNeverFired: neverFiredRuleIds.length,
|
|
87
|
+
topRules: sortedByMatch,
|
|
88
|
+
weakRules,
|
|
89
|
+
neverFiredRuleIds,
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=rule-metrics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule-metrics.js","sourceRoot":"","sources":["../../src/eval/rule-metrics.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-eval.d.ts","sourceRoot":"","sources":["../../src/eval/run-eval.ts"],"names":[],"mappings":";AACA;;;GAGG"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
#!/usr/bin/env npx tsx
|
|
2
|
+
/**
|
|
3
|
+
* CLI entry point for: npx tsx src/eval/run-eval.ts
|
|
4
|
+
* or: npm run eval
|
|
5
|
+
*/
|
|
6
|
+
import { runEvalCLI } from './eval-harness.js';
|
|
7
|
+
runEvalCLI().catch((err) => {
|
|
8
|
+
console.error('Eval failed:', err);
|
|
9
|
+
process.exitCode = 1;
|
|
10
|
+
});
|
|
11
|
+
//# sourceMappingURL=run-eval.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-eval.js","sourceRoot":"","sources":["../../src/eval/run-eval.ts"],"names":[],"mappings":";AACA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACzB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;IACnC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
#!/usr/bin/env npx tsx
|
|
2
|
+
/**
|
|
3
|
+
* PINT Benchmark Runner
|
|
4
|
+
*
|
|
5
|
+
* Standalone CLI that loads the PINT corpus (built from publicly available
|
|
6
|
+
* prompt injection datasets) and runs it through the ATR evaluation harness.
|
|
7
|
+
*
|
|
8
|
+
* Usage:
|
|
9
|
+
* npx tsx src/eval/run-pint-benchmark.ts
|
|
10
|
+
* npm run eval:pint
|
|
11
|
+
*
|
|
12
|
+
* The PINT corpus lives at data/pint-benchmark/pint-corpus.json and is
|
|
13
|
+
* converted on-the-fly into CorpusSample[] via loadPintCorpus().
|
|
14
|
+
*
|
|
15
|
+
* @module agent-threat-rules/eval/run-pint-benchmark
|
|
16
|
+
*/
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=run-pint-benchmark.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-pint-benchmark.d.ts","sourceRoot":"","sources":["../../src/eval/run-pint-benchmark.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;GAcG"}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
#!/usr/bin/env npx tsx
|
|
2
|
+
/**
|
|
3
|
+
* PINT Benchmark Runner
|
|
4
|
+
*
|
|
5
|
+
* Standalone CLI that loads the PINT corpus (built from publicly available
|
|
6
|
+
* prompt injection datasets) and runs it through the ATR evaluation harness.
|
|
7
|
+
*
|
|
8
|
+
* Usage:
|
|
9
|
+
* npx tsx src/eval/run-pint-benchmark.ts
|
|
10
|
+
* npm run eval:pint
|
|
11
|
+
*
|
|
12
|
+
* The PINT corpus lives at data/pint-benchmark/pint-corpus.json and is
|
|
13
|
+
* converted on-the-fly into CorpusSample[] via loadPintCorpus().
|
|
14
|
+
*
|
|
15
|
+
* @module agent-threat-rules/eval/run-pint-benchmark
|
|
16
|
+
*/
|
|
17
|
+
import { resolve, join } from 'node:path';
|
|
18
|
+
import { loadPintCorpus, getPintCorpusStats } from './pint-corpus.js';
|
|
19
|
+
import { runEval } from './eval-harness.js';
|
|
20
|
+
// ---------------------------------------------------------------------------
|
|
21
|
+
// Formatting helpers
|
|
22
|
+
// ---------------------------------------------------------------------------
|
|
23
|
+
function formatPercent(n) {
|
|
24
|
+
return `${(n * 100).toFixed(1)}%`;
|
|
25
|
+
}
|
|
26
|
+
function formatMs(n) {
|
|
27
|
+
return `${n.toFixed(2)}ms`;
|
|
28
|
+
}
|
|
29
|
+
// ---------------------------------------------------------------------------
|
|
30
|
+
// Main
|
|
31
|
+
// ---------------------------------------------------------------------------
|
|
32
|
+
async function main() {
|
|
33
|
+
const base = resolve(join(import.meta.dirname ?? '.', '..', '..'));
|
|
34
|
+
const rulesDir = join(base, 'rules');
|
|
35
|
+
const dataPath = join(base, 'data', 'pint-benchmark', 'pint-corpus.json');
|
|
36
|
+
const outputPath = join(base, 'data', 'pint-benchmark', 'pint-eval-report.json');
|
|
37
|
+
console.log('\n=== PINT Benchmark -- ATR Evaluation ===\n');
|
|
38
|
+
console.log(`Corpus: ${dataPath}`);
|
|
39
|
+
console.log(`Rules: ${rulesDir}\n`);
|
|
40
|
+
// Load the PINT corpus
|
|
41
|
+
const corpus = loadPintCorpus(dataPath);
|
|
42
|
+
const stats = getPintCorpusStats(corpus);
|
|
43
|
+
console.log(`Loaded ${stats.total} samples (${stats.attacks} attacks, ${stats.benign} benign)`);
|
|
44
|
+
console.log(`Categories: ${Object.entries(stats.byCategory).map(([k, v]) => `${k}=${v}`).join(', ')}`);
|
|
45
|
+
console.log(`Difficulty: ${Object.entries(stats.byDifficulty).map(([k, v]) => `${k}=${v}`).join(', ')}`);
|
|
46
|
+
console.log(`Languages: ${Object.entries(stats.byLanguage).map(([k, v]) => `${k}=${v}`).join(', ')}`);
|
|
47
|
+
// Use relaxed thresholds for the PINT benchmark since it contains
|
|
48
|
+
// many paraphrased / multilingual attacks that regex-only won't catch.
|
|
49
|
+
// The PINT corpus is an external, adversarial dataset -- low recall is
|
|
50
|
+
// expected and reveals coverage gaps for future rule development.
|
|
51
|
+
// PINT-specific thresholds: relaxed vs global defaults (0.60 recall, 0.05 FP rate)
|
|
52
|
+
// because the PINT corpus contains adversarial paraphrasing and dataset noise.
|
|
53
|
+
const pintThresholds = {
|
|
54
|
+
minRecall: 0.58,
|
|
55
|
+
maxFpRate: 0.15,
|
|
56
|
+
minF1: 0.70,
|
|
57
|
+
maxP95LatencyMs: 100,
|
|
58
|
+
};
|
|
59
|
+
// Run eval with the PINT corpus
|
|
60
|
+
const { report, regression, tiersUsed, ruleQuality } = await runEval({
|
|
61
|
+
rulesDir,
|
|
62
|
+
corpus,
|
|
63
|
+
thresholds: pintThresholds,
|
|
64
|
+
outputPath,
|
|
65
|
+
});
|
|
66
|
+
// Overall metrics
|
|
67
|
+
console.log(`\nTiers: ${tiersUsed.join(' + ')}`);
|
|
68
|
+
console.log(`\n--- Overall ---`);
|
|
69
|
+
console.log(` Precision: ${formatPercent(report.overall.precision)}`);
|
|
70
|
+
console.log(` Recall: ${formatPercent(report.overall.recall)}`);
|
|
71
|
+
console.log(` F1: ${formatPercent(report.overall.f1)}`);
|
|
72
|
+
console.log(` Accuracy: ${formatPercent(report.overall.accuracy)}`);
|
|
73
|
+
console.log(` FP Rate: ${formatPercent(report.overall.fpRate)}`);
|
|
74
|
+
console.log(` Confusion: TP=${report.overall.confusion.tp} FP=${report.overall.confusion.fp} TN=${report.overall.confusion.tn} FN=${report.overall.confusion.fn}`);
|
|
75
|
+
// Latency
|
|
76
|
+
console.log(`\n--- Latency ---`);
|
|
77
|
+
console.log(` P50: ${formatMs(report.latency.p50)}`);
|
|
78
|
+
console.log(` P95: ${formatMs(report.latency.p95)}`);
|
|
79
|
+
console.log(` P99: ${formatMs(report.latency.p99)}`);
|
|
80
|
+
console.log(` Mean: ${formatMs(report.latency.mean)}`);
|
|
81
|
+
console.log(` Max: ${formatMs(report.latency.max)}`);
|
|
82
|
+
// Per category
|
|
83
|
+
console.log(`\n--- By Category ---`);
|
|
84
|
+
for (const cat of report.byCategory) {
|
|
85
|
+
const missed = cat.missedSamples.length;
|
|
86
|
+
const fps = cat.falsePositives.length;
|
|
87
|
+
console.log(` ${cat.category}: recall=${formatPercent(cat.metrics.recall)} ` +
|
|
88
|
+
`precision=${formatPercent(cat.metrics.precision)} ` +
|
|
89
|
+
`f1=${formatPercent(cat.metrics.f1)} ` +
|
|
90
|
+
`(missed=${missed}, FP=${fps})`);
|
|
91
|
+
}
|
|
92
|
+
// Per difficulty
|
|
93
|
+
console.log(`\n--- By Difficulty ---`);
|
|
94
|
+
for (const diff of report.byDifficulty) {
|
|
95
|
+
console.log(` ${diff.difficulty}: recall=${formatPercent(diff.metrics.recall)} ` +
|
|
96
|
+
`precision=${formatPercent(diff.metrics.precision)} ` +
|
|
97
|
+
`f1=${formatPercent(diff.metrics.f1)}`);
|
|
98
|
+
}
|
|
99
|
+
// Missed attacks (show first 20)
|
|
100
|
+
if (report.missedAttacks.length > 0) {
|
|
101
|
+
const showCount = Math.min(report.missedAttacks.length, 20);
|
|
102
|
+
console.log(`\n--- Missed Attacks (${report.missedAttacks.length} total, showing ${showCount}) ---`);
|
|
103
|
+
for (const m of report.missedAttacks.slice(0, showCount)) {
|
|
104
|
+
const lang = corpus.find((c) => c.id === m.id)?.fields?.['language'] ?? '?';
|
|
105
|
+
console.log(` [${m.id}] lang=${lang} ${m.category}/${m.difficulty}`);
|
|
106
|
+
}
|
|
107
|
+
if (report.missedAttacks.length > showCount) {
|
|
108
|
+
console.log(` ... and ${report.missedAttacks.length - showCount} more`);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
// False positives (show first 20)
|
|
112
|
+
if (report.falsePositives.length > 0) {
|
|
113
|
+
const showCount = Math.min(report.falsePositives.length, 20);
|
|
114
|
+
console.log(`\n--- False Positives (${report.falsePositives.length} total, showing ${showCount}) ---`);
|
|
115
|
+
for (const fp of report.falsePositives.slice(0, showCount)) {
|
|
116
|
+
console.log(` [${fp.id}] rules: ${fp.matchedRules.join(', ')}`);
|
|
117
|
+
}
|
|
118
|
+
if (report.falsePositives.length > showCount) {
|
|
119
|
+
console.log(` ... and ${report.falsePositives.length - showCount} more`);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
// Rule quality summary
|
|
123
|
+
console.log(`\n--- Rule Quality ---`);
|
|
124
|
+
console.log(` Total rules loaded: ${ruleQuality.totalRulesEvaluated}`);
|
|
125
|
+
console.log(` Rules fired: ${ruleQuality.rulesFired}`);
|
|
126
|
+
console.log(` Rules never fired: ${ruleQuality.rulesNeverFired}`);
|
|
127
|
+
if (ruleQuality.topRules.length > 0) {
|
|
128
|
+
console.log(`\n Top 10 rules by match count:`);
|
|
129
|
+
for (const rule of ruleQuality.topRules.slice(0, 10)) {
|
|
130
|
+
const precision = rule.matchCount > 0
|
|
131
|
+
? formatPercent(rule.tpCount / rule.matchCount)
|
|
132
|
+
: 'N/A';
|
|
133
|
+
console.log(` ${rule.ruleId}: matches=${rule.matchCount} ` +
|
|
134
|
+
`TP=${rule.tpCount} FP=${rule.fpCount} ` +
|
|
135
|
+
`precision=${precision}`);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
// Regression
|
|
139
|
+
console.log(`\n--- Regression Check (PINT thresholds) ---`);
|
|
140
|
+
if (regression.passed) {
|
|
141
|
+
console.log(' PASSED');
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
console.log(' FAILED:');
|
|
145
|
+
for (const v of regression.violations) {
|
|
146
|
+
console.log(` - ${v}`);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
console.log(`\nReport saved to: ${outputPath}`);
|
|
150
|
+
console.log('Done.\n');
|
|
151
|
+
if (!regression.passed) {
|
|
152
|
+
process.exitCode = 1;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
main().catch((err) => {
|
|
156
|
+
console.error('PINT benchmark failed:', err);
|
|
157
|
+
process.exitCode = 1;
|
|
158
|
+
});
|
|
159
|
+
//# sourceMappingURL=run-pint-benchmark.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-pint-benchmark.js","sourceRoot":"","sources":["../../src/eval/run-pint-benchmark.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SKILL.md Benchmark Harness
|
|
3
|
+
*
|
|
4
|
+
* Evaluates the ATR scanSkill() method against a labeled corpus of
|
|
5
|
+
* malicious and benign SKILL.md files. Produces per-layer recall,
|
|
6
|
+
* overall precision, and a detailed per-sample report.
|
|
7
|
+
*
|
|
8
|
+
* Corpus: data/skill-benchmark/manifest.json
|
|
9
|
+
* Samples: data/skill-benchmark/malicious/ and data/skill-benchmark/benign/
|
|
10
|
+
*
|
|
11
|
+
* Layers:
|
|
12
|
+
* A = obvious payload (curl|bash, base64 exec, reverse shell)
|
|
13
|
+
* B = obfuscated (bash expansion, paste service relay, encoded)
|
|
14
|
+
* C = semantic (natural language instructions, social engineering)
|
|
15
|
+
*
|
|
16
|
+
* @module agent-threat-rules/eval/skill-benchmark
|
|
17
|
+
*/
|
|
18
|
+
interface SampleResult {
|
|
19
|
+
readonly file: string;
|
|
20
|
+
readonly label: 'malicious' | 'benign';
|
|
21
|
+
readonly layer: string;
|
|
22
|
+
readonly attack_type: string;
|
|
23
|
+
readonly detected: boolean;
|
|
24
|
+
readonly rules_fired: readonly string[];
|
|
25
|
+
readonly correct: boolean;
|
|
26
|
+
readonly latency_ms: number;
|
|
27
|
+
readonly expected_rules_matched: boolean;
|
|
28
|
+
readonly category_correct: boolean;
|
|
29
|
+
}
|
|
30
|
+
interface LayerMetrics {
|
|
31
|
+
readonly total: number;
|
|
32
|
+
readonly detected: number;
|
|
33
|
+
readonly recall: number;
|
|
34
|
+
}
|
|
35
|
+
interface SkillBenchmarkReport {
|
|
36
|
+
readonly timestamp: string;
|
|
37
|
+
readonly corpus_size: number;
|
|
38
|
+
readonly malicious_count: number;
|
|
39
|
+
readonly benign_count: number;
|
|
40
|
+
readonly overall_recall: number;
|
|
41
|
+
readonly overall_precision: number;
|
|
42
|
+
readonly overall_f1: number;
|
|
43
|
+
readonly fp_rate: number;
|
|
44
|
+
readonly layer_a: LayerMetrics;
|
|
45
|
+
readonly layer_b: LayerMetrics;
|
|
46
|
+
readonly layer_c: LayerMetrics;
|
|
47
|
+
readonly true_positives: number;
|
|
48
|
+
readonly false_positives: number;
|
|
49
|
+
readonly true_negatives: number;
|
|
50
|
+
readonly false_negatives: number;
|
|
51
|
+
readonly expected_rules_accuracy: number;
|
|
52
|
+
readonly category_accuracy: number;
|
|
53
|
+
readonly avg_latency_ms: number;
|
|
54
|
+
readonly max_latency_ms: number;
|
|
55
|
+
readonly results: readonly SampleResult[];
|
|
56
|
+
readonly missed_attacks: readonly SampleResult[];
|
|
57
|
+
readonly false_alarms: readonly SampleResult[];
|
|
58
|
+
}
|
|
59
|
+
export declare function runSkillBenchmark(options?: {
|
|
60
|
+
readonly rulesDir?: string;
|
|
61
|
+
readonly corpusDir?: string;
|
|
62
|
+
readonly outputPath?: string;
|
|
63
|
+
}): Promise<SkillBenchmarkReport>;
|
|
64
|
+
export declare function printReport(report: SkillBenchmarkReport): void;
|
|
65
|
+
export {};
|
|
66
|
+
//# sourceMappingURL=skill-benchmark.d.ts.map
|