@duckcodeailabs/dql-agent 1.6.31 → 1.6.33
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 +42 -6
- package/dist/agent-run-engine.d.ts.map +1 -1
- package/dist/agent-run-engine.js +133 -79
- 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 +72 -5
- package/dist/agent-run-gates.js.map +1 -1
- package/dist/agent-run-planner.d.ts.map +1 -1
- package/dist/agent-run-planner.js +13 -0
- package/dist/agent-run-planner.js.map +1 -1
- package/dist/answer-loop.d.ts +110 -8
- package/dist/answer-loop.d.ts.map +1 -1
- package/dist/answer-loop.js +1679 -1299
- package/dist/answer-loop.js.map +1 -1
- package/dist/answer-shape.d.ts +16 -0
- package/dist/answer-shape.d.ts.map +1 -0
- package/dist/answer-shape.js +85 -0
- package/dist/answer-shape.js.map +1 -0
- package/dist/cascade/budgets.d.ts +101 -0
- package/dist/cascade/budgets.d.ts.map +1 -0
- package/dist/cascade/budgets.js +184 -0
- package/dist/cascade/budgets.js.map +1 -0
- package/dist/cascade/cascade.d.ts +86 -0
- package/dist/cascade/cascade.d.ts.map +1 -0
- package/dist/cascade/cascade.js +115 -0
- package/dist/cascade/cascade.js.map +1 -0
- package/dist/cascade/route-policy.d.ts +14 -0
- package/dist/cascade/route-policy.d.ts.map +1 -0
- package/dist/cascade/route-policy.js +48 -0
- package/dist/cascade/route-policy.js.map +1 -0
- package/dist/cascade/triage.d.ts +20 -0
- package/dist/cascade/triage.d.ts.map +1 -0
- package/dist/cascade/triage.js +25 -0
- package/dist/cascade/triage.js.map +1 -0
- package/dist/conversation/rolling-summary.d.ts +13 -0
- package/dist/conversation/rolling-summary.d.ts.map +1 -0
- package/dist/conversation/rolling-summary.js +43 -0
- package/dist/conversation/rolling-summary.js.map +1 -0
- package/dist/conversation/session-store.d.ts +110 -0
- package/dist/conversation/session-store.d.ts.map +1 -0
- package/dist/conversation/session-store.js +387 -0
- package/dist/conversation/session-store.js.map +1 -0
- package/dist/conversation/snapshot.d.ts +59 -0
- package/dist/conversation/snapshot.d.ts.map +1 -0
- package/dist/conversation/snapshot.js +153 -0
- package/dist/conversation/snapshot.js.map +1 -0
- package/dist/conversation/working-state.d.ts +49 -0
- package/dist/conversation/working-state.d.ts.map +1 -0
- package/dist/conversation/working-state.js +249 -0
- package/dist/conversation/working-state.js.map +1 -0
- package/dist/embeddings/provider.d.ts +62 -0
- package/dist/embeddings/provider.d.ts.map +1 -1
- package/dist/embeddings/provider.js +98 -0
- package/dist/embeddings/provider.js.map +1 -1
- package/dist/grounding/context-ledger.d.ts +30 -0
- package/dist/grounding/context-ledger.d.ts.map +1 -0
- package/dist/grounding/context-ledger.js +54 -0
- package/dist/grounding/context-ledger.js.map +1 -0
- package/dist/grounding/regrounding.d.ts +24 -0
- package/dist/grounding/regrounding.d.ts.map +1 -0
- package/dist/grounding/regrounding.js +219 -0
- package/dist/grounding/regrounding.js.map +1 -0
- package/dist/grounding/value-index.d.ts +32 -0
- package/dist/grounding/value-index.d.ts.map +1 -0
- package/dist/grounding/value-index.js +67 -0
- package/dist/grounding/value-index.js.map +1 -0
- package/dist/index.d.ts +45 -14
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +102 -11
- package/dist/index.js.map +1 -1
- package/dist/intent-controller.d.ts +7 -0
- package/dist/intent-controller.d.ts.map +1 -1
- package/dist/intent-controller.js +22 -1
- package/dist/intent-controller.js.map +1 -1
- package/dist/kg/build.d.ts.map +1 -1
- package/dist/kg/build.js +44 -17
- package/dist/kg/build.js.map +1 -1
- package/dist/kg/sqlite-fts.d.ts +3 -1
- package/dist/kg/sqlite-fts.d.ts.map +1 -1
- package/dist/kg/sqlite-fts.js +16 -2
- package/dist/kg/sqlite-fts.js.map +1 -1
- package/dist/kg/types.d.ts +23 -1
- package/dist/kg/types.d.ts.map +1 -1
- package/dist/memory/fts-query.d.ts +7 -0
- package/dist/memory/fts-query.d.ts.map +1 -0
- package/dist/memory/fts-query.js +36 -0
- package/dist/memory/fts-query.js.map +1 -0
- package/dist/memory/sqlite-memory.d.ts.map +1 -1
- package/dist/memory/sqlite-memory.js +1 -30
- package/dist/memory/sqlite-memory.js.map +1 -1
- package/dist/metadata/analysis-planner.d.ts +23 -0
- package/dist/metadata/analysis-planner.d.ts.map +1 -1
- package/dist/metadata/analysis-planner.js +432 -2
- package/dist/metadata/analysis-planner.js.map +1 -1
- package/dist/metadata/block-fit.d.ts +24 -0
- package/dist/metadata/block-fit.d.ts.map +1 -0
- package/dist/metadata/block-fit.js +373 -0
- package/dist/metadata/block-fit.js.map +1 -0
- package/dist/metadata/catalog.d.ts +72 -3
- package/dist/metadata/catalog.d.ts.map +1 -1
- package/dist/metadata/catalog.js +1452 -72
- package/dist/metadata/catalog.js.map +1 -1
- package/dist/metadata/drafts.d.ts +25 -0
- package/dist/metadata/drafts.d.ts.map +1 -1
- package/dist/metadata/drafts.js +112 -2
- package/dist/metadata/drafts.js.map +1 -1
- package/dist/metadata/metric-match.d.ts +55 -6
- package/dist/metadata/metric-match.d.ts.map +1 -1
- package/dist/metadata/metric-match.js +158 -13
- package/dist/metadata/metric-match.js.map +1 -1
- package/dist/metadata/sql-context-validation.d.ts +13 -1
- package/dist/metadata/sql-context-validation.d.ts.map +1 -1
- package/dist/metadata/sql-context-validation.js +172 -19
- package/dist/metadata/sql-context-validation.js.map +1 -1
- package/dist/metadata/sql-retrieval.d.ts +3 -2
- package/dist/metadata/sql-retrieval.d.ts.map +1 -1
- package/dist/metadata/sql-retrieval.js +6 -4
- package/dist/metadata/sql-retrieval.js.map +1 -1
- package/dist/providers/claude.d.ts +2 -1
- package/dist/providers/claude.d.ts.map +1 -1
- package/dist/providers/claude.js +95 -0
- package/dist/providers/claude.js.map +1 -1
- package/dist/providers/index.d.ts +1 -1
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/openai.d.ts +2 -1
- package/dist/providers/openai.d.ts.map +1 -1
- package/dist/providers/openai.js +143 -0
- package/dist/providers/openai.js.map +1 -1
- package/dist/providers/tool-output.d.ts +2 -0
- package/dist/providers/tool-output.d.ts.map +1 -0
- package/dist/providers/tool-output.js +22 -0
- package/dist/providers/tool-output.js.map +1 -0
- package/dist/providers/types.d.ts +23 -0
- package/dist/providers/types.d.ts.map +1 -1
- package/dist/providers/types.js.map +1 -1
- package/dist/semantic-bridge/compose.d.ts +89 -0
- package/dist/semantic-bridge/compose.d.ts.map +1 -0
- package/dist/semantic-bridge/compose.js +528 -0
- package/dist/semantic-bridge/compose.js.map +1 -0
- package/dist/semantic-bridge/member-select.d.ts +23 -0
- package/dist/semantic-bridge/member-select.d.ts.map +1 -0
- package/dist/semantic-bridge/member-select.js +106 -0
- package/dist/semantic-bridge/member-select.js.map +1 -0
- package/dist/skills/defaults.d.ts.map +1 -1
- package/dist/skills/defaults.js +5 -0
- package/dist/skills/defaults.js.map +1 -1
- package/dist/synthesize.d.ts +26 -0
- package/dist/synthesize.d.ts.map +1 -1
- package/dist/synthesize.js +72 -3
- package/dist/synthesize.js.map +1 -1
- package/dist/tools/registry.d.ts +15 -0
- package/dist/tools/registry.d.ts.map +1 -0
- package/dist/tools/registry.js +692 -0
- package/dist/tools/registry.js.map +1 -0
- package/dist/trust/stamp.d.ts +26 -0
- package/dist/trust/stamp.d.ts.map +1 -0
- package/dist/trust/stamp.js +33 -0
- package/dist/trust/stamp.js.map +1 -0
- package/package.json +4 -4
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
export async function selectSemanticMembersViaLlm(input) {
|
|
2
|
+
const metrics = input.semanticLayer.listMetrics();
|
|
3
|
+
if (metrics.length === 0)
|
|
4
|
+
return undefined;
|
|
5
|
+
const dimensions = input.semanticLayer.listDimensions();
|
|
6
|
+
const timeDimensions = input.semanticLayer.listTimeDimensions?.() ?? dimensions.filter((dimension) => dimension.isTimeDimension);
|
|
7
|
+
const catalog = [
|
|
8
|
+
'METRICS:',
|
|
9
|
+
...metrics.slice(0, 60).map((metric) => `- ${metric.name}${metric.label && metric.label !== metric.name ? ` (${metric.label})` : ''}${metric.description ? `: ${metric.description}` : ''}`),
|
|
10
|
+
'DIMENSIONS:',
|
|
11
|
+
...dimensions.slice(0, 80).map((dimension) => `- ${dimension.name}${dimension.label && dimension.label !== dimension.name ? ` (${dimension.label})` : ''}`),
|
|
12
|
+
...(timeDimensions.length > 0 ? ['TIME DIMENSIONS (use for grain):', ...timeDimensions.slice(0, 20).map((dimension) => `- ${dimension.name}`)] : []),
|
|
13
|
+
].join('\n');
|
|
14
|
+
const messages = [
|
|
15
|
+
{
|
|
16
|
+
role: 'system',
|
|
17
|
+
content: [
|
|
18
|
+
'You select governed semantic members to answer an analytics question. Choose ONLY from the metrics and dimensions listed — never invent names.',
|
|
19
|
+
'Respond with a SINGLE json object, no prose, no code fences other than one ```json block:',
|
|
20
|
+
'{"metrics": string[], "dimensions"?: string[], "timeDimension"?: {"name": string, "granularity": "day"|"week"|"month"|"quarter"|"year"}, "filters"?: [{"dimension": string, "operator": "equals"|"in", "values": string[]}], "limit"?: number}',
|
|
21
|
+
'If no listed metric can answer the question, return {"metrics": []}.',
|
|
22
|
+
].join('\n'),
|
|
23
|
+
},
|
|
24
|
+
{ role: 'user', content: `Question: ${input.question}\n\nAvailable governed members:\n${catalog}\n\nReturn the member selection as JSON.` },
|
|
25
|
+
];
|
|
26
|
+
let raw;
|
|
27
|
+
try {
|
|
28
|
+
raw = await input.provider.generate(messages, { signal: input.signal, reasoningEffort: input.reasoningEffort });
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
return undefined;
|
|
32
|
+
}
|
|
33
|
+
const parsed = extractFirstJsonObject(raw);
|
|
34
|
+
if (!parsed || typeof parsed !== 'object')
|
|
35
|
+
return undefined;
|
|
36
|
+
const record = parsed;
|
|
37
|
+
const selectedMetrics = Array.isArray(record.metrics)
|
|
38
|
+
? record.metrics.filter((value) => typeof value === 'string' && value.trim().length > 0)
|
|
39
|
+
: [];
|
|
40
|
+
if (selectedMetrics.length === 0)
|
|
41
|
+
return undefined;
|
|
42
|
+
const selection = { metrics: selectedMetrics };
|
|
43
|
+
if (Array.isArray(record.dimensions)) {
|
|
44
|
+
selection.dimensions = record.dimensions.filter((value) => typeof value === 'string' && value.trim().length > 0);
|
|
45
|
+
}
|
|
46
|
+
const timeDim = record.timeDimension;
|
|
47
|
+
if (timeDim && typeof timeDim === 'object' && typeof timeDim.name === 'string' && typeof timeDim.granularity === 'string') {
|
|
48
|
+
selection.timeDimension = { name: timeDim.name, granularity: timeDim.granularity };
|
|
49
|
+
}
|
|
50
|
+
if (Array.isArray(record.filters)) {
|
|
51
|
+
const filters = record.filters
|
|
52
|
+
.map((entry) => entry)
|
|
53
|
+
.filter((entry) => entry && typeof entry.dimension === 'string' && Array.isArray(entry.values))
|
|
54
|
+
.map((entry) => ({
|
|
55
|
+
dimension: entry.dimension,
|
|
56
|
+
operator: (entry.operator === 'in' ? 'in' : 'equals'),
|
|
57
|
+
values: entry.values.filter((value) => typeof value === 'string'),
|
|
58
|
+
}))
|
|
59
|
+
.filter((filter) => filter.values.length > 0);
|
|
60
|
+
if (filters.length > 0)
|
|
61
|
+
selection.filters = filters;
|
|
62
|
+
}
|
|
63
|
+
if (typeof record.limit === 'number' && Number.isFinite(record.limit) && record.limit > 0) {
|
|
64
|
+
selection.limit = Math.floor(record.limit);
|
|
65
|
+
}
|
|
66
|
+
return selection;
|
|
67
|
+
}
|
|
68
|
+
/** Extract the first balanced JSON object from model text (tolerant of fences/prose). */
|
|
69
|
+
export function extractFirstJsonObject(raw) {
|
|
70
|
+
const trimmed = raw.trim().replace(/^```(?:json)?/i, '').replace(/```$/i, '').trim();
|
|
71
|
+
const start = trimmed.indexOf('{');
|
|
72
|
+
if (start < 0)
|
|
73
|
+
return undefined;
|
|
74
|
+
let depth = 0;
|
|
75
|
+
let inString = false;
|
|
76
|
+
let escaped = false;
|
|
77
|
+
for (let i = start; i < trimmed.length; i += 1) {
|
|
78
|
+
const char = trimmed[i];
|
|
79
|
+
if (inString) {
|
|
80
|
+
if (escaped)
|
|
81
|
+
escaped = false;
|
|
82
|
+
else if (char === '\\')
|
|
83
|
+
escaped = true;
|
|
84
|
+
else if (char === '"')
|
|
85
|
+
inString = false;
|
|
86
|
+
continue;
|
|
87
|
+
}
|
|
88
|
+
if (char === '"')
|
|
89
|
+
inString = true;
|
|
90
|
+
else if (char === '{')
|
|
91
|
+
depth += 1;
|
|
92
|
+
else if (char === '}') {
|
|
93
|
+
depth -= 1;
|
|
94
|
+
if (depth === 0) {
|
|
95
|
+
try {
|
|
96
|
+
return JSON.parse(trimmed.slice(start, i + 1));
|
|
97
|
+
}
|
|
98
|
+
catch {
|
|
99
|
+
return undefined;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
return undefined;
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=member-select.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"member-select.js","sourceRoot":"","sources":["../../src/semantic-bridge/member-select.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/skills/defaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAyB,KAAK,KAAK,EAAwB,MAAM,aAAa,CAAC;AAEtF,MAAM,WAAW,wBAAwB;IACvC;;;OAGG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED,MAAM,WAAW,uBAAuB;IACtC,uDAAuD;IACvD,OAAO,EAAE,KAAK,EAAE,CAAC;IACjB,8DAA8D;IAC9D,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;
|
|
1
|
+
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/skills/defaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAyB,KAAK,KAAK,EAAwB,MAAM,aAAa,CAAC;AAEtF,MAAM,WAAW,wBAAwB;IACvC;;;OAGG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED,MAAM,WAAW,uBAAuB;IACtC,uDAAuD;IACvD,OAAO,EAAE,KAAK,EAAE,CAAC;IACjB,8DAA8D;IAC9D,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AA8JD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,wBAA6B,GACrC,uBAAuB,CAmBzB"}
|
package/dist/skills/defaults.js
CHANGED
|
@@ -93,6 +93,11 @@ function sqlConventionsSkill() {
|
|
|
93
93
|
' In ad-hoc CELL SQL, use the fully-qualified relation `database.schema.table`. Never a bare model name.',
|
|
94
94
|
'- **Prefer certified blocks.** When a certified block answers the question at the right grain, reuse it',
|
|
95
95
|
' instead of regenerating SQL.',
|
|
96
|
+
'- **Prove the answer contract before reusing a block.** Decompose the question into metric, grain,',
|
|
97
|
+
' dimensions, filters, ranking direction, top-N, and required output columns. A certified block is',
|
|
98
|
+
' trusted only when those pieces match; otherwise use it as context and generate review-required SQL.',
|
|
99
|
+
'- **Preserve follow-up context.** Resolve phrases like "these categories" or "those products" against',
|
|
100
|
+
' the prior result values, and carry forward the prior measure unless the user asks for a new one.',
|
|
96
101
|
'- **Exclude test / internal accounts *only when a flag column exists in the grounded schema*.**',
|
|
97
102
|
' If a test/internal flag is present (e.g. an `is_test`, `is_internal`, or `is_test_account` column),',
|
|
98
103
|
' filter it out unless the question asks for those records. NEVER add a filter on a column that is not',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/skills/defaults.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/skills/defaults.ts"],"names":[],"mappings":"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"}
|
package/dist/synthesize.d.ts
CHANGED
|
@@ -19,7 +19,33 @@ export interface SynthesizeResultPreview {
|
|
|
19
19
|
columns: string[];
|
|
20
20
|
rows: Array<Record<string, unknown>>;
|
|
21
21
|
rowCount: number;
|
|
22
|
+
/**
|
|
23
|
+
* Deterministic statistics computed over the FULL result (not the sampled
|
|
24
|
+
* rows above). The narrator must source every aggregate claim (ranges,
|
|
25
|
+
* totals, "all rows are X") from these — a sample described as the
|
|
26
|
+
* population is the last hallucination surface in the pipeline.
|
|
27
|
+
*/
|
|
28
|
+
stats?: SynthesizeColumnStat[];
|
|
22
29
|
}
|
|
30
|
+
export interface SynthesizeColumnStat {
|
|
31
|
+
column: string;
|
|
32
|
+
kind: 'numeric' | 'categorical';
|
|
33
|
+
min?: number;
|
|
34
|
+
max?: number;
|
|
35
|
+
sum?: number;
|
|
36
|
+
distinctCount?: number;
|
|
37
|
+
/** Top distinct values with occurrence counts (low-cardinality columns only). */
|
|
38
|
+
values?: Array<{
|
|
39
|
+
value: string;
|
|
40
|
+
count: number;
|
|
41
|
+
}>;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Compute verified per-column statistics over the FULL result set so narration
|
|
45
|
+
* never has to derive aggregates from a truncated sample. Deterministic and
|
|
46
|
+
* cheap (single pass, capped).
|
|
47
|
+
*/
|
|
48
|
+
export declare function computeResultStats(columns: string[], rows: Array<Record<string, unknown>>): SynthesizeColumnStat[];
|
|
23
49
|
export interface SynthesizeInput {
|
|
24
50
|
question: string;
|
|
25
51
|
/** Router/metadata category, if known (drives the default format). */
|
package/dist/synthesize.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"synthesize.d.ts","sourceRoot":"","sources":["../src/synthesize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,YAAY,GAAG,UAAU,GAAG,OAAO,CAAC;AAE7E,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACrC,QAAQ,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"synthesize.d.ts","sourceRoot":"","sources":["../src/synthesize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,YAAY,GAAG,UAAU,GAAG,OAAO,CAAC;AAE7E,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,oBAAoB,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,SAAS,GAAG,aAAa,CAAC;IAChC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iFAAiF;IACjF,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EAAE,EACjB,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GACnC,oBAAoB,EAAE,CAoCxB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,sEAAsE;IACtE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,SAAS,GAAG,aAAa,CAAC;IACrC,+EAA+E;IAC/E,aAAa,CAAC,EAAE,uBAAuB,CAAC;IACxC,8DAA8D;IAC9D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,8CAA8C;IAC9C,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,mEAAmE;AACnE,MAAM,MAAM,oBAAoB,GAAG,CAAC,KAAK,EAAE;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAEtB,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,uEAAuE;IACvE,MAAM,CAAC,EAAE,eAAe,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,eAAe,CAAC;IACxB,MAAM,EAAE,KAAK,GAAG,eAAe,CAAC;CACjC;AAKD,2EAA2E;AAC3E,wBAAgB,WAAW,CAAC,KAAK,EAAE,eAAe,GAAG,eAAe,CAOnE;AA4GD;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAiBzH"}
|
package/dist/synthesize.js
CHANGED
|
@@ -14,6 +14,51 @@
|
|
|
14
14
|
* Provider-agnostic and offline-safe: the completion is injected (like `narrate`),
|
|
15
15
|
* and any failure falls back to a deterministic reply built from the draft + rows.
|
|
16
16
|
*/
|
|
17
|
+
/**
|
|
18
|
+
* Compute verified per-column statistics over the FULL result set so narration
|
|
19
|
+
* never has to derive aggregates from a truncated sample. Deterministic and
|
|
20
|
+
* cheap (single pass, capped).
|
|
21
|
+
*/
|
|
22
|
+
export function computeResultStats(columns, rows) {
|
|
23
|
+
const scanned = rows.slice(0, 10_000);
|
|
24
|
+
const stats = [];
|
|
25
|
+
for (const column of columns.slice(0, 16)) {
|
|
26
|
+
let min;
|
|
27
|
+
let max;
|
|
28
|
+
let sum = 0;
|
|
29
|
+
let numericCount = 0;
|
|
30
|
+
const distinct = new Map();
|
|
31
|
+
for (const row of scanned) {
|
|
32
|
+
const value = row[column];
|
|
33
|
+
if (typeof value === 'number' && Number.isFinite(value)) {
|
|
34
|
+
numericCount += 1;
|
|
35
|
+
sum += value;
|
|
36
|
+
min = min === undefined ? value : Math.min(min, value);
|
|
37
|
+
max = max === undefined ? value : Math.max(max, value);
|
|
38
|
+
}
|
|
39
|
+
else if (typeof value === 'string' && value.trim()) {
|
|
40
|
+
if (distinct.size <= 48)
|
|
41
|
+
distinct.set(value, (distinct.get(value) ?? 0) + 1);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
if (numericCount > 0 && numericCount >= scanned.length / 2) {
|
|
45
|
+
stats.push({ column, kind: 'numeric', min, max, sum: Number(sum.toFixed(4)) });
|
|
46
|
+
}
|
|
47
|
+
else if (distinct.size > 0) {
|
|
48
|
+
stats.push({
|
|
49
|
+
column,
|
|
50
|
+
kind: 'categorical',
|
|
51
|
+
distinctCount: distinct.size,
|
|
52
|
+
values: distinct.size <= 12
|
|
53
|
+
? [...distinct.entries()]
|
|
54
|
+
.sort((a, b) => b[1] - a[1])
|
|
55
|
+
.map(([value, count]) => ({ value, count }))
|
|
56
|
+
: undefined,
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
return stats;
|
|
61
|
+
}
|
|
17
62
|
const COMPARISON_RE = /\b(compare|versus|vs\.?|by |per |breakdown|break down|top \d+|rank|distribution|segment|cohort|across)\b/i;
|
|
18
63
|
const RESEARCH_RE = /\b(why|driver|drivers|root cause|what happened|what changed|investigate|anomal|trend|explain)\b/i;
|
|
19
64
|
/** Pick the answer shape from category + question + result cardinality. */
|
|
@@ -32,7 +77,9 @@ export function inferFormat(input) {
|
|
|
32
77
|
function buildSystemPrompt(format, audience) {
|
|
33
78
|
const lines = [
|
|
34
79
|
"You compose the final answer a user reads in DQL, a governed analytics tool.",
|
|
35
|
-
"Use ONLY numbers that appear in the provided rows — never invent or
|
|
80
|
+
"Use ONLY numbers that appear in the provided rows or VERIFIED STATISTICS — never invent, estimate, or round beyond them.",
|
|
81
|
+
"The rows shown may be a SAMPLE of a larger result. Any aggregate claim — ranges (min/max), totals, counts, or 'all/most rows are X' — MUST come from the VERIFIED STATISTICS section when present. NEVER derive aggregates from the sample rows.",
|
|
82
|
+
"Do not do arithmetic in prose (no 'over 100', 'roughly', 'around'); quote exact values from the rows or statistics, or omit the claim.",
|
|
36
83
|
"Do NOT add trust disclaimers (e.g. 'uncertified', 'review required') — the UI shows a trust badge separately.",
|
|
37
84
|
"Do NOT say 'As an AI' or narrate your process. Be direct and concrete.",
|
|
38
85
|
];
|
|
@@ -74,11 +121,33 @@ function formatCell(value) {
|
|
|
74
121
|
return String(value);
|
|
75
122
|
return String(value).replace(/\|/g, "\\|");
|
|
76
123
|
}
|
|
124
|
+
function statsToText(stats, rowCount) {
|
|
125
|
+
if (!stats || stats.length === 0)
|
|
126
|
+
return undefined;
|
|
127
|
+
const lines = stats.slice(0, 16).map((stat) => {
|
|
128
|
+
if (stat.kind === 'numeric') {
|
|
129
|
+
return `- ${stat.column}: min ${stat.min}, max ${stat.max}, sum ${stat.sum}`;
|
|
130
|
+
}
|
|
131
|
+
const values = stat.values
|
|
132
|
+
? ` (${stat.values.slice(0, 12).map((entry) => `${entry.value}: ${entry.count}`).join(', ')})`
|
|
133
|
+
: '';
|
|
134
|
+
return `- ${stat.column}: ${stat.distinctCount} distinct value${stat.distinctCount === 1 ? '' : 's'}${values}`;
|
|
135
|
+
});
|
|
136
|
+
return `VERIFIED STATISTICS (computed over ALL ${rowCount} rows — the ONLY source for aggregate claims):\n${lines.join('\n')}`;
|
|
137
|
+
}
|
|
77
138
|
function buildUserPrompt(input) {
|
|
78
139
|
const lines = [];
|
|
79
140
|
lines.push(`Question: ${input.question}`);
|
|
80
|
-
if (input.resultPreview)
|
|
81
|
-
|
|
141
|
+
if (input.resultPreview) {
|
|
142
|
+
const shown = Math.min(input.resultPreview.rows.length, 20);
|
|
143
|
+
const sampleLabel = input.resultPreview.rowCount > shown
|
|
144
|
+
? `Result (${input.resultPreview.rowCount} rows total; SAMPLE of first ${shown} shown):`
|
|
145
|
+
: `Result (${input.resultPreview.rowCount} rows):`;
|
|
146
|
+
lines.push(`${sampleLabel}\n${previewToText(input.resultPreview)}`);
|
|
147
|
+
const statsText = statsToText(input.resultPreview.stats, input.resultPreview.rowCount);
|
|
148
|
+
if (statsText)
|
|
149
|
+
lines.push(statsText);
|
|
150
|
+
}
|
|
82
151
|
if (input.findings?.length)
|
|
83
152
|
lines.push(`Findings:\n${input.findings.map((f) => `- ${f}`).join("\n")}`);
|
|
84
153
|
if (input.gaps?.length)
|
package/dist/synthesize.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"synthesize.js","sourceRoot":"","sources":["../src/synthesize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;
|
|
1
|
+
{"version":3,"file":"synthesize.js","sourceRoot":"","sources":["../src/synthesize.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export type DqlToolSurface = 'mcp' | 'mcp_agentic' | 'native' | 'claude_code' | 'answer_loop';
|
|
2
|
+
export type JsonSchema = Record<string, unknown>;
|
|
3
|
+
export type DqlToolName = 'ask_dql' | 'query_semantic_model' | 'kg_search' | 'search_blocks' | 'get_block' | 'query_via_block' | 'inspect_metadata_context' | 'expand_context' | 'query_via_metadata' | 'answer_question' | 'build_block_from_prompt' | 'list_metrics' | 'list_dimensions' | 'lineage_impact' | 'certify' | 'suggest_block' | 'search_metadata' | 'get_table_schema' | 'validate_sql' | 'inspect_dql_project' | 'build_dql_block' | 'build_dql_app' | 'list_proposals' | 'feedback_record' | 'record_correction' | 'approve_hint' | 'list_hints';
|
|
4
|
+
export interface DqlToolDefinition {
|
|
5
|
+
name: DqlToolName;
|
|
6
|
+
description: string;
|
|
7
|
+
inputSchema: JsonSchema;
|
|
8
|
+
surfaces: readonly DqlToolSurface[];
|
|
9
|
+
}
|
|
10
|
+
export declare const DQL_TOOL_REGISTRY: readonly DqlToolDefinition[];
|
|
11
|
+
export declare function getDqlToolDefinition(name: DqlToolName): DqlToolDefinition;
|
|
12
|
+
export declare function dqlToolDefinitionsForSurface(surface: DqlToolSurface): DqlToolDefinition[];
|
|
13
|
+
export declare function dqlToolNamesForSurface(surface: DqlToolSurface): DqlToolName[];
|
|
14
|
+
export declare function dqlMcpToolNamesForSurface(surface: DqlToolSurface, prefix?: string): string[];
|
|
15
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,aAAa,GAAG,QAAQ,GAAG,aAAa,GAAG,aAAa,CAAC;AAE9F,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEjD,MAAM,MAAM,WAAW,GACnB,SAAS,GACT,sBAAsB,GACtB,WAAW,GACX,eAAe,GACf,WAAW,GACX,iBAAiB,GACjB,0BAA0B,GAC1B,gBAAgB,GAChB,oBAAoB,GACpB,iBAAiB,GACjB,yBAAyB,GACzB,cAAc,GACd,iBAAiB,GACjB,gBAAgB,GAChB,SAAS,GACT,eAAe,GACf,iBAAiB,GACjB,kBAAkB,GAClB,cAAc,GACd,qBAAqB,GACrB,iBAAiB,GACjB,eAAe,GACf,gBAAgB,GAChB,iBAAiB,GACjB,mBAAmB,GACnB,cAAc,GACd,YAAY,CAAC;AAEjB,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,WAAW,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,UAAU,CAAC;IACxB,QAAQ,EAAE,SAAS,cAAc,EAAE,CAAC;CACrC;AAmsBD,eAAO,MAAM,iBAAiB,EAAE,SAAS,iBAAiB,EAA0B,CAAC;AAErF,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,WAAW,GAAG,iBAAiB,CAIzE;AAED,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,cAAc,GAAG,iBAAiB,EAAE,CAEzF;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,cAAc,GAAG,WAAW,EAAE,CAE7E;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,SAAe,GAAG,MAAM,EAAE,CAElG"}
|