@duckcodeailabs/dql-agent 1.14.0 → 1.14.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 +60 -2
- package/dist/agent-run-engine.d.ts.map +1 -1
- package/dist/agent-run-engine.js +333 -21
- 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 +13 -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 +311 -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 +32 -0
- package/dist/agentic/research/synthesis.d.ts.map +1 -0
- package/dist/agentic/research/synthesis.js +94 -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 +176 -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 +232 -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-orchestration.d.ts +80 -0
- package/dist/analytical-orchestration.d.ts.map +1 -1
- package/dist/analytical-orchestration.js +218 -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 +57 -16
- package/dist/answer-loop.d.ts.map +1 -1
- package/dist/answer-loop.js +161 -30
- package/dist/answer-loop.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.map +1 -1
- package/dist/conversation/snapshot.js +10 -1
- package/dist/conversation/snapshot.js.map +1 -1
- 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 +27 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +28 -5
- package/dist/index.js.map +1 -1
- package/dist/intent-controller.d.ts +8 -0
- package/dist/intent-controller.d.ts.map +1 -1
- package/dist/intent-controller.js +65 -0
- package/dist/intent-controller.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 +41 -1
- 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 +136 -11
- package/dist/metadata/catalog.js.map +1 -1
- package/dist/metadata/meaning-evidence.d.ts.map +1 -1
- package/dist/metadata/meaning-evidence.js +15 -7
- 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 +44 -4
- package/dist/research-loop.js.map +1 -1
- package/dist/router.d.ts +28 -16
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +250 -17
- package/dist/router.js.map +1 -1
- package/package.json +4 -4
|
@@ -41,6 +41,13 @@ export function inferAnalyticalTurnKind(question) {
|
|
|
41
41
|
return 'lookup';
|
|
42
42
|
return 'aggregation';
|
|
43
43
|
}
|
|
44
|
+
/**
|
|
45
|
+
* `Regarding: "Mr. Matthew Meyer"` and friends — a short label, a colon, and a
|
|
46
|
+
* quoted value, with nothing else in the clause. Deliberately narrow: it must
|
|
47
|
+
* be the WHOLE clause and the value must be quoted, so an ordinary question
|
|
48
|
+
* that happens to contain a colon is untouched.
|
|
49
|
+
*/
|
|
50
|
+
const ANNOTATION_CLAUSE = /^\s*[A-Za-z][A-Za-z ]{0,24}:\s*["“'‘][^"”'’]*["”'’]\s*$/;
|
|
44
51
|
export function splitAnalyticalTasks(question) {
|
|
45
52
|
// The separator belongs to the SPLIT, not to the clause. Carrying it through
|
|
46
53
|
// produced a child task whose question was literally
|
|
@@ -49,22 +56,36 @@ export function splitAnalyticalTasks(question) {
|
|
|
49
56
|
// the task title.
|
|
50
57
|
const leadingJunk = /^(?:[\s"'“”‘’,:;.\-]+|\b(?:then|and|also)\b)+/i;
|
|
51
58
|
const trailingJunk = /[\s"'“”‘’,:;.\-]+$/;
|
|
52
|
-
const
|
|
59
|
+
const raw = question
|
|
53
60
|
.split(/\s*(?:\?|;|\band then\b|\balso\b)\s*/i)
|
|
54
|
-
.flatMap((part) => part.split(/\s+\band\s+(?=(?:what|who|which|show|list|tell|give|how|why)\b)/i))
|
|
61
|
+
.flatMap((part) => part.split(/\s+\band\s+(?=(?:what|who|which|show|list|tell|give|how|why)\b)/i));
|
|
62
|
+
// A `Label: "value"` clause is an ANNOTATION, not a question. The composer
|
|
63
|
+
// appends `Regarding: "<selected row>"` when the reader follows up on
|
|
64
|
+
// something they clicked, and splitting on the `?` before it turned that
|
|
65
|
+
// referent into a task of its own — titled `Regarding: "Mr. Matthew Meyer`,
|
|
66
|
+
// which then "answered" by computing an unrelated maximum over the rows still
|
|
67
|
+
// on screen. Context says WHO the real task is about; it is never a task.
|
|
68
|
+
// Filtered before the junk strip, which would unbalance the quotes.
|
|
69
|
+
const asked = raw.filter((part) => !ANNOTATION_CLAUSE.test(part));
|
|
70
|
+
const parts = (asked.length > 0 ? asked : raw)
|
|
55
71
|
.map((part) => part.replace(leadingJunk, '').replace(trailingJunk, '').trim())
|
|
56
72
|
.filter(Boolean);
|
|
57
73
|
return parts.length > 0 ? parts : [question.trim()];
|
|
58
74
|
}
|
|
59
75
|
export function buildAnalyticalTaskGraph(input) {
|
|
60
|
-
const
|
|
76
|
+
const rootKind = input.mode === 'research' ? 'research' : inferAnalyticalTurnKind(input.question);
|
|
77
|
+
// A research turn may later create bounded evidence branches, but that is a
|
|
78
|
+
// research planner's job. Splitting at ingress loses the surrounding story
|
|
79
|
+
// before it has an opportunity to reason about it.
|
|
80
|
+
const clauses = (rootKind === 'research' ? [input.question.trim()] : splitAnalyticalTasks(input.question))
|
|
81
|
+
.slice(0, Math.max(1, Math.min(6, input.maxTasks ?? 6)));
|
|
61
82
|
const candidateIds = [...new Set((input.candidateIds ?? []).filter((id) => id.trim()))];
|
|
62
83
|
const metrics = [...new Set((input.metrics ?? []).filter((metric) => metric.trim()))];
|
|
63
84
|
const dimensions = [...new Set((input.dimensions ?? []).filter((dimension) => dimension.trim()))];
|
|
64
85
|
const filters = input.filters ?? [];
|
|
65
86
|
const inheritedBindings = input.inheritedBindings ?? [];
|
|
66
|
-
const
|
|
67
|
-
const kind = inferAnalyticalTurnKind(clause);
|
|
87
|
+
const unboundTasks = clauses.map((clause, index) => {
|
|
88
|
+
const kind = rootKind === 'research' ? 'research' : inferAnalyticalTurnKind(clause);
|
|
68
89
|
const research = kind === 'research' || kind === 'diagnosis';
|
|
69
90
|
const taskKind = research
|
|
70
91
|
? 'research_branch'
|
|
@@ -96,12 +117,36 @@ export function buildAnalyticalTaskGraph(input) {
|
|
|
96
117
|
inheritedBindings,
|
|
97
118
|
};
|
|
98
119
|
});
|
|
120
|
+
const tasks = bindTopRankedRegionDependencies(unboundTasks);
|
|
99
121
|
return {
|
|
100
|
-
kind: tasks.length > 1 ? 'compound' :
|
|
122
|
+
kind: rootKind === 'research' ? 'research' : tasks.length > 1 ? 'compound' : rootKind,
|
|
101
123
|
tasks,
|
|
102
124
|
partial: false,
|
|
103
125
|
};
|
|
104
126
|
}
|
|
127
|
+
const TOP_RANKED_REGION_RE = /(?:\b(?:top|highest|most)\b[^?.!]{0,72}\bregions?\b|\bregions?\b[^?.!]{0,72}\b(?:top|highest|most)\b)/i;
|
|
128
|
+
const DEPENDENT_REGION_CUSTOMERS_RE = /\b(?:that|this|same)\s+region\b/i;
|
|
129
|
+
/**
|
|
130
|
+
* Recognise only the demonstrated two-step dependency. Broader pronoun
|
|
131
|
+
* resolution belongs to the normal conversation layer; turning every compound
|
|
132
|
+
* question into a dependency would serialise unrelated work and invent filters.
|
|
133
|
+
*/
|
|
134
|
+
function bindTopRankedRegionDependencies(tasks) {
|
|
135
|
+
return tasks.map((task, index) => {
|
|
136
|
+
if (!DEPENDENT_REGION_CUSTOMERS_RE.test(task.question) || !/\bcustomers?\b/i.test(task.question))
|
|
137
|
+
return task;
|
|
138
|
+
const parent = tasks.slice(0, index).reverse().find((candidate) => TOP_RANKED_REGION_RE.test(candidate.question));
|
|
139
|
+
if (!parent)
|
|
140
|
+
return task;
|
|
141
|
+
const dependency = {
|
|
142
|
+
version: 1,
|
|
143
|
+
kind: 'top_ranked_region',
|
|
144
|
+
sourceTaskId: parent.id,
|
|
145
|
+
targetDimension: 'region',
|
|
146
|
+
};
|
|
147
|
+
return { ...task, dependencies: [parent.id], dependency };
|
|
148
|
+
});
|
|
149
|
+
}
|
|
105
150
|
export function buildAnalyticalTurnPlan(input) {
|
|
106
151
|
const graph = buildAnalyticalTaskGraph(input);
|
|
107
152
|
const zeroCall = input.zeroCallReason === 'explicit_binding'
|
|
@@ -134,6 +179,173 @@ export function summarizeTaskOutcomes(tasks) {
|
|
|
134
179
|
: 'gap';
|
|
135
180
|
return { status, completed, gaps };
|
|
136
181
|
}
|
|
182
|
+
/** Stable scalar transport for a selected canonical result cell. */
|
|
183
|
+
export function canonicalResultBindingValue(value) {
|
|
184
|
+
if (typeof value === 'string')
|
|
185
|
+
return value;
|
|
186
|
+
if (typeof value === 'number' && Number.isFinite(value))
|
|
187
|
+
return String(value);
|
|
188
|
+
if (typeof value === 'boolean')
|
|
189
|
+
return String(value);
|
|
190
|
+
return undefined;
|
|
191
|
+
}
|
|
192
|
+
/** A row proof includes all canonical columns, not just the selected cell. */
|
|
193
|
+
export function canonicalResultRowFingerprint(result, row) {
|
|
194
|
+
return stableFingerprint({
|
|
195
|
+
columns: result.columns,
|
|
196
|
+
row: Object.fromEntries(result.columns.map((column) => [column, row[column]])),
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Validate an untrusted selected-result reference against a persisted
|
|
201
|
+
* canonical result. The source run/artifact identities are checked by the
|
|
202
|
+
* host before calling this pure result-level validator.
|
|
203
|
+
*/
|
|
204
|
+
export function validateSelectedResultBinding(binding, result) {
|
|
205
|
+
if (!binding
|
|
206
|
+
|| binding.version !== 1
|
|
207
|
+
|| !binding.sourceRunId.trim()
|
|
208
|
+
|| !binding.sourceArtifactId.trim()
|
|
209
|
+
|| !binding.canonicalColumn.trim()
|
|
210
|
+
|| !binding.value.trim()
|
|
211
|
+
|| !normalizeAnalyticalExecutionFingerprint(binding.rowFingerprint)
|
|
212
|
+
|| !normalizeAnalyticalExecutionFingerprint(binding.resultFingerprint)) {
|
|
213
|
+
return {
|
|
214
|
+
ok: false,
|
|
215
|
+
code: 'RESULT_BINDING_INVALID',
|
|
216
|
+
message: 'The selected result reference is incomplete or malformed.',
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
if (!result || binding.resultFingerprint !== result.resultFingerprint) {
|
|
220
|
+
return {
|
|
221
|
+
ok: false,
|
|
222
|
+
code: 'RESULT_BINDING_RESULT_MISMATCH',
|
|
223
|
+
message: 'The selected result is no longer the persisted result for this run.',
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
if (!result.columns.includes(binding.canonicalColumn)) {
|
|
227
|
+
return {
|
|
228
|
+
ok: false,
|
|
229
|
+
code: 'RESULT_BINDING_ROW_MISMATCH',
|
|
230
|
+
message: `The selected column ${binding.canonicalColumn} is not present in the persisted result.`,
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
const matched = result.rows.some((row) => canonicalResultRowFingerprint(result, row) === binding.rowFingerprint
|
|
234
|
+
&& canonicalResultBindingValue(row[binding.canonicalColumn]) === binding.value);
|
|
235
|
+
if (!matched) {
|
|
236
|
+
return {
|
|
237
|
+
ok: false,
|
|
238
|
+
code: 'RESULT_BINDING_ROW_MISMATCH',
|
|
239
|
+
message: 'The selected row/value does not match the persisted result.',
|
|
240
|
+
};
|
|
241
|
+
}
|
|
242
|
+
return { ok: true, binding: { ...binding, resultFingerprint: result.resultFingerprint } };
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Derive the one value a `top region -> customers in that region` child may
|
|
246
|
+
* consume. A first row alone is never proof. The parent must either return an
|
|
247
|
+
* explicit rank, or be the server-computed descending ranking task and return
|
|
248
|
+
* at least two rows with one strictly-leading numeric measure. `rowCount` is
|
|
249
|
+
* the returned-row contract, not proof that a singleton is the complete group
|
|
250
|
+
* set. Ties and ambiguous result shapes remain a typed child gap.
|
|
251
|
+
*/
|
|
252
|
+
export function resolveTopRankedRegionDependency(sourceTaskId, result, parentTask) {
|
|
253
|
+
if (!result || result.rows.length === 0) {
|
|
254
|
+
return {
|
|
255
|
+
ok: false,
|
|
256
|
+
code: 'RESULT_CONTRACT_MISMATCH',
|
|
257
|
+
message: 'The top-region task did not produce a canonical result that can bind the dependent customer task.',
|
|
258
|
+
};
|
|
259
|
+
}
|
|
260
|
+
const canonicalResultFingerprint = normalizeAnalyticalExecutionFingerprint(result.resultFingerprint);
|
|
261
|
+
const executionReceipt = normalizeAnalyticalExecutionReceipt(result.executionReceipt);
|
|
262
|
+
if (!executionReceipt) {
|
|
263
|
+
return {
|
|
264
|
+
ok: false,
|
|
265
|
+
code: 'RESULT_CONTRACT_MISMATCH',
|
|
266
|
+
message: 'The top-region result did not retain a complete normalized execution receipt, so the dependent customer task was not run.',
|
|
267
|
+
};
|
|
268
|
+
}
|
|
269
|
+
if (!canonicalResultFingerprint
|
|
270
|
+
|| result.resultFingerprint !== canonicalResultFingerprint
|
|
271
|
+
|| executionReceipt.resultFingerprint !== canonicalResultFingerprint) {
|
|
272
|
+
return {
|
|
273
|
+
ok: false,
|
|
274
|
+
code: 'RESULT_CONTRACT_MISMATCH',
|
|
275
|
+
message: 'The top-region execution receipt does not match the canonical result, so the dependent customer task was not run.',
|
|
276
|
+
};
|
|
277
|
+
}
|
|
278
|
+
const regionColumns = result.columns.filter((column) => /(?:^|_)region(?:_name)?$/i.test(column));
|
|
279
|
+
if (regionColumns.length !== 1) {
|
|
280
|
+
return {
|
|
281
|
+
ok: false,
|
|
282
|
+
code: 'RESULT_CONTRACT_MISMATCH',
|
|
283
|
+
message: 'The top-region result did not contain exactly one canonical region column.',
|
|
284
|
+
};
|
|
285
|
+
}
|
|
286
|
+
const canonicalColumn = regionColumns[0];
|
|
287
|
+
const first = result.rows[0];
|
|
288
|
+
const value = canonicalResultBindingValue(first[canonicalColumn]);
|
|
289
|
+
if (!value) {
|
|
290
|
+
return {
|
|
291
|
+
ok: false,
|
|
292
|
+
code: 'RESULT_CONTRACT_MISMATCH',
|
|
293
|
+
message: 'The leading top-region row did not contain a usable region value.',
|
|
294
|
+
};
|
|
295
|
+
}
|
|
296
|
+
if (!hasUnambiguousTopRow(result, parentTask)) {
|
|
297
|
+
return {
|
|
298
|
+
ok: false,
|
|
299
|
+
code: 'RESULT_CONTRACT_MISMATCH',
|
|
300
|
+
message: 'The top-region result did not prove a single leading region, so the dependent customer task was not run.',
|
|
301
|
+
};
|
|
302
|
+
}
|
|
303
|
+
return {
|
|
304
|
+
ok: true,
|
|
305
|
+
binding: {
|
|
306
|
+
version: 1,
|
|
307
|
+
sourceTaskId,
|
|
308
|
+
sourceResultFingerprint: canonicalResultFingerprint,
|
|
309
|
+
canonicalColumn,
|
|
310
|
+
value,
|
|
311
|
+
rowFingerprint: canonicalResultRowFingerprint(result, first),
|
|
312
|
+
},
|
|
313
|
+
};
|
|
314
|
+
}
|
|
315
|
+
function hasUnambiguousTopRow(result, parentTask) {
|
|
316
|
+
const rankColumn = result.columns.find((column) => /(?:^|_)(?:rank|row_number)$/i.test(column));
|
|
317
|
+
if (rankColumn) {
|
|
318
|
+
const ranks = result.rows.map((row) => numericCell(row[rankColumn]));
|
|
319
|
+
if (ranks[0] === 1 && ranks.slice(1).every((rank) => rank === undefined || rank > 1))
|
|
320
|
+
return true;
|
|
321
|
+
}
|
|
322
|
+
// A plain numerical result column does not say that its first row was ranked.
|
|
323
|
+
// It becomes a ranking proof only when the server's own parent task explicitly
|
|
324
|
+
// asked for a descending ranking AND the returned rows demonstrate a strictly
|
|
325
|
+
// leading value. A singleton needs an explicit rank = 1: it cannot establish
|
|
326
|
+
// that unreturned groups are lower.
|
|
327
|
+
if (parentTask?.kind !== 'ranking' || parentTask.output.order !== 'desc')
|
|
328
|
+
return false;
|
|
329
|
+
if (result.rows.length < 2)
|
|
330
|
+
return false;
|
|
331
|
+
const measures = result.columns.filter((column) => {
|
|
332
|
+
if (column === rankColumn)
|
|
333
|
+
return false;
|
|
334
|
+
const values = result.rows.map((row) => numericCell(row[column]));
|
|
335
|
+
return values.every((value) => value !== undefined);
|
|
336
|
+
});
|
|
337
|
+
if (measures.length !== 1)
|
|
338
|
+
return false;
|
|
339
|
+
const values = result.rows.map((row) => numericCell(row[measures[0]]));
|
|
340
|
+
return values.slice(1).every((value) => values[0] > value);
|
|
341
|
+
}
|
|
342
|
+
function numericCell(value) {
|
|
343
|
+
if (typeof value === 'number' && Number.isFinite(value))
|
|
344
|
+
return value;
|
|
345
|
+
if (typeof value === 'string' && value.trim() && Number.isFinite(Number(value)))
|
|
346
|
+
return Number(value);
|
|
347
|
+
return undefined;
|
|
348
|
+
}
|
|
137
349
|
/**
|
|
138
350
|
* Normalize connector, MetricFlow, and provider result shapes at one boundary.
|
|
139
351
|
* Connectors may return `ColumnMeta[]` and rows as arrays; UI surfaces should
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analytical-orchestration.js","sourceRoot":"","sources":["../src/analytical-orchestration.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"analytical-orchestration.js","sourceRoot":"","sources":["../src/analytical-orchestration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,MAAM,CAAC,MAAM,yCAAyC,GAAG,CAAU,CAAC;AA2JpE;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CAAC,QAAgB;IACtD,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IACpC,IAAI,iEAAiE,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,cAAc,CAAC;IACxG,IAAI,oDAAoD,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,WAAW,CAAC;IACxF,IAAI,uEAAuE,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,UAAU,CAAC;IAC1G,IAAI,uCAAuC,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,YAAY,CAAC;IAC5E,IAAI,sCAAsC,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IACxE,IAAI,mDAAmD,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,WAAW,CAAC;IACvF,IAAI,kDAAkD,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,wCAAwC,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,YAAY,CAAC;IAC/I,IAAI,4EAA4E,CAAC,IAAI,CAAC,IAAI,CAAC;WACtF,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC9D,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;;;;GAKG;AACH,MAAM,iBAAiB,GAAG,yDAAyD,CAAC;AAEpF,MAAM,UAAU,oBAAoB,CAAC,QAAgB;IACnD,6EAA6E;IAC7E,qDAAqD;IACrD,8EAA8E;IAC9E,8EAA8E;IAC9E,kBAAkB;IAClB,MAAM,WAAW,GAAG,gDAAgD,CAAC;IACrE,MAAM,YAAY,GAAG,oBAAoB,CAAC;IAC1C,MAAM,GAAG,GAAG,QAAQ;SACjB,KAAK,CAAC,uCAAuC,CAAC;SAC9C,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,kEAAkE,CAAC,CAAC,CAAC;IACrG,2EAA2E;IAC3E,sEAAsE;IACtE,yEAAyE;IACzE,4EAA4E;IAC5E,8EAA8E;IAC9E,0EAA0E;IAC1E,oEAAoE;IACpE,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAClE,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;SAC3C,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;SAC7E,MAAM,CAAC,OAAO,CAAC,CAAC;IACnB,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,KAcxC;IACC,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,uBAAuB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAClG,4EAA4E;IAC5E,2EAA2E;IAC3E,mDAAmD;IACnD,MAAM,OAAO,GAAG,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;SACvG,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,MAAM,YAAY,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACxF,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACtF,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAClG,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC;IACpC,MAAM,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC;IACxD,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAoB,EAAE;QACnE,MAAM,IAAI,GAAG,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;QACpF,MAAM,QAAQ,GAAG,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,WAAW,CAAC;QAC7D,MAAM,QAAQ,GAAuB,QAAQ;YAC3C,CAAC,CAAC,iBAAiB;YACnB,CAAC,CAAC,IAAI,KAAK,QAAQ;gBACjB,CAAC,CAAC,kBAAkB;gBACpB,CAAC,CAAC,IAAI,KAAK,WAAW;oBACpB,CAAC,CAAC,WAAW;oBACb,CAAC,CAAC,IAAI,KAAK,YAAY;wBACrB,CAAC,CAAC,YAAY;wBACd,CAAC,CAAC,IAAI,KAAK,SAAS;4BAClB,CAAC,CAAC,SAAS;4BACX,CAAC,CAAC,IAAI,KAAK,YAAY;gCACrB,CAAC,CAAC,YAAY;gCACd,CAAC,CAAC,aAAa,CAAC;QAC5B,OAAO;YACL,OAAO,EAAE,CAAC;YACV,EAAE,EAAE,QAAQ,KAAK,GAAG,CAAC,EAAE;YACvB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,MAAM;YAChB,YAAY,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;YACnC,MAAM,EAAE;gBACN,OAAO;gBACP,UAAU;gBACV,OAAO;gBACP,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC1D;YACD,MAAM,EAAE,SAAS;YACjB,YAAY;YACZ,iBAAiB;SAClB,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,+BAA+B,CAAC,YAAY,CAAC,CAAC;IAC5D,OAAO;QACL,IAAI,EAAE,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ;QACrF,KAAK;QACL,OAAO,EAAE,KAAK;KACf,CAAC;AACJ,CAAC;AAED,MAAM,oBAAoB,GAAG,wGAAwG,CAAC;AACtI,MAAM,6BAA6B,GAAG,kCAAkC,CAAC;AAEzE;;;;GAIG;AACH,SAAS,+BAA+B,CAAC,KAAyB;IAChE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAC/B,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;YAAE,OAAO,IAAI,CAAC;QAC9G,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QAClH,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACzB,MAAM,UAAU,GAA+B;YAC7C,OAAO,EAAE,CAAC;YACV,IAAI,EAAE,mBAAmB;YACzB,YAAY,EAAE,MAAM,CAAC,EAAE;YACvB,eAAe,EAAE,QAAQ;SAC1B,CAAC;QACF,OAAO,EAAE,GAAG,IAAI,EAAE,YAAY,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC;IAC5D,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,KAavC;IACC,MAAM,KAAK,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,KAAK,CAAC,cAAc,KAAK,kBAAkB;WACvD,KAAK,CAAC,cAAc,KAAK,mBAAmB;WAC5C,KAAK,CAAC,cAAc,KAAK,uBAAuB,CAAC;IACtD,OAAO;QACL,OAAO,EAAE,CAAC;QACV,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,iBAAiB,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnC,iBAAiB,EAAE,KAAK,CAAC,cAAc,IAAI,0BAA0B;QACrE,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7D,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClF,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3C,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,cAAc,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,qBAAqB,EAAE,WAAW,CAAC;QAC7E,MAAM,EAAE,KAAK,CAAC,MAAM,KAAK,IAAI;KAC9B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAyB;IAK7D,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7F,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,KAAK,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/G,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAClE,CAAC,CAAC,WAAW;QACb,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;YACpB,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,SAAS,CAAC;gBAC7E,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,KAAK,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AACrC,CAAC;AA2CD,oEAAoE;AACpE,MAAM,UAAU,2BAA2B,CAAC,KAAc;IACxD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9E,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACrD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,6BAA6B,CAAC,MAA+C,EAAE,GAA4B;IACzH,OAAO,iBAAiB,CAAC;QACvB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,GAAG,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;KAC/E,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,6BAA6B,CAC3C,OAAiD,EACjD,MAA0C;IAE1C,IAAI,CAAC,OAAO;WACP,OAAO,CAAC,OAAO,KAAK,CAAC;WACrB,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE;WAC3B,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,EAAE;WAChC,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE;WAC/B,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE;WACrB,CAAC,uCAAuC,CAAC,OAAO,CAAC,cAAc,CAAC;WAChE,CAAC,uCAAuC,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACzE,OAAO;YACL,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,wBAAwB;YAC9B,OAAO,EAAE,2DAA2D;SACrE,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,iBAAiB,KAAK,MAAM,CAAC,iBAAiB,EAAE,CAAC;QACtE,OAAO;YACL,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,gCAAgC;YACtC,OAAO,EAAE,qEAAqE;SAC/E,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;QACtD,OAAO;YACL,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,6BAA6B;YACnC,OAAO,EAAE,uBAAuB,OAAO,CAAC,eAAe,0CAA0C;SAClG,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CACvC,6BAA6B,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,OAAO,CAAC,cAAc;WAClE,2BAA2B,CAAC,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC;IAClF,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;YACL,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,6BAA6B;YACnC,OAAO,EAAE,6DAA6D;SACvE,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,EAAE,EAAE,CAAC;AAC5F,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,gCAAgC,CAC9C,YAAoB,EACpB,MAA0C,EAC1C,UAAsD;IAEtD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxC,OAAO;YACL,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,0BAA0B;YAChC,OAAO,EAAE,mGAAmG;SAC7G,CAAC;IACJ,CAAC;IACD,MAAM,0BAA0B,GAAG,uCAAuC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IACrG,MAAM,gBAAgB,GAAG,mCAAmC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IACtF,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,OAAO;YACL,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,0BAA0B;YAChC,OAAO,EAAE,2HAA2H;SACrI,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,0BAA0B;WAC1B,MAAM,CAAC,iBAAiB,KAAK,0BAA0B;WACvD,gBAAgB,CAAC,iBAAiB,KAAK,0BAA0B,EAAE,CAAC;QACvE,OAAO;YACL,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,0BAA0B;YAChC,OAAO,EAAE,mHAAmH;SAC7H,CAAC;IACJ,CAAC;IACD,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,2BAA2B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAClG,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO;YACL,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,0BAA0B;YAChC,OAAO,EAAE,4EAA4E;SACtF,CAAC;IACJ,CAAC;IACD,MAAM,eAAe,GAAG,aAAa,CAAC,CAAC,CAAE,CAAC;IAC1C,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC;IAC9B,MAAM,KAAK,GAAG,2BAA2B,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;IAClE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO;YACL,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,0BAA0B;YAChC,OAAO,EAAE,mEAAmE;SAC7E,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC;QAC9C,OAAO;YACL,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,0BAA0B;YAChC,OAAO,EAAE,0GAA0G;SACpH,CAAC;IACJ,CAAC;IACD,OAAO;QACL,EAAE,EAAE,IAAI;QACR,OAAO,EAAE;YACP,OAAO,EAAE,CAAC;YACV,YAAY;YACZ,uBAAuB,EAAE,0BAA0B;YACnD,eAAe;YACf,KAAK;YACL,cAAc,EAAE,6BAA6B,CAAC,MAAM,EAAE,KAAK,CAAC;SAC7D;KACF,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAC3B,MAA8B,EAC9B,UAAsD;IAEtD,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,8BAA8B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAChG,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACrE,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,GAAG,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;IACpG,CAAC;IACD,8EAA8E;IAC9E,+EAA+E;IAC/E,8EAA8E;IAC9E,6EAA6E;IAC7E,oCAAoC;IACpC,IAAI,UAAU,EAAE,IAAI,KAAK,SAAS,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,KAAK,MAAM;QAAE,OAAO,KAAK,CAAC;IACvF,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IACzC,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;QAChD,IAAI,MAAM,KAAK,UAAU;YAAE,OAAO,KAAK,CAAC;QACxC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAClE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IACH,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACxC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC,CAAE,CAAC,CAAC;IACzE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAE,GAAG,KAAK,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACtE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACtG,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,6BAA6B,CAAC,KAW7C;IACC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;QAC1C,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;QAC/B,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5D,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC;QACxC,CAAC,CAAC,OAAO;QACT,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC;YACpC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC;YAC3B,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC;gBACtB,CAAC,CAAC,aAAa,CAAC,OAAO,CAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,UAAU,KAAK,GAAG,CAAC,EAAE,CAAC;gBAClE,CAAC,CAAC,EAAE,CAAC;IACX,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC;IACtE,MAAM,QAAQ,GAAG,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC;QACpF,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACzC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;IAChB,MAAM,aAAa,GAAG,OAAO,KAAK,CAAC,eAAe,KAAK,QAAQ;QAC7D,CAAC,CAAC,KAAK,CAAC,eAAe;QACvB,CAAC,CAAC,OAAO,KAAK,CAAC,aAAa,KAAK,QAAQ;YACvC,CAAC,CAAC,KAAK,CAAC,aAAa;YACrB,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,SAAS,GAAG;QAChB,OAAO,EAAE,CAAU;QACnB,OAAO,EAAE,eAAe;QACxB,IAAI;QACJ,QAAQ;QACR,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACzD,CAAC;IACF,MAAM,OAAO,GAAG,KAAK,CAAC,gBAAgB,IAAI,OAAO,KAAK,CAAC,gBAAgB,KAAK,QAAQ;QAClF,CAAC,CAAC,KAAK,CAAC,gBAA+C;QACvD,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,kBAAkB,GAAG,OAAO,OAAO,EAAE,iBAAiB,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC;IAClH,MAAM,mBAAmB,GAAG,OAAO,KAAK,CAAC,iBAAiB,KAAK,QAAQ,IAAI,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE;QACvG,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE;QAChC,CAAC,CAAC,kBAAkB,CAAC;IACvB,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,KAAK,WAAW;WAC9C,KAAK,CAAC,UAAU,KAAK,UAAU;WAC/B,KAAK,CAAC,UAAU,KAAK,iBAAiB;WACtC,KAAK,CAAC,UAAU,KAAK,gBAAgB;WACrC,KAAK,CAAC,UAAU,KAAK,SAAS;QACjC,CAAC,CAAC,KAAK,CAAC,UAAU;QAClB,CAAC,CAAC,SAAS,CAAC;IACd,OAAO;QACL,GAAG,SAAS;QACZ,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrC,GAAG,CAAC,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE;YACjE,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE;YACzC,CAAC,CAAC,EAAE,CAAC;QACP,2EAA2E;QAC3E,+DAA+D;QAC/D,iBAAiB,EAAE,mBAAmB,IAAI,iBAAiB,CAAC,SAAS,CAAC;KACvE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,MAA8B;IAChE,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAA8B;IAClE,IAAI,MAAM,CAAC,OAAO,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IAC7F,IAAI,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;IACvH,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,OAAO,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IAC9G,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAC9B,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACpC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC;gBACvD,MAAM,IAAI,KAAK,CAAC,6CAA6C,MAAM,GAAG,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AA6BD,mFAAmF;AACnF,MAAM,UAAU,qBAAqB,CACnC,KAA+C,EAC/C,KAAK,GAAG,EAAE;IAEV,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAChE,MAAM,IAAI,GAAG,IAAI,GAAG,EAA0E,CAAC;IAC/F,MAAM,WAAW,GAA+B,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IACjG,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAClD,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;QACrD,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAC5B,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE;gBAAE,OAAO;YAC5B,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,KAAK,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC;YACrF,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACnC,IAAI,QAAQ,EAAE,CAAC;gBACb,QAAQ,CAAC,KAAK,IAAI,KAAK,CAAC;gBACxB,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACzB,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,SAAS;oBAAE,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBACpF,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI;oBAAE,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC;gBACzD,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO;oBAAE,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YACzE,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;YAChE,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACD,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;SAChC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;SACtH,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC;SACnB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;IAC5D,WAAW,CAAC,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1D,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC;IACpD,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;AAC/C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,KAA8D,EAC9D,KAAK,GAAG,EAAE,EACV,aAAa,GAAG,CAAC;IAEjB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7E,MAAM,OAAO,GAAmF,EAAE,CAAC;IACnG,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,MAAM,MAAM,GAAG,KAAK,IAAmB,EAAE;QACvC,SAAS,CAAC;YACR,MAAM,KAAK,GAAG,SAAS,CAAC;YACxB,SAAS,IAAI,CAAC,CAAC;YACf,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;YAC7B,IAAI,CAAC,KAAK;gBAAE,OAAO;YACnB,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC;YAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,QAAQ,EAAE,CAAC;gBAC/B,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC;YACzD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC;YACrH,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IACF,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACjG,MAAM,UAAU,GAA6C,EAAE,CAAC;IAChE,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,MAAM,SAAS,GAA2B,EAAE,CAAC;IAC7C,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,IAAI,OAAO,EAAE,CAAC;QACjD,SAAS,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;QAC7B,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,UAAU,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;;YAChD,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;IACnC,CAAC;IACD,MAAM,KAAK,GAAG,qBAAqB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACvD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACvD,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG;YAC9B,QAAQ,EAAE,KAAK,CAAC,MAAM;YACtB,UAAU,EAAE,SAAS,CAAC,IAAI,CAAC;YAC3B,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO;SAC1C,CAAC;IACJ,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACnD,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG;YAC9B,QAAQ,EAAE,CAAC;YACX,UAAU,EAAE,SAAS,CAAC,IAAI,CAAC;YAC3B,MAAM,EAAE,OAAO;YACf,KAAK;SACN,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AA0BD,MAAM,UAAU,mBAAmB,CAAI,QAAa,EAAE,GAAG,GAAG,CAAC;IAC3D,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,KAM3C;IACC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACtD,MAAM,iBAAiB,GAAG,uCAAuC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAC3F,MAAM,gBAAgB,GAAG,mCAAmC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACrF,MAAM,kBAAkB,GAAG,gBAAgB,EAAE,iBAAiB,CAAC;QAC/D,MAAM,iBAAiB,GAAG,KAAK,CAAC,QAAQ;aACrC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,uCAAuC,CAAC,OAAO,CAAC,CAAC;aAClE,IAAI,CAAC,CAAC,OAAO,EAAqB,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1D,MAAM,cAAc,GAAG,iBAAiB,IAAI,kBAAkB,IAAI,iBAAiB,CAAC;QAEpF,0EAA0E;QAC1E,qEAAqE;QACrE,wDAAwD;QACxD,IAAI,KAAK,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YAChC,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,YAAY,EAAE,GAAG,YAAY,EAAE,GAAG,KAAK,CAAC;YAC/F,OAAO,EAAE,GAAG,YAAY,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QAC3C,CAAC;QAED,yEAAyE;QACzE,yEAAyE;QACzE,uEAAuE;QACvE,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,YAAY,EAAE,GAAG,YAAY,EAAE,GAAG,KAAK,CAAC;YAC/F,OAAO;gBACL,GAAG,YAAY;gBACf,MAAM,EAAE,QAAiB;gBACzB,QAAQ,EAAE,EAAE;gBACZ,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,iFAAiF;aACxG,CAAC;QACJ,CAAC;QAED,OAAO;YACL,GAAG,KAAK;YACR,MAAM,EAAE,UAAmB;YAC3B,iBAAiB,EAAE,cAAc;YACjC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjD,QAAQ,EAAE,CAAC,cAAc,CAAC;SAC3B,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,OAAO;QACL,OAAO,EAAE,CAAC;QACV,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7D,OAAO;QACP,OAAO,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9D,cAAc,EAAE,KAAK,CAAC,cAAc,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC;KAC3F,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,uCAAuC,CAAC,KAAc;IACpE,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACtE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;QAC5B,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mCAAmC,CAAC,KAAc;IAChE,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAClF,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,MAAM,iBAAiB,GAAG,uCAAuC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAC5F,MAAM,sBAAsB,GAAG,uCAAuC,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;IACtG,MAAM,oBAAoB,GAAG,uCAAuC,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAClG,MAAM,iBAAiB,GAAG,uCAAuC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAC5F,OAAO,iBAAiB,IAAI,sBAAsB,IAAI,oBAAoB,IAAI,iBAAiB;QAC7F,CAAC,CAAC,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE;QACxF,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAA+C;IAC9E,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC;AAClC,CAAC;AAED,SAAS,UAAU,CAAC,KAAc;IAChC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAQ,KAA4B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACjG,OAAO,MAAM,CAAE,KAA2B,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,IAAI,QAAQ,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAe;IACvC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;YAAE,SAAS;QACpE,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,GAA8B,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACxF,CAAC;IACD,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,aAAa,CAAC,IAAe;IACpC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;IAC/D,OAAO,GAA4B,CAAC;AACtC,CAAC;AAED,SAAS,YAAY,CAAC,GAAY,EAAE,OAAiB;IACnD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACxG,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,GAA8B,CAAC;QAC9C,OAAO,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;AAC1E,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACvC,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IACpC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC9E,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IAC7E,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AAC5H,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deterministic Ask ingress policy.
|
|
3
|
+
*
|
|
4
|
+
* This runs before catalog retrieval, provider dispatch, value probing, tools,
|
|
5
|
+
* or SQL. It intentionally recognises a small set of direct disclosure
|
|
6
|
+
* requests instead of attempting to infer policy from the available schema:
|
|
7
|
+
* reaching a model or a warehouse is already too late for these requests.
|
|
8
|
+
*/
|
|
9
|
+
export type AnalyticalRequestPolicyDecision = {
|
|
10
|
+
allowed: true;
|
|
11
|
+
} | {
|
|
12
|
+
allowed: false;
|
|
13
|
+
code: 'REGULATED_IDENTIFIER_REQUEST' | 'SENSITIVE_PERSONAL_DATA_REQUEST' | 'INDIVIDUAL_COMPENSATION_REQUEST';
|
|
14
|
+
message: string;
|
|
15
|
+
nextActions: string[];
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Evaluate a raw Ask question at the ingress boundary.
|
|
19
|
+
*
|
|
20
|
+
* Direct personal data and compensation are unavailable before planning. A
|
|
21
|
+
* narrowly explicit population aggregate remains available, but aggregate
|
|
22
|
+
* words never turn a named or singular person's compensation into a safe
|
|
23
|
+
* request.
|
|
24
|
+
*/
|
|
25
|
+
export declare function evaluateAnalyticalRequestPolicy(question: string): AnalyticalRequestPolicyDecision;
|
|
26
|
+
//# sourceMappingURL=analytical-request-policy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analytical-request-policy.d.ts","sourceRoot":"","sources":["../src/analytical-request-policy.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,MAAM,+BAA+B,GACvC;IAAE,OAAO,EAAE,IAAI,CAAA;CAAE,GACjB;IACE,OAAO,EAAE,KAAK,CAAC;IACf,IAAI,EACA,8BAA8B,GAC9B,iCAAiC,GACjC,iCAAiC,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB,CAAC;AAiDN;;;;;;;GAOG;AACH,wBAAgB,+BAA+B,CAAC,QAAQ,EAAE,MAAM,GAAG,+BAA+B,CAsCjG"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
const REGULATED_IDENTIFIER_RE = /\b(?:social\s+security(?:\s+(?:number|no\.?))?|ssn|tax(?:payer)?\s*(?:id|identifier|number|no\.?)|passport(?:\s+(?:id|number|no\.?))?|government\s*(?:id|identifier)|national\s*id|driver'?s?\s*licen[cs]e(?:\s+(?:number|no\.?))?|date\s+of\s+birth|birth\s*date|dob|aadhaar(?:\s+(?:number|id))?)\b/i;
|
|
2
|
+
/**
|
|
3
|
+
* A regulated identifier may appear in a question about DQL's safeguards, but
|
|
4
|
+
* that exception must be explicit about the system's behaviour and begin the
|
|
5
|
+
* entire request. Topic words such as "compliance" or "policy" are not
|
|
6
|
+
* enough: "For compliance, show Jessica Richard's SSN" is still a disclosure
|
|
7
|
+
* request. Likewise, a policy attached to a named person is not a system
|
|
8
|
+
* policy question.
|
|
9
|
+
*/
|
|
10
|
+
const EXPLICIT_SYSTEM_POLICY_OR_CAPABILITY_QUESTION_RE = /^(?:(?:does|can|will|do)\s+(?:dql|you|this\s+(?:system|assistant|app(?:lication)?|product))\s+(?:support\b[^?.!]*\b(?:mask(?:ing)?|redact(?:ion|ed)?|tokeni[sz](?:e|ation)|protect(?:ion|ed)?|handling|storage|retention|access\s+control(?:s)?|safeguard(?:s)?)\b|handle|protect|mask|redact|store|retain|tokeni[sz]e)\b[^?.!]*|how\s+(?:does|do)\s+(?:dql|you|this\s+(?:system|assistant|app(?:lication)?|product))\s+(?:handle|protect|mask|redact|store|retain|tokeni[sz]e)\b[^?.!]*|(?:what\s+(?:is|are)|describe|explain)\s+(?:dql(?:'s)?|your|this\s+(?:system|assistant|app(?:lication)?|product)(?:'s)?)\s+[^?.!]*\b(?:privacy|security|data\s+retention|masking|redaction|tokenization|access)\s+(?:policy|capabilit(?:y|ies))\b[^?.!]*)[?!.]?$/i;
|
|
11
|
+
const DISCLOSURE_ACTION_RE = /\b(?:show(?:ing)?|give|giving|list(?:ing)?|retrieve|retrieving|get(?:ting)?|reveal(?:ing)?|display(?:ing)?|provide|providing|disclose|disclosing|return(?:ing)?|output(?:ting)?|expose|exposing|fetch(?:ing)?|look\s*up|lookup|tell\s+me|need)\b/i;
|
|
12
|
+
const VALUE_REQUEST_SEMANTICS_RE = /\b(?:actual|full|specific|individual)\s+(?:value|values|number|numbers|record|records|details?|information)|\b(?:value|values|number|numbers|record|records|details?|information)\s+(?:for|of)\b/i;
|
|
13
|
+
/** Direct literal categories that the value-probe deny policy also protects. */
|
|
14
|
+
const SENSITIVE_PERSONAL_DATA_RE = /\b(?:credit\s*card|debit\s*card|card\s*(?:number|no\.?|details?)|cvv|cvc|iban|swift|bic|routing\s*(?:number|no\.?)|bank\s*account|account\s*(?:number|no\.?)|sort\s*code|medical|diagnosis|patient|health\s*(?:condition|record|information|data)?|insurance|prescription|disability|biometric|fingerprint|home\s*address|street(?:\s*(?:address|name))?|postal\s*code|post\s*code|zip\s*code|zipcode|phone(?:\s*(?:number|no\.?))?|mobile(?:\s*(?:number|no\.?))?|telephone|email(?:\s*address)?|race|ethnicity|religion|gender|sexual\s*orientation)\b/i;
|
|
15
|
+
const COMPENSATION_RE = /\b(?:salary|compensation|pay|wage|bonus|earnings)\b/i;
|
|
16
|
+
const INDIVIDUAL_SUBJECT_RE = /\b(?:ceo|cfo|coo|cto|chief\s+\w+\s+officer|founder|employee|person|individual|manager|director|executive|their|his|her)\b/i;
|
|
17
|
+
const NAMED_INDIVIDUAL_REFERENCE_RE = /\b(?:for|to|of)\s+[A-Z][a-z]+(?:\s+[A-Z][a-z]+){0,2}\b|\b[A-Z][a-z]+(?:\s+[A-Z][a-z]+){0,2}(?:'s|’s)\b/;
|
|
18
|
+
// `number` only counts as an aggregate when it is the phrase "number of".
|
|
19
|
+
// Otherwise a literal such as "bank account number" would accidentally become
|
|
20
|
+
// a safe aggregate. The same rule excludes a bare `account` from the
|
|
21
|
+
// population list; a grouped account question still has an explicit `by …`.
|
|
22
|
+
const AGGREGATE_OPERATION_RE = /\b(?:average|avg|median|mean|total|sum|count|number\s+of|how\s+many|percentage|percent|rate|distribution|breakdown|aggregate|overall)\b/i;
|
|
23
|
+
const AGGREGATE_POPULATION_OR_GROUPING_RE = /\b(?:by\s+(?:department|team|role|level|location|region|country|segment|category|month|quarter|year)|across\s+(?:employees?|customers?|people|individuals?|patients?|members?|users?)|(?:employees?|customers?|people|individuals?|patients?|members?|users?)\b)/i;
|
|
24
|
+
const INDIVIDUAL_EARNINGS_QUESTION_RE = /\b(?:how\s+much\s+(?:does|did)\s+(?:the\s+)?(?:ceo|cfo|coo|cto|chief\s+\w+\s+officer|founder|employee|person|individual|manager|director|executive)|what\s+(?:does|did)\s+(?:the\s+)?(?:ceo|cfo|coo|cto|chief\s+\w+\s+officer|founder|employee|person|individual|manager|director|executive))\b[^?.!]{0,32}\b(?:make|earn)\b/i;
|
|
25
|
+
function isExplicitSystemPolicyOrCapabilityQuestion(question) {
|
|
26
|
+
// A question may start as a capability request and still smuggle in an
|
|
27
|
+
// individual disclosure request: "Does DQL support showing Jessica's SSN
|
|
28
|
+
// with masking?". System safeguards describe product behaviour; they never
|
|
29
|
+
// authorize a value, person, or disclosure verb in the same request.
|
|
30
|
+
return EXPLICIT_SYSTEM_POLICY_OR_CAPABILITY_QUESTION_RE.test(question)
|
|
31
|
+
&& !DISCLOSURE_ACTION_RE.test(question)
|
|
32
|
+
&& !VALUE_REQUEST_SEMANTICS_RE.test(question)
|
|
33
|
+
&& !namesAnIndividual(question);
|
|
34
|
+
}
|
|
35
|
+
function isExplicitPopulationAggregate(question) {
|
|
36
|
+
return AGGREGATE_OPERATION_RE.test(question) && AGGREGATE_POPULATION_OR_GROUPING_RE.test(question);
|
|
37
|
+
}
|
|
38
|
+
function namesAnIndividual(question) {
|
|
39
|
+
return INDIVIDUAL_SUBJECT_RE.test(question) || NAMED_INDIVIDUAL_REFERENCE_RE.test(question);
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Evaluate a raw Ask question at the ingress boundary.
|
|
43
|
+
*
|
|
44
|
+
* Direct personal data and compensation are unavailable before planning. A
|
|
45
|
+
* narrowly explicit population aggregate remains available, but aggregate
|
|
46
|
+
* words never turn a named or singular person's compensation into a safe
|
|
47
|
+
* request.
|
|
48
|
+
*/
|
|
49
|
+
export function evaluateAnalyticalRequestPolicy(question) {
|
|
50
|
+
const normalized = question.trim();
|
|
51
|
+
if (!normalized)
|
|
52
|
+
return { allowed: true };
|
|
53
|
+
const isSystemPolicyQuestion = isExplicitSystemPolicyOrCapabilityQuestion(normalized);
|
|
54
|
+
const isPopulationAggregate = isExplicitPopulationAggregate(normalized);
|
|
55
|
+
if (REGULATED_IDENTIFIER_RE.test(normalized) && !isSystemPolicyQuestion) {
|
|
56
|
+
return {
|
|
57
|
+
allowed: false,
|
|
58
|
+
code: 'REGULATED_IDENTIFIER_REQUEST',
|
|
59
|
+
message: 'DQL cannot retrieve or disclose regulated personal identifiers such as government IDs or dates of birth.',
|
|
60
|
+
nextActions: ['ask_for_an_approved_aggregate', 'inspect_data_policy'],
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
if (SENSITIVE_PERSONAL_DATA_RE.test(normalized) && !isSystemPolicyQuestion && !isPopulationAggregate) {
|
|
64
|
+
return {
|
|
65
|
+
allowed: false,
|
|
66
|
+
code: 'SENSITIVE_PERSONAL_DATA_REQUEST',
|
|
67
|
+
message: 'DQL cannot retrieve or disclose direct payment, health, contact, or protected-attribute data about an individual.',
|
|
68
|
+
nextActions: ['ask_for_an_approved_aggregate', 'inspect_data_policy'],
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
if ((COMPENSATION_RE.test(normalized) || INDIVIDUAL_EARNINGS_QUESTION_RE.test(normalized))
|
|
72
|
+
&& (!isPopulationAggregate || namesAnIndividual(normalized))) {
|
|
73
|
+
return {
|
|
74
|
+
allowed: false,
|
|
75
|
+
code: 'INDIVIDUAL_COMPENSATION_REQUEST',
|
|
76
|
+
message: 'DQL does not provide individual compensation. Ask for an approved aggregate if one is modeled.',
|
|
77
|
+
nextActions: ['ask_for_an_approved_aggregate', 'inspect_data_policy'],
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
return { allowed: true };
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=analytical-request-policy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analytical-request-policy.js","sourceRoot":"","sources":["../src/analytical-request-policy.ts"],"names":[],"mappings":"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"}
|
|
@@ -95,6 +95,19 @@ export declare function renderAnalyticalFactBrief(input: {
|
|
|
95
95
|
* verified — the validator resolves every id against the fact map — so a strict
|
|
96
96
|
* JSON contract is the only shape that can be checked rather than trusted.
|
|
97
97
|
*/
|
|
98
|
+
/**
|
|
99
|
+
* How many output tokens the verified-facts narrator needs for a result.
|
|
100
|
+
*
|
|
101
|
+
* The contract makes every claim echo the fact ids it rests on, and a fact id
|
|
102
|
+
* is a long hex string that tokenizes badly — so the ceiling has to grow with
|
|
103
|
+
* the result. At a flat 350 a ten-row answer was cut off mid-word
|
|
104
|
+
* ("...Elizabeth Shea (875), and Dyl"), the JSON never closed, BOTH attempts
|
|
105
|
+
* failed as UNPARSEABLE_CLAIMS, and the reader got the deterministic row dump
|
|
106
|
+
* under "Verified narration was unavailable". Nothing in CI caught it because
|
|
107
|
+
* the gate never reaches a model; this function exists so the arithmetic is
|
|
108
|
+
* testable without one.
|
|
109
|
+
*/
|
|
110
|
+
export declare function narrationMaxTokensForFacts(factCount: number): number;
|
|
98
111
|
export declare function parseAnalyticalNarrativeClaims(raw: string): AnalyticalNarrativeClaimV1[] | undefined;
|
|
99
112
|
export interface ComposedAnalyticalNarrative {
|
|
100
113
|
narrative: AnalyticalNarrativeV1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analytical-result-facts.d.ts","sourceRoot":"","sources":["../src/analytical-result-facts.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"analytical-result-facts.d.ts","sourceRoot":"","sources":["../src/analytical-result-facts.ts"],"names":[],"mappings":"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"}
|
|
@@ -306,6 +306,21 @@ export function renderAnalyticalFactBrief(input) {
|
|
|
306
306
|
* verified — the validator resolves every id against the fact map — so a strict
|
|
307
307
|
* JSON contract is the only shape that can be checked rather than trusted.
|
|
308
308
|
*/
|
|
309
|
+
/**
|
|
310
|
+
* How many output tokens the verified-facts narrator needs for a result.
|
|
311
|
+
*
|
|
312
|
+
* The contract makes every claim echo the fact ids it rests on, and a fact id
|
|
313
|
+
* is a long hex string that tokenizes badly — so the ceiling has to grow with
|
|
314
|
+
* the result. At a flat 350 a ten-row answer was cut off mid-word
|
|
315
|
+
* ("...Elizabeth Shea (875), and Dyl"), the JSON never closed, BOTH attempts
|
|
316
|
+
* failed as UNPARSEABLE_CLAIMS, and the reader got the deterministic row dump
|
|
317
|
+
* under "Verified narration was unavailable". Nothing in CI caught it because
|
|
318
|
+
* the gate never reaches a model; this function exists so the arithmetic is
|
|
319
|
+
* testable without one.
|
|
320
|
+
*/
|
|
321
|
+
export function narrationMaxTokensForFacts(factCount) {
|
|
322
|
+
return Math.min(1600, 350 + Math.max(0, factCount) * 45);
|
|
323
|
+
}
|
|
309
324
|
export function parseAnalyticalNarrativeClaims(raw) {
|
|
310
325
|
const fenced = raw.match(/```(?:json)?\s*([\s\S]*?)```/);
|
|
311
326
|
const candidate = (fenced ? fenced[1] : raw).trim();
|
|
@@ -395,6 +410,9 @@ export async function composeVerifiedAnalyticalNarrative(input) {
|
|
|
395
410
|
}
|
|
396
411
|
const claims = parseAnalyticalNarrativeClaims(raw);
|
|
397
412
|
if (!claims) {
|
|
413
|
+
if (process.env.DQL_ORCHESTRATOR_TRACE) {
|
|
414
|
+
console.warn(`[dql] narration unparseable (attempt ${attempt}) len=${raw.length} tail="${raw.slice(-220).replace(/\n/g, '\\n')}"`);
|
|
415
|
+
}
|
|
398
416
|
correction = 'The response was not the required JSON claims object.';
|
|
399
417
|
failures.push('UNPARSEABLE_CLAIMS');
|
|
400
418
|
continue;
|
|
@@ -456,7 +474,25 @@ function isExactZero(value) {
|
|
|
456
474
|
return (typeof value === 'number' && value === 0) || (typeof value === 'bigint' && value === 0n) || (typeof value === 'string' && /^[+-]?0+(?:\.0+)?$/.test(value.trim()));
|
|
457
475
|
}
|
|
458
476
|
function numericTokens(value) {
|
|
459
|
-
return value.match(/-?\d+(?:,\d{3})*(?:\.\d+)?%?/g)
|
|
477
|
+
return value.match(/-?\d+(?:,\d{3})*(?:\.\d+)?%?/g)
|
|
478
|
+
?.map((token) => normalizeNumericToken(token.replace(/,/g, '').replace(/%$/, ''))) ?? [];
|
|
479
|
+
}
|
|
480
|
+
/**
|
|
481
|
+
* Compare numbers by VALUE, not by spelling.
|
|
482
|
+
*
|
|
483
|
+
* `2004` and `2004.00` are the same number, but string equality called the
|
|
484
|
+
* second one unsupported — so a narration written as "$2,004.00", which is
|
|
485
|
+
* exactly how the results table renders it, was rejected against a fact stored
|
|
486
|
+
* as `2004`. Two such rejections and the reader gets the deterministic row dump
|
|
487
|
+
* with "Verified narration was unavailable" on top, for a sentence whose
|
|
488
|
+
* numbers were all correct.
|
|
489
|
+
*
|
|
490
|
+
* This does not weaken the check: 2004 still fails against 2005. It only stops
|
|
491
|
+
* formatting from masquerading as a factual error.
|
|
492
|
+
*/
|
|
493
|
+
function normalizeNumericToken(token) {
|
|
494
|
+
const parsed = Number(token);
|
|
495
|
+
return Number.isFinite(parsed) ? String(parsed) : token;
|
|
460
496
|
}
|
|
461
497
|
function hash(value) {
|
|
462
498
|
return createHash('sha256').update(value).digest('hex');
|