@duckcodeailabs/dql-mcp 1.6.5 → 1.6.7
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/server.d.ts.map +1 -1
- package/dist/server.js +12 -6
- package/dist/server.js.map +1 -1
- package/dist/tools/kg.d.ts +26 -1
- package/dist/tools/kg.d.ts.map +1 -1
- package/dist/tools/kg.js +44 -4
- package/dist/tools/kg.js.map +1 -1
- package/dist/tools/list-proposals.d.ts +2 -2
- package/dist/tools/list-proposals.js +2 -2
- package/dist/tools/query-via-metadata.d.ts +178 -3
- package/dist/tools/query-via-metadata.d.ts.map +1 -1
- package/dist/tools/query-via-metadata.js +174 -102
- package/dist/tools/query-via-metadata.js.map +1 -1
- package/package.json +5 -5
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAoBpE,MAAM,WAAW,mBAAmB;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,oBAAoB,QAoBsD,CAAC;AAExF,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,mBAAwB,GAAG,SAAS,CAgG/E"}
|
package/dist/server.js
CHANGED
|
@@ -9,7 +9,7 @@ import { certify, certifyInput } from './tools/certify.js';
|
|
|
9
9
|
import { suggestBlock, suggestBlockInput } from './tools/suggest-block.js';
|
|
10
10
|
import { queryViaMetadata, queryViaMetadataInput } from './tools/query-via-metadata.js';
|
|
11
11
|
import { listProposals, listProposalsInput } from './tools/list-proposals.js';
|
|
12
|
-
import {
|
|
12
|
+
import { feedbackRecord, feedbackRecordInput, inspectMetadataContext, inspectMetadataContextInput, kgSearch, kgSearchInput, } from './tools/kg.js';
|
|
13
13
|
export const DQL_MCP_INSTRUCTIONS = 'DQL exposes governed analytics under graduated trust:\n' +
|
|
14
14
|
' Tier 1 — Use certified artifacts when the user asks for an exact saved block, ' +
|
|
15
15
|
'direct KPI, or definition. Discover candidates with `kg_search`, `search_blocks`, ' +
|
|
@@ -18,9 +18,11 @@ export const DQL_MCP_INSTRUCTIONS = 'DQL exposes governed analytics under gradua
|
|
|
18
18
|
'DataLex contract resolution when a DataLex manifest is loaded.\n' +
|
|
19
19
|
' Tier 2 — For named customer/user/account questions, custom filters, rankings, ' +
|
|
20
20
|
'breakdowns, comparisons, drill-throughs, or any different grain, use certified ' +
|
|
21
|
-
'blocks/terms only as context
|
|
22
|
-
'
|
|
23
|
-
'
|
|
21
|
+
'blocks/terms only as context. Call `inspect_metadata_context` first, then call ' +
|
|
22
|
+
'`query_via_metadata`; omit SQL when you need the route plan/allowed SQL context, ' +
|
|
23
|
+
'or provide read-only SQL inferred from the manifest, semantic layer, dbt/source ' +
|
|
24
|
+
'metadata, and runtime schema. Surface `uncertified: true` and the draft review ' +
|
|
25
|
+
'path verbatim.\n' +
|
|
24
26
|
' Tier 3 — If the available metadata does not identify a safe table, metric, ' +
|
|
25
27
|
'dimension, or grain, refuse and ask for the missing business object or metric.\n' +
|
|
26
28
|
'Other tools support the loop: `list_proposals` shows repeated Tier-2 drafts, ' +
|
|
@@ -39,7 +41,7 @@ export function createDQLMCPServer(options = {}) {
|
|
|
39
41
|
inputSchema: queryViaBlockInput,
|
|
40
42
|
}, async (args) => wrap(await queryViaBlock(ctx, args)));
|
|
41
43
|
server.registerTool('query_via_metadata', {
|
|
42
|
-
description: 'Tier-2 of graduated trust. Use when no certified block exactly answers the requested grain, including why-changed diagnostics, named customer/user/account filters, rankings, breakdowns, comparisons, anomalies, and drill-throughs.
|
|
44
|
+
description: 'Tier-2 of graduated trust. Use when no certified block exactly answers the requested grain, including why-changed diagnostics, named customer/user/account filters, rankings, breakdowns, comparisons, anomalies, and drill-throughs. Call inspect_metadata_context first; pass its contextPackId when available. If proposedSql is omitted, this returns the catalog route plan, allowed SQL context, and missing context. If proposedSql is supplied, it must be one read-only SELECT/WITH query using only inspected relations/columns. The runtime executes a bounded preview, returns `uncertified: true` plus trustStatus/evidence, and saves a draft block under blocks/_drafts/. Surface the `uncertified` flag and review path verbatim.',
|
|
43
45
|
inputSchema: queryViaMetadataInput,
|
|
44
46
|
}, async (args) => wrap(await queryViaMetadata(ctx, args)));
|
|
45
47
|
server.registerTool('list_proposals', {
|
|
@@ -54,7 +56,11 @@ export function createDQLMCPServer(options = {}) {
|
|
|
54
56
|
description: 'Write a curated proposed block to blocks/_drafts/ with a hand-shaped name + structure, plus the governance gate result. Use when proposing a SHARED building block on top of multiple Tier-2 proposals. For one-shot ad-hoc Tier-2 captures, use `query_via_metadata` instead — it auto-saves the draft.',
|
|
55
57
|
inputSchema: suggestBlockInput,
|
|
56
58
|
}, async (args) => wrap(await suggestBlock(ctx, args)));
|
|
57
|
-
server.registerTool('kg_search', { description: 'Search the agent knowledge graph (FTS5) over terms, business views, blocks, metrics, dimensions, dashboards, apps, notebooks, and dbt/source metadata.', inputSchema: kgSearchInput }, async (args) => wrap(kgSearch(ctx, args)));
|
|
59
|
+
server.registerTool('kg_search', { description: 'Search the agent knowledge graph (FTS5) over terms, business views, blocks, metrics, dimensions, dashboards, apps, notebooks, and dbt/source metadata.', inputSchema: kgSearchInput }, async (args) => wrap(await kgSearch(ctx, args)));
|
|
60
|
+
server.registerTool('inspect_metadata_context', {
|
|
61
|
+
description: 'Build the local SQLite metadata context pack for a question. Use before Tier-2 SQL generation to inspect certified blocks, semantic metrics, DQL terms/views, dbt/warehouse objects, lineage edges, diagnostics, selected evidence, rejected candidates, and trust labels.',
|
|
62
|
+
inputSchema: inspectMetadataContextInput,
|
|
63
|
+
}, async (args) => wrap(await inspectMetadataContext(ctx, args)));
|
|
58
64
|
server.registerTool('feedback_record', { description: 'Record thumbs-up/down feedback on an answer; feeds self-learning + promotion suggestions.', inputSchema: feedbackRecordInput }, async (args) => wrap(feedbackRecord(ctx, args)));
|
|
59
65
|
return server;
|
|
60
66
|
}
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACzG,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACxF,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/kg.d.ts
CHANGED
|
@@ -22,7 +22,7 @@ export declare function kgSearch(ctx: DQLContext, args: {
|
|
|
22
22
|
kinds?: string[];
|
|
23
23
|
domain?: string;
|
|
24
24
|
limit?: number;
|
|
25
|
-
}): {
|
|
25
|
+
}): Promise<{
|
|
26
26
|
hits: never[];
|
|
27
27
|
hint: string;
|
|
28
28
|
} | {
|
|
@@ -45,7 +45,32 @@ export declare function kgSearch(ctx: DQLContext, args: {
|
|
|
45
45
|
sourcePath: string | undefined;
|
|
46
46
|
}[];
|
|
47
47
|
hint?: undefined;
|
|
48
|
+
}>;
|
|
49
|
+
export declare const inspectMetadataContextInput: {
|
|
50
|
+
question: z.ZodString;
|
|
51
|
+
focusObjectKey: z.ZodOptional<z.ZodString>;
|
|
52
|
+
objectTypes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
53
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
48
54
|
};
|
|
55
|
+
export declare function inspectMetadataContext(ctx: DQLContext, args: {
|
|
56
|
+
question: string;
|
|
57
|
+
focusObjectKey?: string;
|
|
58
|
+
objectTypes?: string[];
|
|
59
|
+
limit?: number;
|
|
60
|
+
}): Promise<{
|
|
61
|
+
catalog: {
|
|
62
|
+
path: string;
|
|
63
|
+
refreshed: boolean;
|
|
64
|
+
objectCount: number;
|
|
65
|
+
edgeCount: number;
|
|
66
|
+
diagnostics: {
|
|
67
|
+
kind: string;
|
|
68
|
+
severity: "error";
|
|
69
|
+
message: string;
|
|
70
|
+
}[] | import("@duckcodeailabs/dql-agent").MetadataDiagnostic[];
|
|
71
|
+
};
|
|
72
|
+
contextPack: import("@duckcodeailabs/dql-agent").LocalContextPack;
|
|
73
|
+
}>;
|
|
49
74
|
export declare const feedbackRecordInput: {
|
|
50
75
|
user: z.ZodString;
|
|
51
76
|
question: z.ZodString;
|
package/dist/tools/kg.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kg.d.ts","sourceRoot":"","sources":["../../src/tools/kg.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,
|
|
1
|
+
{"version":3,"file":"kg.d.ts","sourceRoot":"","sources":["../../src/tools/kg.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAML,KAAK,UAAU,EAChB,MAAM,2BAA2B,CAAC;AAEnC,eAAO,MAAM,aAAa;;;;;CAczB,CAAC;AAEF,wBAAsB,QAAQ,CAC5B,GAAG,EAAE,UAAU,EACf,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;;;;;;;;;;;;;;;;;;;GA2C3E;AAED,eAAO,MAAM,2BAA2B;;;;;CAKvC,CAAC;AAEF,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,UAAU,EACf,IAAI,EAAE;IACJ,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;;;;;;;;;;;;;GA+BF;AAED,eAAO,MAAM,mBAAmB;;;;;;;CAO/B,CAAC;AAEF,wBAAgB,cAAc,CAC5B,GAAG,EAAE,UAAU,EACf,IAAI,EAAE;IACJ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,WAAW,GAAG,aAAa,CAAC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,IAAI,GAAG,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;;;;;;EAyBF"}
|
package/dist/tools/kg.js
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
*/
|
|
11
11
|
import { z } from 'zod';
|
|
12
12
|
import { existsSync } from 'node:fs';
|
|
13
|
-
import { KGStore, defaultKgPath } from '@duckcodeailabs/dql-agent';
|
|
13
|
+
import { KGStore, buildLocalContextPack, defaultKgPath, ensureMetadataCatalogFresh, reindexProject, } from '@duckcodeailabs/dql-agent';
|
|
14
14
|
export const kgSearchInput = {
|
|
15
15
|
query: z.string().describe('Natural-language or keyword query.'),
|
|
16
16
|
kinds: z
|
|
@@ -24,12 +24,15 @@ export const kgSearchInput = {
|
|
|
24
24
|
domain: z.string().optional().describe('Filter to a single business domain.'),
|
|
25
25
|
limit: z.number().int().min(1).max(50).optional().describe('Max hits (default 10).'),
|
|
26
26
|
};
|
|
27
|
-
export function kgSearch(ctx, args) {
|
|
27
|
+
export async function kgSearch(ctx, args) {
|
|
28
28
|
const path = defaultKgPath(ctx.projectRoot);
|
|
29
|
-
|
|
29
|
+
const refreshError = await reindexProject(ctx.projectRoot, { kgPath: path })
|
|
30
|
+
.then(() => null)
|
|
31
|
+
.catch((err) => err instanceof Error ? err.message : String(err));
|
|
32
|
+
if (refreshError) {
|
|
30
33
|
return {
|
|
31
34
|
hits: [],
|
|
32
|
-
hint: `KG
|
|
35
|
+
hint: `KG refresh failed: ${refreshError}`,
|
|
33
36
|
};
|
|
34
37
|
}
|
|
35
38
|
const kg = new KGStore(path);
|
|
@@ -65,6 +68,43 @@ export function kgSearch(ctx, args) {
|
|
|
65
68
|
kg.close();
|
|
66
69
|
}
|
|
67
70
|
}
|
|
71
|
+
export const inspectMetadataContextInput = {
|
|
72
|
+
question: z.string().describe('User question to ground in the local SQLite metadata catalog.'),
|
|
73
|
+
focusObjectKey: z.string().optional().describe('Optional object key, such as dql:block:Revenue or semantic:metric:revenue.'),
|
|
74
|
+
objectTypes: z.array(z.string()).optional().describe('Optional metadata object type filter.'),
|
|
75
|
+
limit: z.number().int().min(1).max(160).optional().describe('Maximum selected objects in the context pack.'),
|
|
76
|
+
};
|
|
77
|
+
export async function inspectMetadataContext(ctx, args) {
|
|
78
|
+
const refresh = await ensureMetadataCatalogFresh(ctx.projectRoot)
|
|
79
|
+
.catch((err) => ({
|
|
80
|
+
path: '',
|
|
81
|
+
refreshed: false,
|
|
82
|
+
objectCount: 0,
|
|
83
|
+
edgeCount: 0,
|
|
84
|
+
diagnostics: [{
|
|
85
|
+
kind: 'metadata',
|
|
86
|
+
severity: 'error',
|
|
87
|
+
message: err instanceof Error ? err.message : String(err),
|
|
88
|
+
}],
|
|
89
|
+
fingerprint: '',
|
|
90
|
+
}));
|
|
91
|
+
const contextPack = await buildLocalContextPack(ctx.projectRoot, {
|
|
92
|
+
question: args.question,
|
|
93
|
+
focusObjectKey: args.focusObjectKey,
|
|
94
|
+
objectTypes: args.objectTypes,
|
|
95
|
+
limit: args.limit,
|
|
96
|
+
});
|
|
97
|
+
return {
|
|
98
|
+
catalog: {
|
|
99
|
+
path: refresh.path || '.dql/cache/metadata.sqlite',
|
|
100
|
+
refreshed: refresh.refreshed,
|
|
101
|
+
objectCount: refresh.objectCount,
|
|
102
|
+
edgeCount: refresh.edgeCount,
|
|
103
|
+
diagnostics: refresh.diagnostics,
|
|
104
|
+
},
|
|
105
|
+
contextPack,
|
|
106
|
+
};
|
|
107
|
+
}
|
|
68
108
|
export const feedbackRecordInput = {
|
|
69
109
|
user: z.string().describe('User who submitted the feedback.'),
|
|
70
110
|
question: z.string().describe('Original question.'),
|
package/dist/tools/kg.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kg.js","sourceRoot":"","sources":["../../src/tools/kg.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,
|
|
1
|
+
{"version":3,"file":"kg.js","sourceRoot":"","sources":["../../src/tools/kg.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,8 +19,8 @@ export interface ProposalSummary {
|
|
|
19
19
|
}
|
|
20
20
|
/**
|
|
21
21
|
* The OSS-side review queue for the Tier-2 promotion loop. Reads
|
|
22
|
-
* `blocks/_drafts/*.dql` from the project, parses
|
|
23
|
-
*
|
|
22
|
+
* `blocks/_drafts/*.dql` from the project, parses Tier-2 proposal metadata
|
|
23
|
+
* fields out of each, and returns a list ranked by `askedTimes`
|
|
24
24
|
* descending — questions that get asked repeatedly are the strongest
|
|
25
25
|
* candidates for certification.
|
|
26
26
|
*
|
|
@@ -15,8 +15,8 @@ export const listProposalsInput = {
|
|
|
15
15
|
};
|
|
16
16
|
/**
|
|
17
17
|
* The OSS-side review queue for the Tier-2 promotion loop. Reads
|
|
18
|
-
* `blocks/_drafts/*.dql` from the project, parses
|
|
19
|
-
*
|
|
18
|
+
* `blocks/_drafts/*.dql` from the project, parses Tier-2 proposal metadata
|
|
19
|
+
* fields out of each, and returns a list ranked by `askedTimes`
|
|
20
20
|
* descending — questions that get asked repeatedly are the strongest
|
|
21
21
|
* candidates for certification.
|
|
22
22
|
*
|
|
@@ -1,10 +1,34 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import type { DQLContext } from '../context.js';
|
|
3
|
+
import { type LocalContextPack } from '@duckcodeailabs/dql-agent';
|
|
3
4
|
export declare const queryViaMetadataInput: {
|
|
4
5
|
question: z.ZodString;
|
|
5
|
-
proposedSql: z.ZodString
|
|
6
|
+
proposedSql: z.ZodOptional<z.ZodString>;
|
|
7
|
+
contextPackId: z.ZodOptional<z.ZodString>;
|
|
6
8
|
intent: z.ZodOptional<z.ZodEnum<["diagnose_change", "driver_breakdown", "segment_compare", "entity_drilldown", "anomaly_investigation", "trust_gap_review"]>>;
|
|
7
9
|
upstreamRefs: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
10
|
+
followUp: z.ZodOptional<z.ZodObject<{
|
|
11
|
+
kind: z.ZodEnum<["generic", "drilldown"]>;
|
|
12
|
+
sourceBlockName: z.ZodOptional<z.ZodString>;
|
|
13
|
+
sourceQuestion: z.ZodOptional<z.ZodString>;
|
|
14
|
+
sourceAnswer: z.ZodOptional<z.ZodString>;
|
|
15
|
+
filters: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
16
|
+
dimensions: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
17
|
+
}, "strip", z.ZodTypeAny, {
|
|
18
|
+
kind: "generic" | "drilldown";
|
|
19
|
+
sourceBlockName?: string | undefined;
|
|
20
|
+
sourceQuestion?: string | undefined;
|
|
21
|
+
sourceAnswer?: string | undefined;
|
|
22
|
+
filters?: string[] | undefined;
|
|
23
|
+
dimensions?: string[] | undefined;
|
|
24
|
+
}, {
|
|
25
|
+
kind: "generic" | "drilldown";
|
|
26
|
+
sourceBlockName?: string | undefined;
|
|
27
|
+
sourceQuestion?: string | undefined;
|
|
28
|
+
sourceAnswer?: string | undefined;
|
|
29
|
+
filters?: string[] | undefined;
|
|
30
|
+
dimensions?: string[] | undefined;
|
|
31
|
+
}>>;
|
|
8
32
|
proposedDomain: z.ZodOptional<z.ZodString>;
|
|
9
33
|
proposedEntity: z.ZodOptional<z.ZodString>;
|
|
10
34
|
saveDraft: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -29,9 +53,11 @@ export declare const queryViaMetadataInput: {
|
|
|
29
53
|
*/
|
|
30
54
|
export declare function queryViaMetadata(ctx: DQLContext, args: {
|
|
31
55
|
question: string;
|
|
32
|
-
proposedSql
|
|
56
|
+
proposedSql?: string;
|
|
57
|
+
contextPackId?: string;
|
|
33
58
|
intent?: MetadataResearchIntent;
|
|
34
59
|
upstreamRefs?: string[];
|
|
60
|
+
followUp?: MetadataFollowUpContext;
|
|
35
61
|
proposedDomain?: string;
|
|
36
62
|
proposedEntity?: string;
|
|
37
63
|
saveDraft?: boolean;
|
|
@@ -42,6 +68,68 @@ export declare function queryViaMetadata(ctx: DQLContext, args: {
|
|
|
42
68
|
uncertified: boolean;
|
|
43
69
|
intent: MetadataResearchIntent;
|
|
44
70
|
reviewStatus: string;
|
|
71
|
+
planningOnly: boolean;
|
|
72
|
+
contextPack: LocalContextPack | undefined;
|
|
73
|
+
routeDecision: import("@duckcodeailabs/dql-agent").MetadataRouteDecision | undefined;
|
|
74
|
+
allowedSqlContext: import("@duckcodeailabs/dql-agent").MetadataAllowedSqlContext | undefined;
|
|
75
|
+
missingContext: import("@duckcodeailabs/dql-agent").MetadataMissingContext[];
|
|
76
|
+
evidence: {
|
|
77
|
+
planner: {
|
|
78
|
+
mode: string;
|
|
79
|
+
intent: MetadataResearchIntent;
|
|
80
|
+
steps: string[];
|
|
81
|
+
reviewRequired: boolean;
|
|
82
|
+
boundedPreviewLimit: number;
|
|
83
|
+
};
|
|
84
|
+
certifiedContext: {
|
|
85
|
+
upstreamRefs: string[];
|
|
86
|
+
proposedDomain: string | undefined;
|
|
87
|
+
proposedEntity: string | undefined;
|
|
88
|
+
draftBlock: {
|
|
89
|
+
path: string;
|
|
90
|
+
askedTimes: number;
|
|
91
|
+
proposedContractId: string;
|
|
92
|
+
} | undefined;
|
|
93
|
+
sourceCertifiedBlock: string | undefined;
|
|
94
|
+
contextPackId: string | undefined;
|
|
95
|
+
trustLabel: import("@duckcodeailabs/dql-agent").MetadataTrustLabel | undefined;
|
|
96
|
+
selectedEvidence: {
|
|
97
|
+
objectKey: string;
|
|
98
|
+
objectType: string;
|
|
99
|
+
name: string;
|
|
100
|
+
reason: string;
|
|
101
|
+
rank: number;
|
|
102
|
+
score: number;
|
|
103
|
+
priorityTier: string;
|
|
104
|
+
}[];
|
|
105
|
+
warnings: string[];
|
|
106
|
+
};
|
|
107
|
+
execution: {
|
|
108
|
+
status: string;
|
|
109
|
+
rowCount: number | undefined;
|
|
110
|
+
durationMs: number | null | undefined;
|
|
111
|
+
error: string | undefined;
|
|
112
|
+
};
|
|
113
|
+
assumptions: string[];
|
|
114
|
+
};
|
|
115
|
+
reason: string;
|
|
116
|
+
errorCode?: undefined;
|
|
117
|
+
trustStatus?: undefined;
|
|
118
|
+
error?: undefined;
|
|
119
|
+
validationWarnings?: undefined;
|
|
120
|
+
proposedSql?: undefined;
|
|
121
|
+
draftBlock?: undefined;
|
|
122
|
+
promote?: undefined;
|
|
123
|
+
question?: undefined;
|
|
124
|
+
rowCount?: undefined;
|
|
125
|
+
durationMs?: undefined;
|
|
126
|
+
columns?: undefined;
|
|
127
|
+
rows?: undefined;
|
|
128
|
+
} | {
|
|
129
|
+
uncertified: boolean;
|
|
130
|
+
intent: MetadataResearchIntent;
|
|
131
|
+
reviewStatus: string;
|
|
132
|
+
errorCode: import("@duckcodeailabs/dql-agent").SqlContextValidationCode;
|
|
45
133
|
trustStatus: {
|
|
46
134
|
label: string;
|
|
47
135
|
uncertified: boolean;
|
|
@@ -69,6 +157,19 @@ export declare function queryViaMetadata(ctx: DQLContext, args: {
|
|
|
69
157
|
askedTimes: number;
|
|
70
158
|
proposedContractId: string;
|
|
71
159
|
} | undefined;
|
|
160
|
+
sourceCertifiedBlock: string | undefined;
|
|
161
|
+
contextPackId: string | undefined;
|
|
162
|
+
trustLabel: import("@duckcodeailabs/dql-agent").MetadataTrustLabel | undefined;
|
|
163
|
+
selectedEvidence: {
|
|
164
|
+
objectKey: string;
|
|
165
|
+
objectType: string;
|
|
166
|
+
name: string;
|
|
167
|
+
reason: string;
|
|
168
|
+
rank: number;
|
|
169
|
+
score: number;
|
|
170
|
+
priorityTier: string;
|
|
171
|
+
}[];
|
|
172
|
+
warnings: string[];
|
|
72
173
|
};
|
|
73
174
|
execution: {
|
|
74
175
|
status: string;
|
|
@@ -78,9 +179,15 @@ export declare function queryViaMetadata(ctx: DQLContext, args: {
|
|
|
78
179
|
};
|
|
79
180
|
assumptions: string[];
|
|
80
181
|
};
|
|
182
|
+
contextPack: LocalContextPack | undefined;
|
|
81
183
|
error: string;
|
|
184
|
+
validationWarnings: string[];
|
|
82
185
|
proposedSql: string;
|
|
83
186
|
draftBlock: undefined;
|
|
187
|
+
planningOnly?: undefined;
|
|
188
|
+
routeDecision?: undefined;
|
|
189
|
+
allowedSqlContext?: undefined;
|
|
190
|
+
missingContext?: undefined;
|
|
84
191
|
reason?: undefined;
|
|
85
192
|
promote?: undefined;
|
|
86
193
|
question?: undefined;
|
|
@@ -119,6 +226,19 @@ export declare function queryViaMetadata(ctx: DQLContext, args: {
|
|
|
119
226
|
askedTimes: number;
|
|
120
227
|
proposedContractId: string;
|
|
121
228
|
} | undefined;
|
|
229
|
+
sourceCertifiedBlock: string | undefined;
|
|
230
|
+
contextPackId: string | undefined;
|
|
231
|
+
trustLabel: import("@duckcodeailabs/dql-agent").MetadataTrustLabel | undefined;
|
|
232
|
+
selectedEvidence: {
|
|
233
|
+
objectKey: string;
|
|
234
|
+
objectType: string;
|
|
235
|
+
name: string;
|
|
236
|
+
reason: string;
|
|
237
|
+
rank: number;
|
|
238
|
+
score: number;
|
|
239
|
+
priorityTier: string;
|
|
240
|
+
}[];
|
|
241
|
+
warnings: string[];
|
|
122
242
|
};
|
|
123
243
|
execution: {
|
|
124
244
|
status: string;
|
|
@@ -128,6 +248,7 @@ export declare function queryViaMetadata(ctx: DQLContext, args: {
|
|
|
128
248
|
};
|
|
129
249
|
assumptions: string[];
|
|
130
250
|
};
|
|
251
|
+
contextPack: LocalContextPack | undefined;
|
|
131
252
|
reason: string;
|
|
132
253
|
proposedSql: string;
|
|
133
254
|
draftBlock: {
|
|
@@ -135,7 +256,13 @@ export declare function queryViaMetadata(ctx: DQLContext, args: {
|
|
|
135
256
|
askedTimes: number;
|
|
136
257
|
proposedContractId: string;
|
|
137
258
|
} | undefined;
|
|
259
|
+
validationWarnings: string[];
|
|
138
260
|
promote: string | undefined;
|
|
261
|
+
planningOnly?: undefined;
|
|
262
|
+
routeDecision?: undefined;
|
|
263
|
+
allowedSqlContext?: undefined;
|
|
264
|
+
missingContext?: undefined;
|
|
265
|
+
errorCode?: undefined;
|
|
139
266
|
error?: undefined;
|
|
140
267
|
question?: undefined;
|
|
141
268
|
rowCount?: undefined;
|
|
@@ -172,6 +299,19 @@ export declare function queryViaMetadata(ctx: DQLContext, args: {
|
|
|
172
299
|
askedTimes: number;
|
|
173
300
|
proposedContractId: string;
|
|
174
301
|
} | undefined;
|
|
302
|
+
sourceCertifiedBlock: string | undefined;
|
|
303
|
+
contextPackId: string | undefined;
|
|
304
|
+
trustLabel: import("@duckcodeailabs/dql-agent").MetadataTrustLabel | undefined;
|
|
305
|
+
selectedEvidence: {
|
|
306
|
+
objectKey: string;
|
|
307
|
+
objectType: string;
|
|
308
|
+
name: string;
|
|
309
|
+
reason: string;
|
|
310
|
+
rank: number;
|
|
311
|
+
score: number;
|
|
312
|
+
priorityTier: string;
|
|
313
|
+
}[];
|
|
314
|
+
warnings: string[];
|
|
175
315
|
};
|
|
176
316
|
execution: {
|
|
177
317
|
status: string;
|
|
@@ -181,15 +321,22 @@ export declare function queryViaMetadata(ctx: DQLContext, args: {
|
|
|
181
321
|
};
|
|
182
322
|
assumptions: string[];
|
|
183
323
|
};
|
|
324
|
+
contextPack: LocalContextPack | undefined;
|
|
184
325
|
error: string;
|
|
185
326
|
draftBlock: {
|
|
186
327
|
path: string;
|
|
187
328
|
askedTimes: number;
|
|
188
329
|
proposedContractId: string;
|
|
189
330
|
} | undefined;
|
|
331
|
+
validationWarnings: string[];
|
|
190
332
|
reviewStatus?: undefined;
|
|
191
|
-
|
|
333
|
+
planningOnly?: undefined;
|
|
334
|
+
routeDecision?: undefined;
|
|
335
|
+
allowedSqlContext?: undefined;
|
|
336
|
+
missingContext?: undefined;
|
|
192
337
|
reason?: undefined;
|
|
338
|
+
errorCode?: undefined;
|
|
339
|
+
proposedSql?: undefined;
|
|
193
340
|
promote?: undefined;
|
|
194
341
|
question?: undefined;
|
|
195
342
|
rowCount?: undefined;
|
|
@@ -227,6 +374,19 @@ export declare function queryViaMetadata(ctx: DQLContext, args: {
|
|
|
227
374
|
askedTimes: number;
|
|
228
375
|
proposedContractId: string;
|
|
229
376
|
} | undefined;
|
|
377
|
+
sourceCertifiedBlock: string | undefined;
|
|
378
|
+
contextPackId: string | undefined;
|
|
379
|
+
trustLabel: import("@duckcodeailabs/dql-agent").MetadataTrustLabel | undefined;
|
|
380
|
+
selectedEvidence: {
|
|
381
|
+
objectKey: string;
|
|
382
|
+
objectType: string;
|
|
383
|
+
name: string;
|
|
384
|
+
reason: string;
|
|
385
|
+
rank: number;
|
|
386
|
+
score: number;
|
|
387
|
+
priorityTier: string;
|
|
388
|
+
}[];
|
|
389
|
+
warnings: string[];
|
|
230
390
|
};
|
|
231
391
|
execution: {
|
|
232
392
|
status: string;
|
|
@@ -236,6 +396,7 @@ export declare function queryViaMetadata(ctx: DQLContext, args: {
|
|
|
236
396
|
};
|
|
237
397
|
assumptions: string[];
|
|
238
398
|
};
|
|
399
|
+
contextPack: LocalContextPack | undefined;
|
|
239
400
|
reason: string;
|
|
240
401
|
question: string;
|
|
241
402
|
rowCount: number;
|
|
@@ -251,10 +412,24 @@ export declare function queryViaMetadata(ctx: DQLContext, args: {
|
|
|
251
412
|
askedTimes: number;
|
|
252
413
|
proposedContractId: string;
|
|
253
414
|
} | undefined;
|
|
415
|
+
validationWarnings: string[];
|
|
254
416
|
promote: string | undefined;
|
|
417
|
+
planningOnly?: undefined;
|
|
418
|
+
routeDecision?: undefined;
|
|
419
|
+
allowedSqlContext?: undefined;
|
|
420
|
+
missingContext?: undefined;
|
|
421
|
+
errorCode?: undefined;
|
|
255
422
|
error?: undefined;
|
|
256
423
|
}>;
|
|
257
424
|
type MetadataResearchIntent = 'diagnose_change' | 'driver_breakdown' | 'segment_compare' | 'entity_drilldown' | 'anomaly_investigation' | 'trust_gap_review';
|
|
425
|
+
type MetadataFollowUpContext = {
|
|
426
|
+
kind: 'generic' | 'drilldown';
|
|
427
|
+
sourceBlockName?: string;
|
|
428
|
+
sourceQuestion?: string;
|
|
429
|
+
sourceAnswer?: string;
|
|
430
|
+
filters?: string[];
|
|
431
|
+
dimensions?: string[];
|
|
432
|
+
};
|
|
258
433
|
/**
|
|
259
434
|
* Derive a deterministic snake_case slug from a free-form question. Same
|
|
260
435
|
* question -> same slug, so re-asking the question increments `asked_times`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-via-metadata.d.ts","sourceRoot":"","sources":["../../src/tools/query-via-metadata.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"query-via-metadata.d.ts","sourceRoot":"","sources":["../../src/tools/query-via-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAML,KAAK,gBAAgB,EACtB,MAAM,2BAA2B,CAAC;AAEnC,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiFjC,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,UAAU,EACf,IAAI,EAAE;IACJ,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,sBAAsB,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,uBAAuB,CAAC;IACnC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;;;;;;;;;;;;;;;;;;;;;;sBAmSsB,MAAM;4BAAc,MAAM;oCAAsB,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAAtD,MAAM;4BAAc,MAAM;oCAAsB,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAAtD,MAAM;4BAAc,MAAM;oCAAsB,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA5NrD,MAAM;oBAAc,MAAM;4BAAsB,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBA4NvD,MAAM;4BAAc,MAAM;oCAAsB,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;cA5NrD,MAAM;oBAAc,MAAM;4BAAsB,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBA4NvD,MAAM;4BAAc,MAAM;oCAAsB,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cApIjD,MAAM;eAAS,MAAM;;;;;cAxFzB,MAAM;oBAAc,MAAM;4BAAsB,MAAM;;;;;;;;;;GA+I/E;AAID,KAAK,sBAAsB,GACvB,iBAAiB,GACjB,kBAAkB,GAClB,iBAAiB,GACjB,kBAAkB,GAClB,uBAAuB,GACvB,kBAAkB,CAAC;AAEvB,KAAK,uBAAuB,GAAG;IAC7B,IAAI,EAAE,SAAS,GAAG,WAAW,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB,CAAC;AAqLF;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAQnD"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { mkdirSync, writeFileSync, existsSync, readFileSync } from 'node:fs';
|
|
2
|
-
import { dirname, join } from 'node:path';
|
|
3
1
|
import { z } from 'zod';
|
|
2
|
+
import { buildLocalContextPack, openMetadataCatalog, recordQueryRun, upsertGeneratedDraft, validateSqlAgainstLocalContext, } from '@duckcodeailabs/dql-agent';
|
|
4
3
|
export const queryViaMetadataInput = {
|
|
5
4
|
question: z
|
|
6
5
|
.string()
|
|
@@ -9,7 +8,12 @@ export const queryViaMetadataInput = {
|
|
|
9
8
|
proposedSql: z
|
|
10
9
|
.string()
|
|
11
10
|
.min(1)
|
|
12
|
-
.
|
|
11
|
+
.optional()
|
|
12
|
+
.describe('SQL the agent inferred from the inspected metadata context. Omit to return the catalog route plan and allowed SQL context before writing SQL.'),
|
|
13
|
+
contextPackId: z
|
|
14
|
+
.string()
|
|
15
|
+
.optional()
|
|
16
|
+
.describe('Context-pack id returned by inspect_metadata_context. When supplied, query_via_metadata validates SQL against that exact catalog context.'),
|
|
13
17
|
intent: z
|
|
14
18
|
.enum([
|
|
15
19
|
'diagnose_change',
|
|
@@ -25,6 +29,17 @@ export const queryViaMetadataInput = {
|
|
|
25
29
|
.array(z.string())
|
|
26
30
|
.optional()
|
|
27
31
|
.describe('Tables / blocks the agent thinks are involved.'),
|
|
32
|
+
followUp: z
|
|
33
|
+
.object({
|
|
34
|
+
kind: z.enum(['generic', 'drilldown']),
|
|
35
|
+
sourceBlockName: z.string().optional(),
|
|
36
|
+
sourceQuestion: z.string().optional(),
|
|
37
|
+
sourceAnswer: z.string().optional(),
|
|
38
|
+
filters: z.array(z.string()).optional(),
|
|
39
|
+
dimensions: z.array(z.string()).optional(),
|
|
40
|
+
})
|
|
41
|
+
.optional()
|
|
42
|
+
.describe('Structured prior-answer context for follow-up drilldowns. Generated SQL remains uncertified.'),
|
|
28
43
|
proposedDomain: z
|
|
29
44
|
.string()
|
|
30
45
|
.optional()
|
|
@@ -72,29 +87,89 @@ export async function queryViaMetadata(ctx, args) {
|
|
|
72
87
|
const slug = deriveSlug(args.question);
|
|
73
88
|
const proposedContractId = suggestContractId(slug, args.proposedDomain, args.proposedEntity);
|
|
74
89
|
const intent = normalizeMetadataResearchIntent(args.intent, args.question);
|
|
75
|
-
const
|
|
90
|
+
const contextPack = await buildTier2ContextPack(ctx.projectRoot, args.question, args.contextPackId, args.followUp);
|
|
91
|
+
const hasInspectedContext = hasInspectedMetadataContext(contextPack);
|
|
92
|
+
const contextNeedsClarification = hasInspectedContext && contextPack?.routeDecision.route === 'clarify';
|
|
93
|
+
if (contextNeedsClarification || !args.proposedSql?.trim()) {
|
|
94
|
+
recordTier2QueryRun(ctx.projectRoot, {
|
|
95
|
+
slug,
|
|
96
|
+
question: args.question,
|
|
97
|
+
status: contextNeedsClarification ? 'clarify' : 'planning_only',
|
|
98
|
+
errorCode: contextNeedsClarification ? 'missing_context' : undefined,
|
|
99
|
+
contextPack,
|
|
100
|
+
});
|
|
101
|
+
return {
|
|
102
|
+
uncertified: true,
|
|
103
|
+
intent,
|
|
104
|
+
reviewStatus: 'none',
|
|
105
|
+
planningOnly: true,
|
|
106
|
+
contextPack,
|
|
107
|
+
routeDecision: contextPack?.routeDecision,
|
|
108
|
+
allowedSqlContext: contextPack?.allowedSqlContext,
|
|
109
|
+
missingContext: contextPack?.missingContext ?? [],
|
|
110
|
+
evidence: metadataEvidence(intent, args, { status: 'planning_only' }, contextPack),
|
|
111
|
+
reason: contextNeedsClarification
|
|
112
|
+
? contextPack.routeDecision.reason
|
|
113
|
+
: 'No SQL was supplied. Inspect the context pack and provide one read-only SELECT/WITH query that uses only allowed relations and columns.',
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
const proposedSql = args.proposedSql.trim();
|
|
117
|
+
const contextValidation = validateSqlAgainstLocalContext(proposedSql, hasInspectedContext ? contextPack : undefined, {
|
|
118
|
+
question: args.question,
|
|
119
|
+
intent,
|
|
120
|
+
filterValues: args.followUp?.filters,
|
|
121
|
+
});
|
|
122
|
+
if (!contextValidation.ok) {
|
|
123
|
+
recordTier2QueryRun(ctx.projectRoot, { slug, question: args.question, status: 'rejected', errorCode: contextValidation.code, contextPack });
|
|
124
|
+
return {
|
|
125
|
+
uncertified: true,
|
|
126
|
+
intent,
|
|
127
|
+
reviewStatus: 'rejected',
|
|
128
|
+
errorCode: contextValidation.code,
|
|
129
|
+
trustStatus: metadataTrustStatus('rejected', intent, undefined, contextValidation.error, contextValidation.warnings),
|
|
130
|
+
evidence: metadataEvidence(intent, args, { status: 'rejected', error: contextValidation.error, validationWarnings: contextValidation.warnings }, contextPack),
|
|
131
|
+
contextPack,
|
|
132
|
+
error: contextValidation.error,
|
|
133
|
+
validationWarnings: contextValidation.warnings,
|
|
134
|
+
proposedSql,
|
|
135
|
+
draftBlock: undefined,
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
const safety = buildMetadataPreviewSql(proposedSql, args.limit ?? 200);
|
|
76
139
|
if (!safety.ok) {
|
|
140
|
+
recordTier2QueryRun(ctx.projectRoot, { slug, question: args.question, status: 'rejected', errorCode: 'unsafe_sql', contextPack });
|
|
77
141
|
return {
|
|
78
142
|
uncertified: true,
|
|
79
143
|
intent,
|
|
80
144
|
reviewStatus: 'rejected',
|
|
81
|
-
|
|
82
|
-
|
|
145
|
+
errorCode: safety.code,
|
|
146
|
+
trustStatus: metadataTrustStatus('rejected', intent, undefined, safety.error, contextValidation.warnings),
|
|
147
|
+
evidence: metadataEvidence(intent, args, { status: 'rejected', error: safety.error, validationWarnings: contextValidation.warnings }, contextPack),
|
|
148
|
+
contextPack,
|
|
83
149
|
error: safety.error,
|
|
84
|
-
|
|
150
|
+
validationWarnings: contextValidation.warnings,
|
|
151
|
+
proposedSql,
|
|
85
152
|
draftBlock: undefined,
|
|
86
153
|
};
|
|
87
154
|
}
|
|
88
155
|
let draftBlock;
|
|
89
156
|
if (args.saveDraft !== false) {
|
|
90
|
-
draftBlock =
|
|
157
|
+
draftBlock = upsertGeneratedDraft(ctx.projectRoot, {
|
|
91
158
|
slug,
|
|
92
159
|
question: args.question,
|
|
93
|
-
proposedSql
|
|
160
|
+
proposedSql,
|
|
94
161
|
proposedContractId,
|
|
95
162
|
proposedDomain: args.proposedDomain,
|
|
96
163
|
proposedEntity: args.proposedEntity,
|
|
97
164
|
upstreamRefs: args.upstreamRefs ?? [],
|
|
165
|
+
sourceQuestion: args.followUp?.sourceQuestion,
|
|
166
|
+
sourceBlock: args.followUp?.sourceBlockName,
|
|
167
|
+
followupKind: args.followUp?.kind,
|
|
168
|
+
requestedFilters: args.followUp?.filters,
|
|
169
|
+
requestedDimensions: args.followUp?.dimensions,
|
|
170
|
+
contextPackId: contextPack?.id,
|
|
171
|
+
routeIntent: contextPack?.routeDecision.intent ?? intent,
|
|
172
|
+
validationWarnings: contextValidation.warnings,
|
|
98
173
|
});
|
|
99
174
|
}
|
|
100
175
|
if (args.dryRun) {
|
|
@@ -102,11 +177,13 @@ export async function queryViaMetadata(ctx, args) {
|
|
|
102
177
|
uncertified: true,
|
|
103
178
|
intent,
|
|
104
179
|
reviewStatus: 'draft_ready',
|
|
105
|
-
trustStatus: metadataTrustStatus('draft_ready', intent, draftBlock),
|
|
106
|
-
evidence: metadataEvidence(intent, args, { status: 'dry_run', draftBlock }),
|
|
180
|
+
trustStatus: metadataTrustStatus('draft_ready', intent, draftBlock, undefined, contextValidation.warnings),
|
|
181
|
+
evidence: metadataEvidence(intent, args, { status: 'dry_run', draftBlock, validationWarnings: contextValidation.warnings }, contextPack),
|
|
182
|
+
contextPack,
|
|
107
183
|
reason: 'dryRun=true; SQL not executed. Returned proposal only.',
|
|
108
|
-
proposedSql
|
|
184
|
+
proposedSql,
|
|
109
185
|
draftBlock,
|
|
186
|
+
validationWarnings: contextValidation.warnings,
|
|
110
187
|
promote: draftBlock
|
|
111
188
|
? `if you want this question certified, run: dql certify --from-draft ${draftBlock.path}`
|
|
112
189
|
: undefined,
|
|
@@ -122,7 +199,7 @@ export async function queryViaMetadata(ctx, args) {
|
|
|
122
199
|
body: JSON.stringify({
|
|
123
200
|
cell: {
|
|
124
201
|
id: `mcp-tier2-${slug}`,
|
|
125
|
-
type: '
|
|
202
|
+
type: 'sql',
|
|
126
203
|
source: wrapSqlAsDqlCell(safety.sql),
|
|
127
204
|
title: args.question,
|
|
128
205
|
},
|
|
@@ -131,57 +208,77 @@ export async function queryViaMetadata(ctx, args) {
|
|
|
131
208
|
}
|
|
132
209
|
catch (err) {
|
|
133
210
|
const error = `Could not reach DQL runtime at ${base}. Start it with \`dql serve\` in ${ctx.projectRoot}. (${err instanceof Error ? err.message : String(err)})`;
|
|
211
|
+
recordTier2QueryRun(ctx.projectRoot, { slug, question: args.question, status: 'runtime_unavailable', errorCode: 'runtime_unavailable', contextPack });
|
|
134
212
|
return {
|
|
135
213
|
uncertified: true,
|
|
136
214
|
intent,
|
|
137
|
-
trustStatus: metadataTrustStatus('draft_ready', intent, draftBlock, error),
|
|
138
|
-
evidence: metadataEvidence(intent, args, { status: 'runtime_unavailable', draftBlock, error }),
|
|
215
|
+
trustStatus: metadataTrustStatus('draft_ready', intent, draftBlock, error, contextValidation.warnings),
|
|
216
|
+
evidence: metadataEvidence(intent, args, { status: 'runtime_unavailable', draftBlock, error, validationWarnings: contextValidation.warnings }, contextPack),
|
|
217
|
+
contextPack,
|
|
139
218
|
error,
|
|
140
219
|
draftBlock,
|
|
220
|
+
validationWarnings: contextValidation.warnings,
|
|
141
221
|
};
|
|
142
222
|
}
|
|
143
223
|
if (!response.ok) {
|
|
144
224
|
const error = `Runtime returned ${response.status}: ${await response.text()}`;
|
|
225
|
+
recordTier2QueryRun(ctx.projectRoot, { slug, question: args.question, status: 'runtime_error', errorCode: `http_${response.status}`, contextPack });
|
|
145
226
|
return {
|
|
146
227
|
uncertified: true,
|
|
147
228
|
intent,
|
|
148
|
-
trustStatus: metadataTrustStatus('draft_ready', intent, draftBlock, error),
|
|
149
|
-
evidence: metadataEvidence(intent, args, { status: 'runtime_error', draftBlock, error }),
|
|
229
|
+
trustStatus: metadataTrustStatus('draft_ready', intent, draftBlock, error, contextValidation.warnings),
|
|
230
|
+
evidence: metadataEvidence(intent, args, { status: 'runtime_error', draftBlock, error, validationWarnings: contextValidation.warnings }, contextPack),
|
|
231
|
+
contextPack,
|
|
150
232
|
error,
|
|
151
233
|
draftBlock,
|
|
234
|
+
validationWarnings: contextValidation.warnings,
|
|
152
235
|
};
|
|
153
236
|
}
|
|
154
237
|
const payload = (await response.json());
|
|
155
238
|
if (payload.error) {
|
|
239
|
+
recordTier2QueryRun(ctx.projectRoot, { slug, question: args.question, status: 'execution_failed', errorCode: 'execution_failed', contextPack });
|
|
156
240
|
return {
|
|
157
241
|
uncertified: true,
|
|
158
242
|
intent,
|
|
159
|
-
trustStatus: metadataTrustStatus('draft_ready', intent, draftBlock, payload.error),
|
|
160
|
-
evidence: metadataEvidence(intent, args, { status: 'execution_failed', draftBlock, error: payload.error }),
|
|
243
|
+
trustStatus: metadataTrustStatus('draft_ready', intent, draftBlock, payload.error, contextValidation.warnings),
|
|
244
|
+
evidence: metadataEvidence(intent, args, { status: 'execution_failed', draftBlock, error: payload.error, validationWarnings: contextValidation.warnings }, contextPack),
|
|
245
|
+
contextPack,
|
|
161
246
|
error: payload.error,
|
|
162
247
|
draftBlock,
|
|
248
|
+
validationWarnings: contextValidation.warnings,
|
|
163
249
|
};
|
|
164
250
|
}
|
|
165
251
|
const rows = payload.result?.rows ?? [];
|
|
252
|
+
recordTier2QueryRun(ctx.projectRoot, {
|
|
253
|
+
slug,
|
|
254
|
+
question: args.question,
|
|
255
|
+
status: 'executed',
|
|
256
|
+
rowCount: rows.length,
|
|
257
|
+
durationMs: payload.result?.executionTime ?? undefined,
|
|
258
|
+
contextPack,
|
|
259
|
+
});
|
|
166
260
|
return {
|
|
167
261
|
uncertified: true,
|
|
168
262
|
intent,
|
|
169
263
|
reviewStatus: 'draft_ready',
|
|
170
|
-
trustStatus: metadataTrustStatus('draft_ready', intent, draftBlock),
|
|
264
|
+
trustStatus: metadataTrustStatus('draft_ready', intent, draftBlock, undefined, contextValidation.warnings),
|
|
171
265
|
evidence: metadataEvidence(intent, args, {
|
|
172
266
|
status: 'executed',
|
|
173
267
|
draftBlock,
|
|
174
268
|
rowCount: rows.length,
|
|
175
269
|
durationMs: payload.result?.executionTime ?? null,
|
|
176
|
-
|
|
270
|
+
validationWarnings: contextValidation.warnings,
|
|
271
|
+
}, contextPack),
|
|
272
|
+
contextPack,
|
|
177
273
|
reason: 'no certified block matched the question; result derived from manifest + dbt schema',
|
|
178
274
|
question: args.question,
|
|
179
275
|
rowCount: rows.length,
|
|
180
276
|
durationMs: payload.result?.executionTime ?? null,
|
|
181
277
|
columns: payload.result?.columns ?? [],
|
|
182
278
|
rows: args.limit ? rows.slice(0, args.limit) : rows,
|
|
183
|
-
proposedSql
|
|
279
|
+
proposedSql,
|
|
184
280
|
draftBlock,
|
|
281
|
+
validationWarnings: contextValidation.warnings,
|
|
185
282
|
promote: draftBlock
|
|
186
283
|
? `if you want this question certified, run: dql certify --from-draft ${draftBlock.path}`
|
|
187
284
|
: undefined,
|
|
@@ -210,7 +307,7 @@ function normalizeMetadataResearchIntent(value, question) {
|
|
|
210
307
|
return 'driver_breakdown';
|
|
211
308
|
return 'driver_breakdown';
|
|
212
309
|
}
|
|
213
|
-
function metadataTrustStatus(reviewStatus, intent, draftBlock, error) {
|
|
310
|
+
function metadataTrustStatus(reviewStatus, intent, draftBlock, error, validationWarnings = []) {
|
|
214
311
|
return {
|
|
215
312
|
label: 'AI-generated metadata research',
|
|
216
313
|
uncertified: true,
|
|
@@ -222,11 +319,12 @@ function metadataTrustStatus(reviewStatus, intent, draftBlock, error) {
|
|
|
222
319
|
caveats: [
|
|
223
320
|
'No certified block exactly answered this grain.',
|
|
224
321
|
'SQL was generated from metadata and must be reviewed before certification.',
|
|
322
|
+
...validationWarnings,
|
|
225
323
|
...(error ? [`Execution caveat: ${error}`] : []),
|
|
226
324
|
],
|
|
227
325
|
};
|
|
228
326
|
}
|
|
229
|
-
function metadataEvidence(intent, args, execution) {
|
|
327
|
+
function metadataEvidence(intent, args, execution, contextPack) {
|
|
230
328
|
return {
|
|
231
329
|
planner: {
|
|
232
330
|
mode: 'metadata_text_to_sql',
|
|
@@ -240,6 +338,11 @@ function metadataEvidence(intent, args, execution) {
|
|
|
240
338
|
proposedDomain: args.proposedDomain,
|
|
241
339
|
proposedEntity: args.proposedEntity,
|
|
242
340
|
draftBlock: execution.draftBlock,
|
|
341
|
+
sourceCertifiedBlock: args.followUp?.sourceBlockName,
|
|
342
|
+
contextPackId: contextPack?.id,
|
|
343
|
+
trustLabel: contextPack?.trustLabel,
|
|
344
|
+
selectedEvidence: contextPack?.retrievalDiagnostics.selectedEvidence.slice(0, 12) ?? [],
|
|
345
|
+
warnings: [...(contextPack?.warnings ?? []), ...(execution.validationWarnings ?? [])],
|
|
243
346
|
},
|
|
244
347
|
execution: {
|
|
245
348
|
status: execution.status,
|
|
@@ -257,6 +360,49 @@ function metadataEvidence(intent, args, execution) {
|
|
|
257
360
|
],
|
|
258
361
|
};
|
|
259
362
|
}
|
|
363
|
+
async function buildTier2ContextPack(projectRoot, question, contextPackId, followUp) {
|
|
364
|
+
if (contextPackId) {
|
|
365
|
+
const catalog = openMetadataCatalog(projectRoot);
|
|
366
|
+
try {
|
|
367
|
+
const existing = catalog.getContextPack(contextPackId);
|
|
368
|
+
if (existing)
|
|
369
|
+
return existing;
|
|
370
|
+
}
|
|
371
|
+
finally {
|
|
372
|
+
catalog.close();
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
return buildLocalContextPack(projectRoot, {
|
|
376
|
+
question,
|
|
377
|
+
mode: 'question',
|
|
378
|
+
followUp,
|
|
379
|
+
}).catch(() => undefined);
|
|
380
|
+
}
|
|
381
|
+
function hasInspectedMetadataContext(contextPack) {
|
|
382
|
+
return Boolean(contextPack && (contextPack.allowedSqlContext.relations.length > 0
|
|
383
|
+
|| contextPack.allowedSqlContext.sourceBlockSql.length > 0
|
|
384
|
+
|| contextPack.objects.some((object) => object.objectType.startsWith('semantic_'))));
|
|
385
|
+
}
|
|
386
|
+
function recordTier2QueryRun(projectRoot, args) {
|
|
387
|
+
try {
|
|
388
|
+
recordQueryRun(projectRoot, {
|
|
389
|
+
objectKey: `dql:draft:${args.slug}`,
|
|
390
|
+
source: 'ai_draft',
|
|
391
|
+
status: args.status,
|
|
392
|
+
rowCount: args.rowCount,
|
|
393
|
+
durationMs: args.durationMs,
|
|
394
|
+
errorCode: args.errorCode,
|
|
395
|
+
payload: {
|
|
396
|
+
question: args.question,
|
|
397
|
+
contextPackId: args.contextPack?.id,
|
|
398
|
+
trustLabel: args.contextPack?.trustLabel,
|
|
399
|
+
},
|
|
400
|
+
});
|
|
401
|
+
}
|
|
402
|
+
catch {
|
|
403
|
+
// Query-run history is advisory and must not block the answer.
|
|
404
|
+
}
|
|
405
|
+
}
|
|
260
406
|
function metadataInvestigationSteps(intent) {
|
|
261
407
|
const common = ['trust check', 'draft review path'];
|
|
262
408
|
if (intent === 'trust_gap_review')
|
|
@@ -334,19 +480,19 @@ const METADATA_PREVIEW_FORBIDDEN_SQL = [
|
|
|
334
480
|
function buildMetadataPreviewSql(sql, limit) {
|
|
335
481
|
const trimmed = sql.trim();
|
|
336
482
|
if (!trimmed)
|
|
337
|
-
return { ok: false, error: 'Tier-2 metadata SQL is empty.' };
|
|
483
|
+
return { ok: false, code: 'unsafe_sql', error: 'Tier-2 metadata SQL is empty.' };
|
|
338
484
|
const withoutTrailingSemicolon = trimmed.replace(/;\s*$/, '').trim();
|
|
339
485
|
const scanSql = stripSqlStringsAndComments(withoutTrailingSemicolon).trim();
|
|
340
486
|
if (!/^(select|with)\b/i.test(scanSql)) {
|
|
341
|
-
return { ok: false, error: 'Tier-2 metadata SQL only supports read-only SELECT or WITH queries.' };
|
|
487
|
+
return { ok: false, code: 'unsafe_sql', error: 'Tier-2 metadata SQL only supports read-only SELECT or WITH queries.' };
|
|
342
488
|
}
|
|
343
489
|
if (scanSql.includes(';')) {
|
|
344
|
-
return { ok: false, error: 'Tier-2 metadata SQL only supports one statement.' };
|
|
490
|
+
return { ok: false, code: 'unsafe_sql', error: 'Tier-2 metadata SQL only supports one statement.' };
|
|
345
491
|
}
|
|
346
492
|
const forbiddenPattern = new RegExp(`\\b(${METADATA_PREVIEW_FORBIDDEN_SQL.join('|')})\\b`, 'i');
|
|
347
493
|
const forbidden = scanSql.match(forbiddenPattern)?.[1];
|
|
348
494
|
if (forbidden) {
|
|
349
|
-
return { ok: false, error: `Tier-2 metadata SQL rejected unsupported statement keyword: ${forbidden.toUpperCase()}.` };
|
|
495
|
+
return { ok: false, code: 'unsafe_sql', error: `Tier-2 metadata SQL rejected unsupported statement keyword: ${forbidden.toUpperCase()}.` };
|
|
350
496
|
}
|
|
351
497
|
const boundedLimit = Math.min(Math.max(Math.trunc(limit), 1), 10000);
|
|
352
498
|
return {
|
|
@@ -404,78 +550,4 @@ function stripSqlStringsAndComments(sql) {
|
|
|
404
550
|
}
|
|
405
551
|
return output;
|
|
406
552
|
}
|
|
407
|
-
function upsertDraft(projectRoot, rec) {
|
|
408
|
-
const draftDir = join(projectRoot, 'blocks', '_drafts');
|
|
409
|
-
const filePath = join(draftDir, `${rec.slug}.dql`);
|
|
410
|
-
if (existsSync(filePath)) {
|
|
411
|
-
const existing = readFileSync(filePath, 'utf-8');
|
|
412
|
-
const m = existing.match(/asked_times\s*=\s*(\d+)/);
|
|
413
|
-
const prev = m ? Number.parseInt(m[1], 10) : 1;
|
|
414
|
-
const next = Number.isFinite(prev) ? prev + 1 : 2;
|
|
415
|
-
const updated = m
|
|
416
|
-
? existing.replace(/asked_times\s*=\s*\d+/, `asked_times = ${next}`)
|
|
417
|
-
: existing.replace(/_proposed\s*\{/, `_proposed {\n asked_times = ${next}`);
|
|
418
|
-
const stamped = stampLastAsked(updated);
|
|
419
|
-
writeFileSync(filePath, stamped);
|
|
420
|
-
return {
|
|
421
|
-
path: relativeToProject(projectRoot, filePath),
|
|
422
|
-
askedTimes: next,
|
|
423
|
-
proposedContractId: rec.proposedContractId,
|
|
424
|
-
};
|
|
425
|
-
}
|
|
426
|
-
mkdirSync(dirname(filePath), { recursive: true });
|
|
427
|
-
writeFileSync(filePath, renderDraft(rec));
|
|
428
|
-
return {
|
|
429
|
-
path: relativeToProject(projectRoot, filePath),
|
|
430
|
-
askedTimes: 1,
|
|
431
|
-
proposedContractId: rec.proposedContractId,
|
|
432
|
-
};
|
|
433
|
-
}
|
|
434
|
-
function relativeToProject(root, abs) {
|
|
435
|
-
const rootSlash = root.endsWith('/') ? root : root + '/';
|
|
436
|
-
return abs.startsWith(rootSlash) ? abs.slice(rootSlash.length) : abs;
|
|
437
|
-
}
|
|
438
|
-
function renderDraft(rec) {
|
|
439
|
-
const now = new Date().toISOString();
|
|
440
|
-
const upstream = rec.upstreamRefs.length > 0
|
|
441
|
-
? `\n upstream_refs = [${rec.upstreamRefs.map((u) => `"${u}"`).join(', ')}]`
|
|
442
|
-
: '';
|
|
443
|
-
// Single quoted SQL inside triple-double-quotes; avoid breaking on `"""` in user SQL.
|
|
444
|
-
const safeSql = rec.proposedSql.replace(/"""/g, '\\"\\"\\"');
|
|
445
|
-
return `block "${rec.slug}" {
|
|
446
|
-
domain = "${rec.proposedDomain ?? 'misc'}"
|
|
447
|
-
type = "custom"
|
|
448
|
-
status = "draft"
|
|
449
|
-
description = """${rec.question}"""
|
|
450
|
-
|
|
451
|
-
# Tier-2 proposal — auto-captured from query_via_metadata. Reviewer
|
|
452
|
-
# fills in datalex_contract + owner, then runs:
|
|
453
|
-
# dql certify --from-draft blocks/_drafts/${rec.slug}.dql \\
|
|
454
|
-
# --domain ${rec.proposedDomain ?? 'misc'} \\
|
|
455
|
-
# --contract ${rec.proposedContractId}@1 \\
|
|
456
|
-
# --owner you@example.com
|
|
457
|
-
datalex_contract = ""
|
|
458
|
-
|
|
459
|
-
_proposed {
|
|
460
|
-
asked_times = 1
|
|
461
|
-
first_asked = "${now}"
|
|
462
|
-
last_asked = "${now}"
|
|
463
|
-
proposed_contract_id = "${rec.proposedContractId}"
|
|
464
|
-
proposed_domain = "${rec.proposedDomain ?? ''}"
|
|
465
|
-
proposed_entity = "${rec.proposedEntity ?? ''}"${upstream}
|
|
466
|
-
}
|
|
467
|
-
|
|
468
|
-
query = """
|
|
469
|
-
${safeSql.split('\n').join('\n ')}
|
|
470
|
-
"""
|
|
471
|
-
}
|
|
472
|
-
`;
|
|
473
|
-
}
|
|
474
|
-
function stampLastAsked(content) {
|
|
475
|
-
const now = new Date().toISOString();
|
|
476
|
-
if (/last_asked\s*=\s*"[^"]*"/.test(content)) {
|
|
477
|
-
return content.replace(/last_asked\s*=\s*"[^"]*"/, `last_asked = "${now}"`);
|
|
478
|
-
}
|
|
479
|
-
return content;
|
|
480
|
-
}
|
|
481
553
|
//# sourceMappingURL=query-via-metadata.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-via-metadata.js","sourceRoot":"","sources":["../../src/tools/query-via-metadata.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"query-via-metadata.js","sourceRoot":"","sources":["../../src/tools/query-via-metadata.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@duckcodeailabs/dql-mcp",
|
|
3
|
-
"version": "1.6.
|
|
3
|
+
"version": "1.6.7",
|
|
4
4
|
"description": "DQL MCP server: expose certified blocks, semantic layer, lineage, and governance to LLM agents via the Model Context Protocol",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
@@ -24,10 +24,10 @@
|
|
|
24
24
|
"access": "public"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@duckcodeailabs/dql-agent": "^1.6.
|
|
28
|
-
"@duckcodeailabs/dql-core": "^1.6.
|
|
29
|
-
"@duckcodeailabs/dql-governance": "^1.6.
|
|
30
|
-
"@duckcodeailabs/dql-project": "^1.6.
|
|
27
|
+
"@duckcodeailabs/dql-agent": "^1.6.7",
|
|
28
|
+
"@duckcodeailabs/dql-core": "^1.6.7",
|
|
29
|
+
"@duckcodeailabs/dql-governance": "^1.6.7",
|
|
30
|
+
"@duckcodeailabs/dql-project": "^1.6.7",
|
|
31
31
|
"@modelcontextprotocol/sdk": "^1.0.4",
|
|
32
32
|
"zod": "^3.25.0"
|
|
33
33
|
},
|