@duckcodeailabs/dql-agent 1.9.5 → 1.10.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 +13 -0
- package/dist/agent-run-engine.d.ts.map +1 -1
- package/dist/agent-run-engine.js +65 -2
- package/dist/agent-run-engine.js.map +1 -1
- package/dist/analytical-compatibility.d.ts +61 -0
- package/dist/analytical-compatibility.d.ts.map +1 -0
- package/dist/analytical-compatibility.js +515 -0
- package/dist/analytical-compatibility.js.map +1 -0
- package/dist/analytical-execution-graph.d.ts +174 -0
- package/dist/analytical-execution-graph.d.ts.map +1 -0
- package/dist/analytical-execution-graph.js +599 -0
- package/dist/analytical-execution-graph.js.map +1 -0
- package/dist/analytical-failure-repair.d.ts +91 -0
- package/dist/analytical-failure-repair.d.ts.map +1 -0
- package/dist/analytical-failure-repair.js +325 -0
- package/dist/analytical-failure-repair.js.map +1 -0
- package/dist/analytical-frame.d.ts +19 -0
- package/dist/analytical-frame.d.ts.map +1 -0
- package/dist/analytical-frame.js +299 -0
- package/dist/analytical-frame.js.map +1 -0
- package/dist/analytical-period-resolution.d.ts +53 -0
- package/dist/analytical-period-resolution.d.ts.map +1 -0
- package/dist/analytical-period-resolution.js +218 -0
- package/dist/analytical-period-resolution.js.map +1 -0
- package/dist/analytical-readiness.d.ts +17 -0
- package/dist/analytical-readiness.d.ts.map +1 -0
- package/dist/analytical-readiness.js +95 -0
- package/dist/analytical-readiness.js.map +1 -0
- package/dist/analytical-result-facts.d.ts +79 -0
- package/dist/analytical-result-facts.d.ts.map +1 -0
- package/dist/analytical-result-facts.js +301 -0
- package/dist/analytical-result-facts.js.map +1 -0
- package/dist/answer-loop.d.ts +82 -2
- package/dist/answer-loop.d.ts.map +1 -1
- package/dist/answer-loop.js +1129 -38
- package/dist/answer-loop.js.map +1 -1
- package/dist/embeddings/provider.d.ts +1 -1
- package/dist/embeddings/provider.d.ts.map +1 -1
- package/dist/embeddings/provider.js.map +1 -1
- package/dist/governed-relational-compiler.d.ts +189 -0
- package/dist/governed-relational-compiler.d.ts.map +1 -0
- package/dist/governed-relational-compiler.js +458 -0
- package/dist/governed-relational-compiler.js.map +1 -0
- package/dist/index.d.ts +25 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -4
- package/dist/index.js.map +1 -1
- package/dist/intent-controller.d.ts +5 -0
- package/dist/intent-controller.d.ts.map +1 -1
- package/dist/intent-controller.js.map +1 -1
- package/dist/kg/build.d.ts +2 -2
- package/dist/kg/build.d.ts.map +1 -1
- package/dist/kg/build.js +329 -9
- package/dist/kg/build.js.map +1 -1
- package/dist/meaning-resolution.d.ts +17 -0
- package/dist/meaning-resolution.d.ts.map +1 -1
- package/dist/meaning-resolution.js +83 -4
- package/dist/meaning-resolution.js.map +1 -1
- package/dist/metadata/analysis-planner.d.ts.map +1 -1
- package/dist/metadata/analysis-planner.js +37 -7
- package/dist/metadata/analysis-planner.js.map +1 -1
- package/dist/metadata/catalog.d.ts +86 -3
- package/dist/metadata/catalog.d.ts.map +1 -1
- package/dist/metadata/catalog.js +607 -36
- package/dist/metadata/catalog.js.map +1 -1
- package/dist/metadata/meaning-evidence.d.ts +18 -2
- package/dist/metadata/meaning-evidence.d.ts.map +1 -1
- package/dist/metadata/meaning-evidence.js +182 -7
- package/dist/metadata/meaning-evidence.js.map +1 -1
- package/dist/plan-execution-adapter.d.ts +131 -0
- package/dist/plan-execution-adapter.d.ts.map +1 -0
- package/dist/plan-execution-adapter.js +447 -0
- package/dist/plan-execution-adapter.js.map +1 -0
- package/dist/research-governance.d.ts +56 -0
- package/dist/research-governance.d.ts.map +1 -0
- package/dist/research-governance.js +68 -0
- package/dist/research-governance.js.map +1 -0
- package/dist/research-loop.d.ts +14 -0
- package/dist/research-loop.d.ts.map +1 -1
- package/dist/research-loop.js +77 -23
- package/dist/research-loop.js.map +1 -1
- package/dist/resolved-analytical-plan.d.ts +123 -0
- package/dist/resolved-analytical-plan.d.ts.map +1 -0
- package/dist/resolved-analytical-plan.js +400 -0
- package/dist/resolved-analytical-plan.js.map +1 -0
- package/dist/router.d.ts +3 -0
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +195 -25
- package/dist/router.js.map +1 -1
- package/dist/skills/loader.d.ts +17 -0
- package/dist/skills/loader.d.ts.map +1 -1
- package/dist/skills/loader.js +62 -4
- package/dist/skills/loader.js.map +1 -1
- package/package.json +4 -4
|
@@ -0,0 +1,458 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Constrained relational compiler. It accepts only qualified registry IDs and
|
|
3
|
+
* certified relationship proof; the model never writes relations, joins,
|
|
4
|
+
* columns, aliases, parameters, or SQL text.
|
|
5
|
+
*
|
|
6
|
+
* Acceptance: AGT-015, API-006.
|
|
7
|
+
*/
|
|
8
|
+
import { createHash } from 'node:crypto';
|
|
9
|
+
import { getDialect } from '@duckcodeailabs/dql-core';
|
|
10
|
+
export function buildGovernedRelationalRegistry(input) {
|
|
11
|
+
const provenance = Object.values(input.manifest?.dbtProvenance?.nodes ?? {});
|
|
12
|
+
const entities = Object.values(input.manifest?.modeling?.entities ?? {});
|
|
13
|
+
const relations = input.schemaContext.map((table) => {
|
|
14
|
+
const dbt = provenance.find((node) => node.relation === table.relation || node.name === table.name || node.name === table.relation);
|
|
15
|
+
const entity = dbt ? entities.find((candidate) => candidate.dbtUniqueId === dbt.uniqueId) : undefined;
|
|
16
|
+
const qualifiedId = dbt?.uniqueId ?? `runtime:relation:${table.relation}`;
|
|
17
|
+
return {
|
|
18
|
+
qualifiedId,
|
|
19
|
+
sqlName: table.relation,
|
|
20
|
+
entityId: entity?.qualifiedId ?? entity?.id,
|
|
21
|
+
identities: unique([qualifiedId, table.relation, table.name, dbt?.name, dbt ? `dbt:model:${dbt.name}` : undefined]),
|
|
22
|
+
columns: table.columns.map((column) => ({
|
|
23
|
+
qualifiedId: `dbt:column:${dbt?.name ?? table.name ?? table.relation}.${column.name}`,
|
|
24
|
+
name: column.name,
|
|
25
|
+
type: column.type,
|
|
26
|
+
description: column.description,
|
|
27
|
+
isTime: /(?:date|time|timestamp)/i.test(column.type ?? '') || /(?:^|_)(date|time|timestamp|month|week|year)(?:_|$)/i.test(column.name),
|
|
28
|
+
identities: unique([
|
|
29
|
+
`dbt:column:${dbt?.name ?? table.name ?? table.relation}.${column.name}`,
|
|
30
|
+
`runtime:column:${table.relation}.${column.name}`,
|
|
31
|
+
`warehouse:column:${table.relation}.${column.name}`,
|
|
32
|
+
`${qualifiedId}::column::${column.name}`,
|
|
33
|
+
`${table.relation}.${column.name}`,
|
|
34
|
+
]),
|
|
35
|
+
})),
|
|
36
|
+
};
|
|
37
|
+
});
|
|
38
|
+
const byEntity = new Map(relations.flatMap((relation) => relation.entityId ? [[relation.entityId, relation]] : []));
|
|
39
|
+
const relationships = Object.values(input.manifest?.modeling?.relationships ?? {}).flatMap((relationship) => {
|
|
40
|
+
const from = byEntity.get(relationship.from);
|
|
41
|
+
const to = byEntity.get(relationship.to);
|
|
42
|
+
if (!from || !to)
|
|
43
|
+
return [];
|
|
44
|
+
const keys = relationship.keys.flatMap((key) => {
|
|
45
|
+
const fromColumn = findColumnByName(from, key.from);
|
|
46
|
+
const toColumn = findColumnByName(to, key.to);
|
|
47
|
+
return fromColumn && toColumn ? [{ fromColumnId: fromColumn.qualifiedId, toColumnId: toColumn.qualifiedId }] : [];
|
|
48
|
+
});
|
|
49
|
+
if (keys.length !== relationship.keys.length)
|
|
50
|
+
return [];
|
|
51
|
+
return [{
|
|
52
|
+
qualifiedId: relationship.qualifiedId,
|
|
53
|
+
fromRelationId: from.qualifiedId,
|
|
54
|
+
toRelationId: to.qualifiedId,
|
|
55
|
+
keys,
|
|
56
|
+
joinType: relationship.joinTypes?.includes('left') ? 'left' : 'inner',
|
|
57
|
+
cardinality: relationship.cardinality,
|
|
58
|
+
fanout: relationship.fanout,
|
|
59
|
+
status: relationship.status,
|
|
60
|
+
automaticJoinAllowed: relationship.automaticJoinAllowed,
|
|
61
|
+
staleCertification: relationship.staleCertification,
|
|
62
|
+
identities: unique([relationship.qualifiedId, relationship.id, relationship.localId]),
|
|
63
|
+
}];
|
|
64
|
+
});
|
|
65
|
+
const payload = { snapshotId: input.snapshotId, relations, relationships };
|
|
66
|
+
return { ...payload, fingerprint: hash(stableStringify(payload)) };
|
|
67
|
+
}
|
|
68
|
+
export function compileGovernedRelationalPlan(input) {
|
|
69
|
+
const { plan, registry } = input;
|
|
70
|
+
if (plan.capability !== 'governed_relational') {
|
|
71
|
+
return blocked('CAPABILITY_MISMATCH', `Plan capability ${plan.capability} is not governed relational.`);
|
|
72
|
+
}
|
|
73
|
+
if (plan.snapshotId !== registry.snapshotId) {
|
|
74
|
+
return blocked('SNAPSHOT_MISMATCH', `Plan snapshot ${plan.snapshotId} does not match relational registry ${registry.snapshotId}.`);
|
|
75
|
+
}
|
|
76
|
+
const measures = plan.query.measures.map((binding) => bindColumn(binding, registry));
|
|
77
|
+
const dimensions = plan.query.dimensions.map((binding) => bindColumn(binding, registry));
|
|
78
|
+
const filterColumns = plan.query.filters.map((filter) => bindColumn(filter.binding, registry));
|
|
79
|
+
const failed = [...measures, ...dimensions, ...filterColumns].find((binding) => binding.status !== 'resolved');
|
|
80
|
+
if (failed) {
|
|
81
|
+
return blocked(failed.status === 'ambiguous' ? 'MEMBER_AMBIGUOUS' : 'MEMBER_UNRESOLVED', failed.reason, failed.candidateIds);
|
|
82
|
+
}
|
|
83
|
+
const boundMeasures = measures;
|
|
84
|
+
const boundDimensions = dimensions;
|
|
85
|
+
const boundFilters = filterColumns;
|
|
86
|
+
const relationIds = unique([
|
|
87
|
+
...boundMeasures.map((item) => item.relation.qualifiedId),
|
|
88
|
+
...boundDimensions.map((item) => item.relation.qualifiedId),
|
|
89
|
+
...boundFilters.map((item) => item.relation.qualifiedId),
|
|
90
|
+
]);
|
|
91
|
+
if (relationIds.length === 0)
|
|
92
|
+
return blocked('MEMBER_UNRESOLVED', 'The plan does not bind any executable relational columns.');
|
|
93
|
+
const base = boundMeasures[0]?.relation ?? boundDimensions[0]?.relation ?? boundFilters[0].relation;
|
|
94
|
+
const joins = [];
|
|
95
|
+
const joined = new Set([base.qualifiedId]);
|
|
96
|
+
while (joined.size < relationIds.length) {
|
|
97
|
+
const relationship = registry.relationships.find((candidate) => plan.relationshipPathIds.some((identity) => candidate.identities.includes(identity))
|
|
98
|
+
&& ((joined.has(candidate.fromRelationId) && relationIds.includes(candidate.toRelationId) && !joined.has(candidate.toRelationId))
|
|
99
|
+
|| (joined.has(candidate.toRelationId) && relationIds.includes(candidate.fromRelationId) && !joined.has(candidate.fromRelationId))));
|
|
100
|
+
if (!relationship) {
|
|
101
|
+
return blocked('RELATIONSHIP_PROOF_REQUIRED', `No selected relationship proof connects ${[...joined].join(', ')} to ${relationIds.filter((id) => !joined.has(id)).join(', ')}.`);
|
|
102
|
+
}
|
|
103
|
+
if (relationship.status !== 'certified' || relationship.staleCertification || !relationship.automaticJoinAllowed) {
|
|
104
|
+
return blocked('RELATIONSHIP_NOT_EXECUTABLE', `Relationship ${relationship.qualifiedId} is not fresh, certified, and automatic-join safe.`);
|
|
105
|
+
}
|
|
106
|
+
const next = joined.has(relationship.fromRelationId) ? relationship.toRelationId : relationship.fromRelationId;
|
|
107
|
+
joins.push({ relationshipId: relationship.qualifiedId, relationId: next, joinType: relationship.joinType });
|
|
108
|
+
joined.add(next);
|
|
109
|
+
}
|
|
110
|
+
const astMeasures = [];
|
|
111
|
+
for (let index = 0; index < boundMeasures.length; index += 1) {
|
|
112
|
+
const aggregation = normalizeAggregate(plan.query.measures[index].aggregation);
|
|
113
|
+
if (!aggregation) {
|
|
114
|
+
return blocked('AGGREGATION_REQUIRED', `Measure ${plan.query.measures[index].requested} has no allowlisted aggregation.`);
|
|
115
|
+
}
|
|
116
|
+
astMeasures.push({
|
|
117
|
+
columnId: boundMeasures[index].column.qualifiedId,
|
|
118
|
+
aggregate: aggregation,
|
|
119
|
+
alias: safeAlias(plan.query.measures[index].requested, `measure_${index + 1}`),
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
const astDimensions = boundDimensions.map((binding, index) => ({
|
|
123
|
+
columnId: binding.column.qualifiedId,
|
|
124
|
+
alias: safeAlias(plan.query.dimensions[index].requested, `dimension_${index + 1}`),
|
|
125
|
+
...(binding.column.isTime && plan.query.timeGrain ? { timeGrain: plan.query.timeGrain } : {}),
|
|
126
|
+
}));
|
|
127
|
+
const parameters = {};
|
|
128
|
+
const filters = plan.query.filters.map((filter, index) => {
|
|
129
|
+
const parameterName = `p${index + 1}`;
|
|
130
|
+
parameters[parameterName] = filter.value;
|
|
131
|
+
return { columnId: boundFilters[index].column.qualifiedId, operator: 'eq', parameterName };
|
|
132
|
+
});
|
|
133
|
+
if (plan.query.timeRange && !plan.query.timeBounds) {
|
|
134
|
+
return blocked('UNSUPPORTED_TIME_RANGE', `Time range "${plan.query.timeRange}" has no typed bounds.`);
|
|
135
|
+
}
|
|
136
|
+
if (plan.query.timeBounds) {
|
|
137
|
+
const frameTimeId = plan.analyticalFrame?.timeContext?.timeDimensionId;
|
|
138
|
+
const exactFrameTime = frameTimeId ? bindQualifiedColumn(frameTimeId, registry) : undefined;
|
|
139
|
+
const time = boundDimensions.find((binding) => binding.column.isTime)
|
|
140
|
+
?? (exactFrameTime?.status === 'resolved' && exactFrameTime.column.isTime ? exactFrameTime : undefined);
|
|
141
|
+
if (!time)
|
|
142
|
+
return blocked('MEMBER_UNRESOLVED', 'Typed time bounds require a qualified time dimension.');
|
|
143
|
+
parameters.time_start = plan.query.timeBounds.startInclusive;
|
|
144
|
+
parameters.time_end = plan.query.timeBounds.endExclusive;
|
|
145
|
+
filters.push({ columnId: time.column.qualifiedId, operator: 'gte', parameterName: 'time_start' }, { columnId: time.column.qualifiedId, operator: 'lt', parameterName: 'time_end' });
|
|
146
|
+
}
|
|
147
|
+
const orderAlias = astMeasures[0]?.alias ?? astDimensions[0]?.alias;
|
|
148
|
+
const ast = {
|
|
149
|
+
kind: 'select',
|
|
150
|
+
fromRelationId: base.qualifiedId,
|
|
151
|
+
joins,
|
|
152
|
+
measures: astMeasures,
|
|
153
|
+
dimensions: astDimensions,
|
|
154
|
+
filters,
|
|
155
|
+
orderBy: orderAlias && plan.query.order ? [{ alias: orderAlias, direction: plan.query.order }] : [],
|
|
156
|
+
limit: Math.min(Math.max(1, plan.query.limit ?? 100), input.maxRows ?? 10_000),
|
|
157
|
+
};
|
|
158
|
+
const sql = renderGovernedRelationalAst(ast, registry, input.driver);
|
|
159
|
+
const outputColumns = [...ast.dimensions.map((item) => item.alias), ...ast.measures.map((item) => item.alias)];
|
|
160
|
+
const receipt = {
|
|
161
|
+
schemaVersion: 1,
|
|
162
|
+
planId: plan.planId,
|
|
163
|
+
planFingerprint: plan.fingerprint,
|
|
164
|
+
snapshotId: plan.snapshotId,
|
|
165
|
+
registryFingerprint: registry.fingerprint,
|
|
166
|
+
astFingerprint: hash(stableStringify(ast)),
|
|
167
|
+
sqlFingerprint: hash(sql),
|
|
168
|
+
relationIds,
|
|
169
|
+
columnIds: unique([...ast.dimensions.map((item) => item.columnId), ...ast.measures.map((item) => item.columnId), ...ast.filters.map((item) => item.columnId)]),
|
|
170
|
+
relationshipIds: ast.joins.map((item) => item.relationshipId),
|
|
171
|
+
parameters: Object.entries(parameters).map(([name, value]) => ({ name, valueFingerprint: hash(stableStringify(value)) })),
|
|
172
|
+
outputColumns,
|
|
173
|
+
};
|
|
174
|
+
return { status: 'compiled', ast, sql, parameterValues: parameters, receipt };
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Compile every governed-relational source node independently. Alignment,
|
|
178
|
+
* arithmetic, and ranking remain typed graph operations and therefore happen
|
|
179
|
+
* only after each period has been safely aggregated at the declared grain.
|
|
180
|
+
*
|
|
181
|
+
* Acceptance: AGT-015, AGT-018, AGT-019.
|
|
182
|
+
*/
|
|
183
|
+
export function compileGovernedRelationalExecutionGraph(input) {
|
|
184
|
+
const { graph, plan, registry } = input;
|
|
185
|
+
const graphBlocked = (code, reason, nodeId, candidateIds) => ({
|
|
186
|
+
status: 'blocked',
|
|
187
|
+
code,
|
|
188
|
+
reason,
|
|
189
|
+
...(nodeId ? { nodeId } : {}),
|
|
190
|
+
...(candidateIds?.length ? { candidateIds } : {}),
|
|
191
|
+
});
|
|
192
|
+
if (graph.planId !== plan.planId ||
|
|
193
|
+
graph.planFingerprint !== plan.fingerprint ||
|
|
194
|
+
graph.snapshotId !== plan.snapshotId) {
|
|
195
|
+
return graphBlocked('EXECUTION_GRAPH_MISMATCH', 'The executable graph does not bind the supplied immutable plan.');
|
|
196
|
+
}
|
|
197
|
+
if (graph.route !== 'governed_sql') {
|
|
198
|
+
return graphBlocked('EXECUTION_GRAPH_ROUTE_MISMATCH', `Graph route ${graph.route} is not governed SQL.`);
|
|
199
|
+
}
|
|
200
|
+
if (graph.snapshotId !== registry.snapshotId) {
|
|
201
|
+
return graphBlocked('SNAPSHOT_MISMATCH', `Graph snapshot ${graph.snapshotId} does not match relational registry ${registry.snapshotId}.`);
|
|
202
|
+
}
|
|
203
|
+
const measureBindings = plan.query.measures.filter((binding) => binding.status === 'resolved' && binding.qualifiedId);
|
|
204
|
+
if (measureBindings.length !== 1) {
|
|
205
|
+
return graphBlocked('MEASURE_BINDING_REQUIRED', 'The governed graph requires exactly one resolved physical measure binding.');
|
|
206
|
+
}
|
|
207
|
+
const measureBinding = measureBindings[0];
|
|
208
|
+
const statements = [];
|
|
209
|
+
const sources = graph.nodes.filter((node) => node.kind === 'source_invocation');
|
|
210
|
+
for (const source of sources) {
|
|
211
|
+
if (source.strategy !== 'period_aggregate' || !source.outputAliases.metric) {
|
|
212
|
+
return graphBlocked('EXECUTION_GRAPH_ROUTE_MISMATCH', 'Governed SQL requires period-aggregate source nodes.', source.id);
|
|
213
|
+
}
|
|
214
|
+
if (source.memberFilters.some((filter) => filter.canonicalValues.length !== 1)) {
|
|
215
|
+
return graphBlocked('MULTI_VALUE_FILTER_UNSUPPORTED', 'The current governed relational operator requires exactly one canonical value per filter.', source.id);
|
|
216
|
+
}
|
|
217
|
+
const dimensions = source.outputAliases.dimensions.map((dimension) => ({
|
|
218
|
+
requested: dimension.outputId,
|
|
219
|
+
qualifiedId: dimension.dimensionId,
|
|
220
|
+
status: 'resolved',
|
|
221
|
+
candidateIds: [dimension.dimensionId],
|
|
222
|
+
}));
|
|
223
|
+
const filters = source.memberFilters.map((filter) => ({
|
|
224
|
+
field: filter.dimensionId,
|
|
225
|
+
value: String(filter.canonicalValues[0]),
|
|
226
|
+
binding: {
|
|
227
|
+
requested: filter.dimensionId,
|
|
228
|
+
qualifiedId: filter.dimensionId,
|
|
229
|
+
status: 'resolved',
|
|
230
|
+
candidateIds: [filter.dimensionId],
|
|
231
|
+
},
|
|
232
|
+
}));
|
|
233
|
+
const periodPlan = {
|
|
234
|
+
...plan,
|
|
235
|
+
capability: 'governed_relational',
|
|
236
|
+
query: {
|
|
237
|
+
measures: [{
|
|
238
|
+
...measureBinding,
|
|
239
|
+
requested: source.outputAliases.metric.outputId,
|
|
240
|
+
}],
|
|
241
|
+
dimensions,
|
|
242
|
+
filters,
|
|
243
|
+
...(source.period
|
|
244
|
+
? {
|
|
245
|
+
timeBounds: {
|
|
246
|
+
expression: source.period.id,
|
|
247
|
+
startInclusive: source.period.startInclusive,
|
|
248
|
+
endExclusive: source.period.endExclusive,
|
|
249
|
+
timeZone: 'UTC',
|
|
250
|
+
},
|
|
251
|
+
}
|
|
252
|
+
: {}),
|
|
253
|
+
limit: Math.min(Math.max(1, input.maxRows ?? 10_000), 100_000),
|
|
254
|
+
},
|
|
255
|
+
outputContract: {
|
|
256
|
+
measures: [source.outputAliases.metric.outputId],
|
|
257
|
+
dimensions: dimensions.map((dimension) => dimension.requested),
|
|
258
|
+
fields: [
|
|
259
|
+
...source.outputAliases.dimensions.map((dimension) => dimension.outputId),
|
|
260
|
+
source.outputAliases.metric.outputId,
|
|
261
|
+
],
|
|
262
|
+
...(source.period ? { periodIds: [source.period.id] } : {}),
|
|
263
|
+
},
|
|
264
|
+
};
|
|
265
|
+
const compiled = compileGovernedRelationalPlan({
|
|
266
|
+
plan: periodPlan,
|
|
267
|
+
registry,
|
|
268
|
+
driver: input.driver,
|
|
269
|
+
maxRows: input.maxRows,
|
|
270
|
+
});
|
|
271
|
+
if (compiled.status === 'blocked') {
|
|
272
|
+
return graphBlocked(compiled.code, compiled.reason, source.id, compiled.candidateIds);
|
|
273
|
+
}
|
|
274
|
+
statements.push({
|
|
275
|
+
nodeId: source.id,
|
|
276
|
+
sql: compiled.sql,
|
|
277
|
+
parameterValues: compiled.parameterValues,
|
|
278
|
+
ast: compiled.ast,
|
|
279
|
+
receipt: compiled.receipt,
|
|
280
|
+
outputAliases: structuredClone(source.outputAliases),
|
|
281
|
+
});
|
|
282
|
+
}
|
|
283
|
+
const statementFingerprints = statements.map((statement) => ({
|
|
284
|
+
nodeId: statement.nodeId,
|
|
285
|
+
astFingerprint: statement.receipt.astFingerprint,
|
|
286
|
+
sqlFingerprint: statement.receipt.sqlFingerprint,
|
|
287
|
+
}));
|
|
288
|
+
const receiptPayload = {
|
|
289
|
+
schemaVersion: 1,
|
|
290
|
+
graphId: graph.graphId,
|
|
291
|
+
graphFingerprint: graph.fingerprint,
|
|
292
|
+
planId: plan.planId,
|
|
293
|
+
planFingerprint: plan.fingerprint,
|
|
294
|
+
snapshotId: plan.snapshotId,
|
|
295
|
+
registryFingerprint: registry.fingerprint,
|
|
296
|
+
statementFingerprints,
|
|
297
|
+
};
|
|
298
|
+
return {
|
|
299
|
+
status: 'compiled',
|
|
300
|
+
graph,
|
|
301
|
+
statements,
|
|
302
|
+
receipt: {
|
|
303
|
+
...receiptPayload,
|
|
304
|
+
fingerprint: hash(stableStringify(receiptPayload)),
|
|
305
|
+
},
|
|
306
|
+
};
|
|
307
|
+
}
|
|
308
|
+
export function renderGovernedRelationalAst(ast, registry, driver) {
|
|
309
|
+
const dialect = getDialect(driver);
|
|
310
|
+
const relations = new Map(registry.relations.map((relation) => [relation.qualifiedId, relation]));
|
|
311
|
+
const aliases = new Map([[ast.fromRelationId, 'r0']]);
|
|
312
|
+
ast.joins.forEach((join, index) => aliases.set(join.relationId, `r${index + 1}`));
|
|
313
|
+
const locateColumn = (columnId) => {
|
|
314
|
+
for (const relation of registry.relations) {
|
|
315
|
+
const column = relation.columns.find((candidate) => candidate.qualifiedId === columnId);
|
|
316
|
+
if (column)
|
|
317
|
+
return { relation, column };
|
|
318
|
+
}
|
|
319
|
+
throw new Error(`Unknown governed column ${columnId}`);
|
|
320
|
+
};
|
|
321
|
+
const expression = (columnId) => {
|
|
322
|
+
const { relation, column } = locateColumn(columnId);
|
|
323
|
+
return `${aliases.get(relation.qualifiedId)}.${dialect.quoteIdentifier(column.name)}`;
|
|
324
|
+
};
|
|
325
|
+
const selections = [
|
|
326
|
+
...ast.dimensions.map((item) => {
|
|
327
|
+
const raw = expression(item.columnId);
|
|
328
|
+
return `${item.timeGrain ? dialect.dateTrunc(item.timeGrain, raw) : raw} AS ${dialect.quoteIdentifier(item.alias)}`;
|
|
329
|
+
}),
|
|
330
|
+
...ast.measures.map((item) => {
|
|
331
|
+
const raw = expression(item.columnId);
|
|
332
|
+
const aggregate = item.aggregate === 'count_distinct' ? `COUNT(DISTINCT ${raw})` : `${item.aggregate.toUpperCase()}(${raw})`;
|
|
333
|
+
return `${aggregate} AS ${dialect.quoteIdentifier(item.alias)}`;
|
|
334
|
+
}),
|
|
335
|
+
];
|
|
336
|
+
let sql = `SELECT\n ${selections.join(',\n ')}\nFROM ${quoteRelation(relations.get(ast.fromRelationId).sqlName, dialect.quoteIdentifier.bind(dialect))} AS r0`;
|
|
337
|
+
const joined = new Set([ast.fromRelationId]);
|
|
338
|
+
for (const join of ast.joins) {
|
|
339
|
+
const relationship = registry.relationships.find((candidate) => candidate.qualifiedId === join.relationshipId);
|
|
340
|
+
const relation = relations.get(join.relationId);
|
|
341
|
+
const conditions = relationship.keys.map((key) => `${expression(key.fromColumnId)} = ${expression(key.toColumnId)}`);
|
|
342
|
+
sql += `\n${join.joinType.toUpperCase()} JOIN ${quoteRelation(relation.sqlName, dialect.quoteIdentifier.bind(dialect))} AS ${aliases.get(relation.qualifiedId)} ON ${conditions.join(' AND ')}`;
|
|
343
|
+
joined.add(relation.qualifiedId);
|
|
344
|
+
}
|
|
345
|
+
if (ast.filters.length) {
|
|
346
|
+
const operators = { eq: '=', gte: '>=', lt: '<' };
|
|
347
|
+
sql += `\nWHERE ${ast.filters.map((filter) => `${expression(filter.columnId)} ${operators[filter.operator]} :${filter.parameterName}`).join(' AND ')}`;
|
|
348
|
+
}
|
|
349
|
+
if (ast.measures.length && ast.dimensions.length) {
|
|
350
|
+
sql += `\nGROUP BY ${ast.dimensions.map((item) => item.timeGrain ? dialect.dateTrunc(item.timeGrain, expression(item.columnId)) : expression(item.columnId)).join(', ')}`;
|
|
351
|
+
}
|
|
352
|
+
if (ast.orderBy.length)
|
|
353
|
+
sql += `\nORDER BY ${ast.orderBy.map((item) => `${dialect.quoteIdentifier(item.alias)} ${item.direction.toUpperCase()}`).join(', ')}`;
|
|
354
|
+
if (dialect.limitAtEnd)
|
|
355
|
+
sql += `\n${dialect.limitClause(ast.limit)}`;
|
|
356
|
+
return sql;
|
|
357
|
+
}
|
|
358
|
+
export function finalizeGovernedCompilationReceipt(receipt, result) {
|
|
359
|
+
const actual = result.columns.map((column) => typeof column === 'string' ? column : String(column));
|
|
360
|
+
const missing = receipt.outputColumns.filter((column) => !actual.includes(column));
|
|
361
|
+
if (missing.length)
|
|
362
|
+
throw new Error(`Result contract is missing: ${missing.join(', ')}.`);
|
|
363
|
+
return {
|
|
364
|
+
...receipt,
|
|
365
|
+
result: {
|
|
366
|
+
rowCount: result.rowCount,
|
|
367
|
+
resultFingerprint: hash(stableStringify({ columns: actual, rows: result.rows, rowCount: result.rowCount })),
|
|
368
|
+
},
|
|
369
|
+
};
|
|
370
|
+
}
|
|
371
|
+
export function renderGovernedRelationalDqlArtifact(compiled) {
|
|
372
|
+
const name = `resolved_plan_${compiled.receipt.planId.replace(/[^a-z0-9]+/gi, '_').replace(/^_+|_+$/g, '').slice(-40)}`;
|
|
373
|
+
const declarations = Object.entries(compiled.parameterValues).map(([parameter, value]) => {
|
|
374
|
+
const type = typeof value === 'number' ? 'number' : typeof value === 'boolean' ? 'boolean' : 'string';
|
|
375
|
+
return ` ${parameter}: ${type}`;
|
|
376
|
+
});
|
|
377
|
+
const parameterizedSql = compiled.sql.replace(/:([a-zA-Z][a-zA-Z0-9_]*)\b/g, (_match, parameter) => `\${${parameter}}`);
|
|
378
|
+
const source = [
|
|
379
|
+
`block "${name}" {`,
|
|
380
|
+
' type = "custom"',
|
|
381
|
+
' status = "draft"',
|
|
382
|
+
...(declarations.length ? [' params {', ...declarations, ' }'] : []),
|
|
383
|
+
' query = """',
|
|
384
|
+
...parameterizedSql.split('\n').map((line) => ` ${line}`),
|
|
385
|
+
' """',
|
|
386
|
+
'}',
|
|
387
|
+
].join('\n');
|
|
388
|
+
return {
|
|
389
|
+
kind: 'sql_block',
|
|
390
|
+
name,
|
|
391
|
+
source,
|
|
392
|
+
compiledSql: compiled.sql,
|
|
393
|
+
parameterValues: compiled.parameterValues,
|
|
394
|
+
persistence: 'transient',
|
|
395
|
+
trustState: 'governed',
|
|
396
|
+
limit: compiled.ast.limit,
|
|
397
|
+
};
|
|
398
|
+
}
|
|
399
|
+
function bindColumn(binding, registry) {
|
|
400
|
+
if (binding.status !== 'resolved' || !binding.qualifiedId) {
|
|
401
|
+
return { status: binding.status === 'ambiguous' ? 'ambiguous' : 'missing', reason: `${binding.requested} is ${binding.status}.`, candidateIds: binding.candidateIds };
|
|
402
|
+
}
|
|
403
|
+
const matches = registry.relations.flatMap((relation) => relation.columns
|
|
404
|
+
.filter((column) => column.qualifiedId === binding.qualifiedId || column.identities.includes(binding.qualifiedId))
|
|
405
|
+
.map((column) => ({ relation, column })));
|
|
406
|
+
if (matches.length !== 1) {
|
|
407
|
+
return { status: matches.length > 1 ? 'ambiguous' : 'missing', reason: `${binding.qualifiedId} resolves to ${matches.length} columns.`, candidateIds: matches.map((item) => item.column.qualifiedId) };
|
|
408
|
+
}
|
|
409
|
+
return { status: 'resolved', ...matches[0] };
|
|
410
|
+
}
|
|
411
|
+
function bindQualifiedColumn(qualifiedId, registry) {
|
|
412
|
+
return bindColumn({
|
|
413
|
+
requested: qualifiedId,
|
|
414
|
+
qualifiedId,
|
|
415
|
+
status: 'resolved',
|
|
416
|
+
candidateIds: [qualifiedId],
|
|
417
|
+
}, registry);
|
|
418
|
+
}
|
|
419
|
+
function normalizeAggregate(value) {
|
|
420
|
+
const normalized = value?.toLowerCase().replace(/\s+/g, '_');
|
|
421
|
+
if (normalized === 'sum' || normalized === 'avg' || normalized === 'min' || normalized === 'max' || normalized === 'count' || normalized === 'count_distinct')
|
|
422
|
+
return normalized;
|
|
423
|
+
if (normalized === 'average')
|
|
424
|
+
return 'avg';
|
|
425
|
+
if (normalized === 'distinct_count')
|
|
426
|
+
return 'count_distinct';
|
|
427
|
+
return undefined;
|
|
428
|
+
}
|
|
429
|
+
function findColumnByName(relation, name) {
|
|
430
|
+
return relation.columns.find((column) => column.name === name);
|
|
431
|
+
}
|
|
432
|
+
function blocked(code, reason, candidateIds) {
|
|
433
|
+
return { status: 'blocked', code, reason, ...(candidateIds?.length ? { candidateIds } : {}) };
|
|
434
|
+
}
|
|
435
|
+
function safeAlias(value, fallback) {
|
|
436
|
+
return value.toLowerCase().replace(/[^a-z0-9_]+/g, '_').replace(/^_+|_+$/g, '') || fallback;
|
|
437
|
+
}
|
|
438
|
+
function quoteRelation(value, quote) {
|
|
439
|
+
return value.split('.').map(quote).join('.');
|
|
440
|
+
}
|
|
441
|
+
function unique(values) {
|
|
442
|
+
return [...new Set(values.filter((value) => Boolean(value)))]
|
|
443
|
+
.sort();
|
|
444
|
+
}
|
|
445
|
+
function hash(value) {
|
|
446
|
+
return createHash('sha256').update(value).digest('hex');
|
|
447
|
+
}
|
|
448
|
+
function stableStringify(value) {
|
|
449
|
+
if (value === undefined || value === null)
|
|
450
|
+
return 'null';
|
|
451
|
+
if (typeof value !== 'object')
|
|
452
|
+
return JSON.stringify(value);
|
|
453
|
+
if (Array.isArray(value))
|
|
454
|
+
return `[${value.map(stableStringify).join(',')}]`;
|
|
455
|
+
const record = value;
|
|
456
|
+
return `{${Object.keys(record).sort().map((key) => `${JSON.stringify(key)}:${stableStringify(record[key])}`).join(',')}}`;
|
|
457
|
+
}
|
|
458
|
+
//# sourceMappingURL=governed-relational-compiler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"governed-relational-compiler.js","sourceRoot":"","sources":["../src/governed-relational-compiler.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -19,7 +19,11 @@ export { seedDomainSkills, buildDomainReferenceSkills } from "./skills/domain-sk
|
|
|
19
19
|
export { draftDomainSkillBootstrap, buildDomainSkillBootstrapPrompt, mergeDomainSkillBootstrapEnrichment, } from "./skills/bootstrap.js";
|
|
20
20
|
export type { DomainBootstrapCandidate, DomainSkillBootstrapAiDraft, DomainSkillBootstrapEnrichment, } from "./skills/bootstrap.js";
|
|
21
21
|
export type { SeedDefaultSkillsOptions, SeedDefaultSkillsResult, } from "./skills/defaults.js";
|
|
22
|
-
export { answer, parseProposal, compactSemanticRuntimeFailure } from "./answer-loop.js";
|
|
22
|
+
export { answer, parseProposal, compactSemanticRuntimeFailure, materializeKnowledgeLensSkills } from "./answer-loop.js";
|
|
23
|
+
export { classifyAnalyticalFailure, createAnalyticalFailure, deriveAnalyticalRepair, redactAnalyticalDiagnostic, } from './analytical-failure-repair.js';
|
|
24
|
+
export { resolveAnalyticalPeriods } from './analytical-period-resolution.js';
|
|
25
|
+
export type { AnalyticalFreshnessObservationV1, AnalyticalFreshnessRequestV1, ResolveAnalyticalPeriodsResult, } from './analytical-period-resolution.js';
|
|
26
|
+
export type { AnalyticalFailedBindingInput, AnalyticalFailedRunV1, AnalyticalRepairAction, AnalyticalRepairDerivationResult, AnalyticalRepairDerivationV1, AnalyticalRepairRequestV1, CreateAnalyticalFailureInput, } from './analytical-failure-repair.js';
|
|
23
27
|
export { detectResultSetOperation, computeResultSetOperation } from "./conversation/result-ops.js";
|
|
24
28
|
export type { ResultSetOperation, PriorResultData, ResultSetComputation } from "./conversation/result-ops.js";
|
|
25
29
|
export type { SemanticQueryCompiler } from "./answer-loop.js";
|
|
@@ -27,11 +31,11 @@ export { resolveDomainContextEnvelope, domainContextSearchDomains } from './doma
|
|
|
27
31
|
export type { DomainContextEnvelope, KnowledgeLens, ResolveDomainContextInput } from './domain-context.js';
|
|
28
32
|
export { stampTrustLabel, trustLabelIdForAnswer, type TrustStampableAnswer, } from "./trust/stamp.js";
|
|
29
33
|
export { decideAgentAction, classifyConversationalTurn, looksLikeComposeApp, looksLikeFollowUp, type AgentAction, type ConversationalKind, type IntentDecision, type IntentDecisionInput, type IntentSignals, } from "./intent-controller.js";
|
|
30
|
-
export { AgentRunEngine, AGENT_RUN_ESCALATION_MAP, createDeterministicAgentRunPlanner, defaultSuccessCriteria, FileAgentRunStore, InMemoryAgentRunStore, defaultAgentRunStorePath, selectRoute, routeReasoningEffort, } from "./agent-run-engine.js";
|
|
34
|
+
export { AgentRunEngine, AGENT_RUN_ESCALATION_MAP, createDeterministicAgentRunPlanner, defaultSuccessCriteria, FileAgentRunStore, InMemoryAgentRunStore, defaultAgentRunStorePath, selectRoute, routeReasoningEffort, compareResolvedPlanShadow, } from "./agent-run-engine.js";
|
|
31
35
|
export type { FileAgentRunStoreOptions } from "./agent-run-engine.js";
|
|
32
36
|
export { readMetadataCatalogHealth, readAgentRunStoreHealth, type MetadataCatalogHealth, type AgentRunStoreHealth, } from "./metadata/health.js";
|
|
33
37
|
export { SqliteAgentRunStore, defaultAgentRunSqlitePath, resolveAgentRunRetention, type SqliteAgentRunStoreOptions, } from "./agent-run-store.js";
|
|
34
|
-
export type { AgentRouteExecutionContext, AgentRouteExecutor, AgentRouteExecutorResult, AgentRouter, AgentRun, AgentRunAnswerKind, AgentRunArtifact, AgentRunArtifactKind, AgentRunAudience, AgentRunEngineOptions, AgentRunEvaluation, AgentRunEvaluationSeverity, AgentRunEvent, AgentRunExecutors, AgentRunGate, AgentRunGateContext, AgentRunGates, AgentRunNextAction, AgentRunPlan, AgentRunPlanInput, AgentRunPlanner, AgentRunPlanSource, AgentRunPlannedStep, AgentRunReplanDecision, AgentRunReplanInput, AgentRunRepairAction, AgentRunRequest, AgentRunRequestedMode, AgentRunRoute, AgentRunSelectedObject, AgentRunStatus, AgentRunStep, AgentRunStepStatus, AgentRunStopReason, AgentRunStore, AgentRunTrustState, } from "./agent-run-engine.js";
|
|
38
|
+
export type { AgentRouteExecutionContext, AgentRouteExecutor, AgentRouteExecutorResult, AgentRouter, AgentRun, AgentRunAnswerKind, AgentRunArtifact, AgentRunArtifactKind, AgentRunAudience, AgentRunEngineOptions, AgentRunEvaluation, AgentRunEvaluationSeverity, AgentRunEvent, AgentRunExecutors, AgentRunGate, AgentRunGateContext, AgentRunGates, AgentRunNextAction, AgentRunPlan, AgentRunPlanInput, AgentRunPlanner, AgentRunPlanSource, AgentRunPlannedStep, AgentRunReplanDecision, AgentRunReplanInput, AgentRunRepairAction, AgentRunRequest, AgentRunRequestedMode, AgentRunRoute, AgentRunSelectedObject, AgentRunStatus, AgentRunStep, AgentRunStepStatus, AgentRunStopReason, AgentRunStore, AgentRunTrustState, ResolvedPlanShadowComparison, } from "./agent-run-engine.js";
|
|
35
39
|
export { defaultAgentRunGates } from "./agent-run-gates.js";
|
|
36
40
|
export { narrateResult, type NarrateInput, type NarrateItem, type NarrateResult, type NarrateResultData, type NarrateCompletion, type NarrateOptions, } from "./narrate.js";
|
|
37
41
|
export { createLlmAgentRunPlanner, type AgentRunPlannerCompletion, type LlmAgentRunPlannerOptions, } from "./agent-run-planner.js";
|
|
@@ -43,6 +47,22 @@ export { planApp, type AppPlan as AgentAppPlan, type AppPlanSection, type AppPla
|
|
|
43
47
|
export { planResearch, type ResearchPlan, type ResearchStep, type ResearchFollowUp, } from "./research-loop.js";
|
|
44
48
|
export { loadSemanticMetrics } from "./propose/build-from-prompt.js";
|
|
45
49
|
export type { AgentAnalysisPlan, AgentAnswer, AgentCitation, AgentDqlArtifactReference, AgentEvidence, AgentEvidenceAsset, AgentEvidenceContextItem, AgentEvidenceLineageNode, AgentEvidenceLineageRole, AgentEvidenceOutcome, AgentEvidenceRouteStatus, AgentEvidenceRouteStep, AgentEvidenceToolCall, AgentFollowUpContext, AgentMemberBinding, AgentJoinPath, AgentIntent, AgentPriorResultReference, AgentResultPayload, CertifiedBlockInvocationInput, AgentSchemaColumn, AgentSchemaTable, AnalysisDepth, AnswerKind, AnswerLoopInput, AiRoute, AiRouteTier, } from "./answer-loop.js";
|
|
50
|
+
export { buildResolvedAnalyticalPlan, deriveResolvedAnalyticalPlan, resolvePlanTimeRange } from './resolved-analytical-plan.js';
|
|
51
|
+
export type { BuildResolvedAnalyticalPlanInput, ResolvedAnalyticalPlan, ResolvedAnalyticalPlanDelta, ResolvedPlanCapability, ResolvedPlanCompatibilityProof, ResolvedPlanMemberBinding, } from './resolved-analytical-plan.js';
|
|
52
|
+
export { adaptAnalyticalFreshnessRequest, adaptAnalyticalSemanticGraph, adaptResolvedAnalyticalPlan, buildPlanExecutionRegistry, } from './plan-execution-adapter.js';
|
|
53
|
+
export type { AnalyticalFreshnessAdapterBinding } from './plan-execution-adapter.js';
|
|
54
|
+
export { normalizeEvidenceAnalyticalCapability, solveAnalyticalCompatibility, type AnalyticalCapabilityCandidate, type AnalyticalCapabilityNormalizationResult, type AnalyticalCompatibilityCode, type AnalyticalCompatibilityFailure, type AnalyticalCompatibilityResult, type AnalyticalFitClass, } from './analytical-compatibility.js';
|
|
55
|
+
export { buildDeterministicAnalyticalFrame } from './analytical-frame.js';
|
|
56
|
+
export { buildAnalyticalCapabilityReadiness, type AnalyticalCapabilityReadiness, type AnalyticalReadinessQuestion, } from './analytical-readiness.js';
|
|
57
|
+
export { buildAnalyticalExecutionGraph, executeAnalyticalExecutionGraph, } from './analytical-execution-graph.js';
|
|
58
|
+
export type { AnalyticalExecutionGraphV1, AnalyticalExecutionGraphNode, AnalyticalExecutionGraphBlockedCode, AnalyticalExecutionReceiptV1, AnalyticalExecutionRoute, AnalyticalGraphAlignNode, AnalyticalGraphCalculateNode, AnalyticalGraphExecutionFailureCode, AnalyticalGraphExecutionResult, AnalyticalGraphMemberFilter, AnalyticalGraphRankNode, AnalyticalGraphSourceInvocationNode, AnalyticalGraphValidateNode, AnalyticalSourceResult, BuildAnalyticalExecutionGraphResult, } from './analytical-execution-graph.js';
|
|
59
|
+
export { buildAnalyticalResultFacts, renderDeterministicAnalyticalNarrative, validateAnalyticalNarrativeClaims, } from './analytical-result-facts.js';
|
|
60
|
+
export type { AnalyticalNarrativeClaimV1, AnalyticalNarrativeV1, AnalyticalNarrativeValidationResult, AnalyticalResultFactKind, AnalyticalResultFactSetV1, AnalyticalResultFactV1, BuildAnalyticalResultFactsResult, } from './analytical-result-facts.js';
|
|
61
|
+
export { buildGovernedRelationalRegistry, compileGovernedRelationalExecutionGraph, compileGovernedRelationalPlan, finalizeGovernedCompilationReceipt, renderGovernedRelationalAst, renderGovernedRelationalDqlArtifact, } from './governed-relational-compiler.js';
|
|
62
|
+
export { buildTypedResearchBranches, gateResearchConclusion, ResearchBudgetController, ResearchBudgetExceededError, } from './research-governance.js';
|
|
63
|
+
export type { ResearchBudgetCounter, ResearchConclusionGate, ResearchObservation, TypedResearchBranch, TypedResearchBranchInput, } from './research-governance.js';
|
|
64
|
+
export type { GovernedCompilationReceipt, GovernedAnalyticalGraphCompilationReceipt, GovernedAnalyticalGraphCompileResult, GovernedRelation, GovernedRelationColumn, GovernedRelationship, GovernedRelationalAst, GovernedRelationalCompileResult, GovernedRelationalRegistry, RelationalAggregate, } from './governed-relational-compiler.js';
|
|
65
|
+
export type { AdaptResolvedAnalyticalPlanInput, PlanExecutionBinding, PlanExecutionBlockedCode, PlanExecutionRegistryEntry, SemanticGraphExecutionBinding, SemanticGraphInvocation, } from './plan-execution-adapter.js';
|
|
46
66
|
export { matchSemanticMetric } from "./metadata/metric-match.js";
|
|
47
67
|
export { aggregationIntegrityIssuesForSql, buildGrainLedger, detectFanoutRisks, fanoutWarningsForSql, type AggregationIntegrityIssue, type AggregationIntegrityIssueKind, type FanoutRisk, type GrainLedger, type RelationGrain, } from "./metadata/grain-ledger.js";
|
|
48
68
|
export { runAgenticToolLoop, parseTextToolCall, type AgenticToolLoopOptions, } from "./agentic/tool-loop.js";
|
|
@@ -67,7 +87,7 @@ export type { ConversationTopicFrame, ConversationWorkingState, TopicRelation, }
|
|
|
67
87
|
export { updateRollingSummary } from "./conversation/rolling-summary.js";
|
|
68
88
|
export { advanceThreadState, buildConversationSnapshot, recallRelevantTurns, } from "./conversation/snapshot.js";
|
|
69
89
|
export type { ConversationSnapshot, ConversationSnapshotTurn, } from "./conversation/snapshot.js";
|
|
70
|
-
export { MetadataCatalog, buildLocalContextPack, buildMetadataSnapshot, defaultMetadataPath, metadataSnapshotPath, activeMetadataSnapshotPath, currentMetadataFingerprint, ensureMetadataCatalogFresh, metadataObjectToAllowedSqlRelation, openMetadataCatalog, openActiveKnowledgeSnapshot, readIndexedDomainKnowledge, readIndexedKnowledge360, planAgentAnswer, recordRuntimeSchemaSnapshot, latestRuntimeSchemaSnapshotForProject, recordQueryRun, toAgentRetrievalEvidence, upsertMetadataSnapshot, } from "./metadata/catalog.js";
|
|
90
|
+
export { MetadataCatalog, buildLocalContextPack, buildMetadataSnapshot, defaultMetadataPath, metadataSnapshotPath, activeMetadataSnapshotPath, acquireActiveKnowledgeSnapshot, activeKnowledgeSnapshotLeaseCount, currentMetadataFingerprint, ensureMetadataCatalogFresh, metadataObjectToAllowedSqlRelation, openMetadataCatalog, openActiveKnowledgeSnapshot, readIndexedDomainKnowledge, readIndexedKnowledge360, retrieveMetadataSnapshotCandidates, planAgentAnswer, recordRuntimeSchemaSnapshot, latestRuntimeSchemaSnapshotForProject, recordQueryRun, applyContextPackCompatibility, toAgentRetrievalEvidence, upsertMetadataSnapshot, } from "./metadata/catalog.js";
|
|
71
91
|
export { buildBlockBusinessFingerprint, buildBlockSqlFingerprints, fingerprintSql, normalizeBusinessFingerprintToken, normalizeSqlForFingerprint, } from "./metadata/block-fingerprints.js";
|
|
72
92
|
export type { BlockBusinessFingerprint, BlockSqlFingerprints, BuildBlockBusinessFingerprintInput, } from "./metadata/block-fingerprints.js";
|
|
73
93
|
export { buildAnalysisQuestionPlan, certifiedApplicabilityForObject, scoreAllowedSqlRelationWithAnalysisPlan, scoreMetadataObjectWithAnalysisPlan, sortAllowedSqlContextForAnalysisPlan, } from "./metadata/analysis-planner.js";
|
|
@@ -93,7 +113,7 @@ export type { ProposeOptions, ProposeSummary, ProposalResult, ProposalInference,
|
|
|
93
113
|
export { reflectAndReviseBlock } from "./propose/index.js";
|
|
94
114
|
export { mineJoinPatterns, type JoinPatternCandidate } from "./propose/join-mining.js";
|
|
95
115
|
export { analyzeFailureClusters, improvementProposalsFromKg, type FailureSignal, type ImprovementProposal, } from "./propose/failure-analysis.js";
|
|
96
|
-
export type { BuildLocalContextPackRequest, CertifiedFitConfirmation, CertifiedFitConfirmationRequest, CertifiedFitConfirmationResult, EnsureMetadataCatalogOptions, EnsureMetadataCatalogResult, DqlContextPack, LocalContextPack, MetadataCandidateConflict, MetadataDiagnostic, MetadataEdge, MetadataAgentIntent, MetadataAllowedSqlContext, MetadataAnswerRoute, MetadataEvidenceRole, MetadataFollowUpContext, MetadataMissingContext, MetadataObject, MetadataRouteDecision, GrainGateRouteInfo, MetadataDomainShard, MetadataSourceFingerprint, MetadataSnapshot, MetadataTrustLabel, PlanAgentAnswerResult, QueryRunSummary, RuntimeSchemaSnapshot, RuntimeSchemaTable, RuntimeSchemaColumn, } from "./metadata/catalog.js";
|
|
116
|
+
export type { BuildLocalContextPackRequest, CertifiedFitConfirmation, CertifiedFitConfirmationRequest, CertifiedFitConfirmationResult, EnsureMetadataCatalogOptions, EnsureMetadataCatalogResult, ActiveKnowledgeSnapshotLease, DqlContextPack, LocalContextPack, MetadataCandidateConflict, MetadataDiagnostic, MetadataEdge, MetadataAgentIntent, MetadataAllowedSqlContext, MetadataAnswerRoute, MetadataEvidenceRole, MetadataFollowUpContext, MetadataMissingContext, MetadataObject, MetadataIdentityResolution, MetadataRetrievalLaneCandidate, MetadataRetrievalLaneName, MetadataRetrievalLaneResult, MetadataSnapshotRetrievalResult, MetadataVectorSearchResult, MetadataRouteDecision, GrainGateRouteInfo, MetadataDomainShard, MetadataSourceFingerprint, MetadataSnapshot, MetadataTrustLabel, PlanAgentAnswerResult, QueryRunSummary, RuntimeSchemaSnapshot, RuntimeSchemaTable, RuntimeSchemaColumn, } from "./metadata/catalog.js";
|
|
97
117
|
export type { SqlContextValidationCode, SqlContextValidationOffending, SqlContextValidationOptions, SqlContextValidationResult, } from "./metadata/sql-context-validation.js";
|
|
98
118
|
export type { GeneratedDraftBlock, GeneratedDraftRecord, } from "./metadata/drafts.js";
|
|
99
119
|
export { HintStore, } from "./hints/store.js";
|