@duckcodeailabs/dql-cli 1.6.20 → 1.6.22

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 (71) hide show
  1. package/dist/apps-api.d.ts +216 -2
  2. package/dist/apps-api.d.ts.map +1 -1
  3. package/dist/apps-api.js +1767 -46
  4. package/dist/apps-api.js.map +1 -1
  5. package/dist/args.d.ts +10 -0
  6. package/dist/args.d.ts.map +1 -1
  7. package/dist/args.js +19 -0
  8. package/dist/args.js.map +1 -1
  9. package/dist/assets/dql-notebook/assets/{codemirror-DJYUkPr1.js → codemirror-Co0dCEDr.js} +1 -1
  10. package/dist/assets/dql-notebook/assets/index-D9Owd4EN.css +1 -0
  11. package/dist/assets/dql-notebook/assets/index-nDZHVgfg.js +5636 -0
  12. package/dist/assets/dql-notebook/assets/{react-CRB3T2We.js → react-BRY8hXab.js} +2 -2
  13. package/dist/assets/dql-notebook/index.html +4 -4
  14. package/dist/commands/agent.d.ts +1 -1
  15. package/dist/commands/agent.d.ts.map +1 -1
  16. package/dist/commands/agent.js +50 -10
  17. package/dist/commands/agent.js.map +1 -1
  18. package/dist/commands/app.d.ts +4 -4
  19. package/dist/commands/app.d.ts.map +1 -1
  20. package/dist/commands/app.js +22 -19
  21. package/dist/commands/app.js.map +1 -1
  22. package/dist/commands/certify.d.ts.map +1 -1
  23. package/dist/commands/certify.js +70 -25
  24. package/dist/commands/certify.js.map +1 -1
  25. package/dist/commands/diff.d.ts.map +1 -1
  26. package/dist/commands/diff.js +108 -5
  27. package/dist/commands/diff.js.map +1 -1
  28. package/dist/commands/doctor.d.ts +1 -1
  29. package/dist/commands/doctor.d.ts.map +1 -1
  30. package/dist/commands/doctor.js +68 -7
  31. package/dist/commands/doctor.js.map +1 -1
  32. package/dist/commands/eval.d.ts +121 -0
  33. package/dist/commands/eval.d.ts.map +1 -0
  34. package/dist/commands/eval.js +350 -0
  35. package/dist/commands/eval.js.map +1 -0
  36. package/dist/commands/init.d.ts.map +1 -1
  37. package/dist/commands/init.js +50 -10
  38. package/dist/commands/init.js.map +1 -1
  39. package/dist/commands/notebook.d.ts +15 -0
  40. package/dist/commands/notebook.d.ts.map +1 -1
  41. package/dist/commands/notebook.js +32 -11
  42. package/dist/commands/notebook.js.map +1 -1
  43. package/dist/commands/propose.d.ts +23 -0
  44. package/dist/commands/propose.d.ts.map +1 -0
  45. package/dist/commands/propose.js +184 -0
  46. package/dist/commands/propose.js.map +1 -0
  47. package/dist/index.js +64 -11
  48. package/dist/index.js.map +1 -1
  49. package/dist/llm/analytics-tools.d.ts.map +1 -1
  50. package/dist/llm/analytics-tools.js +9 -4
  51. package/dist/llm/analytics-tools.js.map +1 -1
  52. package/dist/llm/providers/dql-agent-provider.d.ts.map +1 -1
  53. package/dist/llm/providers/dql-agent-provider.js +21 -32
  54. package/dist/llm/providers/dql-agent-provider.js.map +1 -1
  55. package/dist/llm/providers/native-sdk-provider.d.ts.map +1 -1
  56. package/dist/llm/providers/native-sdk-provider.js +5 -2
  57. package/dist/llm/providers/native-sdk-provider.js.map +1 -1
  58. package/dist/local-runtime.d.ts +132 -4
  59. package/dist/local-runtime.d.ts.map +1 -1
  60. package/dist/local-runtime.js +2120 -46
  61. package/dist/local-runtime.js.map +1 -1
  62. package/dist/package.json +10 -10
  63. package/dist/propose-enrich.d.ts +13 -0
  64. package/dist/propose-enrich.d.ts.map +1 -0
  65. package/dist/propose-enrich.js +34 -0
  66. package/dist/propose-enrich.js.map +1 -0
  67. package/dist/settings/provider-settings.js +2 -2
  68. package/dist/settings/provider-settings.js.map +1 -1
  69. package/package.json +11 -11
  70. package/dist/assets/dql-notebook/assets/index-Dgqvyn5s.js +0 -3886
  71. package/dist/assets/dql-notebook/assets/index-RaDW1A5g.css +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"notebook.js","sourceRoot":"","sources":["../../src/commands/notebook.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"notebook.js","sourceRoot":"","sources":["../../src/commands/notebook.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * `dql propose` — scan dbt evidence and generate a ranked queue of DRAFT blocks.
3
+ *
4
+ * Product principle: **AI drafts, humans certify.** Instead of authoring DQL
5
+ * from a blank file, a new user runs `dql propose` against an existing dbt repo
6
+ * and gets a draft governance layer: one `block` per high-value model, born
7
+ * `status: draft`, run through the Certifier (verdict stored so a reviewer sees
8
+ * what's missing), demand-ranked, and NEVER auto-certified.
9
+ *
10
+ * Usage:
11
+ * dql propose [path] Propose drafts for the project at path
12
+ * dql propose --dbt-manifest <path> Explicit manifest.json path
13
+ * dql propose --owner <name> Default owner stamped on drafts
14
+ * dql propose --limit <n> Cap drafts written this run
15
+ * dql propose --plan Show the deterministic PLAN; write nothing
16
+ * dql propose --dry-run Rank only; write nothing
17
+ * dql propose --enrich AI-enrich content (llmContext/examples/
18
+ * descriptions) via the configured provider
19
+ * dql propose --format json Machine-readable output
20
+ */
21
+ import type { CLIFlags } from '../args.js';
22
+ export declare function runPropose(fileArg: string | null, rest: string[], flags: CLIFlags): Promise<void>;
23
+ //# sourceMappingURL=propose.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"propose.d.ts","sourceRoot":"","sources":["../../src/commands/propose.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAMH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAG3C,wBAAsB,UAAU,CAC9B,OAAO,EAAE,MAAM,GAAG,IAAI,EACtB,IAAI,EAAE,MAAM,EAAE,EACd,KAAK,EAAE,QAAQ,GACd,OAAO,CAAC,IAAI,CAAC,CAoIf"}
@@ -0,0 +1,184 @@
1
+ /**
2
+ * `dql propose` — scan dbt evidence and generate a ranked queue of DRAFT blocks.
3
+ *
4
+ * Product principle: **AI drafts, humans certify.** Instead of authoring DQL
5
+ * from a blank file, a new user runs `dql propose` against an existing dbt repo
6
+ * and gets a draft governance layer: one `block` per high-value model, born
7
+ * `status: draft`, run through the Certifier (verdict stored so a reviewer sees
8
+ * what's missing), demand-ranked, and NEVER auto-certified.
9
+ *
10
+ * Usage:
11
+ * dql propose [path] Propose drafts for the project at path
12
+ * dql propose --dbt-manifest <path> Explicit manifest.json path
13
+ * dql propose --owner <name> Default owner stamped on drafts
14
+ * dql propose --limit <n> Cap drafts written this run
15
+ * dql propose --plan Show the deterministic PLAN; write nothing
16
+ * dql propose --dry-run Rank only; write nothing
17
+ * dql propose --enrich AI-enrich content (llmContext/examples/
18
+ * descriptions) via the configured provider
19
+ * dql propose --format json Machine-readable output
20
+ */
21
+ import { existsSync } from 'node:fs';
22
+ import { join, resolve } from 'node:path';
23
+ import { loadProjectConfig, resolveDbtManifestPath } from '@duckcodeailabs/dql-core';
24
+ import { propose, proposePlan, resolveLocalOwner } from '@duckcodeailabs/dql-agent';
25
+ import { gatherProposeEnrichment } from '../propose-enrich.js';
26
+ export async function runPropose(fileArg, rest, flags) {
27
+ // --dbt-manifest <path> may arrive in rest (it is not a first-class flag).
28
+ let explicitManifest;
29
+ const dbtIdx = rest.indexOf('--dbt-manifest');
30
+ if (dbtIdx >= 0 && rest[dbtIdx + 1])
31
+ explicitManifest = resolve(rest[dbtIdx + 1]);
32
+ // --limit <n> may also arrive in rest.
33
+ let limit;
34
+ const limitIdx = rest.indexOf('--limit');
35
+ if (limitIdx >= 0 && rest[limitIdx + 1]) {
36
+ const value = Number(rest[limitIdx + 1]);
37
+ if (Number.isFinite(value) && value > 0)
38
+ limit = value;
39
+ }
40
+ const skip = new Set(['--dbt-manifest', explicitManifest, '--limit', rest[limitIdx + 1]].filter(Boolean));
41
+ const pathArg = fileArg && !fileArg.startsWith('-') ? fileArg : rest.find((a) => !a.startsWith('-') && !skip.has(a));
42
+ const projectRoot = resolve(pathArg ?? '.');
43
+ if (!existsSync(join(projectRoot, 'dql.config.json'))) {
44
+ console.error('No DQL project found (missing dql.config.json). Run `dql init` first, then `dql propose`.');
45
+ process.exitCode = 1;
46
+ return;
47
+ }
48
+ const resolved = resolveDbtManifestPath(projectRoot, explicitManifest);
49
+ if (!resolved) {
50
+ const cfg = loadProjectConfig(projectRoot);
51
+ console.error('\n ✗ No dbt manifest found.');
52
+ console.error('');
53
+ if (cfg.dbt?.projectDir) {
54
+ console.error(` dql.config.json points at dbt project: ${cfg.dbt.projectDir}`);
55
+ console.error(' Run `dbt parse` (or `dbt compile`) there first, then re-run `dql propose`.');
56
+ }
57
+ else {
58
+ console.error(' Add a "dbt" section to dql.config.json, or pass --dbt-manifest <path>.');
59
+ }
60
+ console.error('');
61
+ process.exitCode = 1;
62
+ return;
63
+ }
64
+ const cfg = loadProjectConfig(projectRoot);
65
+ const proposeConfig = cfg.propose;
66
+ // --plan: deterministic preview (classify → plan). Writes NOTHING.
67
+ const planOnly = Boolean(flags.plan) || rest.includes('--plan');
68
+ if (planOnly) {
69
+ let plan;
70
+ try {
71
+ plan = proposePlan(projectRoot, resolved, { config: proposeConfig });
72
+ }
73
+ catch (err) {
74
+ const msg = err instanceof Error ? err.message : String(err);
75
+ console.error(`\n ✗ Plan failed: ${msg}\n`);
76
+ process.exitCode = 1;
77
+ return;
78
+ }
79
+ if (flags.format === 'json') {
80
+ console.log(JSON.stringify(plan, null, 2));
81
+ return;
82
+ }
83
+ printPlan(plan);
84
+ return;
85
+ }
86
+ // --enrich: opt-in AI enrichment (CLI is deterministic by default for CI
87
+ // reproducibility). Best-effort; no provider → deterministic dbt-derived content.
88
+ const enrich = Boolean(flags.enrich) || rest.includes('--enrich');
89
+ let enrichedBySlug;
90
+ if (enrich && !flags.dryRun) {
91
+ if (flags.format !== 'json')
92
+ console.log('\n Enriching draft content with AI (best-effort)…');
93
+ enrichedBySlug = await gatherProposeEnrichment(projectRoot, resolved, proposeConfig).catch(() => undefined);
94
+ }
95
+ // Stamp the resolved local OSS owner when --owner is absent so drafts are not
96
+ // born with a "Missing owner" Certifier strike. A dry-run must not persist.
97
+ const owner = flags.owner || resolveLocalOwner(projectRoot, { persist: !flags.dryRun });
98
+ let summary;
99
+ try {
100
+ summary = propose({
101
+ projectRoot,
102
+ dbtManifestPath: resolved,
103
+ owner,
104
+ limit,
105
+ dryRun: Boolean(flags.dryRun),
106
+ config: proposeConfig,
107
+ enrichedBySlug,
108
+ });
109
+ }
110
+ catch (err) {
111
+ const msg = err instanceof Error ? err.message : String(err);
112
+ console.error(`\n ✗ Proposal failed: ${msg}\n`);
113
+ process.exitCode = 1;
114
+ return;
115
+ }
116
+ if (flags.format === 'json') {
117
+ console.log(JSON.stringify(summary, null, 2));
118
+ return;
119
+ }
120
+ const dryRun = Boolean(flags.dryRun);
121
+ console.log('\n DQL Propose — drafts from dbt evidence');
122
+ console.log(' ' + '='.repeat(50));
123
+ if (summary.projectName)
124
+ console.log(` dbt project: ${summary.projectName}`);
125
+ console.log(` Models scanned: ${summary.modelsScanned}`);
126
+ console.log(` Business: ${summary.businessModels} (plumbing excluded: ${summary.plumbingExcluded}, metrics: ${summary.metricsFound})`);
127
+ console.log(` Selected: ${summary.proposalsRanked} (≤ ${summary.config.maxPerDomain} per domain)`);
128
+ console.log(` Drafts ${dryRun ? 'to write' : 'written'}: ${summary.draftsWritten}`);
129
+ console.log(` Skipped: ${summary.draftsSkipped}`);
130
+ console.log('');
131
+ console.log(' AI drafts, humans certify. Every block is status="draft" and');
132
+ console.log(' was checked by the Certifier (verdict stored in each file).');
133
+ console.log('');
134
+ const shown = summary.proposals.slice(0, 25);
135
+ for (const p of shown) {
136
+ const where = p.path ? p.path : p.skipped ? '(skipped)' : '(ranked)';
137
+ const exposure = p.ranking.exposureLinked ? ' · exposure' : '';
138
+ const runs = p.ranking.runCount > 0 ? ` · ${p.ranking.runCount} run(s)` : '';
139
+ console.log(` • ${p.model} [${p.inference.pattern}] score ${p.ranking.score}`);
140
+ console.log(` domain ${p.domain} · fan-out ${p.ranking.fanOut}${exposure}${runs}${p.inference.grain ? ` · grain ${p.inference.grain}` : ''}`);
141
+ const blocking = p.certification.errors.length;
142
+ const warnings = p.certification.warnings.length;
143
+ console.log(` certify gap: ${blocking} blocking, ${warnings} warning(s) → ${where}`);
144
+ if (p.skipped)
145
+ console.log(` note: ${p.skipped}`);
146
+ }
147
+ if (summary.proposals.length > shown.length) {
148
+ console.log(`\n ... and ${summary.proposals.length - shown.length} more.`);
149
+ }
150
+ console.log('');
151
+ console.log(' Next: review the top drafts under blocks/_drafts (or domains/<d>/blocks/_drafts),');
152
+ console.log(' then `dql certify --from-draft <path> --owner you@example.com` to promote.');
153
+ console.log('');
154
+ }
155
+ /** Pretty-print the deterministic PLAN (classify → plan, writes nothing). */
156
+ function printPlan(plan) {
157
+ console.log('\n DQL Propose — PLAN (nothing written)');
158
+ console.log(' ' + '='.repeat(50));
159
+ console.log(` Models scanned: ${plan.totals.modelsScanned}`);
160
+ console.log(` Business models: ${plan.totals.businessModels}`);
161
+ console.log(` Plumbing excluded: ${plan.totals.plumbingExcluded}`);
162
+ console.log(` Metrics found: ${plan.totals.metricsFound}`);
163
+ console.log(` Will generate: ${plan.willGenerate} (≤ ${plan.config.maxPerDomain} per domain)`);
164
+ console.log(` Will skip: ${plan.willSkip}`);
165
+ console.log('');
166
+ console.log(' Selective, business-only seed. Plumbing/niche models are excluded.');
167
+ console.log(' Approve the scope, then generate drafts for review (AI drafts, humans certify).');
168
+ console.log('');
169
+ for (const domain of plan.domains) {
170
+ const owner = domain.owner ? ` · owner ${domain.owner}` : '';
171
+ console.log(` ▸ ${domain.name} (${domain.modelCount})${owner}`);
172
+ for (const c of domain.candidates) {
173
+ const grain = c.grain ? ` · grain ${c.grain}` : '';
174
+ const pattern = c.pattern ? ` [${c.pattern}]` : '';
175
+ console.log(` • ${c.model}${pattern} score ${c.score}${grain}`);
176
+ if (c.evidence.length > 0)
177
+ console.log(` why: ${c.evidence.join('; ')}`);
178
+ }
179
+ console.log('');
180
+ }
181
+ console.log(' Run `dql propose` (without --plan) to write the drafts for this scope.');
182
+ console.log('');
183
+ }
184
+ //# sourceMappingURL=propose.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"propose.js","sourceRoot":"","sources":["../../src/commands/propose.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -31,6 +31,8 @@ import { runVerify } from "./commands/verify.js";
31
31
  import { runImport } from "./commands/import.js";
32
32
  import { runConnect } from "./commands/connect.js";
33
33
  import { runPromote } from "./commands/promote.js";
34
+ import { runEval } from "./commands/eval.js";
35
+ import { runPropose } from "./commands/propose.js";
34
36
  const HELP = `
35
37
  dql — DQL CLI
36
38
 
@@ -39,8 +41,8 @@ const HELP = `
39
41
  dql new <type> <name> Create a domain, block, semantic block, view, term, dashboard, or workbook
40
42
  dql build <file.dql> Compile a DQL file to a static HTML bundle
41
43
  dql doctor [path] Run local setup checks for a DQL project
42
- dql doctor scale Report enterprise-scale manifest/cache/index health
43
- dql doctor git-hygiene Flag tracked local/generated files that create noisy commits
44
+ dql doctor scale [path] Report enterprise-scale manifest/cache/index health
45
+ dql doctor git-hygiene [path] Flag tracked local/generated files that create noisy commits
44
46
  dql preview <file.dql> Render a local browser preview for a DQL file
45
47
  dql serve [directory] Serve a built DQL bundle locally
46
48
  dql parse <file.dql> Parse and analyze a DQL file
@@ -59,6 +61,10 @@ const HELP = `
59
61
  Preview or apply legacy-to-domain folder moves
60
62
  dql import sql <path> Generate AI import drafts from SQL files/folders
61
63
  dql import sql <path> --save Compatibility alias; drafts autosave before certification
64
+ dql propose [path] Draft a ranked governance layer from dbt evidence
65
+ (one DRAFT block per high-value model; never
66
+ auto-certified — humans certify)
67
+ dql propose --dry-run Rank dbt models without writing any drafts
62
68
  dql promote notebook <path> --to shared
63
69
  Strip local run/UI state and mark a notebook shared
64
70
  dql promote app <app-id> --to shared
@@ -77,15 +83,17 @@ const HELP = `
77
83
  dql mcp [--http] Run the DQL MCP server (stdio by default; --http = loopback)
78
84
  dql mcp test [path] Check whether DQL MCP can load this project
79
85
  dql connect <target> [path] Configure Codex, Claude Code, Claude Desktop, or Cursor MCP
80
- dql app new|generate|ls|show|build|reindex <name>
86
+ dql app new|generate|ls|show|build|reindex <name-or-path>
81
87
  Manage App artifacts (metadata, policies, dashboards, schedules)
82
88
  dql schedule list|run|start|status Local scheduler for @schedule'd blocks (alerts + notifications)
83
89
  dql agent ask "<question>" Block-first agent loop (certified blocks → fallback LLM SQL)
84
- dql agent reindex Rebuild .dql/cache/agent-kg.sqlite and metadata.sqlite
90
+ dql agent reindex [path] Rebuild .dql/cache/agent-kg.sqlite and metadata.sqlite
85
91
  dql agent feedback up|down Record thumbs-up/down feedback for self-learning
86
92
  dql agent eval agent-evals.yml Measure certified/follow-up/refusal accuracy
87
93
  dql slack serve Slack slash-command bot (forwards to the answer loop)
88
94
  dql verify Verify dql-manifest.json is reproducible from source
95
+ dql eval [path] Replay block examples + eval/*.yaml through the agent
96
+ router and score routing accuracy (CI-gateable)
89
97
  dql --version Show version
90
98
  dql --help Show this help
91
99
 
@@ -144,6 +152,23 @@ const COMMAND_HELP = {
144
152
  Import creates AI-first draft blocks under _drafts, parameterizes safe
145
153
  runtime literals, checks for similar certified blocks, and never certifies
146
154
  generated DQL automatically.
155
+ `,
156
+ propose: `
157
+ dql propose — Draft a governance layer from dbt evidence
158
+
159
+ Usage:
160
+ dql propose [path] [--dbt-manifest <path>] [--owner <name>] [--limit <n>]
161
+ dql propose [path] --dry-run [--format json]
162
+
163
+ Reads dbt artifacts (manifest.json, catalog.json, semantic_manifest.json,
164
+ run_results.json) and emits one DRAFT block per high-value model, inferring
165
+ grain / pattern / outputs / llmContext conservatively. Each draft is born
166
+ status="draft", checked by the Certifier (verdict stored in the file), and
167
+ ranked by downstream fan-out, exposure linkage, and run frequency.
168
+
169
+ Nothing is ever auto-certified. Re-running is idempotent — existing drafts
170
+ and already-promoted blocks are never overwritten or duplicated. Promote a
171
+ reviewed draft with: dql certify --from-draft <path> --owner you@example.com
147
172
  `,
148
173
  app: `
149
174
  dql app — Manage local App artifacts
@@ -151,10 +176,10 @@ const COMMAND_HELP = {
151
176
  Usage:
152
177
  dql app new <name>
153
178
  dql app generate "<prompt>" [--domain <domain>] [--owner <user>] [--ai-layout]
154
- dql app ls
155
- dql app show <name>
156
- dql app build <name>
157
- dql app reindex
179
+ dql app ls [path]
180
+ dql app show <name> [path]
181
+ dql app build [path]
182
+ dql app reindex [path]
158
183
 
159
184
  Notes:
160
185
  --ai-layout stores DQL-native GenUI metadata for dynamic visualization and
@@ -175,8 +200,8 @@ const COMMAND_HELP = {
175
200
  Usage:
176
201
  dql doctor [path] [--format json]
177
202
  dql doctor [path] --ai
178
- dql doctor scale [--format json]
179
- dql doctor git-hygiene [--format json]
203
+ dql doctor scale [path] [--format json]
204
+ dql doctor git-hygiene [path] [--format json]
180
205
 
181
206
  Prints setup checks and the next local-first commands to run.
182
207
  `,
@@ -210,6 +235,26 @@ const COMMAND_HELP = {
210
235
  dql semantic list [path]
211
236
  dql semantic validate [path]
212
237
  dql semantic query <metrics> [dimensions]
238
+ `,
239
+ eval: `
240
+ dql eval — Score the answer agent's routing accuracy
241
+
242
+ Usage:
243
+ dql eval [path] [--format json]
244
+ dql eval [path] --min-route-accuracy <0..1> --min-refusal <0..1>
245
+ dql eval [path] --no-examples
246
+
247
+ Replays every certified block's examples[].question plus any eval/*.yaml
248
+ cases through the existing agent router (no warehouse, no LLM judging) and
249
+ scores route accuracy, block selection, grain match, and refusal precision/
250
+ recall. Exits non-zero below the configured thresholds, so it is CI-gateable.
251
+
252
+ eval/*.yaml cases:
253
+ - question: "..."
254
+ expectRoute: certified | generated | missing_context | research
255
+ expectBlock: "<block name>" # optional
256
+ expectGrain: "<grain>" # optional
257
+ expectRefuse: true # optional; shorthand for missing_context
213
258
  `,
214
259
  verify: `
215
260
  dql verify — Verify dql-manifest.json is reproducible
@@ -255,6 +300,8 @@ async function main() {
255
300
  command === "promote" ||
256
301
  command === "schedule" ||
257
302
  command === "verify" ||
303
+ command === "eval" ||
304
+ command === "propose" ||
258
305
  (command === "certify" && Boolean(flags.fromDraft));
259
306
  if (!file && !commandAllowsNoFile) {
260
307
  console.error('Error: No file/argument specified. Run "dql --help" for usage.');
@@ -272,7 +319,7 @@ async function main() {
272
319
  await runBuild(file, flags);
273
320
  break;
274
321
  case "doctor":
275
- await runDoctor(file, flags);
322
+ await runDoctor(file, flags, rest);
276
323
  break;
277
324
  case "parse":
278
325
  await runParse(file, flags);
@@ -298,6 +345,9 @@ async function main() {
298
345
  case "import":
299
346
  await runImport(file, rest, flags);
300
347
  break;
348
+ case "propose":
349
+ await runPropose(file, rest, flags);
350
+ break;
301
351
  case "fmt":
302
352
  await runFmt(file, flags);
303
353
  break;
@@ -346,6 +396,9 @@ async function main() {
346
396
  case "verify":
347
397
  await runVerify(file, rest, flags);
348
398
  break;
399
+ case "eval":
400
+ await runEval(file, rest, flags);
401
+ break;
349
402
  default:
350
403
  console.error(`Unknown command: ${command}. Run "dql --help" for usage.`);
351
404
  process.exit(1);
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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"analytics-tools.d.ts","sourceRoot":"","sources":["../../src/llm/analytics-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAiB,MAAM,YAAY,CAAC;AAC5E,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAiC7D,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,eAAe,GAAG,SAAS,EAAE,CA+E3F;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,eAAe,GAAG,MAAM,CA0BnF;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,GAAG,IAAI,CAyBnH"}
1
+ {"version":3,"file":"analytics-tools.d.ts","sourceRoot":"","sources":["../../src/llm/analytics-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAiB,MAAM,YAAY,CAAC;AAC5E,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAiC7D,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,eAAe,GAAG,SAAS,EAAE,CA+E3F;AAQD,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,eAAe,GAAG,MAAM,CA0BnF;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,GAAG,IAAI,CAyBnH"}
@@ -104,6 +104,11 @@ export function buildAnalyticsAgentTools(ctx, req) {
104
104
  },
105
105
  ];
106
106
  }
107
+ // Defensively bound carried-forward conversation text so a long multi-turn chat
108
+ // can't grow the system prompt unbounded.
109
+ function clampPromptText(value, max = 240) {
110
+ return value.length > max ? `${value.slice(0, max).trimEnd()}…` : value;
111
+ }
107
112
  export function analyticsSystemPrompt(ctx, req) {
108
113
  const domains = Array.from(new Set(Object.values(ctx.manifest.blocks).map((block) => block.domain).filter(Boolean))).sort();
109
114
  const upstream = req.upstream?.sql?.trim();
@@ -124,10 +129,10 @@ export function analyticsSystemPrompt(ctx, req) {
124
129
  `Project context: ${Object.keys(ctx.manifest.blocks).length} blocks. Domains: ${domains.join(', ') || '(none yet)'}.`,
125
130
  upstream ? `Current UI/app context:\n${upstream}` : '',
126
131
  context?.sourceCertifiedBlock ? `Selected/source certified block: ${context.sourceCertifiedBlock}` : '',
127
- context?.sourceQuestion ? `Prior question: ${context.sourceQuestion}` : '',
128
- context?.sourceAnswerSummary ? `Prior answer summary: ${context.sourceAnswerSummary}` : '',
129
- context?.requestedFilters?.length ? `Remembered filters: ${context.requestedFilters.join(', ')}` : '',
130
- context?.requestedDimensions?.length ? `Remembered dimensions: ${context.requestedDimensions.join(', ')}` : '',
132
+ context?.sourceQuestion ? `Prior question: ${clampPromptText(context.sourceQuestion, 200)}` : '',
133
+ context?.sourceAnswerSummary ? `Prior answer summary: ${clampPromptText(context.sourceAnswerSummary)}` : '',
134
+ context?.requestedFilters?.length ? `Remembered filters: ${context.requestedFilters.slice(0, 8).join(', ')}` : '',
135
+ context?.requestedDimensions?.length ? `Remembered dimensions: ${context.requestedDimensions.slice(0, 8).join(', ')}` : '',
131
136
  ];
132
137
  return lines.filter(Boolean).join('\n');
133
138
  }
@@ -1 +1 @@
1
- {"version":3,"file":"analytics-tools.js","sourceRoot":"","sources":["../../src/llm/analytics-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analytics-tools.js","sourceRoot":"","sources":["../../src/llm/analytics-tools.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"dql-agent-provider.d.ts","sourceRoot":"","sources":["../../../src/llm/providers/dql-agent-provider.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAmB,WAAW,EAA4B,UAAU,EAAE,MAAM,aAAa,CAAC;AAGtG,KAAK,gBAAgB,GAAG,OAAO,CAAC,UAAU,EAAE,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,eAAe,CAAC,CAAC;AA4E5G,wBAAgB,4BAA4B,CAAC,EAAE,EAAE,gBAAgB,GAAG,WAAW,CA0H9E"}
1
+ {"version":3,"file":"dql-agent-provider.d.ts","sourceRoot":"","sources":["../../../src/llm/providers/dql-agent-provider.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAmB,WAAW,EAA4B,UAAU,EAAE,MAAM,aAAa,CAAC;AAGtG,KAAK,gBAAgB,GAAG,OAAO,CAAC,UAAU,EAAE,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,eAAe,CAAC,CAAC;AA4E5G,wBAAgB,4BAA4B,CAAC,EAAE,EAAE,gBAAgB,GAAG,WAAW,CAiI9E"}
@@ -7,7 +7,7 @@ const SPECS = {
7
7
  setup: 'Configure Anthropic in Settings or set ANTHROPIC_API_KEY. Optional: ANTHROPIC_MODEL.',
8
8
  create: (projectRoot) => {
9
9
  const config = getEffectiveProviderConfig(projectRoot, 'anthropic');
10
- return new ClaudeProvider({ apiKey: config.apiKey, model: config.model });
10
+ return new ClaudeProvider({ apiKey: config.apiKey, baseUrl: config.baseUrl, model: config.model });
11
11
  },
12
12
  },
13
13
  openai: {
@@ -23,7 +23,7 @@ const SPECS = {
23
23
  setup: 'Configure Gemini in Settings or set GEMINI_API_KEY. Optional: GEMINI_MODEL.',
24
24
  create: (projectRoot) => {
25
25
  const config = getEffectiveProviderConfig(projectRoot, 'gemini');
26
- return new GeminiProvider({ apiKey: config.apiKey, model: config.model });
26
+ return new GeminiProvider({ apiKey: config.apiKey, baseUrl: config.baseUrl, model: config.model });
27
27
  },
28
28
  },
29
29
  ollama: {
@@ -95,9 +95,12 @@ export function createDqlAgentProviderRunner(id) {
95
95
  const memory = new MemoryStore(defaultMemoryPath(req.projectRoot));
96
96
  const kg = new KGStore(kgPath);
97
97
  try {
98
+ // Retrieve durable learnings only — notebook/project/user/artifact scope.
99
+ // `thread` (per-conversation) memory is intentionally excluded: it is
100
+ // raw-chat residue, not a governed learning, and bloats the prompt.
98
101
  const memoryContext = memory.search({
99
102
  query: question,
100
- scopes: ['thread', 'notebook', 'project', 'user', 'artifact'],
103
+ scopes: ['notebook', 'project', 'user', 'artifact'],
101
104
  scopeId: req.upstream?.cellId,
102
105
  limit: 6,
103
106
  });
@@ -178,7 +181,11 @@ export function createDqlAgentProviderRunner(id) {
178
181
  else {
179
182
  emitProposalFromText(result.text, emit);
180
183
  }
181
- persistThreadMemory(memory, req, question, result);
184
+ // NOTE: we deliberately do NOT persist a per-turn chat summary into
185
+ // memory. Raw chat is not a correctness signal; auto-capturing it
186
+ // pollutes the store and bloats every later prompt. Durable learning
187
+ // comes only from governed deltas (certify/correct). Conversation
188
+ // continuity is carried per-request via conversationContext instead.
182
189
  }
183
190
  finally {
184
191
  kg.close();
@@ -217,17 +224,22 @@ function renderExtraContext(req, followUp) {
217
224
  }
218
225
  const context = req.conversationContext;
219
226
  if (context) {
227
+ // Bound the carried-forward "conversation memory" defensively: only the most
228
+ // recent turn's signals, with hard caps on the summary length and list sizes
229
+ // so prompts don't grow across a long multi-turn chat.
230
+ const clampText = (value, max = 240) => value.length > max ? `${value.slice(0, max).trimEnd()}…` : value;
231
+ const clampList = (values, max = 8) => values.slice(0, max).join(', ');
220
232
  const contextLines = [
221
233
  context.sourceCertifiedBlock ? `source certified block: ${context.sourceCertifiedBlock}` : '',
222
- context.sourceQuestion ? `source question: ${context.sourceQuestion}` : '',
223
- context.sourceAnswerSummary ? `source answer summary: ${context.sourceAnswerSummary}` : '',
234
+ context.sourceQuestion ? `source question: ${clampText(context.sourceQuestion, 200)}` : '',
235
+ context.sourceAnswerSummary ? `source answer summary: ${clampText(context.sourceAnswerSummary)}` : '',
224
236
  context.contextPackId ? `context pack: ${context.contextPackId}` : '',
225
237
  context.trustLabel ? `trust label: ${context.trustLabel}` : '',
226
238
  context.reviewStatus ? `review status: ${context.reviewStatus}` : '',
227
239
  context.draftBlockPath ? `draft block: ${context.draftBlockPath}` : '',
228
- context.requestedFilters?.length ? `remembered filters: ${context.requestedFilters.join(', ')}` : '',
229
- context.requestedDimensions?.length ? `remembered dimensions: ${context.requestedDimensions.join(', ')}` : '',
230
- context.outputColumns?.length ? `prior output columns: ${context.outputColumns.join(', ')}` : '',
240
+ context.requestedFilters?.length ? `remembered filters: ${clampList(context.requestedFilters)}` : '',
241
+ context.requestedDimensions?.length ? `remembered dimensions: ${clampList(context.requestedDimensions)}` : '',
242
+ context.outputColumns?.length ? `prior output columns: ${clampList(context.outputColumns)}` : '',
231
243
  ].filter(Boolean);
232
244
  if (contextLines.length > 0) {
233
245
  parts.push(`Conversation memory:\n${contextLines.join('\n')}`);
@@ -517,29 +529,6 @@ function inferProposalDomain(result) {
517
529
  ];
518
530
  return candidates.find((asset) => typeof asset.domain === 'string' && asset.domain.trim())?.domain?.trim();
519
531
  }
520
- function persistThreadMemory(memory, req, question, result) {
521
- const cellId = req.upstream?.cellId;
522
- if (!cellId)
523
- return;
524
- memory.upsert({
525
- id: `thread:${cellId}`,
526
- scope: 'thread',
527
- scopeId: cellId,
528
- title: 'Notebook chat summary',
529
- content: [
530
- `Latest question: ${question}`,
531
- `Latest route: ${result.sourceTier ?? 'unknown'} / ${result.certification ?? 'unknown'}`,
532
- result.sourceCertifiedBlock ? `Latest source block: ${result.sourceCertifiedBlock}` : '',
533
- result.contextPackId ? `Latest context pack: ${result.contextPackId}` : '',
534
- result.draftBlockId ? `Latest draft block: ${result.draftBlockId}` : '',
535
- `Latest answer: ${result.text.slice(0, 500)}`,
536
- ].filter(Boolean).join('\n'),
537
- tags: ['chat', result.sourceTier ?? 'unknown', result.certification ?? 'unknown'],
538
- source: 'notebook-chat',
539
- confidence: result.confidence ?? 0.5,
540
- importance: 0.45,
541
- });
542
- }
543
532
  function slugify(input) {
544
533
  return input
545
534
  .toLowerCase()