@gate-forge/core 0.1.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.
- package/LICENSE +202 -0
- package/dist/baselines/adoption.d.ts +76 -0
- package/dist/baselines/adoption.d.ts.map +1 -0
- package/dist/baselines/adoption.js +163 -0
- package/dist/baselines/adoption.js.map +1 -0
- package/dist/baselines/index.d.ts +102 -0
- package/dist/baselines/index.d.ts.map +1 -0
- package/dist/baselines/index.js +186 -0
- package/dist/baselines/index.js.map +1 -0
- package/dist/canonical-json.d.ts +51 -0
- package/dist/canonical-json.d.ts.map +1 -0
- package/dist/canonical-json.js +112 -0
- package/dist/canonical-json.js.map +1 -0
- package/dist/classifier/bind.d.ts +64 -0
- package/dist/classifier/bind.d.ts.map +1 -0
- package/dist/classifier/bind.js +188 -0
- package/dist/classifier/bind.js.map +1 -0
- package/dist/classifier/classify.d.ts +154 -0
- package/dist/classifier/classify.d.ts.map +1 -0
- package/dist/classifier/classify.js +1207 -0
- package/dist/classifier/classify.js.map +1 -0
- package/dist/classifier/glob.d.ts +48 -0
- package/dist/classifier/glob.d.ts.map +1 -0
- package/dist/classifier/glob.js +104 -0
- package/dist/classifier/glob.js.map +1 -0
- package/dist/classifier/index.d.ts +10 -0
- package/dist/classifier/index.d.ts.map +1 -0
- package/dist/classifier/index.js +21 -0
- package/dist/classifier/index.js.map +1 -0
- package/dist/classifier/schema.d.ts +150 -0
- package/dist/classifier/schema.d.ts.map +1 -0
- package/dist/classifier/schema.js +139 -0
- package/dist/classifier/schema.js.map +1 -0
- package/dist/config/index.d.ts +259 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +523 -0
- package/dist/config/index.js.map +1 -0
- package/dist/fingerprints.d.ts +56 -0
- package/dist/fingerprints.d.ts.map +1 -0
- package/dist/fingerprints.js +59 -0
- package/dist/fingerprints.js.map +1 -0
- package/dist/graph/build.d.ts +16 -0
- package/dist/graph/build.d.ts.map +1 -0
- package/dist/graph/build.js +423 -0
- package/dist/graph/build.js.map +1 -0
- package/dist/graph/index.d.ts +12 -0
- package/dist/graph/index.d.ts.map +1 -0
- package/dist/graph/index.js +10 -0
- package/dist/graph/index.js.map +1 -0
- package/dist/graph/schema.d.ts +448 -0
- package/dist/graph/schema.d.ts.map +1 -0
- package/dist/graph/schema.js +237 -0
- package/dist/graph/schema.js.map +1 -0
- package/dist/graph/symbols.d.ts +129 -0
- package/dist/graph/symbols.d.ts.map +1 -0
- package/dist/graph/symbols.js +177 -0
- package/dist/graph/symbols.js.map +1 -0
- package/dist/graph/util.d.ts +40 -0
- package/dist/graph/util.d.ts.map +1 -0
- package/dist/graph/util.js +41 -0
- package/dist/graph/util.js.map +1 -0
- package/dist/index.d.ts +683 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +563 -0
- package/dist/index.js.map +1 -0
- package/dist/mapping/resolve.d.ts +177 -0
- package/dist/mapping/resolve.d.ts.map +1 -0
- package/dist/mapping/resolve.js +523 -0
- package/dist/mapping/resolve.js.map +1 -0
- package/dist/policy/coverage.d.ts +79 -0
- package/dist/policy/coverage.d.ts.map +1 -0
- package/dist/policy/coverage.js +119 -0
- package/dist/policy/coverage.js.map +1 -0
- package/dist/policy/evaluate.d.ts +275 -0
- package/dist/policy/evaluate.d.ts.map +1 -0
- package/dist/policy/evaluate.js +382 -0
- package/dist/policy/evaluate.js.map +1 -0
- package/dist/policy/index.d.ts +15 -0
- package/dist/policy/index.d.ts.map +1 -0
- package/dist/policy/index.js +14 -0
- package/dist/policy/index.js.map +1 -0
- package/dist/policy/trusted.d.ts +59 -0
- package/dist/policy/trusted.d.ts.map +1 -0
- package/dist/policy/trusted.js +96 -0
- package/dist/policy/trusted.js.map +1 -0
- package/dist/provenance.d.ts +170 -0
- package/dist/provenance.d.ts.map +1 -0
- package/dist/provenance.js +306 -0
- package/dist/provenance.js.map +1 -0
- package/dist/receipt/index.d.ts +74 -0
- package/dist/receipt/index.d.ts.map +1 -0
- package/dist/receipt/index.js +154 -0
- package/dist/receipt/index.js.map +1 -0
- package/dist/report/index.d.ts +100 -0
- package/dist/report/index.d.ts.map +1 -0
- package/dist/report/index.js +355 -0
- package/dist/report/index.js.map +1 -0
- package/dist/schemas/adoption.d.ts +40 -0
- package/dist/schemas/adoption.d.ts.map +1 -0
- package/dist/schemas/adoption.js +87 -0
- package/dist/schemas/adoption.js.map +1 -0
- package/dist/schemas/baseline.d.ts +19 -0
- package/dist/schemas/baseline.d.ts.map +1 -0
- package/dist/schemas/baseline.js +45 -0
- package/dist/schemas/baseline.js.map +1 -0
- package/dist/schemas/claim.d.ts +32 -0
- package/dist/schemas/claim.d.ts.map +1 -0
- package/dist/schemas/claim.js +34 -0
- package/dist/schemas/claim.js.map +1 -0
- package/dist/schemas/classification-policy.d.ts +84 -0
- package/dist/schemas/classification-policy.d.ts.map +1 -0
- package/dist/schemas/classification-policy.js +130 -0
- package/dist/schemas/classification-policy.js.map +1 -0
- package/dist/schemas/classification-signal.d.ts +125 -0
- package/dist/schemas/classification-signal.d.ts.map +1 -0
- package/dist/schemas/classification-signal.js +126 -0
- package/dist/schemas/classification-signal.js.map +1 -0
- package/dist/schemas/classification.d.ts +120 -0
- package/dist/schemas/classification.d.ts.map +1 -0
- package/dist/schemas/classification.js +154 -0
- package/dist/schemas/classification.js.map +1 -0
- package/dist/schemas/common.d.ts +73 -0
- package/dist/schemas/common.d.ts.map +1 -0
- package/dist/schemas/common.js +60 -0
- package/dist/schemas/common.js.map +1 -0
- package/dist/schemas/coverage-policy.d.ts +89 -0
- package/dist/schemas/coverage-policy.d.ts.map +1 -0
- package/dist/schemas/coverage-policy.js +81 -0
- package/dist/schemas/coverage-policy.js.map +1 -0
- package/dist/schemas/evidence.d.ts +65 -0
- package/dist/schemas/evidence.d.ts.map +1 -0
- package/dist/schemas/evidence.js +64 -0
- package/dist/schemas/evidence.js.map +1 -0
- package/dist/schemas/execution-result.d.ts +214 -0
- package/dist/schemas/execution-result.d.ts.map +1 -0
- package/dist/schemas/execution-result.js +240 -0
- package/dist/schemas/execution-result.js.map +1 -0
- package/dist/schemas/gate-receipt.d.ts +86 -0
- package/dist/schemas/gate-receipt.d.ts.map +1 -0
- package/dist/schemas/gate-receipt.js +193 -0
- package/dist/schemas/gate-receipt.js.map +1 -0
- package/dist/schemas/index.d.ts +22 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +22 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/obligation.d.ts +37 -0
- package/dist/schemas/obligation.d.ts.map +1 -0
- package/dist/schemas/obligation.js +46 -0
- package/dist/schemas/obligation.js.map +1 -0
- package/dist/schemas/plugin.d.ts +19 -0
- package/dist/schemas/plugin.d.ts.map +1 -0
- package/dist/schemas/plugin.js +20 -0
- package/dist/schemas/plugin.js.map +1 -0
- package/dist/schemas/policy.d.ts +73 -0
- package/dist/schemas/policy.d.ts.map +1 -0
- package/dist/schemas/policy.js +46 -0
- package/dist/schemas/policy.js.map +1 -0
- package/dist/schemas/resource.d.ts +26 -0
- package/dist/schemas/resource.d.ts.map +1 -0
- package/dist/schemas/resource.js +29 -0
- package/dist/schemas/resource.js.map +1 -0
- package/dist/schemas/run-manifest.d.ts +72 -0
- package/dist/schemas/run-manifest.d.ts.map +1 -0
- package/dist/schemas/run-manifest.js +125 -0
- package/dist/schemas/run-manifest.js.map +1 -0
- package/dist/schemas/runner-adapter.d.ts +169 -0
- package/dist/schemas/runner-adapter.d.ts.map +1 -0
- package/dist/schemas/runner-adapter.js +2 -0
- package/dist/schemas/runner-adapter.js.map +1 -0
- package/dist/schemas/test-catalog.d.ts +472 -0
- package/dist/schemas/test-catalog.d.ts.map +1 -0
- package/dist/schemas/test-catalog.js +311 -0
- package/dist/schemas/test-catalog.js.map +1 -0
- package/dist/schemas/test-map.d.ts +99 -0
- package/dist/schemas/test-map.d.ts.map +1 -0
- package/dist/schemas/test-map.js +103 -0
- package/dist/schemas/test-map.js.map +1 -0
- package/dist/schemas/verdict.d.ts +73 -0
- package/dist/schemas/verdict.d.ts.map +1 -0
- package/dist/schemas/verdict.js +92 -0
- package/dist/schemas/verdict.js.map +1 -0
- package/dist/schemas/waiver.d.ts +36 -0
- package/dist/schemas/waiver.d.ts.map +1 -0
- package/dist/schemas/waiver.js +42 -0
- package/dist/schemas/waiver.js.map +1 -0
- package/dist/supervision/index.d.ts +170 -0
- package/dist/supervision/index.d.ts.map +1 -0
- package/dist/supervision/index.js +354 -0
- package/dist/supervision/index.js.map +1 -0
- package/dist/testing/clock.d.ts +50 -0
- package/dist/testing/clock.d.ts.map +1 -0
- package/dist/testing/clock.js +75 -0
- package/dist/testing/clock.js.map +1 -0
- package/dist/testing/env.d.ts +66 -0
- package/dist/testing/env.d.ts.map +1 -0
- package/dist/testing/env.js +106 -0
- package/dist/testing/env.js.map +1 -0
- package/dist/testing/gate-runner.d.ts +141 -0
- package/dist/testing/gate-runner.d.ts.map +1 -0
- package/dist/testing/gate-runner.js +173 -0
- package/dist/testing/gate-runner.js.map +1 -0
- package/dist/testing/gf19.d.ts +106 -0
- package/dist/testing/gf19.d.ts.map +1 -0
- package/dist/testing/gf19.js +282 -0
- package/dist/testing/gf19.js.map +1 -0
- package/dist/testing/index.d.ts +20 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +14 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/testing/red-probe.d.ts +138 -0
- package/dist/testing/red-probe.d.ts.map +1 -0
- package/dist/testing/red-probe.js +251 -0
- package/dist/testing/red-probe.js.map +1 -0
- package/dist/testing/temp-repo.d.ts +126 -0
- package/dist/testing/temp-repo.d.ts.map +1 -0
- package/dist/testing/temp-repo.js +214 -0
- package/dist/testing/temp-repo.js.map +1 -0
- package/dist/verdict/cause.d.ts +99 -0
- package/dist/verdict/cause.d.ts.map +1 -0
- package/dist/verdict/cause.js +206 -0
- package/dist/verdict/cause.js.map +1 -0
- package/dist/verdict/evaluate.d.ts +135 -0
- package/dist/verdict/evaluate.d.ts.map +1 -0
- package/dist/verdict/evaluate.js +1513 -0
- package/dist/verdict/evaluate.js.map +1 -0
- package/dist/verdict/index.d.ts +21 -0
- package/dist/verdict/index.d.ts.map +1 -0
- package/dist/verdict/index.js +20 -0
- package/dist/verdict/index.js.map +1 -0
- package/dist/verdict/pack-verifiers.d.ts +97 -0
- package/dist/verdict/pack-verifiers.d.ts.map +1 -0
- package/dist/verdict/pack-verifiers.js +763 -0
- package/dist/verdict/pack-verifiers.js.map +1 -0
- package/dist/verdict/registry.d.ts +180 -0
- package/dist/verdict/registry.d.ts.map +1 -0
- package/dist/verdict/registry.js +67 -0
- package/dist/verdict/registry.js.map +1 -0
- package/dist/waivers/index.d.ts +103 -0
- package/dist/waivers/index.d.ts.map +1 -0
- package/dist/waivers/index.js +192 -0
- package/dist/waivers/index.js.map +1 -0
- package/package.json +40 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"classify.js","sourceRoot":"","sources":["../../src/classifier/classify.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deterministic glob matching for classification-policy scan roots and
|
|
3
|
+
* internal-rule name patterns. Supports the `*` (within one segment),
|
|
4
|
+
* `**` (across segments), and `?` (single character) wildcards; all
|
|
5
|
+
* other characters are literal. Path separators are posix `/`.
|
|
6
|
+
*
|
|
7
|
+
* Pure string machinery — no filesystem, clock, or network access — so
|
|
8
|
+
* core stays deterministic (Phase 1 anti-pattern guards).
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Compiles one glob pattern to a whole-string regular expression.
|
|
12
|
+
* A `**` segment matches across segment boundaries: as the last segment
|
|
13
|
+
* it matches everything after the prefix (`backend/STAR-STAR` matches
|
|
14
|
+
* `backend/api/x.py`); in the middle it matches zero or more whole
|
|
15
|
+
* segments (`a/STAR-STAR/b` matches `a/b` and `a/x/y/b`). `*` matches
|
|
16
|
+
* within a single segment; `?` matches one non-separator character.
|
|
17
|
+
*
|
|
18
|
+
* Args:
|
|
19
|
+
* pattern: glob pattern, e.g. `backend/**` or `*_audit`.
|
|
20
|
+
*
|
|
21
|
+
* Returns:
|
|
22
|
+
* RegExp: anchored, case-sensitive matcher.
|
|
23
|
+
*/
|
|
24
|
+
export declare function compileGlob(pattern: string): RegExp;
|
|
25
|
+
/**
|
|
26
|
+
* Whether a repo-root-relative path matches one glob pattern.
|
|
27
|
+
*
|
|
28
|
+
* Args:
|
|
29
|
+
* path: posix repo-root-relative path.
|
|
30
|
+
* pattern: glob pattern.
|
|
31
|
+
*
|
|
32
|
+
* Returns:
|
|
33
|
+
* boolean: true when the whole path matches.
|
|
34
|
+
*/
|
|
35
|
+
export declare function globMatch(path: string, pattern: string): boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Whether a path falls inside ANY of the given roots (the complete-scan
|
|
38
|
+
* scope test of ADR 0003 D4).
|
|
39
|
+
*
|
|
40
|
+
* Args:
|
|
41
|
+
* path: posix repo-root-relative path.
|
|
42
|
+
* roots: scan-root globs.
|
|
43
|
+
*
|
|
44
|
+
* Returns:
|
|
45
|
+
* boolean: true when at least one root matches the path.
|
|
46
|
+
*/
|
|
47
|
+
export declare function pathInScope(path: string, roots: readonly string[]): boolean;
|
|
48
|
+
//# sourceMappingURL=glob.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"glob.d.ts","sourceRoot":"","sources":["../../src/classifier/glob.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAUH;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAmCnD;AAED;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAEhE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAK3E"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deterministic glob matching for classification-policy scan roots and
|
|
3
|
+
* internal-rule name patterns. Supports the `*` (within one segment),
|
|
4
|
+
* `**` (across segments), and `?` (single character) wildcards; all
|
|
5
|
+
* other characters are literal. Path separators are posix `/`.
|
|
6
|
+
*
|
|
7
|
+
* Pure string machinery — no filesystem, clock, or network access — so
|
|
8
|
+
* core stays deterministic (Phase 1 anti-pattern guards).
|
|
9
|
+
*/
|
|
10
|
+
/** Escapes a literal string for embedding in a regular expression. */
|
|
11
|
+
function escapeLiteral(text) {
|
|
12
|
+
return text.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
13
|
+
}
|
|
14
|
+
/** Cache of compiled patterns; bounded by the policy document size. */
|
|
15
|
+
const compileCache = new Map();
|
|
16
|
+
/**
|
|
17
|
+
* Compiles one glob pattern to a whole-string regular expression.
|
|
18
|
+
* A `**` segment matches across segment boundaries: as the last segment
|
|
19
|
+
* it matches everything after the prefix (`backend/STAR-STAR` matches
|
|
20
|
+
* `backend/api/x.py`); in the middle it matches zero or more whole
|
|
21
|
+
* segments (`a/STAR-STAR/b` matches `a/b` and `a/x/y/b`). `*` matches
|
|
22
|
+
* within a single segment; `?` matches one non-separator character.
|
|
23
|
+
*
|
|
24
|
+
* Args:
|
|
25
|
+
* pattern: glob pattern, e.g. `backend/**` or `*_audit`.
|
|
26
|
+
*
|
|
27
|
+
* Returns:
|
|
28
|
+
* RegExp: anchored, case-sensitive matcher.
|
|
29
|
+
*/
|
|
30
|
+
export function compileGlob(pattern) {
|
|
31
|
+
const cached = compileCache.get(pattern);
|
|
32
|
+
if (cached !== undefined)
|
|
33
|
+
return cached;
|
|
34
|
+
const segments = pattern.split('/');
|
|
35
|
+
const regexParts = [];
|
|
36
|
+
let afterGlobStar = false;
|
|
37
|
+
for (let i = 0; i < segments.length; i++) {
|
|
38
|
+
const segment = segments[i] ?? '';
|
|
39
|
+
if (segment === '**') {
|
|
40
|
+
if (i === segments.length - 1) {
|
|
41
|
+
// Trailing `**`: everything after the prefix (`backend/**` matches
|
|
42
|
+
// `backend/api/x.py`); a bare leading `**` matches everything.
|
|
43
|
+
if (i > 0 && !afterGlobStar)
|
|
44
|
+
regexParts.push('/');
|
|
45
|
+
regexParts.push('.*');
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
// Interior `**`: zero or more whole segments (`a/**/b` matches
|
|
49
|
+
// `a/b` and `a/x/y/b`); the construct ends with its own '/'.
|
|
50
|
+
regexParts.push('(?:.*/)?');
|
|
51
|
+
afterGlobStar = true;
|
|
52
|
+
}
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
if (i > 0 && !afterGlobStar)
|
|
56
|
+
regexParts.push('/');
|
|
57
|
+
afterGlobStar = false;
|
|
58
|
+
let segmentRegex = '';
|
|
59
|
+
for (const ch of segment) {
|
|
60
|
+
if (ch === '*')
|
|
61
|
+
segmentRegex += '[^/]*';
|
|
62
|
+
else if (ch === '?')
|
|
63
|
+
segmentRegex += '[^/]';
|
|
64
|
+
else
|
|
65
|
+
segmentRegex += escapeLiteral(ch);
|
|
66
|
+
}
|
|
67
|
+
regexParts.push(segmentRegex);
|
|
68
|
+
}
|
|
69
|
+
const regex = new RegExp(`^${regexParts.join('')}$`);
|
|
70
|
+
compileCache.set(pattern, regex);
|
|
71
|
+
return regex;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Whether a repo-root-relative path matches one glob pattern.
|
|
75
|
+
*
|
|
76
|
+
* Args:
|
|
77
|
+
* path: posix repo-root-relative path.
|
|
78
|
+
* pattern: glob pattern.
|
|
79
|
+
*
|
|
80
|
+
* Returns:
|
|
81
|
+
* boolean: true when the whole path matches.
|
|
82
|
+
*/
|
|
83
|
+
export function globMatch(path, pattern) {
|
|
84
|
+
return compileGlob(pattern).test(path);
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Whether a path falls inside ANY of the given roots (the complete-scan
|
|
88
|
+
* scope test of ADR 0003 D4).
|
|
89
|
+
*
|
|
90
|
+
* Args:
|
|
91
|
+
* path: posix repo-root-relative path.
|
|
92
|
+
* roots: scan-root globs.
|
|
93
|
+
*
|
|
94
|
+
* Returns:
|
|
95
|
+
* boolean: true when at least one root matches the path.
|
|
96
|
+
*/
|
|
97
|
+
export function pathInScope(path, roots) {
|
|
98
|
+
for (const root of roots) {
|
|
99
|
+
if (globMatch(path, root))
|
|
100
|
+
return true;
|
|
101
|
+
}
|
|
102
|
+
return false;
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=glob.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"glob.js","sourceRoot":"","sources":["../../src/classifier/glob.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,sEAAsE;AACtE,SAAS,aAAa,CAAC,IAAY;IACjC,OAAO,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACrD,CAAC;AAED,uEAAuE;AACvE,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;AAE/C;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,WAAW,CAAC,OAAe;IACzC,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACzC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IACxC,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACpC,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,IAAI,aAAa,GAAG,KAAK,CAAC;IAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAClC,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC,KAAK,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,mEAAmE;gBACnE,+DAA+D;gBAC/D,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa;oBAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAClD,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxB,CAAC;iBAAM,CAAC;gBACN,+DAA+D;gBAC/D,6DAA6D;gBAC7D,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC5B,aAAa,GAAG,IAAI,CAAC;YACvB,CAAC;YACD,SAAS;QACX,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa;YAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClD,aAAa,GAAG,KAAK,CAAC;QACtB,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,KAAK,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;YACzB,IAAI,EAAE,KAAK,GAAG;gBAAE,YAAY,IAAI,OAAO,CAAC;iBACnC,IAAI,EAAE,KAAK,GAAG;gBAAE,YAAY,IAAI,MAAM,CAAC;;gBACvC,YAAY,IAAI,aAAa,CAAC,EAAE,CAAC,CAAC;QACzC,CAAC;QACD,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAChC,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACrD,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACjC,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,SAAS,CAAC,IAAY,EAAE,OAAe;IACrD,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,KAAwB;IAChE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;IACzC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The automatic conservative classifier (ADR 0003): signal/decision
|
|
3
|
+
* schemas, the deterministic lattice, and typed blocks.
|
|
4
|
+
*/
|
|
5
|
+
export { BLOCK_DIMENSIONS, CLASSIFIER_BLOCK_CODES, ClassifierBlockCodeSchema, ClassifierBlockSchema, ClassifierContradictionSchema, ClassificationDecisionTraceSchema, EffectiveClassificationSchema, } from './schema.js';
|
|
6
|
+
export type { ClassifierBlock, ClassifierBlockCode, ClassifierContradiction, ClassificationDecisionTrace, EffectiveClassification, } from './schema.js';
|
|
7
|
+
export { RULES, classifyResources, type ClassifierResourceRef, type ClassificationDecision, type ClassificationResult, type ClassifierScanInput, type ClassifyResourcesInput, } from './classify.js';
|
|
8
|
+
export { compileGlob, globMatch, pathInScope } from './glob.js';
|
|
9
|
+
export { classifierBlocking, resourceRef, runClassification, type GraphClassification, type RunClassificationInput, } from './bind.js';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/classifier/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,yBAAyB,EACzB,qBAAqB,EACrB,6BAA6B,EAC7B,iCAAiC,EACjC,6BAA6B,GAC9B,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,eAAe,EACf,mBAAmB,EACnB,uBAAuB,EACvB,2BAA2B,EAC3B,uBAAuB,GACxB,MAAM,aAAa,CAAC;AAMrB,OAAO,EACL,KAAK,EACL,iBAAiB,EACjB,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,GAC5B,MAAM,eAAe,CAAC;AAMvB,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAMhE,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,iBAAiB,EACjB,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,GAC5B,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The automatic conservative classifier (ADR 0003): signal/decision
|
|
3
|
+
* schemas, the deterministic lattice, and typed blocks.
|
|
4
|
+
*/
|
|
5
|
+
// ---------------------------------------------------------------------------
|
|
6
|
+
// Decision/trace/block schemas
|
|
7
|
+
// ---------------------------------------------------------------------------
|
|
8
|
+
export { BLOCK_DIMENSIONS, CLASSIFIER_BLOCK_CODES, ClassifierBlockCodeSchema, ClassifierBlockSchema, ClassifierContradictionSchema, ClassificationDecisionTraceSchema, EffectiveClassificationSchema, } from './schema.js';
|
|
9
|
+
// ---------------------------------------------------------------------------
|
|
10
|
+
// The engine
|
|
11
|
+
// ---------------------------------------------------------------------------
|
|
12
|
+
export { RULES, classifyResources, } from './classify.js';
|
|
13
|
+
// ---------------------------------------------------------------------------
|
|
14
|
+
// Deterministic glob matching (scan roots, rule patterns)
|
|
15
|
+
// ---------------------------------------------------------------------------
|
|
16
|
+
export { compileGlob, globMatch, pathInScope } from './glob.js';
|
|
17
|
+
// ---------------------------------------------------------------------------
|
|
18
|
+
// Graph binding (plan phase 5, ADR 0003 D5)
|
|
19
|
+
// ---------------------------------------------------------------------------
|
|
20
|
+
export { classifierBlocking, resourceRef, runClassification, } from './bind.js';
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/classifier/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,8EAA8E;AAC9E,+BAA+B;AAC/B,8EAA8E;AAE9E,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,yBAAyB,EACzB,qBAAqB,EACrB,6BAA6B,EAC7B,iCAAiC,EACjC,6BAA6B,GAC9B,MAAM,aAAa,CAAC;AASrB,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E,OAAO,EACL,KAAK,EACL,iBAAiB,GAMlB,MAAM,eAAe,CAAC;AAEvB,8EAA8E;AAC9E,0DAA0D;AAC1D,8EAA8E;AAE9E,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAEhE,8EAA8E;AAC9E,4CAA4C;AAC5C,8EAA8E;AAE9E,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,iBAAiB,GAGlB,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Classifier result schemas (ADR 0003 D1/D2): the decision trace, the
|
|
3
|
+
* effective classification, and the typed machine-actionable blocks.
|
|
4
|
+
*
|
|
5
|
+
* `EffectiveClassification` carries the existing `Classification` fields
|
|
6
|
+
* policy/verdict code consumes PLUS explainability metadata (fingerprint,
|
|
7
|
+
* contributing signals, defaults, contradictions, rule ids). On graph
|
|
8
|
+
* resources the classification fields bind `GraphResource.classification`
|
|
9
|
+
* and the explainability rides the sibling `classificationTrace` field —
|
|
10
|
+
* never detector attributes.
|
|
11
|
+
*/
|
|
12
|
+
import { z } from 'zod';
|
|
13
|
+
/** Why the classifier blocked one resource (each code is machine-actionable). */
|
|
14
|
+
export declare const CLASSIFIER_BLOCK_CODES: readonly ["CLASSIFICATION_CONTRADICTION", "LIFECYCLE_CONTRADICTION", "PLANE_CONTRADICTION", "IDENTITY_CONTRADICTION", "INCOMPLETE_PROOF_SCOPE", "PLANE_UNRESOLVED", "IDENTITY_UNRESOLVED", "DELETE_SEMANTICS_UNRESOLVED", "ADAPTER_MISSING", "STALE_SIGNAL_TARGET", "INVALID_SIGNAL", "UNAUTHORIZED_SUPPRESSIVE_SIGNAL"];
|
|
15
|
+
/** Union of classifier block codes. */
|
|
16
|
+
export type ClassifierBlockCode = (typeof CLASSIFIER_BLOCK_CODES)[number];
|
|
17
|
+
export declare const ClassifierBlockCodeSchema: z.ZodEnum<{
|
|
18
|
+
CLASSIFICATION_CONTRADICTION: "CLASSIFICATION_CONTRADICTION";
|
|
19
|
+
LIFECYCLE_CONTRADICTION: "LIFECYCLE_CONTRADICTION";
|
|
20
|
+
PLANE_CONTRADICTION: "PLANE_CONTRADICTION";
|
|
21
|
+
IDENTITY_CONTRADICTION: "IDENTITY_CONTRADICTION";
|
|
22
|
+
INCOMPLETE_PROOF_SCOPE: "INCOMPLETE_PROOF_SCOPE";
|
|
23
|
+
PLANE_UNRESOLVED: "PLANE_UNRESOLVED";
|
|
24
|
+
IDENTITY_UNRESOLVED: "IDENTITY_UNRESOLVED";
|
|
25
|
+
DELETE_SEMANTICS_UNRESOLVED: "DELETE_SEMANTICS_UNRESOLVED";
|
|
26
|
+
ADAPTER_MISSING: "ADAPTER_MISSING";
|
|
27
|
+
STALE_SIGNAL_TARGET: "STALE_SIGNAL_TARGET";
|
|
28
|
+
INVALID_SIGNAL: "INVALID_SIGNAL";
|
|
29
|
+
UNAUTHORIZED_SUPPRESSIVE_SIGNAL: "UNAUTHORIZED_SUPPRESSIVE_SIGNAL";
|
|
30
|
+
}>;
|
|
31
|
+
/** Also expose the block dimension mapping for report/block consumers. */
|
|
32
|
+
export declare const BLOCK_DIMENSIONS: Record<string, string>;
|
|
33
|
+
/** One typed classifier block: fail-closed, explainable, resolvable in code. */
|
|
34
|
+
export declare const ClassifierBlockSchema: z.ZodObject<{
|
|
35
|
+
code: z.ZodEnum<{
|
|
36
|
+
CLASSIFICATION_CONTRADICTION: "CLASSIFICATION_CONTRADICTION";
|
|
37
|
+
LIFECYCLE_CONTRADICTION: "LIFECYCLE_CONTRADICTION";
|
|
38
|
+
PLANE_CONTRADICTION: "PLANE_CONTRADICTION";
|
|
39
|
+
IDENTITY_CONTRADICTION: "IDENTITY_CONTRADICTION";
|
|
40
|
+
INCOMPLETE_PROOF_SCOPE: "INCOMPLETE_PROOF_SCOPE";
|
|
41
|
+
PLANE_UNRESOLVED: "PLANE_UNRESOLVED";
|
|
42
|
+
IDENTITY_UNRESOLVED: "IDENTITY_UNRESOLVED";
|
|
43
|
+
DELETE_SEMANTICS_UNRESOLVED: "DELETE_SEMANTICS_UNRESOLVED";
|
|
44
|
+
ADAPTER_MISSING: "ADAPTER_MISSING";
|
|
45
|
+
STALE_SIGNAL_TARGET: "STALE_SIGNAL_TARGET";
|
|
46
|
+
INVALID_SIGNAL: "INVALID_SIGNAL";
|
|
47
|
+
UNAUTHORIZED_SUPPRESSIVE_SIGNAL: "UNAUTHORIZED_SUPPRESSIVE_SIGNAL";
|
|
48
|
+
}>;
|
|
49
|
+
resourceId: z.ZodNullable<z.ZodString>;
|
|
50
|
+
name: z.ZodNullable<z.ZodString>;
|
|
51
|
+
detail: z.ZodString;
|
|
52
|
+
locations: z.ZodArray<z.ZodObject<{
|
|
53
|
+
file: z.ZodString;
|
|
54
|
+
line: z.ZodNumber;
|
|
55
|
+
col: z.ZodNumber;
|
|
56
|
+
}, z.core.$strict>>;
|
|
57
|
+
}, z.core.$strict>;
|
|
58
|
+
/** Inferred classifier-block shape. */
|
|
59
|
+
export type ClassifierBlock = z.infer<typeof ClassifierBlockSchema>;
|
|
60
|
+
/** One contradiction between two pieces of evidence (rendered in traces). */
|
|
61
|
+
export declare const ClassifierContradictionSchema: z.ZodObject<{
|
|
62
|
+
dimension: z.ZodString;
|
|
63
|
+
detail: z.ZodString;
|
|
64
|
+
locations: z.ZodArray<z.ZodObject<{
|
|
65
|
+
file: z.ZodString;
|
|
66
|
+
line: z.ZodNumber;
|
|
67
|
+
col: z.ZodNumber;
|
|
68
|
+
}, z.core.$strict>>;
|
|
69
|
+
}, z.core.$strict>;
|
|
70
|
+
/** Inferred classifier-contradiction shape. */
|
|
71
|
+
export type ClassifierContradiction = z.infer<typeof ClassifierContradictionSchema>;
|
|
72
|
+
/**
|
|
73
|
+
* The explainability trace of one classification decision (ADR 0003 D1):
|
|
74
|
+
* rule ids that selected each value, the conservative defaults applied,
|
|
75
|
+
* the sorted contributing-signal identities, contradictions, and the
|
|
76
|
+
* dimensions the classifier could not decide.
|
|
77
|
+
*/
|
|
78
|
+
export declare const ClassificationDecisionTraceSchema: z.ZodObject<{
|
|
79
|
+
rules: z.ZodArray<z.ZodString>;
|
|
80
|
+
defaultsApplied: z.ZodArray<z.ZodString>;
|
|
81
|
+
contributingSignalIds: z.ZodArray<z.ZodString>;
|
|
82
|
+
contributingDetectors: z.ZodArray<z.ZodString>;
|
|
83
|
+
contradictions: z.ZodArray<z.ZodObject<{
|
|
84
|
+
dimension: z.ZodString;
|
|
85
|
+
detail: z.ZodString;
|
|
86
|
+
locations: z.ZodArray<z.ZodObject<{
|
|
87
|
+
file: z.ZodString;
|
|
88
|
+
line: z.ZodNumber;
|
|
89
|
+
col: z.ZodNumber;
|
|
90
|
+
}, z.core.$strict>>;
|
|
91
|
+
}, z.core.$strict>>;
|
|
92
|
+
unresolvedDimensions: z.ZodArray<z.ZodString>;
|
|
93
|
+
decisionFingerprint: z.ZodString;
|
|
94
|
+
}, z.core.$strict>;
|
|
95
|
+
/** Inferred decision-trace shape. */
|
|
96
|
+
export type ClassificationDecisionTrace = z.infer<typeof ClassificationDecisionTraceSchema>;
|
|
97
|
+
/**
|
|
98
|
+
* The classifier's complete decision for one resource: the plain
|
|
99
|
+
* `Classification` fields (what policy/verdict code consumes) plus the
|
|
100
|
+
* explainability metadata. Produced only when the resource has NO
|
|
101
|
+
* blocking classifier finding.
|
|
102
|
+
*/
|
|
103
|
+
export declare const EffectiveClassificationSchema: z.ZodObject<{
|
|
104
|
+
exposure: z.ZodEnum<{
|
|
105
|
+
"user-facing": "user-facing";
|
|
106
|
+
internal: "internal";
|
|
107
|
+
}>;
|
|
108
|
+
plane: z.ZodEnum<{
|
|
109
|
+
tenant: "tenant";
|
|
110
|
+
master: "master";
|
|
111
|
+
global: "global";
|
|
112
|
+
}>;
|
|
113
|
+
lifecycle: z.ZodObject<{
|
|
114
|
+
create: z.ZodBoolean;
|
|
115
|
+
read: z.ZodBoolean;
|
|
116
|
+
update: z.ZodBoolean;
|
|
117
|
+
delete: z.ZodBoolean;
|
|
118
|
+
deleteSemantics: z.ZodOptional<z.ZodEnum<{
|
|
119
|
+
hard: "hard";
|
|
120
|
+
archive: "archive";
|
|
121
|
+
}>>;
|
|
122
|
+
archiveFields: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>>;
|
|
123
|
+
updateableFields: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
124
|
+
}, z.core.$strict>;
|
|
125
|
+
primaryKey: z.ZodArray<z.ZodString>;
|
|
126
|
+
evidenceAdapter: z.ZodOptional<z.ZodString>;
|
|
127
|
+
evidenceLane: z.ZodOptional<z.ZodEnum<{
|
|
128
|
+
adapter: "adapter";
|
|
129
|
+
claims: "claims";
|
|
130
|
+
}>>;
|
|
131
|
+
notes: z.ZodOptional<z.ZodString>;
|
|
132
|
+
rules: z.ZodArray<z.ZodString>;
|
|
133
|
+
defaultsApplied: z.ZodArray<z.ZodString>;
|
|
134
|
+
contributingSignalIds: z.ZodArray<z.ZodString>;
|
|
135
|
+
contributingDetectors: z.ZodArray<z.ZodString>;
|
|
136
|
+
contradictions: z.ZodArray<z.ZodObject<{
|
|
137
|
+
dimension: z.ZodString;
|
|
138
|
+
detail: z.ZodString;
|
|
139
|
+
locations: z.ZodArray<z.ZodObject<{
|
|
140
|
+
file: z.ZodString;
|
|
141
|
+
line: z.ZodNumber;
|
|
142
|
+
col: z.ZodNumber;
|
|
143
|
+
}, z.core.$strict>>;
|
|
144
|
+
}, z.core.$strict>>;
|
|
145
|
+
unresolvedDimensions: z.ZodArray<z.ZodString>;
|
|
146
|
+
decisionFingerprint: z.ZodString;
|
|
147
|
+
}, z.core.$strict>;
|
|
148
|
+
/** Inferred effective-classification shape. */
|
|
149
|
+
export type EffectiveClassification = z.infer<typeof EffectiveClassificationSchema>;
|
|
150
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/classifier/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,iFAAiF;AACjF,eAAO,MAAM,sBAAsB,0TA+BzB,CAAC;AAEX,uCAAuC;AACvC,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1E,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;EAAiC,CAAC;AAExE,0EAA0E;AAC1E,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAanD,CAAC;AAEF,gFAAgF;AAChF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;kBAYvB,CAAC;AAEZ,uCAAuC;AACvC,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,6EAA6E;AAC7E,eAAO,MAAM,6BAA6B;;;;;;;;kBAS/B,CAAC;AAEZ,+CAA+C;AAC/C,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEpF;;;;;GAKG;AACH,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;kBAqBnC,CAAC;AAEZ,qCAAqC;AACrC,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAC;AAE5F;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAexC,CAAC;AAEH,+CAA+C;AAC/C,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Classifier result schemas (ADR 0003 D1/D2): the decision trace, the
|
|
3
|
+
* effective classification, and the typed machine-actionable blocks.
|
|
4
|
+
*
|
|
5
|
+
* `EffectiveClassification` carries the existing `Classification` fields
|
|
6
|
+
* policy/verdict code consumes PLUS explainability metadata (fingerprint,
|
|
7
|
+
* contributing signals, defaults, contradictions, rule ids). On graph
|
|
8
|
+
* resources the classification fields bind `GraphResource.classification`
|
|
9
|
+
* and the explainability rides the sibling `classificationTrace` field —
|
|
10
|
+
* never detector attributes.
|
|
11
|
+
*/
|
|
12
|
+
import { z } from 'zod';
|
|
13
|
+
import { LocationSchema } from '../schemas/common.js';
|
|
14
|
+
import { ClassificationSchema } from '../schemas/classification.js';
|
|
15
|
+
/** Why the classifier blocked one resource (each code is machine-actionable). */
|
|
16
|
+
export const CLASSIFIER_BLOCK_CODES = [
|
|
17
|
+
/** Internal declaration/org-rule contradicted by positive code evidence. */
|
|
18
|
+
'CLASSIFICATION_CONTRADICTION',
|
|
19
|
+
/** Conflicting lifecycle evidence: enabled (conservative) plus blocking contradiction. */
|
|
20
|
+
'LIFECYCLE_CONTRADICTION',
|
|
21
|
+
/** Conflicting plane evidence; identity normalization never guesses. */
|
|
22
|
+
'PLANE_CONTRADICTION',
|
|
23
|
+
/** Conflicting primary-key evidence. */
|
|
24
|
+
'IDENTITY_CONTRADICTION',
|
|
25
|
+
/** An internal intent exists but its closed-world certificate cannot be completed. */
|
|
26
|
+
'INCOMPLETE_PROOF_SCOPE',
|
|
27
|
+
/** No plane evidence at all; do not guess across tenant/master/global. */
|
|
28
|
+
'PLANE_UNRESOLVED',
|
|
29
|
+
/** Missing or conflicting primary key; never defaults to `id`. */
|
|
30
|
+
'IDENTITY_UNRESOLVED',
|
|
31
|
+
/** Delete enabled but semantics not provable; never guesses `hard` or `archive`. */
|
|
32
|
+
'DELETE_SEMANTICS_UNRESOLVED',
|
|
33
|
+
/** User-facing resource with no reviewed adapter in the adapters directory. */
|
|
34
|
+
'ADAPTER_MISSING',
|
|
35
|
+
/** A signal whose target matches no discovered resource. */
|
|
36
|
+
'STALE_SIGNAL_TARGET',
|
|
37
|
+
/** A signal whose assertion shape contradicts its dimension. */
|
|
38
|
+
'INVALID_SIGNAL',
|
|
39
|
+
/**
|
|
40
|
+
* A DETECTOR-channel signal with a suppressive shape (internality
|
|
41
|
+
* declaration/org rule, or a closed-world lifecycle disable). Suppressive
|
|
42
|
+
* authority is HOST-ISSUED only (ADR 0003 D2: the authority channel is a
|
|
43
|
+
* separate, engine-owned input) — a plugin can never carry it, whatever
|
|
44
|
+
* detector identity the signal claims.
|
|
45
|
+
*/
|
|
46
|
+
'UNAUTHORIZED_SUPPRESSIVE_SIGNAL',
|
|
47
|
+
];
|
|
48
|
+
export const ClassifierBlockCodeSchema = z.enum(CLASSIFIER_BLOCK_CODES);
|
|
49
|
+
/** Also expose the block dimension mapping for report/block consumers. */
|
|
50
|
+
export const BLOCK_DIMENSIONS = {
|
|
51
|
+
CLASSIFICATION_CONTRADICTION: 'exposure',
|
|
52
|
+
LIFECYCLE_CONTRADICTION: 'lifecycle',
|
|
53
|
+
INCOMPLETE_PROOF_SCOPE: 'internality',
|
|
54
|
+
PLANE_CONTRADICTION: 'plane',
|
|
55
|
+
PLANE_UNRESOLVED: 'plane',
|
|
56
|
+
IDENTITY_CONTRADICTION: 'identity',
|
|
57
|
+
IDENTITY_UNRESOLVED: 'identity',
|
|
58
|
+
DELETE_SEMANTICS_UNRESOLVED: 'delete-semantics',
|
|
59
|
+
ADAPTER_MISSING: 'adapter-binding',
|
|
60
|
+
STALE_SIGNAL_TARGET: 'target',
|
|
61
|
+
INVALID_SIGNAL: 'assertion',
|
|
62
|
+
UNAUTHORIZED_SUPPRESSIVE_SIGNAL: 'provenance',
|
|
63
|
+
};
|
|
64
|
+
/** One typed classifier block: fail-closed, explainable, resolvable in code. */
|
|
65
|
+
export const ClassifierBlockSchema = z
|
|
66
|
+
.object({
|
|
67
|
+
code: ClassifierBlockCodeSchema,
|
|
68
|
+
/** Plane-qualified id when derivable, else `null`. */
|
|
69
|
+
resourceId: z.string().min(1).nullable(),
|
|
70
|
+
/** Bare resource name when known, else `null`. */
|
|
71
|
+
name: z.string().min(1).nullable(),
|
|
72
|
+
/** Single-cause human explanation naming the failing requirement. */
|
|
73
|
+
detail: z.string().min(1),
|
|
74
|
+
/** Evidence locations (sorted deterministically). */
|
|
75
|
+
locations: z.array(LocationSchema),
|
|
76
|
+
})
|
|
77
|
+
.strict();
|
|
78
|
+
/** One contradiction between two pieces of evidence (rendered in traces). */
|
|
79
|
+
export const ClassifierContradictionSchema = z
|
|
80
|
+
.object({
|
|
81
|
+
/** The dimension the evidence conflicts on. */
|
|
82
|
+
dimension: z.string().min(1),
|
|
83
|
+
/** Human explanation naming both sides and their locations. */
|
|
84
|
+
detail: z.string().min(1),
|
|
85
|
+
/** Locations of the conflicting evidence (sorted). */
|
|
86
|
+
locations: z.array(LocationSchema),
|
|
87
|
+
})
|
|
88
|
+
.strict();
|
|
89
|
+
/**
|
|
90
|
+
* The explainability trace of one classification decision (ADR 0003 D1):
|
|
91
|
+
* rule ids that selected each value, the conservative defaults applied,
|
|
92
|
+
* the sorted contributing-signal identities, contradictions, and the
|
|
93
|
+
* dimensions the classifier could not decide.
|
|
94
|
+
*/
|
|
95
|
+
export const ClassificationDecisionTraceSchema = z
|
|
96
|
+
.object({
|
|
97
|
+
/** Stable rule ids explaining each selected value (sorted). */
|
|
98
|
+
rules: z.array(z.string().min(1)),
|
|
99
|
+
/** Rule ids of every conservative default applied (sorted). */
|
|
100
|
+
defaultsApplied: z.array(z.string().min(1)),
|
|
101
|
+
/** Sorted canonical signal ids of every contributing signal. */
|
|
102
|
+
contributingSignalIds: z.array(z.string().min(1)),
|
|
103
|
+
/** Detector identities of contributing signals, sorted, `id@version`. */
|
|
104
|
+
contributingDetectors: z.array(z.string().min(1)),
|
|
105
|
+
/** Contradictions surfaced while deciding (sorted). */
|
|
106
|
+
contradictions: z.array(ClassifierContradictionSchema),
|
|
107
|
+
/** Dimensions left undecided (sorted) — each corresponds to a block. */
|
|
108
|
+
unresolvedDimensions: z.array(z.string().min(1)),
|
|
109
|
+
/**
|
|
110
|
+
* sha256 over the canonical decision inputs (target, decision,
|
|
111
|
+
* rules, defaults, signal ids, detector versions). Any change in
|
|
112
|
+
* contributing signals changes this value (stale-awareness).
|
|
113
|
+
*/
|
|
114
|
+
decisionFingerprint: z.string().min(1),
|
|
115
|
+
})
|
|
116
|
+
.strict();
|
|
117
|
+
/**
|
|
118
|
+
* The classifier's complete decision for one resource: the plain
|
|
119
|
+
* `Classification` fields (what policy/verdict code consumes) plus the
|
|
120
|
+
* explainability metadata. Produced only when the resource has NO
|
|
121
|
+
* blocking classifier finding.
|
|
122
|
+
*/
|
|
123
|
+
export const EffectiveClassificationSchema = ClassificationSchema.extend({
|
|
124
|
+
/** Stable rule ids explaining each selected value (sorted). */
|
|
125
|
+
rules: z.array(z.string().min(1)),
|
|
126
|
+
/** Rule ids of every conservative default applied (sorted). */
|
|
127
|
+
defaultsApplied: z.array(z.string().min(1)),
|
|
128
|
+
/** Sorted canonical signal ids of every contributing signal. */
|
|
129
|
+
contributingSignalIds: z.array(z.string().min(1)),
|
|
130
|
+
/** Detector identities of contributing signals, sorted, `id@version`. */
|
|
131
|
+
contributingDetectors: z.array(z.string().min(1)),
|
|
132
|
+
/** Contradictions surfaced while deciding (sorted). */
|
|
133
|
+
contradictions: z.array(ClassifierContradictionSchema),
|
|
134
|
+
/** Dimensions left undecided (sorted) — always empty on a decision. */
|
|
135
|
+
unresolvedDimensions: z.array(z.string().min(1)),
|
|
136
|
+
/** sha256 over the canonical decision inputs (stale-aware identity). */
|
|
137
|
+
decisionFingerprint: z.string().min(1),
|
|
138
|
+
});
|
|
139
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/classifier/schema.ts"],"names":[],"mappings":"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"}
|