UNPKG

cortexweaver

Version:

CortexWeaver is a command-line interface (CLI) tool that orchestrates a swarm of specialized AI agents, powered by Claude Code and Gemini CLI, to assist in software development. It transforms a high-level project plan (plan.md) into a series of coordinate

100 lines 4.03 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PersonaValidator = exports.PersonaLoaderCore = exports.PersonaLoader = exports.PersonaLoaderMain = void 0; const loader_1 = require("./loader"); const validator_1 = require("./validator"); /** * Main PersonaLoader class - refactored to use modular components * This serves as the main entry point and orchestrates the various persona modules */ class PersonaLoaderMain { constructor(config = {}) { this.loader = new loader_1.PersonaLoader(config); this.validator = new validator_1.PersonaValidator(); } // Core loading functionality async loadPersona(agentName) { return this.loader.loadPersona(agentName); } // Validation and analysis functionality generatePromptTemplate(persona, context = {}) { return this.validator.generatePromptTemplate(persona, context); } generatePersonaDiff(oldPersona, newPersona) { return this.validator.generatePersonaDiff(oldPersona, newPersona); } validatePersonaStructure(persona) { return this.validator.validatePersonaStructure(persona); } validatePersonaQuality(persona) { return this.validator.validatePersonaQuality(persona); } validateBestPractices(persona) { return this.validator.validateBestPractices(persona); } // Utility methods delegated to loader getAvailablePersonas() { return this.loader.getAvailablePersonas(); } getPersonaMetrics(agentName) { return this.loader.getPersonaMetrics(agentName); } async savePersonaVersion(persona, changes, reason) { return this.loader.savePersonaVersion(persona, changes, reason); } // Cleanup dispose() { this.loader.dispose(); } // Enhanced validation method that combines all validation types async validatePersonaComplete(agentName) { const loadResult = await this.loadPersona(agentName); if (!loadResult.success || !loadResult.persona) { return { loadResult, structureValidation: null, qualityAssessment: null, bestPracticesResult: null, overallScore: 0, overallAssessment: 'failed' }; } const persona = loadResult.persona; const structureValidation = this.validatePersonaStructure(persona); const qualityAssessment = this.validatePersonaQuality(persona); const bestPracticesResult = this.validateBestPractices(persona); // Calculate overall score const qualityScores = qualityAssessment.scores; const avgQualityScore = (qualityScores.completeness + qualityScores.clarity + qualityScores.specificity + qualityScores.consistency) / 4; const overallScore = Math.round((structureValidation.score + avgQualityScore + bestPracticesResult.practiceScore) / 3); let overallAssessment; if (overallScore >= 85) { overallAssessment = 'excellent'; } else if (overallScore >= 70) { overallAssessment = 'good'; } else if (overallScore >= 50) { overallAssessment = 'fair'; } else { overallAssessment = 'poor'; } return { loadResult, structureValidation, qualityAssessment, bestPracticesResult, overallScore, overallAssessment }; } } exports.PersonaLoaderMain = PersonaLoaderMain; exports.PersonaLoader = PersonaLoaderMain; // Export modular components for direct access var loader_2 = require("./loader"); Object.defineProperty(exports, "PersonaLoaderCore", { enumerable: true, get: function () { return loader_2.PersonaLoader; } }); var validator_2 = require("./validator"); Object.defineProperty(exports, "PersonaValidator", { enumerable: true, get: function () { return validator_2.PersonaValidator; } }); //# sourceMappingURL=index.js.map