@memberjunction/query-gen 4.0.0 â 4.2.0
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/.turbo/turbo-build.log +4 -6
- package/CHANGELOG.md +35 -0
- package/README.md +30 -2
- package/dist/cli/commands/generate.d.ts.map +1 -1
- package/dist/cli/commands/generate.js +48 -19
- package/dist/cli/commands/generate.js.map +1 -1
- package/dist/cli/config.d.ts +1 -0
- package/dist/cli/config.d.ts.map +1 -1
- package/dist/cli/config.js +1 -0
- package/dist/cli/config.js.map +1 -1
- package/dist/cli/index.js +0 -0
- package/dist/core/EntityGrouper.d.ts +3 -0
- package/dist/core/EntityGrouper.d.ts.map +1 -1
- package/dist/core/EntityGrouper.js +71 -11
- package/dist/core/EntityGrouper.js.map +1 -1
- package/dist/core/QueryTester.js +1 -1
- package/dist/core/QueryTester.js.map +1 -1
- package/package.json +17 -11
- package/src/__tests__/golden-queries-loader.test.js +181 -0
- package/src/cli/commands/generate.ts +52 -21
- package/src/cli/config.ts +2 -0
- package/src/core/EntityGrouper.ts +75 -11
- package/src/core/QueryTester.ts +1 -1
package/.turbo/turbo-build.log
CHANGED
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,40 @@
|
|
|
1
1
|
# @memberjunction/query-gen
|
|
2
2
|
|
|
3
|
+
## 4.2.0
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- @memberjunction/ai@4.2.0
|
|
8
|
+
- @memberjunction/ai-core-plus@4.2.0
|
|
9
|
+
- @memberjunction/aiengine@4.2.0
|
|
10
|
+
- @memberjunction/ai-prompts@4.2.0
|
|
11
|
+
- @memberjunction/ai-vectors-memory@4.2.0
|
|
12
|
+
- @memberjunction/core@4.2.0
|
|
13
|
+
- @memberjunction/core-entities@4.2.0
|
|
14
|
+
- @memberjunction/global@4.2.0
|
|
15
|
+
- @memberjunction/sqlserver-dataprovider@4.2.0
|
|
16
|
+
|
|
17
|
+
## 4.1.0
|
|
18
|
+
|
|
19
|
+
### Patch Changes
|
|
20
|
+
|
|
21
|
+
- 77839a9: Enable cascade deletes for AI Agent and Prompt entities, add cross-file dependency detection and --delete-db-only flag to MetadataSync for proper deletion ordering, fix CodeGen duplicate variable names for self-referential FKs, add requireConnectivity config to QueryGen, and add Gemini JSON parser support to DBAutoDoc.
|
|
22
|
+
- 9fab8ca: ESM Compatibility
|
|
23
|
+
- Updated dependencies [f54a9e4]
|
|
24
|
+
- Updated dependencies [77839a9]
|
|
25
|
+
- Updated dependencies [9fab8ca]
|
|
26
|
+
- Updated dependencies [2ea241f]
|
|
27
|
+
- Updated dependencies [5af036f]
|
|
28
|
+
- @memberjunction/sqlserver-dataprovider@4.1.0
|
|
29
|
+
- @memberjunction/core@4.1.0
|
|
30
|
+
- @memberjunction/core-entities@4.1.0
|
|
31
|
+
- @memberjunction/ai-core-plus@4.1.0
|
|
32
|
+
- @memberjunction/aiengine@4.1.0
|
|
33
|
+
- @memberjunction/ai-prompts@4.1.0
|
|
34
|
+
- @memberjunction/ai-vectors-memory@4.1.0
|
|
35
|
+
- @memberjunction/ai@4.1.0
|
|
36
|
+
- @memberjunction/global@4.1.0
|
|
37
|
+
|
|
3
38
|
## 4.0.0
|
|
4
39
|
|
|
5
40
|
### Major Changes
|
package/README.md
CHANGED
|
@@ -1,9 +1,37 @@
|
|
|
1
|
-
#
|
|
1
|
+
# @memberjunction/query-gen
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
AI-powered SQL query template generator for MemberJunction. Analyzes your database schema, generates meaningful business questions, creates SQL queries, tests them, refines them through iterative feedback, and exports them to MemberJunction metadata format.
|
|
4
4
|
|
|
5
5
|
## Overview
|
|
6
6
|
|
|
7
|
+
```mermaid
|
|
8
|
+
graph TD
|
|
9
|
+
A["QueryGen CLI"] --> B["Schema Analysis"]
|
|
10
|
+
B --> C["Entity Grouper<br/>(AI Semantic Grouping)"]
|
|
11
|
+
C --> D["Question Generator<br/>(Business Questions)"]
|
|
12
|
+
D --> E["Vector Similarity<br/>(Few-Shot Examples)"]
|
|
13
|
+
E --> F["Query Writer<br/>(Nunjucks SQL)"]
|
|
14
|
+
F --> G["Query Tester"]
|
|
15
|
+
G -->|fails| H["Query Fixer<br/>(up to 5 attempts)"]
|
|
16
|
+
H --> G
|
|
17
|
+
G -->|passes| I["Query Evaluator"]
|
|
18
|
+
I -->|needs improvement| J["Query Refiner<br/>(up to 3 iterations)"]
|
|
19
|
+
J --> G
|
|
20
|
+
I -->|passes| K["Validator"]
|
|
21
|
+
K --> L["Metadata Exporter"]
|
|
22
|
+
|
|
23
|
+
style A fill:#2d6a9f,stroke:#1a4971,color:#fff
|
|
24
|
+
style C fill:#7c5295,stroke:#563a6b,color:#fff
|
|
25
|
+
style D fill:#7c5295,stroke:#563a6b,color:#fff
|
|
26
|
+
style E fill:#b8762f,stroke:#8a5722,color:#fff
|
|
27
|
+
style F fill:#2d8659,stroke:#1a5c3a,color:#fff
|
|
28
|
+
style G fill:#2d6a9f,stroke:#1a4971,color:#fff
|
|
29
|
+
style H fill:#b8762f,stroke:#8a5722,color:#fff
|
|
30
|
+
style J fill:#b8762f,stroke:#8a5722,color:#fff
|
|
31
|
+
style K fill:#2d8659,stroke:#1a5c3a,color:#fff
|
|
32
|
+
style L fill:#2d8659,stroke:#1a5c3a,color:#fff
|
|
33
|
+
```
|
|
34
|
+
|
|
7
35
|
QueryGen automates the creation of SQL query templates through an 11-phase AI-powered pipeline:
|
|
8
36
|
|
|
9
37
|
1. **Schema Analysis** - Loads entities and relationship graphs from MemberJunction metadata
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/generate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;
|
|
1
|
+
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/generate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAwBH;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAsRrF"}
|
|
@@ -11,8 +11,6 @@
|
|
|
11
11
|
*/
|
|
12
12
|
import ora from 'ora';
|
|
13
13
|
import chalk from 'chalk';
|
|
14
|
-
import * as fs from 'fs';
|
|
15
|
-
import * as path from 'path';
|
|
16
14
|
import { Metadata, LogStatus } from '@memberjunction/core';
|
|
17
15
|
import { loadConfig } from '../config.js';
|
|
18
16
|
import { getSystemUser } from '../../utils/user-helpers.js';
|
|
@@ -28,6 +26,9 @@ import { SimilaritySearch } from '../../vectors/SimilaritySearch.js';
|
|
|
28
26
|
import { formatEntityMetadataForPrompt } from '../../utils/entity-helpers.js';
|
|
29
27
|
import { extractErrorMessage } from '../../utils/error-handlers.js';
|
|
30
28
|
import { buildQueryCategory, extractUniqueCategories } from '../../utils/category-builder.js';
|
|
29
|
+
import { readFileSync } from 'fs';
|
|
30
|
+
import { dirname, join } from 'path';
|
|
31
|
+
import { fileURLToPath } from 'url';
|
|
31
32
|
/**
|
|
32
33
|
* Execute the generate command
|
|
33
34
|
*
|
|
@@ -65,8 +66,36 @@ export async function generateCommand(options) {
|
|
|
65
66
|
// 4. Filter and build entity groups
|
|
66
67
|
spinner.start('Filtering entities...');
|
|
67
68
|
const md = new Metadata();
|
|
69
|
+
// DIAGNOSTIC: Log entity filtering context
|
|
70
|
+
if (config.verbose) {
|
|
71
|
+
LogStatus(`\n=== Entity Filtering Diagnostics ===`);
|
|
72
|
+
LogStatus(`Total entities in metadata: ${md.Entities.length}`);
|
|
73
|
+
LogStatus(`Excluded schemas: ${config.excludeSchemas.join(', ')}`);
|
|
74
|
+
// Show schema distribution BEFORE filtering
|
|
75
|
+
const schemasBefore = new Map();
|
|
76
|
+
md.Entities.forEach(e => {
|
|
77
|
+
const schema = e.SchemaName || 'null';
|
|
78
|
+
schemasBefore.set(schema, (schemasBefore.get(schema) || 0) + 1);
|
|
79
|
+
});
|
|
80
|
+
LogStatus(`Schema distribution (before filtering):`);
|
|
81
|
+
Array.from(schemasBefore.entries())
|
|
82
|
+
.sort((a, b) => b[1] - a[1])
|
|
83
|
+
.slice(0, 10)
|
|
84
|
+
.forEach(([schema, count]) => {
|
|
85
|
+
const excluded = config.excludeSchemas.includes(schema) ? ' [EXCLUDED]' : '';
|
|
86
|
+
LogStatus(` ${schema}: ${count} entities${excluded}`);
|
|
87
|
+
});
|
|
88
|
+
}
|
|
68
89
|
// Apply entity filtering (includeEntities takes precedence over excludeEntities)
|
|
69
90
|
let filteredEntities = md.Entities.filter(e => !config.excludeSchemas.includes(e.SchemaName || ''));
|
|
91
|
+
if (config.verbose) {
|
|
92
|
+
LogStatus(`\nAfter schema filtering: ${filteredEntities.length} entities remaining`);
|
|
93
|
+
if (filteredEntities.length > 0) {
|
|
94
|
+
LogStatus(`Sample entity names: ${filteredEntities.slice(0, 5).map(e => e.Name).join(', ')}`);
|
|
95
|
+
const schemasAfter = new Set(filteredEntities.map(e => e.SchemaName || 'null'));
|
|
96
|
+
LogStatus(`Remaining schemas: ${Array.from(schemasAfter).join(', ')}`);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
70
99
|
if (config.includeEntities.length > 0) {
|
|
71
100
|
// Allowlist: only include specified entities
|
|
72
101
|
filteredEntities = filteredEntities.filter(e => config.includeEntities.includes(e.Name));
|
|
@@ -77,6 +106,10 @@ export async function generateCommand(options) {
|
|
|
77
106
|
filteredEntities = filteredEntities.filter(e => !config.excludeEntities.includes(e.Name));
|
|
78
107
|
spinner.info(chalk.dim(`Excluded ${config.excludeEntities.length} entities`));
|
|
79
108
|
}
|
|
109
|
+
if (config.verbose) {
|
|
110
|
+
LogStatus(`Final filtered entities: ${filteredEntities.length}`);
|
|
111
|
+
LogStatus('====================================\n');
|
|
112
|
+
}
|
|
80
113
|
// 4. Group entities by schema and generate entity groups
|
|
81
114
|
spinner.text = 'Analyzing entity relationships...';
|
|
82
115
|
// Count entities per schema for informational logging
|
|
@@ -207,33 +240,29 @@ export async function generateCommand(options) {
|
|
|
207
240
|
}
|
|
208
241
|
}
|
|
209
242
|
/**
|
|
210
|
-
* Load golden queries from JSON
|
|
243
|
+
* Load golden queries from compile-time imported JSON data
|
|
211
244
|
*
|
|
212
245
|
* Golden queries are example queries used for few-shot learning.
|
|
213
|
-
* They are
|
|
246
|
+
* They are imported at compile time from data/golden-queries.json.
|
|
247
|
+
*
|
|
248
|
+
* This approach is more efficient than runtime file I/O and provides
|
|
249
|
+
* type safety through TypeScript's resolveJsonModule feature.
|
|
214
250
|
*
|
|
215
251
|
* @param config - QueryGen configuration with verbose flag
|
|
216
|
-
* @returns Array of golden queries
|
|
252
|
+
* @returns Array of golden queries
|
|
217
253
|
*/
|
|
218
254
|
async function loadGoldenQueries(config) {
|
|
219
255
|
try {
|
|
220
|
-
//
|
|
221
|
-
|
|
222
|
-
const
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
LogStatus(`[Warning] Golden queries file not found at: ${goldenQueriesPath}`);
|
|
227
|
-
}
|
|
228
|
-
return [];
|
|
229
|
-
}
|
|
230
|
-
// Read and parse JSON file
|
|
231
|
-
const fileContent = fs.readFileSync(goldenQueriesPath, 'utf-8');
|
|
232
|
-
const goldenQueries = JSON.parse(fileContent);
|
|
256
|
+
// Load golden queries from JSON file using ES module compatible path resolution
|
|
257
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
258
|
+
const __dirname = dirname(__filename);
|
|
259
|
+
const goldenQueriesPath = join(__dirname, '../../data/golden-queries.json');
|
|
260
|
+
const goldenQueriesData = JSON.parse(readFileSync(goldenQueriesPath, 'utf-8'));
|
|
261
|
+
const goldenQueries = goldenQueriesData;
|
|
233
262
|
// Validate that it's an array
|
|
234
263
|
if (!Array.isArray(goldenQueries)) {
|
|
235
264
|
if (config.verbose) {
|
|
236
|
-
LogStatus('[Warning] Golden queries
|
|
265
|
+
LogStatus('[Warning] Golden queries data is not an array');
|
|
237
266
|
}
|
|
238
267
|
return [];
|
|
239
268
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/cli/commands/generate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/cli/commands/generate.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/config.d.ts
CHANGED
package/dist/cli/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/cli/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH;;GAEG;AACH,MAAM,WAAW,cAAc;IAM7B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,cAAc,EAAE,MAAM,EAAE,CAAC;IAGzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/cli/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH;;GAEG;AACH,MAAM,WAAW,cAAc;IAM7B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,cAAc,EAAE,MAAM,EAAE,CAAC;IAGzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,OAAO,CAAC;IAG7B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IAGvB,uBAAuB,EAAE,MAAM,CAAC;IAChC,mBAAmB,EAAE,MAAM,CAAC;IAG5B,iBAAiB,EAAE,MAAM,CAAC;IAG1B,iBAAiB,EAAE;QACjB,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;QACpB,oBAAoB,EAAE,MAAM,CAAC;KAC9B,CAAC;IAGF,UAAU,EAAE,UAAU,GAAG,UAAU,GAAG,MAAM,CAAC;IAC7C,eAAe,EAAE,MAAM,CAAC;IACxB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,qBAAqB,EAAE,OAAO,CAAC;IAG/B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,+BAA+B,EAAE,OAAO,CAAC;IAGzC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,aAAa,EAAE,OAAO,CAAC;IAGvB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAG1B,OAAO,EAAE,OAAO,CAAC;CAClB;AAmCD;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,cAAc,CAuD9E"}
|
package/dist/cli/config.js
CHANGED
|
@@ -18,6 +18,7 @@ const DEFAULT_CONFIG = {
|
|
|
18
18
|
questionsPerGroup: 2,
|
|
19
19
|
minGroupSize: 2, // Multi-entity groups have at least 2 entities
|
|
20
20
|
maxGroupSize: 3, // Keep groups small for focused questions
|
|
21
|
+
requireConnectivity: true, // Require entities to be connected (disable for sparse relationship graphs)
|
|
21
22
|
embeddingModel: 'text-embedding-3-small',
|
|
22
23
|
maxRefinementIterations: 3,
|
|
23
24
|
maxFixingIterations: 5,
|
package/dist/cli/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/cli/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,kDAAkD;AAClD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/cli/config.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.js
CHANGED
|
File without changes
|
|
@@ -51,6 +51,9 @@ export declare class EntityGrouper {
|
|
|
51
51
|
private callLLMForGrouping;
|
|
52
52
|
/**
|
|
53
53
|
* Validate LLM output and convert to EntityGroup objects
|
|
54
|
+
*
|
|
55
|
+
* @param schemaName - Optional schema name for better error messages
|
|
56
|
+
* @returns Array of validated groups (may be empty if no groups pass validation)
|
|
54
57
|
*/
|
|
55
58
|
private validateAndConvertGroups;
|
|
56
59
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityGrouper.d.ts","sourceRoot":"","sources":["../../src/core/EntityGrouper.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAA0B,QAAQ,EAAa,MAAM,sBAAsB,CAAC;AAE/F,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAmB/C;;;;;;GAMG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA4B;IACvD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;gBAE5B,MAAM,EAAE,cAAc;IAIlC;;;;;;;;;;OAUG;IACG,oBAAoB,CACxB,QAAQ,EAAE,UAAU,EAAE,EACtB,WAAW,EAAE,QAAQ,GACpB,OAAO,CAAC,WAAW,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"EntityGrouper.d.ts","sourceRoot":"","sources":["../../src/core/EntityGrouper.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAA0B,QAAQ,EAAa,MAAM,sBAAsB,CAAC;AAE/F,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAmB/C;;;;;;GAMG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA4B;IACvD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;gBAE5B,MAAM,EAAE,cAAc;IAIlC;;;;;;;;;;OAUG;IACG,oBAAoB,CACxB,QAAQ,EAAE,UAAU,EAAE,EACtB,WAAW,EAAE,QAAQ,GACpB,OAAO,CAAC,WAAW,EAAE,CAAC;IAwDzB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAa7B;;;;;;;;OAQG;IACH,OAAO,CAAC,iBAAiB;IAiEzB;;OAEG;YACW,kBAAkB;IA6BhC;;;;;OAKG;IACH,OAAO,CAAC,wBAAwB;IAwGhC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAe5B;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAyCnB;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;CAgB1B"}
|
|
@@ -46,18 +46,30 @@ export class EntityGrouper {
|
|
|
46
46
|
if (this.config.verbose && totalSchemas > 1) {
|
|
47
47
|
LogStatus(`[${schemaIndex}/${totalSchemas}] Processing schema: ${schemaName} (${schemaEntities.length} entities)`);
|
|
48
48
|
}
|
|
49
|
+
// Skip schemas with too few entities for grouping
|
|
50
|
+
if (schemaEntities.length < this.config.minGroupSize) {
|
|
51
|
+
if (this.config.verbose) {
|
|
52
|
+
LogStatus(`[${schemaIndex}/${totalSchemas}] Skipping schema ${schemaName}: only ${schemaEntities.length} entities (minimum ${this.config.minGroupSize} required)`);
|
|
53
|
+
}
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
49
56
|
// 2a. Prepare schema data for LLM
|
|
50
57
|
const schemaData = this.prepareSchemaData(schemaEntities, schemaName);
|
|
51
58
|
// 2b. Call LLM to generate groups for this schema
|
|
52
59
|
const llmResponse = await this.callLLMForGrouping(schemaData, contextUser);
|
|
53
60
|
// 2c. Validate and convert to EntityGroup objects
|
|
54
|
-
|
|
61
|
+
// Note: This may return an empty array if no groups pass validation
|
|
62
|
+
const validatedGroups = this.validateAndConvertGroups(llmResponse, schemaEntities, schemaName);
|
|
55
63
|
if (this.config.verbose && totalSchemas > 1) {
|
|
56
64
|
LogStatus(`[${schemaIndex}/${totalSchemas}] Generated ${validatedGroups.length} groups for schema: ${schemaName}`);
|
|
57
65
|
}
|
|
58
66
|
allGroups.push(...validatedGroups);
|
|
59
67
|
}
|
|
60
|
-
// 3.
|
|
68
|
+
// 3. Check if we generated any groups across all schemas
|
|
69
|
+
if (allGroups.length === 0) {
|
|
70
|
+
throw new Error('No valid entity groups generated by LLM across any schema');
|
|
71
|
+
}
|
|
72
|
+
// 4. Deduplicate any similar groups across all schemas
|
|
61
73
|
const deduplicatedGroups = this.deduplicateGroups(allGroups);
|
|
62
74
|
return deduplicatedGroups;
|
|
63
75
|
}
|
|
@@ -161,10 +173,30 @@ export class EntityGrouper {
|
|
|
161
173
|
}
|
|
162
174
|
/**
|
|
163
175
|
* Validate LLM output and convert to EntityGroup objects
|
|
176
|
+
*
|
|
177
|
+
* @param schemaName - Optional schema name for better error messages
|
|
178
|
+
* @returns Array of validated groups (may be empty if no groups pass validation)
|
|
164
179
|
*/
|
|
165
|
-
validateAndConvertGroups(llmResponse, entities) {
|
|
180
|
+
validateAndConvertGroups(llmResponse, entities, schemaName) {
|
|
166
181
|
const entityMap = new Map(entities.map(e => [e.Name, e]));
|
|
167
182
|
const validGroups = [];
|
|
183
|
+
// DIAGNOSTIC: Log entity validation context
|
|
184
|
+
if (this.config.verbose) {
|
|
185
|
+
LogStatus('\n=== Entity Group Validation Diagnostics ===');
|
|
186
|
+
LogStatus(`Entities available for validation: ${entities.length}`);
|
|
187
|
+
if (entities.length > 0) {
|
|
188
|
+
LogStatus(`Entity names in map: ${Array.from(entityMap.keys()).slice(0, 10).join(', ')}${entityMap.size > 10 ? '...' : ''}`);
|
|
189
|
+
LogStatus(`Sample entity SchemaName values: ${entities.slice(0, 5).map(e => `"${e.SchemaName || 'null'}"`).join(', ')}`);
|
|
190
|
+
}
|
|
191
|
+
LogStatus(`Groups returned by LLM: ${llmResponse.groups.length}`);
|
|
192
|
+
if (llmResponse.groups.length > 0) {
|
|
193
|
+
LogStatus(`Sample LLM group entities: ${llmResponse.groups[0].entities.join(', ')}`);
|
|
194
|
+
}
|
|
195
|
+
LogStatus(`Connectivity validation: ${this.config.requireConnectivity ? 'ENABLED' : 'DISABLED'}`);
|
|
196
|
+
if (!this.config.requireConnectivity) {
|
|
197
|
+
LogStatus('â ï¸ WARNING: Connectivity validation is disabled. Groups may include unrelated entities.');
|
|
198
|
+
}
|
|
199
|
+
}
|
|
168
200
|
for (const llmGroup of llmResponse.groups) {
|
|
169
201
|
try {
|
|
170
202
|
// Validate all entity names exist
|
|
@@ -172,21 +204,40 @@ export class EntityGrouper {
|
|
|
172
204
|
.map(name => entityMap.get(name))
|
|
173
205
|
.filter((e) => e !== undefined);
|
|
174
206
|
if (groupEntities.length !== llmGroup.entities.length) {
|
|
175
|
-
|
|
207
|
+
if (this.config.verbose) {
|
|
208
|
+
const missingEntities = llmGroup.entities.filter(name => !entityMap.has(name));
|
|
209
|
+
LogStatus(` â Group rejected - Entity name mismatch:`);
|
|
210
|
+
LogStatus(` LLM requested: ${llmGroup.entities.join(', ')}`);
|
|
211
|
+
LogStatus(` Not found in metadata: ${missingEntities.join(', ')}`);
|
|
212
|
+
}
|
|
176
213
|
continue;
|
|
177
214
|
}
|
|
178
215
|
// Validate primary entity exists
|
|
179
216
|
const primaryEntity = entityMap.get(llmGroup.primaryEntity);
|
|
180
217
|
if (!primaryEntity) {
|
|
181
|
-
|
|
218
|
+
if (this.config.verbose) {
|
|
219
|
+
LogStatus(` â Group rejected - Primary entity not found: ${llmGroup.primaryEntity}`);
|
|
220
|
+
}
|
|
182
221
|
continue;
|
|
183
222
|
}
|
|
184
223
|
// Build relationships array (collect all relationships between entities in the group)
|
|
185
224
|
const relationships = this.extractRelationships(groupEntities);
|
|
186
225
|
// Validate connectivity (all entities must be reachable from primary)
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
226
|
+
// Skip this check if requireConnectivity is disabled
|
|
227
|
+
if (this.config.requireConnectivity) {
|
|
228
|
+
if (groupEntities.length > 1 && !this.isConnected(groupEntities, relationships)) {
|
|
229
|
+
if (this.config.verbose) {
|
|
230
|
+
LogStatus(` â Group rejected - Entities not connected: ${groupEntities.map(e => e.Name).join(', ')}`);
|
|
231
|
+
}
|
|
232
|
+
continue;
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
else if (this.config.verbose && groupEntities.length > 1) {
|
|
236
|
+
// Log warning when connectivity check is skipped
|
|
237
|
+
const hasRelationships = relationships.length > 0;
|
|
238
|
+
if (!hasRelationships) {
|
|
239
|
+
LogStatus(` â ï¸ Group has no relationships (connectivity check disabled): ${groupEntities.map(e => e.Name).join(', ')}`);
|
|
240
|
+
}
|
|
190
241
|
}
|
|
191
242
|
// Create EntityGroup with LLM metadata
|
|
192
243
|
validGroups.push({
|
|
@@ -198,14 +249,23 @@ export class EntityGrouper {
|
|
|
198
249
|
businessRationale: llmGroup.businessRationale,
|
|
199
250
|
expectedQuestionTypes: llmGroup.expectedQuestionTypes
|
|
200
251
|
});
|
|
252
|
+
if (this.config.verbose) {
|
|
253
|
+
LogStatus(` â Group accepted: ${groupEntities.map(e => e.Name).join(', ')}`);
|
|
254
|
+
}
|
|
201
255
|
}
|
|
202
256
|
catch (error) {
|
|
203
|
-
|
|
257
|
+
if (this.config.verbose) {
|
|
258
|
+
LogStatus(` â Group validation error: ${extractErrorMessage(error, 'Group Validation')}`);
|
|
259
|
+
}
|
|
204
260
|
}
|
|
205
261
|
}
|
|
206
|
-
if (
|
|
207
|
-
|
|
262
|
+
if (this.config.verbose) {
|
|
263
|
+
const schemaInfo = schemaName ? ` (schema: ${schemaName})` : '';
|
|
264
|
+
LogStatus(`\nValidation Summary${schemaInfo}: ${validGroups.length}/${llmResponse.groups.length} groups accepted`);
|
|
265
|
+
LogStatus('==========================================\n');
|
|
208
266
|
}
|
|
267
|
+
// Return empty array if no groups passed validation
|
|
268
|
+
// The caller will aggregate results from all schemas and check if total is 0
|
|
209
269
|
return validGroups;
|
|
210
270
|
}
|
|
211
271
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityGrouper.js","sourceRoot":"","sources":["../../src/core/EntityGrouper.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EntityGrouper.js","sourceRoot":"","sources":["../../src/core/EntityGrouper.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAgD,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC/F,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAGpD,OAAO,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAC5F,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AAgBrE;;;;;;GAMG;AACH,MAAM,OAAO,aAAa;IAIxB,YAAY,MAAsB;QAHjB,eAAU,GAAG,wBAAwB,CAAC;QAIrD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,oBAAoB,CACxB,QAAsB,EACtB,WAAqB;QAErB,IAAI,CAAC;YACH,8BAA8B;YAC9B,MAAM,gBAAgB,GAAG,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;YAE9D,oCAAoC;YACpC,MAAM,SAAS,GAAkB,EAAE,CAAC;YACpC,IAAI,WAAW,GAAG,CAAC,CAAC;YACpB,MAAM,YAAY,GAAG,gBAAgB,CAAC,IAAI,CAAC;YAE3C,KAAK,MAAM,CAAC,UAAU,EAAE,cAAc,CAAC,IAAI,gBAAgB,CAAC,OAAO,EAAE,EAAE,CAAC;gBACtE,WAAW,EAAE,CAAC;gBAEd,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;oBAC5C,SAAS,CAAC,IAAI,WAAW,IAAI,YAAY,wBAAwB,UAAU,KAAK,cAAc,CAAC,MAAM,YAAY,CAAC,CAAC;gBACrH,CAAC;gBAED,kDAAkD;gBAClD,IAAI,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;oBACrD,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;wBACxB,SAAS,CAAC,IAAI,WAAW,IAAI,YAAY,qBAAqB,UAAU,UAAU,cAAc,CAAC,MAAM,sBAAsB,IAAI,CAAC,MAAM,CAAC,YAAY,YAAY,CAAC,CAAC;oBACrK,CAAC;oBACD,SAAS;gBACX,CAAC;gBAED,kCAAkC;gBAClC,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;gBAEtE,kDAAkD;gBAClD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;gBAE3E,kDAAkD;gBAClD,oEAAoE;gBACpE,MAAM,eAAe,GAAG,IAAI,CAAC,wBAAwB,CAAC,WAAW,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC;gBAE/F,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;oBAC5C,SAAS,CAAC,IAAI,WAAW,IAAI,YAAY,eAAe,eAAe,CAAC,MAAM,uBAAuB,UAAU,EAAE,CAAC,CAAC;gBACrH,CAAC;gBAED,SAAS,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,CAAC;YACrC,CAAC;YAED,yDAAyD;YACzD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;YAC/E,CAAC;YAED,uDAAuD;YACvD,MAAM,kBAAkB,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAE7D,OAAO,kBAAkB,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,KAAK,EAAE,oCAAoC,CAAC,CAAC,CAAC;QACpF,CAAC;IACH,CAAC;IAED;;OAEG;IACK,qBAAqB,CAAC,QAAsB;QAClD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAwB,CAAC;QAElD,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;YAC9B,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,SAAS,CAAC;YAClD,MAAM,cAAc,GAAG,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YACvD,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC5B,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QAC5C,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;;;;OAQG;IACK,iBAAiB,CAAC,QAAsB,EAAE,UAAkB;QAClE,MAAM,iBAAiB,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;QAC5D,MAAM,iBAAiB,GAAG,yBAAyB,CAAC,QAAQ,CAAC,CAAC;QAE9D,0DAA0D;QAC1D,gFAAgF;QAChF,MAAM,YAAY,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAE/E,0BAA0B;QAC1B,MAAM,kBAAkB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC1F,MAAM,SAAS,GAAG,kBAAkB,GAAG,QAAQ,CAAC,MAAM,CAAC;QAEvD,mFAAmF;QACnF,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACvE,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC;QACpC,MAAM,YAAY,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEpG,yEAAyE;QACzE,8EAA8E;QAC9E,IAAI,YAAY,GAAG,GAAG,CAAC;QAEvB,iEAAiE;QACjE,wEAAwE;QACxE,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;YACjB,4DAA4D;YAC5D,MAAM,QAAQ,GAAG,CAAC,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;YACxD,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,QAAQ,EAAE,GAAG,CAAC,CAAC;QAC/C,CAAC;QAED,oFAAoF;QACpF,MAAM,sBAAsB,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;QAErE,sCAAsC;QACtC,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAChC,CAAC,QAAQ,CAAC,MAAM,GAAG,YAAY,GAAG,sBAAsB,CAAC,GAAG,YAAY,CACzE,CAAC;QAEF,8BAA8B;QAC9B,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACxB,SAAS,CAAC,2BAA2B,UAAU,IAAI,CAAC,CAAC;YACrD,SAAS,CAAC,qBAAqB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YAClD,SAAS,CAAC,0BAA0B,kBAAkB,EAAE,CAAC,CAAC;YAC1D,SAAS,CAAC,qBAAqB,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACvD,SAAS,CAAC,6BAA6B,QAAQ,EAAE,CAAC,CAAC;YACnD,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;gBACjB,SAAS,CAAC,yBAAyB,YAAY,EAAE,CAAC,CAAC;YACrD,CAAC;YACD,SAAS,CAAC,oBAAoB,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACzD,SAAS,CAAC,8BAA8B,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC7E,SAAS,CAAC,2BAA2B,gBAAgB,IAAI,CAAC,CAAC;QAC7D,CAAC;QAED,OAAO;YACL,UAAU;YACV,QAAQ,EAAE,iBAAiB;YAC3B,iBAAiB;YACjB,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;YACtC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;YACtC,gBAAgB;YAChB,SAAS,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;YAC/B,QAAQ;YACR,YAAY,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS;SACtD,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,kBAAkB,CAC9B,UAAmC,EACnC,WAAqB;QAErB,kCAAkC;QAClC,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC;QAC/E,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,CAAC,UAAU,2DAA2D,CAAC,CAAC;QACzG,CAAC;QAED,6DAA6D;QAC7D,MAAM,MAAM,GAAG,MAAM,0BAA0B,CAC7C,MAAM,EACN,UAAU,EACV,WAAW,EACX,IAAI,CAAC,MAAM,CACZ,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,wBAAwB,MAAM,CAAC,YAAY,IAAI,eAAe,EAAE,CAAC,CAAC;QACpF,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACxD,CAAC;QAED,OAAO,MAAM,CAAC,MAAM,CAAC;IACvB,CAAC;IAED;;;;;OAKG;IACK,wBAAwB,CAC9B,WAAmC,EACnC,QAAsB,EACtB,UAAmB;QAEnB,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1D,MAAM,WAAW,GAAkB,EAAE,CAAC;QAEtC,4CAA4C;QAC5C,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACxB,SAAS,CAAC,+CAA+C,CAAC,CAAC;YAC3D,SAAS,CAAC,sCAAsC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YACnE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,SAAS,CAAC,wBAAwB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC7H,SAAS,CAAC,oCAAoC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,UAAU,IAAI,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC3H,CAAC;YACD,SAAS,CAAC,2BAA2B,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YAClE,IAAI,WAAW,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClC,SAAS,CAAC,8BAA8B,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACvF,CAAC;YACD,SAAS,CAAC,4BAA4B,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;YAClG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;gBACrC,SAAS,CAAC,0FAA0F,CAAC,CAAC;YACxG,CAAC;QACH,CAAC;QAED,KAAK,MAAM,QAAQ,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;YAC1C,IAAI,CAAC;gBACH,kCAAkC;gBAClC,MAAM,aAAa,GAAG,QAAQ,CAAC,QAAQ;qBACpC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;qBAChC,MAAM,CAAC,CAAC,CAAC,EAAmB,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;gBAEnD,IAAI,aAAa,CAAC,MAAM,KAAK,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;oBACtD,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;wBACxB,MAAM,eAAe,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;wBAC/E,SAAS,CAAC,4CAA4C,CAAC,CAAC;wBACxD,SAAS,CAAC,sBAAsB,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBAChE,SAAS,CAAC,8BAA8B,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACxE,CAAC;oBACD,SAAS;gBACX,CAAC;gBAED,iCAAiC;gBACjC,MAAM,aAAa,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;gBAC5D,IAAI,CAAC,aAAa,EAAE,CAAC;oBACnB,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;wBACxB,SAAS,CAAC,kDAAkD,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;oBACxF,CAAC;oBACD,SAAS;gBACX,CAAC;gBAED,sFAAsF;gBACtF,MAAM,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;gBAE/D,sEAAsE;gBACtE,qDAAqD;gBACrD,IAAI,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;oBACpC,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,aAAa,CAAC,EAAE,CAAC;wBAChF,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;4BACxB,SAAS,CAAC,gDAAgD,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBACzG,CAAC;wBACD,SAAS;oBACX,CAAC;gBACH,CAAC;qBAAM,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC3D,iDAAiD;oBACjD,MAAM,gBAAgB,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;oBAClD,IAAI,CAAC,gBAAgB,EAAE,CAAC;wBACtB,SAAS,CAAC,mEAAmE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBAC5H,CAAC;gBACH,CAAC;gBAED,uCAAuC;gBACvC,WAAW,CAAC,IAAI,CAAC;oBACf,QAAQ,EAAE,aAAa;oBACvB,aAAa;oBACb,aAAa;oBACb,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB;oBAC3C,cAAc,EAAE,QAAQ,CAAC,cAAc;oBACvC,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;oBAC7C,qBAAqB,EAAE,QAAQ,CAAC,qBAAqB;iBACtD,CAAC,CAAC;gBAEH,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACxB,SAAS,CAAC,uBAAuB,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAChF,CAAC;YACH,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACxB,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACxB,SAAS,CAAC,+BAA+B,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,CAAC,EAAE,CAAC,CAAC;gBAC7F,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACxB,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,aAAa,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAChE,SAAS,CAAC,uBAAuB,UAAU,KAAK,WAAW,CAAC,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,MAAM,kBAAkB,CAAC,CAAC;YACnH,SAAS,CAAC,8CAA8C,CAAC,CAAC;QAC5D,CAAC;QAED,oDAAoD;QACpD,6EAA6E;QAC7E,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;OAEG;IACK,oBAAoB,CAAC,QAAsB;QACjD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACvD,MAAM,aAAa,GAA6B,EAAE,CAAC;QAEnD,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;YAC9B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;gBACzC,IAAI,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;oBACvC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC1B,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,aAAa,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACK,WAAW,CAAC,QAAsB,EAAE,aAAuC;QACjF,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QAEtC,sBAAsB;QACtB,MAAM,SAAS,GAAG,IAAI,GAAG,EAAuB,CAAC;QACjD,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;YAC9B,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QACxC,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;YAChC,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CACnC,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,CAChC,EAAE,IAAI,CAAC;YAER,IAAI,UAAU,EAAE,CAAC;gBACf,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;gBAClD,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,gBAAgB;YACrE,CAAC;QACH,CAAC;QAED,wBAAwB;QACxB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAClC,MAAM,KAAK,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAE9B,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,EAAG,CAAC;YAC/B,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC;YAEtD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACjC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC3B,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;oBACtB,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACvB,CAAC;YACH,CAAC;QACH,CAAC;QAED,iCAAiC;QACjC,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,MAAM,CAAC;IAC1C,CAAC;IAED;;;;OAIG;IACK,iBAAiB,CAAC,MAAqB;QAC7C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,MAAM,MAAM,GAAkB,EAAE,CAAC;QAEjC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,8CAA8C;YAC9C,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAE7D,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACnB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACd,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
|
package/dist/core/QueryTester.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Renders Nunjucks templates with sample parameter values and executes
|
|
5
5
|
* queries against the database. Handles error fixing with retry loop.
|
|
6
6
|
*/
|
|
7
|
-
import
|
|
7
|
+
import nunjucks from 'nunjucks';
|
|
8
8
|
import { RunQuerySQLFilterManager, LogError, } from '@memberjunction/core';
|
|
9
9
|
import { extractErrorMessage } from '../utils/error-handlers.js';
|
|
10
10
|
import { QueryFixer } from './QueryFixer.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryTester.js","sourceRoot":"","sources":["../../src/core/QueryTester.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"QueryTester.js","sourceRoot":"","sources":["../../src/core/QueryTester.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memberjunction/query-gen",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "4.
|
|
4
|
+
"version": "4.2.0",
|
|
5
5
|
"description": "AI-powered generation of domain-specific SQL query templates with automatic testing, refinement, and metadata export",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
@@ -13,7 +13,10 @@
|
|
|
13
13
|
"watch": "tsc --watch",
|
|
14
14
|
"clean": "rimraf dist",
|
|
15
15
|
"lint": "eslint src --ext .ts",
|
|
16
|
-
"format": "prettier --write \"src/**/*.ts\""
|
|
16
|
+
"format": "prettier --write \"src/**/*.ts\"",
|
|
17
|
+
"test": "node --test src/__tests__/*.test.js",
|
|
18
|
+
"test:jest": "node --experimental-vm-modules node_modules/jest/bin/jest.js",
|
|
19
|
+
"test:watch": "node --test --watch src/__tests__/*.test.js"
|
|
17
20
|
},
|
|
18
21
|
"keywords": [
|
|
19
22
|
"memberjunction",
|
|
@@ -26,23 +29,26 @@
|
|
|
26
29
|
"author": "MemberJunction",
|
|
27
30
|
"license": "MIT",
|
|
28
31
|
"dependencies": {
|
|
29
|
-
"@memberjunction/ai": "4.
|
|
30
|
-
"@memberjunction/ai-core-plus": "4.
|
|
31
|
-
"@memberjunction/aiengine": "4.
|
|
32
|
-
"@memberjunction/ai-prompts": "4.
|
|
33
|
-
"@memberjunction/ai-vectors-memory": "4.
|
|
34
|
-
"@memberjunction/core": "4.
|
|
35
|
-
"@memberjunction/core-entities": "4.
|
|
36
|
-
"@memberjunction/global": "4.
|
|
37
|
-
"@memberjunction/sqlserver-dataprovider": "4.
|
|
32
|
+
"@memberjunction/ai": "4.2.0",
|
|
33
|
+
"@memberjunction/ai-core-plus": "4.2.0",
|
|
34
|
+
"@memberjunction/aiengine": "4.2.0",
|
|
35
|
+
"@memberjunction/ai-prompts": "4.2.0",
|
|
36
|
+
"@memberjunction/ai-vectors-memory": "4.2.0",
|
|
37
|
+
"@memberjunction/core": "4.2.0",
|
|
38
|
+
"@memberjunction/core-entities": "4.2.0",
|
|
39
|
+
"@memberjunction/global": "4.2.0",
|
|
40
|
+
"@memberjunction/sqlserver-dataprovider": "4.2.0",
|
|
38
41
|
"chalk": "^5.6.2",
|
|
39
42
|
"commander": "^14.0.3",
|
|
40
43
|
"nunjucks": "^3.2.4",
|
|
41
44
|
"ora": "^9.3.0"
|
|
42
45
|
},
|
|
43
46
|
"devDependencies": {
|
|
47
|
+
"@types/jest": "^29.5.12",
|
|
44
48
|
"@types/node": "24.10.11",
|
|
45
49
|
"@types/nunjucks": "^3.2.6",
|
|
50
|
+
"jest": "^29.7.0",
|
|
51
|
+
"ts-jest": "^29.1.2",
|
|
46
52
|
"ts-node-dev": "^2.0.0",
|
|
47
53
|
"typescript": "^5.9.3"
|
|
48
54
|
},
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unit tests for golden queries loading functionality
|
|
3
|
+
*
|
|
4
|
+
* Tests that the golden-queries.json file can be loaded correctly using
|
|
5
|
+
* the ES module compatible file system approach introduced to fix the
|
|
6
|
+
* JSON import attribute error.
|
|
7
|
+
*
|
|
8
|
+
* Run with: node --test src/__tests__/golden-queries-loader.test.js
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
import { test, describe } from 'node:test';
|
|
12
|
+
import assert from 'node:assert';
|
|
13
|
+
import { readFileSync, existsSync } from 'fs';
|
|
14
|
+
import { dirname, join } from 'path';
|
|
15
|
+
import { fileURLToPath } from 'url';
|
|
16
|
+
|
|
17
|
+
// Get the path to the golden-queries.json file relative to this test file
|
|
18
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
19
|
+
const __dirname = dirname(__filename);
|
|
20
|
+
|
|
21
|
+
// The test file is at: src/__tests__/golden-queries-loader.test.js
|
|
22
|
+
// The JSON file is at: src/data/golden-queries.json
|
|
23
|
+
// So the relative path is: ../data/golden-queries.json
|
|
24
|
+
const goldenQueriesPathFromSource = join(__dirname, '../data/golden-queries.json');
|
|
25
|
+
|
|
26
|
+
describe('Golden Queries Loader', () => {
|
|
27
|
+
describe('File System Loading', () => {
|
|
28
|
+
test('should find the golden-queries.json file', () => {
|
|
29
|
+
assert.strictEqual(existsSync(goldenQueriesPathFromSource), true,
|
|
30
|
+
`Expected golden-queries.json to exist at ${goldenQueriesPathFromSource}`);
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
test('should load the golden-queries.json file as valid JSON', () => {
|
|
34
|
+
const content = readFileSync(goldenQueriesPathFromSource, 'utf-8');
|
|
35
|
+
const data = JSON.parse(content);
|
|
36
|
+
|
|
37
|
+
assert.ok(data !== undefined, 'Expected data to be defined');
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
test('should contain an array of golden queries', () => {
|
|
41
|
+
const content = readFileSync(goldenQueriesPathFromSource, 'utf-8');
|
|
42
|
+
const data = JSON.parse(content);
|
|
43
|
+
|
|
44
|
+
assert.strictEqual(Array.isArray(data), true, 'Expected data to be an array');
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
test('should have at least one golden query', () => {
|
|
48
|
+
const content = readFileSync(goldenQueriesPathFromSource, 'utf-8');
|
|
49
|
+
const data = JSON.parse(content);
|
|
50
|
+
|
|
51
|
+
assert.ok(data.length > 0, 'Expected at least one golden query');
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
describe('Golden Query Schema Validation', () => {
|
|
56
|
+
const content = readFileSync(goldenQueriesPathFromSource, 'utf-8');
|
|
57
|
+
const goldenQueries = JSON.parse(content);
|
|
58
|
+
|
|
59
|
+
test('each golden query should have a name', () => {
|
|
60
|
+
for (const query of goldenQueries) {
|
|
61
|
+
assert.ok(query.name !== undefined, 'Expected name to be defined');
|
|
62
|
+
assert.strictEqual(typeof query.name, 'string', 'Expected name to be a string');
|
|
63
|
+
assert.ok(query.name.length > 0, 'Expected name to be non-empty');
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
test('each golden query should have a userQuestion', () => {
|
|
68
|
+
for (const query of goldenQueries) {
|
|
69
|
+
assert.ok(query.userQuestion !== undefined, 'Expected userQuestion to be defined');
|
|
70
|
+
assert.strictEqual(typeof query.userQuestion, 'string', 'Expected userQuestion to be a string');
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
test('each golden query should have a description', () => {
|
|
75
|
+
for (const query of goldenQueries) {
|
|
76
|
+
assert.ok(query.description !== undefined, 'Expected description to be defined');
|
|
77
|
+
assert.strictEqual(typeof query.description, 'string', 'Expected description to be a string');
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
test('each golden query should have sql', () => {
|
|
82
|
+
for (const query of goldenQueries) {
|
|
83
|
+
assert.ok(query.sql !== undefined, 'Expected sql to be defined');
|
|
84
|
+
assert.strictEqual(typeof query.sql, 'string', 'Expected sql to be a string');
|
|
85
|
+
assert.ok(query.sql.length > 0, 'Expected sql to be non-empty');
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
test('each golden query should have a parameters array', () => {
|
|
90
|
+
for (const query of goldenQueries) {
|
|
91
|
+
assert.ok(query.parameters !== undefined, 'Expected parameters to be defined');
|
|
92
|
+
assert.strictEqual(Array.isArray(query.parameters), true, 'Expected parameters to be an array');
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
|
|
96
|
+
test('each golden query should have a selectClause array', () => {
|
|
97
|
+
for (const query of goldenQueries) {
|
|
98
|
+
assert.ok(query.selectClause !== undefined, 'Expected selectClause to be defined');
|
|
99
|
+
assert.strictEqual(Array.isArray(query.selectClause), true, 'Expected selectClause to be an array');
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
describe('loadGoldenQueries Function Simulation', () => {
|
|
105
|
+
/**
|
|
106
|
+
* Simulates the loadGoldenQueries function from generate.ts
|
|
107
|
+
* to verify the implementation works correctly
|
|
108
|
+
*/
|
|
109
|
+
async function loadGoldenQueries(config) {
|
|
110
|
+
try {
|
|
111
|
+
// This mirrors the implementation in generate.ts
|
|
112
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
113
|
+
const __dirname = dirname(__filename);
|
|
114
|
+
// Adjust path for test location vs generate.ts location
|
|
115
|
+
const goldenQueriesPath = join(__dirname, '../data/golden-queries.json');
|
|
116
|
+
const goldenQueriesData = JSON.parse(readFileSync(goldenQueriesPath, 'utf-8'));
|
|
117
|
+
const goldenQueries = goldenQueriesData;
|
|
118
|
+
|
|
119
|
+
if (!Array.isArray(goldenQueries)) {
|
|
120
|
+
if (config.verbose) {
|
|
121
|
+
console.log('[Warning] Golden queries data is not an array');
|
|
122
|
+
}
|
|
123
|
+
return [];
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
if (config.verbose) {
|
|
127
|
+
console.log(`[Info] Loaded ${goldenQueries.length} golden queries for few-shot learning`);
|
|
128
|
+
}
|
|
129
|
+
return goldenQueries;
|
|
130
|
+
} catch (error) {
|
|
131
|
+
if (config.verbose) {
|
|
132
|
+
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
133
|
+
console.log(`[Warning] Failed to load golden queries: ${message}`);
|
|
134
|
+
}
|
|
135
|
+
return [];
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
test('should successfully load golden queries with verbose=false', async () => {
|
|
140
|
+
const result = await loadGoldenQueries({ verbose: false });
|
|
141
|
+
|
|
142
|
+
assert.strictEqual(Array.isArray(result), true, 'Expected result to be an array');
|
|
143
|
+
assert.ok(result.length > 0, 'Expected result to have items');
|
|
144
|
+
});
|
|
145
|
+
|
|
146
|
+
test('should return empty array when file does not exist', async () => {
|
|
147
|
+
// Create a version that uses a bad path
|
|
148
|
+
async function loadGoldenQueriesWithBadPath(config) {
|
|
149
|
+
try {
|
|
150
|
+
const badPath = '/nonexistent/path/golden-queries.json';
|
|
151
|
+
const goldenQueriesData = JSON.parse(readFileSync(badPath, 'utf-8'));
|
|
152
|
+
return goldenQueriesData;
|
|
153
|
+
} catch {
|
|
154
|
+
return [];
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
const result = await loadGoldenQueriesWithBadPath({ verbose: false });
|
|
159
|
+
|
|
160
|
+
assert.strictEqual(Array.isArray(result), true, 'Expected result to be an array');
|
|
161
|
+
assert.strictEqual(result.length, 0, 'Expected result to be empty');
|
|
162
|
+
});
|
|
163
|
+
|
|
164
|
+
test('should return empty array when JSON is invalid', async () => {
|
|
165
|
+
// Create a version that parses invalid JSON
|
|
166
|
+
async function loadGoldenQueriesWithInvalidJson(config) {
|
|
167
|
+
try {
|
|
168
|
+
JSON.parse('{ invalid json }');
|
|
169
|
+
return [];
|
|
170
|
+
} catch {
|
|
171
|
+
return [];
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
const result = await loadGoldenQueriesWithInvalidJson({ verbose: false });
|
|
176
|
+
|
|
177
|
+
assert.strictEqual(Array.isArray(result), true, 'Expected result to be an array');
|
|
178
|
+
assert.strictEqual(result.length, 0, 'Expected result to be empty');
|
|
179
|
+
});
|
|
180
|
+
});
|
|
181
|
+
});
|
|
@@ -12,8 +12,6 @@
|
|
|
12
12
|
|
|
13
13
|
import ora from 'ora';
|
|
14
14
|
import chalk from 'chalk';
|
|
15
|
-
import * as fs from 'fs';
|
|
16
|
-
import * as path from 'path';
|
|
17
15
|
import { Metadata, DatabaseProviderBase, EntityInfo, LogStatus } from '@memberjunction/core';
|
|
18
16
|
import { loadConfig } from '../config';
|
|
19
17
|
import { getSystemUser } from '../../utils/user-helpers';
|
|
@@ -30,6 +28,9 @@ import { formatEntityMetadataForPrompt } from '../../utils/entity-helpers';
|
|
|
30
28
|
import { extractErrorMessage } from '../../utils/error-handlers';
|
|
31
29
|
import { buildQueryCategory, extractUniqueCategories } from '../../utils/category-builder';
|
|
32
30
|
import { ValidatedQuery, GoldenQuery, EntityGroup, QueryCategoryInfo } from '../../data/schema';
|
|
31
|
+
import { readFileSync } from 'fs';
|
|
32
|
+
import { dirname, join } from 'path';
|
|
33
|
+
import { fileURLToPath } from 'url';
|
|
33
34
|
|
|
34
35
|
/**
|
|
35
36
|
* Execute the generate command
|
|
@@ -73,11 +74,42 @@ export async function generateCommand(options: Record<string, unknown>): Promise
|
|
|
73
74
|
spinner.start('Filtering entities...');
|
|
74
75
|
const md = new Metadata();
|
|
75
76
|
|
|
77
|
+
// DIAGNOSTIC: Log entity filtering context
|
|
78
|
+
if (config.verbose) {
|
|
79
|
+
LogStatus(`\n=== Entity Filtering Diagnostics ===`);
|
|
80
|
+
LogStatus(`Total entities in metadata: ${md.Entities.length}`);
|
|
81
|
+
LogStatus(`Excluded schemas: ${config.excludeSchemas.join(', ')}`);
|
|
82
|
+
|
|
83
|
+
// Show schema distribution BEFORE filtering
|
|
84
|
+
const schemasBefore = new Map<string, number>();
|
|
85
|
+
md.Entities.forEach(e => {
|
|
86
|
+
const schema = e.SchemaName || 'null';
|
|
87
|
+
schemasBefore.set(schema, (schemasBefore.get(schema) || 0) + 1);
|
|
88
|
+
});
|
|
89
|
+
LogStatus(`Schema distribution (before filtering):`);
|
|
90
|
+
Array.from(schemasBefore.entries())
|
|
91
|
+
.sort((a, b) => b[1] - a[1])
|
|
92
|
+
.slice(0, 10)
|
|
93
|
+
.forEach(([schema, count]) => {
|
|
94
|
+
const excluded = config.excludeSchemas.includes(schema) ? ' [EXCLUDED]' : '';
|
|
95
|
+
LogStatus(` ${schema}: ${count} entities${excluded}`);
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
|
|
76
99
|
// Apply entity filtering (includeEntities takes precedence over excludeEntities)
|
|
77
100
|
let filteredEntities = md.Entities.filter(
|
|
78
101
|
e => !config.excludeSchemas.includes(e.SchemaName || '')
|
|
79
102
|
);
|
|
80
103
|
|
|
104
|
+
if (config.verbose) {
|
|
105
|
+
LogStatus(`\nAfter schema filtering: ${filteredEntities.length} entities remaining`);
|
|
106
|
+
if (filteredEntities.length > 0) {
|
|
107
|
+
LogStatus(`Sample entity names: ${filteredEntities.slice(0, 5).map(e => e.Name).join(', ')}`);
|
|
108
|
+
const schemasAfter = new Set(filteredEntities.map(e => e.SchemaName || 'null'));
|
|
109
|
+
LogStatus(`Remaining schemas: ${Array.from(schemasAfter).join(', ')}`);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
81
113
|
if (config.includeEntities.length > 0) {
|
|
82
114
|
// Allowlist: only include specified entities
|
|
83
115
|
filteredEntities = filteredEntities.filter(e => config.includeEntities.includes(e.Name));
|
|
@@ -88,6 +120,11 @@ export async function generateCommand(options: Record<string, unknown>): Promise
|
|
|
88
120
|
spinner.info(chalk.dim(`Excluded ${config.excludeEntities.length} entities`));
|
|
89
121
|
}
|
|
90
122
|
|
|
123
|
+
if (config.verbose) {
|
|
124
|
+
LogStatus(`Final filtered entities: ${filteredEntities.length}`);
|
|
125
|
+
LogStatus('====================================\n');
|
|
126
|
+
}
|
|
127
|
+
|
|
91
128
|
// 4. Group entities by schema and generate entity groups
|
|
92
129
|
spinner.text = 'Analyzing entity relationships...';
|
|
93
130
|
|
|
@@ -282,36 +319,30 @@ export async function generateCommand(options: Record<string, unknown>): Promise
|
|
|
282
319
|
}
|
|
283
320
|
|
|
284
321
|
/**
|
|
285
|
-
* Load golden queries from JSON
|
|
322
|
+
* Load golden queries from compile-time imported JSON data
|
|
286
323
|
*
|
|
287
324
|
* Golden queries are example queries used for few-shot learning.
|
|
288
|
-
* They are
|
|
325
|
+
* They are imported at compile time from data/golden-queries.json.
|
|
326
|
+
*
|
|
327
|
+
* This approach is more efficient than runtime file I/O and provides
|
|
328
|
+
* type safety through TypeScript's resolveJsonModule feature.
|
|
289
329
|
*
|
|
290
330
|
* @param config - QueryGen configuration with verbose flag
|
|
291
|
-
* @returns Array of golden queries
|
|
331
|
+
* @returns Array of golden queries
|
|
292
332
|
*/
|
|
293
333
|
async function loadGoldenQueries(config: { verbose: boolean }): Promise<GoldenQuery[]> {
|
|
294
334
|
try {
|
|
295
|
-
//
|
|
296
|
-
|
|
297
|
-
const
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
if (config.verbose) {
|
|
302
|
-
LogStatus(`[Warning] Golden queries file not found at: ${goldenQueriesPath}`);
|
|
303
|
-
}
|
|
304
|
-
return [];
|
|
305
|
-
}
|
|
306
|
-
|
|
307
|
-
// Read and parse JSON file
|
|
308
|
-
const fileContent = fs.readFileSync(goldenQueriesPath, 'utf-8');
|
|
309
|
-
const goldenQueries = JSON.parse(fileContent) as GoldenQuery[];
|
|
335
|
+
// Load golden queries from JSON file using ES module compatible path resolution
|
|
336
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
337
|
+
const __dirname = dirname(__filename);
|
|
338
|
+
const goldenQueriesPath = join(__dirname, '../../data/golden-queries.json');
|
|
339
|
+
const goldenQueriesData = JSON.parse(readFileSync(goldenQueriesPath, 'utf-8'));
|
|
340
|
+
const goldenQueries = goldenQueriesData as GoldenQuery[];
|
|
310
341
|
|
|
311
342
|
// Validate that it's an array
|
|
312
343
|
if (!Array.isArray(goldenQueries)) {
|
|
313
344
|
if (config.verbose) {
|
|
314
|
-
LogStatus('[Warning] Golden queries
|
|
345
|
+
LogStatus('[Warning] Golden queries data is not an array');
|
|
315
346
|
}
|
|
316
347
|
return [];
|
|
317
348
|
}
|
package/src/cli/config.ts
CHANGED
|
@@ -28,6 +28,7 @@ export interface QueryGenConfig {
|
|
|
28
28
|
questionsPerGroup: number;
|
|
29
29
|
minGroupSize: number; // Minimum entities per group
|
|
30
30
|
maxGroupSize: number; // Maximum entities per group
|
|
31
|
+
requireConnectivity: boolean; // Require entities in groups to be connected via relationships
|
|
31
32
|
|
|
32
33
|
// AI Configuration
|
|
33
34
|
modelOverride?: string; // Override model for all prompts (e.g., "GPT-OSS-120B")
|
|
@@ -81,6 +82,7 @@ const DEFAULT_CONFIG: QueryGenConfig = {
|
|
|
81
82
|
questionsPerGroup: 2,
|
|
82
83
|
minGroupSize: 2, // Multi-entity groups have at least 2 entities
|
|
83
84
|
maxGroupSize: 3, // Keep groups small for focused questions
|
|
85
|
+
requireConnectivity: true, // Require entities to be connected (disable for sparse relationship graphs)
|
|
84
86
|
embeddingModel: 'text-embedding-3-small',
|
|
85
87
|
maxRefinementIterations: 3,
|
|
86
88
|
maxFixingIterations: 5,
|
|
@@ -74,6 +74,14 @@ export class EntityGrouper {
|
|
|
74
74
|
LogStatus(`[${schemaIndex}/${totalSchemas}] Processing schema: ${schemaName} (${schemaEntities.length} entities)`);
|
|
75
75
|
}
|
|
76
76
|
|
|
77
|
+
// Skip schemas with too few entities for grouping
|
|
78
|
+
if (schemaEntities.length < this.config.minGroupSize) {
|
|
79
|
+
if (this.config.verbose) {
|
|
80
|
+
LogStatus(`[${schemaIndex}/${totalSchemas}] Skipping schema ${schemaName}: only ${schemaEntities.length} entities (minimum ${this.config.minGroupSize} required)`);
|
|
81
|
+
}
|
|
82
|
+
continue;
|
|
83
|
+
}
|
|
84
|
+
|
|
77
85
|
// 2a. Prepare schema data for LLM
|
|
78
86
|
const schemaData = this.prepareSchemaData(schemaEntities, schemaName);
|
|
79
87
|
|
|
@@ -81,7 +89,8 @@ export class EntityGrouper {
|
|
|
81
89
|
const llmResponse = await this.callLLMForGrouping(schemaData, contextUser);
|
|
82
90
|
|
|
83
91
|
// 2c. Validate and convert to EntityGroup objects
|
|
84
|
-
|
|
92
|
+
// Note: This may return an empty array if no groups pass validation
|
|
93
|
+
const validatedGroups = this.validateAndConvertGroups(llmResponse, schemaEntities, schemaName);
|
|
85
94
|
|
|
86
95
|
if (this.config.verbose && totalSchemas > 1) {
|
|
87
96
|
LogStatus(`[${schemaIndex}/${totalSchemas}] Generated ${validatedGroups.length} groups for schema: ${schemaName}`);
|
|
@@ -90,7 +99,12 @@ export class EntityGrouper {
|
|
|
90
99
|
allGroups.push(...validatedGroups);
|
|
91
100
|
}
|
|
92
101
|
|
|
93
|
-
// 3.
|
|
102
|
+
// 3. Check if we generated any groups across all schemas
|
|
103
|
+
if (allGroups.length === 0) {
|
|
104
|
+
throw new Error('No valid entity groups generated by LLM across any schema');
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
// 4. Deduplicate any similar groups across all schemas
|
|
94
108
|
const deduplicatedGroups = this.deduplicateGroups(allGroups);
|
|
95
109
|
|
|
96
110
|
return deduplicatedGroups;
|
|
@@ -223,14 +237,36 @@ export class EntityGrouper {
|
|
|
223
237
|
|
|
224
238
|
/**
|
|
225
239
|
* Validate LLM output and convert to EntityGroup objects
|
|
240
|
+
*
|
|
241
|
+
* @param schemaName - Optional schema name for better error messages
|
|
242
|
+
* @returns Array of validated groups (may be empty if no groups pass validation)
|
|
226
243
|
*/
|
|
227
244
|
private validateAndConvertGroups(
|
|
228
245
|
llmResponse: LLMEntityGroupResponse,
|
|
229
|
-
entities: EntityInfo[]
|
|
246
|
+
entities: EntityInfo[],
|
|
247
|
+
schemaName?: string
|
|
230
248
|
): EntityGroup[] {
|
|
231
249
|
const entityMap = new Map(entities.map(e => [e.Name, e]));
|
|
232
250
|
const validGroups: EntityGroup[] = [];
|
|
233
251
|
|
|
252
|
+
// DIAGNOSTIC: Log entity validation context
|
|
253
|
+
if (this.config.verbose) {
|
|
254
|
+
LogStatus('\n=== Entity Group Validation Diagnostics ===');
|
|
255
|
+
LogStatus(`Entities available for validation: ${entities.length}`);
|
|
256
|
+
if (entities.length > 0) {
|
|
257
|
+
LogStatus(`Entity names in map: ${Array.from(entityMap.keys()).slice(0, 10).join(', ')}${entityMap.size > 10 ? '...' : ''}`);
|
|
258
|
+
LogStatus(`Sample entity SchemaName values: ${entities.slice(0, 5).map(e => `"${e.SchemaName || 'null'}"`).join(', ')}`);
|
|
259
|
+
}
|
|
260
|
+
LogStatus(`Groups returned by LLM: ${llmResponse.groups.length}`);
|
|
261
|
+
if (llmResponse.groups.length > 0) {
|
|
262
|
+
LogStatus(`Sample LLM group entities: ${llmResponse.groups[0].entities.join(', ')}`);
|
|
263
|
+
}
|
|
264
|
+
LogStatus(`Connectivity validation: ${this.config.requireConnectivity ? 'ENABLED' : 'DISABLED'}`);
|
|
265
|
+
if (!this.config.requireConnectivity) {
|
|
266
|
+
LogStatus('â ï¸ WARNING: Connectivity validation is disabled. Groups may include unrelated entities.');
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
|
|
234
270
|
for (const llmGroup of llmResponse.groups) {
|
|
235
271
|
try {
|
|
236
272
|
// Validate all entity names exist
|
|
@@ -239,14 +275,21 @@ export class EntityGrouper {
|
|
|
239
275
|
.filter((e): e is EntityInfo => e !== undefined);
|
|
240
276
|
|
|
241
277
|
if (groupEntities.length !== llmGroup.entities.length) {
|
|
242
|
-
|
|
278
|
+
if (this.config.verbose) {
|
|
279
|
+
const missingEntities = llmGroup.entities.filter(name => !entityMap.has(name));
|
|
280
|
+
LogStatus(` â Group rejected - Entity name mismatch:`);
|
|
281
|
+
LogStatus(` LLM requested: ${llmGroup.entities.join(', ')}`);
|
|
282
|
+
LogStatus(` Not found in metadata: ${missingEntities.join(', ')}`);
|
|
283
|
+
}
|
|
243
284
|
continue;
|
|
244
285
|
}
|
|
245
286
|
|
|
246
287
|
// Validate primary entity exists
|
|
247
288
|
const primaryEntity = entityMap.get(llmGroup.primaryEntity);
|
|
248
289
|
if (!primaryEntity) {
|
|
249
|
-
|
|
290
|
+
if (this.config.verbose) {
|
|
291
|
+
LogStatus(` â Group rejected - Primary entity not found: ${llmGroup.primaryEntity}`);
|
|
292
|
+
}
|
|
250
293
|
continue;
|
|
251
294
|
}
|
|
252
295
|
|
|
@@ -254,9 +297,20 @@ export class EntityGrouper {
|
|
|
254
297
|
const relationships = this.extractRelationships(groupEntities);
|
|
255
298
|
|
|
256
299
|
// Validate connectivity (all entities must be reachable from primary)
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
300
|
+
// Skip this check if requireConnectivity is disabled
|
|
301
|
+
if (this.config.requireConnectivity) {
|
|
302
|
+
if (groupEntities.length > 1 && !this.isConnected(groupEntities, relationships)) {
|
|
303
|
+
if (this.config.verbose) {
|
|
304
|
+
LogStatus(` â Group rejected - Entities not connected: ${groupEntities.map(e => e.Name).join(', ')}`);
|
|
305
|
+
}
|
|
306
|
+
continue;
|
|
307
|
+
}
|
|
308
|
+
} else if (this.config.verbose && groupEntities.length > 1) {
|
|
309
|
+
// Log warning when connectivity check is skipped
|
|
310
|
+
const hasRelationships = relationships.length > 0;
|
|
311
|
+
if (!hasRelationships) {
|
|
312
|
+
LogStatus(` â ï¸ Group has no relationships (connectivity check disabled): ${groupEntities.map(e => e.Name).join(', ')}`);
|
|
313
|
+
}
|
|
260
314
|
}
|
|
261
315
|
|
|
262
316
|
// Create EntityGroup with LLM metadata
|
|
@@ -269,15 +323,25 @@ export class EntityGrouper {
|
|
|
269
323
|
businessRationale: llmGroup.businessRationale,
|
|
270
324
|
expectedQuestionTypes: llmGroup.expectedQuestionTypes
|
|
271
325
|
});
|
|
326
|
+
|
|
327
|
+
if (this.config.verbose) {
|
|
328
|
+
LogStatus(` â Group accepted: ${groupEntities.map(e => e.Name).join(', ')}`);
|
|
329
|
+
}
|
|
272
330
|
} catch (error: unknown) {
|
|
273
|
-
|
|
331
|
+
if (this.config.verbose) {
|
|
332
|
+
LogStatus(` â Group validation error: ${extractErrorMessage(error, 'Group Validation')}`);
|
|
333
|
+
}
|
|
274
334
|
}
|
|
275
335
|
}
|
|
276
336
|
|
|
277
|
-
if (
|
|
278
|
-
|
|
337
|
+
if (this.config.verbose) {
|
|
338
|
+
const schemaInfo = schemaName ? ` (schema: ${schemaName})` : '';
|
|
339
|
+
LogStatus(`\nValidation Summary${schemaInfo}: ${validGroups.length}/${llmResponse.groups.length} groups accepted`);
|
|
340
|
+
LogStatus('==========================================\n');
|
|
279
341
|
}
|
|
280
342
|
|
|
343
|
+
// Return empty array if no groups passed validation
|
|
344
|
+
// The caller will aggregate results from all schemas and check if total is 0
|
|
281
345
|
return validGroups;
|
|
282
346
|
}
|
|
283
347
|
|