@duckcodeailabs/dql-core 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.
Files changed (79) hide show
  1. package/dist/contracts/index.d.ts +1 -1
  2. package/dist/contracts/index.d.ts.map +1 -1
  3. package/dist/contracts/index.js.map +1 -1
  4. package/dist/contracts/registry.d.ts +25 -1
  5. package/dist/contracts/registry.d.ts.map +1 -1
  6. package/dist/contracts/registry.js +104 -12
  7. package/dist/contracts/registry.js.map +1 -1
  8. package/dist/contracts/types.d.ts +55 -0
  9. package/dist/contracts/types.d.ts.map +1 -1
  10. package/dist/contracts/types.js.map +1 -1
  11. package/dist/index.d.ts +1 -0
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +1 -0
  14. package/dist/index.js.map +1 -1
  15. package/dist/lineage/builder.d.ts.map +1 -1
  16. package/dist/lineage/builder.js +12 -0
  17. package/dist/lineage/builder.js.map +1 -1
  18. package/dist/lineage/column-lineage.d.ts +27 -0
  19. package/dist/lineage/column-lineage.d.ts.map +1 -1
  20. package/dist/lineage/column-lineage.js +147 -0
  21. package/dist/lineage/column-lineage.js.map +1 -1
  22. package/dist/lineage/derivation.d.ts +111 -0
  23. package/dist/lineage/derivation.d.ts.map +1 -0
  24. package/dist/lineage/derivation.js +177 -0
  25. package/dist/lineage/derivation.js.map +1 -0
  26. package/dist/lineage/impact.d.ts +127 -0
  27. package/dist/lineage/impact.d.ts.map +1 -0
  28. package/dist/lineage/impact.js +305 -0
  29. package/dist/lineage/impact.js.map +1 -0
  30. package/dist/lineage/index.d.ts +3 -1
  31. package/dist/lineage/index.d.ts.map +1 -1
  32. package/dist/lineage/index.js +3 -1
  33. package/dist/lineage/index.js.map +1 -1
  34. package/dist/manifest/builder.d.ts +16 -0
  35. package/dist/manifest/builder.d.ts.map +1 -1
  36. package/dist/manifest/builder.js +117 -10
  37. package/dist/manifest/builder.js.map +1 -1
  38. package/dist/manifest/dbt-freshness.d.ts +65 -0
  39. package/dist/manifest/dbt-freshness.d.ts.map +1 -0
  40. package/dist/manifest/dbt-freshness.js +264 -0
  41. package/dist/manifest/dbt-freshness.js.map +1 -0
  42. package/dist/manifest/domain-writer.d.ts +66 -0
  43. package/dist/manifest/domain-writer.d.ts.map +1 -0
  44. package/dist/manifest/domain-writer.js +114 -0
  45. package/dist/manifest/domain-writer.js.map +1 -0
  46. package/dist/manifest/index.d.ts +4 -1
  47. package/dist/manifest/index.d.ts.map +1 -1
  48. package/dist/manifest/index.js +3 -0
  49. package/dist/manifest/index.js.map +1 -1
  50. package/dist/manifest/output-drift.d.ts +31 -0
  51. package/dist/manifest/output-drift.d.ts.map +1 -0
  52. package/dist/manifest/output-drift.js +97 -0
  53. package/dist/manifest/output-drift.js.map +1 -0
  54. package/dist/manifest/types.d.ts +156 -1
  55. package/dist/manifest/types.d.ts.map +1 -1
  56. package/dist/parser/parser.d.ts.map +1 -1
  57. package/dist/parser/parser.js +8 -0
  58. package/dist/parser/parser.js.map +1 -1
  59. package/dist/semantic/analyzer.d.ts +8 -0
  60. package/dist/semantic/analyzer.d.ts.map +1 -1
  61. package/dist/semantic/analyzer.js +8 -0
  62. package/dist/semantic/analyzer.js.map +1 -1
  63. package/dist/semantic/conflicts.d.ts +33 -0
  64. package/dist/semantic/conflicts.d.ts.map +1 -0
  65. package/dist/semantic/conflicts.js +270 -0
  66. package/dist/semantic/conflicts.js.map +1 -0
  67. package/dist/semantic/index.d.ts +1 -1
  68. package/dist/semantic/index.d.ts.map +1 -1
  69. package/dist/semantic/index.js +1 -1
  70. package/dist/semantic/index.js.map +1 -1
  71. package/dist/trust/index.d.ts +3 -0
  72. package/dist/trust/index.d.ts.map +1 -0
  73. package/dist/trust/index.js +2 -0
  74. package/dist/trust/index.js.map +1 -0
  75. package/dist/trust/labels.d.ts +122 -0
  76. package/dist/trust/labels.d.ts.map +1 -0
  77. package/dist/trust/labels.js +185 -0
  78. package/dist/trust/labels.js.map +1 -0
  79. 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":"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"}
