@bonginkan/maria
Version:
MARIA OS v5.9.5 – Self-Evolving Organizational Intelligence OS | Speed Improvement Phase 3: LLM Optimization + Command Refactoring | Performance Measurement + Run Evidence System | Zero ESLint/TypeScript Errors | 人とAIが役割を持ち、学び、進化し続けるための仕事のOS | GraphRAG ×
108 lines (107 loc) • 3.06 kB
TypeScript
/**
* Validation Engine
*
* Core validation orchestrator for data quality, schema, and integrity checks
*/
import { EventEmitter } from "node:events";
import type { ValidationConfig, ValidationResult, QualityResult } from "../types/porter-types";
export interface ValidationContext {
requestId: string;
userId: string;
correlationId: string;
timestamp: number;
metadata: Record<string, unknown>;
}
export interface ValidationSummary {
overall: ValidationResult;
schema?: ValidationResult;
integrity?: ValidationResult;
quality?: QualityResult;
context: ValidationContext;
executionTime: number;
validatedRecords: number;
}
export declare class ValidationEngine extends EventEmitter {
private readonly config;
private readonly schemaValidator;
private readonly integrityValidator;
private readonly qualityValidator;
constructor(config: ValidationConfig);
/**
* Comprehensive validation of data
*/
validate(data: unknown, context: ValidationContext, options?: {
skipSchema?: boolean;
skipIntegrity?: boolean;
skipQuality?: boolean;
failFast?: boolean;
maxErrors?: number;
}): Promise<ValidationSummary>;
/**
* Validate single record
*/
validateRecord(record: unknown, recordIndex: number, context: ValidationContext): Promise<ValidationResult>;
/**
* Batch validation for large datasets
*/
validateBatch(data: unknown[], context: ValidationContext, batchSize?: number): AsyncIterable<{
batchIndex: number;
records: ValidationResult[];
summary: {
validRecords: number;
invalidRecords: number;
totalWarnings: number;
};
}>;
/**
* Create validation context
*/
createContext(requestId: string, userId: string, correlationId?: string, metadata?: Record<string, unknown>): ValidationContext;
/**
* Update validation configuration
*/
updateConfig(newConfig: Partial<ValidationConfig>): void;
/**
* Get validation statistics
*/
getStats(): {
totalValidations: number;
successRate: number;
averageExecutionTime: number;
commonErrors: Array<{
error: string;
count: number;
}>;
qualityScores: {
average: number;
recent: number[];
};
};
/**
* Test validation engine
*/
test(testData?: unknown): Promise<{
success: boolean;
error?: string;
results?: ValidationSummary;
}>;
/**
* Get validation engine health status
*/
getHealthStatus(): {
status: "healthy" | "degraded" | "unhealthy";
details: unknown;
};
/**
* Setup event forwarding from sub-validators
*/
private setupEventForwarding;
/**
* Merge validation results
*/
private mergeResults;
/**
* Get quality suggestion based on issue type
*/
private getQualitySuggestion;
}