ai-debug-local-mcp
Version:
🎯 ENHANCED AI GUIDANCE v4.1.2: Dramatically improved tool descriptions help AI users choose the right tools instead of 'close enough' options. Ultra-fast keyboard automation (10x speed), universal recording, multi-ecosystem debugging support, and compreh
154 lines • 4.17 kB
TypeScript
export interface DebugState {
url: string;
localStorage: Record<string, any>;
sessionStorage: Record<string, any>;
cookies: Array<{
name: string;
value: string;
domain?: string;
path?: string;
}>;
timestamp: Date;
tidewave?: {
framework: 'phoenix' | 'rails' | 'unknown';
available_tools: string[];
version?: string;
recent_logs?: any[];
processes?: any[];
documentation?: any;
};
}
export interface DOMSnapshot {
html: string;
structure: any;
timestamp: Date;
}
export interface NetworkRequest {
url: string;
method: string;
headers: Record<string, string>;
timestamp: Date;
status: 'pending' | 'complete' | 'failed';
responseStatus?: number;
responseStatusText?: string;
responseHeaders?: Record<string, string>;
error?: string;
requestBody?: string | null;
responseBody?: any;
responseSize?: number;
duration?: number;
resourceType?: string;
queryParams?: Record<string, string>;
failureReason?: string;
}
export interface DebugSession {
id: string;
page?: any;
state?: DebugState;
events: RecordedEvent[];
startTime?: Date;
endTime?: Date;
timestamp: Date;
duration: number;
url: string;
metadata?: SessionMetadata;
framework?: string;
privacy?: PrivacySettings;
}
export interface DebugEvent {
sessionId: string;
type: 'console' | 'network' | 'error' | 'state_change' | 'user_action';
data: any;
timestamp: Date;
}
export interface RecordedEvent {
type: 'click' | 'input' | 'navigation' | 'network_request' | 'network_response' | 'console_log' | 'console_error' | 'dom_mutation' | 'scroll' | 'resize' | 'error' | 'liveview_mount' | 'liveview_handle_event' | 'liveview_handle_info' | 'liveview_handle_params' | 'phoenix_controller_action' | 'phoenix_channel_join' | 'phoenix_channel_broadcast' | 'phoenix_channel_leave' | 'ecto_query' | 'ecto_changeset' | 'phoenix_pubsub' | 'phoenix_presence' | 'form_submit' | 'form_validate' | 'route_change' | 'component_mount' | 'component_update';
timestamp: number;
data: EventData;
context?: EventContext;
}
export interface EventData {
selector?: string;
value?: string;
url?: string;
position?: {
x: number;
y: number;
};
element?: {
tag: string;
attributes: Record<string, string>;
text?: string;
};
method?: string;
status?: number;
requestBody?: any;
responseBody?: any;
error?: string;
[key: string]: any;
}
export interface EventContext {
viewport: {
width: number;
height: number;
};
url: string;
timestamp: number;
}
export interface SessionMetadata {
testIntent: string;
userStory?: string;
tags?: string[];
}
export interface PrivacySettings {
redactSensitiveData?: boolean;
excludedDomains?: string[];
sensitiveFields?: string[];
excludeNetworkDomains?: string[];
}
export interface ReviewCriteria {
clarity: {
hasDescriptiveName: boolean;
explainsPurpose: boolean;
score: number;
};
robustness: {
avoidsBrittleSelectors: boolean;
handlesAsyncProperly: boolean;
score: number;
};
maintainability: {
followsConventions: boolean;
appropriateAbstractions: boolean;
score: number;
};
security: {
noSensitiveData: boolean;
noHardcodedSecrets: boolean;
score: number;
};
}
export interface ReviewResult {
overallScore: number;
criteria: ReviewCriteria;
feedback: string;
approved: boolean;
autoFixSuggestions?: string[];
escalateToHuman?: boolean;
timestamp: Date;
framework: string;
testCode: string;
}
export interface TestReviewerOptions {
model?: string;
temperature?: number;
qualityThreshold?: number;
autoFixThreshold?: number;
criteriaWeights?: {
clarity: number;
robustness: number;
maintainability: number;
security: number;
};
}
//# sourceMappingURL=types.d.ts.map