@@ -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":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AASH,0FAA0F;AAC1F,SAAS,aAAa,CAAC,KAAyB;IAC9C,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;SACjB,WAAW,EAAE;SACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,IAAI,EAAE,CAAC;AACZ,CAAC;AAED;;;;GAIG;AACH,SAAS,YAAY,CAAC,KAAyB;IAC7C,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;SACjB,WAAW,EAAE;SACb,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC;SAC5B,IAAI,EAAE;SACN,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC1B,CAAC;AAED,sEAAsE;AACtE,SAAS,gBAAgB,CAAC,KAA2B;IACnD,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAC5C,OAAO,KAAK;SACT,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;SAClC,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,EAAE;SACN,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,iBAAiB,CAAC,IAAkB;IAC3C,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC;QAC9B,IAAI,IAAI;YAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IACD,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,IAAI;QAAE,GAAG,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;IAClC,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAoB;IAC9C,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;QAC1C,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QAClC,IAAI,IAAI;YAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IACD,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,IAAI;YAAE,GAAG,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;IACrC,CAAC;IACD,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,IAAI;QAAE,GAAG,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;IAClC,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,gBAAgB,CAAC,CAAc,EAAE,CAAc;IACtD,KAAK,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;QACnB,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,OAAO,EAAE,CAAC;IAC3B,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,mFAAmF;AACnF,SAAS,cAAc,CAAC,IAAkB;IACxC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC;IAC1C,OAAO,MAAM,KAAK,OAAO,IAAI,MAAM,KAAK,YAAY,IAAI,MAAM,KAAK,UAAU,CAAC;AAChF,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAoB;IAC5C,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC;IAC3C,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,KAAK,UAAU,CAAC;AACzD,CAAC;AAED;;;;GAIG;AACH,SAAS,aAAa,CAAC,CAAe,EAAE,CAAe;IACrD,MAAM,MAAM,GAAG,gBAAgB,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5E,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAEzB,0EAA0E;IAC1E,0DAA0D;IAC1D,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IACjD,IAAI,OAAO,IAAI,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACrD,MAAM,UAAU,GAAG,gBAAgB,CACjC,IAAI,GAAG,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAC1E,IAAI,GAAG,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAC3E,CAAC;QACF,IAAI,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC;IAC/B,CAAC;IAED,MAAM,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;IAEjD,2EAA2E;IAC3E,mEAAmE;IACnE,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,IAAI,MAAM,IAAI,MAAM,CAAC,CAAC;IAChE,IAAI,CAAC,aAAa;QAAE,OAAO,IAAI,CAAC;IAEhC,MAAM,kBAAkB,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC,CAAC;IAClE,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,IAAI,MAAM,IAAI,MAAM,KAAK,MAAM,CAAC,CAAC;IACpE,IAAI,CAAC,kBAAkB,IAAI,CAAC,YAAY;QAAE,OAAO,IAAI,CAAC;IAEtD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC7C,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,IAAI,kBAAkB;QAAE,WAAW,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAC/D,IAAI,YAAY;QAAE,WAAW,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IAC5D,OAAO;QACL,OAAO;QACP,MAAM,EAAE,qBAAqB,OAAO,SAAS,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG;KAC1E,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,cAAc,CAAC,CAAgB,EAAE,CAAgB;IACxD,MAAM,MAAM,GAAG,gBAAgB,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9E,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAEzB,8EAA8E;IAC9E,uDAAuD;IACvD,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEvF,6EAA6E;IAC7E,2DAA2D;IAC3D,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,gBAAgB,CAC/B,IAAI,GAAG,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAC3E,IAAI,GAAG,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAC5E,CAAC;QACF,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;IAC7B,CAAC;IAED,MAAM,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;IAEjD,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,IAAI,MAAM,IAAI,MAAM,CAAC,CAAC;IAChE,IAAI,CAAC,aAAa;QAAE,OAAO,IAAI,CAAC;IAEhC,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC,CAAC;IAC3D,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,IAAI,MAAM,IAAI,MAAM,KAAK,MAAM,CAAC,CAAC;IACpE,IAAI,CAAC,WAAW,IAAI,CAAC,YAAY;QAAE,OAAO,IAAI,CAAC;IAE/C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;IACrD,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,IAAI,WAAW;QAAE,WAAW,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAC1D,IAAI,YAAY;QAAE,WAAW,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IAC5D,OAAO;QACL,OAAO;QACP,MAAM,EAAE,gCAAgC,OAAO,SAAS,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG;KACrF,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,UAA4B,EAAE,CAAS,EAAE,CAAS,EAAE,OAAe;IACtF,OAAO,iBAAiB,UAAU,aAAa,OAAO,mBAAmB,CAAC,UAAU,CAAC,yEAAyE,CAAC;AACjK,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAClC,KAAmC,EACnC,MAAqC;IAErC,MAAM,WAAW,GAAyB,EAAE,CAAC;IAE7C,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAClE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACjD,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACrD,MAAM,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YAC3B,MAAM,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YAC3B,MAAM,GAAG,GAAG,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAChC,IAAI,CAAC,GAAG;gBAAE,SAAS;YACnB,MAAM,MAAM,GAA2B;gBACrC,UAAU,EAAE,MAAM;gBAClB,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC;gBACxD,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;aAClC,CAAC;YACF,WAAW,CAAC,IAAI,CAAC;gBACf,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,QAAQ,EAAE,SAAS;gBACnB,OAAO,EAAE,gCAAgC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,IAAI,MAAM,GAAG,CAAC,MAAM,EAAE;gBACjF,QAAQ,EAAE,MAAM;aACjB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IACvE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACnD,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACvD,MAAM,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;YAC7B,MAAM,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;YAC7B,MAAM,GAAG,GAAG,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACjC,IAAI,CAAC,GAAG;gBAAE,SAAS;YACnB,MAAM,MAAM,GAA2B;gBACrC,UAAU,EAAE,OAAO;gBACnB,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,MAAM,EAAE,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC;gBACzD,KAAK,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;aACpC,CAAC;YACF,WAAW,CAAC,IAAI,CAAC;gBACf,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,QAAQ,EAAE,SAAS;gBACnB,OAAO,EAAE,iCAAiC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,IAAI,MAAM,GAAG,CAAC,MAAM,EAAE;gBAClF,QAAQ,EAAE,MAAM;aACjB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,SAAS,QAAQ,CAAC,IAAkB;IAClC,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,aAAa;QACvC,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,UAAU,EAAE,IAAI,CAAC,WAAW;QAC5B,aAAa,EAAE,IAAI,CAAC,aAAa;KAClC,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,KAAoB;IACrC,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,aAAa;QACzC,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,UAAU,EAAE,KAAK,CAAC,WAAW;QAC7B,aAAa,EAAE,KAAK,CAAC,aAAa;KACnC,CAAC;AACJ,CAAC"}
@@ -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;AAC1D,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"}
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"}
@@ -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;AAC1D,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"}
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