@mastra/core
Version:
45 lines • 2.16 kB
TypeScript
/**
* Opt-in browser recording tools.
*
* Wraps the existing browser screencast infrastructure to capture frames, lets
* the agent drop short captions at specific moments, and encodes the result as
* a Motion-JPEG AVI video written to disk. The AVI format is used because it
* can be muxed in pure JavaScript (no ffmpeg) and plays natively in QuickTime /
* Preview / VLC / browsers.
*/
import type { MastraBrowser } from '../browser.js';
export interface BrowserRecordingOptions {
/** Directory where browser recordings are written. */
outputDir: string;
/** Default maximum recording duration in ms (default 30 000, hard cap 120 000). */
maxDurationMs?: number;
/** Default max frame width in pixels (default 1024). */
maxWidth?: number;
/** Default max frame height in pixels (default 720). */
maxHeight?: number;
}
/** @internal Exposed for tests so they can reset state between cases. */
export declare function __resetRecordingStateForTests(): void;
/** @internal Exposed for tests. */
export declare function __isRecordingActive(): boolean;
/**
* Create opt-in browser recording tools bound to a browser.
*
* These tools are alpha and are only exposed when a browser provider or caller
* explicitly enables recording and provides a safe output directory.
*/
export declare function createBrowserRecordingTools(browser: MastraBrowser, options: BrowserRecordingOptions): {
browser_record: import("../../tools").Tool<{
action: "status" | "start" | "stop";
maxDurationMs?: number | undefined;
everyNthFrame?: number | undefined;
maxWidth?: number | undefined;
maxHeight?: number | undefined;
outputPath?: string | undefined;
}, unknown, unknown, unknown, import("../../tools").ToolExecutionContext<unknown, unknown, unknown>, "browser_record", unknown>;
browser_record_caption: import("../../tools").Tool<{
text: string;
durationMs?: number | undefined;
}, unknown, unknown, unknown, import("../../tools").ToolExecutionContext<unknown, unknown, unknown>, "browser_record_caption", unknown>;
};
//# sourceMappingURL=tools.d.ts.map