@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 ×
103 lines (102 loc) • 2.63 kB
TypeScript
/**
* Quality Validator
*
* Validates data quality using configurable rules and thresholds
*/
import { EventEmitter } from "node:events";
import type { DataQualityValidation, QualityResult } from "../types/porter-types";
export interface ValidationContext {
requestId: string;
userId: string;
correlationId: string;
timestamp: number;
metadata: Record<string, unknown>;
}
export interface FieldAnalysis {
field: string;
totalRecords: number;
nullCount: number;
emptyCount: number;
uniqueCount: number;
validCount: number;
invalidCount: number;
completeness: number;
uniqueness: number;
validity: number;
examples: unknown[];
patterns: string[];
}
export declare class QualityValidator extends EventEmitter {
private config;
private readonly expressionEvaluator;
private readonly builtInRules;
constructor(config: DataQualityValidation);
/**
* Create built-in quality rules
*/
private createBuiltInRules;
/**
* Validate data quality
*/
validate(data: unknown, context: ValidationContext): Promise<QualityResult>;
/**
* Analyze fields in the dataset
*/
private analyzeFields;
/**
* Apply quality rules to field analyses
*/
private applyQualityRules;
/**
* Evaluate a quality rule against field analysis
*/
private evaluateRule;
/**
* Calculate overall quality scores
*/
private calculateQualityScores;
/**
* Detect patterns in field values
*/
private detectPatterns;
/**
* Normalize value for uniqueness calculation
*/
private normalizeValue;
/**
* Create empty quality result
*/
private createEmptyResult;
/**
* Analyze single field across dataset
*/
analyzeField(records: unknown[], fieldName: string): Promise<FieldAnalysis>;
/**
* Get quality recommendations
*/
getQualityRecommendations(result: QualityResult): Array<{
type: string;
severity: "low" | "medium" | "high" | "critical";
message: string;
suggestion: string;
}>;
/**
* Update quality validator configuration
*/
updateConfig(newConfig: Partial<DataQualityValidation>): void;
/**
* Get quality validator health status
*/
getHealthStatus(): {
status: "healthy" | "degraded" | "unhealthy";
details: unknown;
};
/**
* Test quality validator
*/
test(testData?: unknown[]): Promise<{
success: boolean;
error?: string;
result?: QualityResult;
}>;
}