UNPKG

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
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