@flexabrain/mcp-server
Version:
Advanced electrical schematic analysis MCP server with rail engineering expertise
214 lines • 6.58 kB
TypeScript
/**
* Database interface for FlexaBrain MCP Server schematic processing
*/
export interface DatabaseConnection {
execute(query: string, params?: any[]): Promise<any>;
query(query: string, params?: any[]): Promise<any[]>;
close(): Promise<void>;
}
export interface SchematicDocument {
id: string;
filename: string;
original_path?: string;
document_type: 'traction_control' | 'generator_monitoring' | 'power_distribution' | 'general';
title?: string;
version?: string;
subject?: string;
creator?: string;
creation_date?: Date;
modification_date?: Date;
pages_count: number;
rail_system_type?: string;
voltage_system?: string;
upload_timestamp: Date;
processing_status: 'pending' | 'processing' | 'completed' | 'failed' | 'archived';
processing_started_at?: Date;
processing_completed_at?: Date;
processing_options?: string;
metadata?: string;
created_by?: string;
updated_at: Date;
}
export interface DatabasePage {
id: string;
document_id: string;
page_number: number;
page_title?: string;
schematic_type: string;
image_path?: string;
image_dimensions?: string;
quality_score: number;
processing_time: number;
processing_results?: string;
technical_features?: string;
created_at: Date;
updated_at: Date;
}
export interface DatabaseComponent {
id: string;
document_id: string;
page_id: string;
component_id: string;
component_type: string;
component_category?: string;
bounding_box: string;
confidence_score: number;
pattern_matched?: string;
specifications?: string;
safety_level: string;
compliance_status: string;
rail_system_context?: string;
created_at: Date;
updated_at: Date;
}
export interface DatabaseCrossReference {
id: string;
document_id: string;
source_component_id?: string;
target_component_id?: string;
source_page_number?: number;
target_page_number?: number;
reference_type: string;
reference_text?: string;
confidence_score: number;
verified: number;
verification_method?: string;
verified_by?: string;
verified_at?: Date;
created_at: Date;
}
export interface AgentAnalysisResult {
id: string;
document_id: string;
component_id?: string;
agent_name: 'oracle' | 'sentinel' | 'sage';
analysis_type: string;
analysis_results: string;
confidence_score: number;
risk_assessment?: string;
recommendations?: string;
prediction_data?: string;
anomaly_data?: string;
business_insights?: string;
processing_time: number;
created_at: Date;
expires_at?: Date;
}
export interface ProcessingLog {
id: string;
document_id?: string;
page_id?: string;
log_level: 'error' | 'warning' | 'info' | 'debug';
error_code?: string;
message: string;
component_id?: string;
severity: 'low' | 'medium' | 'high' | 'critical';
recovery_suggestions?: string;
stack_trace?: string;
created_at: Date;
}
export declare class SchematicDatabase {
private db;
constructor(connection: DatabaseConnection);
createDocument(doc: {
filename: string;
original_path?: string;
document_type: string;
title?: string;
version?: string;
subject?: string;
creator?: string;
creation_date?: Date;
modification_date?: Date;
pages_count: number;
rail_system_type?: string;
voltage_system?: string;
processing_status: string;
processing_options?: any;
metadata?: any;
created_by?: string;
}): Promise<string>;
getDocument(id: string): Promise<SchematicDocument | null>;
updateDocumentStatus(id: string, status: string, startedAt?: Date, completedAt?: Date): Promise<void>;
getDocumentsByStatus(status: string): Promise<SchematicDocument[]>;
createPage(page: {
document_id: string;
page_number: number;
page_title?: string;
schematic_type: string;
image_path?: string;
image_dimensions?: any;
quality_score: number;
processing_time: number;
processing_results?: any;
technical_features?: any;
}): Promise<string>;
getPagesByDocument(documentId: string): Promise<DatabasePage[]>;
createComponent(component: {
document_id: string;
page_id: string;
component_id: string;
component_type: string;
component_category?: string;
bounding_box: any;
confidence_score: number;
pattern_matched?: string;
specifications?: any;
safety_level: string;
compliance_status: string;
rail_system_context?: any;
}): Promise<string>;
getComponentsByDocument(documentId: string): Promise<DatabaseComponent[]>;
createCrossPageReference(ref: {
document_id: string;
source_component_id?: string;
target_component_id?: string;
source_page_number?: number;
target_page_number?: number;
reference_type: string;
reference_text?: string;
confidence_score: number;
verified?: boolean;
verification_method?: string;
verified_by?: string;
verified_at?: Date;
}): Promise<string>;
createAgentAnalysis(analysis: {
document_id: string;
component_id?: string;
agent_name: string;
analysis_type: string;
analysis_results: any;
confidence_score: number;
risk_assessment?: any;
recommendations?: any;
prediction_data?: any;
anomaly_data?: any;
business_insights?: any;
processing_time: number;
expires_at?: Date;
}): Promise<string>;
logProcessingEvent(log: {
document_id?: string;
page_id?: string;
log_level: string;
error_code?: string;
message: string;
component_id?: string;
severity: string;
recovery_suggestions?: any;
stack_trace?: string;
}): Promise<string>;
getProcessingLogs(documentId: string, logLevel?: string): Promise<ProcessingLog[]>;
getDocumentStatistics(documentId: string): Promise<{
totalComponents: number;
highConfidenceComponents: number;
crossReferences: number;
avgPageQuality: number;
processingErrors: number;
agentAnalyses: number;
}>;
close(): Promise<void>;
}
export default SchematicDatabase;
//# sourceMappingURL=database-interface.d.ts.map