donobu
Version:
Create browser automations with an LLM agent and replay them as Playwright scripts.
28 lines • 1.69 kB
TypeScript
import { AsyncLocalStorage } from 'async_hooks';
import winston from 'winston';
import type { FlowLogBuffer } from '../utils/FlowLogBuffer';
export declare const loggingContext: AsyncLocalStorage<unknown>;
/**
* ###################################################################################
* # WARNING! Only use this function within the context of Playwright test fixtures! #
* ###################################################################################
*
* Playwright spins up one worker process per shard and constructs the entire
* fixture graph (including the user test function) before entering our
* AsyncLocalStorage scopes. That means early logs in the test body may execute
* outside the ALS store even though we seed it later in the fixture.
*
* We therefore keep a *process-local* fallback that stores the most recent flow
* ID and log buffer for the worker. Because Playwright guarantees only one test
* runs at a time per process, this is safe: there is no race between concurrent
* tests in the same worker, yet we still avoid leaking IDs across workers.
*/
export declare function setProcessLocalFlowId(flowId: string | null): void;
export declare function setProcessLocalLogBuffer(buffer: FlowLogBuffer | null): void;
export declare const appLogger: winston.Logger;
export declare const accessLogger: winston.Logger;
export declare const browserLogger: winston.Logger;
export declare const networkLogger: winston.Logger;
export declare function logErrorWithoutStack(message: string, error: any, level?: 'error' | 'warn' | 'info' | 'debug'): void;
export declare function formatLogInfoForTest(info: any): any;
//# sourceMappingURL=Logger.d.ts.map