@duckcodeailabs/dql-agent 1.11.10 → 1.12.1
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.map +1 -1
- package/dist/agent-run-engine.js +7 -3
- package/dist/agent-run-engine.js.map +1 -1
- package/dist/answer-loop.d.ts +25 -1
- package/dist/answer-loop.d.ts.map +1 -1
- package/dist/answer-loop.js +141 -17
- package/dist/answer-loop.js.map +1 -1
- package/dist/conversation/rolling-summary.d.ts +23 -0
- package/dist/conversation/rolling-summary.d.ts.map +1 -1
- package/dist/conversation/rolling-summary.js +64 -0
- package/dist/conversation/rolling-summary.js.map +1 -1
- package/dist/conversation/session-store.d.ts +18 -2
- package/dist/conversation/session-store.d.ts.map +1 -1
- package/dist/conversation/session-store.js +65 -8
- package/dist/conversation/session-store.js.map +1 -1
- package/dist/conversation/snapshot.d.ts +37 -4
- package/dist/conversation/snapshot.d.ts.map +1 -1
- package/dist/conversation/snapshot.js +115 -6
- package/dist/conversation/snapshot.js.map +1 -1
- package/dist/hints/correction-eval.d.ts.map +1 -1
- package/dist/hints/correction-eval.js +4 -6
- package/dist/hints/correction-eval.js.map +1 -1
- package/dist/hints/dependencies.d.ts +63 -0
- package/dist/hints/dependencies.d.ts.map +1 -0
- package/dist/hints/dependencies.js +196 -0
- package/dist/hints/dependencies.js.map +1 -0
- package/dist/hints/git-store.d.ts +55 -2
- package/dist/hints/git-store.d.ts.map +1 -1
- package/dist/hints/git-store.js +246 -11
- package/dist/hints/git-store.js.map +1 -1
- package/dist/hints/graph.d.ts +17 -0
- package/dist/hints/graph.d.ts.map +1 -0
- package/dist/hints/graph.js +222 -0
- package/dist/hints/graph.js.map +1 -0
- package/dist/hints/lifecycle.d.ts +107 -0
- package/dist/hints/lifecycle.d.ts.map +1 -0
- package/dist/hints/lifecycle.js +415 -0
- package/dist/hints/lifecycle.js.map +1 -0
- package/dist/hints/retrieval.d.ts +13 -1
- package/dist/hints/retrieval.d.ts.map +1 -1
- package/dist/hints/retrieval.js +74 -11
- package/dist/hints/retrieval.js.map +1 -1
- package/dist/hints/store.d.ts +9 -2
- package/dist/hints/store.d.ts.map +1 -1
- package/dist/hints/store.js +155 -15
- package/dist/hints/store.js.map +1 -1
- package/dist/hints/types.d.ts +63 -3
- package/dist/hints/types.d.ts.map +1 -1
- package/dist/hints/types.js +1 -1
- package/dist/hints/types.js.map +1 -1
- package/dist/index.d.ts +17 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -6
- package/dist/index.js.map +1 -1
- package/dist/intent-controller.d.ts.map +1 -1
- package/dist/intent-controller.js +24 -3
- package/dist/intent-controller.js.map +1 -1
- package/dist/metadata/catalog.d.ts +32 -0
- package/dist/metadata/catalog.d.ts.map +1 -1
- package/dist/metadata/catalog.js +86 -4
- package/dist/metadata/catalog.js.map +1 -1
- package/dist/metadata/sql-context-validation.d.ts.map +1 -1
- package/dist/metadata/sql-context-validation.js +16 -0
- package/dist/metadata/sql-context-validation.js.map +1 -1
- package/dist/metadata/sql-grounding.d.ts +7 -0
- package/dist/metadata/sql-grounding.d.ts.map +1 -1
- package/dist/metadata/sql-grounding.js +26 -1
- package/dist/metadata/sql-grounding.js.map +1 -1
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +32 -9
- package/dist/router.js.map +1 -1
- package/dist/skills/loader.js +1 -1
- package/dist/skills/loader.js.map +1 -1
- package/dist/tools/registry.js +5 -5
- package/dist/tools/registry.js.map +1 -1
- package/package.json +4 -4
package/dist/hints/store.d.ts
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* extending the existing store rather than introducing a second cache file.
|
|
7
7
|
* Approved-only is enforced at the retrieval boundary (`searchApprovedHints`).
|
|
8
8
|
*/
|
|
9
|
-
import { type Hint, type HintStatus, type QuestionScope, type ScopedHintMatch } from './types.js';
|
|
9
|
+
import { type Hint, type HintGraphEdge, type HintStatus, type QuestionScope, type ScopedHintMatch } from './types.js';
|
|
10
10
|
import { type EmbeddingProvider } from '../embeddings/provider.js';
|
|
11
11
|
export interface SearchApprovedHintsOptions {
|
|
12
12
|
questionScope: QuestionScope;
|
|
@@ -19,19 +19,26 @@ export declare class HintStore {
|
|
|
19
19
|
private db;
|
|
20
20
|
constructor(dbPath: string);
|
|
21
21
|
private initSchema;
|
|
22
|
+
private ensureColumn;
|
|
22
23
|
/** Replace the whole index from the Git-authoritative hint set. */
|
|
23
|
-
rebuild(hints: Hint[]): void;
|
|
24
|
+
rebuild(hints: Hint[], projectionFingerprint?: string): void;
|
|
24
25
|
/** Upsert a single hint (keeps Git + SQLite in sync after a record/approve). */
|
|
25
26
|
upsert(hint: Hint): void;
|
|
27
|
+
/** Fingerprint of the Git hint set and projection schema currently indexed. */
|
|
28
|
+
projectionFingerprint(): string | undefined;
|
|
26
29
|
private insertRow;
|
|
30
|
+
private prepareEdgeInsert;
|
|
27
31
|
get(id: string): Hint | null;
|
|
28
32
|
list(status?: HintStatus): Hint[];
|
|
33
|
+
/** Typed, rebuildable graph connections for review and retrieval ranking. */
|
|
34
|
+
edgesForHint(hintId: string): HintGraphEdge[];
|
|
29
35
|
/**
|
|
30
36
|
* Retrieve APPROVED hints that apply to a question's scope. This is the only
|
|
31
37
|
* retrieval entry point used outside review/dev mode — draft/candidate hints
|
|
32
38
|
* are never returned here.
|
|
33
39
|
*/
|
|
34
40
|
searchApprovedHints(options: SearchApprovedHintsOptions): Promise<ScopedHintMatch[]>;
|
|
41
|
+
private approvedHintsForTargets;
|
|
35
42
|
/** Approved hints whose scopes overlap (surfaced as conflicts for review). */
|
|
36
43
|
conflictingApprovedHints(): Array<[Hint, Hint]>;
|
|
37
44
|
close(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/hints/store.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,EAEL,KAAK,IAAI,
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/hints/store.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,EAEL,KAAK,IAAI,EACT,KAAK,aAAa,EAElB,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,eAAe,EACrB,MAAM,YAAY,CAAC;AAQpB,OAAO,EAIL,KAAK,iBAAiB,EACvB,MAAM,2BAA2B,CAAC;AAWnC,MAAM,WAAW,0BAA0B;IACzC,aAAa,EAAE,aAAa,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8EAA8E;IAC9E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CACvC;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,EAAE,CAAoB;gBAElB,MAAM,EAAE,MAAM;IAQ1B,OAAO,CAAC,UAAU;IAuElB,OAAO,CAAC,YAAY;IAOpB,mEAAmE;IACnE,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI;IAkC5D,gFAAgF;IAChF,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAuBxB,+EAA+E;IAC/E,qBAAqB,IAAI,MAAM,GAAG,SAAS;IAO3C,OAAO,CAAC,SAAS;IAqDjB,OAAO,CAAC,iBAAiB;IAQzB,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAK5B,IAAI,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,IAAI,EAAE;IAOjC,6EAA6E;IAC7E,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,EAAE;IAU7C;;;;OAIG;IACG,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAmF1F,OAAO,CAAC,uBAAuB;IAe/B,8EAA8E;IAC9E,wBAAwB,IAAI,KAAK,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAc/C,KAAK,IAAI,IAAI;CAGd"}
|
package/dist/hints/store.js
CHANGED
|
@@ -10,6 +10,7 @@ import { dirname } from 'node:path';
|
|
|
10
10
|
import { mkdirSync } from 'node:fs';
|
|
11
11
|
import { createRequire } from 'node:module';
|
|
12
12
|
import { hintAppliesToScope, } from './types.js';
|
|
13
|
+
import { buildHintGraphEdges, describeHintGraphOverlap, highSignalHintGraphTargetIds, hintGraphOverlapScore, questionHintGraphTargetIds, } from './graph.js';
|
|
13
14
|
import { envEmbeddingProvider, hybridRank, } from '../embeddings/provider.js';
|
|
14
15
|
import { sanitizeFtsQuery } from '../memory/fts-query.js';
|
|
15
16
|
const require = createRequire(import.meta.url);
|
|
@@ -45,6 +46,12 @@ export class HintStore {
|
|
|
45
46
|
tags_json TEXT NOT NULL DEFAULT '[]',
|
|
46
47
|
author TEXT,
|
|
47
48
|
reviewer TEXT,
|
|
49
|
+
snapshot_id TEXT,
|
|
50
|
+
required_evaluation TEXT,
|
|
51
|
+
evaluation_id TEXT,
|
|
52
|
+
evaluation_status TEXT,
|
|
53
|
+
dependencies_json TEXT NOT NULL DEFAULT '[]',
|
|
54
|
+
lifecycle_errors_json TEXT NOT NULL DEFAULT '[]',
|
|
48
55
|
supersedes TEXT,
|
|
49
56
|
created_at TEXT NOT NULL,
|
|
50
57
|
updated_at TEXT NOT NULL,
|
|
@@ -55,6 +62,26 @@ export class HintStore {
|
|
|
55
62
|
CREATE INDEX IF NOT EXISTS idx_agent_hints_domain ON agent_hints(domain);
|
|
56
63
|
CREATE INDEX IF NOT EXISTS idx_agent_hints_model ON agent_hints(dbt_model);
|
|
57
64
|
|
|
65
|
+
CREATE TABLE IF NOT EXISTS agent_hint_edges (
|
|
66
|
+
hint_id TEXT NOT NULL,
|
|
67
|
+
edge_kind TEXT NOT NULL,
|
|
68
|
+
target_id TEXT NOT NULL,
|
|
69
|
+
target_kind TEXT NOT NULL,
|
|
70
|
+
target_name TEXT NOT NULL,
|
|
71
|
+
fingerprint TEXT,
|
|
72
|
+
source TEXT NOT NULL,
|
|
73
|
+
PRIMARY KEY (hint_id, edge_kind, target_id)
|
|
74
|
+
);
|
|
75
|
+
CREATE INDEX IF NOT EXISTS idx_agent_hint_edges_hint
|
|
76
|
+
ON agent_hint_edges(hint_id);
|
|
77
|
+
CREATE INDEX IF NOT EXISTS idx_agent_hint_edges_target
|
|
78
|
+
ON agent_hint_edges(target_id, edge_kind);
|
|
79
|
+
|
|
80
|
+
CREATE TABLE IF NOT EXISTS agent_hint_meta (
|
|
81
|
+
key TEXT PRIMARY KEY,
|
|
82
|
+
value TEXT NOT NULL
|
|
83
|
+
);
|
|
84
|
+
|
|
58
85
|
CREATE VIRTUAL TABLE IF NOT EXISTS agent_hints_fts USING fts5(
|
|
59
86
|
id UNINDEXED,
|
|
60
87
|
title,
|
|
@@ -64,25 +91,50 @@ export class HintStore {
|
|
|
64
91
|
tokenize = 'porter unicode61'
|
|
65
92
|
);
|
|
66
93
|
`);
|
|
94
|
+
this.ensureColumn('snapshot_id', 'TEXT');
|
|
95
|
+
this.ensureColumn('required_evaluation', 'TEXT');
|
|
96
|
+
this.ensureColumn('evaluation_id', 'TEXT');
|
|
97
|
+
this.ensureColumn('evaluation_status', 'TEXT');
|
|
98
|
+
this.ensureColumn('dependencies_json', "TEXT NOT NULL DEFAULT '[]'");
|
|
99
|
+
this.ensureColumn('lifecycle_errors_json', "TEXT NOT NULL DEFAULT '[]'");
|
|
100
|
+
}
|
|
101
|
+
ensureColumn(name, definition) {
|
|
102
|
+
const columns = this.db.pragma('table_info(agent_hints)');
|
|
103
|
+
if (!columns.some((column) => column.name === name)) {
|
|
104
|
+
this.db.exec(`ALTER TABLE agent_hints ADD COLUMN ${name} ${definition}`);
|
|
105
|
+
}
|
|
67
106
|
}
|
|
68
107
|
/** Replace the whole index from the Git-authoritative hint set. */
|
|
69
|
-
rebuild(hints) {
|
|
108
|
+
rebuild(hints, projectionFingerprint) {
|
|
70
109
|
const insert = this.db.prepare(`
|
|
71
110
|
INSERT OR REPLACE INTO agent_hints (
|
|
72
111
|
id, title, guidance, status, metric, dbt_model, domain, dialect, term, block,
|
|
73
|
-
trace_id, corrected_sql, tags_json, author, reviewer,
|
|
74
|
-
|
|
75
|
-
|
|
112
|
+
trace_id, corrected_sql, tags_json, author, reviewer, snapshot_id,
|
|
113
|
+
required_evaluation, evaluation_id, evaluation_status, dependencies_json,
|
|
114
|
+
lifecycle_errors_json, supersedes, created_at, updated_at, source_path
|
|
115
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
76
116
|
`);
|
|
77
117
|
const insertFts = this.db.prepare(`
|
|
78
118
|
INSERT INTO agent_hints_fts (id, title, guidance, tags, scope)
|
|
79
119
|
VALUES (?, ?, ?, ?, ?)
|
|
80
120
|
`);
|
|
121
|
+
const insertEdge = this.prepareEdgeInsert();
|
|
81
122
|
const txn = this.db.transaction(() => {
|
|
123
|
+
this.db.prepare('DELETE FROM agent_hint_edges').run();
|
|
82
124
|
this.db.prepare('DELETE FROM agent_hints_fts').run();
|
|
83
125
|
this.db.prepare('DELETE FROM agent_hints').run();
|
|
84
126
|
for (const hint of hints) {
|
|
85
|
-
this.insertRow(hint, insert, insertFts);
|
|
127
|
+
this.insertRow(hint, insert, insertFts, insertEdge);
|
|
128
|
+
}
|
|
129
|
+
if (projectionFingerprint) {
|
|
130
|
+
this.db.prepare(`
|
|
131
|
+
INSERT INTO agent_hint_meta (key, value)
|
|
132
|
+
VALUES ('projection_fingerprint', ?)
|
|
133
|
+
ON CONFLICT(key) DO UPDATE SET value = excluded.value
|
|
134
|
+
`).run(projectionFingerprint);
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
this.db.prepare(`DELETE FROM agent_hint_meta WHERE key = 'projection_fingerprint'`).run();
|
|
86
138
|
}
|
|
87
139
|
});
|
|
88
140
|
txn();
|
|
@@ -92,23 +144,44 @@ export class HintStore {
|
|
|
92
144
|
const insert = this.db.prepare(`
|
|
93
145
|
INSERT OR REPLACE INTO agent_hints (
|
|
94
146
|
id, title, guidance, status, metric, dbt_model, domain, dialect, term, block,
|
|
95
|
-
trace_id, corrected_sql, tags_json, author, reviewer,
|
|
96
|
-
|
|
97
|
-
|
|
147
|
+
trace_id, corrected_sql, tags_json, author, reviewer, snapshot_id,
|
|
148
|
+
required_evaluation, evaluation_id, evaluation_status, dependencies_json,
|
|
149
|
+
lifecycle_errors_json, supersedes, created_at, updated_at, source_path
|
|
150
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
98
151
|
`);
|
|
99
152
|
const insertFts = this.db.prepare(`
|
|
100
153
|
INSERT INTO agent_hints_fts (id, title, guidance, tags, scope)
|
|
101
154
|
VALUES (?, ?, ?, ?, ?)
|
|
102
155
|
`);
|
|
156
|
+
const insertEdge = this.prepareEdgeInsert();
|
|
103
157
|
const txn = this.db.transaction(() => {
|
|
158
|
+
this.db.prepare(`DELETE FROM agent_hint_meta WHERE key = 'projection_fingerprint'`).run();
|
|
159
|
+
this.db.prepare('DELETE FROM agent_hint_edges WHERE hint_id = ?').run(hint.id);
|
|
104
160
|
this.db.prepare('DELETE FROM agent_hints_fts WHERE id = ?').run(hint.id);
|
|
105
|
-
this.insertRow(hint, insert, insertFts);
|
|
161
|
+
this.insertRow(hint, insert, insertFts, insertEdge);
|
|
106
162
|
});
|
|
107
163
|
txn();
|
|
108
164
|
}
|
|
109
|
-
|
|
110
|
-
|
|
165
|
+
/** Fingerprint of the Git hint set and projection schema currently indexed. */
|
|
166
|
+
projectionFingerprint() {
|
|
167
|
+
const row = this.db.prepare(`
|
|
168
|
+
SELECT value FROM agent_hint_meta WHERE key = 'projection_fingerprint'
|
|
169
|
+
`).get();
|
|
170
|
+
return row?.value;
|
|
171
|
+
}
|
|
172
|
+
insertRow(hint, insert, insertFts, insertEdge) {
|
|
173
|
+
insert.run(hint.id, hint.title, hint.guidance, hint.status, hint.scope.metric ?? null, hint.scope.dbtModel ?? null, hint.scope.domain ?? null, hint.scope.dialect ?? null, hint.scope.term ?? null, hint.scope.block ?? null, hint.traceId ?? null, hint.correctedSql ?? null, JSON.stringify(hint.tags ?? []), hint.author ?? null, hint.reviewer ?? null, hint.snapshotId ?? null, hint.requiredEvaluation ?? null, hint.evaluationId ?? null, hint.evaluationStatus ?? null, JSON.stringify(hint.dependencies ?? []), JSON.stringify(hint.lifecycleErrors ?? []), hint.supersedes ?? null, hint.createdAt, hint.updatedAt, hint.sourcePath ?? null);
|
|
111
174
|
insertFts.run(hint.id, hint.title, hint.guidance, (hint.tags ?? []).join(' '), scopeText(hint.scope));
|
|
175
|
+
for (const edge of buildHintGraphEdges(hint)) {
|
|
176
|
+
insertEdge.run(edge.hintId, edge.kind, edge.targetId, edge.targetKind, edge.targetName, edge.fingerprint ?? null, edge.source);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
prepareEdgeInsert() {
|
|
180
|
+
return this.db.prepare(`
|
|
181
|
+
INSERT OR REPLACE INTO agent_hint_edges (
|
|
182
|
+
hint_id, edge_kind, target_id, target_kind, target_name, fingerprint, source
|
|
183
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?)
|
|
184
|
+
`);
|
|
112
185
|
}
|
|
113
186
|
get(id) {
|
|
114
187
|
const row = this.db.prepare('SELECT * FROM agent_hints WHERE id = ?').get(id);
|
|
@@ -120,6 +193,16 @@ export class HintStore {
|
|
|
120
193
|
: this.db.prepare('SELECT * FROM agent_hints ORDER BY updated_at DESC').all());
|
|
121
194
|
return rows.map(rowToHint);
|
|
122
195
|
}
|
|
196
|
+
/** Typed, rebuildable graph connections for review and retrieval ranking. */
|
|
197
|
+
edgesForHint(hintId) {
|
|
198
|
+
const rows = this.db.prepare(`
|
|
199
|
+
SELECT hint_id, edge_kind, target_id, target_kind, target_name, fingerprint, source
|
|
200
|
+
FROM agent_hint_edges
|
|
201
|
+
WHERE hint_id = ?
|
|
202
|
+
ORDER BY edge_kind, target_id
|
|
203
|
+
`).all(hintId);
|
|
204
|
+
return rows.map(rowToHintGraphEdge);
|
|
205
|
+
}
|
|
123
206
|
/**
|
|
124
207
|
* Retrieve APPROVED hints that apply to a question's scope. This is the only
|
|
125
208
|
* retrieval entry point used outside review/dev mode — draft/candidate hints
|
|
@@ -128,6 +211,8 @@ export class HintStore {
|
|
|
128
211
|
async searchApprovedHints(options) {
|
|
129
212
|
const { questionScope, limit = 6 } = options;
|
|
130
213
|
const sanitized = sanitizeFtsQuery(questionScope.text);
|
|
214
|
+
const recallTargets = [...highSignalHintGraphTargetIds(questionScope)].slice(0, 240);
|
|
215
|
+
const allGraphTargets = questionHintGraphTargetIds(questionScope);
|
|
131
216
|
// FTS narrows the candidate set when there is searchable text; otherwise fall
|
|
132
217
|
// back to all approved hints (scope filter still applies as a hard gate).
|
|
133
218
|
const ftsRows = sanitized
|
|
@@ -147,13 +232,35 @@ export class HintStore {
|
|
|
147
232
|
ORDER BY updated_at DESC
|
|
148
233
|
LIMIT ?
|
|
149
234
|
`).all(Math.max(limit * 4, 24));
|
|
235
|
+
// Graph recall is additive to FTS. Only explicit domain/metric/model/term/
|
|
236
|
+
// block connections may introduce a differently worded candidate; broad
|
|
237
|
+
// relation/column overlap ranks and explains candidates but cannot summon a
|
|
238
|
+
// hint by itself.
|
|
239
|
+
const graphRows = recallTargets.length > 0
|
|
240
|
+
? this.approvedHintsForTargets(recallTargets, Math.max(limit * 4, 24))
|
|
241
|
+
: [];
|
|
242
|
+
const ftsIds = new Set(ftsRows.map((row) => row.id));
|
|
243
|
+
const candidates = new Map();
|
|
244
|
+
for (const row of [...ftsRows, ...graphRows]) {
|
|
245
|
+
if (!candidates.has(row.id))
|
|
246
|
+
candidates.set(row.id, row);
|
|
247
|
+
}
|
|
150
248
|
// Hard scope gate: drop any hint whose scope does not apply to the question.
|
|
151
|
-
const scoped =
|
|
249
|
+
const scoped = [...candidates.values()]
|
|
152
250
|
.map((row) => {
|
|
153
251
|
const hint = rowToHint(row);
|
|
154
252
|
const verdict = hintAppliesToScope(hint.scope, questionScope);
|
|
155
|
-
const
|
|
156
|
-
|
|
253
|
+
const edges = this.edgesForHint(hint.id);
|
|
254
|
+
const graphScore = hintGraphOverlapScore(edges, allGraphTargets);
|
|
255
|
+
const lexicalScore = ftsIds.has(row.id)
|
|
256
|
+
? (row.rank ? 1 / (1 + Math.max(0, row.rank)) : 0.01)
|
|
257
|
+
: 0;
|
|
258
|
+
return {
|
|
259
|
+
hint,
|
|
260
|
+
verdict,
|
|
261
|
+
graphReason: describeHintGraphOverlap(edges, allGraphTargets),
|
|
262
|
+
retrievalScore: Math.min(lexicalScore + graphScore, 1),
|
|
263
|
+
};
|
|
157
264
|
})
|
|
158
265
|
.filter((entry) => entry.verdict.applies);
|
|
159
266
|
if (scoped.length === 0)
|
|
@@ -162,7 +269,7 @@ export class HintStore {
|
|
|
162
269
|
const ranked = await hybridRank(questionScope.text, scoped.map((entry) => ({
|
|
163
270
|
item: entry,
|
|
164
271
|
text: `${entry.hint.title} ${entry.hint.guidance} ${(entry.hint.tags ?? []).join(' ')}`,
|
|
165
|
-
ftsScore: entry.
|
|
272
|
+
ftsScore: entry.retrievalScore,
|
|
166
273
|
})), {
|
|
167
274
|
alpha: options.alpha ?? 0,
|
|
168
275
|
provider: options.embeddingProvider ?? envEmbeddingProvider(),
|
|
@@ -171,9 +278,25 @@ export class HintStore {
|
|
|
171
278
|
hint: entry.item.hint,
|
|
172
279
|
score: entry.score,
|
|
173
280
|
scopeReason: entry.item.verdict.reason,
|
|
281
|
+
graphReason: entry.item.graphReason,
|
|
174
282
|
snippet: undefined,
|
|
175
283
|
}));
|
|
176
284
|
}
|
|
285
|
+
approvedHintsForTargets(targetIds, limit) {
|
|
286
|
+
if (targetIds.length === 0)
|
|
287
|
+
return [];
|
|
288
|
+
const placeholders = targetIds.map(() => '?').join(', ');
|
|
289
|
+
return this.db.prepare(`
|
|
290
|
+
SELECT h.*, 0 AS rank
|
|
291
|
+
FROM agent_hint_edges AS e
|
|
292
|
+
JOIN agent_hints AS h ON h.id = e.hint_id
|
|
293
|
+
WHERE e.target_id IN (${placeholders})
|
|
294
|
+
AND h.status = 'approved'
|
|
295
|
+
GROUP BY h.id
|
|
296
|
+
ORDER BY COUNT(*) DESC, h.updated_at DESC
|
|
297
|
+
LIMIT ?
|
|
298
|
+
`).all(...targetIds, limit);
|
|
299
|
+
}
|
|
177
300
|
/** Approved hints whose scopes overlap (surfaced as conflicts for review). */
|
|
178
301
|
conflictingApprovedHints() {
|
|
179
302
|
const approved = this.list('approved');
|
|
@@ -213,6 +336,17 @@ function scopeText(scope) {
|
|
|
213
336
|
.filter(Boolean)
|
|
214
337
|
.join(' ');
|
|
215
338
|
}
|
|
339
|
+
function rowToHintGraphEdge(row) {
|
|
340
|
+
return {
|
|
341
|
+
hintId: row.hint_id,
|
|
342
|
+
kind: row.edge_kind,
|
|
343
|
+
targetId: row.target_id,
|
|
344
|
+
targetKind: row.target_kind,
|
|
345
|
+
targetName: row.target_name,
|
|
346
|
+
fingerprint: row.fingerprint ?? undefined,
|
|
347
|
+
source: row.source,
|
|
348
|
+
};
|
|
349
|
+
}
|
|
216
350
|
function rowToHint(row) {
|
|
217
351
|
return {
|
|
218
352
|
id: row.id,
|
|
@@ -232,6 +366,12 @@ function rowToHint(row) {
|
|
|
232
366
|
tags: safeJSON(row.tags_json, []),
|
|
233
367
|
author: row.author ?? undefined,
|
|
234
368
|
reviewer: row.reviewer ?? undefined,
|
|
369
|
+
snapshotId: row.snapshot_id ?? undefined,
|
|
370
|
+
requiredEvaluation: row.required_evaluation ?? undefined,
|
|
371
|
+
evaluationId: row.evaluation_id ?? undefined,
|
|
372
|
+
evaluationStatus: row.evaluation_status === 'passed' ? 'passed' : row.evaluation_status === 'failed' ? 'failed' : undefined,
|
|
373
|
+
dependencies: safeJSON(row.dependencies_json, []),
|
|
374
|
+
lifecycleErrors: safeJSON(row.lifecycle_errors_json, []),
|
|
235
375
|
supersedes: row.supersedes ?? undefined,
|
|
236
376
|
createdAt: row.created_at,
|
|
237
377
|
updatedAt: row.updated_at,
|
package/dist/hints/store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/hints/store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/hints/store.ts"],"names":[],"mappings":"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"}
|
package/dist/hints/types.d.ts
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
*
|
|
9
9
|
* Source of truth = Git:
|
|
10
10
|
* - `.dql/traces/*.trace.json` — raw correction traces (what was wrong + the fix)
|
|
11
|
-
* - `.dql/hints/*.hint.yaml` — candidate/approved/rejected hints
|
|
11
|
+
* - `.dql/hints/*.hint.yaml` — candidate/approved/rejected/retired hints
|
|
12
12
|
* - `.dql/evaluations/*.hint-evaluation.yaml` — required evaluation results
|
|
13
13
|
* - `.dql/reviews/*.review.yaml` — human review decisions
|
|
14
14
|
*
|
|
@@ -34,8 +34,47 @@ export interface HintScope {
|
|
|
34
34
|
/** Optional certified block the hint relates to (objectKey or block name). */
|
|
35
35
|
block?: string;
|
|
36
36
|
}
|
|
37
|
-
export type HintStatus = 'candidate' | 'approved' | 'rejected';
|
|
37
|
+
export type HintStatus = 'candidate' | 'approved' | 'rejected' | 'retired';
|
|
38
38
|
export type HintEvaluationStatus = 'passed' | 'failed';
|
|
39
|
+
export type HintDependencyKind = 'relation' | 'dbt_model' | 'metric' | 'domain' | 'term' | 'block' | 'semantic';
|
|
40
|
+
/**
|
|
41
|
+
* A typed connection from a governed hint to the current project graph.
|
|
42
|
+
*
|
|
43
|
+
* These edges are a rebuildable SQLite projection of Git-authoritative hint
|
|
44
|
+
* fields and SQL references. They make the learning scope inspectable and
|
|
45
|
+
* graph-rankable without inserting candidate hints into the normal KG search
|
|
46
|
+
* lane or changing the approved-only retrieval boundary.
|
|
47
|
+
*/
|
|
48
|
+
export type HintGraphEdgeKind = 'belongs_to_domain' | 'refines_metric' | 'uses_dbt_model' | 'uses_relation' | 'uses_column' | 'refines_term' | 'relates_to_block' | 'uses_dialect' | 'depends_on' | 'derived_from' | 'validated_by' | 'supersedes';
|
|
49
|
+
export interface HintGraphEdge {
|
|
50
|
+
hintId: string;
|
|
51
|
+
kind: HintGraphEdgeKind;
|
|
52
|
+
targetId: string;
|
|
53
|
+
targetKind: string;
|
|
54
|
+
targetName: string;
|
|
55
|
+
/** Content fingerprint when the edge came from a governed dependency. */
|
|
56
|
+
fingerprint?: string;
|
|
57
|
+
/** Where this projection came from, for review/debugging. */
|
|
58
|
+
source: 'scope' | 'dependency' | 'corrected_sql' | 'lifecycle';
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* A source object whose exact contents were used to validate a correction.
|
|
62
|
+
* Fingerprints make drift detection content-aware instead of relying on a
|
|
63
|
+
* missing-name check.
|
|
64
|
+
*/
|
|
65
|
+
export interface HintDependency {
|
|
66
|
+
id: string;
|
|
67
|
+
kind: HintDependencyKind;
|
|
68
|
+
name: string;
|
|
69
|
+
fingerprint: string;
|
|
70
|
+
sourcePath?: string;
|
|
71
|
+
}
|
|
72
|
+
/** Persisted fail-closed lifecycle diagnostic for review and retry. */
|
|
73
|
+
export interface HintLifecycleFailure {
|
|
74
|
+
code: string;
|
|
75
|
+
message: string;
|
|
76
|
+
at: string;
|
|
77
|
+
}
|
|
39
78
|
/** One deterministic check executed by the required correction evaluation. */
|
|
40
79
|
export interface HintEvaluationCheck {
|
|
41
80
|
name: string;
|
|
@@ -92,6 +131,10 @@ export interface CorrectionTrace {
|
|
|
92
131
|
snapshotId?: string;
|
|
93
132
|
/** Stable evaluation name that must pass before approval. */
|
|
94
133
|
requiredEvaluation?: string;
|
|
134
|
+
/** Exact governed inputs used to validate the correction. */
|
|
135
|
+
dependencies?: HintDependency[];
|
|
136
|
+
/** Fail-closed validation problems retained with the candidate. */
|
|
137
|
+
lifecycleErrors?: HintLifecycleFailure[];
|
|
95
138
|
/** id of the hint derived from this trace, once created. */
|
|
96
139
|
derivedHintId?: string;
|
|
97
140
|
}
|
|
@@ -127,6 +170,12 @@ export interface Hint {
|
|
|
127
170
|
requiredEvaluation?: string;
|
|
128
171
|
/** Latest Git-authoritative evaluation artifact for this candidate. */
|
|
129
172
|
evaluationId?: string;
|
|
173
|
+
/** Status of the latest linked evaluation (failed evaluations may be retried). */
|
|
174
|
+
evaluationStatus?: HintEvaluationStatus;
|
|
175
|
+
/** Exact governed inputs used to validate the correction. */
|
|
176
|
+
dependencies?: HintDependency[];
|
|
177
|
+
/** Fail-closed validation problems retained with the candidate. */
|
|
178
|
+
lifecycleErrors?: HintLifecycleFailure[];
|
|
130
179
|
/** ISO-8601. */
|
|
131
180
|
createdAt: string;
|
|
132
181
|
/** ISO-8601. */
|
|
@@ -138,9 +187,11 @@ export interface Hint {
|
|
|
138
187
|
export interface HintReview {
|
|
139
188
|
id: string;
|
|
140
189
|
hintId: string;
|
|
141
|
-
decision: 'approved' | 'rejected';
|
|
190
|
+
decision: 'approved' | 'rejected' | 'retired' | 'reopened' | 'superseded';
|
|
142
191
|
reviewer: string;
|
|
143
192
|
note?: string;
|
|
193
|
+
/** Other hint affected by a supersede decision. */
|
|
194
|
+
targetHintId?: string;
|
|
144
195
|
createdAt: string;
|
|
145
196
|
}
|
|
146
197
|
/** A hint matched for a question, with its FTS relevance + scope match reason. */
|
|
@@ -150,6 +201,8 @@ export interface ScopedHintMatch {
|
|
|
150
201
|
score: number;
|
|
151
202
|
/** Plain-language scope match explanation, e.g. "metric=revenue, domain=growth". */
|
|
152
203
|
scopeReason: string;
|
|
204
|
+
/** Matching graph connections used to rank this hint for the question. */
|
|
205
|
+
graphReason?: string;
|
|
153
206
|
/** Snippet from the FTS match, if any. */
|
|
154
207
|
snippet?: string;
|
|
155
208
|
}
|
|
@@ -175,6 +228,13 @@ export interface QuestionScope {
|
|
|
175
228
|
dialect?: string;
|
|
176
229
|
term?: string;
|
|
177
230
|
block?: string;
|
|
231
|
+
/** Governed relations selected for this question's bounded context pack. */
|
|
232
|
+
relations?: string[];
|
|
233
|
+
/**
|
|
234
|
+
* Qualified relation.column references available in that bounded context.
|
|
235
|
+
* These rank already-eligible hints; they do not override explicit scope.
|
|
236
|
+
*/
|
|
237
|
+
columns?: string[];
|
|
178
238
|
/** Free-text keywords used for FTS search (typically the question). */
|
|
179
239
|
text: string;
|
|
180
240
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/hints/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sDAAsD;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sCAAsC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+CAA+C;IAC/C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8EAA8E;IAC9E,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,UAAU,GAAG,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/hints/types.ts"],"names":[],"mappings":"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"}
|
package/dist/hints/types.js
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
*
|
|
9
9
|
* Source of truth = Git:
|
|
10
10
|
* - `.dql/traces/*.trace.json` — raw correction traces (what was wrong + the fix)
|
|
11
|
-
* - `.dql/hints/*.hint.yaml` — candidate/approved/rejected hints
|
|
11
|
+
* - `.dql/hints/*.hint.yaml` — candidate/approved/rejected/retired hints
|
|
12
12
|
* - `.dql/evaluations/*.hint-evaluation.yaml` — required evaluation results
|
|
13
13
|
* - `.dql/reviews/*.review.yaml` — human review decisions
|
|
14
14
|
*
|
package/dist/hints/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/hints/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/hints/types.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -19,7 +19,7 @@ export { seedDomainSkills, buildDomainReferenceSkills } from "./skills/domain-sk
|
|
|
19
19
|
export { draftDomainSkillBootstrap, buildDomainSkillBootstrapPrompt, mergeDomainSkillBootstrapEnrichment, } from "./skills/bootstrap.js";
|
|
20
20
|
export type { DomainBootstrapCandidate, DomainSkillBootstrapAiDraft, DomainSkillBootstrapEnrichment, } from "./skills/bootstrap.js";
|
|
21
21
|
export type { SeedDefaultSkillsOptions, SeedDefaultSkillsResult, } from "./skills/defaults.js";
|
|
22
|
-
export { answer, parseProposal, compactSemanticRuntimeFailure, materializeKnowledgeLensSkills } from "./answer-loop.js";
|
|
22
|
+
export { answer, parseProposal, compactSemanticRuntimeFailure, materializeKnowledgeLensSkills, normalizeWarehouseSqlFailure, } from "./answer-loop.js";
|
|
23
23
|
export { classifyAnalyticalFailure, createAnalyticalFailure, deriveAnalyticalRepair, redactAnalyticalDiagnostic, } from './analytical-failure-repair.js';
|
|
24
24
|
export { resolveAnalyticalPeriods } from './analytical-period-resolution.js';
|
|
25
25
|
export type { AnalyticalFreshnessObservationV1, AnalyticalFreshnessRequestV1, ResolveAnalyticalPeriodsResult, } from './analytical-period-resolution.js';
|
|
@@ -46,7 +46,7 @@ export { buildDeterministicDashboardStory, validateDashboardStoryBrief, type Das
|
|
|
46
46
|
export { planApp, type AppPlan as AgentAppPlan, type AppPlanSection, type AppPlanFilter as AgentAppPlanFilter, type PlanBlock, } from "./app-planner.js";
|
|
47
47
|
export { planResearch, type ResearchPlan, type ResearchStep, type ResearchFollowUp, } from "./research-loop.js";
|
|
48
48
|
export { loadSemanticMetrics } from "./propose/build-from-prompt.js";
|
|
49
|
-
export type { AgentAnalysisPlan, AgentAnswer, AgentCitation, AgentDqlArtifactReference, AgentEvidence, AgentEvidenceAsset, AgentEvidenceContextItem, AgentEvidenceLineageNode, AgentEvidenceLineageRole, AgentEvidenceOutcome, AgentEvidenceRouteStatus, AgentEvidenceRouteStep, AgentEvidenceToolCall, AgentFollowUpContext, AgentMemberBinding, AgentJoinPath, AgentIntent, AgentPriorResultReference, AgentResultPayload, CertifiedBlockInvocationInput, AgentSchemaColumn, AgentSchemaTable, AnalysisDepth, AnswerKind, AnswerLoopInput, AiRoute, AiRouteTier, } from "./answer-loop.js";
|
|
49
|
+
export type { AgentAnalysisPlan, AgentAnswer, AgentCitation, AgentDqlArtifactReference, AgentEvidence, AgentEvidenceAsset, AgentEvidenceContextItem, AgentEvidenceLineageNode, AgentEvidenceLineageRole, AgentEvidenceOutcome, AgentEvidenceRouteStatus, AgentEvidenceRouteStep, AgentEvidenceToolCall, AgentFollowUpContext, AgentMemberBinding, AgentJoinPath, AgentIntent, AgentPriorResultReference, AgentResultPayload, CertifiedBlockInvocationInput, AgentSchemaColumn, AgentSchemaTable, AnalysisDepth, AnswerKind, AnswerLoopInput, AiRoute, AiRouteTier, WarehouseSqlFailureCategory, WarehouseSqlFailureV1, WarehouseSqlRetryDisposition, } from "./answer-loop.js";
|
|
50
50
|
export { buildResolvedAnalyticalPlan, deriveResolvedAnalyticalPlan, resolvePlanTimeRange } from './resolved-analytical-plan.js';
|
|
51
51
|
export type { BuildResolvedAnalyticalPlanInput, ResolvedAnalyticalPlan, ResolvedAnalyticalPlanDelta, ResolvedPlanCapability, ResolvedPlanCompatibilityProof, ResolvedPlanMemberBinding, } from './resolved-analytical-plan.js';
|
|
52
52
|
export { adaptAnalyticalFreshnessRequest, adaptAnalyticalSemanticGraph, adaptResolvedAnalyticalPlan, buildPlanExecutionRegistry, } from './plan-execution-adapter.js';
|
|
@@ -80,13 +80,14 @@ export { APP_BUILDER_SKILLS, planAppFromPrompt, validateAppPlan, generateAppFrom
|
|
|
80
80
|
export type { AppBuilderSkill, AppBuilderSkillId, AppMode, AppRequirement, RequirementCoverage, AppPlan, AppPlanAnalysisIntent, AppPlanFilter, AppPlanFollowUpAction, AppPlanPage, AppPlanTile, AppPlanTileKind, AppPlanTileRole, AppPlanTrustState, AppPlanValidationIssue, AppPlanValidationResult, GeneratedAppPackage, GenerateAppFromPlanOptions, PlanAppFromPromptInput, } from "./app-builder.js";
|
|
81
81
|
export { MemoryStore, defaultMemoryPath, ensureDefaultMemoryFiles, } from "./memory/sqlite-memory.js";
|
|
82
82
|
export type { AgentMemory, AgentMemoryInput, AgentMemoryScope, MemorySearchOptions, } from "./memory/sqlite-memory.js";
|
|
83
|
-
export { ConversationStore, defaultConversationPath, } from "./conversation/session-store.js";
|
|
83
|
+
export { ConversationStore, defaultConversationPath, legacyConversationPath, prepareConversationPath, } from "./conversation/session-store.js";
|
|
84
84
|
export type { ConversationThread, ConversationTurn, ConversationTurnInput, ConversationTurnResult, ConversationTurnSearchOptions, } from "./conversation/session-store.js";
|
|
85
85
|
export { emptyWorkingState, parseWorkingState, reduceWorkingState, } from "./conversation/working-state.js";
|
|
86
86
|
export type { ConversationTopicFrame, ConversationWorkingState, TopicRelation, } from "./conversation/working-state.js";
|
|
87
|
-
export { updateRollingSummary } from "./conversation/rolling-summary.js";
|
|
88
|
-
export {
|
|
89
|
-
export
|
|
87
|
+
export { renderStructuredConversationSummary, updateRollingSummary, updateStructuredConversationSummary, } from "./conversation/rolling-summary.js";
|
|
88
|
+
export type { ConversationSummaryEntryState, ConversationSummaryEntryV1, ConversationSummaryV1, } from "./conversation/rolling-summary.js";
|
|
89
|
+
export { advanceThreadState, buildConversationSnapshot, conversationEnvelopeFromContext, conversationHistoryFromContext, conversationTurnContextState, recallRelevantTurns, renderConversationEnvelopeForPrompt, } from "./conversation/snapshot.js";
|
|
90
|
+
export type { ConversationEnvelopeV1, ConversationHistoryMessage, ConversationSnapshot, ConversationSnapshotTurn, } from "./conversation/snapshot.js";
|
|
90
91
|
export { MetadataCatalog, buildLocalContextPack, buildMetadataSnapshot, defaultMetadataPath, metadataSnapshotPath, activeMetadataSnapshotPath, acquireActiveKnowledgeSnapshot, activeKnowledgeSnapshotLeaseCount, currentMetadataFingerprint, ensureMetadataCatalogFresh, metadataObjectToAllowedSqlRelation, openMetadataCatalog, openActiveKnowledgeSnapshot, readIndexedDomainKnowledge, readIndexedKnowledge360, retrieveMetadataSnapshotCandidates, planAgentAnswer, recordRuntimeSchemaSnapshot, latestRuntimeSchemaSnapshotForProject, recordQueryRun, applyContextPackCompatibility, toAgentRetrievalEvidence, upsertMetadataSnapshot, } from "./metadata/catalog.js";
|
|
91
92
|
export { buildBlockBusinessFingerprint, buildBlockSqlFingerprints, fingerprintSql, normalizeBusinessFingerprintToken, normalizeSqlForFingerprint, } from "./metadata/block-fingerprints.js";
|
|
92
93
|
export type { BlockBusinessFingerprint, BlockSqlFingerprints, BuildBlockBusinessFingerprintInput, } from "./metadata/block-fingerprints.js";
|
|
@@ -101,7 +102,7 @@ export { applyGroundingExpansion, expandGroundingFromCatalog, } from "./groundin
|
|
|
101
102
|
export { ContextLedger, createContextLedger, } from "./grounding/context-ledger.js";
|
|
102
103
|
export type { GroundingContextExpander, GroundingExpansionRequest, GroundingExpansionResult, MergedGroundingContext, } from "./grounding/regrounding.js";
|
|
103
104
|
export type { ContextLedgerExpansionResult, ContextLedgerInput, ContextLedgerSqlValidationOptions, } from "./grounding/context-ledger.js";
|
|
104
|
-
export { buildSchemaGrounding, buildGroundingFromRuntimeRelations, renderGroundingForPrompt, resolveRelationsInSql, validateSqlAgainstGrounding, relationKeys, } from "./metadata/sql-grounding.js";
|
|
105
|
+
export { buildSchemaGrounding, buildGroundingFromRuntimeRelations, renderGroundingForPrompt, resolveRelationsInSql, validateSqlAgainstGrounding, internalRelationIdsInSql, relationKeys, } from "./metadata/sql-grounding.js";
|
|
105
106
|
export type { SchemaGrounding, GroundedTable, GroundedColumn, GroundedJoinKey, BuildSchemaGroundingOptions, RuntimeRelationInput, RelationResolution, GroundingValidationCode, GroundingValidationResult, } from "./metadata/sql-grounding.js";
|
|
106
107
|
export { selectRelevantModels } from "./metadata/sql-retrieval.js";
|
|
107
108
|
export type { SelectRelevantModelsOptions } from "./metadata/sql-retrieval.js";
|
|
@@ -115,19 +116,24 @@ export type { ProposeOptions, ProposeSummary, ProposalResult, ProposalInference,
|
|
|
115
116
|
export { reflectAndReviseBlock } from "./propose/index.js";
|
|
116
117
|
export { mineJoinPatterns, type JoinPatternCandidate } from "./propose/join-mining.js";
|
|
117
118
|
export { analyzeFailureClusters, improvementProposalsFromKg, type FailureSignal, type ImprovementProposal, } from "./propose/failure-analysis.js";
|
|
118
|
-
export type { BuildLocalContextPackRequest, CertifiedFitConfirmation, CertifiedFitConfirmationRequest, CertifiedFitConfirmationResult, EnsureMetadataCatalogOptions, EnsureMetadataCatalogResult, ActiveKnowledgeSnapshotLease, DqlContextPack, LocalContextPack, MetadataCandidateConflict, MetadataDiagnostic, MetadataEdge, MetadataAgentIntent, MetadataAllowedSqlContext, MetadataAnswerRoute, MetadataEvidenceRole, MetadataFollowUpContext, MetadataMissingContext, MetadataObject, MetadataIdentityResolution, MetadataRetrievalLaneCandidate, MetadataRetrievalLaneName, MetadataRetrievalLaneResult, MetadataSnapshotRetrievalResult, MetadataVectorSearchResult, MetadataRouteDecision, GrainGateRouteInfo, MetadataDomainShard, MetadataSourceFingerprint, MetadataSnapshot, MetadataTrustLabel, PlanAgentAnswerResult, QueryRunSummary, RuntimeSchemaSnapshot, RuntimeSchemaTable, RuntimeSchemaColumn, } from "./metadata/catalog.js";
|
|
119
|
+
export type { BuildLocalContextPackRequest, CertifiedFitConfirmation, CertifiedFitConfirmationRequest, CertifiedFitConfirmationResult, EnsureMetadataCatalogOptions, EnsureMetadataCatalogResult, ActiveKnowledgeSnapshotLease, DqlContextPack, LocalContextPack, MetadataCandidateConflict, MetadataDiagnostic, MetadataEdge, MetadataAgentIntent, MetadataAllowedSqlContext, MetadataAnswerRoute, MetadataEvidenceRole, MetadataFollowUpContext, MetadataMissingContext, MetadataObject, MetadataIdentityResolution, MetadataRetrievalLaneCandidate, MetadataRetrievalLaneName, MetadataRetrievalLaneResult, MetadataSnapshotRetrievalResult, MetadataVectorSearchResult, MetadataRouteDecision, GrainGateRouteInfo, MetadataDomainShard, MetadataSourceFingerprint, MetadataSnapshot, MetadataTrustLabel, PlanAgentAnswerResult, QueryRunSummary, RuntimeSchemaSnapshot, RuntimeSchemaTable, RuntimeSchemaColumn, RuntimeSchemaScope, RuntimeSchemaObservedTarget, } from "./metadata/catalog.js";
|
|
119
120
|
export type { SqlContextValidationCode, SqlContextValidationOffending, SqlContextValidationOptions, SqlContextValidationResult, } from "./metadata/sql-context-validation.js";
|
|
120
121
|
export type { GeneratedDraftBlock, GeneratedDraftRecord, } from "./metadata/drafts.js";
|
|
121
122
|
export { HintStore, } from "./hints/store.js";
|
|
122
123
|
export type { SearchApprovedHintsOptions, } from "./hints/store.js";
|
|
123
|
-
export { recordCorrectionTrace, evaluateHint, reviewHint, reindexHints, listHintsFromGit, getHintFromGit, writeHintFile, readHintFile, hintsDir, evaluationsDir, tracesDir, reviewsDir, defaultHintIndexPath, hintEvaluationFilePath, readHintEvaluationFile, getHintEvaluationFromGit, listHintEvaluationsFromGit, HintLifecycleError, } from "./hints/git-store.js";
|
|
124
|
+
export { recordCorrectionTrace, evaluateHint, reviewHint, reindexHints, ensureHintIndexFresh, hintIndexProjectionFingerprint, listHintsFromGit, getHintFromGit, getCorrectionTraceFromGit, writeHintFile, readHintFile, hintsDir, evaluationsDir, tracesDir, reviewsDir, defaultHintIndexPath, hintEvaluationFilePath, readHintEvaluationFile, getHintEvaluationFromGit, listHintEvaluationsFromGit, updateHintCandidate, retireHint, reopenHint, supersedeHint, HintLifecycleError, requiresEvaluatedApproval, } from "./hints/git-store.js";
|
|
125
|
+
export type { EnsureHintIndexFreshResult, } from "./hints/git-store.js";
|
|
126
|
+
export { recordGovernedCorrection, reviewGovernedHint, inspectGovernedHint, editGovernedHintCandidate, reopenGovernedHint, resolveGovernedHintContext, } from "./hints/lifecycle.js";
|
|
127
|
+
export type { GovernedHintContext, GovernedHintExecutionResult, ExecuteGovernedHintSql, ResolveGovernedHintContext, RecordGovernedCorrectionInput, ReviewGovernedHintInput, ReviewGovernedHintResult, GovernedHintInspection, EditGovernedHintCandidateInput, } from "./hints/lifecycle.js";
|
|
128
|
+
export { collectHintDependencies, currentHintDependencyFingerprints, staleHintDependencies, } from "./hints/dependencies.js";
|
|
124
129
|
export { buildCorrectionEvalCase, emitCorrectionEvalCase, appendCorrectionEvalCase, CORRECTIONS_EVAL_RELATIVE_PATH, type CorrectionEvalCase, } from "./hints/correction-eval.js";
|
|
125
130
|
export { findStaleHints, findStaleApprovedHints, type StaleHintFinding, type HintScopeTargetKind, } from "./hints/staleness.js";
|
|
126
|
-
export type { RecordCorrectionTraceInput, RecordCorrectionTraceResult, EvaluateHintInput, EvaluateHintResult, ReviewHintInput, ReviewHintResult, } from "./hints/git-store.js";
|
|
131
|
+
export type { RecordCorrectionTraceInput, RecordCorrectionTraceResult, EvaluateHintInput, EvaluateHintResult, ReviewHintInput, ReviewHintResult, UpdateHintCandidateInput, } from "./hints/git-store.js";
|
|
127
132
|
export { retrieveScopedHints, } from "./hints/retrieval.js";
|
|
128
133
|
export type { AppliedHint, HintRetrievalResult, RetrieveScopedHintsOptions, } from "./hints/retrieval.js";
|
|
129
134
|
export { hintAppliesToScope, hintsConflict, } from "./hints/types.js";
|
|
130
|
-
export
|
|
135
|
+
export { buildHintGraphEdges, questionHintGraphTargetIds, highSignalHintGraphTargetIds, describeHintGraphOverlap, hintGraphOverlapScore, } from "./hints/graph.js";
|
|
136
|
+
export type { CorrectionTrace, Hint, HintEvaluation, HintEvaluationCheck, HintEvaluationStatus, HintDependency, HintDependencyKind, HintGraphEdge, HintGraphEdgeKind, HintLifecycleFailure, HintReview, HintScope, HintStatus, QuestionScope, ScopedHintMatch, } from "./hints/types.js";
|
|
131
137
|
export { HashedTokenEmbeddingProvider, defaultEmbeddingProvider, envEmbeddingProvider, resolveEmbeddingProvider, cosineSimilarity, hybridRank, probeLocalOllamaEmbeddings, } from "./embeddings/provider.js";
|
|
132
138
|
export type { EmbeddingProvider, HybridRankItem, HybridRankOptions, HybridRanked, LocalOllamaEmbeddings, } from "./embeddings/provider.js";
|
|
133
139
|
export type { AppliedContextHint, RuntimeValueMatch, } from "./metadata/catalog.js";
|