@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
|
@@ -1,39 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
2
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
19
3
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
20
4
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
21
5
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
22
6
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
23
7
|
};
|
|
24
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
25
|
-
if (mod && mod.__esModule) return mod;
|
|
26
|
-
var result = {};
|
|
27
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
28
|
-
__setModuleDefault(result, mod);
|
|
29
|
-
return result;
|
|
30
|
-
};
|
|
31
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
32
9
|
exports.LoadSummarizeContentAction = exports.SummarizeContentAction = void 0;
|
|
33
10
|
const actions_base_1 = require("@memberjunction/actions-base");
|
|
34
11
|
const actions_1 = require("@memberjunction/actions");
|
|
35
12
|
const global_1 = require("@memberjunction/global");
|
|
36
13
|
const core_1 = require("@memberjunction/core");
|
|
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");
|
|
37
17
|
/**
|
|
38
18
|
* Action that creates a concise summary of content with citations to source material.
|
|
39
19
|
* Can work with either a URL (fetch + summarize) or pre-fetched content.
|
|
@@ -155,14 +135,29 @@ let SummarizeContentAction = class SummarizeContentAction extends actions_1.Base
|
|
|
155
135
|
*/
|
|
156
136
|
async fetchWebPageContent(url, params) {
|
|
157
137
|
try {
|
|
158
|
-
//
|
|
138
|
+
// Load the Web Page Content action
|
|
139
|
+
await actions_base_1.ActionEngineBase.Instance.Config(false, params.ContextUser);
|
|
140
|
+
const action = actions_base_1.ActionEngineBase.Instance.Actions.find(a => a.Name === 'Web Page Content');
|
|
141
|
+
if (!action) {
|
|
142
|
+
return {
|
|
143
|
+
success: false,
|
|
144
|
+
error: "Action 'Web Page Content' not found"
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
// Build action params
|
|
159
148
|
const actionParams = [{
|
|
160
149
|
Name: "url",
|
|
161
150
|
Type: "Input",
|
|
162
151
|
Value: url
|
|
163
152
|
}];
|
|
164
|
-
|
|
165
|
-
|
|
153
|
+
const runParams = new actions_base_1.RunActionParams();
|
|
154
|
+
runParams.Action = action;
|
|
155
|
+
runParams.Params = actionParams;
|
|
156
|
+
runParams.ContextUser = params.ContextUser;
|
|
157
|
+
runParams.SkipActionLog = true;
|
|
158
|
+
// Execute the action
|
|
159
|
+
const engine = new actions_1.ActionEngineServer();
|
|
160
|
+
const result = await engine.RunAction(runParams);
|
|
166
161
|
if (!result.Success) {
|
|
167
162
|
return {
|
|
168
163
|
success: false,
|
|
@@ -184,105 +179,47 @@ let SummarizeContentAction = class SummarizeContentAction extends actions_1.Base
|
|
|
184
179
|
}
|
|
185
180
|
}
|
|
186
181
|
/**
|
|
187
|
-
* Generate summary using
|
|
182
|
+
* Generate summary using AI Prompts package directly
|
|
188
183
|
*/
|
|
189
184
|
async generateSummary(content, sourceUrl, options, params) {
|
|
190
185
|
try {
|
|
191
|
-
//
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
type: "array",
|
|
206
|
-
description: `Up to ${options.maxCitations} most relevant quotes with source links`,
|
|
207
|
-
items: {
|
|
208
|
-
type: "object",
|
|
209
|
-
properties: {
|
|
210
|
-
text: { type: "string", description: "Exact quote from content" },
|
|
211
|
-
url: { type: "string", description: "URL with anchor if available" },
|
|
212
|
-
anchorId: { type: "string", description: "HTML anchor ID if found" },
|
|
213
|
-
context: { type: "string", description: "Brief context around quote" },
|
|
214
|
-
relevance: { type: "string", description: "Why this quote is important" }
|
|
215
|
-
},
|
|
216
|
-
required: ["text", "url", "relevance"]
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
}),
|
|
220
|
-
...(options.format === "bullets" || options.format === "hybrid" ? {
|
|
221
|
-
keyPoints: {
|
|
222
|
-
type: "array",
|
|
223
|
-
description: "Key bullet points from content",
|
|
224
|
-
items: { type: "string" }
|
|
225
|
-
}
|
|
226
|
-
} : {}),
|
|
227
|
-
metadata: {
|
|
228
|
-
type: "object",
|
|
229
|
-
properties: {
|
|
230
|
-
pageTitle: { type: "string" },
|
|
231
|
-
sourceUrl: { type: "string" }
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
},
|
|
235
|
-
required: ["summary", "wordCount", "metadata"]
|
|
236
|
-
};
|
|
237
|
-
// Build the prompt data
|
|
238
|
-
const promptData = {
|
|
186
|
+
// Ensure AIEngine is initialized
|
|
187
|
+
await aiengine_1.AIEngine.Instance.Config(false, params.ContextUser);
|
|
188
|
+
// Get the summarization prompt from AIEngine
|
|
189
|
+
const prompt = this.getPromptByNameAndCategory('Summarize Content', 'MJ: System');
|
|
190
|
+
if (!prompt) {
|
|
191
|
+
return {
|
|
192
|
+
success: false,
|
|
193
|
+
error: "Prompt 'Summarize Content' not found. Ensure metadata has been synced."
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
// Build prompt parameters with data context
|
|
197
|
+
const promptParams = new ai_core_plus_1.AIPromptParams();
|
|
198
|
+
promptParams.prompt = prompt;
|
|
199
|
+
promptParams.data = {
|
|
239
200
|
content,
|
|
240
201
|
sourceUrl,
|
|
241
202
|
summaryWords: options.summaryWords,
|
|
242
203
|
includeCitations: options.includeCitations,
|
|
243
204
|
maxCitations: options.maxCitations,
|
|
244
205
|
instructions: options.instructions,
|
|
245
|
-
format: options.format
|
|
246
|
-
structuredOutput: JSON.stringify(structuredOutput)
|
|
206
|
+
format: options.format
|
|
247
207
|
};
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
Type: "Input",
|
|
256
|
-
Value: JSON.stringify(promptData)
|
|
257
|
-
}, {
|
|
258
|
-
Name: "responseFormat",
|
|
259
|
-
Type: "Input",
|
|
260
|
-
Value: "json_object"
|
|
261
|
-
}];
|
|
262
|
-
const result = await this.executeAction("Execute AI Prompt", actionParams, params.ContextUser);
|
|
263
|
-
if (!result.Success) {
|
|
208
|
+
promptParams.contextUser = params.ContextUser;
|
|
209
|
+
promptParams.cleanValidationSyntax = true;
|
|
210
|
+
promptParams.attemptJSONRepair = true;
|
|
211
|
+
// Execute the prompt
|
|
212
|
+
const runner = new ai_prompts_1.AIPromptRunner();
|
|
213
|
+
const result = await runner.ExecutePrompt(promptParams);
|
|
214
|
+
if (!result.success) {
|
|
264
215
|
return {
|
|
265
216
|
success: false,
|
|
266
|
-
error: result.
|
|
267
|
-
};
|
|
268
|
-
}
|
|
269
|
-
// Parse the result
|
|
270
|
-
let parsedResult;
|
|
271
|
-
try {
|
|
272
|
-
// The Execute AI Prompt action should return parsed JSON in Message
|
|
273
|
-
parsedResult = typeof result.Message === "string"
|
|
274
|
-
? JSON.parse(result.Message)
|
|
275
|
-
: result.Message;
|
|
276
|
-
}
|
|
277
|
-
catch (parseError) {
|
|
278
|
-
return {
|
|
279
|
-
success: false,
|
|
280
|
-
error: `Failed to parse AI response: ${parseError}`
|
|
217
|
+
error: result.errorMessage || "Prompt execution failed"
|
|
281
218
|
};
|
|
282
219
|
}
|
|
283
220
|
return {
|
|
284
221
|
success: true,
|
|
285
|
-
data:
|
|
222
|
+
data: result.result
|
|
286
223
|
};
|
|
287
224
|
}
|
|
288
225
|
catch (error) {
|
|
@@ -293,40 +230,11 @@ let SummarizeContentAction = class SummarizeContentAction extends actions_1.Base
|
|
|
293
230
|
}
|
|
294
231
|
}
|
|
295
232
|
/**
|
|
296
|
-
*
|
|
233
|
+
* Get prompt by name and category from AIEngine
|
|
297
234
|
*/
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
const rv = new RunView();
|
|
302
|
-
const result = await rv.RunView({
|
|
303
|
-
EntityName: 'Actions',
|
|
304
|
-
ExtraFilter: `Name='${actionName.replace(/'/g, "''")}'`,
|
|
305
|
-
ResultType: 'entity_object'
|
|
306
|
-
}, contextUser);
|
|
307
|
-
if (!result.Success || !result.Results || result.Results.length === 0) {
|
|
308
|
-
return {
|
|
309
|
-
Success: false,
|
|
310
|
-
ResultCode: "ACTION_NOT_FOUND",
|
|
311
|
-
Message: `Action "${actionName}" not found`
|
|
312
|
-
};
|
|
313
|
-
}
|
|
314
|
-
const action = result.Results[0];
|
|
315
|
-
// Build RunActionParams
|
|
316
|
-
const runParams = new actions_base_1.RunActionParams();
|
|
317
|
-
runParams.Action = action;
|
|
318
|
-
runParams.Params = params;
|
|
319
|
-
runParams.ContextUser = contextUser;
|
|
320
|
-
runParams.SkipActionLog = true; // Don't log sub-action executions
|
|
321
|
-
// Execute the action
|
|
322
|
-
const engine = new actions_1.ActionEngineServer();
|
|
323
|
-
const actionResult = await engine.RunAction(runParams);
|
|
324
|
-
return {
|
|
325
|
-
Success: actionResult.Success,
|
|
326
|
-
ResultCode: actionResult.Success ? "SUCCESS" : "ERROR",
|
|
327
|
-
Message: actionResult.Message,
|
|
328
|
-
Params: actionResult.Params
|
|
329
|
-
};
|
|
235
|
+
getPromptByNameAndCategory(name, category) {
|
|
236
|
+
return aiengine_1.AIEngine.Instance.Prompts.find(p => p.Name.trim().toLowerCase() === name.trim().toLowerCase() &&
|
|
237
|
+
p.Category?.trim().toLowerCase() === category?.trim().toLowerCase());
|
|
330
238
|
}
|
|
331
239
|
// Helper methods (consistent with other actions)
|
|
332
240
|
getStringParam(params, paramName, defaultValue) {
|
|
@@ -376,7 +284,7 @@ let SummarizeContentAction = class SummarizeContentAction extends actions_1.Base
|
|
|
376
284
|
};
|
|
377
285
|
exports.SummarizeContentAction = SummarizeContentAction;
|
|
378
286
|
exports.SummarizeContentAction = SummarizeContentAction = __decorate([
|
|
379
|
-
(0, global_1.RegisterClass)(actions_1.BaseAction, "
|
|
287
|
+
(0, global_1.RegisterClass)(actions_1.BaseAction, "SummarizeContentAction")
|
|
380
288
|
], SummarizeContentAction);
|
|
381
289
|
/**
|
|
382
290
|
* Loader function to ensure the SummarizeContentAction class is included in the bundle.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"summarize-content.action.js","sourceRoot":"","sources":["../../../src/custom/ai/summarize-content.action.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"summarize-content.action.js","sourceRoot":"","sources":["../../../src/custom/ai/summarize-content.action.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Execute Code Action
|
|
3
|
+
*
|
|
4
|
+
* Thin wrapper action that exposes code execution capabilities to AI agents and workflows.
|
|
5
|
+
* Delegates all logic to CodeExecutionService following MJ's pattern of Actions as boundaries.
|
|
6
|
+
*
|
|
7
|
+
* @module @memberjunction/core-actions
|
|
8
|
+
*/
|
|
9
|
+
import { BaseAction } from '@memberjunction/actions';
|
|
10
|
+
import { RunActionParams, ActionResultSimple } from '@memberjunction/actions-base';
|
|
11
|
+
/**
|
|
12
|
+
* Action for executing JavaScript code in a sandboxed environment
|
|
13
|
+
*
|
|
14
|
+
* This is a THIN WRAPPER - all core logic lives in CodeExecutionService.
|
|
15
|
+
* The action's job is simply to:
|
|
16
|
+
* 1. Extract parameters from the action interface
|
|
17
|
+
* 2. Delegate to CodeExecutionService
|
|
18
|
+
* 3. Map results back to ActionResultSimple
|
|
19
|
+
*
|
|
20
|
+
* Security is enforced entirely by CodeExecutionService.
|
|
21
|
+
*
|
|
22
|
+
* @example Agent usage:
|
|
23
|
+
* ```json
|
|
24
|
+
* {
|
|
25
|
+
* "type": "Action",
|
|
26
|
+
* "action": {
|
|
27
|
+
* "name": "Execute Code",
|
|
28
|
+
* "params": {
|
|
29
|
+
* "code": "const sum = input.values.reduce((a,b) => a+b, 0); output = sum;",
|
|
30
|
+
* "language": "javascript",
|
|
31
|
+
* "inputData": "{\"values\": [1,2,3,4,5]}"
|
|
32
|
+
* }
|
|
33
|
+
* }
|
|
34
|
+
* }
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
export declare class ExecuteCodeAction extends BaseAction {
|
|
38
|
+
/**
|
|
39
|
+
* Execute the action by delegating to CodeExecutionService
|
|
40
|
+
*
|
|
41
|
+
* @param params - Action parameters including code, language, inputData
|
|
42
|
+
* @returns ActionResultSimple with execution results or errors
|
|
43
|
+
*/
|
|
44
|
+
protected InternalRunAction(params: RunActionParams): Promise<ActionResultSimple>;
|
|
45
|
+
/**
|
|
46
|
+
* Helper to get string parameter from action params
|
|
47
|
+
* @private
|
|
48
|
+
*/
|
|
49
|
+
private getStringParam;
|
|
50
|
+
/**
|
|
51
|
+
* Helper to get numeric parameter from action params
|
|
52
|
+
* @private
|
|
53
|
+
*/
|
|
54
|
+
private getNumericParam;
|
|
55
|
+
/**
|
|
56
|
+
* Helper to add output parameter to action results
|
|
57
|
+
* @private
|
|
58
|
+
*/
|
|
59
|
+
private addOutputParam;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=execute-code.action.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execute-code.action.d.ts","sourceRoot":"","sources":["../../../src/custom/code-execution/execute-code.action.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAQnF;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBACa,iBAAkB,SAAQ,UAAU;IAC7C;;;;;OAKG;cACa,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAqFvF;;;OAGG;IACH,OAAO,CAAC,cAAc;IAStB;;;OAGG;IACH,OAAO,CAAC,eAAe;IASvB;;;OAGG;IACH,OAAO,CAAC,cAAc;CAOzB"}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Execute Code Action
|
|
4
|
+
*
|
|
5
|
+
* Thin wrapper action that exposes code execution capabilities to AI agents and workflows.
|
|
6
|
+
* Delegates all logic to CodeExecutionService following MJ's pattern of Actions as boundaries.
|
|
7
|
+
*
|
|
8
|
+
* @module @memberjunction/core-actions
|
|
9
|
+
*/
|
|
10
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
11
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
12
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
13
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
14
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.ExecuteCodeAction = void 0;
|
|
18
|
+
const actions_1 = require("@memberjunction/actions");
|
|
19
|
+
const global_1 = require("@memberjunction/global");
|
|
20
|
+
const code_execution_1 = require("@memberjunction/code-execution");
|
|
21
|
+
const core_1 = require("@memberjunction/core");
|
|
22
|
+
/**
|
|
23
|
+
* Action for executing JavaScript code in a sandboxed environment
|
|
24
|
+
*
|
|
25
|
+
* This is a THIN WRAPPER - all core logic lives in CodeExecutionService.
|
|
26
|
+
* The action's job is simply to:
|
|
27
|
+
* 1. Extract parameters from the action interface
|
|
28
|
+
* 2. Delegate to CodeExecutionService
|
|
29
|
+
* 3. Map results back to ActionResultSimple
|
|
30
|
+
*
|
|
31
|
+
* Security is enforced entirely by CodeExecutionService.
|
|
32
|
+
*
|
|
33
|
+
* @example Agent usage:
|
|
34
|
+
* ```json
|
|
35
|
+
* {
|
|
36
|
+
* "type": "Action",
|
|
37
|
+
* "action": {
|
|
38
|
+
* "name": "Execute Code",
|
|
39
|
+
* "params": {
|
|
40
|
+
* "code": "const sum = input.values.reduce((a,b) => a+b, 0); output = sum;",
|
|
41
|
+
* "language": "javascript",
|
|
42
|
+
* "inputData": "{\"values\": [1,2,3,4,5]}"
|
|
43
|
+
* }
|
|
44
|
+
* }
|
|
45
|
+
* }
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
let ExecuteCodeAction = class ExecuteCodeAction extends actions_1.BaseAction {
|
|
49
|
+
/**
|
|
50
|
+
* Execute the action by delegating to CodeExecutionService
|
|
51
|
+
*
|
|
52
|
+
* @param params - Action parameters including code, language, inputData
|
|
53
|
+
* @returns ActionResultSimple with execution results or errors
|
|
54
|
+
*/
|
|
55
|
+
async InternalRunAction(params) {
|
|
56
|
+
try {
|
|
57
|
+
// 1. Extract parameters (this is all the action does besides delegation)
|
|
58
|
+
const code = this.getStringParam(params, "code");
|
|
59
|
+
const language = this.getStringParam(params, "language", "javascript");
|
|
60
|
+
const inputDataStr = this.getStringParam(params, "inputData");
|
|
61
|
+
const timeout = this.getNumericParam(params, "timeout", 30);
|
|
62
|
+
const memoryLimit = this.getNumericParam(params, "memoryLimit", 128);
|
|
63
|
+
// Validate required parameters
|
|
64
|
+
if (!code) {
|
|
65
|
+
return {
|
|
66
|
+
Success: false,
|
|
67
|
+
ResultCode: "MISSING_CODE",
|
|
68
|
+
Message: "Parameter 'code' is required"
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
// Parse input data if provided
|
|
72
|
+
let inputData = undefined;
|
|
73
|
+
if (inputDataStr) {
|
|
74
|
+
try {
|
|
75
|
+
inputData = JSON.parse(inputDataStr);
|
|
76
|
+
}
|
|
77
|
+
catch (parseError) {
|
|
78
|
+
return {
|
|
79
|
+
Success: false,
|
|
80
|
+
ResultCode: "INVALID_INPUT_DATA",
|
|
81
|
+
Message: `Failed to parse inputData as JSON: ${parseError instanceof Error ? parseError.message : String(parseError)}`
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
// 2. Delegate to service (DIRECT IMPORT - not another action!)
|
|
86
|
+
const executionService = new code_execution_1.CodeExecutionService();
|
|
87
|
+
const executionParams = {
|
|
88
|
+
code,
|
|
89
|
+
language,
|
|
90
|
+
inputData,
|
|
91
|
+
timeoutSeconds: timeout,
|
|
92
|
+
memoryLimitMB: memoryLimit
|
|
93
|
+
};
|
|
94
|
+
const result = await executionService.execute(executionParams);
|
|
95
|
+
// 3. Map results to action format
|
|
96
|
+
if (!result.success) {
|
|
97
|
+
return {
|
|
98
|
+
Success: false,
|
|
99
|
+
ResultCode: result.errorType || "EXECUTION_FAILED",
|
|
100
|
+
Message: result.error || "Code execution failed"
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
// Add output parameters for agents to use
|
|
104
|
+
if (result.output !== undefined) {
|
|
105
|
+
this.addOutputParam(params, "output", result.output);
|
|
106
|
+
}
|
|
107
|
+
if (result.logs && result.logs.length > 0) {
|
|
108
|
+
this.addOutputParam(params, "logs", result.logs);
|
|
109
|
+
}
|
|
110
|
+
if (result.executionTimeMs !== undefined) {
|
|
111
|
+
this.addOutputParam(params, "executionTimeMs", result.executionTimeMs);
|
|
112
|
+
}
|
|
113
|
+
return {
|
|
114
|
+
Success: true,
|
|
115
|
+
ResultCode: "SUCCESS",
|
|
116
|
+
Message: JSON.stringify({
|
|
117
|
+
output: result.output,
|
|
118
|
+
logs: result.logs,
|
|
119
|
+
executionTimeMs: result.executionTimeMs
|
|
120
|
+
})
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
catch (error) {
|
|
124
|
+
(0, core_1.LogError)(`Error in ExecuteCodeAction: ${error}`);
|
|
125
|
+
return {
|
|
126
|
+
Success: false,
|
|
127
|
+
ResultCode: "UNEXPECTED_ERROR",
|
|
128
|
+
Message: error instanceof Error ? error.message : String(error)
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Helper to get string parameter from action params
|
|
134
|
+
* @private
|
|
135
|
+
*/
|
|
136
|
+
getStringParam(params, name, defaultValue) {
|
|
137
|
+
const param = params.Params.find(p => p.Name.trim().toLowerCase() === name.toLowerCase());
|
|
138
|
+
if (!param || param.Value === undefined || param.Value === null) {
|
|
139
|
+
return defaultValue;
|
|
140
|
+
}
|
|
141
|
+
const value = String(param.Value).trim();
|
|
142
|
+
return value.length > 0 ? value : defaultValue;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Helper to get numeric parameter from action params
|
|
146
|
+
* @private
|
|
147
|
+
*/
|
|
148
|
+
getNumericParam(params, name, defaultValue) {
|
|
149
|
+
const param = params.Params.find(p => p.Name.trim().toLowerCase() === name.toLowerCase());
|
|
150
|
+
if (!param || param.Value === undefined || param.Value === null) {
|
|
151
|
+
return defaultValue;
|
|
152
|
+
}
|
|
153
|
+
const parsed = Number(param.Value);
|
|
154
|
+
return isNaN(parsed) ? defaultValue : parsed;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Helper to add output parameter to action results
|
|
158
|
+
* @private
|
|
159
|
+
*/
|
|
160
|
+
addOutputParam(params, name, value) {
|
|
161
|
+
params.Params.push({
|
|
162
|
+
Name: name,
|
|
163
|
+
Type: "Output",
|
|
164
|
+
Value: value
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
};
|
|
168
|
+
exports.ExecuteCodeAction = ExecuteCodeAction;
|
|
169
|
+
exports.ExecuteCodeAction = ExecuteCodeAction = __decorate([
|
|
170
|
+
(0, global_1.RegisterClass)(actions_1.BaseAction, "Execute Code")
|
|
171
|
+
], ExecuteCodeAction);
|
|
172
|
+
//# sourceMappingURL=execute-code.action.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execute-code.action.js","sourceRoot":"","sources":["../../../src/custom/code-execution/execute-code.action.ts"],"names":[],"mappings":"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"}
|
|
@@ -127,7 +127,7 @@ let CSVParserAction = class CSVParserAction extends base_file_handler_1.BaseFile
|
|
|
127
127
|
skipEmptyLines: skipEmptyRows ? 'greedy' : false,
|
|
128
128
|
dynamicTyping: dynamicTyping,
|
|
129
129
|
preview: maxRows > 0 ? maxRows : undefined,
|
|
130
|
-
|
|
130
|
+
transform: (value, field) => {
|
|
131
131
|
return trimValues ? value.trim() : value;
|
|
132
132
|
}
|
|
133
133
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"csv-parser.action.js","sourceRoot":"","sources":["../../../src/custom/data/csv-parser.action.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,mDAAuD;AACvD,sEAAuE;AACvE,gDAAkC;AAClC,qDAAqD;AAErD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEI,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,yCAAqB;IAEtD;;;;;;;;;;;;;;;;;OAiBG;IACO,KAAK,CAAC,iBAAiB,CAAC,MAAuB;QACrD,IAAI,CAAC;YACD,wCAAwC;YACxC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAEjE,sBAAsB;YACtB,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;YACpE,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,GAAG,CAAC;YACjE,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,GAAG,CAAC;YACjE,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,YAAY,CAAC,IAAI,GAAG,CAAC;YACnE,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,eAAe,EAAE,IAAI,CAAC,CAAC;YAC1E,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;YACpE,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,eAAe,EAAE,IAAI,CAAC,CAAC;YAC1E,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;YAE3D,qBAAqB;YACrB,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,OAAO;oBACH,OAAO,EAAE,KAAK;oBACd,OAAO,EAAE,sCAAsC;oBAC/C,UAAU,EAAE,mBAAmB;iBAClC,CAAC;YACN,CAAC;YAED,wCAAwC;YACxC,MAAM,SAAS,GAAG,OAAO,WAAW,CAAC,OAAO,KAAK,QAAQ;gBACrD,CAAC,CAAC,WAAW,CAAC,OAAO;gBACrB,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YAErC,4BAA4B;YAC5B,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;gBACtC,MAAM,EAAE,UAAU;gBAClB,SAAS,EAAE,SAAS;gBACpB,SAAS,EAAE,SAAS;gBACpB,UAAU,EAAE,UAAU;gBACtB,cAAc,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK;gBAChD,aAAa,EAAE,aAAa;gBAC5B,OAAO,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;gBAC1C,
|
|
1
|
+
{"version":3,"file":"csv-parser.action.js","sourceRoot":"","sources":["../../../src/custom/data/csv-parser.action.ts"],"names":[],"mappings":"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"}
|