@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
@@ -3,7 +3,9 @@ export function requestedShapeFromPlan(plan) {
3
3
  return plan.requestedShape;
4
4
  }
5
5
  export function certifiedFitAllowsTier1(fit) {
6
- return (fit.kind === 'exact' || fit.kind === 'trim_safe') && fit.confidence === 'high';
6
+ return (fit.kind === 'exact' || fit.kind === 'trim_safe')
7
+ && fit.confidence === 'high'
8
+ && (fit.missingMeasures?.length ?? 0) === 0;
7
9
  }
8
10
  /**
9
11
  * THE single authority for "may this certified block TERMINATE the answer".
@@ -22,6 +24,18 @@ export function certifiedFitAllowsTier1(fit) {
22
24
  */
23
25
  export function certifiedTerminationVerdict(input) {
24
26
  const { fit } = input;
27
+ // A Tier-1 block executes its authored SQL verbatim. It cannot claim a
28
+ // requested metric that is absent from its own output contract merely
29
+ // because the block is tagged/retrieved near that metric. Keep this before
30
+ // every bypass: an example or a named block can accept grain, never replace
31
+ // `revenue` with `lifetime_spend`.
32
+ if ((fit.missingMeasures?.length ?? 0) > 0) {
33
+ return {
34
+ allow: false,
35
+ fit,
36
+ reason: `the block does not declare required measure output(s): ${fit.missingMeasures.join(', ')}`,
37
+ };
38
+ }
25
39
  if (fit.unsupportedFilters.length > 0) {
26
40
  return {
27
41
  allow: false,
@@ -77,33 +91,57 @@ export function droppedAttributeRequest(question, mappedOutputs) {
77
91
  export function evaluateCertifiedBlockFit(input) {
78
92
  const requested = requestedShapeFromPlan(input.plan);
79
93
  const block = blockShape(input.block);
80
- if (input.definitionLookup || input.exactExampleMatch) {
81
- return {
82
- kind: 'exact',
83
- confidence: 'high',
84
- reasons: [input.definitionLookup ? 'definition lookup bypasses shape fit' : 'question matches a certified example'],
85
- missingOutputs: [],
86
- missingDimensions: [],
87
- unsupportedFilters: [],
88
- topNAction: 'none',
89
- inferredContract: block.inferredContract,
90
- };
91
- }
92
94
  const requestedDimensions = requested.dimensions.map(canonicalToken).filter(Boolean);
93
- const requestedMeasures = requested.measures.map(canonicalToken).filter(Boolean);
95
+ // Preserve the authored measure identity rather than collapsing it into a
96
+ // broad analytical family (`lifetime_spend` and `revenue` used to both
97
+ // become `revenue`). The helper below admits only conservative, role-safe
98
+ // aliases such as total/gross/net/monthly revenue; it never accepts tags,
99
+ // examples, or descriptive prose as output authority.
100
+ const requestedMeasures = requestedMetricOutputIdentities(requested.measures);
94
101
  const requiredOutputs = requested.requiredOutputs.map(canonicalColumn).filter(Boolean);
95
102
  const blockDimensions = new Set(block.dimensions);
96
103
  const blockMeasures = new Set(block.measures);
97
104
  const blockOutputs = new Set(block.outputs);
98
- const missingDimensions = uniqueStrings(requestedDimensions.filter((dimension) => !blockDimensions.has(dimension) && !outputHasEntity(blockOutputs, dimension)));
99
- const missingOutputs = uniqueStrings(requiredOutputs.filter((output) => !outputRequirementCovered(output, block)));
105
+ const missingDimensions = uniqueStrings(requestedDimensions.filter((dimension) => !blockDimensions.has(dimension)
106
+ && !outputHasEntity(blockOutputs, dimension)
107
+ && !uniqueExactExampleMemberToken(input, dimension, block)));
108
+ const missingOutputs = uniqueStrings(requiredOutputs.filter((output) =>
109
+ // A directly named artifact is an execution request, not a request for a
110
+ // column that happens to resemble the artifact's snake_case name. For
111
+ // example, `run top_customers` requires the block's declared customer
112
+ // output contract; it does not require a fabricated `top_customer` column.
113
+ !artifactNameRequirement(output, input.block)
114
+ && !outputRequirementCovered(output, block)
115
+ // A planner may retain the spoken measure phrase in requiredOutputs as
116
+ // well as measures (for example "spent"). It is not an additional
117
+ // projected field once the same declared metric output has already proved
118
+ // coverage. The strict missingMeasures gate below remains authoritative.
119
+ && !(requestedMeasures.includes(canonicalMetricOutputIdentity(output))
120
+ && declaredQualifiedOutputCoversMeasure(block, canonicalMetricOutputIdentity(output), input.question, input.plan, requested))
121
+ // An exact authored example may contain member words (for example
122
+ // "food" and "drink") which the parser retains as output requests even
123
+ // though the block's declared `category` output is the actual role. Only
124
+ // the unique exact-example contract may consume those unstructured member
125
+ // tokens. Measures, structural role outputs, filters, grain, ranking and
126
+ // static scope remain independently validated below.
127
+ && !uniqueExactExampleMemberToken(input, output, block)));
128
+ const missingMeasures = uniqueStrings(requestedMeasures.filter((measure) => !blockMeasures.has(measure)
129
+ && !declaredQualifiedOutputCoversMeasure(block, measure, input.question, input.plan, requested)));
100
130
  const measureMatch = requestedMeasures.length === 0
101
- || requestedMeasures.some((measure) => blockMeasures.has(measure) || block.textTokens.has(measure) || outputHasEntity(blockOutputs, measure));
131
+ || missingMeasures.length === 0;
102
132
  const unsupportedFilters = unsupportedRequestedFilters(requested, block, input.question);
103
133
  const unentailedScope = [...block.staticScopeTokens]
104
134
  .filter((token) => !questionEntailsScopeToken(input.question, input.plan, requested, token));
135
+ const requestedGrainIsExactExampleMemberNoise = requested.grain
136
+ && uniqueExactExampleMemberToken(input, requested.grain, block);
105
137
  const grainMismatch = requested.grain && block.grain && canonicalToken(requested.grain) !== block.grain
106
138
  && !blockDimensions.has(canonicalToken(requested.grain))
139
+ // The only allowed grain reinterpretation is a unique, exact authored
140
+ // example whose parser retained a member value (food) in `grain` rather
141
+ // than its declared role (category). The block still has to declare its
142
+ // actual grain, and all measure/output/filter/ranking checks below remain
143
+ // in force. This is not a general exact-example grain bypass.
144
+ && !requestedGrainIsExactExampleMemberNoise
107
145
  ? `certified block grain=${block.grain} does not cover requested grain=${canonicalToken(requested.grain)}`
108
146
  : scalarRequestCannotUseRowGrainBlock(input.plan, requestedDimensions, block)
109
147
  ? `certified block returns rows at ${block.grain ?? block.dimensions[0]} grain but the question requests one aggregate value`
@@ -112,13 +150,14 @@ export function evaluateCertifiedBlockFit(input) {
112
150
  // Content the planner dropped cannot be checked against the block, so a fit
113
151
  // computed over what survived is not evidence that the question is covered.
114
152
  const droppedRequest = droppedAttributeRequest(input.question, requiredOutputs.length);
115
- if (droppedRequest || grainMismatch || missingDimensions.length > 0 || missingOutputs.length > 0 || unsupportedFilters.length > 0 || unentailedScope.length > 0 || !measureMatch || topNAction === 'generate') {
153
+ if (droppedRequest || grainMismatch || missingDimensions.length > 0 || missingMeasures.length > 0 || missingOutputs.length > 0 || unsupportedFilters.length > 0 || unentailedScope.length > 0 || !measureMatch || topNAction === 'generate') {
116
154
  const reasons = [
117
155
  droppedRequest
118
156
  ? 'the question asks for attributes that could not be resolved against the model'
119
157
  : '',
120
158
  grainMismatch,
121
159
  missingDimensions.length ? `missing requested dimensions: ${missingDimensions.join(', ')}` : '',
160
+ missingMeasures.length ? `missing declared measure outputs: ${missingMeasures.join(', ')}` : '',
122
161
  missingOutputs.length ? `missing requested outputs: ${missingOutputs.join(', ')}` : '',
123
162
  unsupportedFilters.length ? `unsupported requested filters: ${unsupportedFilters.join(', ')}` : '',
124
163
  unentailedScope.length ? `certified static scope is not requested: ${unentailedScope.join(', ')}` : '',
@@ -129,6 +168,7 @@ export function evaluateCertifiedBlockFit(input) {
129
168
  kind: block.relevance > 0 ? 'context_only' : 'not_applicable',
130
169
  confidence: 'high',
131
170
  reasons,
171
+ ...(missingMeasures.length > 0 ? { missingMeasures } : {}),
132
172
  missingOutputs,
133
173
  missingDimensions,
134
174
  unsupportedFilters,
@@ -161,6 +201,8 @@ export function evaluateCertifiedBlockFit(input) {
161
201
  reasons: [
162
202
  'certified block covers requested metric, grain, dimensions, filters, and outputs',
163
203
  topNAction === 'trim' ? 'certified result can be trimmed to requested top-N' : '',
204
+ input.exactExampleMatch ? 'question matches a certified example after declared-output validation' : '',
205
+ input.definitionLookup ? 'definition lookup remains within the declared-output contract' : '',
164
206
  block.inferredContract ? 'block contract was safely inferred from available metadata' : '',
165
207
  ].filter(Boolean),
166
208
  missingOutputs: [],
@@ -185,7 +227,13 @@ function scalarRequestCannotUseRowGrainBlock(plan, requestedDimensions, block) {
185
227
  function blockShape(block) {
186
228
  const record = block;
187
229
  const payload = isMetadataObject(block) ? block.payload ?? {} : record;
188
- const sql = stringValue(payload.sql) ?? stringValue(record.sql);
230
+ // DQL parser payloads retain authored block SQL as `query`; older catalog
231
+ // paths call it `sql`. Both are an artifact-owned output contract, unlike
232
+ // a description or retrieval tag.
233
+ const sql = stringValue(payload.sql)
234
+ ?? stringValue(payload.query)
235
+ ?? stringValue(record.sql)
236
+ ?? stringValue(record.query);
189
237
  const descriptiveText = [
190
238
  stringValue(record.name),
191
239
  stringValue(record.description),
@@ -214,12 +262,7 @@ function blockShape(block) {
214
262
  ]);
215
263
  const measures = uniqueStrings([
216
264
  ...outputs.filter(isMeasureLike),
217
- ...tokensFromValue(descriptiveText).filter(isMeasureLike),
218
- ].map(canonicalToken).filter(Boolean));
219
- const textTokens = new Set(tokensFromValue([
220
- descriptiveText,
221
- JSON.stringify(payload),
222
- ].filter(Boolean).join(' ')).map(canonicalToken));
265
+ ].map(canonicalMetricOutputIdentity).filter(Boolean));
223
266
  const filters = uniqueStrings([
224
267
  ...stringArray(payload.allowedFilters),
225
268
  ...stringArray(record.allowedFilters),
@@ -258,7 +301,6 @@ function blockShape(block) {
258
301
  scopeTokens,
259
302
  staticScopeTokens,
260
303
  limit: sql ? parseSqlLimit(sql) : undefined,
261
- textTokens,
262
304
  relevance,
263
305
  inferredContract: stringArray(payload.declaredOutputs).length === 0 && stringArray(record.declaredOutputs).length === 0,
264
306
  };
@@ -427,26 +469,70 @@ function outputCoversRequired(outputs, required) {
427
469
  return outputs.some((output) => requiredTokens.every((token) => output.split('_').includes(token)));
428
470
  }
429
471
  function outputRequirementCovered(required, block) {
472
+ const roleRequirement = analyticalRoleOutput(required);
430
473
  // Compound dimension outputs are contracts, not loose keyword hints.
431
474
  // `beverage_product_types` (a count) must not satisfy `product_type`, and a
432
475
  // block that merely touches products must not satisfy `product_name`.
433
476
  // Requiring the concrete projected output here prevents a high-overlap block
434
477
  // at the wrong grain from being promoted to an exact certified answer.
435
- if (isStructuredDimensionOutput(required)) {
436
- const directDimension = required.replace(/_(?:name|title)$/, '');
437
- return block.outputs.includes(required)
438
- || (directDimension !== required && block.outputs.includes(directDimension));
478
+ if (isStructuredDimensionOutput(roleRequirement)) {
479
+ const directDimension = roleRequirement.replace(/_(?:name|title)$/, '');
480
+ return block.outputs.includes(roleRequirement)
481
+ || (directDimension !== roleRequirement && block.outputs.includes(directDimension));
439
482
  }
440
- if (outputCoversRequired(block.outputs, required))
483
+ if (outputCoversRequired(block.outputs, roleRequirement))
441
484
  return true;
442
- const token = canonicalToken(required);
485
+ const token = canonicalToken(roleRequirement);
443
486
  if (block.dimensions.includes(token))
444
487
  return true;
445
- if (isMeasureLike(required) || block.measures.includes(token)) {
446
- return block.measures.includes(token) || block.textTokens.has(token) || outputHasEntity(new Set(block.outputs), token);
488
+ if (isMeasureLike(roleRequirement) || block.measures.includes(canonicalMetricOutputIdentity(roleRequirement))) {
489
+ return block.measures.includes(canonicalMetricOutputIdentity(roleRequirement));
447
490
  }
448
491
  return false;
449
492
  }
493
+ /**
494
+ * Exact authored examples are executable contract evidence, but only after
495
+ * their own block has proved the requested measure and every structural answer
496
+ * role. A natural-language parser can retain a member value as a dimension or
497
+ * output requirement: in the authored example "revenue by food and drink",
498
+ * `food` and `drink` are values of the declared `category` role, not physical
499
+ * dimensions. Do not use this escape hatch for a named block, a merely
500
+ * lexical example, or a shared example. That would make descriptions/tags or
501
+ * pooled candidates silently redefine the answer shape again.
502
+ */
503
+ function uniqueExactExampleMemberToken(input, token, block) {
504
+ if (!input.exactExampleMatch || !input.uniqueExactExampleContract)
505
+ return false;
506
+ if (block.dimensions.length === 0 && block.outputs.length === 0)
507
+ return false;
508
+ const canonical = canonicalToken(token);
509
+ if (!canonical || block.dimensions.includes(canonical) || block.outputs.includes(canonical))
510
+ return false;
511
+ // Never reinterpret a measure, a concrete output role, a time role, or a
512
+ // common entity/dimension role as a member value. Those are requirements the
513
+ // block must declare locally even for an exact authored example.
514
+ if (isMeasureLike(canonical)
515
+ || isStructuredDimensionOutput(canonical)
516
+ || EXACT_EXAMPLE_STRUCTURAL_ROLES.has(canonical))
517
+ return false;
518
+ return true;
519
+ }
520
+ const EXACT_EXAMPLE_STRUCTURAL_ROLES = new Set([
521
+ 'product', 'customer', 'account', 'user', 'member', 'category', 'segment',
522
+ 'region', 'channel', 'order', 'day', 'week', 'month', 'quarter', 'year',
523
+ ]);
524
+ /**
525
+ * Ranking words describe the result ordering, not an extra projected field.
526
+ * `top_customer` is therefore covered by a declared `customer_name` output
527
+ * only after the independent ranking/limit checks have accepted the block.
528
+ */
529
+ function analyticalRoleOutput(value) {
530
+ return value.replace(/^(?:top|bottom|highest|lowest|best|worst|leading)_/, '');
531
+ }
532
+ function artifactNameRequirement(required, block) {
533
+ const name = canonicalColumn(block.name ?? '');
534
+ return Boolean(name && name === required);
535
+ }
450
536
  function isStructuredDimensionOutput(value) {
451
537
  return /_(?:id|key|name|title|type|category|segment|region|country|channel|date|month|quarter|year)$/.test(value)
452
538
  && !isMeasureLike(value);
@@ -460,10 +546,21 @@ function outputHasEntity(outputs, entity) {
460
546
  }
461
547
  function extractSqlOutputs(sql) {
462
548
  const shape = extractSimpleSelectShape(sql);
463
- if (!shape)
549
+ if (shape) {
550
+ return shape.selectExpressions
551
+ .map(selectExpressionOutputName)
552
+ .filter((value) => Boolean(value));
553
+ }
554
+ // A scalar certified KPI may intentionally be a source-free SELECT, for
555
+ // example `SELECT 42500 AS revenue_total`. It is still an authored output
556
+ // contract, so recognize explicit aliases without falling back to prose,
557
+ // tags, examples, or pooled retrieval evidence. Keep this deliberately
558
+ // narrow: complex/ambiguous SQL remains unavailable for Tier-1 proof.
559
+ const scalar = sql.trim().replace(/;\s*$/, '');
560
+ if (!/^select\s+/i.test(scalar) || /\bfrom\b/i.test(scalar))
464
561
  return [];
465
- return shape.selectExpressions
466
- .map(selectExpressionOutputName)
562
+ return [...scalar.matchAll(/\bas\s+(["`]?\w+["`]?)\b/gi)]
563
+ .map((match) => match[1]?.replace(/^["`]|["`]$/g, '').trim())
467
564
  .filter((value) => Boolean(value));
468
565
  }
469
566
  function outputContractColumns(value) {
@@ -532,7 +629,14 @@ function isDimensionLike(value) {
532
629
  return /\b(account|category|channel|cohort|country|customer|date|department|geo|hour|item|location|market|member|month|order|period|person|player|product|quarter|region|segment|sku|store|team|territory|type|user|vendor|week|year)\b/.test(value);
533
630
  }
534
631
  function isMeasureLike(value) {
535
- return /\b(amount|arr|average|avg|balance|booking|churn|conversion|cost|count|duration|expense|growth|kpi|margin|metric|mrr|number|order|point|profit|quantity|rate|revenue|sale|score|spend|stat|total|usage|value|volume)\b/.test(value);
632
+ const measureTerms = new Set([
633
+ 'amount', 'arr', 'average', 'avg', 'balance', 'booking', 'churn',
634
+ 'conversion', 'cost', 'count', 'duration', 'expense', 'growth', 'kpi',
635
+ 'margin', 'metric', 'mrr', 'number', 'order', 'point', 'profit',
636
+ 'quantity', 'rate', 'revenue', 'sale', 'score', 'spend', 'stat', 'total',
637
+ 'usage', 'value', 'volume',
638
+ ]);
639
+ return tokensFromValue(value).some((token) => measureTerms.has(token));
536
640
  }
537
641
  function tokensFromValue(value) {
538
642
  return value
@@ -548,6 +652,114 @@ function tokensFromValue(value) {
548
652
  function canonicalColumn(value) {
549
653
  return tokensFromValue(value).join('_');
550
654
  }
655
+ /**
656
+ * Canonical identity for a declared metric OUTPUT, not a retrieval synonym.
657
+ *
658
+ * `gross_revenue`, `net_revenue`, `total_revenue`, and `monthly_revenue` are
659
+ * ordinary authored aliases for the same revenue output family. By contrast,
660
+ * `product_revenue`, `beverage_revenue`, and `lifetime_spend` retain their
661
+ * business qualifiers and cannot silently answer a generic `revenue` request.
662
+ */
663
+ function canonicalMetricOutputIdentity(value) {
664
+ const aliases = {
665
+ avg: 'average',
666
+ beverage: 'beverage',
667
+ drink: 'beverage',
668
+ score: 'point',
669
+ scorer: 'point',
670
+ scoring: 'point',
671
+ sale: 'revenue',
672
+ sales: 'revenue',
673
+ spend: 'revenue',
674
+ spent: 'revenue',
675
+ spending: 'revenue',
676
+ sum: 'total',
677
+ };
678
+ const genericModifiers = new Set([
679
+ 'annual', 'average', 'current', 'daily', 'gross', 'monthly', 'net',
680
+ 'quarterly', 'total', 'yearly',
681
+ ]);
682
+ const tokens = tokensFromValue(value)
683
+ .map((token) => aliases[token] ?? token)
684
+ .filter(Boolean);
685
+ while (tokens.length > 1 && genericModifiers.has(tokens[0]))
686
+ tokens.shift();
687
+ while (tokens.length > 1 && genericModifiers.has(tokens.at(-1)))
688
+ tokens.pop();
689
+ return tokens.join('_');
690
+ }
691
+ /**
692
+ * Planner extraction may retain both a complete phrase (`total points`) and
693
+ * its presentation modifier (`total`). The latter is not an independently
694
+ * requested metric; requiring an output literally named `total` would reject
695
+ * the artifact that explicitly projects `total_points`. Retain a bare generic
696
+ * request only when it is all the reader supplied.
697
+ */
698
+ function requestedMetricOutputIdentities(values) {
699
+ const identities = uniqueStrings(values.map(canonicalMetricOutputIdentity).filter(Boolean));
700
+ if (identities.length <= 1)
701
+ return identities;
702
+ return identities.filter((identity) => identity !== 'total' && identity !== 'average');
703
+ }
704
+ /**
705
+ * A scoped declared output can satisfy the metric root only when every
706
+ * business qualifier is explicitly present in the request. This keeps
707
+ * `beverage_revenue` valid for a beverage request while preventing the
708
+ * unrelated `lifetime_spend` output from standing in for bare revenue.
709
+ *
710
+ * This is still output-contract evidence: descriptions, tags, examples, and
711
+ * neighbouring candidates never participate in the match.
712
+ */
713
+ function declaredQualifiedOutputCoversMeasure(block, requestedMeasure, question, plan, requested) {
714
+ const requestedRoot = metricOutputRoot(requestedMeasure);
715
+ if (!requestedRoot)
716
+ return false;
717
+ return block.measures.some((declaredMeasure) => {
718
+ // A count that is explicitly named after the requested entity is a
719
+ // role-correct authored metric identity: `customer_count` answers "how
720
+ // many customers", and `order_count` answers "total orders". Require
721
+ // the count/total language in the question so a generic entity reference
722
+ // cannot become a count merely through retrieval proximity.
723
+ if (declaredMeasure === `${requestedMeasure}_count`
724
+ && /\b(?:how\s+many|count|number\s+of|total)\b/i.test(question)) {
725
+ return true;
726
+ }
727
+ if (metricOutputRoot(declaredMeasure) !== requestedRoot)
728
+ return false;
729
+ const qualifiers = metricOutputQualifiers(declaredMeasure);
730
+ if (qualifiers.length > 0 && qualifiers.every((qualifier) => questionEntailsOutputQualifier(question, plan, requested, qualifier)))
731
+ return true;
732
+ // Conversely, a generic output becomes a qualified answer only when the
733
+ // block itself declares every qualifier as a dimension/output at the
734
+ // requested grain. This admits an authored `{ product_name, revenue }`
735
+ // block for product revenue, while never allowing a lifetime-spend block
736
+ // to impersonate generic revenue.
737
+ const requestedQualifiers = metricOutputQualifiers(requestedMeasure);
738
+ return declaredMeasure === requestedRoot
739
+ && requestedQualifiers.length > 0
740
+ && requestedQualifiers.every((qualifier) => block.dimensions.includes(canonicalToken(qualifier))
741
+ || outputHasEntity(new Set(block.outputs), canonicalToken(qualifier)))
742
+ && requestedQualifiers.every((qualifier) => questionEntailsOutputQualifier(question, plan, requested, qualifier));
743
+ });
744
+ }
745
+ function metricOutputRoot(identity) {
746
+ return identity.split('_').filter(Boolean).at(-1);
747
+ }
748
+ function metricOutputQualifiers(identity) {
749
+ const tokens = identity.split('_').filter(Boolean);
750
+ return tokens.slice(0, -1);
751
+ }
752
+ function questionEntailsOutputQualifier(question, plan, requested, qualifier) {
753
+ if (questionEntailsScopeToken(question, plan, requested, qualifier))
754
+ return true;
755
+ // This is a role-safe authored alias pair, not a broad retrieval synonym.
756
+ // It is deliberately limited to the fixture/domain-neutral vocabulary that
757
+ // the planner itself treats as the same category restriction.
758
+ if (qualifier === 'beverage') {
759
+ return /\b(?:beverage|drink)\b/i.test(question);
760
+ }
761
+ return false;
762
+ }
551
763
  function canonicalToken(value) {
552
764
  const tokens = tokensFromValue(value);
553
765
  if (tokens.length === 0)
@@ -1 +1 @@
1
- {"version":3,"file":"block-fit.js","sourceRoot":"","sources":["../../src/metadata/block-fit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"block-fit.js","sourceRoot":"","sources":["../../src/metadata/block-fit.ts"],"names":[],"mappings":"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"}