@memberjunction/core-actions 2.107.0 → 2.109.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/dist/custom/ai/find-best-action.action.d.ts +53 -0
- package/dist/custom/ai/find-best-action.action.d.ts.map +1 -0
- package/dist/custom/ai/find-best-action.action.js +211 -0
- package/dist/custom/ai/find-best-action.action.js.map +1 -0
- package/dist/custom/ai/find-best-agent.action.d.ts +53 -0
- package/dist/custom/ai/find-best-agent.action.d.ts.map +1 -0
- package/dist/custom/ai/find-best-agent.action.js +194 -0
- package/dist/custom/ai/find-best-agent.action.js.map +1 -0
- package/dist/custom/ai/summarize-content.action.d.ts +3 -3
- package/dist/custom/ai/summarize-content.action.d.ts.map +1 -1
- package/dist/custom/ai/summarize-content.action.js +51 -143
- package/dist/custom/ai/summarize-content.action.js.map +1 -1
- package/dist/custom/code-execution/execute-code.action.d.ts +61 -0
- package/dist/custom/code-execution/execute-code.action.d.ts.map +1 -0
- package/dist/custom/code-execution/execute-code.action.js +172 -0
- package/dist/custom/code-execution/execute-code.action.js.map +1 -0
- package/dist/custom/data/csv-parser.action.js +1 -1
- package/dist/custom/data/csv-parser.action.js.map +1 -1
- package/dist/custom/data/execute-research-query.action.d.ts +36 -18
- package/dist/custom/data/execute-research-query.action.d.ts.map +1 -1
- package/dist/custom/data/execute-research-query.action.js +221 -114
- package/dist/custom/data/execute-research-query.action.js.map +1 -1
- package/dist/custom/data/explore-database-schema.action.d.ts +4 -0
- package/dist/custom/data/explore-database-schema.action.d.ts.map +1 -1
- package/dist/custom/data/explore-database-schema.action.js +101 -8
- package/dist/custom/data/explore-database-schema.action.js.map +1 -1
- package/dist/custom/data/get-entity-details.action.d.ts +63 -0
- package/dist/custom/data/get-entity-details.action.d.ts.map +1 -0
- package/dist/custom/data/get-entity-details.action.js +284 -0
- package/dist/custom/data/get-entity-details.action.js.map +1 -0
- package/dist/custom/data/get-entity-list.action.d.ts +57 -0
- package/dist/custom/data/get-entity-list.action.d.ts.map +1 -0
- package/dist/custom/data/get-entity-list.action.js +177 -0
- package/dist/custom/data/get-entity-list.action.js.map +1 -0
- package/dist/custom/visualization/create-svg-chart.action.d.ts +97 -0
- package/dist/custom/visualization/create-svg-chart.action.d.ts.map +1 -0
- package/dist/custom/visualization/create-svg-chart.action.js +326 -0
- package/dist/custom/visualization/create-svg-chart.action.js.map +1 -0
- package/dist/custom/visualization/create-svg-diagram.action.d.ts +151 -0
- package/dist/custom/visualization/create-svg-diagram.action.d.ts.map +1 -0
- package/dist/custom/visualization/create-svg-diagram.action.js +764 -0
- package/dist/custom/visualization/create-svg-diagram.action.js.map +1 -0
- package/dist/custom/visualization/create-svg-infographic.action.d.ts +72 -0
- package/dist/custom/visualization/create-svg-infographic.action.d.ts.map +1 -0
- package/dist/custom/visualization/create-svg-infographic.action.js +343 -0
- package/dist/custom/visualization/create-svg-infographic.action.js.map +1 -0
- package/dist/custom/visualization/create-svg-network.action.d.ts +106 -0
- package/dist/custom/visualization/create-svg-network.action.d.ts.map +1 -0
- package/dist/custom/visualization/create-svg-network.action.js +687 -0
- package/dist/custom/visualization/create-svg-network.action.js.map +1 -0
- package/dist/custom/visualization/create-svg-sketch-diagram.action.d.ts +97 -0
- package/dist/custom/visualization/create-svg-sketch-diagram.action.d.ts.map +1 -0
- package/dist/custom/visualization/create-svg-sketch-diagram.action.js +730 -0
- package/dist/custom/visualization/create-svg-sketch-diagram.action.js.map +1 -0
- package/dist/custom/visualization/create-svg-word-cloud.action.d.ts +94 -0
- package/dist/custom/visualization/create-svg-word-cloud.action.d.ts.map +1 -0
- package/dist/custom/visualization/create-svg-word-cloud.action.js +497 -0
- package/dist/custom/visualization/create-svg-word-cloud.action.js.map +1 -0
- package/dist/custom/visualization/shared/svg-theming.d.ts +91 -0
- package/dist/custom/visualization/shared/svg-theming.d.ts.map +1 -0
- package/dist/custom/visualization/shared/svg-theming.js +235 -0
- package/dist/custom/visualization/shared/svg-theming.js.map +1 -0
- package/dist/custom/visualization/shared/svg-types.d.ts +354 -0
- package/dist/custom/visualization/shared/svg-types.d.ts.map +1 -0
- package/dist/custom/visualization/shared/svg-types.js +11 -0
- package/dist/custom/visualization/shared/svg-types.js.map +1 -0
- package/dist/custom/visualization/shared/svg-utils.d.ts +166 -0
- package/dist/custom/visualization/shared/svg-utils.d.ts.map +1 -0
- package/dist/custom/visualization/shared/svg-utils.js +555 -0
- package/dist/custom/visualization/shared/svg-utils.js.map +1 -0
- package/dist/custom/web/google-custom-search.action.d.ts +6 -1
- package/dist/custom/web/google-custom-search.action.d.ts.map +1 -1
- package/dist/custom/web/google-custom-search.action.js +78 -10
- package/dist/custom/web/google-custom-search.action.js.map +1 -1
- package/dist/custom/web/web-page-content.action.d.ts +24 -0
- package/dist/custom/web/web-page-content.action.d.ts.map +1 -1
- package/dist/custom/web/web-page-content.action.js +90 -9
- package/dist/custom/web/web-page-content.action.js.map +1 -1
- package/dist/generated/action_subclasses.d.ts +4 -4
- package/dist/generated/action_subclasses.js +13 -13
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +34 -0
- package/dist/index.js.map +1 -1
- package/package.json +30 -12
|
@@ -2,10 +2,9 @@ import { ActionResultSimple, RunActionParams } from "@memberjunction/actions-bas
|
|
|
2
2
|
import { BaseAction } from "@memberjunction/actions";
|
|
3
3
|
/**
|
|
4
4
|
* Action that executes read-only SQL SELECT queries for research purposes with
|
|
5
|
-
*
|
|
5
|
+
* security validation.
|
|
6
6
|
*
|
|
7
7
|
* Security Features:
|
|
8
|
-
* - SQL syntax validation using node-sql-parser
|
|
9
8
|
* - SELECT-only enforcement (rejects INSERT, UPDATE, DELETE, DROP, etc.)
|
|
10
9
|
* - Dangerous operation detection (EXEC, xp_, sp_, dynamic SQL, etc.)
|
|
11
10
|
* - Query timeout protection
|
|
@@ -14,10 +13,12 @@ import { BaseAction } from "@memberjunction/actions";
|
|
|
14
13
|
*
|
|
15
14
|
* Performance Features:
|
|
16
15
|
* - Configurable row limits to prevent overwhelming results
|
|
17
|
-
* - Optional execution plan for performance analysis
|
|
18
16
|
* - Execution time tracking
|
|
19
17
|
* - Validation warnings for potentially slow queries
|
|
20
18
|
*
|
|
19
|
+
* Note: SQL syntax validation is handled by SQL Server during execution.
|
|
20
|
+
* This provides more accurate error messages than a JavaScript parser.
|
|
21
|
+
*
|
|
21
22
|
* @example
|
|
22
23
|
* ```typescript
|
|
23
24
|
* // Simple SELECT query
|
|
@@ -25,11 +26,11 @@ import { BaseAction } from "@memberjunction/actions";
|
|
|
25
26
|
* ActionName: 'Execute Research Query',
|
|
26
27
|
* Params: [{
|
|
27
28
|
* Name: 'Query',
|
|
28
|
-
* Value: 'SELECT TOP 100 * FROM Customers WHERE Country =
|
|
29
|
+
* Value: 'SELECT TOP 100 * FROM Customers WHERE Country = ''USA'''
|
|
29
30
|
* }]
|
|
30
31
|
* });
|
|
31
32
|
*
|
|
32
|
-
* // Query with timeout
|
|
33
|
+
* // Query with timeout
|
|
33
34
|
* await runAction({
|
|
34
35
|
* ActionName: 'Execute Research Query',
|
|
35
36
|
* Params: [{
|
|
@@ -38,15 +39,11 @@ import { BaseAction } from "@memberjunction/actions";
|
|
|
38
39
|
* }, {
|
|
39
40
|
* Name: 'Timeout',
|
|
40
41
|
* Value: 60
|
|
41
|
-
* }, {
|
|
42
|
-
* Name: 'IncludeExecutionPlan',
|
|
43
|
-
* Value: true
|
|
44
42
|
* }]
|
|
45
43
|
* });
|
|
46
44
|
* ```
|
|
47
45
|
*/
|
|
48
46
|
export declare class ExecuteResearchQueryAction extends BaseAction {
|
|
49
|
-
private readonly parser;
|
|
50
47
|
/**
|
|
51
48
|
* List of dangerous SQL keywords and patterns that should be blocked
|
|
52
49
|
*/
|
|
@@ -56,10 +53,6 @@ export declare class ExecuteResearchQueryAction extends BaseAction {
|
|
|
56
53
|
* Validates query for security concerns
|
|
57
54
|
*/
|
|
58
55
|
private validateQuerySecurity;
|
|
59
|
-
/**
|
|
60
|
-
* Validates SQL syntax using node-sql-parser
|
|
61
|
-
*/
|
|
62
|
-
private validateQuerySyntax;
|
|
63
56
|
/**
|
|
64
57
|
* Ensures query has a row limit to prevent overwhelming results
|
|
65
58
|
*/
|
|
@@ -69,13 +62,38 @@ export declare class ExecuteResearchQueryAction extends BaseAction {
|
|
|
69
62
|
*/
|
|
70
63
|
private generateValidationWarnings;
|
|
71
64
|
/**
|
|
72
|
-
* Formats results as CSV string
|
|
65
|
+
* Formats results as CSV string with proper escaping
|
|
66
|
+
* @param results Array of result objects
|
|
67
|
+
* @param columnMaxLength Optional maximum length for column values (0 = no limit)
|
|
73
68
|
*/
|
|
74
69
|
private formatAsCSV;
|
|
75
70
|
/**
|
|
76
|
-
* Formats
|
|
71
|
+
* Formats a single CSV row (for headers)
|
|
72
|
+
*/
|
|
73
|
+
private formatCSVRow;
|
|
74
|
+
/**
|
|
75
|
+
* Formats a single CSV value with proper escaping
|
|
76
|
+
* - Null/undefined values become empty strings
|
|
77
|
+
* - All string values are quoted and escaped
|
|
78
|
+
* - Numbers and booleans are converted to strings and quoted
|
|
79
|
+
*/
|
|
80
|
+
private formatCSVValue;
|
|
81
|
+
/**
|
|
82
|
+
* Trims columns in result set to maximum length
|
|
83
|
+
* Used for JSON format results to prevent verbose fields from overwhelming context
|
|
84
|
+
* @param results Array of result objects
|
|
85
|
+
* @param maxLength Maximum length for string values
|
|
86
|
+
* @returns New array with trimmed values
|
|
87
|
+
*/
|
|
88
|
+
private trimResultColumns;
|
|
89
|
+
/**
|
|
90
|
+
* Analyze query data using AI prompt
|
|
91
|
+
*/
|
|
92
|
+
private analyzeQueryData;
|
|
93
|
+
/**
|
|
94
|
+
* Get prompt by name and category from AIEngine
|
|
77
95
|
*/
|
|
78
|
-
private
|
|
96
|
+
private getPromptByNameAndCategory;
|
|
79
97
|
/**
|
|
80
98
|
* Helper to get string parameter value
|
|
81
99
|
*/
|
|
@@ -85,9 +103,9 @@ export declare class ExecuteResearchQueryAction extends BaseAction {
|
|
|
85
103
|
*/
|
|
86
104
|
private getNumericParam;
|
|
87
105
|
/**
|
|
88
|
-
*
|
|
106
|
+
* Build detailed message with query results for agent consumption
|
|
89
107
|
*/
|
|
90
|
-
private
|
|
108
|
+
private buildDetailedMessage;
|
|
91
109
|
}
|
|
92
110
|
/**
|
|
93
111
|
* Load function to ensure the class is registered and not tree-shaken
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute-research-query.action.d.ts","sourceRoot":"","sources":["../../../src/custom/data/execute-research-query.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEnF,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"execute-research-query.action.d.ts","sourceRoot":"","sources":["../../../src/custom/data/execute-research-query.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEnF,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AASrD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,qBACa,0BAA2B,SAAQ,UAAU;IAEtD;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAwBjC;cAEc,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAoLvF;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA4B7B;;OAEG;IACH,OAAO,CAAC,cAAc;IAiBtB;;OAEG;IACH,OAAO,CAAC,0BAA0B;IA8BlC;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAwBnB;;OAEG;IACH,OAAO,CAAC,YAAY;IAIpB;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAetB;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;IAczB;;OAEG;YACW,gBAAgB;IA2D9B;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAOlC;;OAEG;IACH,OAAO,CAAC,cAAc;IAQtB;;OAEG;IACH,OAAO,CAAC,eAAe;IAYvB;;OAEG;IACH,OAAO,CAAC,oBAAoB;CA2E/B;AAED;;GAEG;AACH,wBAAgB,8BAA8B,SAE7C"}
|
|
@@ -11,13 +11,14 @@ const global_1 = require("@memberjunction/global");
|
|
|
11
11
|
const actions_1 = require("@memberjunction/actions");
|
|
12
12
|
const global_2 = require("@memberjunction/global");
|
|
13
13
|
const core_1 = require("@memberjunction/core");
|
|
14
|
-
const
|
|
14
|
+
const ai_prompts_1 = require("@memberjunction/ai-prompts");
|
|
15
|
+
const ai_core_plus_1 = require("@memberjunction/ai-core-plus");
|
|
16
|
+
const aiengine_1 = require("@memberjunction/aiengine");
|
|
15
17
|
/**
|
|
16
18
|
* Action that executes read-only SQL SELECT queries for research purposes with
|
|
17
|
-
*
|
|
19
|
+
* security validation.
|
|
18
20
|
*
|
|
19
21
|
* Security Features:
|
|
20
|
-
* - SQL syntax validation using node-sql-parser
|
|
21
22
|
* - SELECT-only enforcement (rejects INSERT, UPDATE, DELETE, DROP, etc.)
|
|
22
23
|
* - Dangerous operation detection (EXEC, xp_, sp_, dynamic SQL, etc.)
|
|
23
24
|
* - Query timeout protection
|
|
@@ -26,10 +27,12 @@ const node_sql_parser_1 = require("node-sql-parser");
|
|
|
26
27
|
*
|
|
27
28
|
* Performance Features:
|
|
28
29
|
* - Configurable row limits to prevent overwhelming results
|
|
29
|
-
* - Optional execution plan for performance analysis
|
|
30
30
|
* - Execution time tracking
|
|
31
31
|
* - Validation warnings for potentially slow queries
|
|
32
32
|
*
|
|
33
|
+
* Note: SQL syntax validation is handled by SQL Server during execution.
|
|
34
|
+
* This provides more accurate error messages than a JavaScript parser.
|
|
35
|
+
*
|
|
33
36
|
* @example
|
|
34
37
|
* ```typescript
|
|
35
38
|
* // Simple SELECT query
|
|
@@ -37,11 +40,11 @@ const node_sql_parser_1 = require("node-sql-parser");
|
|
|
37
40
|
* ActionName: 'Execute Research Query',
|
|
38
41
|
* Params: [{
|
|
39
42
|
* Name: 'Query',
|
|
40
|
-
* Value: 'SELECT TOP 100 * FROM Customers WHERE Country =
|
|
43
|
+
* Value: 'SELECT TOP 100 * FROM Customers WHERE Country = ''USA'''
|
|
41
44
|
* }]
|
|
42
45
|
* });
|
|
43
46
|
*
|
|
44
|
-
* // Query with timeout
|
|
47
|
+
* // Query with timeout
|
|
45
48
|
* await runAction({
|
|
46
49
|
* ActionName: 'Execute Research Query',
|
|
47
50
|
* Params: [{
|
|
@@ -50,15 +53,11 @@ const node_sql_parser_1 = require("node-sql-parser");
|
|
|
50
53
|
* }, {
|
|
51
54
|
* Name: 'Timeout',
|
|
52
55
|
* Value: 60
|
|
53
|
-
* }, {
|
|
54
|
-
* Name: 'IncludeExecutionPlan',
|
|
55
|
-
* Value: true
|
|
56
56
|
* }]
|
|
57
57
|
* });
|
|
58
58
|
* ```
|
|
59
59
|
*/
|
|
60
60
|
let ExecuteResearchQueryAction = class ExecuteResearchQueryAction extends actions_1.BaseAction {
|
|
61
|
-
parser = new node_sql_parser_1.Parser();
|
|
62
61
|
/**
|
|
63
62
|
* List of dangerous SQL keywords and patterns that should be blocked
|
|
64
63
|
*/
|
|
@@ -101,8 +100,11 @@ let ExecuteResearchQueryAction = class ExecuteResearchQueryAction extends action
|
|
|
101
100
|
}
|
|
102
101
|
const maxRows = this.getNumericParam(params, "maxrows", 1000);
|
|
103
102
|
const timeout = this.getNumericParam(params, "timeout", 30);
|
|
104
|
-
const
|
|
105
|
-
const
|
|
103
|
+
const dataFormat = this.getStringParam(params, "dataformat") || 'csv';
|
|
104
|
+
const analysisRequest = this.getStringParam(params, "analysisrequest");
|
|
105
|
+
const returnType = this.getStringParam(params, "returntype") ||
|
|
106
|
+
(analysisRequest ? 'data and analysis' : 'data only');
|
|
107
|
+
const columnMaxLength = this.getNumericParam(params, "columnmaxlength", 50); // Default: 50 chars, 0 = no limit
|
|
106
108
|
// Validate query security
|
|
107
109
|
const securityValidation = this.validateQuerySecurity(query);
|
|
108
110
|
if (!securityValidation.isValid) {
|
|
@@ -112,41 +114,13 @@ let ExecuteResearchQueryAction = class ExecuteResearchQueryAction extends action
|
|
|
112
114
|
Message: securityValidation.message
|
|
113
115
|
};
|
|
114
116
|
}
|
|
115
|
-
// Parse and validate SQL syntax
|
|
116
|
-
const syntaxValidation = this.validateQuerySyntax(query);
|
|
117
|
-
if (!syntaxValidation.isValid) {
|
|
118
|
-
return {
|
|
119
|
-
Success: false,
|
|
120
|
-
ResultCode: "INVALID_SQL_SYNTAX",
|
|
121
|
-
Message: syntaxValidation.message
|
|
122
|
-
};
|
|
123
|
-
}
|
|
124
117
|
// Ensure query returns limited results
|
|
125
118
|
const limitedQuery = this.ensureRowLimit(query, maxRows);
|
|
126
119
|
const dataProvider = core_1.BaseEntity.Provider;
|
|
127
|
-
let executionPlanData = undefined;
|
|
128
120
|
try {
|
|
129
|
-
// Get execution plan if requested
|
|
130
|
-
if (includeExecutionPlan) {
|
|
131
|
-
const planQuery = `SET SHOWPLAN_XML ON;\n${limitedQuery}\nSET SHOWPLAN_XML OFF;`;
|
|
132
|
-
try {
|
|
133
|
-
const planResult = await dataProvider.ExecuteSQL(planQuery, null, {
|
|
134
|
-
description: 'Execute Research Query - Get Execution Plan',
|
|
135
|
-
ignoreLogging: false
|
|
136
|
-
}, params.ContextUser);
|
|
137
|
-
if (planResult.recordset && planResult.recordset.length > 0) {
|
|
138
|
-
executionPlanData = planResult.recordset[0];
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
catch (planError) {
|
|
142
|
-
// Execution plan is optional, log error but continue
|
|
143
|
-
(0, core_1.LogError)(`Failed to retrieve execution plan: ${planError}`);
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
121
|
// Execute the query with timeout
|
|
147
|
-
// Note: SQL Server timeout is in seconds for request.timeout
|
|
148
122
|
const queryStartTime = Date.now();
|
|
149
|
-
const
|
|
123
|
+
const results = await Promise.race([
|
|
150
124
|
dataProvider.ExecuteSQL(limitedQuery, null, {
|
|
151
125
|
description: 'Execute Research Query',
|
|
152
126
|
ignoreLogging: false,
|
|
@@ -155,10 +129,9 @@ let ExecuteResearchQueryAction = class ExecuteResearchQueryAction extends action
|
|
|
155
129
|
new Promise((_, reject) => setTimeout(() => reject(new Error('Query timeout exceeded')), timeout * 1000))
|
|
156
130
|
]);
|
|
157
131
|
const executionTimeMs = Date.now() - queryStartTime;
|
|
158
|
-
const results = result.recordset || [];
|
|
159
132
|
// Get column metadata
|
|
160
|
-
const columns =
|
|
161
|
-
? Object.entries(
|
|
133
|
+
const columns = results && results.columns
|
|
134
|
+
? Object.entries(results.columns).map(([name, col]) => ({
|
|
162
135
|
ColumnName: name,
|
|
163
136
|
DataType: col.type?.name || 'unknown',
|
|
164
137
|
IsNullable: col.nullable !== false
|
|
@@ -167,29 +140,58 @@ let ExecuteResearchQueryAction = class ExecuteResearchQueryAction extends action
|
|
|
167
140
|
const wasTruncated = results.length >= maxRows;
|
|
168
141
|
// Generate validation warnings
|
|
169
142
|
const warnings = this.generateValidationWarnings(query, results.length, executionTimeMs);
|
|
170
|
-
// Format
|
|
171
|
-
let
|
|
172
|
-
if (
|
|
173
|
-
|
|
143
|
+
// Format data based on requested format
|
|
144
|
+
let formattedData;
|
|
145
|
+
if (dataFormat === 'csv') {
|
|
146
|
+
formattedData = this.formatAsCSV(results, columnMaxLength);
|
|
174
147
|
}
|
|
175
|
-
else if (
|
|
176
|
-
|
|
148
|
+
else if (dataFormat === 'json') {
|
|
149
|
+
const trimmedResults = columnMaxLength > 0
|
|
150
|
+
? this.trimResultColumns(results, columnMaxLength)
|
|
151
|
+
: results;
|
|
152
|
+
formattedData = JSON.stringify(trimmedResults, null, 2);
|
|
153
|
+
}
|
|
154
|
+
// Perform analysis if requested
|
|
155
|
+
let analysis;
|
|
156
|
+
if (analysisRequest && (returnType === 'analysis only' || returnType === 'data and analysis')) {
|
|
157
|
+
if (results.length === 0) {
|
|
158
|
+
// Don't call LLM for empty results - generate immediate response
|
|
159
|
+
analysis = 'Query returned no results. No data available to analyze.';
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
const analysisResult = await this.analyzeQueryData(results, columns, analysisRequest, params, columnMaxLength);
|
|
163
|
+
if (analysisResult.success) {
|
|
164
|
+
analysis = analysisResult.analysis;
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
(0, core_1.LogError)(`Failed to analyze query data: ${analysisResult.error}`);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
177
170
|
}
|
|
178
171
|
const totalExecutionTime = Date.now() - startTime;
|
|
179
|
-
return
|
|
172
|
+
// Build detailed message based on return type
|
|
173
|
+
const message = this.buildDetailedMessage(results, columns, executionTimeMs, totalExecutionTime, wasTruncated, warnings, returnType, formattedData, analysis);
|
|
174
|
+
// Build result object based on return type
|
|
175
|
+
const resultData = {
|
|
180
176
|
Success: true,
|
|
181
177
|
ResultCode: "SUCCESS",
|
|
182
|
-
Message:
|
|
183
|
-
Results: formattedResults,
|
|
178
|
+
Message: message,
|
|
184
179
|
Columns: columns,
|
|
185
180
|
RowCount: results.length,
|
|
186
181
|
ExecutionTimeMs: executionTimeMs,
|
|
187
182
|
TotalTimeMs: totalExecutionTime,
|
|
188
183
|
WasTruncated: wasTruncated,
|
|
189
|
-
ExecutionPlan: executionPlanData,
|
|
190
184
|
ValidationWarnings: warnings,
|
|
191
185
|
Query: limitedQuery
|
|
192
186
|
};
|
|
187
|
+
// Add data and/or analysis to results based on returnType
|
|
188
|
+
if (returnType === 'data only' || returnType === 'data and analysis') {
|
|
189
|
+
resultData.Results = formattedData || results;
|
|
190
|
+
}
|
|
191
|
+
if (returnType === 'analysis only' || returnType === 'data and analysis') {
|
|
192
|
+
resultData.Analysis = analysis;
|
|
193
|
+
}
|
|
194
|
+
return resultData;
|
|
193
195
|
}
|
|
194
196
|
catch (queryError) {
|
|
195
197
|
// Handle query timeout
|
|
@@ -254,23 +256,6 @@ let ExecuteResearchQueryAction = class ExecuteResearchQueryAction extends action
|
|
|
254
256
|
}
|
|
255
257
|
return { isValid: true };
|
|
256
258
|
}
|
|
257
|
-
/**
|
|
258
|
-
* Validates SQL syntax using node-sql-parser
|
|
259
|
-
*/
|
|
260
|
-
validateQuerySyntax(query) {
|
|
261
|
-
try {
|
|
262
|
-
// Parse the query to validate syntax
|
|
263
|
-
// node-sql-parser will throw if syntax is invalid
|
|
264
|
-
this.parser.astify(query, { database: 'mssql' });
|
|
265
|
-
return { isValid: true };
|
|
266
|
-
}
|
|
267
|
-
catch (parseError) {
|
|
268
|
-
return {
|
|
269
|
-
isValid: false,
|
|
270
|
-
message: `SQL syntax error: ${parseError.message || String(parseError)}`
|
|
271
|
-
};
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
259
|
/**
|
|
275
260
|
* Ensures query has a row limit to prevent overwhelming results
|
|
276
261
|
*/
|
|
@@ -315,53 +300,130 @@ let ExecuteResearchQueryAction = class ExecuteResearchQueryAction extends action
|
|
|
315
300
|
return warnings;
|
|
316
301
|
}
|
|
317
302
|
/**
|
|
318
|
-
* Formats results as CSV string
|
|
303
|
+
* Formats results as CSV string with proper escaping
|
|
304
|
+
* @param results Array of result objects
|
|
305
|
+
* @param columnMaxLength Optional maximum length for column values (0 = no limit)
|
|
319
306
|
*/
|
|
320
|
-
formatAsCSV(results) {
|
|
307
|
+
formatAsCSV(results, columnMaxLength = 0) {
|
|
321
308
|
if (results.length === 0)
|
|
322
309
|
return '';
|
|
323
310
|
const headers = Object.keys(results[0]);
|
|
324
|
-
const csvRows = [
|
|
311
|
+
const csvRows = [this.formatCSVRow(headers)];
|
|
325
312
|
for (const row of results) {
|
|
326
313
|
const values = headers.map(header => {
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
314
|
+
let value = row[header];
|
|
315
|
+
// Apply column length limit if specified
|
|
316
|
+
if (columnMaxLength > 0 && value != null) {
|
|
317
|
+
const stringValue = String(value);
|
|
318
|
+
if (stringValue.length > columnMaxLength) {
|
|
319
|
+
value = stringValue.substring(0, columnMaxLength) + '...';
|
|
320
|
+
}
|
|
334
321
|
}
|
|
335
|
-
return
|
|
322
|
+
return this.formatCSVValue(value);
|
|
336
323
|
});
|
|
337
324
|
csvRows.push(values.join(','));
|
|
338
325
|
}
|
|
339
326
|
return csvRows.join('\n');
|
|
340
327
|
}
|
|
341
328
|
/**
|
|
342
|
-
* Formats
|
|
329
|
+
* Formats a single CSV row (for headers)
|
|
343
330
|
*/
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
//
|
|
358
|
-
const
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
331
|
+
formatCSVRow(values) {
|
|
332
|
+
return values.map(value => this.formatCSVValue(value)).join(',');
|
|
333
|
+
}
|
|
334
|
+
/**
|
|
335
|
+
* Formats a single CSV value with proper escaping
|
|
336
|
+
* - Null/undefined values become empty strings
|
|
337
|
+
* - All string values are quoted and escaped
|
|
338
|
+
* - Numbers and booleans are converted to strings and quoted
|
|
339
|
+
*/
|
|
340
|
+
formatCSVValue(value) {
|
|
341
|
+
if (value == null) {
|
|
342
|
+
return '""';
|
|
343
|
+
}
|
|
344
|
+
// Convert to string
|
|
345
|
+
const stringValue = String(value);
|
|
346
|
+
// Always quote and escape for maximum compatibility
|
|
347
|
+
// Escape existing double quotes by doubling them
|
|
348
|
+
const escaped = stringValue.replace(/"/g, '""');
|
|
349
|
+
return `"${escaped}"`;
|
|
350
|
+
}
|
|
351
|
+
/**
|
|
352
|
+
* Trims columns in result set to maximum length
|
|
353
|
+
* Used for JSON format results to prevent verbose fields from overwhelming context
|
|
354
|
+
* @param results Array of result objects
|
|
355
|
+
* @param maxLength Maximum length for string values
|
|
356
|
+
* @returns New array with trimmed values
|
|
357
|
+
*/
|
|
358
|
+
trimResultColumns(results, maxLength) {
|
|
359
|
+
return results.map(row => {
|
|
360
|
+
const trimmedRow = {};
|
|
361
|
+
for (const [key, value] of Object.entries(row)) {
|
|
362
|
+
if (value != null && typeof value === 'string' && value.length > maxLength) {
|
|
363
|
+
trimmedRow[key] = value.substring(0, maxLength) + '...';
|
|
364
|
+
}
|
|
365
|
+
else {
|
|
366
|
+
trimmedRow[key] = value;
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
return trimmedRow;
|
|
363
370
|
});
|
|
364
|
-
|
|
371
|
+
}
|
|
372
|
+
/**
|
|
373
|
+
* Analyze query data using AI prompt
|
|
374
|
+
*/
|
|
375
|
+
async analyzeQueryData(results, columns, analysisRequest, params, columnMaxLength = 0) {
|
|
376
|
+
try {
|
|
377
|
+
// Ensure AIEngine is initialized
|
|
378
|
+
await aiengine_1.AIEngine.Instance.Config(false, params.ContextUser);
|
|
379
|
+
// Get the analysis prompt from AIEngine
|
|
380
|
+
const prompt = this.getPromptByNameAndCategory('Analyze Query Data', 'MJ: System');
|
|
381
|
+
if (!prompt) {
|
|
382
|
+
return {
|
|
383
|
+
success: false,
|
|
384
|
+
error: "Prompt 'Analyze Query Data' not found. Ensure metadata has been synced."
|
|
385
|
+
};
|
|
386
|
+
}
|
|
387
|
+
// Format data as CSV for more efficient token usage
|
|
388
|
+
// Apply column max length to trim verbose fields
|
|
389
|
+
const dataCSV = this.formatAsCSV(results, columnMaxLength);
|
|
390
|
+
// Build prompt parameters with data context
|
|
391
|
+
const promptParams = new ai_core_plus_1.AIPromptParams();
|
|
392
|
+
promptParams.prompt = prompt;
|
|
393
|
+
promptParams.data = {
|
|
394
|
+
data: dataCSV,
|
|
395
|
+
columns: columns,
|
|
396
|
+
rowCount: results.length,
|
|
397
|
+
analysisRequest: analysisRequest
|
|
398
|
+
};
|
|
399
|
+
promptParams.contextUser = params.ContextUser;
|
|
400
|
+
// Execute the prompt
|
|
401
|
+
const runner = new ai_prompts_1.AIPromptRunner();
|
|
402
|
+
const result = await runner.ExecutePrompt(promptParams);
|
|
403
|
+
if (!result.success) {
|
|
404
|
+
return {
|
|
405
|
+
success: false,
|
|
406
|
+
error: result.errorMessage || "Prompt execution failed"
|
|
407
|
+
};
|
|
408
|
+
}
|
|
409
|
+
return {
|
|
410
|
+
success: true,
|
|
411
|
+
analysis: result.result?.analysis || String(result.result)
|
|
412
|
+
};
|
|
413
|
+
}
|
|
414
|
+
catch (error) {
|
|
415
|
+
return {
|
|
416
|
+
success: false,
|
|
417
|
+
error: error instanceof Error ? error.message : String(error)
|
|
418
|
+
};
|
|
419
|
+
}
|
|
420
|
+
}
|
|
421
|
+
/**
|
|
422
|
+
* Get prompt by name and category from AIEngine
|
|
423
|
+
*/
|
|
424
|
+
getPromptByNameAndCategory(name, category) {
|
|
425
|
+
return aiengine_1.AIEngine.Instance.Prompts.find(p => p.Name.trim().toLowerCase() === name.trim().toLowerCase() &&
|
|
426
|
+
p.Category?.trim().toLowerCase() === category?.trim().toLowerCase());
|
|
365
427
|
}
|
|
366
428
|
/**
|
|
367
429
|
* Helper to get string parameter value
|
|
@@ -384,19 +446,64 @@ let ExecuteResearchQueryAction = class ExecuteResearchQueryAction extends action
|
|
|
384
446
|
return defaultValue;
|
|
385
447
|
}
|
|
386
448
|
/**
|
|
387
|
-
*
|
|
449
|
+
* Build detailed message with query results for agent consumption
|
|
388
450
|
*/
|
|
389
|
-
|
|
390
|
-
const
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
451
|
+
buildDetailedMessage(results, columns, executionTimeMs, totalTimeMs, wasTruncated, warnings, returnType, formattedData, analysis) {
|
|
452
|
+
const lines = [];
|
|
453
|
+
// Header
|
|
454
|
+
lines.push(`# Query Results`);
|
|
455
|
+
lines.push(`\n**Rows Returned:** ${results.length.toLocaleString()}`);
|
|
456
|
+
lines.push(`**Execution Time:** ${executionTimeMs}ms`);
|
|
457
|
+
lines.push(`**Total Time:** ${totalTimeMs}ms`);
|
|
458
|
+
if (wasTruncated) {
|
|
459
|
+
lines.push(`**Note:** Results were truncated to maximum row limit`);
|
|
398
460
|
}
|
|
399
|
-
|
|
461
|
+
lines.push(`\n---\n`);
|
|
462
|
+
// Columns
|
|
463
|
+
if (columns.length > 0) {
|
|
464
|
+
lines.push(`## Columns (${columns.length})\n`);
|
|
465
|
+
for (const col of columns) {
|
|
466
|
+
const nullable = col.IsNullable ? 'NULL' : 'NOT NULL';
|
|
467
|
+
lines.push(`- **${col.ColumnName}** \`${col.DataType}\` [${nullable}]`);
|
|
468
|
+
}
|
|
469
|
+
lines.push('');
|
|
470
|
+
}
|
|
471
|
+
// Warnings
|
|
472
|
+
if (warnings.length > 0) {
|
|
473
|
+
lines.push(`## Warnings\n`);
|
|
474
|
+
for (const warning of warnings) {
|
|
475
|
+
lines.push(`⚠️ ${warning}`);
|
|
476
|
+
}
|
|
477
|
+
lines.push('');
|
|
478
|
+
}
|
|
479
|
+
// Analysis section (if applicable)
|
|
480
|
+
if (analysis && (returnType === 'analysis only' || returnType === 'data and analysis')) {
|
|
481
|
+
lines.push(`## Analysis\n`);
|
|
482
|
+
lines.push(analysis);
|
|
483
|
+
lines.push('');
|
|
484
|
+
}
|
|
485
|
+
// Results Data (if applicable)
|
|
486
|
+
if (returnType === 'data only' || returnType === 'data and analysis') {
|
|
487
|
+
if (results.length > 0) {
|
|
488
|
+
lines.push(`## Data (${results.length} row${results.length !== 1 ? 's' : ''})\n`);
|
|
489
|
+
if (formattedData) {
|
|
490
|
+
lines.push('```');
|
|
491
|
+
lines.push(formattedData);
|
|
492
|
+
lines.push('```');
|
|
493
|
+
}
|
|
494
|
+
else {
|
|
495
|
+
lines.push('```json');
|
|
496
|
+
lines.push(JSON.stringify(results, null, 2));
|
|
497
|
+
lines.push('```');
|
|
498
|
+
}
|
|
499
|
+
}
|
|
500
|
+
else {
|
|
501
|
+
lines.push(`## Data\n*No rows returned*`);
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
lines.push(`\n---`);
|
|
505
|
+
lines.push(`\n**The full result set is available in the Results output parameter for further processing.**`);
|
|
506
|
+
return lines.join('\n');
|
|
400
507
|
}
|
|
401
508
|
};
|
|
402
509
|
exports.ExecuteResearchQueryAction = ExecuteResearchQueryAction;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute-research-query.action.js","sourceRoot":"","sources":["../../../src/custom/data/execute-research-query.action.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"execute-research-query.action.js","sourceRoot":"","sources":["../../../src/custom/data/execute-research-query.action.ts"],"names":[],"mappings":"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"}
|