@memberjunction/query-gen 3.4.0 → 4.0.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 +6 -4
- package/CHANGELOG.md +33 -0
- package/dist/cli/commands/export.js +35 -65
- package/dist/cli/commands/export.js.map +1 -1
- package/dist/cli/commands/generate.js +70 -100
- 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.map +1 -1
- package/dist/cli/config.js +7 -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 +2 -2
- package/dist/core/EntityGrouper.js +23 -28
- 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 +17 -16
- package/src/cli/config.ts +8 -2
- package/src/cli/index.ts +4 -1
- package/tsconfig.json +5 -35
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* Entity helper utilities
|
|
4
3
|
*
|
|
5
4
|
* Helper functions for working with entity metadata and formatting for AI prompts
|
|
6
5
|
*/
|
|
7
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.formatEntityGroupForPrompt = exports.getRelationshipCount = exports.hasRelationships = exports.getForeignKeyFields = exports.getPrimaryKeyFields = exports.findEntityById = exports.formatEntityMetadataForPrompt = void 0;
|
|
9
6
|
/**
|
|
10
7
|
* Format entity metadata for AI prompt consumption
|
|
11
8
|
* Includes schema name, base view, fields, and relationships
|
|
@@ -16,7 +13,7 @@ exports.formatEntityGroupForPrompt = exports.getRelationshipCount = exports.hasR
|
|
|
16
13
|
* @param allEntities - All available entities for relationship lookups
|
|
17
14
|
* @returns Formatted entity metadata ready for AI prompts
|
|
18
15
|
*/
|
|
19
|
-
function formatEntityMetadataForPrompt(entity, allEntities) {
|
|
16
|
+
export function formatEntityMetadataForPrompt(entity, allEntities) {
|
|
20
17
|
return {
|
|
21
18
|
entityName: entity.Name,
|
|
22
19
|
description: entity.Description || '',
|
|
@@ -27,7 +24,6 @@ function formatEntityMetadataForPrompt(entity, allEntities) {
|
|
|
27
24
|
relationships: formatEntityRelationships(entity, allEntities),
|
|
28
25
|
};
|
|
29
26
|
}
|
|
30
|
-
exports.formatEntityMetadataForPrompt = formatEntityMetadataForPrompt;
|
|
31
27
|
/**
|
|
32
28
|
* Format entity fields for AI prompt
|
|
33
29
|
* Includes field metadata with types, descriptions, and relationship info
|
|
@@ -141,40 +137,35 @@ function findEntityByName(name, entities) {
|
|
|
141
137
|
/**
|
|
142
138
|
* Find entity by ID in array
|
|
143
139
|
*/
|
|
144
|
-
function findEntityById(id, entities) {
|
|
140
|
+
export function findEntityById(id, entities) {
|
|
145
141
|
return entities.find((e) => e.ID === id);
|
|
146
142
|
}
|
|
147
|
-
exports.findEntityById = findEntityById;
|
|
148
143
|
/**
|
|
149
144
|
* Get primary key field(s) for an entity
|
|
150
145
|
*/
|
|
151
|
-
function getPrimaryKeyFields(entity) {
|
|
146
|
+
export function getPrimaryKeyFields(entity) {
|
|
152
147
|
return entity.Fields.filter((f) => f.IsPrimaryKey);
|
|
153
148
|
}
|
|
154
|
-
exports.getPrimaryKeyFields = getPrimaryKeyFields;
|
|
155
149
|
/**
|
|
156
150
|
* Get foreign key fields for an entity
|
|
157
151
|
*/
|
|
158
|
-
function getForeignKeyFields(entity) {
|
|
152
|
+
export function getForeignKeyFields(entity) {
|
|
159
153
|
return entity.Fields.filter((f) => isForeignKeyField(f));
|
|
160
154
|
}
|
|
161
|
-
exports.getForeignKeyFields = getForeignKeyFields;
|
|
162
155
|
/**
|
|
163
156
|
* Check if an entity has any relationships
|
|
164
157
|
* Uses EntityInfo.RelatedEntities getter
|
|
165
158
|
*/
|
|
166
|
-
function hasRelationships(entity, allEntities) {
|
|
159
|
+
export function hasRelationships(entity, allEntities) {
|
|
167
160
|
return entity.RelatedEntities.length > 0;
|
|
168
161
|
}
|
|
169
|
-
exports.hasRelationships = hasRelationships;
|
|
170
162
|
/**
|
|
171
163
|
* Get count of relationships for an entity
|
|
172
164
|
* Uses EntityInfo.RelatedEntities getter
|
|
173
165
|
*/
|
|
174
|
-
function getRelationshipCount(entity, allEntities) {
|
|
166
|
+
export function getRelationshipCount(entity, allEntities) {
|
|
175
167
|
return entity.RelatedEntities.length;
|
|
176
168
|
}
|
|
177
|
-
exports.getRelationshipCount = getRelationshipCount;
|
|
178
169
|
/**
|
|
179
170
|
* Format an entire entity group for AI prompt consumption
|
|
180
171
|
* Converts all entities in the group to structured metadata
|
|
@@ -182,8 +173,7 @@ exports.getRelationshipCount = getRelationshipCount;
|
|
|
182
173
|
* @param entityGroup - Entity group to format
|
|
183
174
|
* @returns Array of formatted entity metadata for Nunjucks template
|
|
184
175
|
*/
|
|
185
|
-
function formatEntityGroupForPrompt(entityGroup) {
|
|
176
|
+
export function formatEntityGroupForPrompt(entityGroup) {
|
|
186
177
|
return entityGroup.entities.map((entity) => formatEntityMetadataForPrompt(entity, entityGroup.entities));
|
|
187
178
|
}
|
|
188
|
-
exports.formatEntityGroupForPrompt = formatEntityGroupForPrompt;
|
|
189
179
|
//# sourceMappingURL=entity-helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity-helpers.js","sourceRoot":"","sources":["../../src/utils/entity-helpers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"entity-helpers.js","sourceRoot":"","sources":["../../src/utils/entity-helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,13 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* Error handling utilities
|
|
4
3
|
*
|
|
5
4
|
* Standardized error handling functions following MJ patterns
|
|
6
5
|
*/
|
|
7
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.getPropertyOrDefault = exports.requireValue = exports.extractErrorMessage = void 0;
|
|
9
6
|
/**
|
|
10
7
|
* Extract error message from unknown error type
|
|
11
8
|
* Uses MJ's extractErrorMessage pattern
|
|
12
9
|
*/
|
|
13
|
-
function extractErrorMessage(error, context) {
|
|
10
|
+
export function extractErrorMessage(error, context) {
|
|
14
11
|
if (error instanceof Error) {
|
|
15
12
|
return `${context}: ${error.message}`;
|
|
16
13
|
}
|
|
@@ -19,23 +16,20 @@ function extractErrorMessage(error, context) {
|
|
|
19
16
|
}
|
|
20
17
|
return `${context}: Unknown error occurred`;
|
|
21
18
|
}
|
|
22
|
-
exports.extractErrorMessage = extractErrorMessage;
|
|
23
19
|
/**
|
|
24
20
|
* Validate required value is not null/undefined
|
|
25
21
|
*/
|
|
26
|
-
function requireValue(value, fieldName) {
|
|
22
|
+
export function requireValue(value, fieldName) {
|
|
27
23
|
if (value === null || value === undefined) {
|
|
28
24
|
throw new Error(`Required value '${fieldName}' is missing`);
|
|
29
25
|
}
|
|
30
26
|
return value;
|
|
31
27
|
}
|
|
32
|
-
exports.requireValue = requireValue;
|
|
33
28
|
/**
|
|
34
29
|
* Get property with fallback value
|
|
35
30
|
*/
|
|
36
|
-
function getPropertyOrDefault(obj, key, defaultValue) {
|
|
31
|
+
export function getPropertyOrDefault(obj, key, defaultValue) {
|
|
37
32
|
const value = obj[key];
|
|
38
33
|
return value !== undefined ? value : defaultValue;
|
|
39
34
|
}
|
|
40
|
-
exports.getPropertyOrDefault = getPropertyOrDefault;
|
|
41
35
|
//# sourceMappingURL=error-handlers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-handlers.js","sourceRoot":"","sources":["../../src/utils/error-handlers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"error-handlers.js","sourceRoot":"","sources":["../../src/utils/error-handlers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAc,EAAE,OAAe;IACjE,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,GAAG,OAAO,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;IACxC,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,GAAG,OAAO,KAAK,KAAK,EAAE,CAAC;IAChC,CAAC;IACD,OAAO,GAAG,OAAO,0BAA0B,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAI,KAA2B,EAAE,SAAiB;IAC5E,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,mBAAmB,SAAS,cAAc,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAClC,GAA4B,EAC5B,GAAW,EACX,YAAe;IAEf,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IACvB,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAE,KAAW,CAAC,CAAC,CAAC,YAAY,CAAC;AAC3D,CAAC"}
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* Graph visualization and entity metadata formatting utilities
|
|
4
3
|
*/
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.formatEntitiesForPrompt = exports.generateMermaidDiagram = exports.generateRelationshipGraph = void 0;
|
|
7
4
|
/**
|
|
8
5
|
* Generates a simple text-based relationship graph for LLM prompts
|
|
9
6
|
*
|
|
@@ -14,7 +11,7 @@ exports.formatEntitiesForPrompt = exports.generateMermaidDiagram = exports.gener
|
|
|
14
11
|
* Products: → OrderDetails, → Categories
|
|
15
12
|
* ```
|
|
16
13
|
*/
|
|
17
|
-
function generateRelationshipGraph(entities) {
|
|
14
|
+
export function generateRelationshipGraph(entities) {
|
|
18
15
|
const lines = [];
|
|
19
16
|
for (const entity of entities) {
|
|
20
17
|
if (entity.RelatedEntities.length === 0) {
|
|
@@ -28,7 +25,6 @@ function generateRelationshipGraph(entities) {
|
|
|
28
25
|
}
|
|
29
26
|
return lines.join('\n');
|
|
30
27
|
}
|
|
31
|
-
exports.generateRelationshipGraph = generateRelationshipGraph;
|
|
32
28
|
/**
|
|
33
29
|
* Generates a Mermaid diagram for richer visualization
|
|
34
30
|
*
|
|
@@ -40,7 +36,7 @@ exports.generateRelationshipGraph = generateRelationshipGraph;
|
|
|
40
36
|
* Orders[Orders] --> OrderDetails[OrderDetails]
|
|
41
37
|
* ```
|
|
42
38
|
*/
|
|
43
|
-
function generateMermaidDiagram(entities) {
|
|
39
|
+
export function generateMermaidDiagram(entities) {
|
|
44
40
|
const lines = ['graph LR'];
|
|
45
41
|
const processedPairs = new Set();
|
|
46
42
|
for (const entity of entities) {
|
|
@@ -56,7 +52,6 @@ function generateMermaidDiagram(entities) {
|
|
|
56
52
|
}
|
|
57
53
|
return lines.join('\n');
|
|
58
54
|
}
|
|
59
|
-
exports.generateMermaidDiagram = generateMermaidDiagram;
|
|
60
55
|
/**
|
|
61
56
|
* Formats entity metadata for LLM prompt (concise version with key info)
|
|
62
57
|
*
|
|
@@ -66,7 +61,7 @@ exports.generateMermaidDiagram = generateMermaidDiagram;
|
|
|
66
61
|
* - Field count (as a proxy for data richness)
|
|
67
62
|
* - Related entities with relationship types
|
|
68
63
|
*/
|
|
69
|
-
function formatEntitiesForPrompt(entities) {
|
|
64
|
+
export function formatEntitiesForPrompt(entities) {
|
|
70
65
|
return entities.map(entity => ({
|
|
71
66
|
Name: entity.Name,
|
|
72
67
|
Description: entity.Description || 'No description available',
|
|
@@ -78,5 +73,4 @@ function formatEntitiesForPrompt(entities) {
|
|
|
78
73
|
}))
|
|
79
74
|
}));
|
|
80
75
|
}
|
|
81
|
-
exports.formatEntitiesForPrompt = formatEntitiesForPrompt;
|
|
82
76
|
//# sourceMappingURL=graph-helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph-helpers.js","sourceRoot":"","sources":["../../src/utils/graph-helpers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"graph-helpers.js","sourceRoot":"","sources":["../../src/utils/graph-helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAeH;;;;;;;;;GASG;AACH,MAAM,UAAU,yBAAyB,CAAC,QAAsB;IAC9D,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC9B,IAAI,MAAM,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxC,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,sBAAsB,CAAC,CAAC;YACjD,SAAS;QACX,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,CAAC,eAAe;aACrC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,aAAa,EAAE,CAAC;aACpC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,sBAAsB,CAAC,QAAsB;IAC3D,MAAM,KAAK,GAAG,CAAC,UAAU,CAAC,CAAC;IAC3B,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;IAEzC,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC9B,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAEvD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;YACzC,MAAM,eAAe,GAAG,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAC9D,MAAM,OAAO,GAAG,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAEnE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBACjC,KAAK,CAAC,IAAI,CAAC,KAAK,cAAc,IAAI,MAAM,CAAC,IAAI,SAAS,eAAe,IAAI,GAAG,CAAC,aAAa,GAAG,CAAC,CAAC;gBAC/F,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,uBAAuB,CAAC,QAAsB;IAC5D,OAAO,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC7B,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,0BAA0B;QAC7D,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,KAAK;QACtC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM;QAChC,eAAe,EAAE,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClD,IAAI,EAAE,GAAG,CAAC,aAAa;YACvB,IAAI,EAAE,GAAG,CAAC,IAAI;SACf,CAAC,CAAC;KACJ,CAAC,CAAC,CAAC;AACN,CAAC"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { UserInfo } from '@memberjunction/core';
|
|
5
5
|
import { AIPromptEntityExtended } from '@memberjunction/ai-core-plus';
|
|
6
|
-
import { QueryGenConfig } from '../cli/config';
|
|
6
|
+
import { QueryGenConfig } from '../cli/config.js';
|
|
7
7
|
/**
|
|
8
8
|
* Execute a prompt with optional model/vendor overrides from QueryGenConfig
|
|
9
9
|
*
|
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* Prompt execution helpers with model/vendor override support
|
|
4
3
|
*/
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const ai_prompts_1 = require("@memberjunction/ai-prompts");
|
|
9
|
-
const aiengine_1 = require("@memberjunction/aiengine");
|
|
4
|
+
import { AIPromptParams } from '@memberjunction/ai-core-plus';
|
|
5
|
+
import { AIPromptRunner } from '@memberjunction/ai-prompts';
|
|
6
|
+
import { AIEngine } from '@memberjunction/aiengine';
|
|
10
7
|
/**
|
|
11
8
|
* Execute a prompt with optional model/vendor overrides from QueryGenConfig
|
|
12
9
|
*
|
|
@@ -20,8 +17,8 @@ const aiengine_1 = require("@memberjunction/aiengine");
|
|
|
20
17
|
* @param config - QueryGen configuration (for model/vendor overrides)
|
|
21
18
|
* @returns Promise resolving to the prompt result
|
|
22
19
|
*/
|
|
23
|
-
async function executePromptWithOverrides(prompt, data, contextUser, config) {
|
|
24
|
-
const promptParams = new
|
|
20
|
+
export async function executePromptWithOverrides(prompt, data, contextUser, config) {
|
|
21
|
+
const promptParams = new AIPromptParams();
|
|
25
22
|
promptParams.prompt = prompt;
|
|
26
23
|
promptParams.data = data;
|
|
27
24
|
promptParams.contextUser = contextUser;
|
|
@@ -33,10 +30,9 @@ async function executePromptWithOverrides(prompt, data, contextUser, config) {
|
|
|
33
30
|
promptParams.override = overrideIds;
|
|
34
31
|
}
|
|
35
32
|
}
|
|
36
|
-
const runner = new
|
|
33
|
+
const runner = new AIPromptRunner();
|
|
37
34
|
return await runner.ExecutePrompt(promptParams);
|
|
38
35
|
}
|
|
39
|
-
exports.executePromptWithOverrides = executePromptWithOverrides;
|
|
40
36
|
/**
|
|
41
37
|
* Resolve model/vendor names to IDs for AIPromptParams.override
|
|
42
38
|
*
|
|
@@ -49,14 +45,14 @@ function resolveModelVendorOverrides(config) {
|
|
|
49
45
|
const result = {};
|
|
50
46
|
// Look up model ID from AIEngine cache if modelOverride is set
|
|
51
47
|
if (config.modelOverride) {
|
|
52
|
-
const model =
|
|
48
|
+
const model = AIEngine.Instance.Models.find(m => m.Name === config.modelOverride);
|
|
53
49
|
if (model && model.ID) {
|
|
54
50
|
result.modelId = model.ID;
|
|
55
51
|
}
|
|
56
52
|
}
|
|
57
53
|
// Look up vendor ID from AIEngine cache if vendorOverride is set
|
|
58
54
|
if (config.vendorOverride) {
|
|
59
|
-
const vendor =
|
|
55
|
+
const vendor = AIEngine.Instance.Vendors.find(v => v.Name === config.vendorOverride);
|
|
60
56
|
if (vendor && vendor.ID) {
|
|
61
57
|
result.vendorId = vendor.ID;
|
|
62
58
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt-helpers.js","sourceRoot":"","sources":["../../src/utils/prompt-helpers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"prompt-helpers.js","sourceRoot":"","sources":["../../src/utils/prompt-helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAG5D,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAGpD;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,MAA8B,EAC9B,IAA6B,EAC7B,WAAqB,EACrB,MAAsB;IAEtB,MAAM,YAAY,GAAG,IAAI,cAAc,EAAE,CAAC;IAC1C,YAAY,CAAC,MAAM,GAAG,MAAM,CAAC;IAC7B,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC;IACzB,YAAY,CAAC,WAAW,GAAG,WAAW,CAAC;IACvC,YAAY,CAAC,cAAc,GAAG,KAAK,CAAC;IAEpC,sEAAsE;IACtE,IAAI,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;QAClD,MAAM,WAAW,GAAG,2BAA2B,CAAC,MAAM,CAAC,CAAC;QACxD,IAAI,WAAW,CAAC,OAAO,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAC;YAChD,YAAY,CAAC,QAAQ,GAAG,WAAW,CAAC;QACtC,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;IACpC,OAAO,MAAM,MAAM,CAAC,aAAa,CAAI,YAAY,CAAC,CAAC;AACrD,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,2BAA2B,CAClC,MAAsB;IAEtB,MAAM,MAAM,GAA4C,EAAE,CAAC;IAE3D,+DAA+D;IAC/D,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,aAAa,CAAC,CAAC;QAClF,IAAI,KAAK,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC;YACtB,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,EAAE,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,iEAAiE;IACjE,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,cAAc,CAAC,CAAC;QACrF,IAAI,MAAM,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;YACxB,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* User helper utilities for QueryGen CLI operations
|
|
4
3
|
*/
|
|
5
|
-
|
|
6
|
-
exports.getSystemUser = void 0;
|
|
7
|
-
const sqlserver_dataprovider_1 = require("@memberjunction/sqlserver-dataprovider");
|
|
4
|
+
import { UserCache } from '@memberjunction/sqlserver-dataprovider';
|
|
8
5
|
/**
|
|
9
6
|
* Get the system user from UserCache
|
|
10
7
|
*
|
|
@@ -14,8 +11,8 @@ const sqlserver_dataprovider_1 = require("@memberjunction/sqlserver-dataprovider
|
|
|
14
11
|
* @returns The System UserInfo object from the cache
|
|
15
12
|
* @throws Error if System user is not found in cache or doesn't have Developer role
|
|
16
13
|
*/
|
|
17
|
-
function getSystemUser() {
|
|
18
|
-
const sysUser =
|
|
14
|
+
export function getSystemUser() {
|
|
15
|
+
const sysUser = UserCache.Instance.UserByName("System", false);
|
|
19
16
|
if (!sysUser) {
|
|
20
17
|
throw new Error("System user not found in cache. Ensure the database provider is initialized " +
|
|
21
18
|
"before running QueryGen commands (e.g., via 'mj querygen' which initializes the provider).");
|
|
@@ -28,5 +25,4 @@ function getSystemUser() {
|
|
|
28
25
|
}
|
|
29
26
|
return sysUser;
|
|
30
27
|
}
|
|
31
|
-
exports.getSystemUser = getSystemUser;
|
|
32
28
|
//# sourceMappingURL=user-helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-helpers.js","sourceRoot":"","sources":["../../src/utils/user-helpers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"user-helpers.js","sourceRoot":"","sources":["../../src/utils/user-helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AAEnE;;;;;;;;GAQG;AACH,MAAM,UAAU,aAAa;IAC3B,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC/D,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,8EAA8E;YAC9E,4FAA4F,CAC7F,CAAC;IACJ,CAAC;IAED,kDAAkD;IAClD,MAAM,gBAAgB,GAAG,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,CAClE,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,WAAW,CAC/D,CAAC;IAEF,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CACb,kDAAkD;YAClD,8EAA8E,CAC/E,CAAC;IACJ,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Wraps AIEngine embedding functionality for QueryGen use cases.
|
|
5
5
|
* Generates embeddings for multiple fields (name, userQuestion, description, technicalDescription).
|
|
6
6
|
*/
|
|
7
|
-
import { QueryEmbeddings, GoldenQuery, EmbeddedGoldenQuery } from '../data/schema';
|
|
7
|
+
import { QueryEmbeddings, GoldenQuery, EmbeddedGoldenQuery } from '../data/schema.js';
|
|
8
8
|
/**
|
|
9
9
|
* Service for generating embeddings using AI Engine
|
|
10
10
|
*/
|
|
@@ -1,18 +1,14 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* EmbeddingService - Generates embeddings for queries and golden queries
|
|
4
3
|
*
|
|
5
4
|
* Wraps AIEngine embedding functionality for QueryGen use cases.
|
|
6
5
|
* Generates embeddings for multiple fields (name, userQuestion, description, technicalDescription).
|
|
7
6
|
*/
|
|
8
|
-
|
|
9
|
-
exports.EmbeddingService = void 0;
|
|
10
|
-
const aiengine_1 = require("@memberjunction/aiengine");
|
|
7
|
+
import { AIEngine } from '@memberjunction/aiengine';
|
|
11
8
|
/**
|
|
12
9
|
* Service for generating embeddings using AI Engine
|
|
13
10
|
*/
|
|
14
|
-
class EmbeddingService {
|
|
15
|
-
modelName;
|
|
11
|
+
export class EmbeddingService {
|
|
16
12
|
/**
|
|
17
13
|
* Create an EmbeddingService with the specified embedding model
|
|
18
14
|
*
|
|
@@ -33,7 +29,7 @@ class EmbeddingService {
|
|
|
33
29
|
* @returns Embeddings for all fields
|
|
34
30
|
*/
|
|
35
31
|
async embedQuery(query) {
|
|
36
|
-
const aiEngine =
|
|
32
|
+
const aiEngine = AIEngine.Instance;
|
|
37
33
|
// Generate embeddings for each field in parallel
|
|
38
34
|
const [userQuestionResult, descResult, techDescResult] = await Promise.all([
|
|
39
35
|
aiEngine.EmbedTextLocal(query.userQuestion),
|
|
@@ -86,5 +82,4 @@ class EmbeddingService {
|
|
|
86
82
|
return embeddings;
|
|
87
83
|
}
|
|
88
84
|
}
|
|
89
|
-
exports.EmbeddingService = EmbeddingService;
|
|
90
85
|
//# sourceMappingURL=EmbeddingService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmbeddingService.js","sourceRoot":"","sources":["../../src/vectors/EmbeddingService.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"EmbeddingService.js","sourceRoot":"","sources":["../../src/vectors/EmbeddingService.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAGpD;;GAEG;AACH,MAAM,OAAO,gBAAgB;IAG3B;;;;OAIG;IACH,YAAY,YAAoB,wBAAwB;QACtD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,UAAU,CAAC,KAIhB;QACC,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;QAEnC,iDAAiD;QACjD,MAAM,CAAC,kBAAkB,EAAE,UAAU,EAAE,cAAc,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACzE,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,YAAY,CAAC;YAC3C,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,WAAW,CAAC;YAC1C,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,oBAAoB,CAAC;SACpD,CAAC,CAAC;QAEH,OAAO;YACL,YAAY,EAAE,kBAAkB,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;YACrD,WAAW,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;YAC5C,oBAAoB,EAAE,cAAc,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;SAC1D,CAAC;IACJ,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,kBAAkB,CAAC,aAA4B;QACnD,MAAM,QAAQ,GAA0B,EAAE,CAAC;QAE3C,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;YAClC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC;gBACvC,YAAY,EAAE,KAAK,CAAC,YAAY;gBAChC,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,oBAAoB,EAAE,KAAK,CAAC,oBAAoB;aACjD,CAAC,CAAC;YAEH,QAAQ,CAAC,IAAI,CAAC;gBACZ,KAAK;gBACL,UAAU;aACX,CAAC,CAAC;QACL,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,YAAY,CAChB,OAIE;QAEF,MAAM,UAAU,GAAsB,EAAE,CAAC;QAEzC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAC/C,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7B,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;CACF"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Implements weighted similarity search across multiple fields (name, userQuestion,
|
|
5
5
|
* description, technicalDescription) to find the most relevant few-shot examples.
|
|
6
6
|
*/
|
|
7
|
-
import { QueryEmbeddings, EmbeddedGoldenQuery, SimilarQuery } from '../data/schema';
|
|
7
|
+
import { QueryEmbeddings, EmbeddedGoldenQuery, SimilarQuery } from '../data/schema.js';
|
|
8
8
|
import { SimpleVectorService } from '@memberjunction/ai-vectors-memory';
|
|
9
9
|
/**
|
|
10
10
|
* SimilaritySearch class
|
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* SimilaritySearch - Finds similar golden queries using weighted cosine similarity
|
|
4
3
|
*
|
|
5
4
|
* Implements weighted similarity search across multiple fields (name, userQuestion,
|
|
6
5
|
* description, technicalDescription) to find the most relevant few-shot examples.
|
|
7
6
|
*/
|
|
8
|
-
|
|
9
|
-
exports.SimilaritySearch = void 0;
|
|
10
|
-
const ai_vectors_memory_1 = require("@memberjunction/ai-vectors-memory");
|
|
7
|
+
import { SimpleVectorService } from '@memberjunction/ai-vectors-memory';
|
|
11
8
|
/**
|
|
12
9
|
* SimilaritySearch class
|
|
13
10
|
* Finds most similar golden queries using weighted cosine similarity across multiple fields
|
|
14
11
|
*/
|
|
15
|
-
class SimilaritySearch extends
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
12
|
+
export class SimilaritySearch extends SimpleVectorService {
|
|
13
|
+
constructor() {
|
|
14
|
+
super(...arguments);
|
|
15
|
+
/**
|
|
16
|
+
* Weights for each field in similarity calculation
|
|
17
|
+
* Total weights sum to 1.0
|
|
18
|
+
*
|
|
19
|
+
* Weight distribution prioritizes technical specifications:
|
|
20
|
+
* - userQuestion: 0.20 (less important - natural language is variable)
|
|
21
|
+
* - description: 0.40 (high-level business logic matching)
|
|
22
|
+
* - technicalDescription: 0.40 (technical implementation details)
|
|
23
|
+
*/
|
|
24
|
+
this.weights = {
|
|
25
|
+
userQuestion: 0.20,
|
|
26
|
+
description: 0.40,
|
|
27
|
+
technicalDescription: 0.40
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
30
|
/**
|
|
31
31
|
* Find similar golden queries using weighted cosine similarity
|
|
32
32
|
*
|
|
@@ -81,5 +81,4 @@ class SimilaritySearch extends ai_vectors_memory_1.SimpleVectorService {
|
|
|
81
81
|
.slice(0, topK);
|
|
82
82
|
}
|
|
83
83
|
}
|
|
84
|
-
exports.SimilaritySearch = SimilaritySearch;
|
|
85
84
|
//# sourceMappingURL=SimilaritySearch.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SimilaritySearch.js","sourceRoot":"","sources":["../../src/vectors/SimilaritySearch.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SimilaritySearch.js","sourceRoot":"","sources":["../../src/vectors/SimilaritySearch.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAYxE;;;GAGG;AACH,MAAM,OAAO,gBAAiB,SAAQ,mBAAmB;IAAzD;;QACE;;;;;;;;WAQG;QACc,YAAO,GAAiB;YACvC,YAAY,EAAE,IAAI;YAClB,WAAW,EAAE,IAAI;YACjB,oBAAoB,EAAE,IAAI;SAC3B,CAAC;IAqEJ,CAAC;IAnEC;;;;;;;;;;OAUG;IACH,KAAK,CAAC,kBAAkB,CACtB,eAAgC,EAChC,gBAAuC,EACvC,OAAe,CAAC;QAEhB,sDAAsD;QACtD,MAAM,YAAY,GAAG,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YACjD,MAAM,WAAW,GAAG,IAAI,CAAC,0BAA0B,CAAC,eAAe,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;YACxF,MAAM,aAAa,GAAG,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC;YAE/D,OAAO;gBACL,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,UAAU,EAAE,aAAa;gBACzB,WAAW;aACZ,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,sDAAsD;QACtD,OAAO,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACK,0BAA0B,CAChC,eAAgC,EAChC,gBAAiC;QAEjC,OAAO;YACL,eAAe,EAAE,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,YAAY,EAAE,gBAAgB,CAAC,YAAY,CAAC;YACnG,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,WAAW,EAAE,gBAAgB,CAAC,WAAW,CAAC;YACzF,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,oBAAoB,EAAE,gBAAgB,CAAC,oBAAoB,CAAC;SAChH,CAAC;IACJ,CAAC;IAED;;;OAGG;IACK,sBAAsB,CAAC,WAAwC;QACrE,OAAO,CACL,WAAW,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY;YACvD,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW;YAC9C,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAC5D,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,UAAU,CAAC,YAA4B,EAAE,IAAY;QAC3D,OAAO,YAAY;aAChB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC;aAC3C,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACpB,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memberjunction/query-gen",
|
|
3
|
-
"
|
|
3
|
+
"type": "module",
|
|
4
|
+
"version": "4.0.0",
|
|
4
5
|
"description": "AI-powered generation of domain-specific SQL query templates with automatic testing, refinement, and metadata export",
|
|
5
6
|
"main": "dist/index.js",
|
|
6
7
|
"types": "dist/index.d.ts",
|
|
@@ -8,7 +9,7 @@
|
|
|
8
9
|
"mj-querygen": "./dist/cli/index.js"
|
|
9
10
|
},
|
|
10
11
|
"scripts": {
|
|
11
|
-
"build": "tsc",
|
|
12
|
+
"build": "tsc && tsc-alias -f",
|
|
12
13
|
"watch": "tsc --watch",
|
|
13
14
|
"clean": "rimraf dist",
|
|
14
15
|
"lint": "eslint src --ext .ts",
|
|
@@ -25,25 +26,25 @@
|
|
|
25
26
|
"author": "MemberJunction",
|
|
26
27
|
"license": "MIT",
|
|
27
28
|
"dependencies": {
|
|
28
|
-
"@memberjunction/ai": "
|
|
29
|
-
"@memberjunction/ai-core-plus": "
|
|
30
|
-
"@memberjunction/aiengine": "
|
|
31
|
-
"@memberjunction/ai-prompts": "
|
|
32
|
-
"@memberjunction/ai-vectors-memory": "
|
|
33
|
-
"@memberjunction/core": "
|
|
34
|
-
"@memberjunction/core-entities": "
|
|
35
|
-
"@memberjunction/global": "
|
|
36
|
-
"@memberjunction/sqlserver-dataprovider": "
|
|
37
|
-
"chalk": "^
|
|
38
|
-
"commander": "^
|
|
29
|
+
"@memberjunction/ai": "4.0.0",
|
|
30
|
+
"@memberjunction/ai-core-plus": "4.0.0",
|
|
31
|
+
"@memberjunction/aiengine": "4.0.0",
|
|
32
|
+
"@memberjunction/ai-prompts": "4.0.0",
|
|
33
|
+
"@memberjunction/ai-vectors-memory": "4.0.0",
|
|
34
|
+
"@memberjunction/core": "4.0.0",
|
|
35
|
+
"@memberjunction/core-entities": "4.0.0",
|
|
36
|
+
"@memberjunction/global": "4.0.0",
|
|
37
|
+
"@memberjunction/sqlserver-dataprovider": "4.0.0",
|
|
38
|
+
"chalk": "^5.6.2",
|
|
39
|
+
"commander": "^14.0.3",
|
|
39
40
|
"nunjucks": "^3.2.4",
|
|
40
|
-
"ora": "^
|
|
41
|
+
"ora": "^9.3.0"
|
|
41
42
|
},
|
|
42
43
|
"devDependencies": {
|
|
43
|
-
"@types/node": "
|
|
44
|
+
"@types/node": "24.10.11",
|
|
44
45
|
"@types/nunjucks": "^3.2.6",
|
|
45
46
|
"ts-node-dev": "^2.0.0",
|
|
46
|
-
"typescript": "^5.
|
|
47
|
+
"typescript": "^5.9.3"
|
|
47
48
|
},
|
|
48
49
|
"repository": {
|
|
49
50
|
"type": "git",
|
package/src/cli/config.ts
CHANGED
|
@@ -4,6 +4,13 @@
|
|
|
4
4
|
* Loads configuration from mj.config.cjs and merges with CLI options
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
+
import fs from 'fs';
|
|
8
|
+
import path from 'path';
|
|
9
|
+
import { createRequire } from 'node:module';
|
|
10
|
+
|
|
11
|
+
// Use createRequire to load CommonJS config files
|
|
12
|
+
const require = createRequire(import.meta.url);
|
|
13
|
+
|
|
7
14
|
/**
|
|
8
15
|
* QueryGen configuration options
|
|
9
16
|
*/
|
|
@@ -170,8 +177,7 @@ export function loadConfig(cliOptions: Record<string, unknown>): QueryGenConfig
|
|
|
170
177
|
*/
|
|
171
178
|
function loadMjConfig(): { queryGen?: Partial<QueryGenConfig> } | null {
|
|
172
179
|
try {
|
|
173
|
-
const configPath =
|
|
174
|
-
const fs = require('fs');
|
|
180
|
+
const configPath = path.join(process.cwd(), 'mj.config.cjs');
|
|
175
181
|
if (fs.existsSync(configPath)) {
|
|
176
182
|
return require(configPath);
|
|
177
183
|
}
|
package/src/cli/index.ts
CHANGED
|
@@ -11,11 +11,14 @@
|
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
13
|
import { Command } from 'commander';
|
|
14
|
+
import { createRequire } from 'node:module';
|
|
14
15
|
import { generateCommand } from './commands/generate';
|
|
15
16
|
import { validateCommand } from './commands/validate';
|
|
16
17
|
import { exportCommand } from './commands/export';
|
|
17
18
|
|
|
18
|
-
|
|
19
|
+
// Use createRequire to import JSON (compatible with ESM)
|
|
20
|
+
const require = createRequire(import.meta.url);
|
|
21
|
+
const packageJson = require('../../package.json') as { version: string };
|
|
19
22
|
|
|
20
23
|
const program = new Command();
|
|
21
24
|
|
package/tsconfig.json
CHANGED
|
@@ -1,39 +1,9 @@
|
|
|
1
1
|
{
|
|
2
|
+
"extends": "../../tsconfig.server.json",
|
|
2
3
|
"compilerOptions": {
|
|
3
|
-
"
|
|
4
|
-
"
|
|
5
|
-
"lib": ["ES2022"],
|
|
6
|
-
"outDir": "./dist",
|
|
7
|
-
"rootDir": "./src",
|
|
8
|
-
"declaration": true,
|
|
9
|
-
"declarationMap": true,
|
|
10
|
-
"sourceMap": true,
|
|
11
|
-
"strict": true,
|
|
12
|
-
"esModuleInterop": true,
|
|
13
|
-
"skipLibCheck": true,
|
|
14
|
-
"forceConsistentCasingInFileNames": true,
|
|
15
|
-
"resolveJsonModule": true,
|
|
16
|
-
"moduleResolution": "node",
|
|
17
|
-
"noImplicitAny": true,
|
|
18
|
-
"strictNullChecks": true,
|
|
19
|
-
"strictFunctionTypes": true,
|
|
20
|
-
"strictBindCallApply": true,
|
|
21
|
-
"strictPropertyInitialization": true,
|
|
22
|
-
"noImplicitThis": true,
|
|
23
|
-
"alwaysStrict": true,
|
|
24
|
-
"noUnusedLocals": false,
|
|
25
|
-
"noUnusedParameters": false,
|
|
26
|
-
"noImplicitReturns": true,
|
|
27
|
-
"noFallthroughCasesInSwitch": true,
|
|
28
|
-
"allowSyntheticDefaultImports": true
|
|
4
|
+
"outDir": "dist",
|
|
5
|
+
"rootDir": "src"
|
|
29
6
|
},
|
|
30
|
-
"include": [
|
|
31
|
-
|
|
32
|
-
],
|
|
33
|
-
"exclude": [
|
|
34
|
-
"node_modules",
|
|
35
|
-
"dist",
|
|
36
|
-
"**/*.spec.ts",
|
|
37
|
-
"**/*.test.ts"
|
|
38
|
-
]
|
|
7
|
+
"include": ["src/**/*"],
|
|
8
|
+
"exclude": ["node_modules"]
|
|
39
9
|
}
|