@duckcodeailabs/dql-agent 1.6.21 → 1.6.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent-run-engine.d.ts +287 -0
- package/dist/agent-run-engine.d.ts.map +1 -0
- package/dist/agent-run-engine.js +916 -0
- package/dist/agent-run-engine.js.map +1 -0
- package/dist/agent-run-gates.d.ts +26 -0
- package/dist/agent-run-gates.d.ts.map +1 -0
- package/dist/agent-run-gates.js +170 -0
- package/dist/agent-run-gates.js.map +1 -0
- package/dist/agent-run-planner.d.ts +32 -0
- package/dist/agent-run-planner.d.ts.map +1 -0
- package/dist/agent-run-planner.js +280 -0
- package/dist/agent-run-planner.js.map +1 -0
- package/dist/answer-loop.d.ts +49 -0
- package/dist/answer-loop.d.ts.map +1 -1
- package/dist/answer-loop.js +292 -17
- package/dist/answer-loop.js.map +1 -1
- package/dist/app-builder.d.ts +6 -0
- package/dist/app-builder.d.ts.map +1 -1
- package/dist/app-builder.js +95 -2
- package/dist/app-builder.js.map +1 -1
- package/dist/app-planner.d.ts +78 -0
- package/dist/app-planner.d.ts.map +1 -0
- package/dist/app-planner.js +145 -0
- package/dist/app-planner.js.map +1 -0
- package/dist/embeddings/provider.d.ts +66 -0
- package/dist/embeddings/provider.d.ts.map +1 -0
- package/dist/embeddings/provider.js +105 -0
- package/dist/embeddings/provider.js.map +1 -0
- package/dist/hints/git-store.d.ts +69 -0
- package/dist/hints/git-store.d.ts.map +1 -0
- package/dist/hints/git-store.js +244 -0
- package/dist/hints/git-store.js.map +1 -0
- package/dist/hints/retrieval.d.ts +49 -0
- package/dist/hints/retrieval.d.ts.map +1 -0
- package/dist/hints/retrieval.js +60 -0
- package/dist/hints/retrieval.js.map +1 -0
- package/dist/hints/store.d.ts +39 -0
- package/dist/hints/store.d.ts.map +1 -0
- package/dist/hints/store.js +279 -0
- package/dist/hints/store.js.map +1 -0
- package/dist/hints/types.d.ts +147 -0
- package/dist/hints/types.d.ts.map +1 -0
- package/dist/hints/types.js +92 -0
- package/dist/hints/types.js.map +1 -0
- package/dist/index.d.ts +43 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +35 -3
- package/dist/index.js.map +1 -1
- package/dist/intent-controller.d.ts +63 -0
- package/dist/intent-controller.d.ts.map +1 -0
- package/dist/intent-controller.js +150 -0
- package/dist/intent-controller.js.map +1 -0
- package/dist/kg/build.d.ts.map +1 -1
- package/dist/kg/build.js +2 -0
- package/dist/kg/build.js.map +1 -1
- package/dist/kg/sqlite-fts.js +4 -0
- package/dist/kg/sqlite-fts.js.map +1 -1
- package/dist/kg/types.d.ts +10 -0
- package/dist/kg/types.d.ts.map +1 -1
- package/dist/metadata/catalog.d.ts +81 -4
- package/dist/metadata/catalog.d.ts.map +1 -1
- package/dist/metadata/catalog.js +208 -1
- package/dist/metadata/catalog.js.map +1 -1
- package/dist/metadata/drafts.d.ts +22 -0
- package/dist/metadata/drafts.d.ts.map +1 -1
- package/dist/metadata/drafts.js +126 -2
- package/dist/metadata/drafts.js.map +1 -1
- package/dist/metadata/grain-gate.d.ts +61 -0
- package/dist/metadata/grain-gate.d.ts.map +1 -0
- package/dist/metadata/grain-gate.js +265 -0
- package/dist/metadata/grain-gate.js.map +1 -0
- package/dist/metadata/identity.d.ts +47 -0
- package/dist/metadata/identity.d.ts.map +1 -0
- package/dist/metadata/identity.js +147 -0
- package/dist/metadata/identity.js.map +1 -0
- package/dist/metadata/metric-match.d.ts +93 -0
- package/dist/metadata/metric-match.d.ts.map +1 -0
- package/dist/metadata/metric-match.js +233 -0
- package/dist/metadata/metric-match.js.map +1 -0
- package/dist/metadata/sql-grounding.d.ts +149 -0
- package/dist/metadata/sql-grounding.d.ts.map +1 -0
- package/dist/metadata/sql-grounding.js +397 -0
- package/dist/metadata/sql-grounding.js.map +1 -0
- package/dist/metadata/sql-retrieval.d.ts +29 -0
- package/dist/metadata/sql-retrieval.d.ts.map +1 -0
- package/dist/metadata/sql-retrieval.js +79 -0
- package/dist/metadata/sql-retrieval.js.map +1 -0
- package/dist/narrate.d.ts +52 -0
- package/dist/narrate.d.ts.map +1 -0
- package/dist/narrate.js +263 -0
- package/dist/narrate.js.map +1 -0
- package/dist/propose/build-from-prompt.d.ts +160 -0
- package/dist/propose/build-from-prompt.d.ts.map +1 -0
- package/dist/propose/build-from-prompt.js +815 -0
- package/dist/propose/build-from-prompt.js.map +1 -0
- package/dist/propose/classify.d.ts +55 -0
- package/dist/propose/classify.d.ts.map +1 -0
- package/dist/propose/classify.js +167 -0
- package/dist/propose/classify.js.map +1 -0
- package/dist/propose/config.d.ts +39 -0
- package/dist/propose/config.d.ts.map +1 -0
- package/dist/propose/config.js +52 -0
- package/dist/propose/config.js.map +1 -0
- package/dist/propose/dbt-artifacts.d.ts +134 -0
- package/dist/propose/dbt-artifacts.d.ts.map +1 -0
- package/dist/propose/dbt-artifacts.js +320 -0
- package/dist/propose/dbt-artifacts.js.map +1 -0
- package/dist/propose/edit-block.d.ts +74 -0
- package/dist/propose/edit-block.d.ts.map +1 -0
- package/dist/propose/edit-block.js +133 -0
- package/dist/propose/edit-block.js.map +1 -0
- package/dist/propose/enrich.d.ts +48 -0
- package/dist/propose/enrich.d.ts.map +1 -0
- package/dist/propose/enrich.js +125 -0
- package/dist/propose/enrich.js.map +1 -0
- package/dist/propose/generate-sql.d.ts +61 -0
- package/dist/propose/generate-sql.d.ts.map +1 -0
- package/dist/propose/generate-sql.js +180 -0
- package/dist/propose/generate-sql.js.map +1 -0
- package/dist/propose/index.d.ts +24 -0
- package/dist/propose/index.d.ts.map +1 -0
- package/dist/propose/index.js +15 -0
- package/dist/propose/index.js.map +1 -0
- package/dist/propose/propose.d.ts +226 -0
- package/dist/propose/propose.d.ts.map +1 -0
- package/dist/propose/propose.js +668 -0
- package/dist/propose/propose.js.map +1 -0
- package/dist/propose/reflect-block.d.ts +99 -0
- package/dist/propose/reflect-block.d.ts.map +1 -0
- package/dist/propose/reflect-block.js +220 -0
- package/dist/propose/reflect-block.js.map +1 -0
- package/dist/propose/write-draft.d.ts +90 -0
- package/dist/propose/write-draft.d.ts.map +1 -0
- package/dist/propose/write-draft.js +185 -0
- package/dist/propose/write-draft.js.map +1 -0
- package/dist/providers/claude.d.ts +13 -1
- package/dist/providers/claude.d.ts.map +1 -1
- package/dist/providers/claude.js +20 -2
- package/dist/providers/claude.js.map +1 -1
- package/dist/providers/gemini.d.ts +13 -1
- package/dist/providers/gemini.d.ts.map +1 -1
- package/dist/providers/gemini.js +24 -3
- package/dist/providers/gemini.js.map +1 -1
- package/dist/providers/index.d.ts +3 -3
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +3 -3
- package/dist/providers/index.js.map +1 -1
- package/dist/research-loop.d.ts +62 -0
- package/dist/research-loop.d.ts.map +1 -0
- package/dist/research-loop.js +210 -0
- package/dist/research-loop.js.map +1 -0
- package/dist/skills/defaults.d.ts +37 -0
- package/dist/skills/defaults.d.ts.map +1 -0
- package/dist/skills/defaults.js +152 -0
- package/dist/skills/defaults.js.map +1 -0
- package/dist/skills/loader.d.ts +60 -0
- package/dist/skills/loader.d.ts.map +1 -1
- package/dist/skills/loader.js +164 -2
- package/dist/skills/loader.js.map +1 -1
- package/package.json +7 -5
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `dql propose` engine — turn dbt evidence into a ranked queue of DRAFT blocks.
|
|
3
|
+
*
|
|
4
|
+
* Product principle: **AI drafts, humans certify.** A new user should not author
|
|
5
|
+
* DQL from a blank file. This engine scans dbt artifacts and proposes a draft
|
|
6
|
+
* governance layer: one `block` per high-value model, born `status: draft`, run
|
|
7
|
+
* through the Certifier (results stored so a reviewer sees "what's missing to
|
|
8
|
+
* certify"), and demand-ranked by downstream value.
|
|
9
|
+
*
|
|
10
|
+
* Hard rules enforced here:
|
|
11
|
+
* - Nothing is ever emitted with `status: certified`. Promotion is a separate
|
|
12
|
+
* human action (`dql certify --from-draft`).
|
|
13
|
+
* - Re-running is idempotent: an existing draft / certified / review block for
|
|
14
|
+
* the same model is never overwritten or duplicated.
|
|
15
|
+
* - Inference is conservative — grain/pattern/outputs are only set when the
|
|
16
|
+
* evidence is obvious, and invariants are limited to provably-safe checks.
|
|
17
|
+
*/
|
|
18
|
+
import { type Classification } from './classify.js';
|
|
19
|
+
import { type ProposeConfig, type ProposeConfigInput } from './config.js';
|
|
20
|
+
import type { EnrichedContent } from './enrich.js';
|
|
21
|
+
export interface ProposeOptions {
|
|
22
|
+
projectRoot: string;
|
|
23
|
+
dbtManifestPath: string;
|
|
24
|
+
/** Default owner stamped on drafts (reviewer fills in if blank). */
|
|
25
|
+
owner?: string;
|
|
26
|
+
/**
|
|
27
|
+
* Cap on the number of drafts written in one run. Keeps the queue reviewable
|
|
28
|
+
* on large dbt projects. undefined = no cap.
|
|
29
|
+
*/
|
|
30
|
+
limit?: number;
|
|
31
|
+
/**
|
|
32
|
+
* When true, score and rank but do not write any files. Useful for previews.
|
|
33
|
+
*/
|
|
34
|
+
dryRun?: boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Set of model/block slugs that already exist in the project (drafts or
|
|
37
|
+
* certified). When omitted, the engine derives it by checking the filesystem.
|
|
38
|
+
* Injectable for tests.
|
|
39
|
+
*/
|
|
40
|
+
existingBlockSlugs?: Set<string>;
|
|
41
|
+
/**
|
|
42
|
+
* Optional `propose` config block (from `dql.config.json`). Refines the
|
|
43
|
+
* classifier conventions, bounded selection, and AI-enrichment toggle.
|
|
44
|
+
* Defaults apply for every field when omitted.
|
|
45
|
+
*/
|
|
46
|
+
config?: ProposeConfigInput | null;
|
|
47
|
+
/**
|
|
48
|
+
* When provided, restrict generation to exactly these block slugs (the human
|
|
49
|
+
* "approved scope"). Pass 1 classification still scans all models; only the
|
|
50
|
+
* selected, approved slugs are inferred + certified + written. Reuses the
|
|
51
|
+
* same bounded-selection path otherwise.
|
|
52
|
+
*/
|
|
53
|
+
onlySlugs?: string[];
|
|
54
|
+
/**
|
|
55
|
+
* Optional pre-computed AI enrichment (keyed by slug), produced asynchronously
|
|
56
|
+
* by the generate path. When present for a slug, its `description`/`llmContext`/
|
|
57
|
+
* `examples` override the deterministic dbt-derived content. The engine never
|
|
58
|
+
* calls a provider itself — enrichment is consumed here as plain data, so
|
|
59
|
+
* `propose()` stays sync, deterministic, and offline-safe.
|
|
60
|
+
*/
|
|
61
|
+
enrichedBySlug?: Map<string, EnrichedContent>;
|
|
62
|
+
}
|
|
63
|
+
export type ProposedPattern = 'entity_profile' | 'metric_wrapper' | 'entity_rollup' | 'trend' | 'custom';
|
|
64
|
+
export interface ProposalInference {
|
|
65
|
+
pattern: ProposedPattern;
|
|
66
|
+
grain?: string;
|
|
67
|
+
declaredOutputs: string[];
|
|
68
|
+
entities: string[];
|
|
69
|
+
llmContext?: string;
|
|
70
|
+
invariants: string[];
|
|
71
|
+
examples: Array<{
|
|
72
|
+
question: string;
|
|
73
|
+
sql?: string;
|
|
74
|
+
}>;
|
|
75
|
+
tags: string[];
|
|
76
|
+
}
|
|
77
|
+
export interface ProposalRanking {
|
|
78
|
+
/** Number of dbt models that depend on this model (downstream fan-out). */
|
|
79
|
+
fanOut: number;
|
|
80
|
+
/** Whether a dbt exposure references this model. */
|
|
81
|
+
exposureLinked: boolean;
|
|
82
|
+
/** Recorded runs from run_results.json (0 when unavailable). */
|
|
83
|
+
runCount: number;
|
|
84
|
+
/** Composite score used to order the queue (higher = more valuable). */
|
|
85
|
+
score: number;
|
|
86
|
+
}
|
|
87
|
+
export interface ProposalResult {
|
|
88
|
+
model: string;
|
|
89
|
+
slug: string;
|
|
90
|
+
domain: string;
|
|
91
|
+
/** Deterministic business-layer classification (business | plumbing | niche). */
|
|
92
|
+
classification: Classification;
|
|
93
|
+
/** Human-readable signals that drove the classification + selection. */
|
|
94
|
+
evidence: string[];
|
|
95
|
+
/** Owner derived from dbt meta, if present. */
|
|
96
|
+
owner?: string;
|
|
97
|
+
inference: ProposalInference;
|
|
98
|
+
ranking: ProposalRanking;
|
|
99
|
+
/** Path written (relative to projectRoot), or undefined when skipped/dry-run. */
|
|
100
|
+
path?: string;
|
|
101
|
+
/** Why a draft was skipped (already exists), if applicable. */
|
|
102
|
+
skipped?: string;
|
|
103
|
+
/** Stored Certifier verdict so a reviewer sees what's missing to certify. */
|
|
104
|
+
certification: {
|
|
105
|
+
certified: false;
|
|
106
|
+
errors: Array<{
|
|
107
|
+
rule: string;
|
|
108
|
+
message: string;
|
|
109
|
+
}>;
|
|
110
|
+
warnings: Array<{
|
|
111
|
+
rule: string;
|
|
112
|
+
message: string;
|
|
113
|
+
}>;
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
export interface ProposeSummary {
|
|
117
|
+
projectName?: string;
|
|
118
|
+
modelsScanned: number;
|
|
119
|
+
/** Models classified `business` by the cascade. */
|
|
120
|
+
businessModels: number;
|
|
121
|
+
/** Models classified `plumbing` and excluded from generation. */
|
|
122
|
+
plumbingExcluded: number;
|
|
123
|
+
/** Semantic metrics discovered in the manifest. */
|
|
124
|
+
metricsFound: number;
|
|
125
|
+
proposalsRanked: number;
|
|
126
|
+
draftsWritten: number;
|
|
127
|
+
draftsSkipped: number;
|
|
128
|
+
/** Resolved propose config used for this run. */
|
|
129
|
+
config: ProposeConfig;
|
|
130
|
+
proposals: ProposalResult[];
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Run the proposal engine end to end: load artifacts, classify (cheap pass),
|
|
134
|
+
* select a bounded business-only seed, then — for the selection ONLY — infer
|
|
135
|
+
* grain/pattern/outputs/invariants and run the Certifier, write drafts, and
|
|
136
|
+
* store verdicts. Returns a deterministic, ranked summary.
|
|
137
|
+
*
|
|
138
|
+
* Plumbing/niche models are EXCLUDED from generation (never written), and the
|
|
139
|
+
* expensive Pass-2 work (inference + Certifier) runs only on the bounded
|
|
140
|
+
* selection — at 10k models this is hundreds of inferences, not thousands.
|
|
141
|
+
*/
|
|
142
|
+
export declare function propose(options: ProposeOptions): ProposeSummary;
|
|
143
|
+
export interface ProposePlanCandidate {
|
|
144
|
+
model: string;
|
|
145
|
+
slug: string;
|
|
146
|
+
score: number;
|
|
147
|
+
classification: Classification;
|
|
148
|
+
owner?: string;
|
|
149
|
+
/** Human-readable signals (e.g. "feeds 2 exposures", "marts/ folder"). */
|
|
150
|
+
evidence: string[];
|
|
151
|
+
/** Optional cheap-pass grain/pattern hints (may be omitted in the plan). */
|
|
152
|
+
grain?: string;
|
|
153
|
+
pattern?: ProposedPattern;
|
|
154
|
+
/**
|
|
155
|
+
* OPTIONAL "transparent preview" fields (spec 14, part A). Left undefined by
|
|
156
|
+
* the cheap `proposePlan()` so the plan stays O(N) and Certifier-free for all
|
|
157
|
+
* candidates. The `/api/propose/preview?slug=` endpoint fills them for ONE
|
|
158
|
+
* candidate by running real SQL generation + the Certifier + (best-effort) AI
|
|
159
|
+
* enrichment, so the UI can show the actual SQL/logic before a human commits.
|
|
160
|
+
*/
|
|
161
|
+
sqlPreview?: string;
|
|
162
|
+
description?: string;
|
|
163
|
+
llmContext?: string;
|
|
164
|
+
examples?: string[];
|
|
165
|
+
outputs?: string[];
|
|
166
|
+
certifierVerdict?: {
|
|
167
|
+
blocking: string[];
|
|
168
|
+
warnings: string[];
|
|
169
|
+
ready: boolean;
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
export interface ProposePlanDomain {
|
|
173
|
+
name: string;
|
|
174
|
+
owner?: string;
|
|
175
|
+
modelCount: number;
|
|
176
|
+
candidates: ProposePlanCandidate[];
|
|
177
|
+
}
|
|
178
|
+
export interface ProposePlan {
|
|
179
|
+
totals: {
|
|
180
|
+
modelsScanned: number;
|
|
181
|
+
businessModels: number;
|
|
182
|
+
plumbingExcluded: number;
|
|
183
|
+
metricsFound: number;
|
|
184
|
+
};
|
|
185
|
+
willGenerate: number;
|
|
186
|
+
willSkip: number;
|
|
187
|
+
domains: ProposePlanDomain[];
|
|
188
|
+
/** Resolved propose config used to build the plan. */
|
|
189
|
+
config: ProposeConfig;
|
|
190
|
+
}
|
|
191
|
+
export interface ProposePlanOptions {
|
|
192
|
+
config?: ProposeConfigInput | null;
|
|
193
|
+
/** When true, omit cheap grain/pattern hints (pure classify-only plan). */
|
|
194
|
+
skipHints?: boolean;
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Build a deterministic PLAN of what `propose` WOULD generate — and writes
|
|
198
|
+
* NOTHING. Reuses the cheap Pass-1 scan + bounded selection so the plan is an
|
|
199
|
+
* exact preview of the generated scope. Grain/pattern hints are cheap and
|
|
200
|
+
* optional (folder/column heuristics, no Certifier). Same input → same plan.
|
|
201
|
+
*/
|
|
202
|
+
export declare function proposePlan(projectRoot: string, dbtManifestPath: string, options?: ProposePlanOptions): ProposePlan;
|
|
203
|
+
export interface ProposePreviewOptions {
|
|
204
|
+
config?: ProposeConfigInput | null;
|
|
205
|
+
/** Default owner for the Certifier verdict (so "Missing owner" is suppressed). */
|
|
206
|
+
owner?: string;
|
|
207
|
+
/**
|
|
208
|
+
* Optional pre-computed AI enrichment for this slug. When present, its
|
|
209
|
+
* description/llmContext/examples override the deterministic dbt-derived
|
|
210
|
+
* content. The engine never calls a provider itself.
|
|
211
|
+
*/
|
|
212
|
+
enriched?: EnrichedContent;
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Build the FILLED preview for a single candidate slug: real aggregation/
|
|
216
|
+
* projection SQL (via `buildBusinessQuery`, NOT select-*), declared outputs,
|
|
217
|
+
* description, llmContext, examples, and the Certifier verdict
|
|
218
|
+
* ({ blocking, warnings, ready }). Writes NOTHING.
|
|
219
|
+
*
|
|
220
|
+
* This is the lazy/expensive path: `proposePlan()` stays cheap for all
|
|
221
|
+
* candidates; this runs inference + SQL generation + the Certifier for ONE slug
|
|
222
|
+
* only. Returns `undefined` when the slug is not part of the bounded,
|
|
223
|
+
* business-only selection (so the caller can 404).
|
|
224
|
+
*/
|
|
225
|
+
export declare function buildProposePreview(projectRoot: string, dbtManifestPath: string, slug: string, options?: ProposePreviewOptions): ProposePlanCandidate | undefined;
|
|
226
|
+
//# sourceMappingURL=propose.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"propose.d.ts","sourceRoot":"","sources":["../../src/propose/propose.ts"],"names":[],"mappings":"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"}
|