@duckcodeailabs/dql-mcp 1.6.31 → 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.
Files changed (80) hide show
  1. package/dist/context.d.ts.map +1 -1
  2. package/dist/context.js +4 -1
  3. package/dist/context.js.map +1 -1
  4. package/dist/index.d.ts +4 -0
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +4 -0
  7. package/dist/index.js.map +1 -1
  8. package/dist/server.d.ts +32 -0
  9. package/dist/server.d.ts.map +1 -1
  10. package/dist/server.js +184 -90
  11. package/dist/server.js.map +1 -1
  12. package/dist/tool-schema.d.ts +5 -0
  13. package/dist/tool-schema.d.ts.map +1 -0
  14. package/dist/tool-schema.js +105 -0
  15. package/dist/tool-schema.js.map +1 -0
  16. package/dist/tools/certify.d.ts +1 -4
  17. package/dist/tools/certify.d.ts.map +1 -1
  18. package/dist/tools/certify.js +2 -4
  19. package/dist/tools/certify.js.map +1 -1
  20. package/dist/tools/expand-context.d.ts +62 -0
  21. package/dist/tools/expand-context.d.ts.map +1 -0
  22. package/dist/tools/expand-context.js +130 -0
  23. package/dist/tools/expand-context.js.map +1 -0
  24. package/dist/tools/get-block.d.ts +1 -5
  25. package/dist/tools/get-block.d.ts.map +1 -1
  26. package/dist/tools/get-block.js +2 -8
  27. package/dist/tools/get-block.js.map +1 -1
  28. package/dist/tools/governed.d.ts +94 -0
  29. package/dist/tools/governed.d.ts.map +1 -0
  30. package/dist/tools/governed.js +139 -0
  31. package/dist/tools/governed.js.map +1 -0
  32. package/dist/tools/hints.d.ts +3 -46
  33. package/dist/tools/hints.d.ts.map +1 -1
  34. package/dist/tools/hints.js +4 -33
  35. package/dist/tools/hints.js.map +1 -1
  36. package/dist/tools/kg.d.ts +5 -22
  37. package/dist/tools/kg.d.ts.map +1 -1
  38. package/dist/tools/kg.js +6 -29
  39. package/dist/tools/kg.js.map +1 -1
  40. package/dist/tools/lineage-impact.d.ts +4 -9
  41. package/dist/tools/lineage-impact.d.ts.map +1 -1
  42. package/dist/tools/lineage-impact.js +91 -36
  43. package/dist/tools/lineage-impact.js.map +1 -1
  44. package/dist/tools/list-proposals.d.ts +13 -5
  45. package/dist/tools/list-proposals.d.ts.map +1 -1
  46. package/dist/tools/list-proposals.js +152 -16
  47. package/dist/tools/list-proposals.js.map +1 -1
  48. package/dist/tools/metadata.d.ts +3 -12
  49. package/dist/tools/metadata.d.ts.map +1 -1
  50. package/dist/tools/metadata.js +4 -15
  51. package/dist/tools/metadata.js.map +1 -1
  52. package/dist/tools/query-semantic-model.d.ts +374 -0
  53. package/dist/tools/query-semantic-model.d.ts.map +1 -0
  54. package/dist/tools/query-semantic-model.js +404 -0
  55. package/dist/tools/query-semantic-model.js.map +1 -0
  56. package/dist/tools/query-via-block.d.ts +5 -8
  57. package/dist/tools/query-via-block.d.ts.map +1 -1
  58. package/dist/tools/query-via-block.js +9 -14
  59. package/dist/tools/query-via-block.js.map +1 -1
  60. package/dist/tools/query-via-metadata.d.ts +198 -130
  61. package/dist/tools/query-via-metadata.d.ts.map +1 -1
  62. package/dist/tools/query-via-metadata.js +197 -101
  63. package/dist/tools/query-via-metadata.js.map +1 -1
  64. package/dist/tools/search-blocks.d.ts +1 -7
  65. package/dist/tools/search-blocks.d.ts.map +1 -1
  66. package/dist/tools/search-blocks.js +2 -10
  67. package/dist/tools/search-blocks.js.map +1 -1
  68. package/dist/tools/semantic.d.ts +3 -8
  69. package/dist/tools/semantic.d.ts.map +1 -1
  70. package/dist/tools/semantic.js +3 -7
  71. package/dist/tools/semantic.js.map +1 -1
  72. package/dist/tools/suggest-block.d.ts +1 -10
  73. package/dist/tools/suggest-block.d.ts.map +1 -1
  74. package/dist/tools/suggest-block.js +2 -10
  75. package/dist/tools/suggest-block.js.map +1 -1
  76. package/dist/tools/workflows.d.ts +7 -33
  77. package/dist/tools/workflows.d.ts.map +1 -1
  78. package/dist/tools/workflows.js +6 -19
  79. package/dist/tools/workflows.js.map +1 -1
  80. package/package.json +5 -5
