@duckcodeailabs/dql-agent 1.14.1 → 1.14.3-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (174) hide show
  1. package/dist/agent-run-engine.d.ts +71 -2
  2. package/dist/agent-run-engine.d.ts.map +1 -1
  3. package/dist/agent-run-engine.js +1048 -31
  4. package/dist/agent-run-engine.js.map +1 -1
  5. package/dist/agent-run-gates.d.ts.map +1 -1
  6. package/dist/agent-run-gates.js +12 -0
  7. package/dist/agent-run-gates.js.map +1 -1
  8. package/dist/agent-run-planner.d.ts +6 -0
  9. package/dist/agent-run-planner.d.ts.map +1 -1
  10. package/dist/agent-run-planner.js +2 -0
  11. package/dist/agent-run-planner.js.map +1 -1
  12. package/dist/agent-run-store.d.ts.map +1 -1
  13. package/dist/agent-run-store.js +48 -3
  14. package/dist/agent-run-store.js.map +1 -1
  15. package/dist/agentic/analyst-loop.d.ts +7 -1
  16. package/dist/agentic/analyst-loop.d.ts.map +1 -1
  17. package/dist/agentic/analyst-loop.js +211 -28
  18. package/dist/agentic/analyst-loop.js.map +1 -1
  19. package/dist/agentic/assumptions.d.ts +1 -1
  20. package/dist/agentic/assumptions.d.ts.map +1 -1
  21. package/dist/agentic/assumptions.js.map +1 -1
  22. package/dist/agentic/research/synthesis.d.ts +4 -0
  23. package/dist/agentic/research/synthesis.d.ts.map +1 -1
  24. package/dist/agentic/research/synthesis.js +23 -8
  25. package/dist/agentic/research/synthesis.js.map +1 -1
  26. package/dist/agentic/research-agent.d.ts.map +1 -1
  27. package/dist/agentic/research-agent.js +13 -3
  28. package/dist/agentic/research-agent.js.map +1 -1
  29. package/dist/agentic/sql-authorization.d.ts +8 -0
  30. package/dist/agentic/sql-authorization.d.ts.map +1 -1
  31. package/dist/agentic/sql-authorization.js +233 -2
  32. package/dist/agentic/sql-authorization.js.map +1 -1
  33. package/dist/analytical-compatibility.d.ts.map +1 -1
  34. package/dist/analytical-compatibility.js +8 -1
  35. package/dist/analytical-compatibility.js.map +1 -1
  36. package/dist/analytical-failure-repair.d.ts.map +1 -1
  37. package/dist/analytical-failure-repair.js +6 -2
  38. package/dist/analytical-failure-repair.js.map +1 -1
  39. package/dist/analytical-frame.d.ts +23 -1
  40. package/dist/analytical-frame.d.ts.map +1 -1
  41. package/dist/analytical-frame.js +332 -17
  42. package/dist/analytical-frame.js.map +1 -1
  43. package/dist/analytical-orchestration.d.ts +613 -0
  44. package/dist/analytical-orchestration.d.ts.map +1 -1
  45. package/dist/analytical-orchestration.js +1007 -0
  46. package/dist/analytical-orchestration.js.map +1 -1
  47. package/dist/answer-loop.d.ts +110 -6
  48. package/dist/answer-loop.d.ts.map +1 -1
  49. package/dist/answer-loop.js +1180 -125
  50. package/dist/answer-loop.js.map +1 -1
  51. package/dist/answer-shape.d.ts +32 -1
  52. package/dist/answer-shape.d.ts.map +1 -1
  53. package/dist/answer-shape.js +49 -3
  54. package/dist/answer-shape.js.map +1 -1
  55. package/dist/ask-observability/index.d.ts +11 -0
  56. package/dist/ask-observability/index.d.ts.map +1 -0
  57. package/dist/ask-observability/index.js +7 -0
  58. package/dist/ask-observability/index.js.map +1 -0
  59. package/dist/ask-observability/instrumentation.d.ts +35 -0
  60. package/dist/ask-observability/instrumentation.d.ts.map +1 -0
  61. package/dist/ask-observability/instrumentation.js +472 -0
  62. package/dist/ask-observability/instrumentation.js.map +1 -0
  63. package/dist/ask-observability/observer.d.ts +62 -0
  64. package/dist/ask-observability/observer.d.ts.map +1 -0
  65. package/dist/ask-observability/observer.js +537 -0
  66. package/dist/ask-observability/observer.js.map +1 -0
  67. package/dist/ask-observability/portable.d.ts +98 -0
  68. package/dist/ask-observability/portable.d.ts.map +1 -0
  69. package/dist/ask-observability/portable.js +527 -0
  70. package/dist/ask-observability/portable.js.map +1 -0
  71. package/dist/ask-observability/store.d.ts +130 -0
  72. package/dist/ask-observability/store.d.ts.map +1 -0
  73. package/dist/ask-observability/store.js +1114 -0
  74. package/dist/ask-observability/store.js.map +1 -0
  75. package/dist/ask-observability/types.d.ts +357 -0
  76. package/dist/ask-observability/types.d.ts.map +1 -0
  77. package/dist/ask-observability/types.js +2 -0
  78. package/dist/ask-observability/types.js.map +1 -0
  79. package/dist/ask-observability/utils.d.ts +21 -0
  80. package/dist/ask-observability/utils.d.ts.map +1 -0
  81. package/dist/ask-observability/utils.js +102 -0
  82. package/dist/ask-observability/utils.js.map +1 -0
  83. package/dist/conversation/snapshot.d.ts +20 -0
  84. package/dist/conversation/snapshot.d.ts.map +1 -1
  85. package/dist/conversation/snapshot.js +30 -1
  86. package/dist/conversation/snapshot.js.map +1 -1
  87. package/dist/fixtures/ask-ai-office-shaped.d.ts +153 -0
  88. package/dist/fixtures/ask-ai-office-shaped.d.ts.map +1 -0
  89. package/dist/fixtures/ask-ai-office-shaped.js +94 -0
  90. package/dist/fixtures/ask-ai-office-shaped.js.map +1 -0
  91. package/dist/generated-analytical-proposal.d.ts +37 -1
  92. package/dist/generated-analytical-proposal.d.ts.map +1 -1
  93. package/dist/generated-analytical-proposal.js +211 -3
  94. package/dist/generated-analytical-proposal.js.map +1 -1
  95. package/dist/governed-relational-compiler.d.ts +15 -0
  96. package/dist/governed-relational-compiler.d.ts.map +1 -1
  97. package/dist/governed-relational-compiler.js +99 -1
  98. package/dist/governed-relational-compiler.js.map +1 -1
  99. package/dist/index.d.ts +11 -9
  100. package/dist/index.d.ts.map +1 -1
  101. package/dist/index.js +7 -5
  102. package/dist/index.js.map +1 -1
  103. package/dist/intent-controller.d.ts +38 -0
  104. package/dist/intent-controller.d.ts.map +1 -1
  105. package/dist/intent-controller.js +31 -1
  106. package/dist/intent-controller.js.map +1 -1
  107. package/dist/meaning-resolution.d.ts +141 -2
  108. package/dist/meaning-resolution.d.ts.map +1 -1
  109. package/dist/meaning-resolution.js +444 -30
  110. package/dist/meaning-resolution.js.map +1 -1
  111. package/dist/metadata/analysis-planner.d.ts.map +1 -1
  112. package/dist/metadata/analysis-planner.js +144 -7
  113. package/dist/metadata/analysis-planner.js.map +1 -1
  114. package/dist/metadata/block-fit.d.ts +18 -0
  115. package/dist/metadata/block-fit.d.ts.map +1 -1
  116. package/dist/metadata/block-fit.js +250 -38
  117. package/dist/metadata/block-fit.js.map +1 -1
  118. package/dist/metadata/catalog.d.ts.map +1 -1
  119. package/dist/metadata/catalog.js +58 -12
  120. package/dist/metadata/catalog.js.map +1 -1
  121. package/dist/metadata/meaning-evidence.d.ts +19 -3
  122. package/dist/metadata/meaning-evidence.d.ts.map +1 -1
  123. package/dist/metadata/meaning-evidence.js +518 -54
  124. package/dist/metadata/meaning-evidence.js.map +1 -1
  125. package/dist/plan-execution-adapter.d.ts +9 -1
  126. package/dist/plan-execution-adapter.d.ts.map +1 -1
  127. package/dist/plan-execution-adapter.js +93 -13
  128. package/dist/plan-execution-adapter.js.map +1 -1
  129. package/dist/provider-egress.d.ts +24 -10
  130. package/dist/provider-egress.d.ts.map +1 -1
  131. package/dist/provider-egress.js +22 -17
  132. package/dist/provider-egress.js.map +1 -1
  133. package/dist/providers/claude.d.ts.map +1 -1
  134. package/dist/providers/claude.js +10 -9
  135. package/dist/providers/claude.js.map +1 -1
  136. package/dist/providers/dispatch.d.ts +27 -1
  137. package/dist/providers/dispatch.d.ts.map +1 -1
  138. package/dist/providers/dispatch.js +63 -1
  139. package/dist/providers/dispatch.js.map +1 -1
  140. package/dist/providers/gemini.js +10 -10
  141. package/dist/providers/gemini.js.map +1 -1
  142. package/dist/providers/index.d.ts +2 -2
  143. package/dist/providers/index.d.ts.map +1 -1
  144. package/dist/providers/index.js +1 -1
  145. package/dist/providers/index.js.map +1 -1
  146. package/dist/providers/ollama.js +15 -15
  147. package/dist/providers/ollama.js.map +1 -1
  148. package/dist/providers/openai.js +22 -22
  149. package/dist/providers/openai.js.map +1 -1
  150. package/dist/providers/types.d.ts +52 -0
  151. package/dist/providers/types.d.ts.map +1 -1
  152. package/dist/providers/types.js.map +1 -1
  153. package/dist/relationship-proof.d.ts +81 -0
  154. package/dist/relationship-proof.d.ts.map +1 -1
  155. package/dist/relationship-proof.js +228 -4
  156. package/dist/relationship-proof.js.map +1 -1
  157. package/dist/research-loop.d.ts.map +1 -1
  158. package/dist/research-loop.js +23 -1
  159. package/dist/research-loop.js.map +1 -1
  160. package/dist/resolved-analytical-plan.d.ts +22 -1
  161. package/dist/resolved-analytical-plan.d.ts.map +1 -1
  162. package/dist/resolved-analytical-plan.js +773 -49
  163. package/dist/resolved-analytical-plan.js.map +1 -1
  164. package/dist/router.d.ts +14 -4
  165. package/dist/router.d.ts.map +1 -1
  166. package/dist/router.js +3668 -425
  167. package/dist/router.js.map +1 -1
  168. package/dist/semantic-bridge/compose.d.ts.map +1 -1
  169. package/dist/semantic-bridge/compose.js +23 -4
  170. package/dist/semantic-bridge/compose.js.map +1 -1
  171. package/dist/semantic-bridge/member-select.d.ts.map +1 -1
  172. package/dist/semantic-bridge/member-select.js +39 -21
  173. package/dist/semantic-bridge/member-select.js.map +1 -1
  174. package/package.json +5 -5
