@duckcodeailabs/dql-agent 1.6.30 → 1.6.32
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 +52 -6
- package/dist/agent-run-engine.d.ts.map +1 -1
- package/dist/agent-run-engine.js +159 -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 +117 -8
- package/dist/answer-loop.d.ts.map +1 -1
- package/dist/answer-loop.js +1690 -1302
- 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 +47 -16
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +104 -13
- 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 +151 -28
- package/dist/providers/claude.js.map +1 -1
- package/dist/providers/gemini.d.ts.map +1 -1
- package/dist/providers/gemini.js +20 -0
- package/dist/providers/gemini.js.map +1 -1
- package/dist/providers/index.d.ts +3 -1
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +1 -0
- 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 +156 -0
- package/dist/providers/openai.js.map +1 -1
- package/dist/providers/reasoning-effort.d.ts +46 -0
- package/dist/providers/reasoning-effort.d.ts.map +1 -0
- package/dist/providers/reasoning-effort.js +81 -0
- package/dist/providers/reasoning-effort.js.map +1 -0
- 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 +29 -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
package/dist/index.js
CHANGED
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import { join } from "node:path";
|
|
11
11
|
import { existsSync, readFileSync } from "node:fs";
|
|
12
|
+
import { createHash } from "node:crypto";
|
|
12
13
|
import { buildManifest, loadProjectConfig, resolveDbtManifestPath, resolveSemanticLayerWithDiagnostics, } from "@duckcodeailabs/dql-core";
|
|
13
14
|
import { KGStore } from "./kg/sqlite-fts.js";
|
|
14
15
|
import { buildKGFromManifest, buildKGFromSemanticLayer } from "./kg/build.js";
|
|
@@ -20,27 +21,40 @@ export { buildKGFromManifest, buildKGFromSemanticLayer } from "./kg/build.js";
|
|
|
20
21
|
export { activeSkills, buildSkillBlockHints, loadSkills, parseSkill, renderSkill, buildSkillsPrompt, selectRelevantSkills, writeSkill, upsertSkill, deleteSkill, skillsDir, skillPath, } from "./skills/loader.js";
|
|
21
22
|
export { seedDefaultSkills } from "./skills/defaults.js";
|
|
22
23
|
export { answer, parseProposal } from "./answer-loop.js";
|
|
24
|
+
export { stampTrustLabel, trustLabelIdForAnswer, } from "./trust/stamp.js";
|
|
23
25
|
export { decideAgentAction, classifyConversationalTurn, looksLikeComposeApp, looksLikeFollowUp, } from "./intent-controller.js";
|
|
24
|
-
export { AgentRunEngine, AGENT_RUN_ESCALATION_MAP, createDeterministicAgentRunPlanner, defaultSuccessCriteria, FileAgentRunStore, InMemoryAgentRunStore, defaultAgentRunStorePath, selectRoute, } from "./agent-run-engine.js";
|
|
26
|
+
export { AgentRunEngine, AGENT_RUN_ESCALATION_MAP, createDeterministicAgentRunPlanner, defaultSuccessCriteria, FileAgentRunStore, InMemoryAgentRunStore, defaultAgentRunStorePath, selectRoute, routeReasoningEffort, } from "./agent-run-engine.js";
|
|
25
27
|
export { defaultAgentRunGates } from "./agent-run-gates.js";
|
|
26
28
|
export { narrateResult, } from "./narrate.js";
|
|
27
29
|
export { createLlmAgentRunPlanner, } from "./agent-run-planner.js";
|
|
28
30
|
export { createHybridRouter, } from "./router.js";
|
|
29
|
-
export { synthesizeAnswer, inferFormat, } from "./synthesize.js";
|
|
31
|
+
export { synthesizeAnswer, inferFormat, computeResultStats, } from "./synthesize.js";
|
|
30
32
|
export { planApp, } from "./app-planner.js";
|
|
31
33
|
export { planResearch, } from "./research-loop.js";
|
|
32
34
|
export { loadSemanticMetrics } from "./propose/build-from-prompt.js";
|
|
33
35
|
export { matchSemanticMetric } from "./metadata/metric-match.js";
|
|
36
|
+
export { composeSemanticQueryForQuestion, renderSemanticDqlArtifact, semanticDqlArtifactName, } from "./semantic-bridge/compose.js";
|
|
37
|
+
export { DQL_TOOL_REGISTRY, dqlMcpToolNamesForSurface, dqlToolDefinitionsForSurface, dqlToolNamesForSurface, getDqlToolDefinition, } from "./tools/registry.js";
|
|
38
|
+
export { cascadeTraceToEvidenceRouteSteps, createCascadeAnswerResult, createCascadeTrace, terminalLaneForRouteTier, } from "./cascade/cascade.js";
|
|
39
|
+
export { shouldClarifyBeforeGeneration, } from "./cascade/triage.js";
|
|
40
|
+
export { routeForCascadeAnswerTier, selectCascadeRunRoute, } from "./cascade/route-policy.js";
|
|
41
|
+
export { DEFAULT_CASCADE_BUDGET_MODEL, canUseEngineEscalation, canUseLaneRepair, contextRetrievalBudgetForQuestion, analysisDepthForQuestion, cascadeBudgetTrace, cascadeBudgetUsage, createCascadeBudgetState, mcpTier2RegroundRepairBudget, mergeCascadeBudgetModel, promptContextBudgetForQuestion, proposalToolBudgetForQuestion, recordEngineEscalation, recordLaneRepair, } from "./cascade/budgets.js";
|
|
34
42
|
export { APP_BUILDER_SKILLS, planAppFromPrompt, validateAppPlan, generateAppFromPlan, } from "./app-builder.js";
|
|
35
43
|
export { MemoryStore, defaultMemoryPath, ensureDefaultMemoryFiles, } from "./memory/sqlite-memory.js";
|
|
36
|
-
export {
|
|
44
|
+
export { ConversationStore, defaultConversationPath, } from "./conversation/session-store.js";
|
|
45
|
+
export { emptyWorkingState, parseWorkingState, reduceWorkingState, } from "./conversation/working-state.js";
|
|
46
|
+
export { updateRollingSummary } from "./conversation/rolling-summary.js";
|
|
47
|
+
export { advanceThreadState, buildConversationSnapshot, recallRelevantTurns, } from "./conversation/snapshot.js";
|
|
48
|
+
export { MetadataCatalog, buildLocalContextPack, buildMetadataSnapshot, defaultMetadataPath, ensureMetadataCatalogFresh, metadataObjectToAllowedSqlRelation, openMetadataCatalog, planAgentAnswer, recordRuntimeSchemaSnapshot, recordQueryRun, upsertMetadataSnapshot, } from "./metadata/catalog.js";
|
|
37
49
|
export { buildBlockBusinessFingerprint, buildBlockSqlFingerprints, fingerprintSql, normalizeBusinessFingerprintToken, normalizeSqlForFingerprint, } from "./metadata/block-fingerprints.js";
|
|
38
50
|
export { buildAnalysisQuestionPlan, certifiedApplicabilityForObject, scoreAllowedSqlRelationWithAnalysisPlan, scoreMetadataObjectWithAnalysisPlan, sortAllowedSqlContextForAnalysisPlan, } from "./metadata/analysis-planner.js";
|
|
39
51
|
export { grainMatches, requestedGrainFromPlan, } from "./metadata/grain-gate.js";
|
|
40
52
|
export { validateSqlAgainstLocalContext, } from "./metadata/sql-context-validation.js";
|
|
53
|
+
export { applyGroundingExpansion, expandGroundingFromCatalog, } from "./grounding/regrounding.js";
|
|
54
|
+
export { ContextLedger, createContextLedger, } from "./grounding/context-ledger.js";
|
|
41
55
|
export { buildSchemaGrounding, buildGroundingFromRuntimeRelations, renderGroundingForPrompt, resolveRelationsInSql, validateSqlAgainstGrounding, relationKeys, } from "./metadata/sql-grounding.js";
|
|
42
56
|
export { selectRelevantModels } from "./metadata/sql-retrieval.js";
|
|
43
|
-
export { deriveGeneratedDraftSlug, deriveSemanticDraftName, upsertGeneratedDraft, } from "./metadata/drafts.js";
|
|
57
|
+
export { deriveGeneratedDraftSlug, deriveSemanticDraftName, renderGeneratedSqlDqlArtifact, upsertGeneratedDqlArtifactDraft, upsertGeneratedDraft, } from "./metadata/drafts.js";
|
|
44
58
|
export { persistOwner, readPersistedOwner, resolveLocalOwner, } from "./metadata/identity.js";
|
|
45
59
|
export { propose, proposePlan, buildProposePreview, buildFromPrompt, loadDbtArtifacts, upsertProposedDraft, renderProposedDraft, blockSlug, resolveProposeConfig, DEFAULT_PROPOSE_CONFIG, classifyModel, resolveDomain, enrichProposal, enrichProposals, } from "./propose/index.js";
|
|
46
60
|
export { reflectAndReviseBlock } from "./propose/index.js";
|
|
@@ -51,7 +65,8 @@ export { retrieveScopedHints, } from "./hints/retrieval.js";
|
|
|
51
65
|
export { hintAppliesToScope, hintsConflict, } from "./hints/types.js";
|
|
52
66
|
// --- Pluggable semantic retrieval (embeddings) ---
|
|
53
67
|
export { HashedTokenEmbeddingProvider, defaultEmbeddingProvider, cosineSimilarity, hybridRank, } from "./embeddings/provider.js";
|
|
54
|
-
export {
|
|
68
|
+
export { buildRuntimeValueIndex, normalizeValueIndexText, } from "./grounding/value-index.js";
|
|
69
|
+
export { ClaudeProvider, OpenAIProvider, GeminiProvider, OllamaProvider, pickProvider, buildProvider, streamOrGenerate, normalizeAnthropicBaseUrl, normalizeGeminiBaseUrl, REASONING_EFFORTS, isReasoningEffort, coerceReasoningEffort, clampReasoningEffort, bumpReasoningEffort, supportsReasoningEffort, geminiReasoningStyle, effortToThinkingBudget, } from "./providers/index.js";
|
|
55
70
|
/**
|
|
56
71
|
* Default location for the agent's SQLite KG file.
|
|
57
72
|
* Mirrors the manifest cache layout under `.dql/cache/`.
|
|
@@ -88,17 +103,22 @@ export async function reindexProject(projectRoot, opts = {}) {
|
|
|
88
103
|
}
|
|
89
104
|
}
|
|
90
105
|
({ nodes, edges } = dedupeGraph(nodes, edges));
|
|
106
|
+
const kgFingerprint = fingerprintKgGraph(nodes, edges);
|
|
91
107
|
const kg = new KGStore(opts.kgPath ?? defaultKgPath(projectRoot));
|
|
108
|
+
let kgRebuilt = false;
|
|
92
109
|
try {
|
|
93
|
-
kg.
|
|
110
|
+
if (opts.forceKgIndex || kg.meta("fingerprint") !== kgFingerprint) {
|
|
111
|
+
kg.rebuild(nodes, edges, { fingerprint: kgFingerprint });
|
|
112
|
+
kgRebuilt = true;
|
|
113
|
+
}
|
|
94
114
|
}
|
|
95
115
|
finally {
|
|
96
116
|
kg.close();
|
|
97
117
|
}
|
|
98
|
-
await ensureMetadataCatalogFresh(projectRoot, {
|
|
118
|
+
const metadataRefresh = await ensureMetadataCatalogFresh(projectRoot, {
|
|
99
119
|
manifest,
|
|
100
120
|
semanticLayer,
|
|
101
|
-
force:
|
|
121
|
+
force: opts.forceMetadataCatalog,
|
|
102
122
|
});
|
|
103
123
|
// Rebuild the approved-hint index (Git authoritative; SQLite is a view). Safe
|
|
104
124
|
// when no hints exist — yields an empty index.
|
|
@@ -108,7 +128,15 @@ export async function reindexProject(projectRoot, opts = {}) {
|
|
|
108
128
|
catch {
|
|
109
129
|
// Hint indexing is advisory; never fail a reindex over it.
|
|
110
130
|
}
|
|
111
|
-
return {
|
|
131
|
+
return {
|
|
132
|
+
nodes: nodes.length,
|
|
133
|
+
edges: edges.length,
|
|
134
|
+
skills: skills.length,
|
|
135
|
+
kgRebuilt,
|
|
136
|
+
metadataRefreshed: metadataRefresh.refreshed,
|
|
137
|
+
kgFingerprint,
|
|
138
|
+
metadataFingerprint: metadataRefresh.fingerprint,
|
|
139
|
+
};
|
|
112
140
|
}
|
|
113
141
|
/**
|
|
114
142
|
* Promotion suggester — surface uncertified answers that have accumulated
|
|
@@ -139,7 +167,7 @@ function loadManifest(projectRoot) {
|
|
|
139
167
|
dbtManifestPath: resolveDbtManifestPath(projectRoot) ?? undefined,
|
|
140
168
|
});
|
|
141
169
|
}
|
|
142
|
-
function loadAgentSemanticLayer(projectRoot) {
|
|
170
|
+
export function loadAgentSemanticLayer(projectRoot) {
|
|
143
171
|
const config = loadProjectConfig(projectRoot);
|
|
144
172
|
const semanticConfig = config.semanticLayer?.provider
|
|
145
173
|
? config.semanticLayer
|
|
@@ -147,15 +175,27 @@ function loadAgentSemanticLayer(projectRoot) {
|
|
|
147
175
|
? { provider: "dql", path: config.semanticLayer.path }
|
|
148
176
|
: undefined;
|
|
149
177
|
const configured = resolveSemanticLayerWithDiagnostics(semanticConfig, projectRoot).layer;
|
|
150
|
-
|
|
178
|
+
// An empty configured layer (scaffold default `provider: 'dql'` with no
|
|
179
|
+
// definitions) must not shadow a real dbt MetricFlow layer — that would strip
|
|
180
|
+
// every metric/dimension/measure node from the KG and disable the governed
|
|
181
|
+
// metric answer tier. Substance wins over configuration.
|
|
182
|
+
if (configured && semanticLayerHasContent(configured))
|
|
151
183
|
return configured;
|
|
152
184
|
if (config.dbt?.projectDir) {
|
|
153
|
-
|
|
185
|
+
const dbtLayer = resolveSemanticLayerWithDiagnostics({
|
|
154
186
|
provider: "dbt",
|
|
155
187
|
projectPath: config.dbt.projectDir,
|
|
156
188
|
}, projectRoot).layer;
|
|
189
|
+
if (dbtLayer && semanticLayerHasContent(dbtLayer))
|
|
190
|
+
return dbtLayer;
|
|
157
191
|
}
|
|
158
|
-
return undefined;
|
|
192
|
+
return configured ?? undefined;
|
|
193
|
+
}
|
|
194
|
+
/** True when the layer defines ANY semantics — metrics, dimensions, or measures. */
|
|
195
|
+
function semanticLayerHasContent(layer) {
|
|
196
|
+
return layer.listMetrics().length > 0
|
|
197
|
+
|| layer.listDimensions().length > 0
|
|
198
|
+
|| layer.listMeasures().length > 0;
|
|
159
199
|
}
|
|
160
200
|
function dedupeGraph(nodes, edges) {
|
|
161
201
|
const byId = new Map();
|
|
@@ -188,4 +228,55 @@ function mergeNode(a, b) {
|
|
|
188
228
|
gitSha: b.gitSha ?? a.gitSha,
|
|
189
229
|
};
|
|
190
230
|
}
|
|
231
|
+
function fingerprintKgGraph(nodes, edges) {
|
|
232
|
+
const stableNodes = nodes
|
|
233
|
+
.map((node) => stripUndefinedDeep(node))
|
|
234
|
+
.sort((a, b) => String(a.nodeId).localeCompare(String(b.nodeId)));
|
|
235
|
+
const stableEdges = edges
|
|
236
|
+
.map((edge) => stripUndefinedDeep(edge))
|
|
237
|
+
.sort((a, b) => [
|
|
238
|
+
String(a.src).localeCompare(String(b.src)),
|
|
239
|
+
String(a.dst).localeCompare(String(b.dst)),
|
|
240
|
+
String(a.kind).localeCompare(String(b.kind)),
|
|
241
|
+
].find((cmp) => cmp !== 0) ?? 0);
|
|
242
|
+
return createHash("sha256")
|
|
243
|
+
.update(stableStringify({ nodes: stableNodes, edges: stableEdges }))
|
|
244
|
+
.digest("hex");
|
|
245
|
+
}
|
|
246
|
+
function stableStringify(value, seen = new WeakSet()) {
|
|
247
|
+
if (value === undefined)
|
|
248
|
+
return "null";
|
|
249
|
+
if (value === null || typeof value !== "object")
|
|
250
|
+
return JSON.stringify(value);
|
|
251
|
+
if (seen.has(value))
|
|
252
|
+
return "\"[Circular]\"";
|
|
253
|
+
seen.add(value);
|
|
254
|
+
if (Array.isArray(value)) {
|
|
255
|
+
const out = `[${value.map((item) => stableStringify(item, seen)).join(",")}]`;
|
|
256
|
+
seen.delete(value);
|
|
257
|
+
return out;
|
|
258
|
+
}
|
|
259
|
+
const record = value;
|
|
260
|
+
const out = `{${Object.keys(record)
|
|
261
|
+
.sort()
|
|
262
|
+
.map((key) => `${JSON.stringify(key)}:${stableStringify(record[key], seen)}`)
|
|
263
|
+
.join(",")}}`;
|
|
264
|
+
seen.delete(value);
|
|
265
|
+
return out;
|
|
266
|
+
}
|
|
267
|
+
function stripUndefinedDeep(value) {
|
|
268
|
+
if (Array.isArray(value)) {
|
|
269
|
+
return value.map((item) => stripUndefinedDeep(item));
|
|
270
|
+
}
|
|
271
|
+
if (!value || typeof value !== "object") {
|
|
272
|
+
return value;
|
|
273
|
+
}
|
|
274
|
+
const out = {};
|
|
275
|
+
for (const [key, raw] of Object.entries(value)) {
|
|
276
|
+
if (raw === undefined)
|
|
277
|
+
continue;
|
|
278
|
+
out[key] = stripUndefinedDeep(raw);
|
|
279
|
+
}
|
|
280
|
+
return out;
|
|
281
|
+
}
|
|
191
282
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -54,6 +54,13 @@ export interface IntentDecision {
|
|
|
54
54
|
reason: string;
|
|
55
55
|
/** Present when action is clarify: the single question to ask. */
|
|
56
56
|
clarifyingQuestion?: string;
|
|
57
|
+
/**
|
|
58
|
+
* True when this clarify is a SOFT fallback ("nothing governed matched") rather
|
|
59
|
+
* than a genuine missing-context / explicit-clarify / trust-review ask. A soft
|
|
60
|
+
* clarify may be answered anyway (best-effort, labeled) for any audience instead
|
|
61
|
+
* of dead-ending; the answer loop can still clarify if it truly can't proceed.
|
|
62
|
+
*/
|
|
63
|
+
clarifySoft?: boolean;
|
|
57
64
|
/** True when the turn references prior context ("it", "that", "why", "more"). */
|
|
58
65
|
followsUp: boolean;
|
|
59
66
|
/** For converse: which conversational kind was detected. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intent-controller.d.ts","sourceRoot":"","sources":["../src/intent-controller.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,4DAA4D;AAC5D,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,aAAa,GAAG,aAAa,GAAG,UAAU,CAAC;AAE5F;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,WAAW,GAAG,iBAAiB,GAAG,WAAW,CAAC;AAE5F,MAAM,WAAW,aAAa;IAC5B,0DAA0D;IAC1D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uDAAuD;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sEAAsE;IACtE,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,wEAAwE;IACxE,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,MAAM,EAAE,mBAAmB,CAAC;IAC5B,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,iFAAiF;IACjF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4EAA4E;IAC5E,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC/D;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,WAAW,CAAC;IACpB,6CAA6C;IAC7C,UAAU,EAAE,MAAM,CAAC;IACnB,8DAA8D;IAC9D,MAAM,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iFAAiF;IACjF,SAAS,EAAE,OAAO,CAAC;IACnB,4DAA4D;IAC5D,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,iFAAiF;IACjF,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,qFAAqF;IACrF,QAAQ,CAAC,EACL,gBAAgB,GAChB,YAAY,GACZ,mBAAmB,GACnB,aAAa,GACb,eAAe,GACf,WAAW,GACX,KAAK,GACL,SAAS,CAAC;IACd,mFAAmF;IACnF,MAAM,CAAC,EAAE,WAAW,GAAG,KAAK,GAAG,OAAO,CAAC;CACxC;
|
|
1
|
+
{"version":3,"file":"intent-controller.d.ts","sourceRoot":"","sources":["../src/intent-controller.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,4DAA4D;AAC5D,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,aAAa,GAAG,aAAa,GAAG,UAAU,CAAC;AAE5F;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,WAAW,GAAG,iBAAiB,GAAG,WAAW,CAAC;AAE5F,MAAM,WAAW,aAAa;IAC5B,0DAA0D;IAC1D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uDAAuD;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sEAAsE;IACtE,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,wEAAwE;IACxE,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,MAAM,EAAE,mBAAmB,CAAC;IAC5B,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,iFAAiF;IACjF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4EAA4E;IAC5E,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC/D;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,WAAW,CAAC;IACpB,6CAA6C;IAC7C,UAAU,EAAE,MAAM,CAAC;IACnB,8DAA8D;IAC9D,MAAM,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;;OAKG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iFAAiF;IACjF,SAAS,EAAE,OAAO,CAAC;IACnB,4DAA4D;IAC5D,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,iFAAiF;IACjF,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,qFAAqF;IACrF,QAAQ,CAAC,EACL,gBAAgB,GAChB,YAAY,GACZ,mBAAmB,GACnB,aAAa,GACb,eAAe,GACf,WAAW,GACX,KAAK,GACL,SAAS,CAAC;IACd,mFAAmF;IACnF,MAAM,CAAC,EAAE,WAAW,GAAG,KAAK,GAAG,OAAO,CAAC;CACxC;AA6DD;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,MAAM,EAChB,UAAU,UAAQ,GACjB,kBAAkB,GAAG,SAAS,CAgBhC;AAED,4EAA4E;AAC5E,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE7D;AAED,yEAAyE;AACzE,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,GAAG,OAAO,CAMhF;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,mBAAmB,GAAG,cAAc,CAqH5E"}
|
|
@@ -57,6 +57,7 @@ const GREETING_RE = /^\s*(hi|hey|hello|yo|howdy|hiya|heya|good\s+(morning|aftern
|
|
|
57
57
|
const GRATITUDE_RE = /^\s*(thanks?|thank\s+you|thx|ty|cheers|nice|cool|awesome|great|perfect|got\s+it|makes\s+sense|ok(ay)?|sounds?\s+good|bye|goodbye|see\s+ya|later)\b[\s!.,]*$/i;
|
|
58
58
|
/** Meta / capability questions about the assistant itself. */
|
|
59
59
|
const META_CAPABILITY_RE = /\b(what\s+can\s+you\s+do|what\s+do\s+you\s+do|how\s+do\s+(you|i)\s+(work|use)|who\s+are\s+you|what\s+are\s+you|what\s+is\s+dql|help\s+me\s+get\s+started|how\s+can\s+you\s+help|what\s+should\s+i\s+ask|how\s+does\s+this\s+work|are\s+you\s+(an?\s+)?(ai|bot|llm))\b/i;
|
|
60
|
+
const CONTEXT_RECAP_RE = /\b(what\s+(?:are|were)\s+we\s+talking\s+about|what\s+we\s+(?:are|were)\s+talking\s+about|what\s+is\s+this\s+about|where\s+were\s+we|remind\s+me|recap(?:\s+this)?|summari[sz]e\s+(?:this|our\s+conversation))\b/i;
|
|
60
61
|
/**
|
|
61
62
|
* Classify a turn as conversational (greeting / gratitude / meta-capability /
|
|
62
63
|
* light small talk) when it deserves a plain reply rather than data routing.
|
|
@@ -73,6 +74,8 @@ export function classifyConversationalTurn(question, hasHistory = false) {
|
|
|
73
74
|
const words = trimmed.split(/\s+/).length;
|
|
74
75
|
if (META_CAPABILITY_RE.test(trimmed))
|
|
75
76
|
return 'meta_capability';
|
|
77
|
+
if (hasHistory && CONTEXT_RECAP_RE.test(trimmed))
|
|
78
|
+
return 'smalltalk';
|
|
76
79
|
// Short openers/closers only — a long sentence starting with "hi" is likely a real ask.
|
|
77
80
|
if (words <= 6 && GREETING_RE.test(trimmed))
|
|
78
81
|
return 'greeting';
|
|
@@ -132,6 +135,21 @@ export function decideAgentAction(input) {
|
|
|
132
135
|
followsUp,
|
|
133
136
|
};
|
|
134
137
|
}
|
|
138
|
+
// 1b) A turn that ANSWERS a prior clarifying question must proceed to a real
|
|
139
|
+
// answer — never clarify again. Short replies ("top 5", "yes") aren't deictic
|
|
140
|
+
// follow-ups, so without this the router re-clarifies every time and loops
|
|
141
|
+
// forever. The user gave the detail we asked for; the answer loop cascades
|
|
142
|
+
// (certified → semantic → generated) and can still clarify itself only if it
|
|
143
|
+
// genuinely cannot proceed.
|
|
144
|
+
const priorAssistant = [...(input.history ?? [])].reverse().find((turn) => turn.role === 'assistant');
|
|
145
|
+
if (priorAssistant && priorAssistant.text.trim().endsWith('?')) {
|
|
146
|
+
return {
|
|
147
|
+
action: 'answer',
|
|
148
|
+
confidence: 0.6,
|
|
149
|
+
reason: 'This answers a clarifying question, so I will produce a best-effort governed answer now instead of asking again.',
|
|
150
|
+
followsUp: true,
|
|
151
|
+
};
|
|
152
|
+
}
|
|
135
153
|
// 2) EXPLICIT investigation ("why / root cause / what happened") wins even over a
|
|
136
154
|
// metric match — returning a single number would miss the point of the ask.
|
|
137
155
|
if (STRONG_INVESTIGATE_RE.test(question) || DIAGNOSTIC_INTENTS.has(intent)) {
|
|
@@ -183,10 +201,13 @@ export function decideAgentAction(input) {
|
|
|
183
201
|
};
|
|
184
202
|
}
|
|
185
203
|
// 6) Default: nothing governed matched and it is not clearly analytical → clarify
|
|
186
|
-
// honestly rather than guess.
|
|
204
|
+
// honestly rather than guess. Marked SOFT so an analyst/stakeholder still gets a
|
|
205
|
+
// best-effort grounded answer instead of a dead-end (the answer loop re-grounds
|
|
206
|
+
// and can clarify itself if it genuinely can't proceed).
|
|
187
207
|
return {
|
|
188
208
|
action: 'clarify',
|
|
189
209
|
confidence: 0.5,
|
|
210
|
+
clarifySoft: true,
|
|
190
211
|
reason: 'I could not match this to a certified block, governed metric, or clear analysis, so I will ask for the missing detail.',
|
|
191
212
|
clarifyingQuestion: buildClarifyingQuestion(question, signals),
|
|
192
213
|
followsUp,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intent-controller.js","sourceRoot":"","sources":["../src/intent-controller.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;
|
|
1
|
+
{"version":3,"file":"intent-controller.js","sourceRoot":"","sources":["../src/intent-controller.ts"],"names":[],"mappings":"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"}
|
package/dist/kg/build.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/kg/build.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EACV,WAAW,EAIX,aAAa,EACd,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/kg/build.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EACV,WAAW,EAIX,aAAa,EACd,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAA+B,MAAM,YAAY,CAAC;AAG9E,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,WAAW,GAAG;IAC1D,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB,CAwUA;AAoCD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,aAAa,GAAG,SAAS,GAAG;IAC1E,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB,CAqLA"}
|
package/dist/kg/build.js
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
*
|
|
9
9
|
* The output is intentionally flat — caller passes it to `KGStore.rebuild()`.
|
|
10
10
|
*/
|
|
11
|
+
import { trustLabelIdForStatus } from '@duckcodeailabs/dql-core';
|
|
11
12
|
import { buildBlockBusinessFingerprint, buildBlockSqlFingerprints } from '../metadata/block-fingerprints.js';
|
|
12
13
|
export function buildKGFromManifest(manifest) {
|
|
13
14
|
const nodes = [];
|
|
@@ -39,6 +40,9 @@ export function buildKGFromManifest(manifest) {
|
|
|
39
40
|
// Blocks
|
|
40
41
|
for (const block of Object.values(manifest.blocks)) {
|
|
41
42
|
const nodeId = `block:${block.name}`;
|
|
43
|
+
const contractOutputNames = block.declaredOutputs
|
|
44
|
+
?? block.outputContract?.map((output) => output.name).filter(Boolean)
|
|
45
|
+
?? block.outputs?.map((output) => output.name).filter(Boolean);
|
|
42
46
|
nodes.push({
|
|
43
47
|
nodeId,
|
|
44
48
|
kind: 'block',
|
|
@@ -50,6 +54,7 @@ export function buildKGFromManifest(manifest) {
|
|
|
50
54
|
tags: block.tags ?? [],
|
|
51
55
|
llmContext: block.llmContext,
|
|
52
56
|
examples: block.examples,
|
|
57
|
+
sql: block.sql,
|
|
53
58
|
businessOutcome: block.businessOutcome,
|
|
54
59
|
businessOwner: block.businessOwner,
|
|
55
60
|
decisionUse: block.decisionUse,
|
|
@@ -58,6 +63,8 @@ export function buildKGFromManifest(manifest) {
|
|
|
58
63
|
grain: block.grain,
|
|
59
64
|
entities: block.entities,
|
|
60
65
|
declaredOutputs: block.declaredOutputs,
|
|
66
|
+
outputs: block.outputs,
|
|
67
|
+
outputContract: block.outputContract,
|
|
61
68
|
dimensions: block.dimensions,
|
|
62
69
|
allowedFilters: block.allowedFilters,
|
|
63
70
|
parameterPolicy: block.parameterPolicy,
|
|
@@ -72,7 +79,7 @@ export function buildKGFromManifest(manifest) {
|
|
|
72
79
|
grain: block.grain,
|
|
73
80
|
entities: block.entities,
|
|
74
81
|
terms: block.termRefs,
|
|
75
|
-
outputs:
|
|
82
|
+
outputs: contractOutputNames,
|
|
76
83
|
dimensions: block.dimensions,
|
|
77
84
|
filters: block.allowedFilters,
|
|
78
85
|
sources: [...(block.tableDependencies ?? []), ...(block.rawTableRefs ?? [])],
|
|
@@ -85,7 +92,7 @@ export function buildKGFromManifest(manifest) {
|
|
|
85
92
|
dataStateDetail: block.dataStateDetail,
|
|
86
93
|
sourcePath: block.filePath,
|
|
87
94
|
sourceTier: 'certified_artifact',
|
|
88
|
-
certification: block.status
|
|
95
|
+
certification: certificationFromStatus(block.status),
|
|
89
96
|
provenance: 'DQL block',
|
|
90
97
|
});
|
|
91
98
|
for (const termRef of block.termRefs ?? []) {
|
|
@@ -144,7 +151,7 @@ export function buildKGFromManifest(manifest) {
|
|
|
144
151
|
llmContext: cellSummary || undefined,
|
|
145
152
|
sourcePath: nb.filePath,
|
|
146
153
|
sourceTier: 'certified_artifact',
|
|
147
|
-
certification: '
|
|
154
|
+
certification: 'ai_generated',
|
|
148
155
|
provenance: 'DQL notebook',
|
|
149
156
|
});
|
|
150
157
|
for (const cell of nb.cells) {
|
|
@@ -162,10 +169,13 @@ export function buildKGFromManifest(manifest) {
|
|
|
162
169
|
kind: 'metric',
|
|
163
170
|
name: m.name,
|
|
164
171
|
domain: m.domain,
|
|
172
|
+
status: m.status,
|
|
173
|
+
owner: m.owner,
|
|
165
174
|
description: m.description,
|
|
175
|
+
tags: m.tags ?? [],
|
|
166
176
|
sourcePath: m.filePath,
|
|
167
177
|
sourceTier: 'semantic_layer',
|
|
168
|
-
certification:
|
|
178
|
+
certification: certificationFromStatus(m.status),
|
|
169
179
|
provenance: 'DQL semantic metric',
|
|
170
180
|
});
|
|
171
181
|
}
|
|
@@ -176,10 +186,14 @@ export function buildKGFromManifest(manifest) {
|
|
|
176
186
|
nodeId,
|
|
177
187
|
kind: 'dimension',
|
|
178
188
|
name: d.name,
|
|
189
|
+
domain: d.domain,
|
|
190
|
+
status: d.status,
|
|
191
|
+
owner: d.owner,
|
|
179
192
|
description: d.description,
|
|
193
|
+
tags: d.tags ?? [],
|
|
180
194
|
sourcePath: d.filePath,
|
|
181
195
|
sourceTier: 'semantic_layer',
|
|
182
|
-
certification:
|
|
196
|
+
certification: certificationFromStatus(d.status),
|
|
183
197
|
provenance: 'DQL semantic dimension',
|
|
184
198
|
});
|
|
185
199
|
}
|
|
@@ -208,7 +222,7 @@ export function buildKGFromManifest(manifest) {
|
|
|
208
222
|
kind: 'dashboard',
|
|
209
223
|
name: d.title,
|
|
210
224
|
domain: d.domain,
|
|
211
|
-
status:
|
|
225
|
+
status: d.lifecycle,
|
|
212
226
|
description: d.description,
|
|
213
227
|
tags: d.tags ?? [],
|
|
214
228
|
businessOutcome: d.businessOutcome,
|
|
@@ -219,7 +233,7 @@ export function buildKGFromManifest(manifest) {
|
|
|
219
233
|
caveats: d.caveats,
|
|
220
234
|
sourcePath: d.filePath,
|
|
221
235
|
sourceTier: 'certified_artifact',
|
|
222
|
-
certification:
|
|
236
|
+
certification: certificationFromStatus(d.lifecycle),
|
|
223
237
|
provenance: 'DQL dashboard',
|
|
224
238
|
});
|
|
225
239
|
for (const blockId of d.blockIds) {
|
|
@@ -237,7 +251,7 @@ export function buildKGFromManifest(manifest) {
|
|
|
237
251
|
kind: 'app',
|
|
238
252
|
name: a.name,
|
|
239
253
|
domain: a.domain,
|
|
240
|
-
status:
|
|
254
|
+
status: a.lifecycle,
|
|
241
255
|
owner: a.owners[0],
|
|
242
256
|
description: a.description,
|
|
243
257
|
tags: a.tags ?? [],
|
|
@@ -249,7 +263,7 @@ export function buildKGFromManifest(manifest) {
|
|
|
249
263
|
caveats: a.caveats,
|
|
250
264
|
sourcePath: a.filePath,
|
|
251
265
|
sourceTier: 'certified_artifact',
|
|
252
|
-
certification:
|
|
266
|
+
certification: certificationFromStatus(a.lifecycle),
|
|
253
267
|
provenance: 'DQL app',
|
|
254
268
|
});
|
|
255
269
|
for (const dashboardId of a.dashboards) {
|
|
@@ -277,7 +291,7 @@ export function buildKGFromManifest(manifest) {
|
|
|
277
291
|
primaryTerms: domain.primaryTerms,
|
|
278
292
|
sourcePath: domain.filePath,
|
|
279
293
|
sourceTier: 'business_context',
|
|
280
|
-
certification: '
|
|
294
|
+
certification: 'ai_generated',
|
|
281
295
|
provenance: 'DQL domain',
|
|
282
296
|
});
|
|
283
297
|
}
|
|
@@ -336,7 +350,8 @@ export function buildKGFromManifest(manifest) {
|
|
|
336
350
|
return { nodes, edges };
|
|
337
351
|
}
|
|
338
352
|
function certificationFromStatus(status) {
|
|
339
|
-
|
|
353
|
+
const label = trustLabelIdForStatus(status);
|
|
354
|
+
return !status && label === 'insufficient_context' ? 'ai_generated' : label;
|
|
340
355
|
}
|
|
341
356
|
function termTags(term) {
|
|
342
357
|
return Array.from(new Set([
|
|
@@ -376,6 +391,7 @@ export function buildKGFromSemanticLayer(layer) {
|
|
|
376
391
|
kind: 'metric',
|
|
377
392
|
name: qualifiedSemanticName(metric.cube, metric.name),
|
|
378
393
|
domain: metric.domain,
|
|
394
|
+
status: metric.status,
|
|
379
395
|
owner: metric.owner,
|
|
380
396
|
description: metric.description,
|
|
381
397
|
tags: metric.tags ?? [],
|
|
@@ -388,7 +404,7 @@ export function buildKGFromSemanticLayer(layer) {
|
|
|
388
404
|
metric.sql ? `sql: ${metric.sql}` : '',
|
|
389
405
|
].filter(Boolean).join('\n') || undefined,
|
|
390
406
|
sourceTier: 'semantic_layer',
|
|
391
|
-
certification:
|
|
407
|
+
certification: certificationFromStatus(metric.status),
|
|
392
408
|
provenance: metric.source?.provider === 'dbt'
|
|
393
409
|
? `dbt ${metric.source.objectType}`
|
|
394
410
|
: metric.source?.provider ?? 'semantic layer',
|
|
@@ -404,6 +420,7 @@ export function buildKGFromSemanticLayer(layer) {
|
|
|
404
420
|
kind: 'dimension',
|
|
405
421
|
name: qualifiedSemanticName(dimension.cube, dimension.name),
|
|
406
422
|
domain: dimension.domain,
|
|
423
|
+
status: dimension.status,
|
|
407
424
|
owner: dimension.owner,
|
|
408
425
|
description: dimension.description,
|
|
409
426
|
tags: dimension.tags ?? [],
|
|
@@ -415,7 +432,7 @@ export function buildKGFromSemanticLayer(layer) {
|
|
|
415
432
|
dimension.sql ? `sql: ${dimension.sql}` : '',
|
|
416
433
|
].filter(Boolean).join('\n') || undefined,
|
|
417
434
|
sourceTier: 'semantic_layer',
|
|
418
|
-
certification:
|
|
435
|
+
certification: certificationFromStatus(dimension.status),
|
|
419
436
|
provenance: dimension.source?.provider === 'dbt'
|
|
420
437
|
? `dbt ${dimension.source.objectType}`
|
|
421
438
|
: dimension.source?.provider ?? 'semantic layer',
|
|
@@ -431,6 +448,7 @@ export function buildKGFromSemanticLayer(layer) {
|
|
|
431
448
|
kind: 'measure',
|
|
432
449
|
name: qualifiedSemanticName(measure.cube, measure.name),
|
|
433
450
|
domain: measure.domain,
|
|
451
|
+
status: semanticObjectStatus(measure),
|
|
434
452
|
owner: measure.owner,
|
|
435
453
|
description: measure.description,
|
|
436
454
|
tags: measure.tags ?? [],
|
|
@@ -443,7 +461,7 @@ export function buildKGFromSemanticLayer(layer) {
|
|
|
443
461
|
measure.aggTimeDimension ? `agg_time_dimension: ${measure.aggTimeDimension}` : '',
|
|
444
462
|
].filter(Boolean).join('\n') || undefined,
|
|
445
463
|
sourceTier: 'semantic_layer',
|
|
446
|
-
certification:
|
|
464
|
+
certification: certificationFromStatus(semanticObjectStatus(measure)),
|
|
447
465
|
provenance: measure.source?.provider === 'dbt'
|
|
448
466
|
? `dbt ${measure.source.objectType}`
|
|
449
467
|
: measure.source?.provider ?? 'semantic layer',
|
|
@@ -459,6 +477,7 @@ export function buildKGFromSemanticLayer(layer) {
|
|
|
459
477
|
kind: 'entity',
|
|
460
478
|
name: qualifiedSemanticName(entity.cube, entity.name),
|
|
461
479
|
domain: entity.domain,
|
|
480
|
+
status: semanticObjectStatus(entity),
|
|
462
481
|
owner: entity.owner,
|
|
463
482
|
description: entity.description,
|
|
464
483
|
tags: entity.tags ?? [],
|
|
@@ -470,7 +489,7 @@ export function buildKGFromSemanticLayer(layer) {
|
|
|
470
489
|
entity.expr ? `expr: ${entity.expr}` : '',
|
|
471
490
|
].filter(Boolean).join('\n') || undefined,
|
|
472
491
|
sourceTier: 'semantic_layer',
|
|
473
|
-
certification:
|
|
492
|
+
certification: certificationFromStatus(semanticObjectStatus(entity)),
|
|
474
493
|
provenance: entity.source?.provider === 'dbt'
|
|
475
494
|
? `dbt ${entity.source.objectType}`
|
|
476
495
|
: entity.source?.provider ?? 'semantic layer',
|
|
@@ -486,6 +505,7 @@ export function buildKGFromSemanticLayer(layer) {
|
|
|
486
505
|
kind: 'semantic_model',
|
|
487
506
|
name: model.name,
|
|
488
507
|
domain: model.domain,
|
|
508
|
+
status: semanticObjectStatus(model),
|
|
489
509
|
owner: model.owner,
|
|
490
510
|
description: model.description,
|
|
491
511
|
tags: model.tags ?? [],
|
|
@@ -500,7 +520,7 @@ export function buildKGFromSemanticLayer(layer) {
|
|
|
500
520
|
model.timeDimensions.length ? `time_dimensions: ${model.timeDimensions.join(', ')}` : '',
|
|
501
521
|
].filter(Boolean).join('\n') || undefined,
|
|
502
522
|
sourceTier: 'semantic_layer',
|
|
503
|
-
certification:
|
|
523
|
+
certification: certificationFromStatus(semanticObjectStatus(model)),
|
|
504
524
|
provenance: model.source?.provider === 'dbt'
|
|
505
525
|
? `dbt ${model.source.objectType}`
|
|
506
526
|
: model.source?.provider ?? 'semantic layer',
|
|
@@ -516,6 +536,7 @@ export function buildKGFromSemanticLayer(layer) {
|
|
|
516
536
|
kind: 'saved_query',
|
|
517
537
|
name: query.name,
|
|
518
538
|
domain: query.domain,
|
|
539
|
+
status: semanticObjectStatus(query),
|
|
519
540
|
owner: query.owner,
|
|
520
541
|
description: query.description,
|
|
521
542
|
tags: query.tags ?? [],
|
|
@@ -528,7 +549,7 @@ export function buildKGFromSemanticLayer(layer) {
|
|
|
528
549
|
query.granularity ? `granularity: ${query.granularity}` : '',
|
|
529
550
|
].filter(Boolean).join('\n') || undefined,
|
|
530
551
|
sourceTier: 'semantic_layer',
|
|
531
|
-
certification:
|
|
552
|
+
certification: certificationFromStatus(semanticObjectStatus(query)),
|
|
532
553
|
provenance: query.source?.provider === 'dbt'
|
|
533
554
|
? `dbt ${query.source.objectType}`
|
|
534
555
|
: query.source?.provider ?? 'semantic layer',
|
|
@@ -548,6 +569,12 @@ function semanticSourcePath(extra) {
|
|
|
548
569
|
const path = extra?.path ?? (extra?.raw && typeof extra.raw === 'object' ? extra.raw.original_file_path : undefined);
|
|
549
570
|
return typeof path === 'string' ? path : undefined;
|
|
550
571
|
}
|
|
572
|
+
function semanticObjectStatus(value) {
|
|
573
|
+
if (!value || typeof value !== 'object')
|
|
574
|
+
return undefined;
|
|
575
|
+
const record = value;
|
|
576
|
+
return typeof record.status === 'string' && record.status.trim().length > 0 ? record.status.trim() : undefined;
|
|
577
|
+
}
|
|
551
578
|
function renderColumnsContext(columns) {
|
|
552
579
|
const rendered = Object.values(columns)
|
|
553
580
|
.slice(0, 80)
|