@measey/mycoder-agent
Version:
Agent module for mycoder - an AI-powered software development assistant
74 lines • 2.15 kB
TypeScript
import { type Page } from '@playwright/test';
import { Logger } from '../../utils/logger.js';
import { BrowserConfig } from './lib/types.js';
export declare enum SessionStatus {
RUNNING = "running",
COMPLETED = "completed",
ERROR = "error",
TERMINATED = "terminated"
}
export interface SessionInfo {
sessionId: string;
status: SessionStatus;
startTime: Date;
endTime?: Date;
page?: Page;
metadata: {
url?: string;
contentLength?: number;
closedExplicitly?: boolean;
error?: string;
actionType?: string;
};
}
/**
* Creates, manages, and tracks browser sessions
*/
export declare class SessionTracker {
ownerAgentId: string | undefined;
private logger?;
private sessions;
private browser;
private readonly defaultConfig;
private detectedBrowsers;
private browserDetectionPromise;
private currentConfig;
constructor(ownerAgentId: string | undefined, logger?: Logger | undefined);
updateSessionStatus(sessionId: string, status: SessionStatus, metadata?: Record<string, any>): boolean;
getSessions(): SessionInfo[];
getSessionById(id: string): SessionInfo | undefined;
getSessionsByStatus(status: SessionStatus): SessionInfo[];
/**
* Create a new browser session
*/
createSession(config?: BrowserConfig): Promise<string>;
/**
* Get a page from a session by ID
*/
getSessionPage(sessionId: string): Page;
/**
* Close a specific browser session
*/
closeSession(sessionId: string): Promise<void>;
/**
* Cleans up all browser sessions and the browser itself
*/
cleanup(): Promise<void>;
/**
* Close all browser sessions
*/
closeAllSessions(): Promise<void>;
/**
* Sets up global cleanup handlers for all browser sessions
*/
/**
* Lazily initializes the browser instance
*/
private initializeBrowser;
/**
* Launch a browser with a specific executable path
*/
private launchBrowserWithExecutablePath;
private setupOnExitCleanup;
}
//# sourceMappingURL=SessionTracker.d.ts.map