adpa-enterprise-framework-automation
Version:
Modular, standards-compliant Node.js/TypeScript automation framework for enterprise requirements, project, and data management. Provides CLI and API for BABOK v3, PMBOK 7th Edition, and DMBOK 2.0 (in progress). Production-ready Express.js API with TypeSpe
142 lines • 11.6 kB
JavaScript
/**
* AI Function Processors Index for Requirements Gathering Agent
*
* Central export hub for domain-specific AI processors organized by
* functional area for better maintainability and modularity.
*
* @version 2.1.3
* @author Requirements Gathering Agent Team
* @created 2024
* @updated June 2025
*
* Key Features:
* - Domain-separated AI processors for specialized functionality
* - Organized exports by functional area (stakeholder, technical, etc.)
* - Type-safe processor interfaces and implementations
* - Modular architecture for easy extension
* - Clean separation of concerns
*
* @filepath c:\Users\menno\Source\Repos\requirements-gathering-agent\src\modules\ai\processors\index.ts
*/
import { AIProcessor } from "../AIProcessor.js";
// Import domain-specific processors
import { StakeholderProcessor } from "./StakeholderProcessor.js";
import { TechnicalAnalysisProcessor } from "./TechnicalAnalysisProcessor.js";
import { TechnicalRecommendationsProcessor } from "./TechnicalRecommendationsProcessor.js";
import { RequirementsProcessor } from "./RequirementsProcessor.js";
import { PMBOKProcessProcessor } from "./PMBOKProcessProcessor.js";
import { PlanningProcessor } from "./PlanningProcessor.js";
import { WBSProcessor } from "./WBSProcessor.js";
import { ActivityProcessor } from "./ActivityProcessor.js";
import { ScopeManagementProcessor } from "./ScopeManagementProcessor.js";
import { ProjectManagementProcessor } from "./ProjectManagementProcessor.js";
import { StrategicStatementsProcessor } from './StrategicStatementsProcessor.js';
export { BaseAIProcessor } from "./BaseAIProcessor.js";
// Export the ProcessorFactory
export { ProcessorFactory } from "./ProcessorFactory.js";
const aiProcessor = AIProcessor.getInstance();
// Use lazy initialization to resolve circular dependency
let _contextManager = null;
// Lazy initialization function for contextManager
async function getContextManager() {
if (!_contextManager) {
// Import dynamically to avoid circular dependency
const { ContextManager } = await import("../../contextManager.js");
_contextManager = new ContextManager();
}
return _contextManager;
}
// Create instances
const projectManagementProcessor = new ProjectManagementProcessor();
const pmbokProcessor = new PMBOKProcessProcessor();
const scopeProcessor = new ScopeManagementProcessor();
const stakeholderProcessor = new StakeholderProcessor();
const technicalProcessor = new TechnicalAnalysisProcessor();
const technicalRecommendationsProcessor = new TechnicalRecommendationsProcessor();
const requirementsProcessor = new RequirementsProcessor();
const planningProcessor = new PlanningProcessor();
const wbsProcessor = new WBSProcessor();
const activityProcessor = new ActivityProcessor();
const strategicStatementsProcessor = new StrategicStatementsProcessor();
// Helper function to safely handle null returns from processors
const safeProcessorCall = async (processorPromise) => {
const result = await processorPromise;
return result ?? '';
};
const safeProcessorCallSync = (processorFunction, context) => {
const result = processorFunction(context);
return result ?? '';
};
// Export individual functions - delegate to processors with proper implementations
// Core Analysis Documents
export const getAiSummaryAndGoals = async (context) => await safeProcessorCall(requirementsProcessor.getSummaryAndGoals(context));
export const getAiUserStories = async (context) => await safeProcessorCall(requirementsProcessor.getUserStories(context));
export const getAiUserPersonas = async (context) => await safeProcessorCall(requirementsProcessor.getUserPersonas(context));
export const getAiKeyRolesAndNeeds = async (context) => await safeProcessorCall(requirementsProcessor.getKeyRolesAndNeeds(context));
export const getAiProjectStatementOfWork = async (context) => await safeProcessorCall(projectManagementProcessor.getProjectStatementOfWork(context));
export const getAiBusinessCase = async (context) => await safeProcessorCall(projectManagementProcessor.getBusinessCase(context));
// Strategic Statements
export const getMissionVisionAndCoreValues = async (context) => await safeProcessorCall(strategicStatementsProcessor.getAiMissionVisionAndCoreValues(context));
export const getProjectPurpose = async (context) => await safeProcessorCall(strategicStatementsProcessor.getAiProjectPurpose(context));
// Project Charter
export const getAiProjectCharter = async (context) => await safeProcessorCall(pmbokProcessor.getProjectCharter(context));
export const getAiProjectManagementPlan = async (context) => await safeProcessorCall(pmbokProcessor.getProjectManagementPlan(context));
// PMBOK Process Functions
export const getAiDirectAndManageProjectWorkProcess = async (context) => await safeProcessorCall(pmbokProcessor.getDirectAndManageProjectWork(context));
export const getAiPerformIntegratedChangeControlProcess = async (context) => await safeProcessorCall(pmbokProcessor.getPerformIntegratedChangeControlProcess(context));
export const getAiCloseProjectOrPhaseProcess = async (context) => await safeProcessorCall(pmbokProcessor.getCloseProjectOrPhaseProcess(context));
export const getAiPlanScopeManagement = async (context) => await safeProcessorCall(scopeProcessor.getPlanScopeManagement(context));
export const getAiRequirementsManagementPlan = async (context) => await safeProcessorCall(requirementsProcessor.getRequirementsManagementPlan(context));
export const getAiCollectRequirementsProcess = async (context) => await safeProcessorCall(requirementsProcessor.getCollectRequirementsProcess(context));
export const getAiRequirementsDocumentation = async (context) => await safeProcessorCall(requirementsProcessor.getRequirementsDocumentation(context));
export const getAiRequirementsTraceabilityMatrix = async (context) => await safeProcessorCall(requirementsProcessor.getRequirementsTraceabilityMatrix(context));
export const getAiDefineScopeProcess = async (context) => await safeProcessorCall(scopeProcessor.getDefineScopeProcess(context));
export const getAiProjectScopeStatement = async (context) => await safeProcessorCall(scopeProcessor.getProjectScopeStatement(context));
export const getAiCreateWbsProcess = async (context) => await safeProcessorCall(wbsProcessor.getCreateWbsProcess(context));
export const getAiScopeBaseline = async (context) => await safeProcessorCall(wbsProcessor.getScopeBaseline(context));
export const getAiValidateScopeProcess = async (context) => await safeProcessorCall(pmbokProcessor.getValidateScopeProcess(context));
export const getAiControlScopeProcess = async (context) => await safeProcessorCall(pmbokProcessor.getControlScopeProcess(context));
export const getAiWorkPerformanceInformationScope = async (context) => await safeProcessorCall(scopeProcessor.getWorkPerformanceInformationScope(context));
// Management Plans
export const getAiScopeManagementPlan = async (context) => await safeProcessorCall(scopeProcessor.getScopeManagementPlan(context));
export const getAiRiskManagementPlan = async (context) => await safeProcessorCall(planningProcessor.getRiskManagementPlan(context));
export const getAiCostManagementPlan = async (context) => await safeProcessorCall(planningProcessor.getCostManagementPlan(context));
export const getAiQualityManagementPlan = async (context) => await safeProcessorCall(planningProcessor.getQualityManagementPlan(context));
export const getAiResourceManagementPlan = async (context) => await safeProcessorCall(planningProcessor.getResourceManagementPlan(context));
export const getAiCommunicationManagementPlan = async (context) => await safeProcessorCall(planningProcessor.getCommunicationManagementPlan(context));
export const getAiProcurementManagementPlan = async (context) => await safeProcessorCall(planningProcessor.getProcurementManagementPlan(context));
// Stakeholder Management
export const getAiStakeholderEngagementPlan = async (context) => await safeProcessorCall(planningProcessor.getStakeholderEngagementPlan(context));
export const getAiStakeholderRegister = async (context) => await safeProcessorCall(stakeholderProcessor.getStakeholderRegister(context));
export const getAiStakeholderAnalysis = async (context) => await safeProcessorCall(stakeholderProcessor.getStakeholderAnalysis(context));
// Planning Artifacts
export const getAiWbs = async (context) => await safeProcessorCall(wbsProcessor.getWorkBreakdownStructure(context));
export const getAiWbsDictionary = async (context) => await safeProcessorCall(wbsProcessor.getWBSDictionary(context));
export const getAiActivityList = async (context) => await safeProcessorCall(activityProcessor.getActivityList(context));
export const getAiActivityDurationEstimates = async (context) => await safeProcessorCall(activityProcessor.getActivityDurationEstimates(context));
export const getAiActivityResourceEstimates = async (context) => await safeProcessorCall(activityProcessor.getActivityResourceEstimates(context));
export const getAiScheduleNetworkDiagram = async (context) => await safeProcessorCall(projectManagementProcessor.getScheduleNetworkDiagram(context));
export const getAiMilestoneList = async (context) => await safeProcessorCall(projectManagementProcessor.getMilestoneList(context));
export const getAiDevelopScheduleInput = async (context) => await safeProcessorCall(activityProcessor.getDevelopScheduleInput(context));
// Technical Analysis
export const getAiDataModelSuggestions = async (context) => await safeProcessorCall(technicalProcessor.getDataModelSuggestions(context));
export const getAiTechStackAnalysis = async (context) => await safeProcessorCall(technicalProcessor.getTechStackAnalysis(context));
export const getAiRiskAnalysis = async (context) => await safeProcessorCall(projectManagementProcessor.getRiskAnalysis(context));
export const getAiAcceptanceCriteria = async (context) => await safeProcessorCall(requirementsProcessor.getAcceptanceCriteria(context));
export const getAiComplianceConsiderations = async (context) => await safeProcessorCall(technicalProcessor.getComplianceConsiderations(context));
export const getAiUiUxConsiderations = async (context) => await safeProcessorCall(technicalProcessor.getUiUxConsiderations(context));
// Technical Recommendations
export const getAiTechnicalRecommendations = async (context) => await safeProcessorCall(technicalRecommendationsProcessor.getTechnicalRecommendations(context));
export const getAiTechnologySelectionCriteria = async (context) => await safeProcessorCall(technicalRecommendationsProcessor.getTechnologySelectionCriteria(context));
export const getAiTechnicalImplementationRoadmap = async (context) => await safeProcessorCall(technicalRecommendationsProcessor.getTechnicalImplementationRoadmap(context));
export const getAiTechnologyGovernanceFramework = async (context) => await safeProcessorCall(technicalRecommendationsProcessor.getTechnologyGovernanceFramework(context));
// DMBOK Data Management Strategy
import { DataManagementStrategyProcessor } from '../../documentTemplates/dmbok/dataManagementStrategyProcessor.js';
const dmbokDataManagementStrategyProcessor = new DataManagementStrategyProcessor();
export const getAiDmbokDataManagementStrategy = async (context) => {
// If context is a string, wrap as ProjectContext
const projectContext = typeof context === 'string' ? { projectName: context } : context;
const output = await dmbokDataManagementStrategyProcessor.process(projectContext);
return output.content ?? '';
};
//# sourceMappingURL=index.js.map