@duckcodeailabs/dql-core 1.6.21 → 1.6.22
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/contracts/index.d.ts +1 -1
- package/dist/contracts/index.d.ts.map +1 -1
- package/dist/contracts/index.js.map +1 -1
- package/dist/contracts/registry.d.ts +25 -1
- package/dist/contracts/registry.d.ts.map +1 -1
- package/dist/contracts/registry.js +104 -12
- package/dist/contracts/registry.js.map +1 -1
- package/dist/contracts/types.d.ts +55 -0
- package/dist/contracts/types.d.ts.map +1 -1
- package/dist/contracts/types.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/lineage/builder.d.ts.map +1 -1
- package/dist/lineage/builder.js +12 -0
- package/dist/lineage/builder.js.map +1 -1
- package/dist/lineage/column-lineage.d.ts +27 -0
- package/dist/lineage/column-lineage.d.ts.map +1 -1
- package/dist/lineage/column-lineage.js +147 -0
- package/dist/lineage/column-lineage.js.map +1 -1
- package/dist/lineage/derivation.d.ts +111 -0
- package/dist/lineage/derivation.d.ts.map +1 -0
- package/dist/lineage/derivation.js +177 -0
- package/dist/lineage/derivation.js.map +1 -0
- package/dist/lineage/impact.d.ts +127 -0
- package/dist/lineage/impact.d.ts.map +1 -0
- package/dist/lineage/impact.js +305 -0
- package/dist/lineage/impact.js.map +1 -0
- package/dist/lineage/index.d.ts +3 -1
- package/dist/lineage/index.d.ts.map +1 -1
- package/dist/lineage/index.js +3 -1
- package/dist/lineage/index.js.map +1 -1
- package/dist/manifest/builder.d.ts +16 -0
- package/dist/manifest/builder.d.ts.map +1 -1
- package/dist/manifest/builder.js +117 -10
- package/dist/manifest/builder.js.map +1 -1
- package/dist/manifest/dbt-freshness.d.ts +65 -0
- package/dist/manifest/dbt-freshness.d.ts.map +1 -0
- package/dist/manifest/dbt-freshness.js +264 -0
- package/dist/manifest/dbt-freshness.js.map +1 -0
- package/dist/manifest/domain-writer.d.ts +66 -0
- package/dist/manifest/domain-writer.d.ts.map +1 -0
- package/dist/manifest/domain-writer.js +114 -0
- package/dist/manifest/domain-writer.js.map +1 -0
- package/dist/manifest/index.d.ts +4 -1
- package/dist/manifest/index.d.ts.map +1 -1
- package/dist/manifest/index.js +3 -0
- package/dist/manifest/index.js.map +1 -1
- package/dist/manifest/output-drift.d.ts +31 -0
- package/dist/manifest/output-drift.d.ts.map +1 -0
- package/dist/manifest/output-drift.js +97 -0
- package/dist/manifest/output-drift.js.map +1 -0
- package/dist/manifest/types.d.ts +156 -1
- package/dist/manifest/types.d.ts.map +1 -1
- package/dist/parser/parser.d.ts.map +1 -1
- package/dist/parser/parser.js +8 -0
- package/dist/parser/parser.js.map +1 -1
- package/dist/semantic/analyzer.d.ts +8 -0
- package/dist/semantic/analyzer.d.ts.map +1 -1
- package/dist/semantic/analyzer.js +8 -0
- package/dist/semantic/analyzer.js.map +1 -1
- package/dist/semantic/conflicts.d.ts +33 -0
- package/dist/semantic/conflicts.d.ts.map +1 -0
- package/dist/semantic/conflicts.js +270 -0
- package/dist/semantic/conflicts.js.map +1 -0
- package/dist/semantic/index.d.ts +1 -1
- package/dist/semantic/index.d.ts.map +1 -1
- package/dist/semantic/index.js +1 -1
- package/dist/semantic/index.js.map +1 -1
- package/dist/trust/index.d.ts +3 -0
- package/dist/trust/index.d.ts.map +1 -0
- package/dist/trust/index.js +2 -0
- package/dist/trust/index.js.map +1 -0
- package/dist/trust/labels.d.ts +122 -0
- package/dist/trust/labels.d.ts.map +1 -0
- package/dist/trust/labels.js +185 -0
- package/dist/trust/labels.js.map +1 -0
- package/package.json +5 -1
|
@@ -38,4 +38,12 @@ export declare class SemanticAnalyzer {
|
|
|
38
38
|
private currentScope;
|
|
39
39
|
}
|
|
40
40
|
export declare function analyze(program: ProgramNode, options?: SemanticAnalyzerOptions): Diagnostic[];
|
|
41
|
+
/**
|
|
42
|
+
* Cross-artifact trust-conflict detection. The per-file analyzer above cannot
|
|
43
|
+
* see two files at once, so conflict detection (two certified terms / blocks
|
|
44
|
+
* claiming the same concept but disagreeing) is a manifest-level pass. It is
|
|
45
|
+
* surfaced here so semantic analysis has one entry point. See
|
|
46
|
+
* `semantic/conflicts.ts` for the conservative heuristic.
|
|
47
|
+
*/
|
|
48
|
+
export { detectTrustConflicts } from './conflicts.js';
|
|
41
49
|
//# sourceMappingURL=analyzer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../../src/semantic/analyzer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAEL,KAAK,WAAW,EAgBjB,MAAM,iBAAiB,CAAC;AAyQzB,MAAM,WAAW,uBAAuB;IACtC;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,OAAO,uBAAuB,EAAE,uBAAuB,CAAC;CAC3E;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,eAAe,CAAC,CAA0D;gBAEtE,OAAO,GAAE,uBAA4B;IAKjD,OAAO,CAAC,OAAO,EAAE,WAAW,GAAG,UAAU,EAAE;IAyC3C,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAWpC,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,gBAAgB;IAgGxB,OAAO,CAAC,uBAAuB;IAc/B,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,gBAAgB;IAqCxB,OAAO,CAAC,gBAAgB;IAiBxB,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,iBAAiB;IAoDzB,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,iBAAiB;IAmDzB,OAAO,CAAC,yBAAyB;IAYjC,OAAO,CAAC,kBAAkB;IA4G1B,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,YAAY;CAMrB;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,GAAE,uBAA4B,GAAG,UAAU,EAAE,CAGjG"}
|
|
1
|
+
{"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../../src/semantic/analyzer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAEL,KAAK,WAAW,EAgBjB,MAAM,iBAAiB,CAAC;AAyQzB,MAAM,WAAW,uBAAuB;IACtC;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,OAAO,uBAAuB,EAAE,uBAAuB,CAAC;CAC3E;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,eAAe,CAAC,CAA0D;gBAEtE,OAAO,GAAE,uBAA4B;IAKjD,OAAO,CAAC,OAAO,EAAE,WAAW,GAAG,UAAU,EAAE;IAyC3C,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAWpC,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,gBAAgB;IAgGxB,OAAO,CAAC,uBAAuB;IAc/B,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,gBAAgB;IAqCxB,OAAO,CAAC,gBAAgB;IAiBxB,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,iBAAiB;IAoDzB,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,iBAAiB;IAmDzB,OAAO,CAAC,yBAAyB;IAYjC,OAAO,CAAC,kBAAkB;IA4G1B,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,YAAY;CAMrB;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,GAAE,uBAA4B,GAAG,UAAU,EAAE,CAGjG;AAED;;;;;;GAMG;AACH,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -641,4 +641,12 @@ export function analyze(program, options = {}) {
|
|
|
641
641
|
const analyzer = new SemanticAnalyzer(options);
|
|
642
642
|
return analyzer.analyze(program);
|
|
643
643
|
}
|
|
644
|
+
/**
|
|
645
|
+
* Cross-artifact trust-conflict detection. The per-file analyzer above cannot
|
|
646
|
+
* see two files at once, so conflict detection (two certified terms / blocks
|
|
647
|
+
* claiming the same concept but disagreeing) is a manifest-level pass. It is
|
|
648
|
+
* surfaced here so semantic analysis has one entry point. See
|
|
649
|
+
* `semantic/conflicts.ts` for the conservative heuristic.
|
|
650
|
+
*/
|
|
651
|
+
export { detectTrustConflicts } from './conflicts.js';
|
|
644
652
|
//# sourceMappingURL=analyzer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyzer.js","sourceRoot":"","sources":["../../src/semantic/analyzer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"analyzer.js","sourceRoot":"","sources":["../../src/semantic/analyzer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE7E,OAAO,EACL,QAAQ,GAiBT,MAAM,iBAAiB,CAAC;AAWzB,MAAM,eAAe,GAA4B;IAC/C,KAAK,EAAE,QAAQ;IACf,eAAe,EAAE,QAAQ;IACzB,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,SAAS,EAAE,SAAS;IACpB,WAAW,EAAE,SAAS;IACtB,KAAK,EAAE,QAAQ;IACf,MAAM,EAAE,QAAQ;IAChB,uBAAuB;IACvB,QAAQ,EAAE,QAAQ;IAClB,UAAU,EAAE,QAAQ;IACpB,OAAO,EAAE,QAAQ;IACjB,SAAS,EAAE,KAAK;IAChB,eAAe,EAAE,QAAQ;IACzB,UAAU,EAAE,QAAQ;IACpB,UAAU,EAAE,QAAQ;IACpB,qBAAqB;IACrB,EAAE,EAAE,YAAY;IAChB,OAAO,EAAE,KAAK;IACd,QAAQ,EAAE,QAAQ;IAClB,QAAQ,EAAE,QAAQ;IAClB,UAAU,EAAE,QAAQ;IACpB,UAAU,EAAE,QAAQ;IACpB,qBAAqB;IACrB,WAAW,EAAE,UAAU;IACvB,SAAS,EAAE,QAAQ;CACpB,CAAC;AAEF,MAAM,iBAAiB,GAAiC;IACtD,IAAI,EAAE;QACJ,QAAQ,EAAE,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE;QAC9C,QAAQ,EAAE;YACR,GAAG,eAAe;YAClB,UAAU,EAAE,QAAQ;YACpB,YAAY,EAAE,QAAQ;YACtB,YAAY,EAAE,QAAQ;YACtB,YAAY,EAAE,QAAQ;YACtB,WAAW,EAAE,QAAQ;SACtB;KACF;IACD,GAAG,EAAE;QACH,QAAQ,EAAE,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE;QAC9C,QAAQ,EAAE;YACR,GAAG,eAAe;YAClB,WAAW,EAAE,QAAQ;YACrB,SAAS,EAAE,QAAQ;YACnB,YAAY,EAAE,QAAQ;YACtB,YAAY,EAAE,QAAQ;SACvB;KACF;IACD,OAAO,EAAE;QACP,QAAQ,EAAE,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE;QAC9C,QAAQ,EAAE;YACR,GAAG,eAAe;YAClB,IAAI,EAAE,YAAY;YAClB,YAAY,EAAE,QAAQ;YACtB,YAAY,EAAE,QAAQ;SACvB;KACF;IACD,IAAI,EAAE;QACJ,QAAQ,EAAE,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE;QAC9C,QAAQ,EAAE;YACR,GAAG,eAAe;YAClB,YAAY,EAAE,QAAQ;YACtB,YAAY,EAAE,QAAQ;YACtB,YAAY,EAAE,QAAQ;SACvB;KACF;IACD,GAAG,EAAE;QACH,QAAQ,EAAE,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE;QAC9C,QAAQ,EAAE;YACR,GAAG,eAAe;YAClB,YAAY,EAAE,QAAQ;SACvB;KACF;IACD,OAAO,EAAE;QACP,QAAQ,EAAE,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE;QAC9C,QAAQ,EAAE;YACR,GAAG,eAAe;YAClB,WAAW,EAAE,YAAY;YACzB,YAAY,EAAE,QAAQ;YACtB,YAAY,EAAE,QAAQ;SACvB;KACF;IACD,GAAG,EAAE;QACH,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE;YACR,GAAG,eAAe;YAClB,OAAO,EAAE,UAAU;YACnB,mBAAmB,EAAE,SAAS;YAC9B,UAAU,EAAE,QAAQ;SACrB;KACF;IACD,KAAK,EAAE;QACL,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE;YACR,GAAG,eAAe;YAClB,OAAO,EAAE,UAAU;YACnB,QAAQ,EAAE,SAAS;YACnB,SAAS,EAAE,QAAQ;SACpB;KACF;IACD,MAAM,EAAE;QACN,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE;YACR,GAAG,eAAe;YAClB,MAAM,EAAE,QAAQ;YAChB,mBAAmB,EAAE,SAAS;SAC/B;KACF;IACD,WAAW,EAAE;QACX,QAAQ,EAAE,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE;QAC9C,QAAQ,EAAE;YACR,GAAG,eAAe;YAClB,WAAW,EAAE,QAAQ;YACrB,YAAY,EAAE,QAAQ;YACtB,YAAY,EAAE,QAAQ;SACvB;KACF;IACD,WAAW,EAAE;QACX,QAAQ,EAAE,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE;QAC9C,QAAQ,EAAE;YACR,GAAG,eAAe;YAClB,WAAW,EAAE,QAAQ;YACrB,YAAY,EAAE,QAAQ;YACtB,YAAY,EAAE,QAAQ;SACvB;KACF;IACD,KAAK,EAAE;QACL,QAAQ,EAAE,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE;QAC9C,QAAQ,EAAE;YACR,GAAG,eAAe;YAClB,WAAW,EAAE,YAAY;YACzB,UAAU,EAAE,QAAQ;YACpB,YAAY,EAAE,QAAQ;YACtB,YAAY,EAAE,QAAQ;SACvB;KACF;IACD,SAAS,EAAE;QACT,QAAQ,EAAE,EAAE,CAAC,EAAE,YAAY,EAAE;QAC7B,QAAQ,EAAE;YACR,GAAG,eAAe;YAClB,CAAC,EAAE,YAAY;YACf,YAAY,EAAE,QAAQ;YACtB,YAAY,EAAE,QAAQ;SACvB;KACF;IACD,MAAM,EAAE;QACN,QAAQ,EAAE,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE;QAC9C,QAAQ,EAAE;YACR,GAAG,eAAe;YAClB,YAAY,EAAE,QAAQ;YACtB,YAAY,EAAE,QAAQ;SACvB;KACF;IACD,OAAO,EAAE;QACP,QAAQ,EAAE,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE;QAC9C,QAAQ,EAAE;YACR,GAAG,eAAe;YAClB,WAAW,EAAE,YAAY;SAC1B;KACF;IACD,MAAM,EAAE;QACN,QAAQ,EAAE,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE;QAC9C,QAAQ,EAAE;YACR,GAAG,eAAe;YAClB,WAAW,EAAE,YAAY;SAC1B;KACF;IACD,SAAS,EAAE;QACT,QAAQ,EAAE,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE;QAC9C,QAAQ,EAAE;YACR,GAAG,eAAe;YAClB,UAAU,EAAE,QAAQ;SACrB;KACF;IACD,eAAe,EAAE;QACf,QAAQ,EAAE,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE;QACnE,QAAQ,EAAE;YACR,GAAG,eAAe;YAClB,WAAW,EAAE,YAAY;YACzB,UAAU,EAAE,QAAQ;YACpB,YAAY,EAAE,QAAQ;YACtB,YAAY,EAAE,QAAQ;SACvB;KACF;IACD,KAAK,EAAE;QACL,QAAQ,EAAE,EAAE,CAAC,EAAE,YAAY,EAAE;QAC7B,QAAQ,EAAE;YACR,GAAG,eAAe;SACnB;KACF;IACD,SAAS,EAAE;QACT,QAAQ,EAAE,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE;QAC9C,QAAQ,EAAE;YACR,GAAG,eAAe;YAClB,YAAY,EAAE,QAAQ;YACtB,YAAY,EAAE,QAAQ;SACvB;KACF;IACD,OAAO,EAAE;QACP,QAAQ,EAAE,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE;QAC9C,QAAQ,EAAE;YACR,GAAG,eAAe;YAClB,YAAY,EAAE,QAAQ;YACtB,YAAY,EAAE,QAAQ;SACvB;KACF;IACD,GAAG,EAAE;QACH,QAAQ,EAAE,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE;QAC9C,QAAQ,EAAE;YACR,GAAG,eAAe;YAClB,WAAW,EAAE,YAAY;SAC1B;KACF;CACF,CAAC;AAEF,oCAAoC;AAEpC,MAAM,kBAAkB,GAAkC;IACxD,QAAQ,EAAE;QACR,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;QAC9C,QAAQ,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;KAC9E;IACD,UAAU,EAAE;QACV,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;QAC9C,QAAQ,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;KACzE;IACD,IAAI,EAAE;QACJ,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;QAC9C,QAAQ,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;KACzE;IACD,YAAY,EAAE;QACZ,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;QAC9C,QAAQ,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;KAChF;IACD,KAAK,EAAE;QACL,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;QAC9C,QAAQ,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;KAC5E;CACF,CAAC;AAEF,MAAM,eAAe,GAAG,uDAAuD,CAAC;AAChF,MAAM,qBAAqB,GAAG,+BAA+B,CAAC;AAsB9D,MAAM,OAAO,gBAAgB;IACnB,QAAQ,CAAqB;IAC7B,MAAM,GAAY,EAAE,CAAC;IACrB,eAAe,CAA2D;IAElF,YAAY,UAAmC,EAAE;QAC/C,IAAI,CAAC,QAAQ,GAAG,IAAI,kBAAkB,EAAE,CAAC;QACzC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;IACjD,CAAC;IAED,OAAO,CAAC,OAAoB;QAC1B,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QAEjB,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACtC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;gBAClB,KAAK,QAAQ,CAAC,SAAS;oBACrB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;oBAC5B,MAAM;gBACR,KAAK,QAAQ,CAAC,SAAS;oBACrB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;oBAC5B,MAAM;gBACR,KAAK,QAAQ,CAAC,QAAQ;oBACpB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;oBAC3B,MAAM;gBACR,KAAK,QAAQ,CAAC,UAAU;oBACtB,+CAA+C;oBAC/C,MAAM;gBACR,KAAK,QAAQ,CAAC,UAAU;oBACtB,qEAAqE;oBACrE,mCAAmC;oBACnC,MAAM;gBACR,KAAK,QAAQ,CAAC,SAAS;oBACrB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;oBAC5B,MAAM;gBACR,KAAK,QAAQ,CAAC,QAAQ;oBACpB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;oBAC3B,MAAM;gBACR,KAAK,QAAQ,CAAC,gBAAgB;oBAC5B,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;oBACnC,MAAM;gBACR,KAAK,QAAQ,CAAC,MAAM;oBAClB,6DAA6D;oBAC7D,IAAI,CAAC,gBAAgB,CAAC,IAAgC,CAAC,CAAC;oBACxD,MAAM;YACV,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;IAChC,CAAC;IAED,QAAQ,CAAC,OAAoB;QAC3B,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC1C,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC;QACjE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,gBAAgB,CACxB,0BAA0B,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EACnE,MAAM,CACP,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,eAAe,CAAC,IAAkB;QACxC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAElD,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,wBAAwB,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7D,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAEO,WAAW,CAAC,IAAc;QAChC,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAEO,gBAAgB,CAAC,IAAmB;QAC1C,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAElD,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,mCAAmC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,wCAAwC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7E,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;YAClC,4FAA4F;YAC5F,8EAA8E;YAC9E,yEAAyE;YACzE,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAChG,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,IAAI,CAAC,QAAQ,CAAC,OAAO,CACnB,0HAA0H,EAC1H,IAAI,CAAC,IAAI,CACV,CAAC;YACJ,CAAC;YACD,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;gBAChC,IAAI,CAAC,QAAQ,CAAC,KAAK,CACjB,iPAAiP,EACjP,IAAI,CAAC,IAAI,CACV,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YACvC,sEAAsE;YACtE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gBAChB,IAAI,CAAC,QAAQ,CAAC,KAAK,CACjB,4GAA4G,EAC5G,IAAI,CAAC,IAAI,CACV,CAAC;YACJ,CAAC;YACD,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;gBACtE,IAAI,CAAC,QAAQ,CAAC,OAAO,CACnB,uHAAuH,EACvH,IAAI,CAAC,IAAI,CACV,CAAC;YACJ,CAAC;QACH,CAAC;QAED,6CAA6C;QAC7C,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,mEAAmE;YACnE,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;oBACnC,IAAI,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE;wBACxC,IAAI,EAAE,QAAQ,CAAC,YAAY;wBAC3B,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,WAAW,EAAE,CAAC,CAAC,WAAW;wBAC1B,IAAI,EAAE,CAAC,CAAC,IAAI;qBACO,CAAC,CAAC;gBACzB,CAAC;YACH,CAAC;YACD,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC3C,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,CAAC;QAED,gDAAgD;QAChD,sDAAsD;QACtD,iEAAiE;QACjE,kEAAkE;QAClE,sDAAsD;QACtD,oEAAoE;QACpE,mEAAmE;QACnE,yBAAyB;QACzB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,KAAK,WAAW,CAAC;YAChD,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,EAAE,CAAC;gBAC9D,IAAI,CAAC,QAAQ,CAAC,OAAO,CACnB,UAAU,IAAI,CAAC,IAAI,kCAAkC,IAAI,CAAC,eAAe,qJAAqJ,EAC9N,IAAI,CAAC,IAAI,CACV,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;gBAClE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;oBACf,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;oBACnD,MAAM,MAAM,GACV,MAAM,CAAC,MAAM,KAAK,WAAW;wBAC3B,CAAC,CAAC,0CAA0C;wBAC5C,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,kBAAkB;4BACpC,CAAC,CAAC,yCAAyC,CAAC,MAAM,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;4BACzF,CAAC,CAAC,sCAAsC,MAAM,CAAC,OAAO,GAAG,CAAC;oBAChE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CACrB,UAAU,IAAI,CAAC,IAAI,yBAAyB,IAAI,CAAC,eAAe,KAAK,MAAM,GAAG,EAC9E,IAAI,CAAC,IAAI,CACV,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAEO,uBAAuB,CAAC,IAA0B;QACxD,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,2CAA2C,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9E,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,gDAAgD,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACrF,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,gCAAgC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAEO,eAAe,CAAC,IAAkB;QACxC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,kCAAkC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACrE,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,uCAAuC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5E,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,qCAAqC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAEO,gBAAgB,CAAC,IAAmB;QAC1C,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QACtD,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAEO,gBAAgB,CAAC,IAAyB,EAAE,UAAsB;QACxE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,+BAA+B,EAAE,UAAU,CAAC,CAAC;QACrE,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;YACxB,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;gBAClB,KAAK,QAAQ,CAAC,YAAY;oBACxB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;oBAC/B,MAAM;gBACR,KAAK,QAAQ,CAAC,SAAS;oBACrB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;oBAC5B,MAAM;gBACR,KAAK,QAAQ,CAAC,SAAS;oBACrB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;oBAC5B,MAAM;gBACR,KAAK,QAAQ,CAAC,UAAU;oBACtB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;oBAC7B,MAAM;gBACR,KAAK,QAAQ,CAAC,OAAO;oBACnB,gDAAgD;oBAChD,MAAM;gBACR,KAAK,QAAQ,CAAC,WAAW;oBACvB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;wBAC5B,KAAK,MAAM,OAAO,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;4BAChC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,SAAS,EAAE,CAAC;gCAC7C,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;4BACtC,CAAC;iCAAM,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC;gCACrD,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;4BACvC,CAAC;wBACH,CAAC;oBACH,CAAC;oBACD,MAAM;YACV,CAAC;QACH,CAAC;IACH,CAAC;IAEO,gBAAgB,CAAC,IAAmB;QAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAClC,IAAI,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,QAAQ,CAAC,KAAK,CACjB,cAAc,IAAI,CAAC,IAAI,sDAAsD,EAC7E,IAAI,CAAC,IAAI,CACV,CAAC;QACJ,CAAC;QACD,sEAAsE;QACtE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE;YAC7B,IAAI,EAAE,QAAQ,CAAC,YAAY;YAC3B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,YAAY,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,aAAa,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;YAC9F,IAAI,EAAE,IAAI,CAAC,IAAI;SACI,CAAC,CAAC;IACzB,CAAC;IAEO,gBAAgB,CAAC,IAAmB;QAC1C,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAClD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;IAEO,iBAAiB,CAAC,IAAoB;QAC5C,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACnD,IAAI,CAAC,MAAM;YAAE,OAAO;QAEpB,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAEvD,sBAAsB;QACtB,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxB,IAAI,CAAC,QAAQ,CAAC,KAAK,CACjB,UAAU,IAAI,CAAC,UAAU,uBAAuB,IAAI,IAAI,EACxD,IAAI,CAAC,IAAI,EACT,OAAO,IAAI,8BAA8B,CAC1C,CAAC;YACJ,CAAC;QACH,CAAC;QAED,yBAAyB;QACzB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5B,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACrE,IAAI,CAAC,QAAQ,CAAC,OAAO,CACnB,qBAAqB,GAAG,CAAC,IAAI,gBAAgB,IAAI,CAAC,UAAU,GAAG,EAC/D,GAAG,CAAC,IAAI,EACR,oBAAoB,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACpG,CAAC;YACJ,CAAC;QACH,CAAC;QAED,yDAAyD;QACzD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7C,CAAC;QAED,4EAA4E;QAC5E,yFAAyF;QACzF,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;QAC3D,IAAI,QAAQ,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,aAAa,EAAE,CAAC;YAC/D,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YAClC,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC;YACvC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBACpC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC;gBACrE,MAAM,WAAW,GAAG,UAAU,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,aAAa,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;gBACtG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE;oBAC7B,IAAI,EAAE,QAAQ,CAAC,YAAY;oBAC3B,IAAI,EAAE,SAAS;oBACf,WAAW;oBACX,IAAI,EAAE,IAAI,CAAC,IAAI;iBACI,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;IACH,CAAC;IAEO,mBAAmB,CAAC,IAAsB;QAChD,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAClC,IAAI,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,QAAQ,CAAC,KAAK,CACjB,aAAa,IAAI,CAAC,IAAI,sCAAsC,EAC5D,IAAI,CAAC,IAAI,CACV,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACvC,CAAC;IAEO,iBAAiB,CAAC,IAAmB;QAC3C,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,CAAC,MAAM;YAAE,OAAO;QAEpB,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAEvD,sBAAsB;QACtB,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxB,IAAI,CAAC,QAAQ,CAAC,KAAK,CACjB,SAAS,IAAI,CAAC,SAAS,uBAAuB,IAAI,IAAI,EACtD,IAAI,CAAC,IAAI,EACT,OAAO,IAAI,qCAAqC,CACjD,CAAC;YACJ,CAAC;QACH,CAAC;QAED,yBAAyB;QACzB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5B,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACrE,IAAI,CAAC,QAAQ,CAAC,OAAO,CACnB,qBAAqB,GAAG,CAAC,IAAI,eAAe,IAAI,CAAC,SAAS,GAAG,EAC7D,GAAG,CAAC,IAAI,EACR,oBAAoB,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACpG,CAAC;YACJ,CAAC;QACH,CAAC;QAED,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,iBAAiB,CAAC,CAAC;QAC9E,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;QACpE,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;QAEpE,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzD,IAAI,CAAC,QAAQ,CAAC,OAAO,CACnB,kGAAkG,EAClG,CAAC,YAAY,IAAI,YAAY,IAAI,IAAI,CAAC,CAAC,IAAI,CAC5C,CAAC;QACJ,CAAC;QAED,IAAI,YAAY,IAAI,YAAY,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,aAAa,EAAE,CAAC;YACvE,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC;YAC3C,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;YAC7D,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBACjC,IAAI,CAAC,QAAQ,CAAC,KAAK,CACjB,uBAAuB,SAAS,4CAA4C,EAC5E,YAAY,CAAC,IAAI,CAClB,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAEO,yBAAyB,CAAC,IAAkB;QAClD,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACzC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC/C,IAAI,CAAC,QAAQ,CAAC,KAAK,CACjB,uBAAuB,MAAM,CAAC,YAAY,oBAAoB,EAC9D,MAAM,CAAC,IAAI,EACX,wBAAwB,MAAM,CAAC,YAAY,QAAQ,CACpD,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAEO,kBAAkB,CAAC,UAA2B,EAAE,OAAwC;QAC9F,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC7B,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;gBACjB,KAAK,UAAU;oBACb,IAAI,GAAG,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBAC/B,IAAI,CAAC,QAAQ,CAAC,KAAK,CACjB,oEAAoE,EACpE,GAAG,CAAC,IAAI,CACT,CAAC;oBACJ,CAAC;oBACD,MAAM;gBACR,KAAK,UAAU;oBACb,IAAI,GAAG,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBAC/B,IAAI,CAAC,QAAQ,CAAC,KAAK,CACjB,gDAAgD,EAChD,GAAG,CAAC,IAAI,CACT,CAAC;oBACJ,CAAC;oBACD,MAAM;gBACR,KAAK,OAAO,CAAC;gBACb,KAAK,eAAe,CAAC;gBACrB,KAAK,SAAS;oBACZ,8CAA8C;oBAC9C,MAAM;gBACR,KAAK,IAAI;oBACP,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;wBACxB,IAAI,CAAC,QAAQ,CAAC,KAAK,CACjB,gDAAgD,EAChD,GAAG,CAAC,IAAI,CACT,CAAC;oBACJ,CAAC;oBACD,IAAI,GAAG,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBAC/B,IAAI,CAAC,QAAQ,CAAC,KAAK,CACjB,sEAAsE,EACtE,GAAG,CAAC,IAAI,CACT,CAAC;oBACJ,CAAC;oBACD,MAAM;gBACR,KAAK,KAAK;oBACR,IAAI,OAAO,KAAK,OAAO,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;wBAC/C,IAAI,CAAC,QAAQ,CAAC,KAAK,CACjB,0DAA0D,EAC1D,GAAG,CAAC,IAAI,CACT,CAAC;oBACJ,CAAC;oBACD,IAAI,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC7B,IAAI,CAAC,QAAQ,CAAC,KAAK,CACjB,0FAA0F,EAC1F,GAAG,CAAC,IAAI,CACT,CAAC;oBACJ,CAAC;oBACD,IAAI,GAAG,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;wBAC9B,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;wBACnC,MAAM,UAAU,GACd,SAAS,CAAC,IAAI,KAAK,QAAQ,CAAC,aAAa;4BACvC,CAAC,CAAC,SAAS,CAAC,KAAK;4BACjB,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,KAAK,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;wBACrE,IAAI,CAAC,UAAU,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;4BAC5D,IAAI,CAAC,QAAQ,CAAC,KAAK,CACjB,6GAA6G,EAC7G,GAAG,CAAC,IAAI,CACT,CAAC;wBACJ,CAAC;oBACH,CAAC;oBACD,IAAI,GAAG,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,aAAa,EAAE,CAAC;wBAClF,MAAM,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;wBAC1C,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;4BACjF,IAAI,CAAC,QAAQ,CAAC,KAAK,CACjB,uEAAuE,EACvE,GAAG,CAAC,IAAI,CACT,CAAC;wBACJ,CAAC;oBACH,CAAC;oBACD,MAAM;gBACR,KAAK,UAAU;oBACb,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;wBACxB,IAAI,CAAC,QAAQ,CAAC,KAAK,CACjB,sDAAsD,EACtD,GAAG,CAAC,IAAI,CACT,CAAC;oBACJ,CAAC;oBACD,IAAI,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC7B,IAAI,CAAC,QAAQ,CAAC,KAAK,CACjB,uGAAuG,EACvG,GAAG,CAAC,IAAI,CACT,CAAC;oBACJ,CAAC;oBACD,MAAM;gBACR,KAAK,aAAa;oBAChB,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;wBACxB,IAAI,CAAC,QAAQ,CAAC,KAAK,CACjB,yDAAyD,EACzD,GAAG,CAAC,IAAI,CACT,CAAC;oBACJ,CAAC;oBACD,MAAM;gBACR,KAAK,OAAO;oBACV,MAAM;gBACR;oBACE,IAAI,CAAC,QAAQ,CAAC,OAAO,CACnB,uBAAuB,GAAG,CAAC,IAAI,IAAI,EACnC,GAAG,CAAC,IAAI,EACR,sHAAsH,CACvH,CAAC;YACN,CAAC;QACH,CAAC;IACH,CAAC;IAEO,eAAe,CAAC,IAAY;QAClC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACjD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACjD,IAAI,KAAK;gBAAE,OAAO,KAAK,CAAC;QAC1B,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,SAAS;QACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;IAC7C,CAAC;IAEO,QAAQ;QACd,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;IACpB,CAAC;IAEO,YAAY;QAClB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC7C,CAAC;CACF;AAED,MAAM,UAAU,OAAO,CAAC,OAAoB,EAAE,UAAmC,EAAE;IACjF,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC/C,OAAO,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AACnC,CAAC;AAED;;;;;;GAMG;AACH,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cross-artifact trust-conflict detection (compile time).
|
|
3
|
+
*
|
|
4
|
+
* The most dangerous governance failure is two *certified* definitions that
|
|
5
|
+
* claim the SAME concept/grain but DISAGREE — e.g. two terms named the same
|
|
6
|
+
* business concept, sharing an identifier and grain, but with divergent
|
|
7
|
+
* business rules or definitions. Without detection the agent would silently
|
|
8
|
+
* pick one. This pass flags such pairs as `kind: 'conflict'` diagnostics so a
|
|
9
|
+
* governed system can refuse to guess and ask a human to pick the winner.
|
|
10
|
+
*
|
|
11
|
+
* This is a *manifest-level* (cross-file) check: the per-file semantic analyzer
|
|
12
|
+
* cannot see two files at once, so this operates on the assembled term/block
|
|
13
|
+
* maps. It is re-exported from `semantic/analyzer.ts` and invoked by the
|
|
14
|
+
* manifest builder after blocks/terms are scanned.
|
|
15
|
+
*
|
|
16
|
+
* Heuristics are deliberately CONSERVATIVE to avoid false positives:
|
|
17
|
+
* - Both sides must be governance-grade (terms: status certified/approved or
|
|
18
|
+
* no status; certified blocks only).
|
|
19
|
+
* - They must claim the SAME concept: a shared, normalized identifier AND the
|
|
20
|
+
* same grain (when both declare a grain).
|
|
21
|
+
* - They must DIVERGE: different normalized definition OR different business
|
|
22
|
+
* rules. Two artifacts that agree are NOT a conflict, and the same artifact
|
|
23
|
+
* compared with itself is never a conflict.
|
|
24
|
+
*/
|
|
25
|
+
import type { ManifestBlock, ManifestDiagnostic, ManifestTerm } from '../manifest/types.js';
|
|
26
|
+
/**
|
|
27
|
+
* Detect same-identifier + same-grain + divergent-definition/rule pairs across
|
|
28
|
+
* the manifest's terms and certified blocks, returning additive
|
|
29
|
+
* `kind: 'conflict'` diagnostics. Pairs are compared once (no self-comparison,
|
|
30
|
+
* no duplicate A/B + B/A).
|
|
31
|
+
*/
|
|
32
|
+
export declare function detectTrustConflicts(terms: Record<string, ManifestTerm>, blocks: Record<string, ManifestBlock>): ManifestDiagnostic[];
|
|
33
|
+
//# sourceMappingURL=conflicts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conflicts.d.ts","sourceRoot":"","sources":["../../src/semantic/conflicts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EACV,aAAa,EAEb,kBAAkB,EAClB,YAAY,EACb,MAAM,sBAAsB,CAAC;AAiL9B;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,EACnC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GACpC,kBAAkB,EAAE,CAoDtB"}
|
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cross-artifact trust-conflict detection (compile time).
|
|
3
|
+
*
|
|
4
|
+
* The most dangerous governance failure is two *certified* definitions that
|
|
5
|
+
* claim the SAME concept/grain but DISAGREE — e.g. two terms named the same
|
|
6
|
+
* business concept, sharing an identifier and grain, but with divergent
|
|
7
|
+
* business rules or definitions. Without detection the agent would silently
|
|
8
|
+
* pick one. This pass flags such pairs as `kind: 'conflict'` diagnostics so a
|
|
9
|
+
* governed system can refuse to guess and ask a human to pick the winner.
|
|
10
|
+
*
|
|
11
|
+
* This is a *manifest-level* (cross-file) check: the per-file semantic analyzer
|
|
12
|
+
* cannot see two files at once, so this operates on the assembled term/block
|
|
13
|
+
* maps. It is re-exported from `semantic/analyzer.ts` and invoked by the
|
|
14
|
+
* manifest builder after blocks/terms are scanned.
|
|
15
|
+
*
|
|
16
|
+
* Heuristics are deliberately CONSERVATIVE to avoid false positives:
|
|
17
|
+
* - Both sides must be governance-grade (terms: status certified/approved or
|
|
18
|
+
* no status; certified blocks only).
|
|
19
|
+
* - They must claim the SAME concept: a shared, normalized identifier AND the
|
|
20
|
+
* same grain (when both declare a grain).
|
|
21
|
+
* - They must DIVERGE: different normalized definition OR different business
|
|
22
|
+
* rules. Two artifacts that agree are NOT a conflict, and the same artifact
|
|
23
|
+
* compared with itself is never a conflict.
|
|
24
|
+
*/
|
|
25
|
+
/** Normalize free text for divergence comparison (case/space/punctuation-insensitive). */
|
|
26
|
+
function normalizeText(value) {
|
|
27
|
+
return (value ?? '')
|
|
28
|
+
.toLowerCase()
|
|
29
|
+
.replace(/[^a-z0-9]+/g, ' ')
|
|
30
|
+
.trim();
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Normalize an identifier/grain token for equality comparison. Underscores are
|
|
34
|
+
* preserved (they are part of identifier tokens like `active_customer`); other
|
|
35
|
+
* separators collapse to a single space.
|
|
36
|
+
*/
|
|
37
|
+
function normalizeKey(value) {
|
|
38
|
+
return (value ?? '')
|
|
39
|
+
.toLowerCase()
|
|
40
|
+
.replace(/[^a-z0-9_]+/g, ' ')
|
|
41
|
+
.trim()
|
|
42
|
+
.replace(/\s+/g, ' ');
|
|
43
|
+
}
|
|
44
|
+
/** Stable, order-insensitive fingerprint of a business-rules list. */
|
|
45
|
+
function rulesFingerprint(rules) {
|
|
46
|
+
if (!rules || rules.length === 0)
|
|
47
|
+
return '';
|
|
48
|
+
return rules
|
|
49
|
+
.map((rule) => normalizeText(rule))
|
|
50
|
+
.filter(Boolean)
|
|
51
|
+
.sort()
|
|
52
|
+
.join('||');
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* The set of normalized identifiers an artifact claims. For terms this is the
|
|
56
|
+
* declared `identifiers`; for blocks the declared `grain`/`entities` act as the
|
|
57
|
+
* concept anchor. Includes the (normalized) name as a weak identifier so two
|
|
58
|
+
* same-named certified definitions are comparable even when identifiers are
|
|
59
|
+
* sparse.
|
|
60
|
+
*/
|
|
61
|
+
function termIdentifierSet(term) {
|
|
62
|
+
const ids = new Set();
|
|
63
|
+
for (const id of term.identifiers ?? []) {
|
|
64
|
+
const norm = normalizeKey(id);
|
|
65
|
+
if (norm)
|
|
66
|
+
ids.add(norm);
|
|
67
|
+
}
|
|
68
|
+
const name = normalizeKey(term.name);
|
|
69
|
+
if (name)
|
|
70
|
+
ids.add(`name:${name}`);
|
|
71
|
+
return ids;
|
|
72
|
+
}
|
|
73
|
+
function blockIdentifierSet(block) {
|
|
74
|
+
const ids = new Set();
|
|
75
|
+
for (const entity of block.entities ?? []) {
|
|
76
|
+
const norm = normalizeKey(entity);
|
|
77
|
+
if (norm)
|
|
78
|
+
ids.add(norm);
|
|
79
|
+
}
|
|
80
|
+
if (block.grain) {
|
|
81
|
+
const norm = normalizeKey(block.grain);
|
|
82
|
+
if (norm)
|
|
83
|
+
ids.add(`grain:${norm}`);
|
|
84
|
+
}
|
|
85
|
+
const name = normalizeKey(block.name);
|
|
86
|
+
if (name)
|
|
87
|
+
ids.add(`name:${name}`);
|
|
88
|
+
return ids;
|
|
89
|
+
}
|
|
90
|
+
function sharedIdentifier(a, b) {
|
|
91
|
+
for (const id of a) {
|
|
92
|
+
if (b.has(id))
|
|
93
|
+
return id;
|
|
94
|
+
}
|
|
95
|
+
return undefined;
|
|
96
|
+
}
|
|
97
|
+
/** A term counts as governance-grade unless explicitly marked draft/deprecated. */
|
|
98
|
+
function isGovernedTerm(term) {
|
|
99
|
+
const status = term.status?.toLowerCase();
|
|
100
|
+
return status !== 'draft' && status !== 'deprecated' && status !== 'archived';
|
|
101
|
+
}
|
|
102
|
+
function isCertifiedBlock(block) {
|
|
103
|
+
const status = block.status?.toLowerCase();
|
|
104
|
+
return status === 'certified' || status === 'approved';
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Two terms conflict when they share an identifier and (when both declare one)
|
|
108
|
+
* the same grain, but their definitions or business rules diverge. We compare
|
|
109
|
+
* the `description` as the term's definition.
|
|
110
|
+
*/
|
|
111
|
+
function termsConflict(a, b) {
|
|
112
|
+
const shared = sharedIdentifier(termIdentifierSet(a), termIdentifierSet(b));
|
|
113
|
+
if (!shared)
|
|
114
|
+
return null;
|
|
115
|
+
// If both declare identifiers but none overlap beyond the name, require a
|
|
116
|
+
// real (non-name) shared identifier to stay conservative.
|
|
117
|
+
const aHasIds = (a.identifiers ?? []).length > 0;
|
|
118
|
+
const bHasIds = (b.identifiers ?? []).length > 0;
|
|
119
|
+
if (aHasIds && bHasIds && shared.startsWith('name:')) {
|
|
120
|
+
const realShared = sharedIdentifier(new Set([...termIdentifierSet(a)].filter((id) => !id.startsWith('name:'))), new Set([...termIdentifierSet(b)].filter((id) => !id.startsWith('name:'))));
|
|
121
|
+
if (!realShared)
|
|
122
|
+
return null;
|
|
123
|
+
}
|
|
124
|
+
const defA = normalizeText(a.description);
|
|
125
|
+
const defB = normalizeText(b.description);
|
|
126
|
+
const rulesA = rulesFingerprint(a.businessRules);
|
|
127
|
+
const rulesB = rulesFingerprint(b.businessRules);
|
|
128
|
+
// Need at least one concrete divergence signal; if both sides are empty of
|
|
129
|
+
// definitions AND rules, we cannot claim divergence — stay silent.
|
|
130
|
+
const hasComparable = Boolean(defA || defB || rulesA || rulesB);
|
|
131
|
+
if (!hasComparable)
|
|
132
|
+
return null;
|
|
133
|
+
const definitionDiverges = Boolean(defA && defB && defA !== defB);
|
|
134
|
+
const rulesDiverge = Boolean(rulesA && rulesB && rulesA !== rulesB);
|
|
135
|
+
if (!definitionDiverges && !rulesDiverge)
|
|
136
|
+
return null;
|
|
137
|
+
const concept = shared.replace(/^name:/, '');
|
|
138
|
+
const reasonParts = [];
|
|
139
|
+
if (definitionDiverges)
|
|
140
|
+
reasonParts.push('definitions differ');
|
|
141
|
+
if (rulesDiverge)
|
|
142
|
+
reasonParts.push('business rules differ');
|
|
143
|
+
return {
|
|
144
|
+
concept,
|
|
145
|
+
reason: `Both terms claim "${concept}" but ${reasonParts.join(' and ')}.`,
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Two certified blocks conflict when they share a concept anchor (entity or
|
|
150
|
+
* grain) and the same grain, but their SQL semantics or business rules diverge.
|
|
151
|
+
*/
|
|
152
|
+
function blocksConflict(a, b) {
|
|
153
|
+
const shared = sharedIdentifier(blockIdentifierSet(a), blockIdentifierSet(b));
|
|
154
|
+
if (!shared)
|
|
155
|
+
return null;
|
|
156
|
+
// Require the SAME grain when both declare one (conservative: differing grain
|
|
157
|
+
// is a legitimate different question, not a conflict).
|
|
158
|
+
if (a.grain && b.grain && normalizeKey(a.grain) !== normalizeKey(b.grain))
|
|
159
|
+
return null;
|
|
160
|
+
// A purely name-based overlap between two arbitrary blocks is too weak; need
|
|
161
|
+
// a shared business entity or grain to anchor the concept.
|
|
162
|
+
if (shared.startsWith('name:')) {
|
|
163
|
+
const anchored = sharedIdentifier(new Set([...blockIdentifierSet(a)].filter((id) => !id.startsWith('name:'))), new Set([...blockIdentifierSet(b)].filter((id) => !id.startsWith('name:'))));
|
|
164
|
+
if (!anchored)
|
|
165
|
+
return null;
|
|
166
|
+
}
|
|
167
|
+
const sqlA = normalizeText(a.sql);
|
|
168
|
+
const sqlB = normalizeText(b.sql);
|
|
169
|
+
const rulesA = rulesFingerprint(a.businessRules);
|
|
170
|
+
const rulesB = rulesFingerprint(b.businessRules);
|
|
171
|
+
const hasComparable = Boolean(sqlA || sqlB || rulesA || rulesB);
|
|
172
|
+
if (!hasComparable)
|
|
173
|
+
return null;
|
|
174
|
+
const sqlDiverges = Boolean(sqlA && sqlB && sqlA !== sqlB);
|
|
175
|
+
const rulesDiverge = Boolean(rulesA && rulesB && rulesA !== rulesB);
|
|
176
|
+
if (!sqlDiverges && !rulesDiverge)
|
|
177
|
+
return null;
|
|
178
|
+
const concept = shared.replace(/^(name|grain):/, '');
|
|
179
|
+
const reasonParts = [];
|
|
180
|
+
if (sqlDiverges)
|
|
181
|
+
reasonParts.push('SQL semantics differ');
|
|
182
|
+
if (rulesDiverge)
|
|
183
|
+
reasonParts.push('business rules differ');
|
|
184
|
+
return {
|
|
185
|
+
concept,
|
|
186
|
+
reason: `Both certified blocks claim "${concept}" but ${reasonParts.join(' and ')}.`,
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
function buildPrompt(objectType, a, b, concept) {
|
|
190
|
+
return `Two certified ${objectType}s define "${concept}" differently: "${a}" and "${b}". Which one is authoritative? A human must decide; DQL will not guess.`;
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Detect same-identifier + same-grain + divergent-definition/rule pairs across
|
|
194
|
+
* the manifest's terms and certified blocks, returning additive
|
|
195
|
+
* `kind: 'conflict'` diagnostics. Pairs are compared once (no self-comparison,
|
|
196
|
+
* no duplicate A/B + B/A).
|
|
197
|
+
*/
|
|
198
|
+
export function detectTrustConflicts(terms, blocks) {
|
|
199
|
+
const diagnostics = [];
|
|
200
|
+
const governedTerms = Object.values(terms).filter(isGovernedTerm);
|
|
201
|
+
for (let i = 0; i < governedTerms.length; i += 1) {
|
|
202
|
+
for (let j = i + 1; j < governedTerms.length; j += 1) {
|
|
203
|
+
const a = governedTerms[i];
|
|
204
|
+
const b = governedTerms[j];
|
|
205
|
+
const hit = termsConflict(a, b);
|
|
206
|
+
if (!hit)
|
|
207
|
+
continue;
|
|
208
|
+
const detail = {
|
|
209
|
+
objectType: 'term',
|
|
210
|
+
concept: hit.concept,
|
|
211
|
+
reason: hit.reason,
|
|
212
|
+
prompt: buildPrompt('term', a.name, b.name, hit.concept),
|
|
213
|
+
sides: [termSide(a), termSide(b)],
|
|
214
|
+
};
|
|
215
|
+
diagnostics.push({
|
|
216
|
+
kind: 'conflict',
|
|
217
|
+
filePath: a.filePath,
|
|
218
|
+
severity: 'warning',
|
|
219
|
+
message: `Conflicting certified terms "${a.name}" and "${b.name}": ${hit.reason}`,
|
|
220
|
+
conflict: detail,
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
const certifiedBlocks = Object.values(blocks).filter(isCertifiedBlock);
|
|
225
|
+
for (let i = 0; i < certifiedBlocks.length; i += 1) {
|
|
226
|
+
for (let j = i + 1; j < certifiedBlocks.length; j += 1) {
|
|
227
|
+
const a = certifiedBlocks[i];
|
|
228
|
+
const b = certifiedBlocks[j];
|
|
229
|
+
const hit = blocksConflict(a, b);
|
|
230
|
+
if (!hit)
|
|
231
|
+
continue;
|
|
232
|
+
const detail = {
|
|
233
|
+
objectType: 'block',
|
|
234
|
+
concept: hit.concept,
|
|
235
|
+
reason: hit.reason,
|
|
236
|
+
prompt: buildPrompt('block', a.name, b.name, hit.concept),
|
|
237
|
+
sides: [blockSide(a), blockSide(b)],
|
|
238
|
+
};
|
|
239
|
+
diagnostics.push({
|
|
240
|
+
kind: 'conflict',
|
|
241
|
+
filePath: a.filePath,
|
|
242
|
+
severity: 'warning',
|
|
243
|
+
message: `Conflicting certified blocks "${a.name}" and "${b.name}": ${hit.reason}`,
|
|
244
|
+
conflict: detail,
|
|
245
|
+
});
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
return diagnostics;
|
|
249
|
+
}
|
|
250
|
+
function termSide(term) {
|
|
251
|
+
return {
|
|
252
|
+
name: term.name,
|
|
253
|
+
filePath: term.filePath,
|
|
254
|
+
owner: term.owner ?? term.businessOwner,
|
|
255
|
+
domain: term.domain,
|
|
256
|
+
definition: term.description,
|
|
257
|
+
businessRules: term.businessRules,
|
|
258
|
+
};
|
|
259
|
+
}
|
|
260
|
+
function blockSide(block) {
|
|
261
|
+
return {
|
|
262
|
+
name: block.name,
|
|
263
|
+
filePath: block.filePath,
|
|
264
|
+
owner: block.owner ?? block.businessOwner,
|
|
265
|
+
domain: block.domain,
|
|
266
|
+
definition: block.description,
|
|
267
|
+
businessRules: block.businessRules,
|
|
268
|
+
};
|
|
269
|
+
}
|
|
270
|
+
//# sourceMappingURL=conflicts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conflicts.js","sourceRoot":"","sources":["../../src/semantic/conflicts.ts"],"names":[],"mappings":"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"}
|
package/dist/semantic/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { SemanticAnalyzer, analyze } from './analyzer.js';
|
|
1
|
+
export { SemanticAnalyzer, analyze, detectTrustConflicts } from './analyzer.js';
|
|
2
2
|
export { SemanticLayer, parseMetricDefinition, parseDimensionDefinition, parseHierarchyDefinition, parseSegmentDefinition, parsePreAggregationDefinition, parseBlockCompanionDefinition, parseCubeDefinition, } from './semantic-layer.js';
|
|
3
3
|
export type { SemanticSourceMetadata, MetricDefinition, DimensionDefinition, MeasureDefinition, EntityDefinition, SemanticModelDefinition, SavedQueryDefinition, HierarchyDefinition, SegmentDefinition, PreAggregationDefinition, BlockCompanionDefinition, HierarchyLevelDefinition, HierarchyDrillPathDefinition, HierarchyRollupType, SemanticLayerConfig, JoinDefinition, TimeDimensionDefinition, CubeDefinition, ComposeQueryOptions, ComposeQueryResult, SemanticSearchOptions, SemanticSearchResults, } from './semantic-layer.js';
|
|
4
4
|
export { loadSemanticLayerFromDir, loadSemanticLayerFromConfig, } from './yaml-loader.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/semantic/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/semantic/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,EACL,aAAa,EACb,qBAAqB,EACrB,wBAAwB,EACxB,wBAAwB,EACxB,sBAAsB,EACtB,6BAA6B,EAC7B,6BAA6B,EAC7B,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,sBAAsB,EACtB,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,EACxB,4BAA4B,EAC5B,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,uBAAuB,EACvB,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,wBAAwB,EACxB,2BAA2B,GAC5B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,oBAAoB,EAAE,mCAAmC,EAAE,yBAAyB,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC/J,YAAY,EAAE,2BAA2B,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAChH,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAC9F,YAAY,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACzF,YAAY,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACrF,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAClE,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC"}
|
package/dist/semantic/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { SemanticAnalyzer, analyze } from './analyzer.js';
|
|
1
|
+
export { SemanticAnalyzer, analyze, detectTrustConflicts } from './analyzer.js';
|
|
2
2
|
export { SemanticLayer, parseMetricDefinition, parseDimensionDefinition, parseHierarchyDefinition, parseSegmentDefinition, parsePreAggregationDefinition, parseBlockCompanionDefinition, parseCubeDefinition, } from './semantic-layer.js';
|
|
3
3
|
export { loadSemanticLayerFromDir, loadSemanticLayerFromConfig, } from './yaml-loader.js';
|
|
4
4
|
export { resolveSemanticLayer, resolveSemanticLayerWithDiagnostics, resolveSemanticLayerAsync, pullCachedRepo, resolveRepoSource } from './providers/index.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/semantic/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/semantic/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,EACL,aAAa,EACb,qBAAqB,EACrB,wBAAwB,EACxB,wBAAwB,EACxB,sBAAsB,EACtB,6BAA6B,EAC7B,6BAA6B,EAC7B,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAyB7B,OAAO,EACL,wBAAwB,EACxB,2BAA2B,GAC5B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,oBAAoB,EAAE,mCAAmC,EAAE,yBAAyB,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE/J,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAG9F,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { TRUST_LABELS, TRUST_LABEL_ORDER, TRUST_QUALIFIER_INVARIANT_VIOLATED, TRUST_QUALIFIER_STALE_DATA, TRUST_QUALIFIER_UPSTREAM_FAILED, DEFAULT_TRUST_LABEL_ID, resolveTrustLabel, trustLabelIdForRoute, trustLabelIdForStatus, dataStateQualifier, composeEffectiveTrust, } from './labels.js';
|
|
2
|
+
export type { TrustLabelId, TrustLabelSeverity, TrustLabelColor, TrustLabelDefinition, ResolvedTrustLabel, DataStateLike, } from './labels.js';
|
|
3
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/trust/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,kCAAkC,EAClC,0BAA0B,EAC1B,+BAA+B,EAC/B,sBAAsB,EACtB,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,oBAAoB,EACpB,kBAAkB,EAClB,aAAa,GACd,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { TRUST_LABELS, TRUST_LABEL_ORDER, TRUST_QUALIFIER_INVARIANT_VIOLATED, TRUST_QUALIFIER_STALE_DATA, TRUST_QUALIFIER_UPSTREAM_FAILED, DEFAULT_TRUST_LABEL_ID, resolveTrustLabel, trustLabelIdForRoute, trustLabelIdForStatus, dataStateQualifier, composeEffectiveTrust, } from './labels.js';
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/trust/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,kCAAkC,EAClC,0BAA0B,EAC1B,+BAA+B,EAC/B,sBAAsB,EACtB,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical trust-label vocabulary.
|
|
3
|
+
*
|
|
4
|
+
* DQL's three-tier trust routing implies labels everywhere — the MCP server's
|
|
5
|
+
* answer contract, the agent answer-loop source tiers, and the UI badge. This
|
|
6
|
+
* module defines that vocabulary **once** so every surface speaks the same
|
|
7
|
+
* language. It is intentionally a pure, dependency-free module (no node-only
|
|
8
|
+
* imports) so it can be mirrored into the browser-only `dql-ui` package without
|
|
9
|
+
* pulling the rest of `dql-core` into a UI bundle.
|
|
10
|
+
*
|
|
11
|
+
* Each label is structured as a **base label + optional qualifier** so that
|
|
12
|
+
* downgrade/composition states stay representable. For example, a sibling
|
|
13
|
+
* change elsewhere may emit a "Certified · invariant violated" downgrade: that
|
|
14
|
+
* is base `Certified` plus the qualifier `invariant violated`. Consumers can
|
|
15
|
+
* render the base alone, or `base · qualifier` when a qualifier is present,
|
|
16
|
+
* without inventing new top-level labels.
|
|
17
|
+
*
|
|
18
|
+
* The vocabulary is **additive and backward compatible**: existing manifests,
|
|
19
|
+
* route values, and `status` strings keep working, and any unrecognized label
|
|
20
|
+
* id degrades to a safe default (`Insufficient-Context`) rather than throwing.
|
|
21
|
+
*/
|
|
22
|
+
/** The canonical base trust labels. */
|
|
23
|
+
export type TrustLabelId = 'certified' | 'reviewed' | 'ai_generated' | 'insufficient_context' | 'conflict';
|
|
24
|
+
/** Severity drives ordering and the UI color/tone mapping. Higher = worse. */
|
|
25
|
+
export type TrustLabelSeverity = 'ok' | 'info' | 'caution' | 'blocked';
|
|
26
|
+
/**
|
|
27
|
+
* A semantic color token. Kept abstract (not a hex/CSS value) so each surface
|
|
28
|
+
* can map it to its own palette — `dql-ui` maps it to a `StatusPill` tone, the
|
|
29
|
+
* MCP/agent surfaces use it as a stable machine-readable hint.
|
|
30
|
+
*/
|
|
31
|
+
export type TrustLabelColor = 'green' | 'blue' | 'amber' | 'slate' | 'red';
|
|
32
|
+
/** Display metadata for a canonical base label. */
|
|
33
|
+
export interface TrustLabelDefinition {
|
|
34
|
+
/** Stable machine id. */
|
|
35
|
+
id: TrustLabelId;
|
|
36
|
+
/** Human-facing base label, e.g. "Certified". */
|
|
37
|
+
base: string;
|
|
38
|
+
/** Severity bucket (drives color + ordering). */
|
|
39
|
+
severity: TrustLabelSeverity;
|
|
40
|
+
/** Abstract color token consumers map to their own palette. */
|
|
41
|
+
color: TrustLabelColor;
|
|
42
|
+
/** One-line description of what the label means. */
|
|
43
|
+
description: string;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* A resolved, possibly-composed trust label: a canonical base plus an optional
|
|
47
|
+
* free-form qualifier. Surfaces render `display` (already composed as
|
|
48
|
+
* `base · qualifier` when a qualifier is present).
|
|
49
|
+
*/
|
|
50
|
+
export interface ResolvedTrustLabel {
|
|
51
|
+
id: TrustLabelId;
|
|
52
|
+
base: string;
|
|
53
|
+
/** Optional downgrade/composition qualifier, e.g. "invariant violated". */
|
|
54
|
+
qualifier?: string;
|
|
55
|
+
severity: TrustLabelSeverity;
|
|
56
|
+
color: TrustLabelColor;
|
|
57
|
+
/** `base` or `base · qualifier`. */
|
|
58
|
+
display: string;
|
|
59
|
+
}
|
|
60
|
+
/** Canonical vocabulary, defined once. Order is the trust hierarchy (best → worst). */
|
|
61
|
+
export declare const TRUST_LABELS: Record<TrustLabelId, TrustLabelDefinition>;
|
|
62
|
+
/** Ordered list of canonical labels (best → worst). */
|
|
63
|
+
export declare const TRUST_LABEL_ORDER: TrustLabelId[];
|
|
64
|
+
/** Convenience display qualifier shown when a certified artifact is downgraded. */
|
|
65
|
+
export declare const TRUST_QUALIFIER_INVARIANT_VIOLATED = "invariant violated";
|
|
66
|
+
/**
|
|
67
|
+
* Freshness-aware-trust qualifiers. These compose with a base label exactly
|
|
68
|
+
* like {@link TRUST_QUALIFIER_INVARIANT_VIOLATED}: a certified block whose
|
|
69
|
+
* upstream data is stale renders "Certified · stale data"; one whose upstream
|
|
70
|
+
* dbt run failed renders "Certified · upstream failed".
|
|
71
|
+
*
|
|
72
|
+
* `data freshness unknown` is intentionally NOT surfaced as a downgrade — a
|
|
73
|
+
* missing `run_results.json` should degrade silently to the plain base label
|
|
74
|
+
* (see {@link dataStateQualifier}), so projects that have not wired dbt run
|
|
75
|
+
* artifacts keep showing "Certified".
|
|
76
|
+
*/
|
|
77
|
+
export declare const TRUST_QUALIFIER_STALE_DATA = "stale data";
|
|
78
|
+
export declare const TRUST_QUALIFIER_UPSTREAM_FAILED = "upstream failed";
|
|
79
|
+
/** The data-health axis, mirrored from `manifest/types.ts` `DbtDataState`. */
|
|
80
|
+
export type DataStateLike = 'fresh' | 'stale' | 'failed' | 'unknown' | undefined;
|
|
81
|
+
/**
|
|
82
|
+
* Map a data-health state to its trust qualifier, or `undefined` when the data
|
|
83
|
+
* axis should not downgrade the label. `fresh` and `unknown` both return
|
|
84
|
+
* `undefined` so a healthy (or un-instrumented) block shows the plain base
|
|
85
|
+
* label; only `stale` and `failed` produce a visible "· …" qualifier.
|
|
86
|
+
*/
|
|
87
|
+
export declare function dataStateQualifier(dataState: DataStateLike): string | undefined;
|
|
88
|
+
/**
|
|
89
|
+
* Compose the effective trust label for an artifact, folding the data-freshness
|
|
90
|
+
* axis into a base trust label. When `dataState` is `stale`/`failed` the
|
|
91
|
+
* returned label is `<base> · <freshness qualifier>`; otherwise it is the base
|
|
92
|
+
* label unchanged. An explicit `existingQualifier` (e.g. "invariant violated")
|
|
93
|
+
* takes precedence so the two downgrade features never fight over the one
|
|
94
|
+
* qualifier slot — invariant violations are a stronger signal than staleness.
|
|
95
|
+
*
|
|
96
|
+
* Pure and dependency-free; safe to call from any surface (MCP, agent, UI).
|
|
97
|
+
*/
|
|
98
|
+
export declare function composeEffectiveTrust(input: {
|
|
99
|
+
id: string | undefined;
|
|
100
|
+
dataState?: DataStateLike;
|
|
101
|
+
existingQualifier?: string;
|
|
102
|
+
}): ResolvedTrustLabel;
|
|
103
|
+
/** The safe default for any unknown/unmapped label id. */
|
|
104
|
+
export declare const DEFAULT_TRUST_LABEL_ID: TrustLabelId;
|
|
105
|
+
/**
|
|
106
|
+
* Resolve a canonical label by id, composing an optional qualifier into a ready
|
|
107
|
+
* display string. An unknown id degrades to the safe default rather than
|
|
108
|
+
* throwing, so older/forward manifests never break a consumer.
|
|
109
|
+
*/
|
|
110
|
+
export declare function resolveTrustLabel(id: string | undefined, qualifier?: string): ResolvedTrustLabel;
|
|
111
|
+
/**
|
|
112
|
+
* Map an agent/MCP answer route to its canonical trust label id. Additive: an
|
|
113
|
+
* unrecognized route degrades to the safe default.
|
|
114
|
+
*/
|
|
115
|
+
export declare function trustLabelIdForRoute(route: string | undefined): TrustLabelId;
|
|
116
|
+
/**
|
|
117
|
+
* Map a legacy artifact `status` / trust-tier string (as found on manifests and
|
|
118
|
+
* catalog objects) to a canonical label id. Additive and lenient: unknown
|
|
119
|
+
* statuses degrade to the safe default.
|
|
120
|
+
*/
|
|
121
|
+
export declare function trustLabelIdForStatus(status: string | undefined): TrustLabelId;
|
|
122
|
+
//# sourceMappingURL=labels.d.ts.map
|