@@ -0,0 +1,404 @@
1
+ import { resolveTrustLabel, } from '@duckcodeailabs/dql-core';
2
+ import { buildAnalysisQuestionPlan, composeSemanticQueryForQuestion, semanticDqlArtifactName, renderSemanticDqlArtifact, upsertGeneratedDqlArtifactDraft, } from '@duckcodeailabs/dql-agent';
3
+ import { zodInputShapeForTool } from '../tool-schema.js';
4
+ export const querySemanticModelInput = zodInputShapeForTool('query_semantic_model');
5
+ const DEFAULT_QUERY_SEMANTIC_MODEL_ROW_LIMIT = 200;
6
+ export async function querySemanticModel(ctx, args) {
7
+ const layer = ctx.semanticLayer;
8
+ const available = semanticInventory(layer);
9
+ if (available.metrics.length === 0) {
10
+ return {
11
+ matched: false,
12
+ reason: 'No semantic metrics are available in this project.',
13
+ available,
14
+ };
15
+ }
16
+ const explicitMetrics = args.metrics?.map((metric) => metric.trim()).filter(Boolean) ?? [];
17
+ if (explicitMetrics.length > 0) {
18
+ const composeOptions = {
19
+ metrics: explicitMetrics,
20
+ dimensions: args.dimensions ?? [],
21
+ ...(args.timeDimension ? { timeDimension: args.timeDimension } : {}),
22
+ ...(args.filters?.length ? { filters: args.filters } : {}),
23
+ ...(args.orderBy?.length ? { orderBy: args.orderBy } : {}),
24
+ ...(args.limit ? { limit: args.limit } : {}),
25
+ ...(args.driver ? { driver: args.driver } : {}),
26
+ ...(args.tableMapping ? { tableMapping: args.tableMapping } : {}),
27
+ };
28
+ const composed = layer.composeQuery(composeOptions);
29
+ if (!composed) {
30
+ return {
31
+ matched: false,
32
+ reason: 'SemanticLayer.composeQuery could not compile the requested metric/dimension selection.',
33
+ requested: composeOptions,
34
+ available,
35
+ };
36
+ }
37
+ const artifactName = semanticDqlArtifactName({
38
+ question: args.question ?? explicitMetrics.join(', '),
39
+ metrics: explicitMetrics,
40
+ domain: layer.listMetrics().find((metric) => metric.name === explicitMetrics[0])?.domain,
41
+ titleFallback: layer.listMetrics().find((metric) => metric.name === explicitMetrics[0])?.label ?? explicitMetrics[0],
42
+ dimensions: args.dimensions ?? [],
43
+ filters: args.filters ?? [],
44
+ timeDimension: args.timeDimension,
45
+ orderBy: args.orderBy,
46
+ limit: args.limit,
47
+ });
48
+ const domain = layer.listMetrics().find((metric) => metric.name === explicitMetrics[0])?.domain;
49
+ const dqlArtifact = {
50
+ kind: 'semantic_block',
51
+ name: artifactName,
52
+ source: renderSemanticDqlArtifact({
53
+ name: artifactName,
54
+ question: args.question ?? explicitMetrics.join(', '),
55
+ metrics: explicitMetrics,
56
+ domain,
57
+ titleFallback: layer.listMetrics().find((metric) => metric.name === explicitMetrics[0])?.label ?? explicitMetrics[0],
58
+ dimensions: args.dimensions ?? [],
59
+ filters: args.filters ?? [],
60
+ timeDimension: args.timeDimension,
61
+ orderBy: args.orderBy,
62
+ limit: args.limit,
63
+ }),
64
+ metrics: explicitMetrics,
65
+ dimensions: args.dimensions ?? [],
66
+ ...(args.filters?.length ? { filters: args.filters } : {}),
67
+ ...(args.timeDimension ? { timeDimension: args.timeDimension } : {}),
68
+ ...(args.orderBy?.length ? { orderBy: args.orderBy } : {}),
69
+ ...(args.limit ? { limit: args.limit } : {}),
70
+ };
71
+ const draftBlock = saveSemanticDraft(ctx.projectRoot, {
72
+ saveDraft: args.saveDraft,
73
+ name: artifactName,
74
+ question: args.question ?? explicitMetrics.join(', '),
75
+ domain,
76
+ dqlArtifact,
77
+ outputs: semanticArtifactOutputs(dqlArtifact),
78
+ });
79
+ const preview = await previewSemanticQuery(ctx, {
80
+ sql: composed.sql,
81
+ title: args.question ?? explicitMetrics.join(', '),
82
+ dryRun: args.dryRun,
83
+ serverUrl: args.serverUrl,
84
+ rowLimit: args.rowLimit,
85
+ });
86
+ const trust = semanticCompileTrustStatus(draftBlock, preview.error);
87
+ return {
88
+ matched: true,
89
+ uncertified: true,
90
+ reviewStatus: 'draft_ready',
91
+ certification: 'uncertified',
92
+ trustLabelInfo: trust.trustLabelInfo,
93
+ trustStatus: trust,
94
+ mode: 'explicit_members',
95
+ metrics: explicitMetrics,
96
+ dimensions: args.dimensions ?? [],
97
+ filters: args.filters ?? [],
98
+ ...(args.timeDimension ? { timeDimension: args.timeDimension } : {}),
99
+ ...(args.orderBy?.length ? { orderBy: args.orderBy } : {}),
100
+ ...(args.limit ? { limit: args.limit } : {}),
101
+ sql: composed.sql,
102
+ composeResult: composed,
103
+ ...preview,
104
+ draftBlock,
105
+ dqlArtifact: draftBlock
106
+ ? { ...dqlArtifact, sourcePath: dqlArtifact.sourcePath ?? draftBlock.path }
107
+ : dqlArtifact,
108
+ };
109
+ }
110
+ const question = args.question?.trim();
111
+ if (!question) {
112
+ return {
113
+ matched: false,
114
+ reason: 'Provide either metrics[] for explicit semantic compilation or question for deterministic member selection.',
115
+ available,
116
+ };
117
+ }
118
+ const result = composeSemanticQueryForQuestion({
119
+ semanticLayer: layer,
120
+ question,
121
+ questionPlan: buildAnalysisQuestionPlan(question),
122
+ driver: args.driver,
123
+ tableMapping: args.tableMapping,
124
+ });
125
+ if (!result) {
126
+ return {
127
+ matched: false,
128
+ reason: 'No compatible semantic metric/dimension/time-grain selection was found for the question.',
129
+ available,
130
+ };
131
+ }
132
+ const draftBlock = saveSemanticDraft(ctx.projectRoot, {
133
+ saveDraft: args.saveDraft,
134
+ name: result.dqlArtifact.name ?? result.metric,
135
+ question,
136
+ domain: layer.listMetrics().find((metric) => metric.name === result.metric)?.domain,
137
+ dqlArtifact: result.dqlArtifact,
138
+ outputs: semanticArtifactOutputs(result.dqlArtifact),
139
+ });
140
+ const preview = await previewSemanticQuery(ctx, {
141
+ sql: result.sql,
142
+ title: question,
143
+ dryRun: args.dryRun,
144
+ serverUrl: args.serverUrl,
145
+ rowLimit: args.rowLimit,
146
+ });
147
+ const trust = semanticCompileTrustStatus(draftBlock, preview.error);
148
+ return {
149
+ matched: true,
150
+ uncertified: true,
151
+ reviewStatus: 'draft_ready',
152
+ certification: 'uncertified',
153
+ trustLabelInfo: trust.trustLabelInfo,
154
+ trustStatus: trust,
155
+ mode: 'question_selection',
156
+ metric: result.metric,
157
+ metrics: result.metrics,
158
+ dimensions: result.dimensions,
159
+ filters: result.filters,
160
+ ...(result.timeDimension ? { timeDimension: result.timeDimension } : {}),
161
+ ...(result.orderBy?.length ? { orderBy: result.orderBy } : {}),
162
+ ...(result.limit ? { limit: result.limit } : {}),
163
+ sql: result.sql,
164
+ composeResult: result.composeResult,
165
+ ...preview,
166
+ draftBlock,
167
+ dqlArtifact: draftBlock
168
+ ? { ...result.dqlArtifact, sourcePath: result.dqlArtifact.sourcePath ?? draftBlock.path }
169
+ : result.dqlArtifact,
170
+ };
171
+ }
172
+ function semanticCompileTrustStatus(draftBlock, executionError) {
173
+ return {
174
+ label: 'AI-generated semantic compile',
175
+ uncertified: true,
176
+ reviewStatus: 'draft_ready',
177
+ certification: 'uncertified',
178
+ trustLabelInfo: resolveTrustLabel('ai_generated'),
179
+ draftPath: draftBlock?.path,
180
+ promotionPath: draftBlock ? 'dql certify --from-draft' : undefined,
181
+ caveats: [
182
+ 'No certified block exactly answered this question.',
183
+ 'Semantic-layer members were compiled deterministically, but the generated DQL artifact must be reviewed before certification.',
184
+ 'semantic_draft_review_required',
185
+ ...(executionError ? [`Execution caveat: ${executionError}`] : []),
186
+ ],
187
+ };
188
+ }
189
+ async function previewSemanticQuery(ctx, input) {
190
+ const rowLimit = normalizedPreviewRowLimit(input.rowLimit);
191
+ if (input.dryRun) {
192
+ return {
193
+ executionStatus: 'dry_run',
194
+ reason: 'dryRun=true; SQL not executed. Returned semantic DQL artifact and compiled SQL only.',
195
+ maxRowsReturned: rowLimit,
196
+ };
197
+ }
198
+ const safety = buildSemanticPreviewSql(input.sql, rowLimit);
199
+ if (!safety.ok) {
200
+ return {
201
+ executionStatus: 'rejected',
202
+ error: safety.error,
203
+ maxRowsReturned: rowLimit,
204
+ };
205
+ }
206
+ const base = input.serverUrl ?? process.env.DQL_RUNTIME_URL ?? 'http://127.0.0.1:3474';
207
+ const url = `${base.replace(/\/$/, '')}/api/notebook/execute`;
208
+ let response;
209
+ try {
210
+ response = await fetch(url, {
211
+ method: 'POST',
212
+ headers: { 'Content-Type': 'application/json' },
213
+ body: JSON.stringify({
214
+ cell: {
215
+ id: `mcp-semantic-${semanticPreviewSlug(input.title)}`,
216
+ type: 'sql',
217
+ source: safety.sql,
218
+ title: input.title,
219
+ },
220
+ }),
221
+ });
222
+ }
223
+ catch (err) {
224
+ return {
225
+ executionStatus: 'runtime_unavailable',
226
+ error: `Could not reach DQL runtime at ${base}. Start it with \`dql serve\` in ${ctx.projectRoot}. (${err instanceof Error ? err.message : String(err)})`,
227
+ maxRowsReturned: rowLimit,
228
+ };
229
+ }
230
+ if (!response.ok) {
231
+ return {
232
+ executionStatus: 'runtime_error',
233
+ error: `Runtime returned ${response.status}: ${await response.text()}`,
234
+ maxRowsReturned: rowLimit,
235
+ };
236
+ }
237
+ const payload = (await response.json());
238
+ if (payload.error) {
239
+ return {
240
+ executionStatus: 'execution_failed',
241
+ error: payload.error,
242
+ maxRowsReturned: rowLimit,
243
+ };
244
+ }
245
+ const rows = payload.result?.rows ?? [];
246
+ const returnedRows = rows.slice(0, rowLimit);
247
+ return {
248
+ executionStatus: 'executed',
249
+ rowCount: rows.length,
250
+ returnedRowCount: returnedRows.length,
251
+ maxRowsReturned: rowLimit,
252
+ rowsTruncated: rows.length > returnedRows.length,
253
+ durationMs: payload.result?.executionTime ?? null,
254
+ columns: payload.result?.columns ?? [],
255
+ rows: returnedRows,
256
+ };
257
+ }
258
+ function buildSemanticPreviewSql(sql, limit) {
259
+ const trimmed = sql.trim();
260
+ if (!trimmed)
261
+ return { ok: false, error: 'Semantic SQL preview is empty.' };
262
+ const withoutTrailingSemicolon = trimmed.replace(/;\s*$/, '').trim();
263
+ const scanSql = stripSqlStringsAndComments(withoutTrailingSemicolon).trim();
264
+ if (!/^(select|with)\b/i.test(scanSql)) {
265
+ return { ok: false, error: 'Semantic SQL preview only supports read-only SELECT or WITH queries.' };
266
+ }
267
+ if (scanSql.includes(';')) {
268
+ return { ok: false, error: 'Semantic SQL preview only supports one statement.' };
269
+ }
270
+ const forbiddenPattern = new RegExp(`\\b(${SEMANTIC_PREVIEW_FORBIDDEN_SQL.join('|')})\\b`, 'i');
271
+ const forbidden = scanSql.match(forbiddenPattern)?.[1];
272
+ if (forbidden) {
273
+ return { ok: false, error: `Semantic SQL preview rejected unsupported statement keyword: ${forbidden.toUpperCase()}.` };
274
+ }
275
+ return {
276
+ ok: true,
277
+ sql: `SELECT * FROM (\n${withoutTrailingSemicolon}\n) AS dql_mcp_semantic_preview LIMIT ${normalizedPreviewRowLimit(limit)}`,
278
+ };
279
+ }
280
+ const SEMANTIC_PREVIEW_FORBIDDEN_SQL = [
281
+ 'alter',
282
+ 'analyze',
283
+ 'attach',
284
+ 'call',
285
+ 'copy',
286
+ 'create',
287
+ 'delete',
288
+ 'detach',
289
+ 'drop',
290
+ 'execute',
291
+ 'grant',
292
+ 'insert',
293
+ 'install',
294
+ 'load',
295
+ 'merge',
296
+ 'pragma',
297
+ 'reset',
298
+ 'revoke',
299
+ 'set',
300
+ 'truncate',
301
+ 'update',
302
+ 'vacuum',
303
+ ];
304
+ function normalizedPreviewRowLimit(limit) {
305
+ return Math.min(Math.max(Math.trunc(limit ?? DEFAULT_QUERY_SEMANTIC_MODEL_ROW_LIMIT), 1), 10000);
306
+ }
307
+ function semanticPreviewSlug(value) {
308
+ return value.toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/^-+|-+$/g, '').slice(0, 60) || 'semantic-query';
309
+ }
310
+ function stripSqlStringsAndComments(sql) {
311
+ let output = '';
312
+ for (let index = 0; index < sql.length; index += 1) {
313
+ const current = sql[index];
314
+ const next = sql[index + 1];
315
+ if (current === '-' && next === '-') {
316
+ output += ' ';
317
+ index += 2;
318
+ while (index < sql.length && sql[index] !== '\n') {
319
+ output += ' ';
320
+ index += 1;
321
+ }
322
+ if (index < sql.length)
323
+ output += '\n';
324
+ continue;
325
+ }
326
+ if (current === '/' && next === '*') {
327
+ output += ' ';
328
+ index += 2;
329
+ while (index < sql.length && !(sql[index] === '*' && sql[index + 1] === '/')) {
330
+ output += sql[index] === '\n' ? '\n' : ' ';
331
+ index += 1;
332
+ }
333
+ if (index < sql.length) {
334
+ output += ' ';
335
+ index += 1;
336
+ }
337
+ continue;
338
+ }
339
+ if (current === "'" || current === '"') {
340
+ const quote = current;
341
+ output += ' ';
342
+ while (index + 1 < sql.length) {
343
+ index += 1;
344
+ output += sql[index] === '\n' ? '\n' : ' ';
345
+ if (sql[index] === quote) {
346
+ if (sql[index + 1] === quote) {
347
+ index += 1;
348
+ output += ' ';
349
+ continue;
350
+ }
351
+ break;
352
+ }
353
+ }
354
+ continue;
355
+ }
356
+ output += current;
357
+ }
358
+ return output;
359
+ }
360
+ function saveSemanticDraft(projectRoot, input) {
361
+ if (input.saveDraft === false)
362
+ return undefined;
363
+ return upsertGeneratedDqlArtifactDraft(projectRoot, {
364
+ slug: input.name,
365
+ question: input.question,
366
+ proposedContractId: `${input.domain ?? 'semantic'}.Unknown.${input.name}`,
367
+ proposedDomain: input.domain,
368
+ dqlArtifact: input.dqlArtifact,
369
+ outputs: input.outputs,
370
+ routeIntent: 'semantic_compile',
371
+ validationWarnings: ['semantic_draft_review_required'],
372
+ });
373
+ }
374
+ function semanticArtifactOutputs(artifact) {
375
+ return Array.from(new Set([
376
+ ...(artifact.dimensions ?? []),
377
+ ...(artifact.timeDimension ? [`${artifact.timeDimension.name}_${artifact.timeDimension.granularity}`] : []),
378
+ ...(artifact.metrics ?? []),
379
+ ]));
380
+ }
381
+ function semanticInventory(layer) {
382
+ return {
383
+ metrics: layer.listMetrics().slice(0, 80).map((metric) => ({
384
+ name: metric.name,
385
+ label: metric.label,
386
+ domain: metric.domain,
387
+ status: metric.status,
388
+ table: metric.table,
389
+ type: metric.type,
390
+ description: metric.description,
391
+ })),
392
+ dimensions: layer.listDimensions().slice(0, 120).map((dimension) => ({
393
+ name: dimension.name,
394
+ label: dimension.label,
395
+ domain: dimension.domain,
396
+ status: dimension.status,
397
+ table: dimension.table,
398
+ type: dimension.type,
399
+ isTimeDimension: dimension.isTimeDimension,
400
+ description: dimension.description,
401
+ })),
402
+ };
403
+ }
404
+ //# sourceMappingURL=query-semantic-model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-semantic-model.js","sourceRoot":"","sources":["../../src/tools/query-semantic-model.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,6 @@
1
- import { z } from 'zod';
2
1
  import type { InvariantResult } from '@duckcodeailabs/dql-governance';
