semantic-ds-toolkit
Version:
Performance-first semantic layer for modern data stacks - Stable Column Anchors & intelligent inference
65 lines • 2.06 kB
TypeScript
import { AnchorStoreManager } from '../core/anchor-store';
import { PRAnalysisResult } from './pr-analyzer';
export interface SemanticMapping {
id: string;
column: string;
dataset: string;
semantic_type: string;
confidence: number;
anchor_id?: string;
evidence: string[];
quick_accept_url: string;
}
export interface DriftDetection {
column: string;
dataset: string;
description: string;
severity: 'low' | 'medium' | 'high';
suggested_action: string;
file: string;
}
export interface HealthMetrics {
coverage: number;
driftRisk: 'low' | 'medium' | 'high';
qualityScore: number;
mappedColumns: number;
totalColumns: number;
}
export interface SuggestionResult {
newMappings: SemanticMapping[];
driftDetections: DriftDetection[];
healthMetrics: HealthMetrics;
acceptAllId: string;
processingTimeMs: number;
}
export declare class SuggestionEngine {
private anchorStore;
private pendingSuggestions;
constructor(anchorStore: AnchorStoreManager);
generateSuggestions(analysis: PRAnalysisResult): Promise<SuggestionResult>;
private generateSemanticMappings;
private suggestMappingForColumn;
private findSimilarAnchors;
private calculateSimilarityScore;
private calculateNameSimilarity;
private levenshteinDistance;
private calculateTypeSimilarity;
private normalizeType;
private calculatePatternSimilarity;
private inferSemanticType;
private inferSemanticTypeFromPattern;
private suggestMappingsForDataFile;
private detectDrift;
private calculateHealthMetrics;
private generateEvidence;
private generateSuggestionId;
private generateAcceptAllId;
private generateQuickAcceptUrl;
acceptSuggestion(suggestionId: string): Promise<boolean>;
acceptSuggestionByData(suggestion: SemanticMapping): Promise<boolean>;
acceptAllSuggestions(acceptAllId: string): Promise<{
accepted: number;
failed: number;
}>;
}
//# sourceMappingURL=suggestion-engine.d.ts.map