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
64 lines • 3.58 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.CognitiveCanvasValidators = void 0;
class CognitiveCanvasValidators {
static validateRequiredFields(data, fields, type) {
if (!fields.every(field => data[field] !== undefined && data[field] !== null)) {
throw new Error(`Missing required ${type} fields: ${fields.join(', ')}`);
}
}
static validateProjectData(data) {
this.validateRequiredFields(data, ['id', 'name', 'description', 'status', 'createdAt'], 'project');
}
static validateTaskData(data) {
this.validateRequiredFields(data, ['id', 'title', 'description', 'status', 'priority', 'projectId', 'createdAt'], 'task');
}
static validateAgentData(data) {
this.validateRequiredFields(data, ['id', 'name', 'role', 'capabilities', 'status', 'createdAt'], 'agent');
}
static validatePheromoneData(data) {
this.validateRequiredFields(data, ['id', 'type', 'strength', 'context', 'metadata', 'createdAt', 'expiresAt'], 'pheromone');
}
static validateArchitecturalDecisionData(data) {
this.validateRequiredFields(data, ['id', 'title', 'description', 'rationale', 'status', 'projectId', 'createdAt'], 'architectural decision');
}
static validateContractData(data) {
this.validateRequiredFields(data, ['id', 'name', 'type', 'version', 'specification', 'projectId', 'createdAt'], 'contract');
const validTypes = ['openapi', 'json-schema', 'property-definition'];
if (!validTypes.includes(data.type)) {
throw new Error(`Invalid contract type: ${data.type}. Must be one of: ${validTypes.join(', ')}`);
}
}
static validateCodeModuleData(data) {
this.validateRequiredFields(data, ['id', 'name', 'filePath', 'type', 'language', 'projectId', 'createdAt'], 'code module');
const validTypes = ['function', 'class', 'module', 'component'];
if (!validTypes.includes(data.type)) {
throw new Error(`Invalid code module type: ${data.type}. Must be one of: ${validTypes.join(', ')}`);
}
}
static validateTestData(data) {
this.validateRequiredFields(data, ['id', 'name', 'filePath', 'type', 'framework', 'projectId', 'createdAt'], 'test');
const validTypes = ['unit', 'integration', 'e2e', 'contract'];
if (!validTypes.includes(data.type)) {
throw new Error(`Invalid test type: ${data.type}. Must be one of: ${validTypes.join(', ')}`);
}
}
static validateArtifactData(data) {
this.validateRequiredFields(data, ['id', 'type', 'name', 'data', 'projectId', 'createdAt'], 'artifact');
}
static validateFailureData(data) {
this.validateRequiredFields(data, ['id', 'message', 'context', 'severity', 'projectId', 'createdAt'], 'failure');
const validSeverities = ['low', 'medium', 'high', 'critical'];
if (!validSeverities.includes(data.severity)) {
throw new Error(`Invalid failure severity: ${data.severity}. Must be one of: ${validSeverities.join(', ')}`);
}
}
static validateDiagnosticData(data) {
this.validateRequiredFields(data, ['id', 'rootCause', 'solution', 'confidence', 'considerations', 'failureId', 'createdAt'], 'diagnostic');
}
static validatePatternData(data) {
this.validateRequiredFields(data, ['id', 'type', 'pattern', 'context', 'frequency', 'projectId', 'createdAt'], 'pattern');
}
}
exports.CognitiveCanvasValidators = CognitiveCanvasValidators;
//# sourceMappingURL=validators.js.map