@@ -1,5 +1,86 @@
1
1
  import { buildGeneratedAnalyticalSqlSignature, buildSqlOutputExpressionSignature, } from '@duckcodeailabs/dql-core';
2
2
  export const GENERATED_ANALYTICAL_TUPLE_DRIFT_MESSAGE = 'Generated query changed the resolved analytical plan and was not executed';
3
+ /**
4
+ * Return only aliases bound by the immutable resolved plan. These are not
5
+ * phrase matches and are never derived from model-provided `outputs` text.
6
+ */
7
+ export function frozenRequiredOutputAliasesForPlan(plan) {
8
+ return [...new Set((plan.outputContract?.requiredOutputs ?? [])
9
+ .map((binding) => binding.outputName ?? outputLeaf(binding.qualifiedId))
10
+ .filter((value) => Boolean(value && parserIdentifier(value)))
11
+ .map(normalizeOutputAlias))];
12
+ }
13
+ /**
14
+ * Return the source binding each new exploratory authorization must prove.
15
+ * A binding that lacks a physical dbt/runtime column is intentionally absent:
16
+ * `validateFrozenRequiredOutputProjection` treats that as a terminal proof
17
+ * gap rather than guessing a source from an output alias.
18
+ */
19
+ export function frozenRequiredOutputBindingProofsForPlan(plan) {
20
+ return (plan.outputContract?.requiredOutputs ?? []).flatMap((binding) => {
21
+ const outputName = frozenOutputAlias(binding);
22
+ const source = frozenPhysicalOutputSource(binding.qualifiedId);
23
+ return outputName && source && binding.qualifiedId
24
+ ? [{
25
+ version: 1,
26
+ outputName,
27
+ qualifiedId: binding.qualifiedId,
28
+ relation: source.relation,
29
+ column: source.column,
30
+ }]
31
+ : [];
32
+ });
33
+ }
34
+ /**
35
+ * Enforce every explicit host output at the SQL authorization boundary. The
36
+ * caller may still apply stricter capability/closure checks; this helper never
37
+ * accepts an unbound term or model-supplied alias.
38
+ */
39
+ export function validateFrozenRequiredOutputProjection(input) {
40
+ const expectedOutputs = frozenRequiredOutputAliasesForPlan(input.plan);
41
+ if (expectedOutputs.length === 0)
42
+ return { ok: true, expectedOutputs, bindingProofs: [] };
43
+ const signature = buildGeneratedAnalyticalSqlSignature(input.sql, input.dialect);
44
+ const actual = new Set((signature?.outputs ?? []).map((output) => normalizeOutputAlias(output.outputAlias)));
45
+ const missingOutputs = expectedOutputs.filter((output) => !actual.has(output));
46
+ const bindingMismatches = [];
47
+ const bindingProofs = [];
48
+ const expectedBindingProofs = frozenRequiredOutputBindingProofsForPlan(input.plan);
49
+ for (const binding of input.plan.outputContract?.requiredOutputs ?? []) {
50
+ const outputName = frozenOutputAlias(binding);
51
+ const expectedProof = outputName
52
+ ? expectedBindingProofs.find((proof) => normalizeOutputAlias(proof.outputName) === normalizeOutputAlias(outputName))
53
+ : undefined;
54
+ if (!outputName || !expectedProof) {
55
+ bindingMismatches.push(outputName ?? binding.requested);
56
+ continue;
57
+ }
58
+ const output = signature?.outputs.find((candidate) => normalizeOutputAlias(candidate.outputAlias) === normalizeOutputAlias(outputName));
59
+ if (!output)
60
+ continue;
61
+ // A named alias by itself is never proof. This output expression must
62
+ // contain exactly one parser-resolved physical column and that source must
63
+ // be the one selected before the plan froze. In particular,
64
+ // `product_id AS order_id` has the expected alias but fails here.
65
+ const references = output.columnReferences;
66
+ const exactSource = references.length === 1
67
+ && normalizePhysicalIdentifier(references[0].column) === expectedProof.column
68
+ && relationMatchesFrozenPhysicalSource(input.plan, references[0].relation ?? '', expectedProof.relation);
69
+ if (!exactSource) {
70
+ bindingMismatches.push(outputName);
71
+ continue;
72
+ }
73
+ bindingProofs.push(expectedProof);
74
+ }
75
+ return missingOutputs.length === 0 && bindingMismatches.length === 0
76
+ ? { ok: true, expectedOutputs, bindingProofs }
77
+ : {
78
+ ok: false,
79
+ expectedOutputs,
80
+ missingOutputs,
81
+ bindingMismatches: [...new Set(bindingMismatches)],
82
+ };
83
+ }
3
84
  /**
4
85
  * Structural gate for the one optional generated-SQL proposal downstream of a
5
86
  * frozen RAP. The proposal carries identifiers, not prose. Both the declared
@@ -31,9 +112,12 @@ export function validateGeneratedAnalyticalProposal(input) {
31
112
  ? { metricId: expectedMetricIds[0], direction: plan.query.order }
32
113
  : undefined;
33
114
  const expectedLimit = frame?.ranking?.limit ?? plan.query.limit;
34
- const expectedOutputs = frame?.requestedOutputs.map((output) => output.id)
35
- ?? plan.outputContract.fields
36
- ?? [...plan.outputContract.dimensions, ...plan.outputContract.measures];
115
+ const expectedOutputs = [...new Set([
116
+ ...(frame?.requestedOutputs.map((output) => output.id)
117
+ ?? plan.outputContract.fields
118
+ ?? [...plan.outputContract.dimensions, ...plan.outputContract.measures]),
119
+ ...frozenRequiredOutputAliasesForPlan(plan),
120
+ ])];
37
121
  const signature = buildGeneratedAnalyticalSqlSignature(proposal.sql, input.dialect);
38
122
  if (!signature) {
39
123
  driftCodes.push('SQL_PARSE_EVIDENCE_MISSING');
@@ -42,6 +126,17 @@ export function validateGeneratedAnalyticalProposal(input) {
42
126
  const sqlOutputs = signature.outputs.map((output) => output.outputAlias);
43
127
  if (!sameSet(sqlOutputs, expectedOutputs))
44
128
  driftCodes.push('OUTPUT_TUPLE_DRIFT');
129
+ // An output alias is not enough authority: the expression must be backed
130
+ // by the exact qualified physical source that the frozen plan selected.
131
+ // This is deliberately evaluated from the parser-owned projection facts,
132
+ // not query-wide lexical references or model output labels.
133
+ if (!validateFrozenRequiredOutputProjection({
134
+ plan,
135
+ sql: proposal.sql,
136
+ ...(input.dialect ? { dialect: input.dialect } : {}),
137
+ }).ok) {
138
+ driftCodes.push('OUTPUT_BINDING_TUPLE_DRIFT');
139
+ }
45
140
  const capability = plan.selectedCapability;
46
141
  if (!capability || expectedMetricIds.length !== 1) {
47
142
  driftCodes.push('METRIC_TUPLE_DRIFT');
@@ -216,4 +311,117 @@ function sameSet(expected, actual) {
216
311
  function normalizeId(value) {
217
312
  return value.replace(/["`]/g, '').split(/[:.]/).at(-1).toLowerCase();
218
313
  }
314
+ function outputLeaf(value) {
315
+ const leaf = value?.replace(/["`]/g, '').split(/[:.]/).at(-1)?.trim();
316
+ return leaf && parserIdentifier(leaf) ? leaf : undefined;
317
+ }
318
+ function frozenOutputAlias(binding) {
319
+ const alias = binding.outputName ?? outputLeaf(binding.qualifiedId);
320
+ return alias && parserIdentifier(alias) ? alias : undefined;
321
+ }
322
+ /**
323
+ * A frozen exploratory projection must identify a physical dbt/runtime column.
324
+ * Semantic/certified members can still use output contracts on their own
325
+ * execution lanes, but they are not sufficient proof for raw SQL. Do not
326
+ * guess a relation from an alias or from another SELECT expression.
327
+ */
328
+ function frozenPhysicalOutputSource(qualifiedId) {
329
+ if (!qualifiedId)
330
+ return undefined;
331
+ const rawId = qualifiedId.trim();
332
+ const encodedColumn = /(?:^|:)column:([^:]+)$/i.exec(rawId)?.[1];
333
+ // The local metadata bridge has two canonical physical-column shapes:
334
+ // `dbt:column:relation.column` and the compact runtime/dbt identity
335
+ // `relation.column`. The latter is not a model-supplied alias: it is only
336
+ // admitted after the host has resolved a qualified candidate into the
337
+ // frozen physical closure. Keep the grammar deliberately narrow so semantic
338
+ // IDs, block fields, and arbitrary dotted prose cannot become SQL proof.
339
+ const compactPhysicalColumn = /^[A-Za-z_][A-Za-z0-9_$]*(?:\.[A-Za-z_][A-Za-z0-9_$]*)+$/
340
+ .test(rawId)
341
+ ? rawId
342
+ : undefined;
343
+ const physicalColumn = encodedColumn ?? compactPhysicalColumn;
344
+ if (!physicalColumn)
345
+ return undefined;
346
+ const parts = physicalColumn
347
+ .split('.')
348
+ .map(normalizePhysicalIdentifier)
349
+ .filter(Boolean);
350
+ if (parts.length < 2)
351
+ return undefined;
352
+ const column = parts.pop();
353
+ const relation = parts.join('.');
354
+ return relation && column ? { relation, column } : undefined;
355
+ }
356
+ function normalizePhysicalIdentifier(value) {
357
+ return value
358
+ .trim()
359
+ .replace(/["`\[\]]/g, '')
360
+ .replace(/\s*\.\s*/g, '.')
361
+ .toLowerCase();
362
+ }
363
+ /**
364
+ * The first projection check sees provider SQL as authored (`order_items`),
365
+ * while the final authorization check sees the same statement after the host
366
+ * has target-qualified its FROM/JOIN leaf (`jaffle_shop.dev.order_items`).
367
+ * Treat those forms as one source only when the qualified form is itself in
368
+ * the frozen physical closure. This is deliberately not a generic leaf-name
369
+ * match: a different catalog/schema with the same table leaf is rejected.
370
+ */
371
+ function relationMatchesFrozenPhysicalSource(plan, actualRelation, expectedRelation) {
372
+ const actual = normalizePhysicalIdentifier(actualRelation);
373
+ const expected = normalizePhysicalIdentifier(expectedRelation);
374
+ if (!actual || !expected)
375
+ return false;
376
+ const frozenRelations = [...new Set((plan.sourceRelationIds ?? [])
377
+ .map(normalizePhysicalIdentifier)
378
+ .filter(Boolean))];
379
+ const expectedLeaf = physicalIdentifierLeaf(expected);
380
+ const actualLeaf = physicalIdentifierLeaf(actual);
381
+ if (!expectedLeaf || actualLeaf !== expectedLeaf)
382
+ return false;
383
+ const leafSources = frozenRelations.filter((source) => physicalIdentifierLeaf(source) === expectedLeaf);
384
+ // A frozen local plan may retain both the compact metadata identity
385
+ // (`order_items`) and the target-bound physical identity
386
+ // (`jaffle_shop.dev.order_items`) for the *same* selected source. Those
387
+ // two representations are not two candidate relations. Keep the compact
388
+ // form usable only when there is exactly one non-compact physical source
389
+ // with that leaf. Two target-qualified sources with the same leaf remain
390
+ // ambiguous and therefore cannot be selected by a compact output proof.
391
+ const qualifiedLeafSources = leafSources.filter((source) => source !== expectedLeaf);
392
+ const expectedIsCompactLeaf = expected === expectedLeaf;
393
+ if (expectedIsCompactLeaf) {
394
+ if (qualifiedLeafSources.length > 1)
395
+ return false;
396
+ if (qualifiedLeafSources.length === 1) {
397
+ // The parser may see either the provider's compact FROM spelling or
398
+ // the target-qualified form that the host authorizes later. Both must
399
+ // resolve to this one frozen physical source; a different catalog or
400
+ // schema with the same leaf is not accepted.
401
+ return actual === expectedLeaf || actual === qualifiedLeafSources[0];
402
+ }
403
+ // A legacy compact-only closure has no target-qualified relation to
404
+ // compare, so it authorizes only the exact compact parser relation.
405
+ return frozenRelations.includes(expectedLeaf) && actual === expectedLeaf;
406
+ }
407
+ // Persisted qualified sources are authoritative only when the exact
408
+ // relation remains selected in this frozen closure. A copied output binding
409
+ // must not authorize a relation that the RAP did not select.
410
+ if (!frozenRelations.includes(expected))
411
+ return false;
412
+ if (actual === expected)
413
+ return true;
414
+ // The provider may use the compact table spelling before target
415
+ // qualification. It is safe only when this exact persisted relation is the
416
+ // sole target-qualified source for that leaf.
417
+ return actual === actualLeaf
418
+ && qualifiedLeafSources.length === 1
419
+ && qualifiedLeafSources[0] === expected;
420
+ }
421
+ function physicalIdentifierLeaf(value) {
422
+ return value.split('.').filter(Boolean).at(-1);
423
+ }
424
+ function normalizeOutputAlias(value) {
425
+ return normalizeId(value).replace(/[^a-z0-9_]/g, '_').replace(/_+/g, '_').replace(/^_|_$/g, '');
426
+ }
219
427
  //# sourceMappingURL=generated-analytical-proposal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generated-analytical-proposal.js","sourceRoot":"","sources":["../src/generated-analytical-proposal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generated-analytical-proposal.js","sourceRoot":"","sources":["../src/generated-analytical-proposal.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,9 @@ export interface GovernedRelationship {
27
27
  qualifiedId: string;
28
28
  fromRelationId: string;
29
29
  toRelationId: string;
30
+ /** Exact modeling entities, retained so frozen safety evidence can reject a restamped registry. */
31
+ fromEntityId?: string;
32
+ toEntityId?: string;
30
33
  keys: Array<{
31
34
  fromColumnId: string;
32
35
  toColumnId: string;
@@ -37,6 +40,14 @@ export interface GovernedRelationship {
37
40
  status: string;
38
41
  automaticJoinAllowed: boolean;
39
42
  staleCertification: boolean;
43
+ certificationFingerprint?: string;
44
+ evidenceExpiresAt?: string;
45
+ validation?: {
46
+ status: string;
47
+ checkedAt: string;
48
+ queryFingerprint: string;
49
+ proofFingerprint?: string;
50
+ };
40
51
  identities: string[];
41
52
  }
42
53
  export interface GovernedRelationalRegistry {
@@ -162,6 +173,8 @@ export declare function compileGovernedRelationalPlan(input: {
162
173
  registry: GovernedRelationalRegistry;
163
174
  driver?: string;
164
175
  maxRows?: number;
176
+ /** Injectable execution clock so relationship-proof expiry is deterministic. */
177
+ now?: () => Date;
165
178
  }): GovernedRelationalCompileResult;
166
179
  /**
167
180
  * Compile every governed-relational source node independently. Alignment,
@@ -176,6 +189,8 @@ export declare function compileGovernedRelationalExecutionGraph(input: {
176
189
  registry: GovernedRelationalRegistry;
177
190
  driver?: string;
178
191
  maxRows?: number;
192
+ /** Passed through to every source compilation as one immutable execution instant. */
193
+ now?: () => Date;
179
194
  }): GovernedAnalyticalGraphCompileResult;
180
195
  export declare function renderGovernedRelationalAst(ast: GovernedRelationalAst, registry: GovernedRelationalRegistry, driver?: string): string;
181
196
  export declare function finalizeGovernedCompilationReceipt(receipt: GovernedCompilationReceipt, result: {
@@ -1 +1 @@
1
- {"version":3,"file":"governed-relational-compiler.d.ts","sourceRoot":"","sources":["../src/governed-relational-compiler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"governed-relational-compiler.d.ts","sourceRoot":"","sources":["../src/governed-relational-compiler.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@
7
7
  */
8
8
  import { createHash } from 'node:crypto';
9
9
  import { getDialect } from '@duckcodeailabs/dql-core';
10
+ import { governedRelationshipSafetyProofIsSelfConsistentV1, } from './relationship-proof.js';
10
11
  export function buildGovernedRelationalRegistry(input) {
11
12
  const provenance = Object.values(input.manifest?.dbtProvenance?.nodes ?? {});
12
13
  const entities = Object.values(input.manifest?.modeling?.entities ?? {});
@@ -52,6 +53,8 @@ export function buildGovernedRelationalRegistry(input) {
52
53
  qualifiedId: relationship.qualifiedId,
53
54
  fromRelationId: from.qualifiedId,
54
55
  toRelationId: to.qualifiedId,
56
+ fromEntityId: relationship.from,
57
+ toEntityId: relationship.to,
55
58
  keys,
56
59
  joinType: relationship.joinTypes?.includes('left') ? 'left' : 'inner',
57
60
  cardinality: relationship.cardinality,
@@ -59,14 +62,100 @@ export function buildGovernedRelationalRegistry(input) {
59
62
  status: relationship.status,
60
63
  automaticJoinAllowed: relationship.automaticJoinAllowed,
61
64
  staleCertification: relationship.staleCertification,
65
+ ...(relationship.certificationFingerprint
66
+ ? { certificationFingerprint: relationship.certificationFingerprint }
67
+ : {}),
68
+ ...(relationship.evidenceExpiresAt ? { evidenceExpiresAt: relationship.evidenceExpiresAt } : {}),
69
+ ...(relationship.validation
70
+ ? {
71
+ validation: {
72
+ status: relationship.validation.status,
73
+ checkedAt: relationship.validation.checkedAt,
74
+ queryFingerprint: relationship.validation.queryFingerprint,
75
+ ...(relationship.validation.proofFingerprint
76
+ ? { proofFingerprint: relationship.validation.proofFingerprint }
77
+ : {}),
78
+ },
79
+ }
80
+ : {}),
62
81
  identities: unique([relationship.qualifiedId, relationship.id, relationship.localId]),
63
82
  }];
64
83
  });
65
84
  const payload = { snapshotId: input.snapshotId, relations, relationships };
66
85
  return { ...payload, fingerprint: hash(stableStringify(payload)) };
67
86
  }
87
+ /**
88
+ * A registry is mutable project state while a governed plan is immutable. A
89
+ * matching snapshot ID is therefore necessary but not sufficient: the exact
90
+ * certified safety facts selected at freeze time must still match the registry
91
+ * edge about to produce SQL. This prevents a caller from restamping a changed
92
+ * registry snapshot or relaxing an unsafe fanout after the router froze.
93
+ */
94
+ function governedRelationshipSafetyForFrozenPlan(plan, relationship) {
95
+ const registryIdentities = new Set([
96
+ relationship.qualifiedId,
97
+ ...relationship.identities,
98
+ ].map(normalizeAuthorityIdentity).filter(Boolean));
99
+ const pathIds = new Set(plan.relationshipPathIds.map(normalizeAuthorityIdentity).filter(Boolean));
100
+ const matches = (plan.governedRelationshipSafetyProofs ?? []).filter((proof) => registryIdentities.has(normalizeAuthorityIdentity(proof.relationshipId))
101
+ && pathIds.has(normalizeAuthorityIdentity(proof.relationshipPathId))
102
+ && governedRelationshipSafetyProofIsSelfConsistentV1(proof));
103
+ return matches.length === 1 ? matches[0] : undefined;
104
+ }
105
+ function governedRelationshipMatchesFrozenSafety(relationship, proof, snapshotId, now) {
106
+ const validation = relationship.validation;
107
+ // The proof is immutable, but certification evidence can expire after the
108
+ // router froze the plan and before the compiler emits SQL. Equality with a
109
+ // registry value only proves that both copies are stale in the same way; it
110
+ // is not current execution authority. Expiry is exclusive: at the exact
111
+ // recorded instant the proof is no longer safe to use.
112
+ const evidenceExpiresAt = proof.evidenceExpiresAt === undefined
113
+ ? undefined
114
+ : Date.parse(proof.evidenceExpiresAt);
115
+ return proof.snapshotId === snapshotId
116
+ && relationship.status === proof.status
117
+ && relationship.staleCertification === proof.staleCertification
118
+ && relationship.automaticJoinAllowed === proof.automaticJoinAllowed
119
+ && relationship.fanout === proof.fanout
120
+ && relationship.cardinality === proof.cardinality
121
+ && relationship.certificationFingerprint === proof.certificationFingerprint
122
+ && relationship.evidenceExpiresAt === proof.evidenceExpiresAt
123
+ && normalizeAuthorityIdentity(relationship.fromEntityId ?? '') === normalizeAuthorityIdentity(proof.from)
124
+ && normalizeAuthorityIdentity(relationship.toEntityId ?? '') === normalizeAuthorityIdentity(proof.to)
125
+ && validation?.status === proof.validation.status
126
+ && validation.checkedAt === proof.validation.checkedAt
127
+ && validation.queryFingerprint === proof.validation.queryFingerprint
128
+ && validation.proofFingerprint === proof.validation.proofFingerprint
129
+ && relationshipKeysMatchFrozenSafety(relationship.keys, proof.keys)
130
+ && (evidenceExpiresAt === undefined
131
+ || Number.isFinite(evidenceExpiresAt) && evidenceExpiresAt > now.getTime());
132
+ }
133
+ function relationshipKeysMatchFrozenSafety(registryKeys, proofKeys) {
134
+ if (registryKeys.length !== proofKeys.length || registryKeys.length === 0)
135
+ return false;
136
+ const normalize = (value) => value
137
+ .replace(/["`]/g, '')
138
+ .split(/[.:/]/)
139
+ .at(-1)
140
+ .trim()
141
+ .toLowerCase();
142
+ const registry = registryKeys
143
+ .map((key) => `${normalize(key.fromColumnId)}:${normalize(key.toColumnId)}`)
144
+ .sort();
145
+ const frozen = proofKeys
146
+ .map((key) => `${normalize(key.from)}:${normalize(key.to)}`)
147
+ .sort();
148
+ return registry.every((key, index) => key === frozen[index]);
149
+ }
150
+ function normalizeAuthorityIdentity(value) {
151
+ return value.trim().toLowerCase();
152
+ }
68
153
  export function compileGovernedRelationalPlan(input) {
69
154
  const { plan, registry } = input;
155
+ // Capture time once per compilation. A proof cannot become valid again in
156
+ // the middle of a plan, and this defines expiry-boundary behavior for every
157
+ // relationship used by the emitted SQL.
158
+ const compilationNow = input.now?.() ?? new Date();
70
159
  if (plan.capability !== 'governed_relational') {
71
160
  return blocked('CAPABILITY_MISMATCH', `Plan capability ${plan.capability} is not governed relational.`);
72
161
  }
@@ -100,7 +189,14 @@ export function compileGovernedRelationalPlan(input) {
100
189
  if (!relationship) {
101
190
  return blocked('RELATIONSHIP_PROOF_REQUIRED', `No selected relationship proof connects ${[...joined].join(', ')} to ${relationIds.filter((id) => !joined.has(id)).join(', ')}.`);
102
191
  }
103
- if (relationship.status !== 'certified' || relationship.staleCertification || !relationship.automaticJoinAllowed) {
192
+ const frozenSafety = governedRelationshipSafetyForFrozenPlan(plan, relationship);
193
+ if (!frozenSafety || !governedRelationshipMatchesFrozenSafety(relationship, frozenSafety, plan.snapshotId, compilationNow)) {
194
+ return blocked('RELATIONSHIP_NOT_EXECUTABLE', `Relationship ${relationship.qualifiedId} no longer matches the frozen certified safety proof.`);
195
+ }
196
+ if (relationship.status !== 'certified'
197
+ || relationship.staleCertification
198
+ || !relationship.automaticJoinAllowed
199
+ || relationship.fanout !== 'safe') {
104
200
  return blocked('RELATIONSHIP_NOT_EXECUTABLE', `Relationship ${relationship.qualifiedId} is not fresh, certified, and automatic-join safe.`);
105
201
  }
106
202
  const next = joined.has(relationship.fromRelationId) ? relationship.toRelationId : relationship.fromRelationId;
@@ -182,6 +278,7 @@ export function compileGovernedRelationalPlan(input) {
182
278
  */
183
279
  export function compileGovernedRelationalExecutionGraph(input) {
184
280
  const { graph, plan, registry } = input;
281
+ const compilationNow = input.now?.() ?? new Date();
185
282
  const graphBlocked = (code, reason, nodeId, candidateIds) => ({
186
283
  status: 'blocked',
187
284
  code,
@@ -267,6 +364,7 @@ export function compileGovernedRelationalExecutionGraph(input) {
267
364
  registry,
268
365
  driver: input.driver,
269
366
  maxRows: input.maxRows,
367
+ now: () => compilationNow,
270
368
  });
271
369
  if (compiled.status === 'blocked') {
272
370
  return graphBlocked(compiled.code, compiled.reason, source.id, compiled.candidateIds);