/** * BrowserContextProcessor * * Input processor that injects browser context into agent prompts. * Similar to ChatChannelProcessor for channels. * * - `processInput`: Adds a system message with stable context (provider, sessionId, headless mode). * - `processInputStep`: At step 0, adds a new user message with browser context as a ``. * This preserves prompt cache by not modifying existing messages in history. * * Reads from `requestContext.get('browser')`. * * @example * ```ts * const agent = new Agent({ * browser: new AgentBrowser({ ... }), * inputProcessors: [new BrowserContextProcessor()], * }); * ``` */ import type { ComputeStateSignalArgs, ComputeStateSignalResult, ProcessInputArgs, ProcessInputResult } from '../processors/index.js'; /** * Browser context stored in RequestContext. * Set by the browser implementation or deployer. */ export interface BrowserContext { /** Browser provider name (e.g., "agent-browser", "stagehand") */ provider: string; /** Provider type: 'sdk' for direct API, 'cli' for command-line tools */ providerType?: 'sdk' | 'cli'; /** Session ID for tracking */ sessionId?: string; /** Whether browser is running in headless mode */ headless?: boolean; /** Current page URL (updated per-request) */ currentUrl?: string; /** Current page title (updated per-request) */ pageTitle?: string; /** Whether the browser is currently open/connected. Defaults to true when browser context is present. */ isOpen?: boolean; /** Number of currently open tabs, when available. */ tabCount?: number; /** Additional active page metadata exposed by the browser provider. */ pageMetadata?: Record; /** * CDP WebSocket URL for CLI providers. * When present, the agent should pass this URL to CLI commands * to connect them to the browser managed by Mastra. */ cdpUrl?: string; /** Internal provider hook used to refresh browser state between agentic loop steps. */ getState?: () => Promise | undefined>; } /** * Input processor that injects browser context into agent prompts. */ export declare class BrowserContextProcessor { readonly id = "browser-context"; readonly stateId = "browser"; processInput(args: ProcessInputArgs): ProcessInputResult; computeStateSignal(args: ComputeStateSignalArgs): Promise; } //# sourceMappingURL=processor.d.ts.map