@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.
- package/dist/agent-run-engine.d.ts +71 -2
- package/dist/agent-run-engine.d.ts.map +1 -1
- package/dist/agent-run-engine.js +1048 -31
- 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 +12 -0
- package/dist/agent-run-gates.js.map +1 -1
- package/dist/agent-run-planner.d.ts +6 -0
- package/dist/agent-run-planner.d.ts.map +1 -1
- package/dist/agent-run-planner.js +2 -0
- package/dist/agent-run-planner.js.map +1 -1
- package/dist/agent-run-store.d.ts.map +1 -1
- package/dist/agent-run-store.js +48 -3
- package/dist/agent-run-store.js.map +1 -1
- package/dist/agentic/analyst-loop.d.ts +7 -1
- package/dist/agentic/analyst-loop.d.ts.map +1 -1
- package/dist/agentic/analyst-loop.js +211 -28
- package/dist/agentic/analyst-loop.js.map +1 -1
- package/dist/agentic/assumptions.d.ts +1 -1
- package/dist/agentic/assumptions.d.ts.map +1 -1
- package/dist/agentic/assumptions.js.map +1 -1
- package/dist/agentic/research/synthesis.d.ts +4 -0
- package/dist/agentic/research/synthesis.d.ts.map +1 -1
- package/dist/agentic/research/synthesis.js +23 -8
- package/dist/agentic/research/synthesis.js.map +1 -1
- package/dist/agentic/research-agent.d.ts.map +1 -1
- package/dist/agentic/research-agent.js +13 -3
- package/dist/agentic/research-agent.js.map +1 -1
- package/dist/agentic/sql-authorization.d.ts +8 -0
- package/dist/agentic/sql-authorization.d.ts.map +1 -1
- package/dist/agentic/sql-authorization.js +233 -2
- package/dist/agentic/sql-authorization.js.map +1 -1
- package/dist/analytical-compatibility.d.ts.map +1 -1
- package/dist/analytical-compatibility.js +8 -1
- package/dist/analytical-compatibility.js.map +1 -1
- package/dist/analytical-failure-repair.d.ts.map +1 -1
- package/dist/analytical-failure-repair.js +6 -2
- package/dist/analytical-failure-repair.js.map +1 -1
- package/dist/analytical-frame.d.ts +23 -1
- package/dist/analytical-frame.d.ts.map +1 -1
- package/dist/analytical-frame.js +332 -17
- package/dist/analytical-frame.js.map +1 -1
- package/dist/analytical-orchestration.d.ts +613 -0
- package/dist/analytical-orchestration.d.ts.map +1 -1
- package/dist/analytical-orchestration.js +1007 -0
- package/dist/analytical-orchestration.js.map +1 -1
- package/dist/answer-loop.d.ts +110 -6
- package/dist/answer-loop.d.ts.map +1 -1
- package/dist/answer-loop.js +1180 -125
- 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/ask-observability/index.d.ts +11 -0
- package/dist/ask-observability/index.d.ts.map +1 -0
- package/dist/ask-observability/index.js +7 -0
- package/dist/ask-observability/index.js.map +1 -0
- package/dist/ask-observability/instrumentation.d.ts +35 -0
- package/dist/ask-observability/instrumentation.d.ts.map +1 -0
- package/dist/ask-observability/instrumentation.js +472 -0
- package/dist/ask-observability/instrumentation.js.map +1 -0
- package/dist/ask-observability/observer.d.ts +62 -0
- package/dist/ask-observability/observer.d.ts.map +1 -0
- package/dist/ask-observability/observer.js +537 -0
- package/dist/ask-observability/observer.js.map +1 -0
- package/dist/ask-observability/portable.d.ts +98 -0
- package/dist/ask-observability/portable.d.ts.map +1 -0
- package/dist/ask-observability/portable.js +527 -0
- package/dist/ask-observability/portable.js.map +1 -0
- package/dist/ask-observability/store.d.ts +130 -0
- package/dist/ask-observability/store.d.ts.map +1 -0
- package/dist/ask-observability/store.js +1114 -0
- package/dist/ask-observability/store.js.map +1 -0
- package/dist/ask-observability/types.d.ts +357 -0
- package/dist/ask-observability/types.d.ts.map +1 -0
- package/dist/ask-observability/types.js +2 -0
- package/dist/ask-observability/types.js.map +1 -0
- package/dist/ask-observability/utils.d.ts +21 -0
- package/dist/ask-observability/utils.d.ts.map +1 -0
- package/dist/ask-observability/utils.js +102 -0
- package/dist/ask-observability/utils.js.map +1 -0
- package/dist/conversation/snapshot.d.ts +20 -0
- package/dist/conversation/snapshot.d.ts.map +1 -1
- package/dist/conversation/snapshot.js +30 -1
- 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/generated-analytical-proposal.d.ts +37 -1
- package/dist/generated-analytical-proposal.d.ts.map +1 -1
- package/dist/generated-analytical-proposal.js +211 -3
- package/dist/generated-analytical-proposal.js.map +1 -1
- package/dist/governed-relational-compiler.d.ts +15 -0
- package/dist/governed-relational-compiler.d.ts.map +1 -1
- package/dist/governed-relational-compiler.js +99 -1
- package/dist/governed-relational-compiler.js.map +1 -1
- package/dist/index.d.ts +11 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -5
- package/dist/index.js.map +1 -1
- package/dist/intent-controller.d.ts +38 -0
- package/dist/intent-controller.d.ts.map +1 -1
- package/dist/intent-controller.js +31 -1
- package/dist/intent-controller.js.map +1 -1
- package/dist/meaning-resolution.d.ts +141 -2
- package/dist/meaning-resolution.d.ts.map +1 -1
- package/dist/meaning-resolution.js +444 -30
- package/dist/meaning-resolution.js.map +1 -1
- package/dist/metadata/analysis-planner.d.ts.map +1 -1
- package/dist/metadata/analysis-planner.js +144 -7
- package/dist/metadata/analysis-planner.js.map +1 -1
- package/dist/metadata/block-fit.d.ts +18 -0
- package/dist/metadata/block-fit.d.ts.map +1 -1
- package/dist/metadata/block-fit.js +250 -38
- package/dist/metadata/block-fit.js.map +1 -1
- package/dist/metadata/catalog.d.ts.map +1 -1
- package/dist/metadata/catalog.js +58 -12
- package/dist/metadata/catalog.js.map +1 -1
- package/dist/metadata/meaning-evidence.d.ts +19 -3
- package/dist/metadata/meaning-evidence.d.ts.map +1 -1
- package/dist/metadata/meaning-evidence.js +518 -54
- package/dist/metadata/meaning-evidence.js.map +1 -1
- package/dist/plan-execution-adapter.d.ts +9 -1
- package/dist/plan-execution-adapter.d.ts.map +1 -1
- package/dist/plan-execution-adapter.js +93 -13
- package/dist/plan-execution-adapter.js.map +1 -1
- package/dist/provider-egress.d.ts +24 -10
- package/dist/provider-egress.d.ts.map +1 -1
- package/dist/provider-egress.js +22 -17
- package/dist/provider-egress.js.map +1 -1
- package/dist/providers/claude.d.ts.map +1 -1
- package/dist/providers/claude.js +10 -9
- package/dist/providers/claude.js.map +1 -1
- package/dist/providers/dispatch.d.ts +27 -1
- package/dist/providers/dispatch.d.ts.map +1 -1
- package/dist/providers/dispatch.js +63 -1
- package/dist/providers/dispatch.js.map +1 -1
- package/dist/providers/gemini.js +10 -10
- package/dist/providers/gemini.js.map +1 -1
- package/dist/providers/index.d.ts +2 -2
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +1 -1
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/ollama.js +15 -15
- package/dist/providers/ollama.js.map +1 -1
- package/dist/providers/openai.js +22 -22
- package/dist/providers/openai.js.map +1 -1
- package/dist/providers/types.d.ts +52 -0
- package/dist/providers/types.d.ts.map +1 -1
- package/dist/providers/types.js.map +1 -1
- package/dist/relationship-proof.d.ts +81 -0
- package/dist/relationship-proof.d.ts.map +1 -1
- package/dist/relationship-proof.js +228 -4
- package/dist/relationship-proof.js.map +1 -1
- package/dist/research-loop.d.ts.map +1 -1
- package/dist/research-loop.js +23 -1
- package/dist/research-loop.js.map +1 -1
- package/dist/resolved-analytical-plan.d.ts +22 -1
- package/dist/resolved-analytical-plan.d.ts.map +1 -1
- package/dist/resolved-analytical-plan.js +773 -49
- package/dist/resolved-analytical-plan.js.map +1 -1
- package/dist/router.d.ts +14 -4
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +3668 -425
- package/dist/router.js.map +1 -1
- package/dist/semantic-bridge/compose.d.ts.map +1 -1
- package/dist/semantic-bridge/compose.js +23 -4
- package/dist/semantic-bridge/compose.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
|
@@ -5,6 +5,122 @@
|
|
|
5
5
|
* package and may reference only IDs contained in it. Execution remains owned by
|
|
6
6
|
* the host after it validates the selected candidates and route.
|
|
7
7
|
*/
|
|
8
|
+
import { buildAnalyticalRequirementSet, candidateConflictsWithExplicitRankingMeasure, evidenceCandidateRoles, hasEntityAttributeTerm, isEntityAttributeCandidate, selectRoleBalancedMeaningCandidates, } from './analytical-orchestration.js';
|
|
9
|
+
/**
|
|
10
|
+
* Return the authored output identity that proves a certified block can answer
|
|
11
|
+
* one requested measure. This normally reads only the block's own `output:`
|
|
12
|
+
* facts, which are populated from declared/output-contract fields at indexing
|
|
13
|
+
* time. An exact block-title request may additionally carry a
|
|
14
|
+
* `catalog-proven-output:` fact from the snapshot-local catalog fit. That fact
|
|
15
|
+
* is minted only after the catalog has already bound this exact title to a
|
|
16
|
+
* high-confidence certified answer contract; names, tags, examples,
|
|
17
|
+
* definitions, and unrelated retrieved metrics are intentionally absent.
|
|
18
|
+
*/
|
|
19
|
+
export function certifiedCandidateDeclaredMeasureOutput(candidate, requested) {
|
|
20
|
+
if (candidate.kind !== 'certified_block')
|
|
21
|
+
return undefined;
|
|
22
|
+
const requestedIdentity = canonicalCertifiedOutputMetricIdentity(requested);
|
|
23
|
+
if (!requestedIdentity)
|
|
24
|
+
return undefined;
|
|
25
|
+
const declared = (candidate.compatibilityFacts ?? [])
|
|
26
|
+
.flatMap((fact) => /^(?:output|catalog-proven-output):\s*(.+)$/i.exec(fact)?.[1] ?? [])
|
|
27
|
+
.map((output) => output.trim())
|
|
28
|
+
.filter(Boolean);
|
|
29
|
+
return declared.find((output) => canonicalCertifiedOutputMetricIdentity(output) === requestedIdentity);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Return the block output that proves a requested display/grouping dimension.
|
|
33
|
+
* This is intentionally narrower than retrieval matching: only a declared
|
|
34
|
+
* output or the catalog-proven output bridge for an exact certified title may
|
|
35
|
+
* bind a dimension to the block executor. `customer_name` is a valid output
|
|
36
|
+
* for the business term `customer`; arbitrary attributes such as owner or
|
|
37
|
+
* sentiment are not.
|
|
38
|
+
*/
|
|
39
|
+
export function certifiedCandidateDeclaredDimensionOutput(candidate, requested) {
|
|
40
|
+
if (candidate.kind !== 'certified_block')
|
|
41
|
+
return undefined;
|
|
42
|
+
const requestedIdentity = canonicalCertifiedOutputDimensionIdentity(requested);
|
|
43
|
+
if (!requestedIdentity)
|
|
44
|
+
return undefined;
|
|
45
|
+
const declared = (candidate.compatibilityFacts ?? [])
|
|
46
|
+
.flatMap((fact) => /^(?:output|catalog-proven-output):\s*(.+)$/i.exec(fact)?.[1] ?? [])
|
|
47
|
+
.map((output) => output.trim())
|
|
48
|
+
.filter(Boolean);
|
|
49
|
+
return declared.find((output) => canonicalCertifiedOutputDimensionIdentity(output) === requestedIdentity);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* A certified tier can freeze only when the selected block itself declares
|
|
53
|
+
* every requested measure. This is deliberately stricter than retrieval
|
|
54
|
+
* relevance: `top_customers` tagged with revenue but outputting only
|
|
55
|
+
* `lifetime_spend` is context, never a certified revenue answer.
|
|
56
|
+
*/
|
|
57
|
+
export function certifiedCandidateExplicitlyCoversMeasures(candidate, requestedMeasures) {
|
|
58
|
+
if (candidate.kind !== 'certified_block')
|
|
59
|
+
return false;
|
|
60
|
+
const requested = [...new Set((requestedMeasures ?? [])
|
|
61
|
+
.map(canonicalCertifiedOutputMetricIdentity)
|
|
62
|
+
.filter(Boolean))];
|
|
63
|
+
const effectiveRequested = requested.length > 1
|
|
64
|
+
? requested.filter((measure) => measure !== 'total' && measure !== 'average')
|
|
65
|
+
: requested;
|
|
66
|
+
return effectiveRequested.every((measure) => Boolean(certifiedCandidateDeclaredMeasureOutput(candidate, measure)));
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Output identity deliberately has a much smaller alias surface than retrieval
|
|
70
|
+
* matching. Generic presentation modifiers are safe (gross/total/monthly
|
|
71
|
+
* revenue); business qualifiers are not (product revenue, beverage revenue,
|
|
72
|
+
* lifetime spend). This mirrors the certified fit gate and prevents a loosely
|
|
73
|
+
* correlated output from borrowing another metric's authority.
|
|
74
|
+
*/
|
|
75
|
+
function canonicalCertifiedOutputMetricIdentity(value) {
|
|
76
|
+
const aliases = {
|
|
77
|
+
avg: 'average',
|
|
78
|
+
drink: 'beverage',
|
|
79
|
+
sale: 'revenue',
|
|
80
|
+
sales: 'revenue',
|
|
81
|
+
score: 'point',
|
|
82
|
+
scorer: 'point',
|
|
83
|
+
scoring: 'point',
|
|
84
|
+
sum: 'total',
|
|
85
|
+
};
|
|
86
|
+
const genericModifiers = new Set([
|
|
87
|
+
'annual', 'average', 'current', 'daily', 'gross', 'monthly', 'net',
|
|
88
|
+
'quarterly', 'total', 'yearly',
|
|
89
|
+
]);
|
|
90
|
+
// A typed resolver may retain a qualified metric selection in
|
|
91
|
+
// queryIntent. Only its leaf is comparable to a block output; the namespace
|
|
92
|
+
// is authority metadata, not part of the returned column identity.
|
|
93
|
+
const outputLeaf = value.includes(':')
|
|
94
|
+
? value.split(':').filter(Boolean).at(-1) ?? value
|
|
95
|
+
: value;
|
|
96
|
+
const tokens = outputLeaf
|
|
97
|
+
.toLowerCase()
|
|
98
|
+
.replace(/%/g, ' percentage ')
|
|
99
|
+
.replace(/[_./:-]+/g, ' ')
|
|
100
|
+
.replace(/[^a-z0-9 ]+/g, ' ')
|
|
101
|
+
.split(/\s+/)
|
|
102
|
+
.map((token) => aliases[token] ?? token)
|
|
103
|
+
.map((token) => token.endsWith('s') && token.length > 3 ? token.slice(0, -1) : token)
|
|
104
|
+
.filter(Boolean);
|
|
105
|
+
while (tokens.length > 1 && genericModifiers.has(tokens[0]))
|
|
106
|
+
tokens.shift();
|
|
107
|
+
while (tokens.length > 1 && genericModifiers.has(tokens.at(-1)))
|
|
108
|
+
tokens.pop();
|
|
109
|
+
return tokens.join('_');
|
|
110
|
+
}
|
|
111
|
+
function canonicalCertifiedOutputDimensionIdentity(value) {
|
|
112
|
+
const tokens = value
|
|
113
|
+
.toLowerCase()
|
|
114
|
+
.replace(/[_./:-]+/g, ' ')
|
|
115
|
+
.replace(/[^a-z0-9 ]+/g, ' ')
|
|
116
|
+
.split(/\s+/)
|
|
117
|
+
.map((token) => token.endsWith('s') && token.length > 3 ? token.slice(0, -1) : token)
|
|
118
|
+
.filter(Boolean);
|
|
119
|
+
const displaySuffixes = new Set(['display', 'id', 'key', 'label', 'name', 'title']);
|
|
120
|
+
while (tokens.length > 1 && displaySuffixes.has(tokens.at(-1)))
|
|
121
|
+
tokens.pop();
|
|
122
|
+
return tokens.join('_');
|
|
123
|
+
}
|
|
8
124
|
const TRUST_ORDER = {
|
|
9
125
|
certified: 4,
|
|
10
126
|
semantic: 3,
|
|
@@ -22,13 +138,40 @@ const COMPATIBILITY_ORDER = {
|
|
|
22
138
|
* primary; trust is only a tie-breaker, so an unrelated certified block cannot
|
|
23
139
|
* displace a materially better semantic match.
|
|
24
140
|
*/
|
|
25
|
-
export function buildMeaningEvidencePackage(evidence, maxCandidates =
|
|
26
|
-
const limit = Math.max(1, Math.min(
|
|
141
|
+
export function buildMeaningEvidencePackage(evidence, maxCandidates = 16, question = '') {
|
|
142
|
+
const limit = Math.max(1, Math.min(16, Math.floor(maxCandidates)));
|
|
27
143
|
const perKindLimit = Math.max(2, Math.ceil(limit / 2));
|
|
28
|
-
const
|
|
29
|
-
|
|
144
|
+
const requirements = buildAnalyticalRequirementSet({ question, parsedIntent: evidence.parsedIntent });
|
|
145
|
+
// First reserve exact and required-role candidates from the FULL canonical
|
|
146
|
+
// set. Applying the same-kind cap first let eight high-scoring owner/sentiment
|
|
147
|
+
// dimensions erase the explicit revenue metric and Account Name before the
|
|
148
|
+
// role-aware admission code ever saw them.
|
|
149
|
+
const canonicalEligible = canonicalizeMetricMeasureCandidates(evidence.candidates)
|
|
30
150
|
.filter((candidate) => candidate.eligible !== false)
|
|
31
|
-
|
|
151
|
+
// Preserve the retrieval result for lifecycle/diagnostics, but do not put
|
|
152
|
+
// a correlated non-requested metric in the bounded meaning package. An
|
|
153
|
+
// explicit ranking measure is a typed requirement, not a prompt hint the
|
|
154
|
+
// resolver may replace with a more highly scored BCM/run-rate card.
|
|
155
|
+
.filter((candidate) => !candidateConflictsWithExplicitRankingMeasure(candidate, requirements))
|
|
156
|
+
.sort(compareCandidates);
|
|
157
|
+
const rawPinned = selectRoleBalancedMeaningCandidates({
|
|
158
|
+
candidates: canonicalEligible,
|
|
159
|
+
requirements,
|
|
160
|
+
maxCandidates: limit,
|
|
161
|
+
pinOnly: true,
|
|
162
|
+
});
|
|
163
|
+
// Guard the fill and the pins themselves. A terse request for "accounts"
|
|
164
|
+
// must not retain Account Owner / Sentiment merely because a generic
|
|
165
|
+
// categorical-dimension parser also saw the token "account". An explicit
|
|
166
|
+
// attribute request remains eligible.
|
|
167
|
+
const requestedEntityDisplay = requirements.entityDisplayTerms.length > 0;
|
|
168
|
+
const explicitlyRequestsAttribute = hasEntityAttributeTerm(question);
|
|
169
|
+
const hasRawPinnedEntityLabel = rawPinned.some((candidate) => evidenceCandidateRoles(candidate).includes('entity_label'));
|
|
170
|
+
const pinned = requestedEntityDisplay && hasRawPinnedEntityLabel && !explicitlyRequestsAttribute
|
|
171
|
+
? rawPinned.filter((candidate) => !isEntityAttributeCandidate(candidate))
|
|
172
|
+
: rawPinned;
|
|
173
|
+
const kindCounts = new Map();
|
|
174
|
+
const perKindQualified = canonicalEligible
|
|
32
175
|
.filter((candidate) => {
|
|
33
176
|
// Metric and member evidence share the semantic trust tier but serve
|
|
34
177
|
// different binding lanes. Counting only by trust let several exact
|
|
@@ -40,7 +183,19 @@ export function buildMeaningEvidencePackage(evidence, maxCandidates = 12) {
|
|
|
40
183
|
return false;
|
|
41
184
|
kindCounts.set(candidate.kind, count + 1);
|
|
42
185
|
return true;
|
|
43
|
-
})
|
|
186
|
+
});
|
|
187
|
+
// Fill the remaining package under the kind cap without evicting a pin. The
|
|
188
|
+
// resolver still receives at most 16 cards and exactly one meaning call.
|
|
189
|
+
const hasPinnedEntityLabel = pinned.some((candidate) => evidenceCandidateRoles(candidate).includes('entity_label'));
|
|
190
|
+
const safeFill = perKindQualified.filter((candidate) => {
|
|
191
|
+
if (pinned.some((pin) => pin.id === candidate.id))
|
|
192
|
+
return false;
|
|
193
|
+
// An account owner/e-mail/sentiment is an attribute, never a substitute
|
|
194
|
+
// for the requested account/customer display entity. Do not let it consume
|
|
195
|
+
// the remaining meaning cards after that display role was successfully pinned.
|
|
196
|
+
return !hasPinnedEntityLabel || !isEntityAttributeCandidate(candidate);
|
|
197
|
+
});
|
|
198
|
+
return [...pinned, ...safeFill]
|
|
44
199
|
.slice(0, limit);
|
|
45
200
|
}
|
|
46
201
|
/**
|
|
@@ -94,62 +249,92 @@ function normalizeRef(value) {
|
|
|
94
249
|
return value.trim().toLowerCase().replace(/[`"']/g, "");
|
|
95
250
|
}
|
|
96
251
|
/** Validate that a resolver cannot invent or select ineligible evidence. */
|
|
97
|
-
export function validateMeaningResolution(value, candidates) {
|
|
252
|
+
export function validateMeaningResolution(value, candidates, requestedMeasures = value.queryIntent.measures, options = {}) {
|
|
98
253
|
const byId = new Map(candidates.map((candidate) => [candidate.id, candidate]));
|
|
99
254
|
const selectedConceptIds = value.selectedConceptIds.length > 0
|
|
100
255
|
? value.selectedConceptIds
|
|
101
256
|
: value.recommendedExecutionId
|
|
102
257
|
? [value.recommendedExecutionId]
|
|
103
258
|
: [];
|
|
104
|
-
|
|
259
|
+
// Selected/recommended IDs are execution authority and must be present in
|
|
260
|
+
// the bounded package the resolver received. Rejections are explanatory
|
|
261
|
+
// only: hosts may retain a full-snapshot rejection ledger even when its
|
|
262
|
+
// card was correctly pruned from the 16-card meaning package. Do not let a
|
|
263
|
+
// non-authoritative rejected ID invalidate an otherwise valid frozen plan.
|
|
264
|
+
const authoritativeIds = [
|
|
105
265
|
...value.selectedConceptIds,
|
|
106
266
|
...(value.recommendedExecutionId ? [value.recommendedExecutionId] : []),
|
|
107
|
-
...value.rejectedCandidates.map((candidate) => candidate.id),
|
|
108
267
|
];
|
|
109
|
-
const invented =
|
|
268
|
+
const invented = authoritativeIds.find((id) => !byId.has(id));
|
|
110
269
|
if (invented)
|
|
111
270
|
return { ok: false, reason: `The resolver referenced evidence that was not retrieved: ${invented}` };
|
|
112
|
-
|
|
271
|
+
const packageRejectedCandidates = value.rejectedCandidates.filter((candidate) => byId.has(candidate.id));
|
|
272
|
+
const normalizedValue = packageRejectedCandidates.length === value.rejectedCandidates.length
|
|
273
|
+
? value
|
|
274
|
+
: { ...value, rejectedCandidates: packageRejectedCandidates };
|
|
275
|
+
if (normalizedValue.confidence !== "low" && selectedConceptIds.length === 0) {
|
|
113
276
|
return { ok: false, reason: "A medium/high-confidence resolution must select at least one retrieved concept." };
|
|
114
277
|
}
|
|
115
278
|
const selected = selectedConceptIds.map((id) => byId.get(id));
|
|
116
279
|
if (selected.some((candidate) => candidate.eligible === false || candidate.compatibility === "incompatible")) {
|
|
117
280
|
return { ok: false, reason: "The resolver selected ineligible or incompatible evidence." };
|
|
118
281
|
}
|
|
119
|
-
|
|
282
|
+
// The evidence package normally excludes a competing metric before the
|
|
283
|
+
// resolver sees it. Keep the same check at the model-output boundary so an
|
|
284
|
+
// extension, legacy caller, or malformed resolver response cannot turn an
|
|
285
|
+
// explicitly named ranking measure into a correlated alternative.
|
|
286
|
+
const explicitRankingConflict = options.requirements
|
|
287
|
+
? selected.find((candidate) => candidateConflictsWithExplicitRankingMeasure(candidate, options.requirements))
|
|
288
|
+
: undefined;
|
|
289
|
+
if (explicitRankingConflict) {
|
|
290
|
+
return {
|
|
291
|
+
ok: false,
|
|
292
|
+
reason: `The resolver selected a metric that conflicts with the explicit ranking measure: ${explicitRankingConflict.id}`,
|
|
293
|
+
};
|
|
294
|
+
}
|
|
295
|
+
const rejectedIds = new Set(normalizedValue.rejectedCandidates.map((candidate) => candidate.id));
|
|
120
296
|
if (selectedConceptIds.some((id) => rejectedIds.has(id))) {
|
|
121
297
|
return { ok: false, reason: "The resolver both selected and rejected the same evidence." };
|
|
122
298
|
}
|
|
123
|
-
const executionId =
|
|
299
|
+
const executionId = normalizedValue.recommendedExecutionId ?? normalizedValue.selectedConceptIds[0];
|
|
124
300
|
if (executionId) {
|
|
125
301
|
const execution = byId.get(executionId);
|
|
302
|
+
if (options.requirements && candidateConflictsWithExplicitRankingMeasure(execution, options.requirements)) {
|
|
303
|
+
return {
|
|
304
|
+
ok: false,
|
|
305
|
+
reason: `The resolver selected a metric that conflicts with the explicit ranking measure: ${execution.id}`,
|
|
306
|
+
};
|
|
307
|
+
}
|
|
126
308
|
if (execution.eligible === false || execution.compatibility === "incompatible") {
|
|
127
309
|
return { ok: false, reason: "The recommended execution evidence is ineligible or incompatible." };
|
|
128
310
|
}
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
311
|
+
// `recommendedRoute` is deliberately not validated here. The bounded
|
|
312
|
+
// meaning call can nominate only supplied IDs; the authoritative cascade
|
|
313
|
+
// subsequently evaluates the full host-owned requirement seed against
|
|
314
|
+
// those IDs. Rejecting a partial selected semantic metric at this boundary
|
|
315
|
+
// used the model-adjacent nomination as route authority and stopped the
|
|
316
|
+
// valid same-snapshot metric + grouping extension before the semantic
|
|
317
|
+
// compatibility solver could prove it. The same rule applies to a
|
|
318
|
+
// selected certified block: its output contract is checked by the
|
|
319
|
+
// certified cascade before freeze, where an incomplete block advances to
|
|
320
|
+
// semantic/exploratory rather than becoming a false terminal failure.
|
|
321
|
+
//
|
|
322
|
+
// Package membership, eligibility, incompatible evidence, and explicit
|
|
323
|
+
// ranking conflicts above remain hard boundaries; this only defers tier
|
|
324
|
+
// fitness to the host-owned planner.
|
|
325
|
+
void execution;
|
|
141
326
|
}
|
|
142
|
-
if (
|
|
143
|
-
const invalidFrameReference = firstInvalidAnalyticalFrameReference(
|
|
327
|
+
if (normalizedValue.analyticalFrame) {
|
|
328
|
+
const invalidFrameReference = firstInvalidAnalyticalFrameReference(normalizedValue.analyticalFrame, candidates, executionId);
|
|
144
329
|
if (invalidFrameReference) {
|
|
145
330
|
return { ok: false, reason: `The analytical frame referenced evidence that was not retrieved: ${invalidFrameReference}` };
|
|
146
331
|
}
|
|
147
332
|
}
|
|
148
333
|
return {
|
|
149
334
|
ok: true,
|
|
150
|
-
resolution: selectedConceptIds ===
|
|
151
|
-
?
|
|
152
|
-
: { ...
|
|
335
|
+
resolution: selectedConceptIds === normalizedValue.selectedConceptIds
|
|
336
|
+
? normalizedValue
|
|
337
|
+
: { ...normalizedValue, selectedConceptIds },
|
|
153
338
|
};
|
|
154
339
|
}
|
|
155
340
|
function firstInvalidAnalyticalFrameReference(frame, candidates, executionId) {
|
|
@@ -241,6 +426,235 @@ function firstInvalidAnalyticalFrameReference(frame, candidates, executionId) {
|
|
|
241
426
|
}
|
|
242
427
|
return undefined;
|
|
243
428
|
}
|
|
429
|
+
/**
|
|
430
|
+
* Merge the one model meaning response into the host-owned request seed.
|
|
431
|
+
*
|
|
432
|
+
* Candidate IDs are the only model-controlled execution-adjacent values, and
|
|
433
|
+
* they are still validated against the exact supplied package afterwards. The
|
|
434
|
+
* model's route, SQL-adjacent frame, query intent, and reworded question are
|
|
435
|
+
* presentation suggestions at most; accepting them as authority was how an
|
|
436
|
+
* omitted product category/order ID or an inherited prior filter silently
|
|
437
|
+
* changed the answer tuple after retrieval.
|
|
438
|
+
*/
|
|
439
|
+
export function mergeMeaningResolutionWithRequirementSeed(input) {
|
|
440
|
+
const { seed, resolution, candidates } = input;
|
|
441
|
+
const modelSelectedConceptIds = [...new Set([
|
|
442
|
+
...resolution.selectedConceptIds,
|
|
443
|
+
...(resolution.recommendedExecutionId ? [resolution.recommendedExecutionId] : []),
|
|
444
|
+
])];
|
|
445
|
+
// A model can bind only supplied IDs, but supplied is not synonymous with
|
|
446
|
+
// grounded in the current request. Discard a known semantic metric that
|
|
447
|
+
// would add a qualifier not present in the immutable seed. Keep unknown IDs
|
|
448
|
+
// in the result so `validateMeaningResolution` still rejects inventions at
|
|
449
|
+
// the boundary rather than silently laundering them away.
|
|
450
|
+
const omittedUngroundedMetricIds = modelSelectedConceptIds.filter((id) => {
|
|
451
|
+
const candidate = candidates.find((item) => item.id === id || item.qualifiedId === id);
|
|
452
|
+
return candidate?.kind === 'semantic_metric'
|
|
453
|
+
&& !metricCandidateExactlyMatchesSeed(candidate, seed);
|
|
454
|
+
});
|
|
455
|
+
const selectedConceptIds = modelSelectedConceptIds.filter((id) => !omittedUngroundedMetricIds.includes(id));
|
|
456
|
+
// A minimal candidate-ID-only response is intentionally allowed for the
|
|
457
|
+
// one bounded meaning call. Do not let the order of a role-targeted member
|
|
458
|
+
// extension turn that member into the execution target merely because the
|
|
459
|
+
// model omitted the optional recommendation. A selected metric is the
|
|
460
|
+
// host-safe default; a member only supplies a dimension binding beside it.
|
|
461
|
+
const selectedMetricId = selectedConceptIds.find((id) => {
|
|
462
|
+
const candidate = candidates.find((item) => item.id === id || item.qualifiedId === id);
|
|
463
|
+
return candidate?.kind === 'semantic_metric'
|
|
464
|
+
// A selected metric can supersede a legacy recommendation only when it
|
|
465
|
+
// proves the host-owned metric wording. Token-overlap retrieval is not
|
|
466
|
+
// enough here: otherwise `rollover amount` silently became
|
|
467
|
+
// `rollover_balance_amount` merely because a pooled semantic card had
|
|
468
|
+
// been selected alongside a certified nomination. The cascade can
|
|
469
|
+
// still evaluate a partial candidate later; this guard only prevents a
|
|
470
|
+
// model selection from adding an unspoken metric qualifier.
|
|
471
|
+
&& metricCandidateExactlyMatchesSeed(candidate, seed);
|
|
472
|
+
});
|
|
473
|
+
// A model may nominate a certified block in its legacy recommendation while
|
|
474
|
+
// selecting a supplied semantic metric. The recommendation is not route
|
|
475
|
+
// authority; when one selected metric exists, it is the only safe host
|
|
476
|
+
// execution nomination. This preserves the candidate-ID boundary without
|
|
477
|
+
// letting an unproved block displace the selected complete semantic tuple.
|
|
478
|
+
const recommendedExecutionId = selectedMetricId
|
|
479
|
+
?? resolution.recommendedExecutionId
|
|
480
|
+
?? selectedConceptIds[0];
|
|
481
|
+
const recommendedCandidate = recommendedExecutionId
|
|
482
|
+
? candidates.find((candidate) => candidate.id === recommendedExecutionId || candidate.qualifiedId === recommendedExecutionId)
|
|
483
|
+
: undefined;
|
|
484
|
+
const rejectedCandidates = resolution.rejectedCandidates.filter((candidate) => candidates.some((known) => known.id === candidate.id || known.qualifiedId === candidate.id));
|
|
485
|
+
const queryIntent = bindSelectedMemberValuesToSeed({
|
|
486
|
+
seed,
|
|
487
|
+
selectedConceptIds,
|
|
488
|
+
candidates,
|
|
489
|
+
});
|
|
490
|
+
const receipts = [];
|
|
491
|
+
const recordHostPreserved = (field, differs, reason) => {
|
|
492
|
+
if (differs)
|
|
493
|
+
receipts.push({ version: 1, field, action: 'host_preserved', reason });
|
|
494
|
+
};
|
|
495
|
+
recordHostPreserved('interpreted_question', normalizeMeaningText(resolution.interpretedQuestion) !== normalizeMeaningText(seed.sourceQuestion), 'The source question remains host-owned; model rephrasing cannot add context.');
|
|
496
|
+
recordHostPreserved('question_type', resolution.questionType !== questionTypeFromText(seed.sourceQuestion), 'The host classifies the request mode before meaning resolution.');
|
|
497
|
+
recordHostPreserved('query_intent', !sameQueryIntent(resolution.queryIntent, seed.queryIntent), 'Explicit measures, entity/grain, dimensions, filters, ranking, outputs, and time requirements remain host-owned.');
|
|
498
|
+
recordHostPreserved('recommended_route', resolution.recommendedRoute !== (recommendedCandidate ? cascadeNominationForCandidate(recommendedCandidate) : 'clarify'), 'Tier selection is deterministic cascade authority, not a model recommendation.');
|
|
499
|
+
recordHostPreserved('analytical_frame', resolution.analyticalFrame !== undefined, 'A model frame cannot introduce identifiers, SQL semantics, trust, or a replacement route.');
|
|
500
|
+
if (selectedConceptIds.length > 0) {
|
|
501
|
+
receipts.push({
|
|
502
|
+
version: 1,
|
|
503
|
+
field: 'candidate_selection',
|
|
504
|
+
action: 'selection_accepted',
|
|
505
|
+
reason: 'The model selected supplied candidate IDs; host validation still verifies package membership and compatibility.',
|
|
506
|
+
candidateIds: selectedConceptIds,
|
|
507
|
+
});
|
|
508
|
+
}
|
|
509
|
+
if (omittedUngroundedMetricIds.length > 0) {
|
|
510
|
+
receipts.push({
|
|
511
|
+
version: 1,
|
|
512
|
+
field: 'candidate_selection',
|
|
513
|
+
action: 'host_preserved',
|
|
514
|
+
reason: 'A selected semantic metric would add an unspoken qualifier to the host-owned measure requirement.',
|
|
515
|
+
candidateIds: omittedUngroundedMetricIds,
|
|
516
|
+
});
|
|
517
|
+
}
|
|
518
|
+
if (!sameQueryIntent(queryIntent, seed.queryIntent)) {
|
|
519
|
+
receipts.push({
|
|
520
|
+
version: 1,
|
|
521
|
+
field: 'member_binding',
|
|
522
|
+
action: 'selection_accepted',
|
|
523
|
+
reason: 'A selected, supplied semantic member canonically bound an existing host filter value; no filter field or scope was added.',
|
|
524
|
+
candidateIds: selectedConceptIds,
|
|
525
|
+
});
|
|
526
|
+
}
|
|
527
|
+
return {
|
|
528
|
+
interpretedQuestion: seed.sourceQuestion,
|
|
529
|
+
questionType: questionTypeFromText(seed.sourceQuestion),
|
|
530
|
+
selectedConceptIds,
|
|
531
|
+
...(recommendedExecutionId ? { recommendedExecutionId } : {}),
|
|
532
|
+
queryIntent,
|
|
533
|
+
rejectedCandidates,
|
|
534
|
+
confidence: resolution.confidence,
|
|
535
|
+
missingInformation: [...new Set(resolution.missingInformation)],
|
|
536
|
+
recommendedRoute: recommendedCandidate ? cascadeNominationForCandidate(recommendedCandidate) : 'clarify',
|
|
537
|
+
...(resolution.clarifyingQuestion ? { clarifyingQuestion: resolution.clarifyingQuestion } : {}),
|
|
538
|
+
hostRequirementSeed: seed,
|
|
539
|
+
...(receipts.length > 0 ? { overrideReceipts: receipts } : {}),
|
|
540
|
+
};
|
|
541
|
+
}
|
|
542
|
+
/**
|
|
543
|
+
* Keep the host's literal metric requirement authoritative when choosing a
|
|
544
|
+
* primary nominated metric. This intentionally uses exact canonical identity
|
|
545
|
+
* rather than retrieval-style token matching: aliases are normalized into the
|
|
546
|
+
* requirement seed before this boundary, so a legitimate `sales` ->
|
|
547
|
+
* `revenue` binding still matches while a related `rollover balance amount`
|
|
548
|
+
* card cannot add `balance` to an unspoken request for `rollover amount`.
|
|
549
|
+
*/
|
|
550
|
+
function metricCandidateExactlyMatchesSeed(candidate, seed) {
|
|
551
|
+
if (seed.requirements.measures.length === 0)
|
|
552
|
+
return true;
|
|
553
|
+
const identities = [candidate.name, ...(candidate.aliases ?? []), candidate.qualifiedId ?? candidate.id]
|
|
554
|
+
.map((value) => canonicalMetricIdentity(value))
|
|
555
|
+
.filter(Boolean);
|
|
556
|
+
// A multi-metric tuple legitimately selects one candidate per requested
|
|
557
|
+
// measure. Each candidate must prove at least one host metric; requiring a
|
|
558
|
+
// single candidate to prove the entire tuple would drop `beverage revenue`
|
|
559
|
+
// beside `total revenue` before the semantic compiler can combine them.
|
|
560
|
+
return seed.requirements.measures.some((measure) => {
|
|
561
|
+
const requested = canonicalMetricIdentity(measure);
|
|
562
|
+
const genericBareTerm = /^(?:amount|value|count|number|total|rate|percentage|percent)$/.test(requested);
|
|
563
|
+
return identities.some((identity) => identity === requested
|
|
564
|
+
// A governed semantic metric may carry a leading accounting qualifier
|
|
565
|
+
// (`net revenue`) for the reader's base term (`revenue`). Keep that
|
|
566
|
+
// narrow suffix form for the established semantic contract, but never
|
|
567
|
+
// permit an inserted qualifier: `rollover balance amount` must not
|
|
568
|
+
// satisfy the distinct request `rollover amount`.
|
|
569
|
+
|| (!genericBareTerm && identity.endsWith(` ${requested}`)));
|
|
570
|
+
});
|
|
571
|
+
}
|
|
572
|
+
function canonicalMetricIdentity(value) {
|
|
573
|
+
return value
|
|
574
|
+
.trim()
|
|
575
|
+
.toLowerCase()
|
|
576
|
+
.replace(/([a-z])([A-Z])/g, '$1 $2')
|
|
577
|
+
.replace(/[._:/-]+/g, ' ')
|
|
578
|
+
.replace(/\s+/g, ' ')
|
|
579
|
+
.trim();
|
|
580
|
+
}
|
|
581
|
+
/**
|
|
582
|
+
* A selected semantic member can canonically correct an already-host-owned
|
|
583
|
+
* filter value (for example a retrieved alias/typo), but it cannot introduce
|
|
584
|
+
* a new filter field, member, or prior-result scope. Ambiguous member cards
|
|
585
|
+
* deliberately leave the seed value untouched for later clarification.
|
|
586
|
+
*/
|
|
587
|
+
function bindSelectedMemberValuesToSeed(input) {
|
|
588
|
+
const selectedMembers = input.selectedConceptIds.flatMap((id) => {
|
|
589
|
+
const candidate = input.candidates.find((item) => item.id === id || item.qualifiedId === id);
|
|
590
|
+
return candidate?.kind === 'semantic_member' ? [candidate] : [];
|
|
591
|
+
});
|
|
592
|
+
const queryIntent = cloneSeedQueryIntent(input.seed);
|
|
593
|
+
return {
|
|
594
|
+
...queryIntent,
|
|
595
|
+
filters: queryIntent.filters.map((filter) => {
|
|
596
|
+
const matches = selectedMembers.filter((candidate) => [candidate.name, ...(candidate.aliases ?? [])]
|
|
597
|
+
.map(normalizeMemberBindingText)
|
|
598
|
+
.includes(normalizeMemberBindingText(filter.value)));
|
|
599
|
+
return matches.length === 1 ? { ...filter, value: matches[0].name } : filter;
|
|
600
|
+
}),
|
|
601
|
+
};
|
|
602
|
+
}
|
|
603
|
+
function normalizeMemberBindingText(value) {
|
|
604
|
+
return value.trim().replace(/\s+/g, ' ').toLowerCase();
|
|
605
|
+
}
|
|
606
|
+
/**
|
|
607
|
+
* The model's selected candidate is a nomination for the cascade, not the
|
|
608
|
+
* final eligibility verdict. A partial certified card must therefore enter
|
|
609
|
+
* the certified tier so the deterministic output-contract check can continue
|
|
610
|
+
* to semantic/exploratory evidence instead of pretending it is raw SQL.
|
|
611
|
+
*/
|
|
612
|
+
function cascadeNominationForCandidate(candidate) {
|
|
613
|
+
if (candidate.kind === 'certified_block')
|
|
614
|
+
return 'certified';
|
|
615
|
+
if (candidate.kind === 'semantic_metric' || candidate.kind === 'semantic_member')
|
|
616
|
+
return 'semantic';
|
|
617
|
+
return candidate.trustTier === 'governed_sql' ? 'governed_sql' : 'exploratory';
|
|
618
|
+
}
|
|
619
|
+
function cloneSeedQueryIntent(seed) {
|
|
620
|
+
return {
|
|
621
|
+
measures: [...seed.queryIntent.measures],
|
|
622
|
+
dimensions: [...seed.queryIntent.dimensions],
|
|
623
|
+
filters: seed.queryIntent.filters.map((filter) => ({ field: filter.field, value: filter.value })),
|
|
624
|
+
...(seed.queryIntent.timeRange ? { timeRange: seed.queryIntent.timeRange } : {}),
|
|
625
|
+
...(seed.queryIntent.timeGrain ? { timeGrain: seed.queryIntent.timeGrain } : {}),
|
|
626
|
+
...(seed.queryIntent.order ? { order: seed.queryIntent.order } : {}),
|
|
627
|
+
...(seed.queryIntent.limit !== undefined ? { limit: seed.queryIntent.limit } : {}),
|
|
628
|
+
...(seed.queryIntent.fiscalCalendarId ? { fiscalCalendarId: seed.queryIntent.fiscalCalendarId } : {}),
|
|
629
|
+
...(seed.queryIntent.fiscalDateRoleId ? { fiscalDateRoleId: seed.queryIntent.fiscalDateRoleId } : {}),
|
|
630
|
+
};
|
|
631
|
+
}
|
|
632
|
+
function sameQueryIntent(left, right) {
|
|
633
|
+
return JSON.stringify({
|
|
634
|
+
measures: left.measures,
|
|
635
|
+
dimensions: left.dimensions,
|
|
636
|
+
filters: left.filters,
|
|
637
|
+
timeRange: left.timeRange,
|
|
638
|
+
timeGrain: left.timeGrain,
|
|
639
|
+
order: left.order,
|
|
640
|
+
limit: left.limit,
|
|
641
|
+
fiscalCalendarId: left.fiscalCalendarId,
|
|
642
|
+
fiscalDateRoleId: left.fiscalDateRoleId,
|
|
643
|
+
}) === JSON.stringify({
|
|
644
|
+
measures: right.measures,
|
|
645
|
+
dimensions: right.dimensions,
|
|
646
|
+
filters: right.filters,
|
|
647
|
+
timeRange: right.timeRange,
|
|
648
|
+
timeGrain: right.timeGrain,
|
|
649
|
+
order: right.order,
|
|
650
|
+
limit: right.limit,
|
|
651
|
+
fiscalCalendarId: right.fiscalCalendarId,
|
|
652
|
+
fiscalDateRoleId: right.fiscalDateRoleId,
|
|
653
|
+
});
|
|
654
|
+
}
|
|
655
|
+
function normalizeMeaningText(value) {
|
|
656
|
+
return value.trim().replace(/\s+/g, ' ').toLowerCase();
|
|
657
|
+
}
|
|
244
658
|
export function routeForEvidenceCandidate(candidate) {
|
|
245
659
|
if (candidate.kind === "certified_block" && candidate.compatibility === "compatible")
|
|
246
660
|
return "certified";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meaning-resolution.js","sourceRoot":"","sources":["../src/meaning-resolution.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"meaning-resolution.js","sourceRoot":"","sources":["../src/meaning-resolution.ts"],"names":[],"mappings":"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"}
|