@memberjunction/query-gen 3.3.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 +52 -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 +18 -17
- package/src/cli/config.ts +8 -2
- package/src/cli/index.ts +4 -1
- package/tsconfig.json +5 -35
- package/typedoc.json +9 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryTester.js","sourceRoot":"","sources":["../../src/core/QueryTester.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"QueryTester.js","sourceRoot":"","sources":["../../src/core/QueryTester.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
* based on business questions and similar golden query examples.
|
|
6
6
|
*/
|
|
7
7
|
import { UserInfo } from '@memberjunction/core';
|
|
8
|
-
import { QueryGenConfig } from '../cli/config';
|
|
9
|
-
import { BusinessQuestion, GeneratedQuery, EntityMetadataForPrompt, GoldenQuery } from '../data/schema';
|
|
8
|
+
import { QueryGenConfig } from '../cli/config.js';
|
|
9
|
+
import { BusinessQuestion, GeneratedQuery, EntityMetadataForPrompt, GoldenQuery } from '../data/schema.js';
|
|
10
10
|
/**
|
|
11
11
|
* QueryWriter class
|
|
12
12
|
* Generates Nunjucks SQL query templates using AI with few-shot learning
|
package/dist/core/QueryWriter.js
CHANGED
|
@@ -1,24 +1,19 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* QueryWriter - Generates SQL query templates using AI with few-shot learning
|
|
4
3
|
*
|
|
5
4
|
* Uses the SQL Query Writer AI prompt to generate Nunjucks SQL templates
|
|
6
5
|
* based on business questions and similar golden query examples.
|
|
7
6
|
*/
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const prompt_helpers_1 = require("../utils/prompt-helpers");
|
|
14
|
-
const PromptNames_1 = require("../prompts/PromptNames");
|
|
7
|
+
import { AIEngine } from '@memberjunction/aiengine';
|
|
8
|
+
import { LogStatus } from '@memberjunction/core';
|
|
9
|
+
import { extractErrorMessage } from '../utils/error-handlers.js';
|
|
10
|
+
import { executePromptWithOverrides } from '../utils/prompt-helpers.js';
|
|
11
|
+
import { PROMPT_SQL_QUERY_WRITER } from '../prompts/PromptNames.js';
|
|
15
12
|
/**
|
|
16
13
|
* QueryWriter class
|
|
17
14
|
* Generates Nunjucks SQL query templates using AI with few-shot learning
|
|
18
15
|
*/
|
|
19
|
-
class QueryWriter {
|
|
20
|
-
contextUser;
|
|
21
|
-
config;
|
|
16
|
+
export class QueryWriter {
|
|
22
17
|
constructor(contextUser, config) {
|
|
23
18
|
this.contextUser = contextUser;
|
|
24
19
|
this.config = config;
|
|
@@ -35,10 +30,10 @@ class QueryWriter {
|
|
|
35
30
|
async generateQuery(businessQuestion, entityMetadata, fewShotExamples) {
|
|
36
31
|
try {
|
|
37
32
|
// Ensure AIEngine is configured
|
|
38
|
-
const aiEngine =
|
|
33
|
+
const aiEngine = AIEngine.Instance;
|
|
39
34
|
await aiEngine.Config(false, this.contextUser);
|
|
40
35
|
// Find the SQL Query Writer prompt
|
|
41
|
-
const prompt = this.findPromptByName(aiEngine,
|
|
36
|
+
const prompt = this.findPromptByName(aiEngine, PROMPT_SQL_QUERY_WRITER);
|
|
42
37
|
// Prepare prompt data
|
|
43
38
|
const promptData = {
|
|
44
39
|
userQuestion: businessQuestion.userQuestion,
|
|
@@ -54,7 +49,7 @@ class QueryWriter {
|
|
|
54
49
|
return generatedQuery;
|
|
55
50
|
}
|
|
56
51
|
catch (error) {
|
|
57
|
-
throw new Error(
|
|
52
|
+
throw new Error(extractErrorMessage(error, 'QueryWriter.generateQuery'));
|
|
58
53
|
}
|
|
59
54
|
}
|
|
60
55
|
/**
|
|
@@ -79,7 +74,7 @@ class QueryWriter {
|
|
|
79
74
|
for (let attempt = 0; attempt <= maxRetries; attempt++) {
|
|
80
75
|
try {
|
|
81
76
|
// Execute AI prompt
|
|
82
|
-
const result = await
|
|
77
|
+
const result = await executePromptWithOverrides(prompt, promptData, this.contextUser, this.config);
|
|
83
78
|
if (!result || !result.success) {
|
|
84
79
|
throw new Error(`AI prompt execution failed: ${result?.errorMessage || 'Unknown error'}`);
|
|
85
80
|
}
|
|
@@ -101,8 +96,8 @@ class QueryWriter {
|
|
|
101
96
|
}
|
|
102
97
|
// Log retry attempt
|
|
103
98
|
if (this.config.verbose) {
|
|
104
|
-
|
|
105
|
-
|
|
99
|
+
LogStatus(`⚠️ Query validation failed on attempt ${attempt + 1}/${maxRetries + 1}: ${lastError.message}`);
|
|
100
|
+
LogStatus(` Retrying with validation feedback...`);
|
|
106
101
|
}
|
|
107
102
|
// Add validation feedback to the prompt data for next attempt
|
|
108
103
|
// This helps the LLM correct its mistakes
|
|
@@ -180,5 +175,4 @@ class QueryWriter {
|
|
|
180
175
|
}
|
|
181
176
|
}
|
|
182
177
|
}
|
|
183
|
-
exports.QueryWriter = QueryWriter;
|
|
184
178
|
//# sourceMappingURL=QueryWriter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryWriter.js","sourceRoot":"","sources":["../../src/core/QueryWriter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"QueryWriter.js","sourceRoot":"","sources":["../../src/core/QueryWriter.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
* business questions per entity group that can be answered with SQL.
|
|
6
6
|
*/
|
|
7
7
|
import { UserInfo } from '@memberjunction/core';
|
|
8
|
-
import { QueryGenConfig } from '../cli/config';
|
|
9
|
-
import { EntityGroup, BusinessQuestion } from '../data/schema';
|
|
8
|
+
import { QueryGenConfig } from '../cli/config.js';
|
|
9
|
+
import { EntityGroup, BusinessQuestion } from '../data/schema.js';
|
|
10
10
|
/**
|
|
11
11
|
* QuestionGenerator class
|
|
12
12
|
* Generates domain-specific business questions using AI
|
|
@@ -1,25 +1,20 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* QuestionGenerator - Generates business questions for entity groups using AI
|
|
4
3
|
*
|
|
5
4
|
* Uses the Business Question Generator AI prompt to create 1-2 meaningful
|
|
6
5
|
* business questions per entity group that can be answered with SQL.
|
|
7
6
|
*/
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
const prompt_helpers_1 = require("../utils/prompt-helpers");
|
|
15
|
-
const PromptNames_1 = require("../prompts/PromptNames");
|
|
7
|
+
import { AIEngine } from '@memberjunction/aiengine';
|
|
8
|
+
import { LogStatus } from '@memberjunction/core';
|
|
9
|
+
import { extractErrorMessage } from '../utils/error-handlers.js';
|
|
10
|
+
import { formatEntityGroupForPrompt } from '../utils/entity-helpers.js';
|
|
11
|
+
import { executePromptWithOverrides } from '../utils/prompt-helpers.js';
|
|
12
|
+
import { PROMPT_BUSINESS_QUESTION_GENERATOR } from '../prompts/PromptNames.js';
|
|
16
13
|
/**
|
|
17
14
|
* QuestionGenerator class
|
|
18
15
|
* Generates domain-specific business questions using AI
|
|
19
16
|
*/
|
|
20
|
-
class QuestionGenerator {
|
|
21
|
-
contextUser;
|
|
22
|
-
config;
|
|
17
|
+
export class QuestionGenerator {
|
|
23
18
|
constructor(contextUser, config) {
|
|
24
19
|
this.contextUser = contextUser;
|
|
25
20
|
this.config = config;
|
|
@@ -34,12 +29,12 @@ class QuestionGenerator {
|
|
|
34
29
|
async generateQuestions(entityGroup) {
|
|
35
30
|
try {
|
|
36
31
|
// Ensure AIEngine is configured
|
|
37
|
-
const aiEngine =
|
|
32
|
+
const aiEngine = AIEngine.Instance;
|
|
38
33
|
await aiEngine.Config(false, this.contextUser);
|
|
39
34
|
// Find the Business Question Generator prompt
|
|
40
|
-
const prompt = this.findPromptByName(aiEngine,
|
|
35
|
+
const prompt = this.findPromptByName(aiEngine, PROMPT_BUSINESS_QUESTION_GENERATOR);
|
|
41
36
|
// Format entity group for prompt
|
|
42
|
-
const entityMetadata =
|
|
37
|
+
const entityMetadata = formatEntityGroupForPrompt(entityGroup);
|
|
43
38
|
// Execute AI prompt
|
|
44
39
|
const result = await this.executePrompt(prompt, entityMetadata);
|
|
45
40
|
// Validate and filter questions
|
|
@@ -47,16 +42,16 @@ class QuestionGenerator {
|
|
|
47
42
|
const validQuestions = this.validateQuestions(result.questions, entityGroup);
|
|
48
43
|
// Log if questions were filtered out
|
|
49
44
|
if (this.config.verbose && totalGenerated > validQuestions.length) {
|
|
50
|
-
|
|
45
|
+
LogStatus(`QuestionGenerator: Filtered out ${totalGenerated - validQuestions.length} of ${totalGenerated} questions for ${entityGroup.primaryEntity.Name}`);
|
|
51
46
|
}
|
|
52
47
|
// Warn if no valid questions generated
|
|
53
48
|
if (validQuestions.length === 0 && totalGenerated > 0) {
|
|
54
|
-
|
|
49
|
+
LogStatus(`⚠️ QuestionGenerator: All ${totalGenerated} generated questions were filtered out for ${entityGroup.primaryEntity.Name}`);
|
|
55
50
|
}
|
|
56
51
|
return validQuestions;
|
|
57
52
|
}
|
|
58
53
|
catch (error) {
|
|
59
|
-
throw new Error(
|
|
54
|
+
throw new Error(extractErrorMessage(error, 'QuestionGenerator.generateQuestions'));
|
|
60
55
|
}
|
|
61
56
|
}
|
|
62
57
|
/**
|
|
@@ -75,7 +70,7 @@ class QuestionGenerator {
|
|
|
75
70
|
* Parses JSON response and validates structure
|
|
76
71
|
*/
|
|
77
72
|
async executePrompt(prompt, entityMetadata) {
|
|
78
|
-
const result = await
|
|
73
|
+
const result = await executePromptWithOverrides(prompt, { entityGroupMetadata: entityMetadata }, this.contextUser, this.config);
|
|
79
74
|
if (!result || !result.success) {
|
|
80
75
|
throw new Error(`AI prompt execution failed: ${result?.errorMessage || 'Unknown error'}`);
|
|
81
76
|
}
|
|
@@ -110,14 +105,14 @@ class QuestionGenerator {
|
|
|
110
105
|
// Must have required fields
|
|
111
106
|
if (!this.hasRequiredFields(q)) {
|
|
112
107
|
if (this.config.verbose) {
|
|
113
|
-
|
|
108
|
+
LogStatus(` ❌ Filtered: Missing required fields - "${q.userQuestion?.substring(0, 60)}..."`);
|
|
114
109
|
}
|
|
115
110
|
return false;
|
|
116
111
|
}
|
|
117
112
|
// Must reference entities in the group (by name or base view)
|
|
118
113
|
if (!this.referencesGroupEntities(q, entityNameLookup)) {
|
|
119
114
|
if (this.config.verbose) {
|
|
120
|
-
|
|
115
|
+
LogStatus(` ❌ Filtered: Doesn't reference group entities - "${q.userQuestion.substring(0, 60)}..." (references: ${q.entities.join(', ')})`);
|
|
121
116
|
}
|
|
122
117
|
return false;
|
|
123
118
|
}
|
|
@@ -155,5 +150,4 @@ class QuestionGenerator {
|
|
|
155
150
|
return question.entities.some((entityName) => entityNameLookup.has(entityName.toLowerCase()));
|
|
156
151
|
}
|
|
157
152
|
}
|
|
158
|
-
exports.QuestionGenerator = QuestionGenerator;
|
|
159
153
|
//# sourceMappingURL=QuestionGenerator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QuestionGenerator.js","sourceRoot":"","sources":["../../src/core/QuestionGenerator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"QuestionGenerator.js","sourceRoot":"","sources":["../../src/core/QuestionGenerator.ts"],"names":[],"mappings":"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"}
|
package/dist/data/schema.js
CHANGED
package/dist/data/schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/data/schema.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/data/schema.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
package/dist/index.d.ts
CHANGED
|
@@ -6,22 +6,22 @@
|
|
|
6
6
|
* AI-powered generation of domain-specific SQL query templates with
|
|
7
7
|
* automatic testing, refinement, and metadata export.
|
|
8
8
|
*/
|
|
9
|
-
export { EntityGrouper } from './core/EntityGrouper';
|
|
10
|
-
export { QuestionGenerator } from './core/QuestionGenerator';
|
|
11
|
-
export { QueryWriter } from './core/QueryWriter';
|
|
12
|
-
export { QueryTester } from './core/QueryTester';
|
|
13
|
-
export { QueryFixer } from './core/QueryFixer';
|
|
14
|
-
export { QueryRefiner } from './core/QueryRefiner';
|
|
15
|
-
export { MetadataExporter } from './core/MetadataExporter';
|
|
16
|
-
export { QueryDatabaseWriter } from './core/QueryDatabaseWriter';
|
|
17
|
-
export { SimilaritySearch } from './vectors/SimilaritySearch';
|
|
18
|
-
export { EmbeddingService } from './vectors/EmbeddingService';
|
|
19
|
-
export * from './data/schema';
|
|
20
|
-
export * from './prompts/PromptNames';
|
|
21
|
-
export { QueryGenConfig, loadConfig } from './cli/config';
|
|
22
|
-
export { generateCommand } from './cli/commands/generate';
|
|
23
|
-
export { validateCommand } from './cli/commands/validate';
|
|
24
|
-
export { exportCommand } from './cli/commands/export';
|
|
25
|
-
export { extractErrorMessage, requireValue, getPropertyOrDefault } from './utils/error-handlers';
|
|
26
|
-
export { formatEntityMetadataForPrompt, formatEntityGroupForPrompt, findEntityById, getPrimaryKeyFields, getForeignKeyFields, hasRelationships, getRelationshipCount } from './utils/entity-helpers';
|
|
9
|
+
export { EntityGrouper } from './core/EntityGrouper.js';
|
|
10
|
+
export { QuestionGenerator } from './core/QuestionGenerator.js';
|
|
11
|
+
export { QueryWriter } from './core/QueryWriter.js';
|
|
12
|
+
export { QueryTester } from './core/QueryTester.js';
|
|
13
|
+
export { QueryFixer } from './core/QueryFixer.js';
|
|
14
|
+
export { QueryRefiner } from './core/QueryRefiner.js';
|
|
15
|
+
export { MetadataExporter } from './core/MetadataExporter.js';
|
|
16
|
+
export { QueryDatabaseWriter } from './core/QueryDatabaseWriter.js';
|
|
17
|
+
export { SimilaritySearch } from './vectors/SimilaritySearch.js';
|
|
18
|
+
export { EmbeddingService } from './vectors/EmbeddingService.js';
|
|
19
|
+
export * from './data/schema.js';
|
|
20
|
+
export * from './prompts/PromptNames.js';
|
|
21
|
+
export { QueryGenConfig, loadConfig } from './cli/config.js';
|
|
22
|
+
export { generateCommand } from './cli/commands/generate.js';
|
|
23
|
+
export { validateCommand } from './cli/commands/validate.js';
|
|
24
|
+
export { exportCommand } from './cli/commands/export.js';
|
|
25
|
+
export { extractErrorMessage, requireValue, getPropertyOrDefault } from './utils/error-handlers.js';
|
|
26
|
+
export { formatEntityMetadataForPrompt, formatEntityGroupForPrompt, findEntityById, getPrimaryKeyFields, getForeignKeyFields, hasRelationships, getRelationshipCount } from './utils/entity-helpers.js';
|
|
27
27
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* QueryGen package main entry point
|
|
4
3
|
*
|
|
@@ -7,69 +6,29 @@
|
|
|
7
6
|
* AI-powered generation of domain-specific SQL query templates with
|
|
8
7
|
* automatic testing, refinement, and metadata export.
|
|
9
8
|
*/
|
|
10
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
11
|
-
if (k2 === undefined) k2 = k;
|
|
12
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
13
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
14
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
15
|
-
}
|
|
16
|
-
Object.defineProperty(o, k2, desc);
|
|
17
|
-
}) : (function(o, m, k, k2) {
|
|
18
|
-
if (k2 === undefined) k2 = k;
|
|
19
|
-
o[k2] = m[k];
|
|
20
|
-
}));
|
|
21
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
22
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
23
|
-
};
|
|
24
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
-
exports.getRelationshipCount = exports.hasRelationships = exports.getForeignKeyFields = exports.getPrimaryKeyFields = exports.findEntityById = exports.formatEntityGroupForPrompt = exports.formatEntityMetadataForPrompt = exports.getPropertyOrDefault = exports.requireValue = exports.extractErrorMessage = exports.exportCommand = exports.validateCommand = exports.generateCommand = exports.loadConfig = exports.EmbeddingService = exports.SimilaritySearch = exports.QueryDatabaseWriter = exports.MetadataExporter = exports.QueryRefiner = exports.QueryFixer = exports.QueryTester = exports.QueryWriter = exports.QuestionGenerator = exports.EntityGrouper = void 0;
|
|
26
9
|
// Export core classes
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
var QueryFixer_1 = require("./core/QueryFixer");
|
|
36
|
-
Object.defineProperty(exports, "QueryFixer", { enumerable: true, get: function () { return QueryFixer_1.QueryFixer; } });
|
|
37
|
-
var QueryRefiner_1 = require("./core/QueryRefiner");
|
|
38
|
-
Object.defineProperty(exports, "QueryRefiner", { enumerable: true, get: function () { return QueryRefiner_1.QueryRefiner; } });
|
|
39
|
-
var MetadataExporter_1 = require("./core/MetadataExporter");
|
|
40
|
-
Object.defineProperty(exports, "MetadataExporter", { enumerable: true, get: function () { return MetadataExporter_1.MetadataExporter; } });
|
|
41
|
-
var QueryDatabaseWriter_1 = require("./core/QueryDatabaseWriter");
|
|
42
|
-
Object.defineProperty(exports, "QueryDatabaseWriter", { enumerable: true, get: function () { return QueryDatabaseWriter_1.QueryDatabaseWriter; } });
|
|
10
|
+
export { EntityGrouper } from './core/EntityGrouper.js';
|
|
11
|
+
export { QuestionGenerator } from './core/QuestionGenerator.js';
|
|
12
|
+
export { QueryWriter } from './core/QueryWriter.js';
|
|
13
|
+
export { QueryTester } from './core/QueryTester.js';
|
|
14
|
+
export { QueryFixer } from './core/QueryFixer.js';
|
|
15
|
+
export { QueryRefiner } from './core/QueryRefiner.js';
|
|
16
|
+
export { MetadataExporter } from './core/MetadataExporter.js';
|
|
17
|
+
export { QueryDatabaseWriter } from './core/QueryDatabaseWriter.js';
|
|
43
18
|
// Export utility classes
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
var EmbeddingService_1 = require("./vectors/EmbeddingService");
|
|
47
|
-
Object.defineProperty(exports, "EmbeddingService", { enumerable: true, get: function () { return EmbeddingService_1.EmbeddingService; } });
|
|
19
|
+
export { SimilaritySearch } from './vectors/SimilaritySearch.js';
|
|
20
|
+
export { EmbeddingService } from './vectors/EmbeddingService.js';
|
|
48
21
|
// Export types
|
|
49
|
-
|
|
22
|
+
export * from './data/schema.js';
|
|
50
23
|
// Export prompt names
|
|
51
|
-
|
|
24
|
+
export * from './prompts/PromptNames.js';
|
|
52
25
|
// Export configuration
|
|
53
|
-
|
|
54
|
-
Object.defineProperty(exports, "loadConfig", { enumerable: true, get: function () { return config_1.loadConfig; } });
|
|
26
|
+
export { loadConfig } from './cli/config.js';
|
|
55
27
|
// Export CLI commands
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
Object.defineProperty(exports, "validateCommand", { enumerable: true, get: function () { return validate_1.validateCommand; } });
|
|
60
|
-
var export_1 = require("./cli/commands/export");
|
|
61
|
-
Object.defineProperty(exports, "exportCommand", { enumerable: true, get: function () { return export_1.exportCommand; } });
|
|
28
|
+
export { generateCommand } from './cli/commands/generate.js';
|
|
29
|
+
export { validateCommand } from './cli/commands/validate.js';
|
|
30
|
+
export { exportCommand } from './cli/commands/export.js';
|
|
62
31
|
// Export utilities
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
Object.defineProperty(exports, "requireValue", { enumerable: true, get: function () { return error_handlers_1.requireValue; } });
|
|
66
|
-
Object.defineProperty(exports, "getPropertyOrDefault", { enumerable: true, get: function () { return error_handlers_1.getPropertyOrDefault; } });
|
|
67
|
-
var entity_helpers_1 = require("./utils/entity-helpers");
|
|
68
|
-
Object.defineProperty(exports, "formatEntityMetadataForPrompt", { enumerable: true, get: function () { return entity_helpers_1.formatEntityMetadataForPrompt; } });
|
|
69
|
-
Object.defineProperty(exports, "formatEntityGroupForPrompt", { enumerable: true, get: function () { return entity_helpers_1.formatEntityGroupForPrompt; } });
|
|
70
|
-
Object.defineProperty(exports, "findEntityById", { enumerable: true, get: function () { return entity_helpers_1.findEntityById; } });
|
|
71
|
-
Object.defineProperty(exports, "getPrimaryKeyFields", { enumerable: true, get: function () { return entity_helpers_1.getPrimaryKeyFields; } });
|
|
72
|
-
Object.defineProperty(exports, "getForeignKeyFields", { enumerable: true, get: function () { return entity_helpers_1.getForeignKeyFields; } });
|
|
73
|
-
Object.defineProperty(exports, "hasRelationships", { enumerable: true, get: function () { return entity_helpers_1.hasRelationships; } });
|
|
74
|
-
Object.defineProperty(exports, "getRelationshipCount", { enumerable: true, get: function () { return entity_helpers_1.getRelationshipCount; } });
|
|
32
|
+
export { extractErrorMessage, requireValue, getPropertyOrDefault } from './utils/error-handlers.js';
|
|
33
|
+
export { formatEntityMetadataForPrompt, formatEntityGroupForPrompt, findEntityById, getPrimaryKeyFields, getForeignKeyFields, hasRelationships, getRelationshipCount } from './utils/entity-helpers.js';
|
|
75
34
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,sBAAsB;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,yBAAyB;AACzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D,eAAe;AACf,cAAc,eAAe,CAAC;AAE9B,sBAAsB;AACtB,cAAc,uBAAuB,CAAC;AAEtC,uBAAuB;AACvB,OAAO,EAAkB,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1D,sBAAsB;AACtB,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,mBAAmB;AACnB,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACjG,OAAO,EACL,6BAA6B,EAC7B,0BAA0B,EAC1B,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,wBAAwB,CAAC"}
|
|
@@ -1,35 +1,32 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* Static prompt name constants for QueryGen
|
|
4
3
|
*
|
|
5
4
|
* All AI prompts used by QueryGen system with their exact names
|
|
6
5
|
* as defined in the AI Prompt metadata.
|
|
7
6
|
*/
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.PROMPT_QUERY_REFINER = exports.PROMPT_QUERY_EVALUATOR = exports.PROMPT_SQL_QUERY_FIXER = exports.PROMPT_SQL_QUERY_WRITER = exports.PROMPT_BUSINESS_QUESTION_GENERATOR = void 0;
|
|
10
7
|
/**
|
|
11
8
|
* Business Question Generator prompt
|
|
12
9
|
* Generates 1-2 business questions per entity group
|
|
13
10
|
*/
|
|
14
|
-
|
|
11
|
+
export const PROMPT_BUSINESS_QUESTION_GENERATOR = 'Business Question Generator';
|
|
15
12
|
/**
|
|
16
13
|
* SQL Query Writer prompt
|
|
17
14
|
* Generates Nunjucks SQL templates from business questions
|
|
18
15
|
*/
|
|
19
|
-
|
|
16
|
+
export const PROMPT_SQL_QUERY_WRITER = 'SQL Query Writer';
|
|
20
17
|
/**
|
|
21
18
|
* SQL Query Fixer prompt
|
|
22
19
|
* Fixes SQL syntax and logic errors in generated queries
|
|
23
20
|
*/
|
|
24
|
-
|
|
21
|
+
export const PROMPT_SQL_QUERY_FIXER = 'SQL Query Fixer';
|
|
25
22
|
/**
|
|
26
23
|
* Query Result Evaluator prompt
|
|
27
24
|
* Evaluates if a query correctly answers the business question
|
|
28
25
|
*/
|
|
29
|
-
|
|
26
|
+
export const PROMPT_QUERY_EVALUATOR = 'Query Result Evaluator';
|
|
30
27
|
/**
|
|
31
28
|
* Query Refiner prompt
|
|
32
29
|
* Refines queries based on evaluation feedback
|
|
33
30
|
*/
|
|
34
|
-
|
|
31
|
+
export const PROMPT_QUERY_REFINER = 'Query Refiner';
|
|
35
32
|
//# sourceMappingURL=PromptNames.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PromptNames.js","sourceRoot":"","sources":["../../src/prompts/PromptNames.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PromptNames.js","sourceRoot":"","sources":["../../src/prompts/PromptNames.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAAG,6BAA6B,CAAC;AAEhF;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,kBAAkB,CAAC;AAE1D;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,iBAAiB,CAAC;AAExD;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,wBAAwB,CAAC;AAE/D;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,eAAe,CAAC"}
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* Centralizes the logic for determining what categories should be created
|
|
5
5
|
* for queries based on the QueryGen configuration.
|
|
6
6
|
*/
|
|
7
|
-
import { QueryCategoryInfo, EntityGroup } from '../data/schema';
|
|
8
|
-
import { QueryGenConfig } from '../cli/config';
|
|
7
|
+
import { QueryCategoryInfo, EntityGroup } from '../data/schema.js';
|
|
8
|
+
import { QueryGenConfig } from '../cli/config.js';
|
|
9
9
|
/**
|
|
10
10
|
* Build category information for a query based on configuration
|
|
11
11
|
*
|
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* CategoryBuilder - Builds QueryCategoryInfo from configuration and entity groups
|
|
4
3
|
*
|
|
5
4
|
* Centralizes the logic for determining what categories should be created
|
|
6
5
|
* for queries based on the QueryGen configuration.
|
|
7
6
|
*/
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.extractUniqueCategories = exports.buildQueryCategory = void 0;
|
|
10
7
|
/**
|
|
11
8
|
* Build category information for a query based on configuration
|
|
12
9
|
*
|
|
@@ -14,7 +11,7 @@ exports.extractUniqueCategories = exports.buildQueryCategory = void 0;
|
|
|
14
11
|
* @param entityGroup - Entity group for the query
|
|
15
12
|
* @returns QueryCategoryInfo with full category details
|
|
16
13
|
*/
|
|
17
|
-
function buildQueryCategory(config, entityGroup) {
|
|
14
|
+
export function buildQueryCategory(config, entityGroup) {
|
|
18
15
|
const rootCategoryName = config.rootQueryCategory || 'Auto-Generated';
|
|
19
16
|
if (config.autoCreateEntityQueryCategories) {
|
|
20
17
|
// Create entity-specific category under root
|
|
@@ -45,7 +42,6 @@ function buildQueryCategory(config, entityGroup) {
|
|
|
45
42
|
};
|
|
46
43
|
}
|
|
47
44
|
}
|
|
48
|
-
exports.buildQueryCategory = buildQueryCategory;
|
|
49
45
|
/**
|
|
50
46
|
* Extract all unique categories from validated queries
|
|
51
47
|
* Returns categories in hierarchical order (root first, then children)
|
|
@@ -56,7 +52,7 @@ exports.buildQueryCategory = buildQueryCategory;
|
|
|
56
52
|
* @param categories - Array of QueryCategoryInfo from validated queries
|
|
57
53
|
* @returns Unique categories sorted hierarchically (includes auto-generated parents)
|
|
58
54
|
*/
|
|
59
|
-
function extractUniqueCategories(categories) {
|
|
55
|
+
export function extractUniqueCategories(categories) {
|
|
60
56
|
const uniqueMap = new Map();
|
|
61
57
|
// Collect all unique categories (by path)
|
|
62
58
|
for (const cat of categories) {
|
|
@@ -86,5 +82,4 @@ function extractUniqueCategories(categories) {
|
|
|
86
82
|
});
|
|
87
83
|
return result;
|
|
88
84
|
}
|
|
89
|
-
exports.extractUniqueCategories = extractUniqueCategories;
|
|
90
85
|
//# sourceMappingURL=category-builder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"category-builder.js","sourceRoot":"","sources":["../../src/utils/category-builder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"category-builder.js","sourceRoot":"","sources":["../../src/utils/category-builder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAAsB,EACtB,WAAwB;IAExB,MAAM,gBAAgB,GAAG,MAAM,CAAC,iBAAiB,IAAI,gBAAgB,CAAC;IAEtE,IAAI,MAAM,CAAC,+BAA+B,EAAE,CAAC;QAC3C,6CAA6C;QAC7C,MAAM,UAAU,GAAG,WAAW,EAAE,aAAa,EAAE,IAAI,CAAC;QAEpD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,oFAAoF,CAAC,CAAC;YACnG,OAAO;gBACL,IAAI,EAAE,gBAAgB;gBACtB,UAAU,EAAE,IAAI;gBAChB,WAAW,EAAE,qDAAqD;gBAClE,IAAI,EAAE,gBAAgB;aACvB,CAAC;QACJ,CAAC;QAED,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,UAAU,EAAE,gBAAgB;YAC5B,WAAW,EAAE,mBAAmB,UAAU,SAAS;YACnD,IAAI,EAAE,GAAG,gBAAgB,IAAI,UAAU,EAAE;SAC1C,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,yBAAyB;QACzB,OAAO;YACL,IAAI,EAAE,gBAAgB;YACtB,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,qDAAqD;YAClE,IAAI,EAAE,gBAAgB;SACvB,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,uBAAuB,CAAC,UAA+B;IACrE,MAAM,SAAS,GAAG,IAAI,GAAG,EAA6B,CAAC;IAEvD,0CAA0C;IAC1C,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC/B,CAAC;QAED,6DAA6D;QAC7D,IAAI,GAAG,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YACrD,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE;gBAC5B,IAAI,EAAE,GAAG,CAAC,UAAU;gBACpB,UAAU,EAAE,IAAI;gBAChB,WAAW,EAAE,qDAAqD;gBAClE,IAAI,EAAE,GAAG,CAAC,UAAU;aACrB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,kEAAkE;IAClE,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9C,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACnB,yCAAyC;QACzC,IAAI,CAAC,CAAC,UAAU,KAAK,IAAI,IAAI,CAAC,CAAC,UAAU,KAAK,IAAI;YAAE,OAAO,CAAC,CAAC,CAAC;QAC9D,IAAI,CAAC,CAAC,UAAU,KAAK,IAAI,IAAI,CAAC,CAAC,UAAU,KAAK,IAAI;YAAE,OAAO,CAAC,CAAC;QAE7D,mCAAmC;QACnC,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Helper functions for working with entity metadata and formatting for AI prompts
|
|
5
5
|
*/
|
|
6
6
|
import { EntityInfo, EntityFieldInfo } from '@memberjunction/core';
|
|
7
|
-
import { EntityMetadataForPrompt, EntityGroup } from '../data/schema';
|
|
7
|
+
import { EntityMetadataForPrompt, EntityGroup } from '../data/schema.js';
|
|
8
8
|
/**
|
|
9
9
|
* Format entity metadata for AI prompt consumption
|
|
10
10
|
* Includes schema name, base view, fields, and relationships
|