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
158 lines • 4.75 kB
TypeScript
/**
* Session Stability Manager
* Addresses critical feedback: "Had to restart sessions multiple times, losing context and workflow momentum"
* Provides robust session recovery, state persistence, and connection resilience
*/
import { EventEmitter } from 'events';
export interface SessionState {
sessionId: string;
url: string;
framework?: string;
lastActivity: number;
browserConnected: boolean;
accessibility: {
enabled: boolean;
lastAttempt?: number;
failureReason?: string;
};
quantumDebug: {
initialized: boolean;
lastAttempt?: number;
failureReason?: string;
};
tools: {
[toolName: string]: {
lastUsed: number;
status: 'success' | 'failed' | 'timeout';
errorDetails?: string;
};
};
context: {
workflowPhase?: string;
debuggingGoal?: string;
reproducedIssue?: boolean;
};
}
export interface SessionRecoveryPlan {
canRecover: boolean;
steps: Array<{
action: string;
tool: string;
reason: string;
estimatedTime: number;
}>;
preservedState: Partial<SessionState>;
riskFactors: string[];
}
export declare class SessionStabilityManager extends EventEmitter {
private sessions;
private recoveryAttempts;
private maxRecoveryAttempts;
private sessionTimeout;
private heartbeatInterval;
private heartbeatTimers;
constructor();
/**
* Create a new session with stability tracking
* Addresses: "Easy session management but session instability issues"
*/
createStableSession(url: string, options?: {
framework?: string;
workflowPhase?: string;
debuggingGoal?: string;
}): Promise<{
sessionId: string;
state: SessionState;
}>;
/**
* Update session state with tool usage tracking
* Addresses: "Context loss during debugging"
*/
updateSessionState(sessionId: string, updates: Partial<SessionState>): SessionState | null;
/**
* Track tool usage with success/failure monitoring
* Addresses: "Tools failing due to unmet requirements"
*/
trackToolUsage(sessionId: string, toolName: string, result: {
status: 'success' | 'failed' | 'timeout';
errorDetails?: string;
duration?: number;
}): void;
/**
* Detect session failures and create recovery plan
* Addresses: "Failed to enable Flutter accessibility: Target page, context or browser has been closed"
*/
detectSessionFailure(sessionId: string, error: Error): Promise<SessionRecoveryPlan>;
/**
* Execute automatic session recovery
* Addresses: "Auto-restart with previous context if browser closes"
*/
executeSessionRecovery(sessionId: string, recoveryPlan: SessionRecoveryPlan): Promise<{
success: boolean;
newSessionId?: string;
restoredFeatures: string[];
failedFeatures: string[];
}>;
/**
* Get comprehensive session diagnostics
* Addresses: "Show session state clearly"
*/
getSessionDiagnostics(sessionId: string): {
status: 'healthy' | 'degraded' | 'failed' | 'not_found';
details: {
browser: {
status: string;
lastCheck: number;
};
framework: {
detected: boolean;
type?: string;
};
accessibility: {
enabled: boolean;
lastAttempt?: number;
error?: string;
};
quantumDebug: {
initialized: boolean;
lastAttempt?: number;
error?: string;
};
tools: {
working: string[];
failed: string[];
};
activity: {
lastActivity: number;
ageMinutes: number;
};
};
recommendations: string[];
} | null;
/**
* Get recommended tool workflow based on session state
* Addresses: "Suggest logical tool sequences"
*/
getRecommendedWorkflow(sessionId: string): {
nextSteps: Array<{
tool: string;
reason: string;
prerequisites: string[];
estimatedTime: number;
}>;
currentPhase: string;
blockers: string[];
};
/**
* Private helper methods
*/
private generateSessionId;
private startSessionHeartbeat;
private stopSessionHeartbeat;
private startGlobalMonitoring;
/**
* Cleanup resources
*/
destroy(): void;
}
//# sourceMappingURL=session-stability-manager.d.ts.map