11import { v4 as uuidv4 } from 'uuid' ;
22
3- import { BrowserManager } from './BrowserManager .js' ;
4- import { browserSessions } from './types.js' ;
3+ import { SessionManager } from './lib/SessionManager .js' ;
4+ import { browserSessions } from './lib/ types.js' ;
55
66// Status of a browser session
7- export enum BrowserSessionStatus {
7+ export enum SessionStatus {
88 RUNNING = 'running' ,
99 COMPLETED = 'completed' ,
1010 ERROR = 'error' ,
1111 TERMINATED = 'terminated' ,
1212}
1313
1414// Browser session tracking data
15- export interface BrowserSessionInfo {
15+ export interface SessionInfo {
1616 id : string ;
17- status : BrowserSessionStatus ;
17+ status : SessionStatus ;
1818 startTime : Date ;
1919 endTime ?: Date ;
2020 metadata : {
@@ -29,17 +29,17 @@ export interface BrowserSessionInfo {
2929/**
3030 * Registry to keep track of browser sessions
3131 */
32- export class BrowserTracker {
33- private sessions : Map < string , BrowserSessionInfo > = new Map ( ) ;
32+ export class SessionTracker {
33+ private sessions : Map < string , SessionInfo > = new Map ( ) ;
3434
3535 constructor ( public ownerAgentId : string | undefined ) { }
3636
3737 // Register a new browser session
3838 public registerBrowser ( url ?: string ) : string {
3939 const id = uuidv4 ( ) ;
40- const session : BrowserSessionInfo = {
40+ const session : SessionInfo = {
4141 id,
42- status : BrowserSessionStatus . RUNNING ,
42+ status : SessionStatus . RUNNING ,
4343 startTime : new Date ( ) ,
4444 metadata : {
4545 url,
@@ -52,7 +52,7 @@ export class BrowserTracker {
5252 // Update the status of a browser session
5353 public updateSessionStatus (
5454 id : string ,
55- status : BrowserSessionStatus ,
55+ status : SessionStatus ,
5656 metadata ?: Record < string , any > ,
5757 ) : boolean {
5858 const session = this . sessions . get ( id ) ;
@@ -63,9 +63,9 @@ export class BrowserTracker {
6363 session . status = status ;
6464
6565 if (
66- status === BrowserSessionStatus . COMPLETED ||
67- status === BrowserSessionStatus . ERROR ||
68- status === BrowserSessionStatus . TERMINATED
66+ status === SessionStatus . COMPLETED ||
67+ status === SessionStatus . ERROR ||
68+ status === SessionStatus . TERMINATED
6969 ) {
7070 session . endTime = new Date ( ) ;
7171 }
@@ -78,19 +78,17 @@ export class BrowserTracker {
7878 }
7979
8080 // Get all browser sessions
81- public getSessions ( ) : BrowserSessionInfo [ ] {
81+ public getSessions ( ) : SessionInfo [ ] {
8282 return Array . from ( this . sessions . values ( ) ) ;
8383 }
8484
8585 // Get a specific browser session by ID
86- public getSessionById ( id : string ) : BrowserSessionInfo | undefined {
86+ public getSessionById ( id : string ) : SessionInfo | undefined {
8787 return this . sessions . get ( id ) ;
8888 }
8989
9090 // Filter sessions by status
91- public getSessionsByStatus (
92- status : BrowserSessionStatus ,
93- ) : BrowserSessionInfo [ ] {
91+ public getSessionsByStatus ( status : SessionStatus ) : SessionInfo [ ] {
9492 return this . getSessions ( ) . filter ( ( session ) => session . status === status ) ;
9593 }
9694
@@ -99,11 +97,11 @@ export class BrowserTracker {
9997 * @returns A promise that resolves when cleanup is complete
10098 */
10199 public async cleanup ( ) : Promise < void > {
102- const sessions = this . getSessionsByStatus ( BrowserSessionStatus . RUNNING ) ;
100+ const sessions = this . getSessionsByStatus ( SessionStatus . RUNNING ) ;
103101
104102 // Create cleanup promises for each session
105103 const cleanupPromises = sessions . map ( ( session ) =>
106- this . cleanupBrowserSession ( session ) ,
104+ this . cleanupSession ( session ) ,
107105 ) ;
108106
109107 // Wait for all cleanup operations to complete in parallel
@@ -114,18 +112,16 @@ export class BrowserTracker {
114112 * Cleans up a browser session
115113 * @param session The browser session to clean up
116114 */
117- private async cleanupBrowserSession (
118- session : BrowserSessionInfo ,
119- ) : Promise < void > {
115+ private async cleanupSession ( session : SessionInfo ) : Promise < void > {
120116 try {
121117 const browserManager = (
122- globalThis as unknown as { __BROWSER_MANAGER__ ?: BrowserManager }
118+ globalThis as unknown as { __BROWSER_MANAGER__ ?: SessionManager }
123119 ) . __BROWSER_MANAGER__ ;
124120
125121 if ( browserManager ) {
126122 await browserManager . closeSession ( session . id ) ;
127123 } else {
128- // Fallback to closing via browserSessions if BrowserManager is not available
124+ // Fallback to closing via browserSessions if SessionManager is not available
129125 const browserSession = browserSessions . get ( session . id ) ;
130126 if ( browserSession ) {
131127 await browserSession . page . context ( ) . close ( ) ;
@@ -134,9 +130,9 @@ export class BrowserTracker {
134130 }
135131 }
136132
137- this . updateSessionStatus ( session . id , BrowserSessionStatus . COMPLETED ) ;
133+ this . updateSessionStatus ( session . id , SessionStatus . COMPLETED ) ;
138134 } catch ( error ) {
139- this . updateSessionStatus ( session . id , BrowserSessionStatus . ERROR , {
135+ this . updateSessionStatus ( session . id , SessionStatus . ERROR , {
140136 error : error instanceof Error ? error . message : String ( error ) ,
141137 } ) ;
142138 }
0 commit comments