@memberjunction/query-gen 3.4.0 → 4.1.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 +2 -2
- package/CHANGELOG.md +54 -0
- package/README.md +30 -2
- package/dist/cli/commands/export.js +35 -65
- package/dist/cli/commands/export.js.map +1 -1
- package/dist/cli/commands/generate.d.ts.map +1 -1
- package/dist/cli/commands/generate.js +114 -115
- package/dist/cli/commands/generate.js.map +1 -1
- package/dist/cli/commands/validate.js +40 -70
- package/dist/cli/commands/validate.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 +8 -7
- package/dist/cli/config.js.map +1 -1
- package/dist/cli/index.js +11 -10
- package/dist/cli/index.js.map +1 -1
- package/dist/core/EntityGrouper.d.ts +5 -2
- package/dist/core/EntityGrouper.d.ts.map +1 -1
- package/dist/core/EntityGrouper.js +94 -39
- package/dist/core/EntityGrouper.js.map +1 -1
- package/dist/core/MetadataExporter.d.ts +2 -2
- package/dist/core/MetadataExporter.js +9 -36
- package/dist/core/MetadataExporter.js.map +1 -1
- package/dist/core/QueryDatabaseWriter.d.ts +1 -1
- package/dist/core/QueryDatabaseWriter.js +8 -12
- package/dist/core/QueryDatabaseWriter.js.map +1 -1
- package/dist/core/QueryFixer.d.ts +2 -2
- package/dist/core/QueryFixer.js +11 -17
- package/dist/core/QueryFixer.js.map +1 -1
- package/dist/core/QueryRefiner.d.ts +3 -3
- package/dist/core/QueryRefiner.js +22 -29
- package/dist/core/QueryRefiner.js.map +1 -1
- package/dist/core/QueryTester.d.ts +2 -2
- package/dist/core/QueryTester.js +11 -44
- package/dist/core/QueryTester.js.map +1 -1
- package/dist/core/QueryWriter.d.ts +2 -2
- package/dist/core/QueryWriter.js +12 -18
- package/dist/core/QueryWriter.js.map +1 -1
- package/dist/core/QuestionGenerator.d.ts +2 -2
- package/dist/core/QuestionGenerator.js +16 -22
- package/dist/core/QuestionGenerator.js.map +1 -1
- package/dist/data/schema.js +1 -2
- package/dist/data/schema.js.map +1 -1
- package/dist/index.d.ts +18 -18
- package/dist/index.js +18 -59
- package/dist/index.js.map +1 -1
- package/dist/prompts/PromptNames.js +5 -8
- package/dist/prompts/PromptNames.js.map +1 -1
- package/dist/utils/category-builder.d.ts +2 -2
- package/dist/utils/category-builder.js +2 -7
- package/dist/utils/category-builder.js.map +1 -1
- package/dist/utils/entity-helpers.d.ts +1 -1
- package/dist/utils/entity-helpers.js +7 -17
- package/dist/utils/entity-helpers.js.map +1 -1
- package/dist/utils/error-handlers.js +3 -9
- package/dist/utils/error-handlers.js.map +1 -1
- package/dist/utils/graph-helpers.js +3 -9
- package/dist/utils/graph-helpers.js.map +1 -1
- package/dist/utils/prompt-helpers.d.ts +1 -1
- package/dist/utils/prompt-helpers.js +8 -12
- package/dist/utils/prompt-helpers.js.map +1 -1
- package/dist/utils/user-helpers.js +3 -7
- package/dist/utils/user-helpers.js.map +1 -1
- package/dist/vectors/EmbeddingService.d.ts +1 -1
- package/dist/vectors/EmbeddingService.js +3 -8
- package/dist/vectors/EmbeddingService.js.map +1 -1
- package/dist/vectors/SimilaritySearch.d.ts +1 -1
- package/dist/vectors/SimilaritySearch.js +19 -20
- package/dist/vectors/SimilaritySearch.js.map +1 -1
- package/package.json +24 -17
- package/src/__tests__/golden-queries-loader.test.js +181 -0
- package/src/cli/commands/generate.ts +52 -21
- package/src/cli/config.ts +10 -2
- package/src/cli/index.ts +4 -1
- package/src/core/EntityGrouper.ts +75 -11
- package/src/core/QueryTester.ts +1 -1
- package/tsconfig.json +5 -35
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/cli/commands/validate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/cli/commands/validate.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAwB,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAAgC;IACpE,MAAM,OAAO,GAAG,GAAG,CAAC,4BAA4B,CAAC,CAAC,KAAK,EAAE,CAAC;IAE1D,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,oBAAoB,CAAC,CAAC;QAC/D,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAEzC,qBAAqB;QACrB,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;QAEnC,2EAA2E;QAC3E,MAAM,WAAW,GAAG,aAAa,EAAE,CAAC;QAEpC,kDAAkD;QAClD,OAAO,CAAC,IAAI,GAAG,qBAAqB,CAAC;QACrC,mEAAmE;QACnE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,mGAAmG,CAAC,CAAC;QACvH,CAAC;QACD,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAEnC,+BAA+B;QAC/B,OAAO,CAAC,KAAK,CAAC,4BAA4B,SAAS,KAAK,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,SAAS,CAAC,CAAC;QACnD,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,UAAU,CAAC,MAAM,cAAc,CAAC,CAAC,CAAC;QAEvE,yBAAyB;QACzB,MAAM,YAAY,GAAG,QAAQ,CAAC,QAAQ,CAAC,kBAA0C,CAAC;QAClF,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,MAAM,MAAM,GAA2C,EAAE,CAAC;QAE1D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YACxC,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;YAEjE,OAAO,CAAC,KAAK,CAAC,GAAG,UAAU,eAAe,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAEhE,KAAK,MAAM,WAAW,IAAI,OAAO,EAAE,CAAC;gBAClC,IAAI,CAAC;oBACH,MAAM,KAAK,GAAG,+BAA+B,CAAC,WAAW,CAAC,CAAC;oBAE3D,qEAAqE;oBACrE,MAAM,aAAa,GAAG;wBACpB,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,YAAY,IAAI,YAAY;wBAC7D,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE;wBACjD,oBAAoB,EAAE,WAAW,CAAC,MAAM,CAAC,oBAAoB,IAAI,EAAE;wBACnE,UAAU,EAAE,QAAiB;wBAC7B,mBAAmB,EAAE,KAAK;wBAC1B,aAAa,EAAE,KAAK;wBACpB,QAAQ,EAAE,EAAE;qBACb,CAAC;oBAEF,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,YAAY,EAAE,EAAE,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;oBAErF,uBAAuB;oBACvB,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;oBAEpD,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;wBACvB,SAAS,EAAE,CAAC;wBACZ,IAAI,OAAO,EAAE,CAAC;4BACZ,OAAO,CAAC,IAAI,CAAC,GAAG,UAAU,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;wBAC/E,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,SAAS,EAAE,CAAC;wBACZ,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,IAAI,eAAe,CAAC;wBACrD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,EAAE,CAAC,CAAC;wBACxE,IAAI,OAAO,EAAE,CAAC;4BACZ,OAAO,CAAC,IAAI,CAAC,GAAG,UAAU,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC,CAAC;wBAC1F,CAAC;oBACH,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAc,EAAE,CAAC;oBACxB,SAAS,EAAE,CAAC;oBACZ,MAAM,QAAQ,GAAG,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;oBAChE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,EAAE,CAAC,CAAC;oBACxE,IAAI,OAAO,EAAE,CAAC;wBACZ,OAAO,CAAC,IAAI,CAAC,GAAG,UAAU,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC,CAAC;oBAC1F,CAAC;gBACH,CAAC;YACH,CAAC;YAED,OAAO,CAAC,OAAO,CAAC,GAAG,UAAU,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC/D,CAAC;QAED,aAAa;QACb,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;YACpB,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,SAAS,kCAAkC,CAAC,CAAC,CAAC;YACxF,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;YACjE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,oBAAoB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;YACpE,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;YAC9D,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,6BAA6B,SAAS,SAAS,CAAC,CAAC,CAAC;YAC5E,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC,CAAC;YAC9E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,oBAAoB,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;YAClF,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;YAC9D,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;YAE5D,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;gBAC1C,KAAK,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,MAAM,EAAE,CAAC;oBACrC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC;gBAChD,CAAC;YACH,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IAEH,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAC7C,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC;QACzE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,cAAc,CAAC,SAAiB;IAC7C,MAAM,KAAK,GAA4D,EAAE,CAAC;IAE1E,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,yBAAyB,SAAS,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAC1C,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC7C,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAEnC,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7C,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACnD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAEjC,6CAA6C;YAC7C,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACpD,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;GAMG;AACH,SAAS,+BAA+B,CAAC,MAA2B;IAClE,OAAO;QACL,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI;QAC7B,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG;QACtB,UAAU,EAAE,EAAE,EAAK,uDAAuD;KAC3E,CAAC;AACJ,CAAC"}
|
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;
|
|
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
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* Configuration loader for QueryGen
|
|
4
3
|
*
|
|
5
4
|
* Loads configuration from mj.config.cjs and merges with CLI options
|
|
6
5
|
*/
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
import fs from 'fs';
|
|
7
|
+
import path from 'path';
|
|
8
|
+
import { createRequire } from 'node:module';
|
|
9
|
+
// Use createRequire to load CommonJS config files
|
|
10
|
+
const require = createRequire(import.meta.url);
|
|
9
11
|
/**
|
|
10
12
|
* Default configuration values
|
|
11
13
|
*/
|
|
@@ -16,6 +18,7 @@ const DEFAULT_CONFIG = {
|
|
|
16
18
|
questionsPerGroup: 2,
|
|
17
19
|
minGroupSize: 2, // Multi-entity groups have at least 2 entities
|
|
18
20
|
maxGroupSize: 3, // Keep groups small for focused questions
|
|
21
|
+
requireConnectivity: true, // Require entities to be connected (disable for sparse relationship graphs)
|
|
19
22
|
embeddingModel: 'text-embedding-3-small',
|
|
20
23
|
maxRefinementIterations: 3,
|
|
21
24
|
maxFixingIterations: 5,
|
|
@@ -48,7 +51,7 @@ const DEFAULT_CONFIG = {
|
|
|
48
51
|
* @param cliOptions - Options provided via command line
|
|
49
52
|
* @returns Merged configuration ready for use
|
|
50
53
|
*/
|
|
51
|
-
function loadConfig(cliOptions) {
|
|
54
|
+
export function loadConfig(cliOptions) {
|
|
52
55
|
// Start with defaults
|
|
53
56
|
const config = { ...DEFAULT_CONFIG };
|
|
54
57
|
// Load mj.config.cjs if it exists
|
|
@@ -100,15 +103,13 @@ function loadConfig(cliOptions) {
|
|
|
100
103
|
}
|
|
101
104
|
return config;
|
|
102
105
|
}
|
|
103
|
-
exports.loadConfig = loadConfig;
|
|
104
106
|
/**
|
|
105
107
|
* Load mj.config.cjs from current working directory
|
|
106
108
|
* Returns null if file doesn't exist or can't be loaded
|
|
107
109
|
*/
|
|
108
110
|
function loadMjConfig() {
|
|
109
111
|
try {
|
|
110
|
-
const configPath =
|
|
111
|
-
const fs = require('fs');
|
|
112
|
+
const configPath = path.join(process.cwd(), 'mj.config.cjs');
|
|
112
113
|
if (fs.existsSync(configPath)) {
|
|
113
114
|
return require(configPath);
|
|
114
115
|
}
|
package/dist/cli/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/cli/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/cli/config.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
"use strict";
|
|
3
2
|
/**
|
|
4
3
|
* CLI entry point for QueryGen package
|
|
5
4
|
*
|
|
@@ -10,13 +9,15 @@
|
|
|
10
9
|
* validate - Validate existing query templates
|
|
11
10
|
* export - Export queries from database to metadata files
|
|
12
11
|
*/
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
12
|
+
import { Command } from 'commander';
|
|
13
|
+
import { createRequire } from 'node:module';
|
|
14
|
+
import { generateCommand } from './commands/generate.js';
|
|
15
|
+
import { validateCommand } from './commands/validate.js';
|
|
16
|
+
import { exportCommand } from './commands/export.js';
|
|
17
|
+
// Use createRequire to import JSON (compatible with ESM)
|
|
18
|
+
const require = createRequire(import.meta.url);
|
|
18
19
|
const packageJson = require('../../package.json');
|
|
19
|
-
const program = new
|
|
20
|
+
const program = new Command();
|
|
20
21
|
program
|
|
21
22
|
.name('mj-querygen')
|
|
22
23
|
.description('AI-powered SQL query template generation for MemberJunction')
|
|
@@ -35,19 +36,19 @@ program
|
|
|
35
36
|
.option('-o, --output <path>', 'Output directory')
|
|
36
37
|
.option('--mode <mode>', 'Output mode: metadata|database|both')
|
|
37
38
|
.option('-v, --verbose', 'Verbose output')
|
|
38
|
-
.action(
|
|
39
|
+
.action(generateCommand);
|
|
39
40
|
program
|
|
40
41
|
.command('validate')
|
|
41
42
|
.description('Validate existing query templates')
|
|
42
43
|
.option('-p, --path <path>', 'Path to queries metadata file', './metadata/queries')
|
|
43
44
|
.option('-v, --verbose', 'Verbose output')
|
|
44
|
-
.action(
|
|
45
|
+
.action(validateCommand);
|
|
45
46
|
program
|
|
46
47
|
.command('export')
|
|
47
48
|
.description('Export queries from database to metadata files')
|
|
48
49
|
.option('-o, --output <path>', 'Output directory')
|
|
49
50
|
.option('-v, --verbose', 'Verbose output')
|
|
50
|
-
.action(
|
|
51
|
+
.action(exportCommand);
|
|
51
52
|
// Parse command line arguments
|
|
52
53
|
program.parse();
|
|
53
54
|
// Show help if no command provided
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,yDAAyD;AACzD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,WAAW,GAAG,OAAO,CAAC,oBAAoB,CAAwB,CAAC;AAEzE,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,aAAa,CAAC;KACnB,WAAW,CAAC,6DAA6D,CAAC;KAC1E,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAEhC,OAAO;KACJ,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CAAC,+BAA+B,CAAC;KAC5C,MAAM,CAAC,2BAA2B,EAAE,2CAA2C,CAAC;KAChF,MAAM,CAAC,mCAAmC,EAAE,qBAAqB,CAAC;KAClE,MAAM,CAAC,kCAAkC,EAAE,oBAAoB,CAAC;KAChE,MAAM,CAAC,6BAA6B,EAAE,wBAAwB,EAAE,GAAG,CAAC;KACpE,MAAM,CAAC,gCAAgC,EAAE,2BAA2B,EAAE,GAAG,CAAC;KAC1E,MAAM,CAAC,0BAA0B,EAAE,2BAA2B,EAAE,GAAG,CAAC;KACpE,MAAM,CAAC,gBAAgB,EAAE,oBAAoB,CAAC;KAC9C,MAAM,CAAC,iBAAiB,EAAE,qBAAqB,CAAC;KAChD,MAAM,CAAC,qBAAqB,EAAE,kBAAkB,CAAC;KACjD,MAAM,CAAC,eAAe,EAAE,qCAAqC,CAAC;KAC9D,MAAM,CAAC,eAAe,EAAE,gBAAgB,CAAC;KACzC,MAAM,CAAC,eAAe,CAAC,CAAC;AAE3B,OAAO;KACJ,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CAAC,mCAAmC,CAAC;KAChD,MAAM,CAAC,mBAAmB,EAAE,+BAA+B,EAAE,oBAAoB,CAAC;KAClF,MAAM,CAAC,eAAe,EAAE,gBAAgB,CAAC;KACzC,MAAM,CAAC,eAAe,CAAC,CAAC;AAE3B,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,gDAAgD,CAAC;KAC7D,MAAM,CAAC,qBAAqB,EAAE,kBAAkB,CAAC;KACjD,MAAM,CAAC,eAAe,EAAE,gBAAgB,CAAC;KACzC,MAAM,CAAC,aAAa,CAAC,CAAC;AAEzB,+BAA+B;AAC/B,OAAO,CAAC,KAAK,EAAE,CAAC;AAEhB,mCAAmC;AACnC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAClC,OAAO,CAAC,UAAU,EAAE,CAAC;AACvB,CAAC"}
|
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
* hub-and-spoke algorithm with intelligent semantic analysis.
|
|
7
7
|
*/
|
|
8
8
|
import { EntityInfo, UserInfo } from '@memberjunction/core';
|
|
9
|
-
import { EntityGroup } from '../data/schema';
|
|
10
|
-
import { QueryGenConfig } from '../cli/config';
|
|
9
|
+
import { EntityGroup } from '../data/schema.js';
|
|
10
|
+
import { QueryGenConfig } from '../cli/config.js';
|
|
11
11
|
/**
|
|
12
12
|
* Generates entity groups using LLM-based semantic analysis
|
|
13
13
|
*
|
|
@@ -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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* LLM-based Entity Grouper
|
|
4
3
|
*
|
|
@@ -6,13 +5,11 @@
|
|
|
6
5
|
* business context and schema understanding, replacing the deterministic
|
|
7
6
|
* hub-and-spoke algorithm with intelligent semantic analysis.
|
|
8
7
|
*/
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
const error_handlers_1 = require("../utils/error-handlers");
|
|
15
|
-
const prompt_helpers_1 = require("../utils/prompt-helpers");
|
|
8
|
+
import { LogStatus } from '@memberjunction/core';
|
|
9
|
+
import { AIEngine } from '@memberjunction/aiengine';
|
|
10
|
+
import { generateRelationshipGraph, formatEntitiesForPrompt } from '../utils/graph-helpers.js';
|
|
11
|
+
import { extractErrorMessage } from '../utils/error-handlers.js';
|
|
12
|
+
import { executePromptWithOverrides } from '../utils/prompt-helpers.js';
|
|
16
13
|
/**
|
|
17
14
|
* Generates entity groups using LLM-based semantic analysis
|
|
18
15
|
*
|
|
@@ -20,10 +17,9 @@ const prompt_helpers_1 = require("../utils/prompt-helpers");
|
|
|
20
17
|
* intelligent approach that understands business context and generates
|
|
21
18
|
* meaningful entity combinations for query generation.
|
|
22
19
|
*/
|
|
23
|
-
class EntityGrouper {
|
|
24
|
-
promptName = 'Entity Group Generator';
|
|
25
|
-
config;
|
|
20
|
+
export class EntityGrouper {
|
|
26
21
|
constructor(config) {
|
|
22
|
+
this.promptName = 'Entity Group Generator';
|
|
27
23
|
this.config = config;
|
|
28
24
|
}
|
|
29
25
|
/**
|
|
@@ -48,25 +44,37 @@ class EntityGrouper {
|
|
|
48
44
|
for (const [schemaName, schemaEntities] of entitiesBySchema.entries()) {
|
|
49
45
|
schemaIndex++;
|
|
50
46
|
if (this.config.verbose && totalSchemas > 1) {
|
|
51
|
-
|
|
47
|
+
LogStatus(`[${schemaIndex}/${totalSchemas}] Processing schema: ${schemaName} (${schemaEntities.length} entities)`);
|
|
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;
|
|
52
55
|
}
|
|
53
56
|
// 2a. Prepare schema data for LLM
|
|
54
57
|
const schemaData = this.prepareSchemaData(schemaEntities, schemaName);
|
|
55
58
|
// 2b. Call LLM to generate groups for this schema
|
|
56
59
|
const llmResponse = await this.callLLMForGrouping(schemaData, contextUser);
|
|
57
60
|
// 2c. Validate and convert to EntityGroup objects
|
|
58
|
-
|
|
61
|
+
// Note: This may return an empty array if no groups pass validation
|
|
62
|
+
const validatedGroups = this.validateAndConvertGroups(llmResponse, schemaEntities, schemaName);
|
|
59
63
|
if (this.config.verbose && totalSchemas > 1) {
|
|
60
|
-
|
|
64
|
+
LogStatus(`[${schemaIndex}/${totalSchemas}] Generated ${validatedGroups.length} groups for schema: ${schemaName}`);
|
|
61
65
|
}
|
|
62
66
|
allGroups.push(...validatedGroups);
|
|
63
67
|
}
|
|
64
|
-
// 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
|
|
65
73
|
const deduplicatedGroups = this.deduplicateGroups(allGroups);
|
|
66
74
|
return deduplicatedGroups;
|
|
67
75
|
}
|
|
68
76
|
catch (error) {
|
|
69
|
-
throw new Error(
|
|
77
|
+
throw new Error(extractErrorMessage(error, 'EntityGrouper.generateEntityGroups'));
|
|
70
78
|
}
|
|
71
79
|
}
|
|
72
80
|
/**
|
|
@@ -92,8 +100,8 @@ class EntityGrouper {
|
|
|
92
100
|
* @param schemaName - Name of the schema being processed
|
|
93
101
|
*/
|
|
94
102
|
prepareSchemaData(entities, schemaName) {
|
|
95
|
-
const formattedEntities =
|
|
96
|
-
const relationshipGraph =
|
|
103
|
+
const formattedEntities = formatEntitiesForPrompt(entities);
|
|
104
|
+
const relationshipGraph = generateRelationshipGraph(entities);
|
|
97
105
|
// Calculate target group count using graph theory metrics
|
|
98
106
|
// This approach uses actual schema connectivity instead of arbitrary thresholds
|
|
99
107
|
const avgGroupSize = (this.config.minGroupSize + this.config.maxGroupSize) / 2;
|
|
@@ -120,17 +128,17 @@ class EntityGrouper {
|
|
|
120
128
|
const targetGroupCount = Math.ceil((entities.length * baseCoverage * connectivityMultiplier) / avgGroupSize);
|
|
121
129
|
// Log metrics in verbose mode
|
|
122
130
|
if (this.config.verbose) {
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
131
|
+
LogStatus(`\nSchema Graph Metrics (${schemaName}):`);
|
|
132
|
+
LogStatus(` Total entities: ${entities.length}`);
|
|
133
|
+
LogStatus(` Total relationships: ${totalRelationships}`);
|
|
134
|
+
LogStatus(` Average degree: ${avgDegree.toFixed(2)}`);
|
|
135
|
+
LogStatus(` Hub entities (>5 rels): ${hubCount}`);
|
|
128
136
|
if (hubCount > 0) {
|
|
129
|
-
|
|
137
|
+
LogStatus(` Largest hub degree: ${maxHubDegree}`);
|
|
130
138
|
}
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
139
|
+
LogStatus(` Base coverage: ${baseCoverage.toFixed(2)}`);
|
|
140
|
+
LogStatus(` Connectivity multiplier: ${connectivityMultiplier.toFixed(2)}`);
|
|
141
|
+
LogStatus(` → Target group count: ${targetGroupCount}\n`);
|
|
134
142
|
}
|
|
135
143
|
return {
|
|
136
144
|
schemaName,
|
|
@@ -149,12 +157,12 @@ class EntityGrouper {
|
|
|
149
157
|
*/
|
|
150
158
|
async callLLMForGrouping(schemaData, contextUser) {
|
|
151
159
|
// Get prompt entity from AIEngine
|
|
152
|
-
const prompt =
|
|
160
|
+
const prompt = AIEngine.Instance.Prompts.find(p => p.Name === this.promptName);
|
|
153
161
|
if (!prompt) {
|
|
154
162
|
throw new Error(`Prompt "${this.promptName}" not found. Ensure metadata has been synced to database.`);
|
|
155
163
|
}
|
|
156
164
|
// Execute with model/vendor overrides if specified in config
|
|
157
|
-
const result = await
|
|
165
|
+
const result = await executePromptWithOverrides(prompt, schemaData, contextUser, this.config);
|
|
158
166
|
if (!result.success) {
|
|
159
167
|
throw new Error(`LLM grouping failed: ${result.errorMessage || 'Unknown error'}`);
|
|
160
168
|
}
|
|
@@ -165,10 +173,30 @@ class EntityGrouper {
|
|
|
165
173
|
}
|
|
166
174
|
/**
|
|
167
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)
|
|
168
179
|
*/
|
|
169
|
-
validateAndConvertGroups(llmResponse, entities) {
|
|
180
|
+
validateAndConvertGroups(llmResponse, entities, schemaName) {
|
|
170
181
|
const entityMap = new Map(entities.map(e => [e.Name, e]));
|
|
171
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
|
+
}
|
|
172
200
|
for (const llmGroup of llmResponse.groups) {
|
|
173
201
|
try {
|
|
174
202
|
// Validate all entity names exist
|
|
@@ -176,21 +204,40 @@ class EntityGrouper {
|
|
|
176
204
|
.map(name => entityMap.get(name))
|
|
177
205
|
.filter((e) => e !== undefined);
|
|
178
206
|
if (groupEntities.length !== llmGroup.entities.length) {
|
|
179
|
-
|
|
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
|
+
}
|
|
180
213
|
continue;
|
|
181
214
|
}
|
|
182
215
|
// Validate primary entity exists
|
|
183
216
|
const primaryEntity = entityMap.get(llmGroup.primaryEntity);
|
|
184
217
|
if (!primaryEntity) {
|
|
185
|
-
|
|
218
|
+
if (this.config.verbose) {
|
|
219
|
+
LogStatus(` ✗ Group rejected - Primary entity not found: ${llmGroup.primaryEntity}`);
|
|
220
|
+
}
|
|
186
221
|
continue;
|
|
187
222
|
}
|
|
188
223
|
// Build relationships array (collect all relationships between entities in the group)
|
|
189
224
|
const relationships = this.extractRelationships(groupEntities);
|
|
190
225
|
// Validate connectivity (all entities must be reachable from primary)
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
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
|
+
}
|
|
194
241
|
}
|
|
195
242
|
// Create EntityGroup with LLM metadata
|
|
196
243
|
validGroups.push({
|
|
@@ -202,14 +249,23 @@ class EntityGrouper {
|
|
|
202
249
|
businessRationale: llmGroup.businessRationale,
|
|
203
250
|
expectedQuestionTypes: llmGroup.expectedQuestionTypes
|
|
204
251
|
});
|
|
252
|
+
if (this.config.verbose) {
|
|
253
|
+
LogStatus(` ✓ Group accepted: ${groupEntities.map(e => e.Name).join(', ')}`);
|
|
254
|
+
}
|
|
205
255
|
}
|
|
206
256
|
catch (error) {
|
|
207
|
-
|
|
257
|
+
if (this.config.verbose) {
|
|
258
|
+
LogStatus(` ✗ Group validation error: ${extractErrorMessage(error, 'Group Validation')}`);
|
|
259
|
+
}
|
|
208
260
|
}
|
|
209
261
|
}
|
|
210
|
-
if (
|
|
211
|
-
|
|
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');
|
|
212
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
|
|
213
269
|
return validGroups;
|
|
214
270
|
}
|
|
215
271
|
/**
|
|
@@ -283,5 +339,4 @@ class EntityGrouper {
|
|
|
283
339
|
return unique;
|
|
284
340
|
}
|
|
285
341
|
}
|
|
286
|
-
exports.EntityGrouper = EntityGrouper;
|
|
287
342
|
//# sourceMappingURL=EntityGrouper.js.map
|
|
@@ -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":"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"}
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* Transforms validated queries into MemberJunction metadata JSON files
|
|
5
5
|
* that can be synced to the database using mj-sync.
|
|
6
6
|
*/
|
|
7
|
-
import { ValidatedQuery, ExportResult, QueryCategoryInfo } from '../data/schema';
|
|
8
|
-
import { QueryGenConfig } from '../cli/config';
|
|
7
|
+
import { ValidatedQuery, ExportResult, QueryCategoryInfo } from '../data/schema.js';
|
|
8
|
+
import { QueryGenConfig } from '../cli/config.js';
|
|
9
9
|
/**
|
|
10
10
|
* MetadataExporter class
|
|
11
11
|
* Exports validated queries to MJ metadata JSON format
|
|
@@ -1,42 +1,16 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* MetadataExporter - Exports validated queries to MJ metadata format
|
|
4
3
|
*
|
|
5
4
|
* Transforms validated queries into MemberJunction metadata JSON files
|
|
6
5
|
* that can be synced to the database using mj-sync.
|
|
7
6
|
*/
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
11
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
12
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
13
|
-
}
|
|
14
|
-
Object.defineProperty(o, k2, desc);
|
|
15
|
-
}) : (function(o, m, k, k2) {
|
|
16
|
-
if (k2 === undefined) k2 = k;
|
|
17
|
-
o[k2] = m[k];
|
|
18
|
-
}));
|
|
19
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
20
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
21
|
-
}) : function(o, v) {
|
|
22
|
-
o["default"] = v;
|
|
23
|
-
});
|
|
24
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
25
|
-
if (mod && mod.__esModule) return mod;
|
|
26
|
-
var result = {};
|
|
27
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
28
|
-
__setModuleDefault(result, mod);
|
|
29
|
-
return result;
|
|
30
|
-
};
|
|
31
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
32
|
-
exports.MetadataExporter = void 0;
|
|
33
|
-
const fs_1 = require("fs");
|
|
34
|
-
const path = __importStar(require("path"));
|
|
7
|
+
import { promises as fs } from 'fs';
|
|
8
|
+
import * as path from 'path';
|
|
35
9
|
/**
|
|
36
10
|
* MetadataExporter class
|
|
37
11
|
* Exports validated queries to MJ metadata JSON format
|
|
38
12
|
*/
|
|
39
|
-
class MetadataExporter {
|
|
13
|
+
export class MetadataExporter {
|
|
40
14
|
/**
|
|
41
15
|
* Export queries to metadata JSON files
|
|
42
16
|
*
|
|
@@ -59,29 +33,29 @@ class MetadataExporter {
|
|
|
59
33
|
// 1. If externalizing SQL, create SQL directory and write files
|
|
60
34
|
if (config.externalizeSQLToFiles) {
|
|
61
35
|
const sqlDir = path.join(outputDirectory, 'SQL');
|
|
62
|
-
await
|
|
36
|
+
await fs.mkdir(sqlDir, { recursive: true });
|
|
63
37
|
for (const query of validatedQueries) {
|
|
64
38
|
const fileName = this.sanitizeFileName(query.query.queryName);
|
|
65
39
|
const sqlFilePath = path.join(sqlDir, `${fileName}.sql`);
|
|
66
|
-
await
|
|
40
|
+
await fs.writeFile(sqlFilePath, query.query.sql, 'utf-8');
|
|
67
41
|
}
|
|
68
42
|
}
|
|
69
43
|
// 2. Transform to MJ metadata format
|
|
70
44
|
const queryMetadata = validatedQueries.map(q => this.toQueryMetadata(q, config.externalizeSQLToFiles));
|
|
71
45
|
const categoryMetadata = uniqueCategories.map(c => this.toCategoryMetadata(c));
|
|
72
46
|
// 3. Ensure output directories exist
|
|
73
|
-
await
|
|
47
|
+
await fs.mkdir(outputDirectory, { recursive: true });
|
|
74
48
|
if (categoryDir !== outputDirectory) {
|
|
75
|
-
await
|
|
49
|
+
await fs.mkdir(categoryDir, { recursive: true });
|
|
76
50
|
}
|
|
77
51
|
// 3. Write categories file (if categories exist)
|
|
78
52
|
if (categoryMetadata.length > 0) {
|
|
79
53
|
const categoriesPath = path.join(categoryDir, `.query-categories-${timestamp}.json`);
|
|
80
|
-
await
|
|
54
|
+
await fs.writeFile(categoriesPath, JSON.stringify(categoryMetadata, null, 2), 'utf-8');
|
|
81
55
|
}
|
|
82
56
|
// 4. Write queries file
|
|
83
57
|
const outputPath = path.join(outputDirectory, `.queries-${timestamp}.json`);
|
|
84
|
-
await
|
|
58
|
+
await fs.writeFile(outputPath, JSON.stringify(queryMetadata, null, 2), 'utf-8');
|
|
85
59
|
return {
|
|
86
60
|
success: true,
|
|
87
61
|
outputPath,
|
|
@@ -175,5 +149,4 @@ class MetadataExporter {
|
|
|
175
149
|
.toLowerCase(); // Convert to lowercase for consistency
|
|
176
150
|
}
|
|
177
151
|
}
|
|
178
|
-
exports.MetadataExporter = MetadataExporter;
|
|
179
152
|
//# sourceMappingURL=MetadataExporter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MetadataExporter.js","sourceRoot":"","sources":["../../src/core/MetadataExporter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MetadataExporter.js","sourceRoot":"","sources":["../../src/core/MetadataExporter.ts"],"names":[],"mappings":"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"}
|