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
JavaScript
;
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