navflow-browser-server
Version:
Standalone Playwright browser server for NavFlow - enables browser automation with API key authentication, workspace device management, session sync, and requires Node.js v22+
62 lines • 2.08 kB
TypeScript
import { BrowserManager } from './BrowserManager';
import { ScreenShareService } from './ScreenShareService';
import { HumanLoopBannerService } from './HumanLoopBannerService';
export declare class FlowExecutor {
private browserManager;
private screenShareService;
private humanLoopBannerService;
private deviceApiKey?;
private proxyServerUrl?;
private wsClients;
constructor(browserManager: BrowserManager, screenShareService?: ScreenShareService, humanLoopBannerService?: HumanLoopBannerService, deviceApiKey?: string, proxyServerUrl?: string);
addWebSocketClient(ws: any): void;
removeWebSocketClient(ws: any): void;
private broadcastToClients;
private log;
executeFlow(flow: any, config?: {
headless?: boolean;
viewport?: {
width: number;
height: number;
};
browserType?: 'chromium' | 'firefox' | 'webkit';
userAgent?: string;
timeout?: number;
slowMo?: number;
stealth?: boolean;
customArgs?: string;
keepBrowserOpen?: boolean;
args?: string[];
proxy?: {
enabled: boolean;
host?: string;
port?: string;
username?: string;
password?: string;
};
}, userContext?: {
userId?: string;
sessionName?: string;
}, userInputVariables?: Record<string, any>, stepScreenshots?: boolean): Promise<any>;
private executeNode;
private executeBrowserAction;
private executeAPICall;
private executeHumanInLoop;
private resolveVariable;
private resolveVariables;
private extractScreenshots;
private topologicalSort;
/**
* Find the start node of the flow (node with no incoming edges)
*/
private findStartNode;
/**
* Execute flow starting from a specific node with conditional branching
*/
private executeFlowFromNode;
/**
* Get next nodes based on current node and optional handle ID
*/
private getNextNodes;
}
//# sourceMappingURL=FlowExecutor.d.ts.map