navflow-browser-server
Version:
Standalone Playwright browser server for NavFlow - enables browser automation with API key authentication, workspace device management, session sync, LLM discovery tools, and requires Node.js v22+
63 lines • 1.84 kB
TypeScript
import { Page } from 'playwright';
import { EventEmitter } from 'events';
export interface HumanLoopSession {
nodeId: string;
sessionId: string;
prompt: string;
timeout: number;
startTime: Date;
isActive: boolean;
page: Page;
pollInterval?: NodeJS.Timeout;
}
export interface BannerResponse {
action: 'complete' | 'extend' | 'reset' | 'timeout';
userResponse?: string;
extensionTime?: number;
resetTimeout?: number;
}
export declare class HumanLoopBannerService extends EventEmitter {
private activeSessions;
private timeoutHandlers;
/**
* Show the human-in-the-loop banner on a page
*/
showBanner(sessionId: string, nodeId: string, page: Page, prompt: string, timeout?: number, deviceApiKey?: string, proxyServerUrl?: string): Promise<BannerResponse>;
/**
* Hide the banner from a page
*/
hideBanner(sessionKey: string): Promise<void>;
/**
* Handle user response from the banner
*/
handleUserResponse(sessionKey: string, action: 'complete' | 'extend' | 'reset', userResponse?: string, extensionTime?: number, resetTimeout?: number): Promise<void>;
/**
* Handle timeout
*/
private handleTimeout;
/**
* Inject the banner HTML/CSS/JS into the page
*/
private injectBanner;
/**
* Update the timer display in the banner
*/
private updateBannerTime;
/**
* Get active sessions
*/
getActiveSessions(): string[];
/**
* Monitor the page and re-inject banner if it gets removed
*/
private startBannerMonitoring;
/**
* Get the banner injection script as a string
*/
private getBannerInjectionScript;
/**
* Clean up all sessions
*/
cleanup(): Promise<void>;
}
//# sourceMappingURL=HumanLoopBannerService.d.ts.map