@duckcodeailabs/dql-governance 1.6.21 → 1.6.23
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/certifier.d.ts +15 -2
- package/dist/certifier.d.ts.map +1 -1
- package/dist/certifier.js +43 -7
- package/dist/certifier.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/invariant-evaluator.d.ts +96 -0
- package/dist/invariant-evaluator.d.ts.map +1 -0
- package/dist/invariant-evaluator.js +257 -0
- package/dist/invariant-evaluator.js.map +1 -0
- package/package.json +3 -3
package/dist/certifier.d.ts
CHANGED
|
@@ -1,4 +1,17 @@
|
|
|
1
1
|
import type { BlockRecord, TestResultSummary } from '@duckcodeailabs/dql-project';
|
|
2
|
+
import { type InvariantResult } from './invariant-evaluator.js';
|
|
3
|
+
/**
|
|
4
|
+
* Extra signals a certification rule can read beyond the block + test results.
|
|
5
|
+
* Additive and optional so existing rules and callers are unaffected.
|
|
6
|
+
*/
|
|
7
|
+
export interface CertificationContext {
|
|
8
|
+
/**
|
|
9
|
+
* Results of evaluating the block's declared invariants against the most
|
|
10
|
+
* recent run's result set. Undefined when no run was performed; an empty
|
|
11
|
+
* array means the block declares no invariants.
|
|
12
|
+
*/
|
|
13
|
+
invariantResults?: InvariantResult[];
|
|
14
|
+
}
|
|
2
15
|
/**
|
|
3
16
|
* Certification rule that a block must pass to be certified.
|
|
4
17
|
*/
|
|
@@ -7,7 +20,7 @@ export interface CertificationRule {
|
|
|
7
20
|
name: string;
|
|
8
21
|
description: string;
|
|
9
22
|
severity: 'error' | 'warning';
|
|
10
|
-
check: (block: BlockRecord, testResults?: TestResultSummary) => CertificationCheckResult;
|
|
23
|
+
check: (block: BlockRecord, testResults?: TestResultSummary, context?: CertificationContext) => CertificationCheckResult;
|
|
11
24
|
}
|
|
12
25
|
export interface CertificationCheckResult {
|
|
13
26
|
passed: boolean;
|
|
@@ -46,6 +59,6 @@ export declare class Certifier {
|
|
|
46
59
|
/**
|
|
47
60
|
* Evaluate a block against all rules.
|
|
48
61
|
*/
|
|
49
|
-
evaluate(block: BlockRecord, testResults?: TestResultSummary): CertificationResult;
|
|
62
|
+
evaluate(block: BlockRecord, testResults?: TestResultSummary, context?: CertificationContext): CertificationResult;
|
|
50
63
|
}
|
|
51
64
|
//# sourceMappingURL=certifier.d.ts.map
|
package/dist/certifier.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"certifier.d.ts","sourceRoot":"","sources":["../src/certifier.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"certifier.d.ts","sourceRoot":"","sources":["../src/certifier.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAClF,OAAO,EAAyB,KAAK,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEvF;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,KAAK,EAAE,CACL,KAAK,EAAE,WAAW,EAClB,WAAW,CAAC,EAAE,iBAAiB,EAC/B,OAAO,CAAC,EAAE,oBAAoB,KAC3B,wBAAwB,CAAC;CAC/B;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjD,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnD,SAAS,EAAE,IAAI,CAAC;CACjB;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,iBAAiB,EA+X5C,CAAC;AAqEF,eAAO,MAAM,gBAAgB,EAAE,iBAAiB,EAmC/C,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,iBAAiB,EAsB/C,CAAC;AAEF;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,KAAK,CAAsB;gBAEvB,KAAK,CAAC,EAAE,iBAAiB,EAAE;IAIvC;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI;IAItC;;OAEG;IACH,QAAQ,CACN,KAAK,EAAE,WAAW,EAClB,WAAW,CAAC,EAAE,iBAAiB,EAC/B,OAAO,CAAC,EAAE,oBAAoB,GAC7B,mBAAmB;CAyBvB"}
|
package/dist/certifier.js
CHANGED
|
@@ -5,8 +5,9 @@ export const BUILTIN_RULES = [
|
|
|
5
5
|
{
|
|
6
6
|
id: 'has-description',
|
|
7
7
|
name: 'Block has description',
|
|
8
|
-
description: '
|
|
9
|
-
|
|
8
|
+
description: 'Blocks should have a business-facing description. The AI drafts one at build time and the ' +
|
|
9
|
+
'reviewer can edit it — so this is advisory, not a hard gate. Owner accountability is the gate.',
|
|
10
|
+
severity: 'warning',
|
|
10
11
|
check: (block) => ({
|
|
11
12
|
passed: !!block.description && block.description.trim().length > 0,
|
|
12
13
|
message: block.description ? undefined : 'Missing description',
|
|
@@ -15,7 +16,7 @@ export const BUILTIN_RULES = [
|
|
|
15
16
|
{
|
|
16
17
|
id: 'has-owner',
|
|
17
18
|
name: 'Block has owner',
|
|
18
|
-
description: 'Every block must have an
|
|
19
|
+
description: 'Every block must have an accountable owner — the one field a human must confirm to certify',
|
|
19
20
|
severity: 'error',
|
|
20
21
|
check: (block) => ({
|
|
21
22
|
passed: !!block.owner && block.owner.trim().length > 0,
|
|
@@ -25,8 +26,9 @@ export const BUILTIN_RULES = [
|
|
|
25
26
|
{
|
|
26
27
|
id: 'has-domain',
|
|
27
28
|
name: 'Block has domain',
|
|
28
|
-
description: '
|
|
29
|
-
|
|
29
|
+
description: 'Blocks should belong to a domain. The draft pipeline assigns one from context (default "misc"), ' +
|
|
30
|
+
'so this is advisory — the reviewer can reassign it without blocking certification.',
|
|
31
|
+
severity: 'warning',
|
|
30
32
|
check: (block) => ({
|
|
31
33
|
passed: !!block.domain && block.domain.trim().length > 0,
|
|
32
34
|
message: block.domain ? undefined : 'Missing domain',
|
|
@@ -87,6 +89,39 @@ export const BUILTIN_RULES = [
|
|
|
87
89
|
return { passed: true };
|
|
88
90
|
},
|
|
89
91
|
},
|
|
92
|
+
{
|
|
93
|
+
id: 'invariants-hold',
|
|
94
|
+
name: 'Declared invariants hold',
|
|
95
|
+
description: "A block's declared invariants must hold against its most recent run's result. " +
|
|
96
|
+
'Warning by default; an error in enterprise mode. Complements tests — does not replace them.',
|
|
97
|
+
severity: 'warning',
|
|
98
|
+
check: (block, _testResults, context) => {
|
|
99
|
+
const declared = block.invariants ?? [];
|
|
100
|
+
if (declared.length === 0) {
|
|
101
|
+
// Blocks without invariants are unaffected — nothing to enforce.
|
|
102
|
+
return { passed: true };
|
|
103
|
+
}
|
|
104
|
+
const results = context?.invariantResults;
|
|
105
|
+
if (!results || results.length === 0) {
|
|
106
|
+
// Invariants are declared but no run produced results to check them
|
|
107
|
+
// against. We cannot assert the guarantees hold, so block certification.
|
|
108
|
+
return {
|
|
109
|
+
passed: false,
|
|
110
|
+
message: 'Invariants are declared but no run result was available to evaluate them',
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
const violations = results.filter((entry) => !entry.passed && !entry.uncheckable);
|
|
114
|
+
if (violations.length > 0) {
|
|
115
|
+
return {
|
|
116
|
+
passed: false,
|
|
117
|
+
message: violations
|
|
118
|
+
.map((entry) => `${entry.expr} — ${entry.detail}`)
|
|
119
|
+
.join('; '),
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
return { passed: true };
|
|
123
|
+
},
|
|
124
|
+
},
|
|
90
125
|
{
|
|
91
126
|
id: 'declares-grain',
|
|
92
127
|
name: 'Block declares grain',
|
|
@@ -400,6 +435,7 @@ const ENTERPRISE_REQUIRED_RULE_IDS = new Set([
|
|
|
400
435
|
'has-domain',
|
|
401
436
|
'tests-pass',
|
|
402
437
|
'has-tests',
|
|
438
|
+
'invariants-hold',
|
|
403
439
|
'declares-grain',
|
|
404
440
|
'declares-outputs',
|
|
405
441
|
'declares-review-cadence',
|
|
@@ -489,11 +525,11 @@ export class Certifier {
|
|
|
489
525
|
/**
|
|
490
526
|
* Evaluate a block against all rules.
|
|
491
527
|
*/
|
|
492
|
-
evaluate(block, testResults) {
|
|
528
|
+
evaluate(block, testResults, context) {
|
|
493
529
|
const errors = [];
|
|
494
530
|
const warnings = [];
|
|
495
531
|
for (const rule of this.rules) {
|
|
496
|
-
const result = rule.check(block, testResults);
|
|
532
|
+
const result = rule.check(block, testResults, context);
|
|
497
533
|
if (!result.passed) {
|
|
498
534
|
const entry = { rule: rule.name, message: result.message ?? rule.description };
|
|
499
535
|
if (rule.severity === 'error') {
|
package/dist/certifier.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"certifier.js","sourceRoot":"","sources":["../src/certifier.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"certifier.js","sourceRoot":"","sources":["../src/certifier.ts"],"names":[],"mappings":"AA6CA;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAwB;IAChD;QACE,EAAE,EAAE,iBAAiB;QACrB,IAAI,EAAE,uBAAuB;QAC7B,WAAW,EACT,4FAA4F;YAC5F,gGAAgG;QAClG,QAAQ,EAAE,SAAS;QACnB,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACjB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;YAClE,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,qBAAqB;SAC/D,CAAC;KACH;IACD;QACE,EAAE,EAAE,WAAW;QACf,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,4FAA4F;QACzG,QAAQ,EAAE,OAAO;QACjB,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACjB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;YACtD,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe;SACnD,CAAC;KACH;IACD;QACE,EAAE,EAAE,YAAY;QAChB,IAAI,EAAE,kBAAkB;QACxB,WAAW,EACT,kGAAkG;YAClG,oFAAoF;QACtF,QAAQ,EAAE,SAAS;QACnB,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACjB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;YACxD,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB;SACrD,CAAC;KACH;IACD;QACE,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,yDAAyD;QACtE,QAAQ,EAAE,SAAS;QACnB,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACjB,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;YAC7B,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,mBAAmB;SACjE,CAAC;KACH;IACD;QACE,EAAE,EAAE,iBAAiB;QACrB,IAAI,EAAE,uBAAuB;QAC7B,WAAW,EACT,8HAA8H;QAChI,QAAQ,EAAE,SAAS;QACnB,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;YACf,MAAM,GAAG,GAAG,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC;YACrC,OAAO;gBACL,MAAM,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;gBAC/B,OAAO,EAAE,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,8DAA8D;aAC5G,CAAC;QACJ,CAAC;KACF;IACD;QACE,EAAE,EAAE,YAAY;QAChB,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,6CAA6C;QAC1D,QAAQ,EAAE,OAAO;QACjB,KAAK,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE;YAC7B,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,2BAA2B,EAAE,CAAC;YACjE,CAAC;YACD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3B,OAAO;oBACL,MAAM,EAAE,KAAK;oBACb,OAAO,EAAE,GAAG,WAAW,CAAC,MAAM,iBAAiB;iBAChD,CAAC;YACJ,CAAC;YACD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QAC1B,CAAC;KACF;IACD;QACE,EAAE,EAAE,WAAW;QACf,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,gDAAgD;QAC7D,QAAQ,EAAE,SAAS;QACnB,KAAK,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE;YAC5B,MAAM,aAAa,GAAG,KAAK,CAAC,cAAc,EAAE,MAAM,IAAI,CAAC,CAAC;YACxD,MAAM,aAAa,GAAG,WAAW,EAAE,UAAU,CAAC,MAAM,IAAI,CAAC,CAAC;YAC1D,IAAI,aAAa,KAAK,CAAC,IAAI,aAAa,KAAK,CAAC,EAAE,CAAC;gBAC/C,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,4BAA4B,EAAE,CAAC;YAClE,CAAC;YACD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QAC1B,CAAC;KACF;IACD;QACE,EAAE,EAAE,iBAAiB;QACrB,IAAI,EAAE,0BAA0B;QAChC,WAAW,EACT,gFAAgF;YAChF,6FAA6F;QAC/F,QAAQ,EAAE,SAAS;QACnB,KAAK,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE;YACtC,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC;YACxC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1B,iEAAiE;gBACjE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;YAC1B,CAAC;YACD,MAAM,OAAO,GAAG,OAAO,EAAE,gBAAgB,CAAC;YAC1C,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACrC,oEAAoE;gBACpE,yEAAyE;gBACzE,OAAO;oBACL,MAAM,EAAE,KAAK;oBACb,OAAO,EAAE,0EAA0E;iBACpF,CAAC;YACJ,CAAC;YACD,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAClF,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,OAAO;oBACL,MAAM,EAAE,KAAK;oBACb,OAAO,EAAE,UAAU;yBAChB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC;yBACjD,IAAI,CAAC,IAAI,CAAC;iBACd,CAAC;YACJ,CAAC;YACD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QAC1B,CAAC;KACF;IACD;QACE,EAAE,EAAE,gBAAgB;QACpB,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EAAE,iFAAiF;QAC9F,QAAQ,EAAE,SAAS;QACnB,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACjB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;YACtD,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,wBAAwB;SAC5D,CAAC;KACH;IACD;QACE,EAAE,EAAE,kBAAkB;QACtB,IAAI,EAAE,wBAAwB;QAC9B,WAAW,EAAE,6EAA6E;QAC1F,QAAQ,EAAE,SAAS;QACnB,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACjB,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC;YAChF,OAAO,EAAE,KAAK,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,0BAA0B;SAChF,CAAC;KACH;IACD;QACE,EAAE,EAAE,mBAAmB;QACvB,IAAI,EAAE,yBAAyB;QAC/B,WAAW,EAAE,2FAA2F;QACxG,QAAQ,EAAE,SAAS;QACnB,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACjB,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;YAClE,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,2BAA2B;SAC1E,CAAC;KACH;IACD;QACE,EAAE,EAAE,yBAAyB;QAC7B,IAAI,EAAE,+BAA+B;QACrC,WAAW,EAAE,8EAA8E;QAC3F,QAAQ,EAAE,SAAS;QACnB,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACjB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;YACtE,OAAO,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,gCAAgC;SAC5E,CAAC;KACH;IACD;QACE,EAAE,EAAE,qBAAqB;QACzB,IAAI,EAAE,wBAAwB;QAC9B,WAAW,EAAE,2FAA2F;QACxG,QAAQ,EAAE,SAAS;QACnB,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;YACf,IAAI,CAAC,KAAK,CAAC,OAAO;gBAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;YAC5C,OAAO;gBACL,MAAM,EAAE,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC;gBACxC,OAAO,EAAE,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,0BAA0B,KAAK,CAAC,OAAO,EAAE;aAClG,CAAC;QACJ,CAAC;KACF;IACD;QACE,EAAE,EAAE,yBAAyB;QAC7B,IAAI,EAAE,6CAA6C;QACnD,WAAW,EAAE,6FAA6F;QAC1G,QAAQ,EAAE,SAAS;QACnB,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;YACf,IAAI,KAAK,CAAC,OAAO,KAAK,gBAAgB;gBAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;YAChE,MAAM,SAAS,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;YACtD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;YAChC,MAAM,OAAO,GAAG,KAAK,CAAC,eAAe,IAAI,EAAE,CAAC;YAC5C,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,KAAK,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAChG,OAAO;gBACL,MAAM,EAAE,SAAS,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,aAAa;gBACpD,OAAO,EAAE,SAAS,IAAI,KAAK,IAAI,aAAa;oBAC1C,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,+EAA+E;aACpF,CAAC;QACJ,CAAC;KACF;IACD;QACE,EAAE,EAAE,yBAAyB;QAC7B,IAAI,EAAE,kDAAkD;QACxD,WAAW,EAAE,qFAAqF;QAClG,QAAQ,EAAE,SAAS;QACnB,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;YACf,IAAI,KAAK,CAAC,OAAO,KAAK,gBAAgB;gBAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;YAChE,MAAM,UAAU,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;YAC7C,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC;YACvC,OAAO;gBACL,MAAM;gBACN,OAAO,EAAE,MAAM;oBACb,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,kGAAkG;aACvG,CAAC;QACJ,CAAC;KACF;IACD;QACE,EAAE,EAAE,wBAAwB;QAC5B,IAAI,EAAE,kDAAkD;QACxD,WAAW,EAAE,6EAA6E;QAC1F,QAAQ,EAAE,SAAS;QACnB,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;YACf,IAAI,KAAK,CAAC,OAAO,KAAK,eAAe;gBAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;YAC/D,MAAM,SAAS,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;YACtD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;YAChC,MAAM,OAAO,GAAG,KAAK,CAAC,eAAe,IAAI,EAAE,CAAC;YAC5C,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,KAAK,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAChG,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACrD,OAAO;gBACL,MAAM,EAAE,SAAS,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,aAAa,IAAI,UAAU;gBAClE,OAAO,EAAE,SAAS,IAAI,KAAK,IAAI,aAAa,IAAI,UAAU;oBACxD,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,iHAAiH;aACtH,CAAC;QACJ,CAAC;KACF;IACD;QACE,EAAE,EAAE,kBAAkB;QACtB,IAAI,EAAE,iDAAiD;QACvD,WAAW,EAAE,2GAA2G;QACxH,QAAQ,EAAE,SAAS;QACnB,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;YACf,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS;gBAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;YACzD,MAAM,OAAO,GAAG,KAAK,CAAC,eAAe,IAAI,EAAE,CAAC;YAC5C,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACpD,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;YAC/E,OAAO;gBACL,MAAM,EAAE,SAAS,IAAI,YAAY;gBACjC,OAAO,EAAE,SAAS,IAAI,YAAY;oBAChC,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,iEAAiE;aACtE,CAAC;QACJ,CAAC;KACF;IACD;QACE,EAAE,EAAE,gBAAgB;QACpB,IAAI,EAAE,2BAA2B;QACjC,WAAW,EAAE,yDAAyD;QACtE,QAAQ,EAAE,SAAS;QACnB,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;YACf,IAAI,KAAK,CAAC,OAAO,KAAK,OAAO;gBAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;YACvD,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,eAAe,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACxG,MAAM,OAAO,GAAG,qDAAqD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjF,OAAO;gBACL,MAAM,EAAE,OAAO;gBACf,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,wDAAwD;aACxF,CAAC;QACJ,CAAC;KACF;IACD;QACE,EAAE,EAAE,oBAAoB;QACxB,IAAI,EAAE,qCAAqC;QAC3C,WAAW,EAAE,2GAA2G;QACxH,QAAQ,EAAE,SAAS;QACnB,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;YACf,IAAI,KAAK,CAAC,OAAO,KAAK,WAAW;gBAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;YAC3D,MAAM,UAAU,GAAG,CAAC,KAAK,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;YAC5D,MAAM,yBAAyB,GAAG,4BAA4B,CAAC,KAAK,CAAC,CAAC;YACtE,OAAO;gBACL,MAAM,EAAE,UAAU,IAAI,yBAAyB;gBAC/C,OAAO,EAAE,UAAU,IAAI,yBAAyB;oBAC9C,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,iHAAiH;aACtH,CAAC;QACJ,CAAC;KACF;IACD;QACE,EAAE,EAAE,yBAAyB;QAC7B,IAAI,EAAE,8BAA8B;QACpC,WAAW,EAAE,mEAAmE;QAChF,QAAQ,EAAE,SAAS;QACnB,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;YACf,MAAM,OAAO,GAAG,CAAC,KAAK,CAAC,eAAe,IAAI,EAAE,CAAC;iBAC1C,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,wBAAwB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;iBAC1D,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;YACnD,OAAO;gBACL,MAAM,EAAE,OAAO,CAAC,MAAM,KAAK,CAAC;gBAC5B,OAAO,EAAE,OAAO,CAAC,MAAM,KAAK,CAAC;oBAC3B,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,0CAA0C,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;aACnE,CAAC;QACJ,CAAC;KACF;IACD;QACE,EAAE,EAAE,yBAAyB;QAC7B,IAAI,EAAE,sCAAsC;QAC5C,WAAW,EAAE,gFAAgF;QAC7F,QAAQ,EAAE,SAAS;QACnB,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;YACf,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YAC5G,MAAM,QAAQ,GAAG,KAAK,CAAC,cAAc,IAAI,EAAE,CAAC;YAC5C,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,KAAK,CAAC;gBACvC,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,QAAQ;qBACP,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;qBACpD,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAClC,MAAM,wBAAwB,GAAG,cAAc,CAAC,IAAI,GAAG,CAAC;mBACnD,QAAQ,CAAC,MAAM,KAAK,CAAC;mBACrB,CAAC,KAAK,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;YAChD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,OAAO;oBACL,MAAM,EAAE,KAAK;oBACb,OAAO,EAAE,0DAA0D,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;iBACtG,CAAC;YACJ,CAAC;YACD,OAAO;gBACL,MAAM,EAAE,CAAC,wBAAwB;gBACjC,OAAO,EAAE,wBAAwB;oBAC/B,CAAC,CAAC,0GAA0G;oBAC5G,CAAC,CAAC,SAAS;aACd,CAAC;QACJ,CAAC;KACF;IACD;QACE,EAAE,EAAE,wBAAwB;QAC5B,IAAI,EAAE,mDAAmD;QACzD,WAAW,EAAE,yFAAyF;QACtG,QAAQ,EAAE,SAAS;QACnB,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;YACf,IAAI,KAAK,CAAC,OAAO,KAAK,QAAQ;gBAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;YACxD,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC/C,MAAM,aAAa,GAAG,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YACzD,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;YACrD,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,aAAa,CAAC,MAAM,IAAI,CAAC,CAAC;YACtE,MAAM,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YACtF,MAAM,iBAAiB,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACxE,MAAM,MAAM,GAAG,WAAW,IAAI,eAAe,IAAI,iBAAiB,CAAC;YACnE,OAAO;gBACL,MAAM;gBACN,OAAO,EAAE,MAAM;oBACb,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,qGAAqG;aAC1G,CAAC;QACJ,CAAC;KACF;IACD;QACE,EAAE,EAAE,kCAAkC;QACtC,IAAI,EAAE,kCAAkC;QACxC,WAAW,EAAE,kFAAkF;QAC/F,QAAQ,EAAE,SAAS;QACnB,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;YACf,IAAI,KAAK,CAAC,OAAO,KAAK,aAAa;gBAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;YAC7D,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;YACvD,OAAO;gBACL,MAAM;gBACN,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,8CAA8C;aAC7E,CAAC;QACJ,CAAC;KACF;IACD;QACE,EAAE,EAAE,iBAAiB;QACrB,IAAI,EAAE,0BAA0B;QAChC,WAAW,EAAE,gDAAgD;QAC7D,QAAQ,EAAE,SAAS;QACnB,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;YACf,IAAI,KAAK,CAAC,YAAY,IAAI,IAAI;gBAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;YACxD,IAAI,KAAK,CAAC,YAAY,GAAG,GAAG,EAAE,CAAC;gBAC7B,OAAO;oBACL,MAAM,EAAE,KAAK;oBACb,OAAO,EAAE,iBAAiB,KAAK,CAAC,YAAY,2BAA2B;iBACxE,CAAC;YACJ,CAAC;YACD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QAC1B,CAAC;KACF;CACF,CAAC;AAEF,SAAS,iBAAiB,CAAC,OAAe;IACxC,OAAO,IAAI,GAAG,CAAC;QACb,gBAAgB;QAChB,gBAAgB;QAChB,eAAe;QACf,SAAS;QACT,OAAO;QACP,QAAQ;QACR,WAAW;QACX,aAAa;QACb,QAAQ;KACT,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAkB;IAC5C,OAAO,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAClG,CAAC;AAED,SAAS,aAAa,CAAC,MAA4B;IACjD,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAc;IACzC,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACjD,OAAO,+GAA+G,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC1I,CAAC;AAED,SAAS,4BAA4B,CAAC,KAAkB;IACtD,OAAO,CAAC,KAAK,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC;WACzC,CAAC,KAAK,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC;WACxC,CAAC,KAAK,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,wBAAwB,CAAC,MAAc;IAC9C,OAAO,IAAI,GAAG,CAAC;QACb,SAAS;QACT,QAAQ;QACR,UAAU;QACV,SAAS;QACT,UAAU;QACV,2BAA2B;KAC5B,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACjB,CAAC;AAED,MAAM,4BAA4B,GAAG,IAAI,GAAG,CAAC;IAC3C,iBAAiB;IACjB,WAAW;IACX,YAAY;IACZ,YAAY;IACZ,WAAW;IACX,iBAAiB;IACjB,gBAAgB;IAChB,kBAAkB;IAClB,yBAAyB;IACzB,qBAAqB;IACrB,yBAAyB;IACzB,yBAAyB;IACzB,wBAAwB;IACxB,kBAAkB;IAClB,gBAAgB;IAChB,oBAAoB;IACpB,wBAAwB;IACxB,kCAAkC;IAClC,yBAAyB;IACzB,yBAAyB;CAC1B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAwB;IACnD,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAqB,EAAE,CAAC,CAChD,4BAA4B,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,OAAgB,EAAE;QACzC,CAAC,CAAC,IAAI,CACT,CAAC;IACF;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,gCAAgC;QACtC,WAAW,EAAE,oFAAoF;QACjG,QAAQ,EAAE,OAAO;QACjB,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;YACf,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,IAAI,EAAE,CAAC;YAChD,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,IAAI,EAAE,CAAC;YAC9C,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;YACnE,OAAO;gBACL,MAAM;gBACN,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,sDAAsD;aACrF,CAAC;QACJ,CAAC;KACF;IACD;QACE,EAAE,EAAE,kBAAkB;QACtB,IAAI,EAAE,iCAAiC;QACvC,WAAW,EAAE,uEAAuE;QACpF,QAAQ,EAAE,OAAO;QACjB,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;YACf,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;YACtC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,OAAO,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;YAClF,OAAO;gBACL,MAAM;gBACN,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,kCAAkC;aACjE,CAAC;QACJ,CAAC;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAwB;IACnD,GAAG,aAAa;IAChB;QACE,EAAE,EAAE,oBAAoB;QACxB,IAAI,EAAE,kCAAkC;QACxC,WAAW,EAAE,wDAAwD;QACrE,QAAQ,EAAE,OAAO;QACjB,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACjB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC;YAC/G,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,4CAA4C,CAAC,CAAC,CAAC,kBAAkB;SAC3F,CAAC;KACH;IACD;QACE,EAAE,EAAE,gBAAgB;QACpB,IAAI,EAAE,4BAA4B;QAClC,WAAW,EAAE,gDAAgD;QAC7D,QAAQ,EAAE,OAAO;QACjB,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACjB,MAAM,EAAE,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;YAC7C,OAAO,EAAE,YAAY,KAAK,CAAC,OAAO,oCAAoC;SACvE,CAAC;KACH;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,OAAO,SAAS;IACZ,KAAK,CAAsB;IAEnC,YAAY,KAA2B;QACrC,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,aAAa,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,IAAuB;QAC7B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,QAAQ,CACN,KAAkB,EAClB,WAA+B,EAC/B,OAA8B;QAE9B,MAAM,MAAM,GAA6C,EAAE,CAAC;QAC5D,MAAM,QAAQ,GAA6C,EAAE,CAAC;QAE9D,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;YACvD,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBACnB,MAAM,KAAK,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC/E,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;oBAC9B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACrB,CAAC;qBAAM,CAAC;oBACN,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACvB,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO;YACL,OAAO,EAAE,KAAK,CAAC,EAAE;YACjB,SAAS,EAAE,KAAK,CAAC,IAAI;YACrB,SAAS,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;YAC9B,MAAM;YACN,QAAQ;YACR,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB,CAAC;IACJ,CAAC;CACF"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
export { TestRunner } from './test-runner.js';
|
|
2
2
|
export type { BlockTestAssertion, QueryExecutor } from './test-runner.js';
|
|
3
3
|
export { Certifier, BUILTIN_RULES, ENTERPRISE_RULES, PROMOTABLE_RULES } from './certifier.js';
|
|
4
|
-
export type { CertificationRule, CertificationCheckResult, CertificationResult } from './certifier.js';
|
|
4
|
+
export type { CertificationRule, CertificationCheckResult, CertificationResult, CertificationContext, } from './certifier.js';
|
|
5
|
+
export { parseInvariant, evaluateInvariant, evaluateInvariants, hasInvariantViolation, } from './invariant-evaluator.js';
|
|
6
|
+
export type { InvariantResult, InvariantResultSet } from './invariant-evaluator.js';
|
|
5
7
|
export { CostEstimator } from './cost-estimator.js';
|
|
6
8
|
export type { CostEstimate, CostFactor } from './cost-estimator.js';
|
|
7
9
|
export { PolicyEngine } from './policy-engine.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,YAAY,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAE1E,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC9F,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,YAAY,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAE1E,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC9F,YAAY,EACV,iBAAiB,EACjB,wBAAwB,EACxB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEpF,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EACV,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,kBAAkB,EAClB,WAAW,GACZ,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,YAAY,EACV,eAAe,EACf,YAAY,EACZ,aAAa,EACb,cAAc,EACd,gBAAgB,GACjB,MAAM,mBAAmB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { TestRunner } from './test-runner.js';
|
|
2
2
|
export { Certifier, BUILTIN_RULES, ENTERPRISE_RULES, PROMOTABLE_RULES } from './certifier.js';
|
|
3
|
+
export { parseInvariant, evaluateInvariant, evaluateInvariants, hasInvariantViolation, } from './invariant-evaluator.js';
|
|
3
4
|
export { CostEstimator } from './cost-estimator.js';
|
|
4
5
|
export { PolicyEngine } from './policy-engine.js';
|
|
5
6
|
export { MultiDomainGovernance } from './multi-domain.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAQ9F,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AASlD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Invariant evaluator.
|
|
3
|
+
*
|
|
4
|
+
* A block's `invariants` are free-form assertions (e.g. `"approval_rate_pct <= 100"`,
|
|
5
|
+
* `"health_score between 0 and 100"`, `"arr >= 0"`) that must hold for the block's
|
|
6
|
+
* result set. Until now they were stored in the manifest and surfaced to agents as
|
|
7
|
+
* prompt grounding, but never executed — so "certified" did not mean "the stated
|
|
8
|
+
* guarantees hold".
|
|
9
|
+
*
|
|
10
|
+
* This module parses each invariant string into a checkable predicate over result
|
|
11
|
+
* columns and evaluates it against the block's result rows. It is a SMALL, SAFE
|
|
12
|
+
* evaluator: it never calls `eval()` / `Function()`. Anything it cannot parse is
|
|
13
|
+
* reported as an "uncheckable invariant" warning rather than failing closed.
|
|
14
|
+
*
|
|
15
|
+
* Supported forms (case-insensitive on keywords):
|
|
16
|
+
* - comparisons: `<column> <op> <number>` where op is `>= <= > < == = != <>`
|
|
17
|
+
* - between: `<column> between <low> and <high>` (inclusive)
|
|
18
|
+
* - not between: `<column> not between <low> and <high>`
|
|
19
|
+
* - null checks: `<column> is null` / `<column> is not null`
|
|
20
|
+
* - non-negative etc. handled by the comparison form (`arr >= 0`).
|
|
21
|
+
*
|
|
22
|
+
* The column is checked across EVERY row; a single-value result is just one row.
|
|
23
|
+
* An invariant passes only if it holds for all rows. The first violating row is
|
|
24
|
+
* reported in `detail` so the failure is actionable.
|
|
25
|
+
*/
|
|
26
|
+
/** Outcome of evaluating a single invariant against a result set. */
|
|
27
|
+
export interface InvariantResult {
|
|
28
|
+
/** The original invariant expression string, verbatim. */
|
|
29
|
+
expr: string;
|
|
30
|
+
/** True when the invariant held for every row (or was vacuously true for an empty result). */
|
|
31
|
+
passed: boolean;
|
|
32
|
+
/**
|
|
33
|
+
* True when the invariant string could not be parsed into a checkable predicate.
|
|
34
|
+
* Uncheckable invariants do NOT count as violations — they are surfaced as
|
|
35
|
+
* warnings so authors can fix the wording. `passed` is true for these so they
|
|
36
|
+
* never block certification.
|
|
37
|
+
*/
|
|
38
|
+
uncheckable?: boolean;
|
|
39
|
+
/** Human-readable explanation of the pass / fail / uncheckable outcome. */
|
|
40
|
+
detail: string;
|
|
41
|
+
}
|
|
42
|
+
/** A minimal, column/row-shaped view of a block result the evaluator can read. */
|
|
43
|
+
export interface InvariantResultSet {
|
|
44
|
+
/** Column names present in the result. */
|
|
45
|
+
columns: string[];
|
|
46
|
+
/** Result rows keyed by column name. A scalar result is a single row. */
|
|
47
|
+
rows: Array<Record<string, unknown>>;
|
|
48
|
+
}
|
|
49
|
+
type Comparator = '>=' | '<=' | '>' | '<' | '==' | '!=';
|
|
50
|
+
interface ComparisonPredicate {
|
|
51
|
+
kind: 'comparison';
|
|
52
|
+
column: string;
|
|
53
|
+
op: Comparator;
|
|
54
|
+
value: number;
|
|
55
|
+
}
|
|
56
|
+
interface BetweenPredicate {
|
|
57
|
+
kind: 'between';
|
|
58
|
+
column: string;
|
|
59
|
+
low: number;
|
|
60
|
+
high: number;
|
|
61
|
+
negated: boolean;
|
|
62
|
+
}
|
|
63
|
+
interface NullPredicate {
|
|
64
|
+
kind: 'null';
|
|
65
|
+
column: string;
|
|
66
|
+
negated: boolean;
|
|
67
|
+
}
|
|
68
|
+
type Predicate = ComparisonPredicate | BetweenPredicate | NullPredicate;
|
|
69
|
+
interface ParseFailure {
|
|
70
|
+
kind: 'unparseable';
|
|
71
|
+
reason: string;
|
|
72
|
+
}
|
|
73
|
+
type ParseOutcome = Predicate | ParseFailure;
|
|
74
|
+
/**
|
|
75
|
+
* Parse a single invariant string into a checkable predicate, or a parse failure
|
|
76
|
+
* describing why it is uncheckable. Pure / side-effect free.
|
|
77
|
+
*/
|
|
78
|
+
export declare function parseInvariant(raw: string): ParseOutcome;
|
|
79
|
+
/**
|
|
80
|
+
* Evaluate a single invariant string against a result set.
|
|
81
|
+
*
|
|
82
|
+
* Always returns an {@link InvariantResult}; it never throws. Unparseable
|
|
83
|
+
* invariants and references to missing columns are reported as `uncheckable`
|
|
84
|
+
* (passed = true) so they warn rather than block.
|
|
85
|
+
*/
|
|
86
|
+
export declare function evaluateInvariant(raw: string, result: InvariantResultSet): InvariantResult;
|
|
87
|
+
/**
|
|
88
|
+
* Evaluate every invariant in `invariants` against `result`. Order-preserving.
|
|
89
|
+
* Returns an empty array for an empty / undefined invariant list, so callers can
|
|
90
|
+
* treat "no invariants" as "nothing to enforce".
|
|
91
|
+
*/
|
|
92
|
+
export declare function evaluateInvariants(invariants: string[] | undefined, result: InvariantResultSet): InvariantResult[];
|
|
93
|
+
/** True when any of the supplied results is a real (checkable) violation. */
|
|
94
|
+
export declare function hasInvariantViolation(results: InvariantResult[] | undefined): boolean;
|
|
95
|
+
export {};
|
|
96
|
+
//# sourceMappingURL=invariant-evaluator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invariant-evaluator.d.ts","sourceRoot":"","sources":["../src/invariant-evaluator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,qEAAqE;AACrE,MAAM,WAAW,eAAe;IAC9B,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAC;IACb,8FAA8F;IAC9F,MAAM,EAAE,OAAO,CAAC;IAChB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,2EAA2E;IAC3E,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,kFAAkF;AAClF,MAAM,WAAW,kBAAkB;IACjC,0CAA0C;IAC1C,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,yEAAyE;IACzE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACtC;AAED,KAAK,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC;AAExD,UAAU,mBAAmB;IAC3B,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,UAAU,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,gBAAgB;IACxB,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,UAAU,aAAa;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,KAAK,SAAS,GAAG,mBAAmB,GAAG,gBAAgB,GAAG,aAAa,CAAC;AAExE,UAAU,YAAY;IACpB,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,KAAK,YAAY,GAAG,SAAS,GAAG,YAAY,CAAC;AAI7C;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CA6DxD;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,GAAG,eAAe,CA+C1F;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,MAAM,EAAE,GAAG,SAAS,EAChC,MAAM,EAAE,kBAAkB,GACzB,eAAe,EAAE,CAGnB;AAED,6EAA6E;AAC7E,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,SAAS,GAAG,OAAO,CAGrF"}
|
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Invariant evaluator.
|
|
3
|
+
*
|
|
4
|
+
* A block's `invariants` are free-form assertions (e.g. `"approval_rate_pct <= 100"`,
|
|
5
|
+
* `"health_score between 0 and 100"`, `"arr >= 0"`) that must hold for the block's
|
|
6
|
+
* result set. Until now they were stored in the manifest and surfaced to agents as
|
|
7
|
+
* prompt grounding, but never executed — so "certified" did not mean "the stated
|
|
8
|
+
* guarantees hold".
|
|
9
|
+
*
|
|
10
|
+
* This module parses each invariant string into a checkable predicate over result
|
|
11
|
+
* columns and evaluates it against the block's result rows. It is a SMALL, SAFE
|
|
12
|
+
* evaluator: it never calls `eval()` / `Function()`. Anything it cannot parse is
|
|
13
|
+
* reported as an "uncheckable invariant" warning rather than failing closed.
|
|
14
|
+
*
|
|
15
|
+
* Supported forms (case-insensitive on keywords):
|
|
16
|
+
* - comparisons: `<column> <op> <number>` where op is `>= <= > < == = != <>`
|
|
17
|
+
* - between: `<column> between <low> and <high>` (inclusive)
|
|
18
|
+
* - not between: `<column> not between <low> and <high>`
|
|
19
|
+
* - null checks: `<column> is null` / `<column> is not null`
|
|
20
|
+
* - non-negative etc. handled by the comparison form (`arr >= 0`).
|
|
21
|
+
*
|
|
22
|
+
* The column is checked across EVERY row; a single-value result is just one row.
|
|
23
|
+
* An invariant passes only if it holds for all rows. The first violating row is
|
|
24
|
+
* reported in `detail` so the failure is actionable.
|
|
25
|
+
*/
|
|
26
|
+
const COMPARATORS = ['>=', '<=', '!=', '==', '>', '<'];
|
|
27
|
+
/**
|
|
28
|
+
* Parse a single invariant string into a checkable predicate, or a parse failure
|
|
29
|
+
* describing why it is uncheckable. Pure / side-effect free.
|
|
30
|
+
*/
|
|
31
|
+
export function parseInvariant(raw) {
|
|
32
|
+
const expr = raw.trim();
|
|
33
|
+
if (!expr) {
|
|
34
|
+
return { kind: 'unparseable', reason: 'empty invariant' };
|
|
35
|
+
}
|
|
36
|
+
// null checks: `<column> is null` / `<column> is not null`
|
|
37
|
+
const nullMatch = /^(.+?)\s+is\s+(not\s+)?null$/i.exec(expr);
|
|
38
|
+
if (nullMatch) {
|
|
39
|
+
const column = normalizeColumn(nullMatch[1]);
|
|
40
|
+
if (!column)
|
|
41
|
+
return { kind: 'unparseable', reason: 'missing column before "is null"' };
|
|
42
|
+
return { kind: 'null', column, negated: Boolean(nullMatch[2]) };
|
|
43
|
+
}
|
|
44
|
+
// between: `<column> [not] between <low> and <high>`
|
|
45
|
+
const betweenMatch = /^(.+?)\s+(not\s+)?between\s+(\S+)\s+and\s+(\S+)$/i.exec(expr);
|
|
46
|
+
if (betweenMatch) {
|
|
47
|
+
const column = normalizeColumn(betweenMatch[1]);
|
|
48
|
+
const low = parseNumber(betweenMatch[3]);
|
|
49
|
+
const high = parseNumber(betweenMatch[4]);
|
|
50
|
+
if (!column)
|
|
51
|
+
return { kind: 'unparseable', reason: 'missing column before "between"' };
|
|
52
|
+
if (low === null || high === null) {
|
|
53
|
+
return { kind: 'unparseable', reason: 'between bounds must be numeric' };
|
|
54
|
+
}
|
|
55
|
+
return { kind: 'between', column, low, high, negated: Boolean(betweenMatch[2]) };
|
|
56
|
+
}
|
|
57
|
+
// comparison: `<column> <op> <number>` — try the longest operators first so
|
|
58
|
+
// `>=` is not mis-read as `>`.
|
|
59
|
+
for (const op of COMPARATORS) {
|
|
60
|
+
const idx = expr.indexOf(op);
|
|
61
|
+
if (idx <= 0)
|
|
62
|
+
continue;
|
|
63
|
+
// Guard against `==` being seen inside `===` or `<op>` overlaps; we only
|
|
64
|
+
// accept a clean single operator split.
|
|
65
|
+
const left = expr.slice(0, idx).trim();
|
|
66
|
+
const right = expr.slice(idx + op.length).trim();
|
|
67
|
+
// Reject if the right side still starts with another comparator char that
|
|
68
|
+
// would have formed a longer operator (e.g. catching `<` inside `<=`).
|
|
69
|
+
if (/^[<>=!]/.test(right))
|
|
70
|
+
continue;
|
|
71
|
+
const column = normalizeColumn(left);
|
|
72
|
+
const value = parseNumber(right);
|
|
73
|
+
if (!column)
|
|
74
|
+
continue;
|
|
75
|
+
if (value === null) {
|
|
76
|
+
return { kind: 'unparseable', reason: `right-hand side "${right}" is not numeric` };
|
|
77
|
+
}
|
|
78
|
+
return { kind: 'comparison', column, op, value };
|
|
79
|
+
}
|
|
80
|
+
// `=` (single) as an alias for `==`, handled last so it doesn't shadow `>=`/`<=`/`!=`.
|
|
81
|
+
const eqIdx = expr.indexOf('=');
|
|
82
|
+
if (eqIdx > 0 && !/[<>=!]/.test(expr[eqIdx - 1] ?? '') && expr[eqIdx + 1] !== '=') {
|
|
83
|
+
const left = expr.slice(0, eqIdx).trim();
|
|
84
|
+
const right = expr.slice(eqIdx + 1).trim();
|
|
85
|
+
const column = normalizeColumn(left);
|
|
86
|
+
const value = parseNumber(right);
|
|
87
|
+
if (column && value !== null) {
|
|
88
|
+
return { kind: 'comparison', column, op: '==', value };
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return { kind: 'unparseable', reason: 'no recognized comparison, between, or null check' };
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Evaluate a single invariant string against a result set.
|
|
95
|
+
*
|
|
96
|
+
* Always returns an {@link InvariantResult}; it never throws. Unparseable
|
|
97
|
+
* invariants and references to missing columns are reported as `uncheckable`
|
|
98
|
+
* (passed = true) so they warn rather than block.
|
|
99
|
+
*/
|
|
100
|
+
export function evaluateInvariant(raw, result) {
|
|
101
|
+
const expr = raw.trim();
|
|
102
|
+
const parsed = parseInvariant(expr);
|
|
103
|
+
if (parsed.kind === 'unparseable') {
|
|
104
|
+
return {
|
|
105
|
+
expr,
|
|
106
|
+
passed: true,
|
|
107
|
+
uncheckable: true,
|
|
108
|
+
detail: `Uncheckable invariant — ${parsed.reason}. Surfaced as a warning; not enforced.`,
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
const column = parsed.column;
|
|
112
|
+
if (!result.columns.includes(column)) {
|
|
113
|
+
return {
|
|
114
|
+
expr,
|
|
115
|
+
passed: true,
|
|
116
|
+
uncheckable: true,
|
|
117
|
+
detail: `Uncheckable invariant — column "${column}" not found in result columns [${result.columns.join(', ')}].`,
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
// Vacuously true for an empty result: there is no row that violates it.
|
|
121
|
+
if (result.rows.length === 0) {
|
|
122
|
+
return { expr, passed: true, detail: 'No rows to check — invariant vacuously holds.' };
|
|
123
|
+
}
|
|
124
|
+
for (let i = 0; i < result.rows.length; i++) {
|
|
125
|
+
const cell = result.rows[i][column];
|
|
126
|
+
const check = checkCell(parsed, cell);
|
|
127
|
+
if (!check.ok) {
|
|
128
|
+
const where = result.rows.length === 1 ? '' : ` (row ${i + 1} of ${result.rows.length})`;
|
|
129
|
+
return {
|
|
130
|
+
expr,
|
|
131
|
+
passed: false,
|
|
132
|
+
detail: `Violated${where}: ${check.reason}`,
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
return {
|
|
137
|
+
expr,
|
|
138
|
+
passed: true,
|
|
139
|
+
detail: result.rows.length === 1
|
|
140
|
+
? 'Holds for the result value.'
|
|
141
|
+
: `Holds across all ${result.rows.length} rows.`,
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Evaluate every invariant in `invariants` against `result`. Order-preserving.
|
|
146
|
+
* Returns an empty array for an empty / undefined invariant list, so callers can
|
|
147
|
+
* treat "no invariants" as "nothing to enforce".
|
|
148
|
+
*/
|
|
149
|
+
export function evaluateInvariants(invariants, result) {
|
|
150
|
+
if (!invariants || invariants.length === 0)
|
|
151
|
+
return [];
|
|
152
|
+
return invariants.map((invariant) => evaluateInvariant(invariant, result));
|
|
153
|
+
}
|
|
154
|
+
/** True when any of the supplied results is a real (checkable) violation. */
|
|
155
|
+
export function hasInvariantViolation(results) {
|
|
156
|
+
if (!results)
|
|
157
|
+
return false;
|
|
158
|
+
return results.some((entry) => !entry.passed && !entry.uncheckable);
|
|
159
|
+
}
|
|
160
|
+
function checkCell(predicate, cell) {
|
|
161
|
+
if (predicate.kind === 'null') {
|
|
162
|
+
const isNull = cell === null || cell === undefined;
|
|
163
|
+
if (predicate.negated) {
|
|
164
|
+
return isNull
|
|
165
|
+
? { ok: false, reason: `${predicate.column} is null but expected NOT NULL` }
|
|
166
|
+
: { ok: true, reason: '' };
|
|
167
|
+
}
|
|
168
|
+
return isNull
|
|
169
|
+
? { ok: true, reason: '' }
|
|
170
|
+
: { ok: false, reason: `${predicate.column}=${formatCell(cell)} is not null` };
|
|
171
|
+
}
|
|
172
|
+
const num = toNumber(cell);
|
|
173
|
+
if (num === null) {
|
|
174
|
+
return {
|
|
175
|
+
ok: false,
|
|
176
|
+
reason: `${predicate.column}=${formatCell(cell)} is not numeric, cannot evaluate "${describe(predicate)}"`,
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
if (predicate.kind === 'between') {
|
|
180
|
+
const inRange = num >= predicate.low && num <= predicate.high;
|
|
181
|
+
const pass = predicate.negated ? !inRange : inRange;
|
|
182
|
+
if (pass)
|
|
183
|
+
return { ok: true, reason: '' };
|
|
184
|
+
return {
|
|
185
|
+
ok: false,
|
|
186
|
+
reason: `${predicate.column}=${num} is ${predicate.negated ? 'within' : 'outside'} [${predicate.low}, ${predicate.high}]`,
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
const pass = compareNumbers(num, predicate.op, predicate.value);
|
|
190
|
+
if (pass)
|
|
191
|
+
return { ok: true, reason: '' };
|
|
192
|
+
return { ok: false, reason: `${predicate.column}=${num} ${predicate.op} ${predicate.value} is false` };
|
|
193
|
+
}
|
|
194
|
+
function compareNumbers(actual, op, expected) {
|
|
195
|
+
switch (op) {
|
|
196
|
+
case '>=': return actual >= expected;
|
|
197
|
+
case '<=': return actual <= expected;
|
|
198
|
+
case '>': return actual > expected;
|
|
199
|
+
case '<': return actual < expected;
|
|
200
|
+
case '==': return actual === expected;
|
|
201
|
+
case '!=': return actual !== expected;
|
|
202
|
+
default: return false;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
function describe(predicate) {
|
|
206
|
+
if (predicate.kind === 'between') {
|
|
207
|
+
return `${predicate.column} ${predicate.negated ? 'not ' : ''}between ${predicate.low} and ${predicate.high}`;
|
|
208
|
+
}
|
|
209
|
+
if (predicate.kind === 'null') {
|
|
210
|
+
return `${predicate.column} is ${predicate.negated ? 'not ' : ''}null`;
|
|
211
|
+
}
|
|
212
|
+
return `${predicate.column} ${predicate.op} ${predicate.value}`;
|
|
213
|
+
}
|
|
214
|
+
function normalizeColumn(raw) {
|
|
215
|
+
const trimmed = raw.trim().replace(/^["'`]|["'`]$/g, '').trim();
|
|
216
|
+
if (!trimmed)
|
|
217
|
+
return null;
|
|
218
|
+
// A column reference must be a single identifier-ish token (allow dotted refs
|
|
219
|
+
// like `table.column`). Anything with whitespace or an operator is not a bare
|
|
220
|
+
// column and we treat the invariant as uncheckable.
|
|
221
|
+
if (!/^[A-Za-z_][A-Za-z0-9_.]*$/.test(trimmed))
|
|
222
|
+
return null;
|
|
223
|
+
return trimmed;
|
|
224
|
+
}
|
|
225
|
+
function parseNumber(raw) {
|
|
226
|
+
const cleaned = raw.trim().replace(/^["'`]|["'`,]$/g, '').replace(/[%,]/g, '');
|
|
227
|
+
if (cleaned === '')
|
|
228
|
+
return null;
|
|
229
|
+
const num = Number(cleaned);
|
|
230
|
+
return Number.isFinite(num) ? num : null;
|
|
231
|
+
}
|
|
232
|
+
function toNumber(cell) {
|
|
233
|
+
if (typeof cell === 'number')
|
|
234
|
+
return Number.isFinite(cell) ? cell : null;
|
|
235
|
+
if (typeof cell === 'bigint')
|
|
236
|
+
return Number(cell);
|
|
237
|
+
if (typeof cell === 'boolean')
|
|
238
|
+
return cell ? 1 : 0;
|
|
239
|
+
if (typeof cell === 'string') {
|
|
240
|
+
const cleaned = cell.trim().replace(/[%,$]/g, '');
|
|
241
|
+
if (cleaned === '')
|
|
242
|
+
return null;
|
|
243
|
+
const num = Number(cleaned);
|
|
244
|
+
return Number.isFinite(num) ? num : null;
|
|
245
|
+
}
|
|
246
|
+
return null;
|
|
247
|
+
}
|
|
248
|
+
function formatCell(cell) {
|
|
249
|
+
if (cell === null)
|
|
250
|
+
return 'null';
|
|
251
|
+
if (cell === undefined)
|
|
252
|
+
return 'undefined';
|
|
253
|
+
if (typeof cell === 'string')
|
|
254
|
+
return `"${cell}"`;
|
|
255
|
+
return String(cell);
|
|
256
|
+
}
|
|
257
|
+
//# sourceMappingURL=invariant-evaluator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invariant-evaluator.js","sourceRoot":"","sources":["../src/invariant-evaluator.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@duckcodeailabs/dql-governance",
|
|
3
|
-
"version": "1.6.
|
|
3
|
+
"version": "1.6.23",
|
|
4
4
|
"description": "DQL Governance: block testing, certification, cost estimation, and access policies",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
@@ -24,8 +24,8 @@
|
|
|
24
24
|
"access": "public"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@duckcodeailabs/dql-core": "^1.6.
|
|
28
|
-
"@duckcodeailabs/dql-project": "^1.6.
|
|
27
|
+
"@duckcodeailabs/dql-core": "^1.6.23",
|
|
28
|
+
"@duckcodeailabs/dql-project": "^1.6.23"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
31
|
"typescript": "^5.7.0",
|