UNPKG

@memberjunction/ai-agent-manager-actions

Version:

Agent Management actions for creating and managing AI agents in MemberJunction

134 lines 5.83 kB
"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); 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; return c > 3 && r && Object.defineProperty(target, key, r), r; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.LoadGetActionDetailsAction = exports.GetActionDetailsAction = void 0; const global_1 = require("@memberjunction/global"); const core_1 = require("@memberjunction/core"); const base_agent_management_action_1 = require("./base-agent-management.action"); const actions_1 = require("@memberjunction/actions"); /** * Gets detailed information about a specific action including all metadata, * parameters, and result codes. * This action is restricted to the Agent Manager agent only. * * @example * ```typescript * const result = await runAction({ * ActionName: 'Get Action Details', * Params: [ * { Name: 'ActionID', Value: 'action-id' } * ] * }); * // Returns ActionDetails object in output params * ``` */ let GetActionDetailsAction = class GetActionDetailsAction extends base_agent_management_action_1.BaseAgentManagementAction { async InternalRunAction(params) { try { // Validate permission const permissionError = await this.validateAgentManagerPermission(params); if (permissionError) return permissionError; // Extract parameters const actionIDResult = this.getStringParam(params, 'ActionID'); if (actionIDResult.error) return actionIDResult.error; // Load the action const md = this.getMetadata(); const action = await md.GetEntityObject('Actions', params.ContextUser); if (!action) { return { Success: false, ResultCode: 'FAILED', Message: 'Failed to create Action entity object' }; } const loadResult = await action.Load(actionIDResult.value); if (!loadResult) { return { Success: false, ResultCode: 'NOT_FOUND', Message: `Action with ID '${actionIDResult.value}' not found` }; } // Get action parameters and result codes in parallel const rv = new core_1.RunView(); const viewsToRun = [ { EntityName: 'Action Params', ExtraFilter: `ActionID = '${action.ID}'`, OrderBy: 'Sequence, Name', ResultType: 'entity_object' }, { EntityName: 'Action Result Codes', ExtraFilter: `ActionID = '${action.ID}'`, OrderBy: 'ResultCode', ResultType: 'entity_object' } ]; // Run both views in parallel with a single database operation const results = await rv.RunViews(viewsToRun, params.ContextUser); const paramsResult = results[0]; const resultCodesResult = results[1]; const actionParams = paramsResult.Success ? (paramsResult.Results || []) : []; const resultCodes = resultCodesResult.Success ? (resultCodesResult.Results || []) : []; // Build the action details object const actionDetails = { ID: action.ID, Name: action.Name, Description: action.Description, Type: action.Type, Status: action.Status, CategoryID: action.CategoryID, Category: action.Category, DriverClass: action.DriverClass, Parameters: actionParams.map(p => ({ ID: p.ID, Name: p.Name, Type: p.Type, ValueType: p.ValueType, IsArray: p.IsArray, Description: p.Description, IsRequired: p.IsRequired, DefaultValue: p.DefaultValue })), ResultCodes: resultCodes.map(rc => ({ ID: rc.ID, ResultCode: rc.ResultCode, IsSuccess: rc.IsSuccess, Description: rc.Description })) }; // Add output parameter params.Params.push({ Name: 'ActionDetails', Value: actionDetails, Type: 'Output' }); return { Success: true, ResultCode: 'SUCCESS', Message: `Successfully retrieved details for action '${action.Name}'`, Params: params.Params }; } catch (e) { return this.handleError(e, 'get action details'); } } }; exports.GetActionDetailsAction = GetActionDetailsAction; exports.GetActionDetailsAction = GetActionDetailsAction = __decorate([ (0, global_1.RegisterClass)(actions_1.BaseAction, "Get Action Details") ], GetActionDetailsAction); function LoadGetActionDetailsAction() { // This function exists to prevent tree shaking from removing the action class } exports.LoadGetActionDetailsAction = LoadGetActionDetailsAction; //# sourceMappingURL=get-action-details.action.js.map