@duckcodeailabs/dql-agent 1.14.0 → 1.14.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent-run-engine.d.ts +68 -2
- package/dist/agent-run-engine.d.ts.map +1 -1
- package/dist/agent-run-engine.js +520 -26
- package/dist/agent-run-engine.js.map +1 -1
- package/dist/agent-run-gates.d.ts.map +1 -1
- package/dist/agent-run-gates.js +25 -0
- package/dist/agent-run-gates.js.map +1 -1
- package/dist/agentic/analyst-loop.d.ts +91 -0
- package/dist/agentic/analyst-loop.d.ts.map +1 -0
- package/dist/agentic/analyst-loop.js +331 -0
- package/dist/agentic/analyst-loop.js.map +1 -0
- package/dist/agentic/assumptions.d.ts +62 -0
- package/dist/agentic/assumptions.d.ts.map +1 -0
- package/dist/agentic/assumptions.js +73 -0
- package/dist/agentic/assumptions.js.map +1 -0
- package/dist/agentic/business-explanation.d.ts +56 -0
- package/dist/agentic/business-explanation.d.ts.map +1 -0
- package/dist/agentic/business-explanation.js +130 -0
- package/dist/agentic/business-explanation.js.map +1 -0
- package/dist/agentic/identifier-ledger.d.ts +74 -0
- package/dist/agentic/identifier-ledger.d.ts.map +1 -0
- package/dist/agentic/identifier-ledger.js +151 -0
- package/dist/agentic/identifier-ledger.js.map +1 -0
- package/dist/agentic/ledger-tools.d.ts +68 -0
- package/dist/agentic/ledger-tools.d.ts.map +1 -0
- package/dist/agentic/ledger-tools.js +198 -0
- package/dist/agentic/ledger-tools.js.map +1 -0
- package/dist/agentic/orchestrator-policy.d.ts +60 -0
- package/dist/agentic/orchestrator-policy.d.ts.map +1 -0
- package/dist/agentic/orchestrator-policy.js +73 -0
- package/dist/agentic/orchestrator-policy.js.map +1 -0
- package/dist/agentic/orchestrator.d.ts +54 -0
- package/dist/agentic/orchestrator.d.ts.map +1 -0
- package/dist/agentic/orchestrator.js +67 -0
- package/dist/agentic/orchestrator.js.map +1 -0
- package/dist/agentic/preview-tool.d.ts +36 -0
- package/dist/agentic/preview-tool.d.ts.map +1 -0
- package/dist/agentic/preview-tool.js +71 -0
- package/dist/agentic/preview-tool.js.map +1 -0
- package/dist/agentic/rerank.d.ts +50 -0
- package/dist/agentic/rerank.d.ts.map +1 -0
- package/dist/agentic/rerank.js +140 -0
- package/dist/agentic/rerank.js.map +1 -0
- package/dist/agentic/research/hypothesis.d.ts +110 -0
- package/dist/agentic/research/hypothesis.d.ts.map +1 -0
- package/dist/agentic/research/hypothesis.js +125 -0
- package/dist/agentic/research/hypothesis.js.map +1 -0
- package/dist/agentic/research/synthesis.d.ts +36 -0
- package/dist/agentic/research/synthesis.d.ts.map +1 -0
- package/dist/agentic/research/synthesis.js +109 -0
- package/dist/agentic/research/synthesis.js.map +1 -0
- package/dist/agentic/research-agent.d.ts +54 -0
- package/dist/agentic/research-agent.d.ts.map +1 -0
- package/dist/agentic/research-agent.js +177 -0
- package/dist/agentic/research-agent.js.map +1 -0
- package/dist/agentic/sql-authorization.d.ts +131 -0
- package/dist/agentic/sql-authorization.d.ts.map +1 -0
- package/dist/agentic/sql-authorization.js +460 -0
- package/dist/agentic/sql-authorization.js.map +1 -0
- package/dist/agentic/tool-loop.d.ts +29 -0
- package/dist/agentic/tool-loop.d.ts.map +1 -1
- package/dist/agentic/tool-loop.js +129 -52
- package/dist/agentic/tool-loop.js.map +1 -1
- package/dist/agentic/toolset.d.ts.map +1 -1
- package/dist/agentic/toolset.js +155 -0
- package/dist/agentic/toolset.js.map +1 -1
- package/dist/agentic/turn-plan.d.ts +35 -0
- package/dist/agentic/turn-plan.d.ts.map +1 -0
- package/dist/agentic/turn-plan.js +108 -0
- package/dist/agentic/turn-plan.js.map +1 -0
- package/dist/agentic/value-probe.d.ts +89 -0
- package/dist/agentic/value-probe.d.ts.map +1 -0
- package/dist/agentic/value-probe.js +304 -0
- package/dist/agentic/value-probe.js.map +1 -0
- package/dist/analytical-frame.d.ts.map +1 -1
- package/dist/analytical-frame.js +10 -1
- package/dist/analytical-frame.js.map +1 -1
- package/dist/analytical-orchestration.d.ts +382 -0
- package/dist/analytical-orchestration.d.ts.map +1 -1
- package/dist/analytical-orchestration.js +782 -6
- package/dist/analytical-orchestration.js.map +1 -1
- package/dist/analytical-request-policy.d.ts +26 -0
- package/dist/analytical-request-policy.d.ts.map +1 -0
- package/dist/analytical-request-policy.js +82 -0
- package/dist/analytical-request-policy.js.map +1 -0
- package/dist/analytical-result-facts.d.ts +13 -0
- package/dist/analytical-result-facts.d.ts.map +1 -1
- package/dist/analytical-result-facts.js +37 -1
- package/dist/analytical-result-facts.js.map +1 -1
- package/dist/answer-loop.d.ts +105 -16
- package/dist/answer-loop.d.ts.map +1 -1
- package/dist/answer-loop.js +833 -108
- package/dist/answer-loop.js.map +1 -1
- package/dist/answer-shape.d.ts +32 -1
- package/dist/answer-shape.d.ts.map +1 -1
- package/dist/answer-shape.js +49 -3
- package/dist/answer-shape.js.map +1 -1
- package/dist/cascade/budgets.d.ts.map +1 -1
- package/dist/cascade/budgets.js +8 -1
- package/dist/cascade/budgets.js.map +1 -1
- package/dist/cascade/packer.d.ts +88 -0
- package/dist/cascade/packer.d.ts.map +1 -0
- package/dist/cascade/packer.js +106 -0
- package/dist/cascade/packer.js.map +1 -0
- package/dist/conversation/result-ops.d.ts +18 -3
- package/dist/conversation/result-ops.d.ts.map +1 -1
- package/dist/conversation/result-ops.js +77 -5
- package/dist/conversation/result-ops.js.map +1 -1
- package/dist/conversation/rolling-summary.d.ts.map +1 -1
- package/dist/conversation/rolling-summary.js +7 -2
- package/dist/conversation/rolling-summary.js.map +1 -1
- package/dist/conversation/session-store.d.ts +3 -0
- package/dist/conversation/session-store.d.ts.map +1 -1
- package/dist/conversation/session-store.js +8 -4
- package/dist/conversation/session-store.js.map +1 -1
- package/dist/conversation/snapshot.d.ts +20 -0
- package/dist/conversation/snapshot.d.ts.map +1 -1
- package/dist/conversation/snapshot.js +40 -2
- package/dist/conversation/snapshot.js.map +1 -1
- package/dist/fixtures/ask-ai-office-shaped.d.ts +153 -0
- package/dist/fixtures/ask-ai-office-shaped.d.ts.map +1 -0
- package/dist/fixtures/ask-ai-office-shaped.js +94 -0
- package/dist/fixtures/ask-ai-office-shaped.js.map +1 -0
- package/dist/hints/store.d.ts.map +1 -1
- package/dist/hints/store.js +15 -5
- package/dist/hints/store.js.map +1 -1
- package/dist/index.d.ts +29 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +29 -6
- package/dist/index.js.map +1 -1
- package/dist/intent-controller.d.ts +36 -0
- package/dist/intent-controller.d.ts.map +1 -1
- package/dist/intent-controller.js +95 -0
- package/dist/intent-controller.js.map +1 -1
- package/dist/meaning-resolution.d.ts +69 -2
- package/dist/meaning-resolution.d.ts.map +1 -1
- package/dist/meaning-resolution.js +128 -7
- package/dist/meaning-resolution.js.map +1 -1
- package/dist/metadata/analysis-planner.d.ts.map +1 -1
- package/dist/metadata/analysis-planner.js +124 -7
- package/dist/metadata/analysis-planner.js.map +1 -1
- package/dist/metadata/block-fit.d.ts +36 -0
- package/dist/metadata/block-fit.d.ts.map +1 -1
- package/dist/metadata/block-fit.js +290 -38
- package/dist/metadata/block-fit.js.map +1 -1
- package/dist/metadata/catalog.d.ts +20 -23
- package/dist/metadata/catalog.d.ts.map +1 -1
- package/dist/metadata/catalog.js +193 -22
- package/dist/metadata/catalog.js.map +1 -1
- package/dist/metadata/meaning-evidence.d.ts +10 -1
- package/dist/metadata/meaning-evidence.d.ts.map +1 -1
- package/dist/metadata/meaning-evidence.js +275 -53
- package/dist/metadata/meaning-evidence.js.map +1 -1
- package/dist/metadata/metric-match.d.ts +32 -0
- package/dist/metadata/metric-match.d.ts.map +1 -1
- package/dist/metadata/metric-match.js +120 -9
- package/dist/metadata/metric-match.js.map +1 -1
- package/dist/research-loop.d.ts +33 -2
- package/dist/research-loop.d.ts.map +1 -1
- package/dist/research-loop.js +66 -4
- package/dist/research-loop.js.map +1 -1
- package/dist/resolved-analytical-plan.d.ts +7 -0
- package/dist/resolved-analytical-plan.d.ts.map +1 -1
- package/dist/resolved-analytical-plan.js +11 -4
- package/dist/resolved-analytical-plan.js.map +1 -1
- package/dist/router.d.ts +32 -19
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +1977 -73
- package/dist/router.js.map +1 -1
- package/dist/semantic-bridge/member-select.d.ts.map +1 -1
- package/dist/semantic-bridge/member-select.js +39 -21
- package/dist/semantic-bridge/member-select.js.map +1 -1
- 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')
|
|
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,
|
|
@@ -45,45 +59,105 @@ export function certifiedTerminationVerdict(input) {
|
|
|
45
59
|
}
|
|
46
60
|
return { allow: false, fit, reason: fit.reasons[0] ?? 'fit below the Tier-1 threshold' };
|
|
47
61
|
}
|
|
62
|
+
/**
|
|
63
|
+
* Did the question enumerate attributes the planner could not map?
|
|
64
|
+
*
|
|
65
|
+
* "list every customer's credit card number and home address" reduces to
|
|
66
|
+
* `requiredOutputs: ['customer']` — IDENTICAL to the plan for "who are the top
|
|
67
|
+
* customers" — because the extraction chain silently drops phrases it cannot
|
|
68
|
+
* resolve. A certified block then fits perfectly, and the reader is handed
|
|
69
|
+
* `top_customers` stamped `certified` for a question about data the project
|
|
70
|
+
* does not have.
|
|
71
|
+
*
|
|
72
|
+
* The signal is the deficit, not the words: a possessive or of-phrase that
|
|
73
|
+
* enumerates N attributes must leave N mapped outputs behind the entity. When
|
|
74
|
+
* it does not, content was dropped, and a block cannot claim to answer what was
|
|
75
|
+
* never understood. Measured to separate the case above (asked 2, mapped 1)
|
|
76
|
+
* from the legitimate "customer's lifetime spend and order count" (asked 2,
|
|
77
|
+
* mapped 3) without touching questions that use no possessive at all.
|
|
78
|
+
*/
|
|
79
|
+
export function droppedAttributeRequest(question, mappedOutputs) {
|
|
80
|
+
const match = /(?:\b\w+'s|\bof\s+(?:each|every|the)\s+\w+)\s+(.+)$/i.exec(question);
|
|
81
|
+
if (!match)
|
|
82
|
+
return false;
|
|
83
|
+
const asked = match[1].split(/,|\band\b/i)
|
|
84
|
+
.map((part) => part.trim())
|
|
85
|
+
.filter((part) => part.length > 2).length;
|
|
86
|
+
if (asked < 2)
|
|
87
|
+
return false;
|
|
88
|
+
// One mapped output is the entity itself; the rest are the attributes.
|
|
89
|
+
return Math.max(0, mappedOutputs - 1) < asked;
|
|
90
|
+
}
|
|
48
91
|
export function evaluateCertifiedBlockFit(input) {
|
|
49
92
|
const requested = requestedShapeFromPlan(input.plan);
|
|
50
93
|
const block = blockShape(input.block);
|
|
51
|
-
if (input.definitionLookup || input.exactExampleMatch) {
|
|
52
|
-
return {
|
|
53
|
-
kind: 'exact',
|
|
54
|
-
confidence: 'high',
|
|
55
|
-
reasons: [input.definitionLookup ? 'definition lookup bypasses shape fit' : 'question matches a certified example'],
|
|
56
|
-
missingOutputs: [],
|
|
57
|
-
missingDimensions: [],
|
|
58
|
-
unsupportedFilters: [],
|
|
59
|
-
topNAction: 'none',
|
|
60
|
-
inferredContract: block.inferredContract,
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
94
|
const requestedDimensions = requested.dimensions.map(canonicalToken).filter(Boolean);
|
|
64
|
-
|
|
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);
|
|
65
101
|
const requiredOutputs = requested.requiredOutputs.map(canonicalColumn).filter(Boolean);
|
|
66
102
|
const blockDimensions = new Set(block.dimensions);
|
|
67
103
|
const blockMeasures = new Set(block.measures);
|
|
68
104
|
const blockOutputs = new Set(block.outputs);
|
|
69
|
-
const missingDimensions = uniqueStrings(requestedDimensions.filter((dimension) => !blockDimensions.has(dimension)
|
|
70
|
-
|
|
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)));
|
|
71
130
|
const measureMatch = requestedMeasures.length === 0
|
|
72
|
-
||
|
|
131
|
+
|| missingMeasures.length === 0;
|
|
73
132
|
const unsupportedFilters = unsupportedRequestedFilters(requested, block, input.question);
|
|
74
133
|
const unentailedScope = [...block.staticScopeTokens]
|
|
75
134
|
.filter((token) => !questionEntailsScopeToken(input.question, input.plan, requested, token));
|
|
135
|
+
const requestedGrainIsExactExampleMemberNoise = requested.grain
|
|
136
|
+
&& uniqueExactExampleMemberToken(input, requested.grain, block);
|
|
76
137
|
const grainMismatch = requested.grain && block.grain && canonicalToken(requested.grain) !== block.grain
|
|
77
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
|
|
78
145
|
? `certified block grain=${block.grain} does not cover requested grain=${canonicalToken(requested.grain)}`
|
|
79
146
|
: scalarRequestCannotUseRowGrainBlock(input.plan, requestedDimensions, block)
|
|
80
147
|
? `certified block returns rows at ${block.grain ?? block.dimensions[0]} grain but the question requests one aggregate value`
|
|
81
148
|
: undefined;
|
|
82
149
|
const topNAction = topNFitAction(requested, block);
|
|
83
|
-
|
|
150
|
+
// Content the planner dropped cannot be checked against the block, so a fit
|
|
151
|
+
// computed over what survived is not evidence that the question is covered.
|
|
152
|
+
const droppedRequest = droppedAttributeRequest(input.question, requiredOutputs.length);
|
|
153
|
+
if (droppedRequest || grainMismatch || missingDimensions.length > 0 || missingMeasures.length > 0 || missingOutputs.length > 0 || unsupportedFilters.length > 0 || unentailedScope.length > 0 || !measureMatch || topNAction === 'generate') {
|
|
84
154
|
const reasons = [
|
|
155
|
+
droppedRequest
|
|
156
|
+
? 'the question asks for attributes that could not be resolved against the model'
|
|
157
|
+
: '',
|
|
85
158
|
grainMismatch,
|
|
86
159
|
missingDimensions.length ? `missing requested dimensions: ${missingDimensions.join(', ')}` : '',
|
|
160
|
+
missingMeasures.length ? `missing declared measure outputs: ${missingMeasures.join(', ')}` : '',
|
|
87
161
|
missingOutputs.length ? `missing requested outputs: ${missingOutputs.join(', ')}` : '',
|
|
88
162
|
unsupportedFilters.length ? `unsupported requested filters: ${unsupportedFilters.join(', ')}` : '',
|
|
89
163
|
unentailedScope.length ? `certified static scope is not requested: ${unentailedScope.join(', ')}` : '',
|
|
@@ -94,6 +168,7 @@ export function evaluateCertifiedBlockFit(input) {
|
|
|
94
168
|
kind: block.relevance > 0 ? 'context_only' : 'not_applicable',
|
|
95
169
|
confidence: 'high',
|
|
96
170
|
reasons,
|
|
171
|
+
...(missingMeasures.length > 0 ? { missingMeasures } : {}),
|
|
97
172
|
missingOutputs,
|
|
98
173
|
missingDimensions,
|
|
99
174
|
unsupportedFilters,
|
|
@@ -126,6 +201,8 @@ export function evaluateCertifiedBlockFit(input) {
|
|
|
126
201
|
reasons: [
|
|
127
202
|
'certified block covers requested metric, grain, dimensions, filters, and outputs',
|
|
128
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' : '',
|
|
129
206
|
block.inferredContract ? 'block contract was safely inferred from available metadata' : '',
|
|
130
207
|
].filter(Boolean),
|
|
131
208
|
missingOutputs: [],
|
|
@@ -150,7 +227,13 @@ function scalarRequestCannotUseRowGrainBlock(plan, requestedDimensions, block) {
|
|
|
150
227
|
function blockShape(block) {
|
|
151
228
|
const record = block;
|
|
152
229
|
const payload = isMetadataObject(block) ? block.payload ?? {} : record;
|
|
153
|
-
|
|
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);
|
|
154
237
|
const descriptiveText = [
|
|
155
238
|
stringValue(record.name),
|
|
156
239
|
stringValue(record.description),
|
|
@@ -179,12 +262,7 @@ function blockShape(block) {
|
|
|
179
262
|
]);
|
|
180
263
|
const measures = uniqueStrings([
|
|
181
264
|
...outputs.filter(isMeasureLike),
|
|
182
|
-
|
|
183
|
-
].map(canonicalToken).filter(Boolean));
|
|
184
|
-
const textTokens = new Set(tokensFromValue([
|
|
185
|
-
descriptiveText,
|
|
186
|
-
JSON.stringify(payload),
|
|
187
|
-
].filter(Boolean).join(' ')).map(canonicalToken));
|
|
265
|
+
].map(canonicalMetricOutputIdentity).filter(Boolean));
|
|
188
266
|
const filters = uniqueStrings([
|
|
189
267
|
...stringArray(payload.allowedFilters),
|
|
190
268
|
...stringArray(record.allowedFilters),
|
|
@@ -223,7 +301,6 @@ function blockShape(block) {
|
|
|
223
301
|
scopeTokens,
|
|
224
302
|
staticScopeTokens,
|
|
225
303
|
limit: sql ? parseSqlLimit(sql) : undefined,
|
|
226
|
-
textTokens,
|
|
227
304
|
relevance,
|
|
228
305
|
inferredContract: stringArray(payload.declaredOutputs).length === 0 && stringArray(record.declaredOutputs).length === 0,
|
|
229
306
|
};
|
|
@@ -392,26 +469,70 @@ function outputCoversRequired(outputs, required) {
|
|
|
392
469
|
return outputs.some((output) => requiredTokens.every((token) => output.split('_').includes(token)));
|
|
393
470
|
}
|
|
394
471
|
function outputRequirementCovered(required, block) {
|
|
472
|
+
const roleRequirement = analyticalRoleOutput(required);
|
|
395
473
|
// Compound dimension outputs are contracts, not loose keyword hints.
|
|
396
474
|
// `beverage_product_types` (a count) must not satisfy `product_type`, and a
|
|
397
475
|
// block that merely touches products must not satisfy `product_name`.
|
|
398
476
|
// Requiring the concrete projected output here prevents a high-overlap block
|
|
399
477
|
// at the wrong grain from being promoted to an exact certified answer.
|
|
400
|
-
if (isStructuredDimensionOutput(
|
|
401
|
-
const directDimension =
|
|
402
|
-
return block.outputs.includes(
|
|
403
|
-
|| (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));
|
|
404
482
|
}
|
|
405
|
-
if (outputCoversRequired(block.outputs,
|
|
483
|
+
if (outputCoversRequired(block.outputs, roleRequirement))
|
|
406
484
|
return true;
|
|
407
|
-
const token = canonicalToken(
|
|
485
|
+
const token = canonicalToken(roleRequirement);
|
|
408
486
|
if (block.dimensions.includes(token))
|
|
409
487
|
return true;
|
|
410
|
-
if (isMeasureLike(
|
|
411
|
-
return block.measures.includes(
|
|
488
|
+
if (isMeasureLike(roleRequirement) || block.measures.includes(canonicalMetricOutputIdentity(roleRequirement))) {
|
|
489
|
+
return block.measures.includes(canonicalMetricOutputIdentity(roleRequirement));
|
|
412
490
|
}
|
|
413
491
|
return false;
|
|
414
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
|
+
}
|
|
415
536
|
function isStructuredDimensionOutput(value) {
|
|
416
537
|
return /_(?:id|key|name|title|type|category|segment|region|country|channel|date|month|quarter|year)$/.test(value)
|
|
417
538
|
&& !isMeasureLike(value);
|
|
@@ -425,10 +546,21 @@ function outputHasEntity(outputs, entity) {
|
|
|
425
546
|
}
|
|
426
547
|
function extractSqlOutputs(sql) {
|
|
427
548
|
const shape = extractSimpleSelectShape(sql);
|
|
428
|
-
if (
|
|
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))
|
|
429
561
|
return [];
|
|
430
|
-
return
|
|
431
|
-
.map(
|
|
562
|
+
return [...scalar.matchAll(/\bas\s+(["`]?\w+["`]?)\b/gi)]
|
|
563
|
+
.map((match) => match[1]?.replace(/^["`]|["`]$/g, '').trim())
|
|
432
564
|
.filter((value) => Boolean(value));
|
|
433
565
|
}
|
|
434
566
|
function outputContractColumns(value) {
|
|
@@ -497,7 +629,14 @@ function isDimensionLike(value) {
|
|
|
497
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);
|
|
498
630
|
}
|
|
499
631
|
function isMeasureLike(value) {
|
|
500
|
-
|
|
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));
|
|
501
640
|
}
|
|
502
641
|
function tokensFromValue(value) {
|
|
503
642
|
return value
|
|
@@ -513,6 +652,114 @@ function tokensFromValue(value) {
|
|
|
513
652
|
function canonicalColumn(value) {
|
|
514
653
|
return tokensFromValue(value).join('_');
|
|
515
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
|
+
}
|
|
516
763
|
function canonicalToken(value) {
|
|
517
764
|
const tokens = tokensFromValue(value);
|
|
518
765
|
if (tokens.length === 0)
|
|
@@ -554,6 +801,11 @@ function canonicalToken(value) {
|
|
|
554
801
|
return tokens[0] ?? '';
|
|
555
802
|
}
|
|
556
803
|
function singularize(token) {
|
|
804
|
+
// `gross` is an uninflected measure modifier, not a plural. Treating it as
|
|
805
|
+
// `gros` made a `gross_revenue` output look like an unexplained static scope
|
|
806
|
+
// and incorrectly demoted a complete certified monthly-revenue block.
|
|
807
|
+
if (token === 'gross')
|
|
808
|
+
return token;
|
|
557
809
|
if (token.endsWith('ies') && token.length > 4)
|
|
558
810
|
return `${token.slice(0, -3)}y`;
|
|
559
811
|
if (token.endsWith('ses') && token.length > 4)
|
|
@@ -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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"}
|