dev3000
Version:
AI-powered development tools with browser monitoring and MCP server integration
76 lines • 2.04 kB
TypeScript
export interface ScreencastFrame {
timestamp: number;
path: string;
sessionId: string;
}
/**
* ScreencastManager - Passive screencast capture for navigation events
*
* Listens for Page.frameStartedLoading and automatically captures 5 seconds
* of screencast frames for jank detection. No artificial page reloads needed!
*/
export declare class ScreencastManager {
private cdpUrl;
private logFn;
private ws;
private buffer;
private isCapturing;
private navigationStartTime;
private currentSessionId;
private screenshotDir;
private messageId;
private appPort;
private layoutShifts;
private viewportInfo;
private captureTrigger;
constructor(cdpUrl: string, logFn: (msg: string) => void, appPort?: string);
/**
* Start listening for navigation events and capturing screencasts
*/
start(): Promise<void>;
/**
* Stop capturing and cleanup
*/
stop(): Promise<void>;
/**
* Handle CDP messages
*/
private handleMessage;
/**
* Check URL before starting capture - only capture localhost:{appPort}
*/
private checkUrlAndStartCapture;
/**
* Navigation started - begin capturing screencast
*/
private onNavigationStart;
/**
* Navigation completed - save frames and stop (after delay to catch hydration)
*/
private onNavigationComplete;
/**
* Received a screencast frame - add to buffer
*/
private onScreencastFrame;
/**
* Stop screencast capture
*/
private stopScreencast;
/**
* Install PerformanceObserver for layout shifts (passive, no reload needed)
*/
private installCLSObserver;
/**
* Poll for layout shift data from the injected observer
*/
private pollLayoutShifts;
/**
* Send CDP command
*/
private send;
/**
* Get the most recent session ID (for fix_my_app to reference)
*/
getLatestSessionId(): string;
}
//# sourceMappingURL=screencast-manager.d.ts.map