3
2
  import type { DQLContext } from '../context.js';
4
- export declare const queryViaBlockInput: {
5
- name: z.ZodString;
6
- limit: z.ZodOptional<z.ZodNumber>;
7
- question: z.ZodOptional<z.ZodString>;
8
- serverUrl: z.ZodOptional<z.ZodString>;
9
- };
3
+ export declare const queryViaBlockInput: Record<string, import("zod").ZodTypeAny>;
10
4
  /**
11
5
  * Execute a certified block by name. Delegates SQL prep + warehouse execution
12
6
  * to the local-runtime HTTP server, so results honor the same semantic resolver
@@ -32,6 +26,9 @@ export declare function queryViaBlock(ctx: DQLContext, args: {
32
26
  };
33
27
  } | {
34
28
  rowCount: number;
29
+ returnedRowCount: number;
30
+ maxRowsReturned: number;
31
+ rowsTruncated: boolean;
35
32
  durationMs: number | null;
36
33
  columns: {
37
34
  name: string;
@@ -44,7 +41,7 @@ export declare function queryViaBlock(ctx: DQLContext, args: {
44
41
  blockPath: string;
45
42
  trustLabel: string;
46
43
  invariantViolation: boolean;
47
- dataState: "fresh" | "stale" | "failed" | "unknown";
44
+ dataState: "unknown" | "fresh" | "stale" | "failed";
48
45
  error?: undefined;
49
46
  routeReason?: undefined;
50
47
  grainGate?: undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"query-via-block.d.ts","sourceRoot":"","sources":["../../src/tools/query-via-block.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAYtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,eAAO,MAAM,kBAAkB;;;;;CAe9B,CAAC;AAEF;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,UAAU,EACf,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;;;;;;;;;;;;;cAuFjD,MAAM;eAAS,MAAM;;;;;;;;;;;;;GAmDlD"}
1
+ {"version":3,"file":"query-via-block.d.ts","sourceRoot":"","sources":["../../src/tools/query-via-block.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAYtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAKhD,eAAO,MAAM,kBAAkB,0CAA0C,CAAC;AAE1E;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,UAAU,EACf,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;;;;;;;;;;;;;;;;cAuFjD,MAAM;eAAS,MAAM;;;;;;;;;;;;;GAwDlD"}
@@ -1,20 +1,10 @@
1
- import { z } from 'zod';
2
1
  import { readFileSync } from 'node:fs';
3
2
  import { join } from 'node:path';
4
3
  import { buildAnalysisQuestionPlan, grainMatches, requestedGrainFromPlan, } from '@duckcodeailabs/dql-agent';
5
4
  import { composeEffectiveTrust, TRUST_QUALIFIER_INVARIANT_VIOLATED, } from '@duckcodeailabs/dql-core';
6
- export const queryViaBlockInput = {
7
- name: z.string().describe('Certified block to execute.'),
8
- limit: z.number().int().min(1).max(10000).optional().describe('Max rows to return.'),
9
- question: z
10
- .string()
11
- .optional()
12
- .describe('Original question this block is being served for. When provided, query_via_block re-checks the block grain against the requested grain (defense in depth) and refuses on a genuine grain mismatch.'),
13
- serverUrl: z
14
- .string()
15
- .optional()
16
- .describe('Base URL of the local DQL runtime (default http://127.0.0.1:3474). Start it with `dql serve`.'),
17
- };
5
+ import { zodInputShapeForTool } from '../tool-schema.js';
6
+ const DEFAULT_QUERY_VIA_BLOCK_ROW_LIMIT = 200;
7
+ export const queryViaBlockInput = zodInputShapeForTool('query_via_block');
18
8
  /**
19
9
  * Execute a certified block by name. Delegates SQL prep + warehouse execution
20
10
  * to the local-runtime HTTP server, so results honor the same semantic resolver
@@ -105,6 +95,8 @@ export async function queryViaBlock(ctx, args) {
105
95
  if (payload.error)
106
96
  return { error: payload.error };
107
97
  const rows = payload.result?.rows ?? [];
98
+ const rowLimit = args.limit ?? DEFAULT_QUERY_VIA_BLOCK_ROW_LIMIT;
99
+ const returnedRows = rows.slice(0, rowLimit);
108
100
  // Invariant enforcement: the runtime evaluates the block's declared
109
101
  // invariants against this run's result. A real violation downgrades the
110
102
  // trust label even though the block is certified — "certified" means the
@@ -139,9 +131,12 @@ export async function queryViaBlock(ctx, args) {
139
131
  ? { invariantResults }
140
132
  : {}),
141
133
  rowCount: rows.length,
134
+ returnedRowCount: returnedRows.length,
135
+ maxRowsReturned: rowLimit,
136
+ rowsTruncated: rows.length > returnedRows.length,
142
137
  durationMs: payload.result?.executionTime ?? null,
143
138
  columns: payload.result?.columns ?? [],
144
- rows: args.limit ? rows.slice(0, args.limit) : rows,
139
+ rows: returnedRows,
145
140
  };
146
141
  }
147
142
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"query-via-block.js","sourceRoot":"","sources":["../../src/tools/query-via-block.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query-via-block.js","sourceRoot":"","sources":["../../src/tools/query-via-block.ts"],"names":[],"mappings":"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"}