@duckcodeailabs/dql-agent 1.6.1 → 1.6.3
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/answer-loop.d.ts +74 -10
- package/dist/answer-loop.d.ts.map +1 -1
- package/dist/answer-loop.js +856 -84
- package/dist/answer-loop.js.map +1 -1
- package/dist/app-builder.d.ts +85 -0
- package/dist/app-builder.d.ts.map +1 -0
- package/dist/app-builder.js +677 -0
- package/dist/app-builder.js.map +1 -0
- package/dist/index.d.ts +14 -12
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +20 -19
- package/dist/index.js.map +1 -1
- package/dist/kg/build.d.ts +2 -3
- package/dist/kg/build.d.ts.map +1 -1
- package/dist/kg/build.js +115 -4
- package/dist/kg/build.js.map +1 -1
- package/dist/kg/types.d.ts +7 -6
- package/dist/kg/types.d.ts.map +1 -1
- package/dist/kg/types.js +5 -4
- package/dist/kg/types.js.map +1 -1
- package/package.json +4 -4
package/dist/answer-loop.d.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Dynamic-first governed answer loop.
|
|
3
3
|
*
|
|
4
4
|
* Stages:
|
|
5
|
-
* 1)
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
5
|
+
* 1) Route intent explicitly. Exact saved-block and KPI definition asks can
|
|
6
|
+
* use certified artifacts; ad hoc analysis and drillthroughs generate SQL.
|
|
7
|
+
* 2) Gather ranked context (blocks, terms, business views, models, runtime
|
|
8
|
+
* schema, memories, Skills) and ask the LLM to propose SQL when needed.
|
|
9
|
+
* 3) Execute read-only generated SQL with one repair attempt, then mark the
|
|
10
|
+
* answer review-required until it is promoted and certified.
|
|
11
|
+
* 4) Always cite the artifacts and context used.
|
|
12
12
|
*
|
|
13
13
|
* The loop is *deterministic* — provider invocation is the only stochastic
|
|
14
14
|
* step. Tests can mock the provider with a canned response and exercise the
|
|
@@ -20,9 +20,10 @@ import type { AgentProvider } from './providers/types.js';
|
|
|
20
20
|
import type { Skill } from './skills/loader.js';
|
|
21
21
|
import type { AgentMemory } from './memory/sqlite-memory.js';
|
|
22
22
|
export type AnswerKind = 'certified' | 'uncertified' | 'no_answer';
|
|
23
|
-
export type AnswerSourceTier = 'certified_artifact' | 'semantic_layer' | 'dbt_manifest' | 'no_answer';
|
|
23
|
+
export type AnswerSourceTier = 'certified_artifact' | 'business_context' | 'semantic_layer' | 'dbt_manifest' | 'no_answer';
|
|
24
24
|
export type AnswerCertification = 'certified' | 'ai_generated' | 'analyst_review_required';
|
|
25
25
|
export type AnswerReviewStatus = 'none' | 'draft_ready' | 'analyst_review_required' | 'certified';
|
|
26
|
+
export type AgentIntent = 'exact_certified_lookup' | 'ad_hoc_analysis' | 'drillthrough' | 'clarify';
|
|
26
27
|
export interface AgentCitation {
|
|
27
28
|
nodeId: string;
|
|
28
29
|
kind: KGNode['kind'] | 'memory';
|
|
@@ -33,7 +34,7 @@ export interface AgentCitation {
|
|
|
33
34
|
provenance?: string;
|
|
34
35
|
}
|
|
35
36
|
export type AgentEvidenceRouteStatus = 'selected' | 'checked' | 'skipped' | 'failed';
|
|
36
|
-
export type AgentEvidenceLineageRole = 'question' | 'selected_asset' | 'semantic_object' | 'source_table' | 'consumer' | 'memory';
|
|
37
|
+
export type AgentEvidenceLineageRole = 'question' | 'selected_asset' | 'business_context' | 'semantic_object' | 'source_table' | 'consumer' | 'memory';
|
|
37
38
|
export interface AgentEvidenceRouteStep {
|
|
38
39
|
tool: string;
|
|
39
40
|
status: AgentEvidenceRouteStatus;
|
|
@@ -68,6 +69,51 @@ export interface AgentEvidenceOutcome {
|
|
|
68
69
|
reviewCadence?: string;
|
|
69
70
|
caveats?: string[];
|
|
70
71
|
}
|
|
72
|
+
export interface AgentSchemaColumn {
|
|
73
|
+
name: string;
|
|
74
|
+
type?: string;
|
|
75
|
+
description?: string;
|
|
76
|
+
}
|
|
77
|
+
export interface AgentSchemaTable {
|
|
78
|
+
relation: string;
|
|
79
|
+
schema?: string;
|
|
80
|
+
name: string;
|
|
81
|
+
description?: string;
|
|
82
|
+
columns: AgentSchemaColumn[];
|
|
83
|
+
source?: string;
|
|
84
|
+
}
|
|
85
|
+
export interface AgentAnalysisPlan {
|
|
86
|
+
question: string;
|
|
87
|
+
intent: AgentIntent;
|
|
88
|
+
routeReason: string;
|
|
89
|
+
grain?: string;
|
|
90
|
+
measures: string[];
|
|
91
|
+
dimensions: string[];
|
|
92
|
+
candidateTables: Array<{
|
|
93
|
+
relation: string;
|
|
94
|
+
columns: string[];
|
|
95
|
+
reason?: string;
|
|
96
|
+
}>;
|
|
97
|
+
trustedContext: Array<{
|
|
98
|
+
kind: KGNode['kind'] | 'memory';
|
|
99
|
+
name: string;
|
|
100
|
+
certification?: AnswerCertification | 'certified' | 'uncertified';
|
|
101
|
+
sourceTier?: AnswerSourceTier | 'memory' | 'project';
|
|
102
|
+
}>;
|
|
103
|
+
assumptions: string[];
|
|
104
|
+
sql?: string;
|
|
105
|
+
suggestedViz?: string;
|
|
106
|
+
followUps: string[];
|
|
107
|
+
repairAttempts?: number;
|
|
108
|
+
}
|
|
109
|
+
export interface AgentFollowUpContext {
|
|
110
|
+
kind: 'generic' | 'drilldown';
|
|
111
|
+
sourceBlockName?: string;
|
|
112
|
+
sourceQuestion?: string;
|
|
113
|
+
sourceAnswer?: string;
|
|
114
|
+
filters?: string[];
|
|
115
|
+
dimensions?: string[];
|
|
116
|
+
}
|
|
71
117
|
export interface AgentEvidence {
|
|
72
118
|
route: AgentEvidenceRouteStep[];
|
|
73
119
|
lineage: AgentEvidenceLineageNode[];
|
|
@@ -87,6 +133,7 @@ export interface AgentEvidence {
|
|
|
87
133
|
executionTime?: number;
|
|
88
134
|
};
|
|
89
135
|
citations: AgentCitation[];
|
|
136
|
+
analysisPlan?: AgentAnalysisPlan;
|
|
90
137
|
}
|
|
91
138
|
export interface AgentAnswer {
|
|
92
139
|
kind: AnswerKind;
|
|
@@ -117,6 +164,8 @@ export interface AgentAnswer {
|
|
|
117
164
|
memoryContext?: AgentMemory[];
|
|
118
165
|
/** Evidence path connecting the question to metadata, SQL/block execution, and review state. */
|
|
119
166
|
evidence?: AgentEvidence;
|
|
167
|
+
/** Business-facing plan the agent used to answer the question. */
|
|
168
|
+
analysisPlan?: AgentAnalysisPlan;
|
|
120
169
|
/** Provider name used (for telemetry / UI badge). */
|
|
121
170
|
providerUsed?: string;
|
|
122
171
|
/** Top KG hits the loop considered, useful for the UI's "we considered" panel. */
|
|
@@ -152,6 +201,13 @@ export interface AnswerLoopInput {
|
|
|
152
201
|
skills?: Skill[];
|
|
153
202
|
/** Hints to prefer specific blocks first (vocabulary mappings from Skills). */
|
|
154
203
|
blockHints?: string[];
|
|
204
|
+
/**
|
|
205
|
+
* Structured context from the host when the user is following up on a prior
|
|
206
|
+
* answer. Generic follow-ups may reuse the same certified block; drilldowns
|
|
207
|
+
* use the prior block as context but look for a distinct certified path or a
|
|
208
|
+
* review-required draft.
|
|
209
|
+
*/
|
|
210
|
+
followUp?: AgentFollowUpContext;
|
|
155
211
|
/** Optional advisory memory. Never outranks project metadata. */
|
|
156
212
|
memoryContext?: AgentMemory[];
|
|
157
213
|
/** Optional AbortSignal forwarded to the provider. */
|
|
@@ -162,6 +218,14 @@ export interface AnswerLoopInput {
|
|
|
162
218
|
* runtime they already own.
|
|
163
219
|
*/
|
|
164
220
|
executeCertifiedBlock?: (block: KGNode) => Promise<AgentResultPayload>;
|
|
221
|
+
/**
|
|
222
|
+
* Optional host-side generated SQL preview executor. Generated SQL remains
|
|
223
|
+
* AI-generated and review-required; this only lets local hosts show bounded
|
|
224
|
+
* data evidence before an analyst promotes the query into a certified block.
|
|
225
|
+
*/
|
|
226
|
+
executeGeneratedSql?: (sql: string) => Promise<AgentResultPayload>;
|
|
227
|
+
/** Runtime schema/column context supplied by the host for generated analysis. */
|
|
228
|
+
schemaContext?: AgentSchemaTable[];
|
|
165
229
|
}
|
|
166
230
|
export declare function answer(input: AnswerLoopInput): Promise<AgentAnswer>;
|
|
167
231
|
interface ParsedProposal {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"answer-loop.d.ts","sourceRoot":"","sources":["../src/answer-loop.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAc,WAAW,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAgB,MAAM,sBAAsB,CAAC;AACxE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAE7D,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,aAAa,GAAG,WAAW,CAAC;AACnE,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,GAAG,gBAAgB,GAAG,cAAc,GAAG,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"answer-loop.d.ts","sourceRoot":"","sources":["../src/answer-loop.ts"],"names":[],"mappings":"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"}
|