@mastra/core
Version:
Mastra is a framework for building AI-powered applications and agents with a modern TypeScript stack.
1 lines • 118 kB
Source Map (JSON)
{"version":3,"sources":["../../src/browser/errors.ts","../../src/browser/processor.ts","../../src/browser/thread-manager.ts","../../src/browser/browser.ts","../../src/browser/screencast/types.ts","../../src/browser/screencast/screencast-stream.ts"],"names":["existsSync","readdirSync","join","lstatSync","unlinkSync","MastraBase","RegisteredLogger","isProcessorWorkflow","EventEmitter"],"mappings":"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","file":"index.cjs","sourcesContent":["/**\n * Unified error handling for browser tools.\n *\n * All browser tools return errors in this consistent format,\n * providing LLM-friendly messages and recovery hints.\n */\n\n/**\n * Error codes for browser tool failures.\n *\n * These codes help agents understand what went wrong\n * and whether retry or recovery is possible.\n */\nexport type ErrorCode =\n | 'stale_ref' // Ref no longer valid after page change\n | 'element_not_found' // Element doesn't exist\n | 'element_blocked' // Element covered by overlay\n | 'element_not_visible' // Element hidden\n | 'not_focusable' // Can't type into element\n | 'timeout' // Operation timed out\n | 'browser_closed' // Browser was externally closed\n | 'browser_error'; // Generic browser error\n\n/**\n * Structured error response for browser tool failures.\n *\n * Provides LLM-friendly error information with optional recovery hints.\n */\nexport interface BrowserToolError {\n /** Always false for error responses */\n success: false;\n /** Error classification code */\n code: ErrorCode;\n /** LLM-friendly error description */\n message: string;\n /** Suggested recovery action (only when actionable) */\n recoveryHint?: string;\n /** Whether the operation can be retried */\n canRetry: boolean;\n}\n\n/**\n * Error codes that are generally retryable.\n */\nconst RETRYABLE_CODES: Set<ErrorCode> = new Set(['timeout', 'element_blocked']);\n\n/**\n * Creates a structured error response for browser tools.\n *\n * Sets canRetry based on the error code: true for 'timeout' and 'element_blocked'.\n *\n * @param code - Error classification code\n * @param message - LLM-friendly error description\n * @param hint - Optional recovery hint (only when actionable)\n * @returns Typed BrowserToolError with canRetry set automatically\n */\nexport function createError(code: ErrorCode, message: string, hint?: string): BrowserToolError {\n return {\n success: false,\n code,\n message,\n recoveryHint: hint,\n canRetry: RETRYABLE_CODES.has(code),\n };\n}\n","/**\n * BrowserContextProcessor\n *\n * Input processor that injects browser context into agent prompts.\n * Similar to ChatChannelProcessor for channels.\n *\n * - `processInput`: Adds a system message with stable context (provider, sessionId, headless mode).\n * - `processInputStep`: At step 0, adds a new user message with browser context as a `<system-reminder>`.\n * This preserves prompt cache by not modifying existing messages in history.\n *\n * Reads from `requestContext.get('browser')`.\n *\n * @example\n * ```ts\n * const agent = new Agent({\n * browser: new AgentBrowser({ ... }),\n * inputProcessors: [new BrowserContextProcessor()],\n * });\n * ```\n */\n\nimport type { MastraDBMessage } from '../agent/message-list';\nimport type { ProcessInputArgs, ProcessInputResult, ProcessInputStepArgs } from '../processors/index';\n\nconst REMINDER_TYPE = 'browser-context';\n\n/**\n * Browser context stored in RequestContext.\n * Set by the browser implementation or deployer.\n */\nexport interface BrowserContext {\n /** Browser provider name (e.g., \"agent-browser\", \"stagehand\") */\n provider: string;\n\n /** Provider type: 'sdk' for direct API, 'cli' for command-line tools */\n providerType?: 'sdk' | 'cli';\n\n /** Session ID for tracking */\n sessionId?: string;\n\n /** Whether browser is running in headless mode */\n headless?: boolean;\n\n /** Current page URL (updated per-request) */\n currentUrl?: string;\n\n /** Current page title (updated per-request) */\n pageTitle?: string;\n\n /**\n * CDP WebSocket URL for CLI providers.\n * When present, the agent should pass this URL to CLI commands\n * to connect them to the browser managed by Mastra.\n */\n cdpUrl?: string;\n}\n\n/**\n * Input processor that injects browser context into agent prompts.\n */\nexport class BrowserContextProcessor {\n readonly id = 'browser-context';\n\n processInput(args: ProcessInputArgs): ProcessInputResult {\n const ctx = args.requestContext?.get('browser') as BrowserContext | undefined;\n if (!ctx) return args.messageList;\n\n const lines = [`You have access to a browser (${ctx.provider}).`];\n\n if (ctx.headless === false) {\n lines.push('The browser is running in visible mode (not headless).');\n }\n\n if (ctx.sessionId) {\n lines.push(`Session ID: ${ctx.sessionId}`);\n }\n\n // For CLI providers, include CDP URL for context (injection handles the mechanics)\n if (ctx.providerType === 'cli' && ctx.cdpUrl) {\n lines.push(`CDP WebSocket URL: ${ctx.cdpUrl}`);\n }\n\n const systemMessages = [...args.systemMessages, { role: 'system' as const, content: lines.join(' ') }];\n\n return { messages: args.messages, systemMessages };\n }\n\n async processInputStep(args: ProcessInputStepArgs) {\n // Only inject per-request context at the first step\n if (args.stepNumber !== 0) return;\n\n const ctx = args.requestContext?.get('browser') as BrowserContext | undefined;\n if (!ctx) return;\n\n const parts: string[] = [];\n\n if (ctx.currentUrl) {\n parts.push(`Current URL: ${ctx.currentUrl}`);\n }\n\n if (ctx.pageTitle) {\n parts.push(`Page title: ${ctx.pageTitle}`);\n }\n\n if (parts.length === 0) return;\n\n const reminderText = parts.join(' | ');\n\n // Only suppress if the trailing message is already the same browser reminder\n const existingMessages = args.messageList.get.all.db();\n if (hasTrailingBrowserReminder(existingMessages, ctx.currentUrl, ctx.pageTitle)) {\n return;\n }\n\n await args.sendSignal?.({\n type: 'system-reminder',\n contents: reminderText,\n attributes: {\n type: REMINDER_TYPE,\n },\n metadata: {\n url: ctx.currentUrl,\n title: ctx.pageTitle,\n },\n });\n\n return args.messageList;\n }\n}\n\ninterface BrowserReminderMetadata {\n type: typeof REMINDER_TYPE;\n url?: string;\n title?: string;\n}\n\n/**\n * Check if the trailing message is already a browser reminder with the same URL/title.\n * Only checks the last message to avoid suppressing reminders when the browser context\n * is no longer at the tail (e.g., user → reminder(A) → assistant → user should get a fresh reminder).\n */\nfunction hasTrailingBrowserReminder(\n messages: MastraDBMessage[],\n url: string | undefined,\n title: string | undefined,\n): boolean {\n const msg = messages[messages.length - 1];\n if (!msg || (msg.role !== 'user' && msg.role !== 'signal')) return false;\n\n const metadata = msg.content.metadata;\n if (typeof metadata !== 'object' || metadata === null) {\n return false;\n }\n\n const signal = (\n metadata as { signal?: { type?: string; attributes?: { type?: string }; metadata?: BrowserReminderMetadata } }\n ).signal;\n const reminder = signal\n ? {\n type: signal.attributes?.type,\n url: signal.metadata?.url,\n title: signal.metadata?.title,\n }\n : 'systemReminder' in metadata\n ? (metadata as { systemReminder?: BrowserReminderMetadata }).systemReminder\n : (metadata as unknown as BrowserReminderMetadata);\n return reminder?.type === REMINDER_TYPE && reminder.url === url && reminder.title === title;\n}\n","/**\n * ThreadManager - Abstract base class for managing thread-scoped browser sessions.\n *\n * Similar to ProcessManager for workspaces, this centralizes thread lifecycle logic\n * and makes thread isolation reusable across browser providers.\n *\n * Browser scope modes:\n * - 'shared': All threads share a single browser instance\n * - 'thread': Each thread gets its own browser instance (full isolation)\n */\n\nimport type { IMastraLogger } from '../logger';\n\n/** Browser scope mode - determines how browser instances are shared across threads */\nexport type BrowserScope = 'shared' | 'thread';\n\n/** Default thread ID used when no thread is specified */\nexport const DEFAULT_THREAD_ID = '__default__';\n\n/**\n * Represents a single tab's state for persistence.\n */\nexport interface BrowserTabState {\n url: string;\n title?: string;\n}\n\n/**\n * Full browser state for persistence and restoration.\n */\nexport interface BrowserState {\n tabs: BrowserTabState[];\n activeTabIndex: number;\n}\n\n/**\n * Represents an active thread session.\n */\nexport interface ThreadSession {\n /** Unique thread identifier */\n threadId: string;\n /** Timestamp when session was created */\n createdAt: number;\n /** Full browser state for this thread (for restore on relaunch) */\n browserState?: BrowserState;\n}\n\n/**\n * Configuration for ThreadManager.\n */\nexport interface ThreadManagerConfig {\n /** Browser scope mode */\n scope: BrowserScope;\n /** Logger instance */\n logger?: IMastraLogger;\n /** Callback when a new session is created */\n onSessionCreated?: (session: ThreadSession) => void;\n /** Callback when a session is destroyed */\n onSessionDestroyed?: (threadId: string) => void;\n}\n\n/**\n * Abstract base class for managing thread-scoped browser sessions.\n *\n * @typeParam TManager - The browser manager type (e.g., BrowserManagerLike, Stagehand)\n */\nexport abstract class ThreadManager<TManager = unknown> {\n protected readonly scope: BrowserScope;\n protected readonly logger?: IMastraLogger;\n protected readonly sessions = new Map<string, ThreadSession>();\n protected activeThreadId: string = DEFAULT_THREAD_ID;\n\n /** Preserved browser state that survives session clears (for browser restore) */\n protected readonly savedBrowserStates = new Map<string, BrowserState>();\n\n /** Shared manager instance (used for 'shared' scope) */\n protected sharedManager: TManager | null = null;\n\n /** Map of thread ID to dedicated manager instance (for 'thread' scope) */\n protected readonly threadManagers = new Map<string, TManager>();\n\n protected readonly onSessionCreated?: (session: ThreadSession) => void;\n protected readonly onSessionDestroyed?: (threadId: string) => void;\n\n constructor(config: ThreadManagerConfig) {\n this.scope = config.scope;\n this.logger = config.logger;\n this.onSessionCreated = config.onSessionCreated;\n this.onSessionDestroyed = config.onSessionDestroyed;\n }\n\n /**\n * Get the current browser scope mode.\n */\n getScope(): BrowserScope {\n return this.scope;\n }\n\n /**\n * Get the currently active thread ID.\n */\n getActiveThreadId(): string {\n return this.activeThreadId;\n }\n\n /**\n * Set the shared manager instance (called after browser launch).\n */\n setSharedManager(manager: TManager): void {\n this.sharedManager = manager;\n }\n\n /**\n * Clear the shared manager instance (called when browser disconnects).\n */\n clearSharedManager(): void {\n this.sharedManager = null;\n }\n\n /**\n * Get the manager for an existing thread session without creating a new one.\n *\n * For 'thread' scope: Returns the thread-specific manager, or null if no session exists.\n * For 'shared' scope: Returns the shared manager (all threads use the same instance).\n *\n * @param threadId - Thread identifier (defaults to DEFAULT_THREAD_ID)\n * @returns The manager for the thread, or null if not found (thread scope only)\n */\n getExistingManagerForThread(threadId?: string): TManager | null {\n const effectiveThreadId = threadId ?? DEFAULT_THREAD_ID;\n if (this.scope === 'thread') {\n return this.threadManagers.get(effectiveThreadId) ?? null;\n }\n return this.sharedManager;\n }\n\n /**\n * Check if any thread managers are still running (for 'thread' scope).\n */\n hasActiveThreadManagers(): boolean {\n return this.threadManagers.size > 0;\n }\n\n /**\n * Clear all session tracking without closing managers.\n * Used when browsers have been externally closed and we just need to reset state.\n */\n clearAllSessions(): void {\n this.threadManagers.clear();\n this.sessions.clear();\n this.activeThreadId = DEFAULT_THREAD_ID;\n }\n\n /**\n * Get a session by thread ID.\n */\n getSession(threadId: string): ThreadSession | undefined {\n return this.sessions.get(threadId);\n }\n\n /**\n * Check if a session exists for a thread.\n */\n hasSession(threadId: string): boolean {\n return this.sessions.has(threadId);\n }\n\n /**\n * List all active sessions.\n */\n listSessions(): ThreadSession[] {\n return Array.from(this.sessions.values());\n }\n\n /**\n * Get the number of active sessions.\n */\n getSessionCount(): number {\n return this.sessions.size;\n }\n\n /**\n * Get or create a session for a thread, and return the browser manager for that thread.\n *\n * For 'shared' scope, returns the shared manager.\n * For 'thread' scope, creates/returns a dedicated manager for the thread.\n *\n * @param threadId - Thread identifier (uses DEFAULT_THREAD_ID if not provided)\n * @returns The browser manager for the thread\n */\n async getManagerForThread(threadId?: string): Promise<TManager> {\n const effectiveThreadId = threadId ?? DEFAULT_THREAD_ID;\n\n // Shared scope - always use shared manager\n // For thread scope, always create/use a dedicated session (even for DEFAULT_THREAD_ID)\n if (this.scope === 'shared') {\n return this.getSharedManager();\n }\n\n // Check if session already exists\n let session = this.sessions.get(effectiveThreadId);\n\n if (!session) {\n // Create new session\n session = await this.createSession(effectiveThreadId);\n this.sessions.set(effectiveThreadId, session);\n this.logger?.debug?.(`Created thread session: ${effectiveThreadId}`);\n this.onSessionCreated?.(session);\n }\n\n this.activeThreadId = effectiveThreadId;\n return this.getManagerForSession(session);\n }\n\n /**\n * Destroy a specific thread's session.\n *\n * @param threadId - Thread identifier\n */\n async destroySession(threadId: string): Promise<void> {\n const session = this.sessions.get(threadId);\n if (!session) {\n return;\n }\n\n await this.doDestroySession(session);\n this.threadManagers.delete(threadId);\n this.sessions.delete(threadId);\n this.logger?.debug?.(`Destroyed thread session: ${threadId}`);\n this.onSessionDestroyed?.(threadId);\n\n // Reset active thread if we destroyed it\n if (this.activeThreadId === threadId) {\n this.activeThreadId = DEFAULT_THREAD_ID;\n }\n }\n\n /**\n * Destroy all thread sessions.\n */\n async destroyAllSessions(): Promise<void> {\n const threadIds = Array.from(this.sessions.keys());\n for (const threadId of threadIds) {\n await this.destroySession(threadId);\n }\n this.activeThreadId = DEFAULT_THREAD_ID;\n }\n\n /**\n * Update the browser state for a thread session.\n * Also saves to persistent storage so state survives session clears.\n */\n updateBrowserState(threadId: string, state: BrowserState): void {\n // Filter out empty/blank tabs\n const filteredTabs = state.tabs.filter(tab => tab.url && tab.url !== 'about:blank');\n if (filteredTabs.length === 0) {\n return;\n }\n\n const filteredState: BrowserState = {\n tabs: filteredTabs,\n activeTabIndex: Math.max(0, Math.min(state.activeTabIndex, filteredTabs.length - 1)),\n };\n\n const session = this.sessions.get(threadId);\n if (session) {\n session.browserState = filteredState;\n }\n // Also save to persistent map so it survives session clears\n this.savedBrowserStates.set(threadId, filteredState);\n }\n\n /**\n * Get the saved browser state for a thread (survives session clears).\n */\n getSavedBrowserState(threadId: string): BrowserState | undefined {\n // First check current session\n const session = this.sessions.get(threadId);\n if (session?.browserState) {\n return session.browserState;\n }\n // Fall back to saved state\n return this.savedBrowserStates.get(threadId);\n }\n\n /**\n * Clear a specific thread's session without closing the browser.\n * Used when a thread's browser has been externally closed.\n * Preserves the browser state for potential restoration.\n *\n * @param threadId - The thread ID to clear\n */\n clearSession(threadId: string): void {\n // Save the browser state before clearing so it can be restored on relaunch\n const session = this.sessions.get(threadId);\n if (session?.browserState) {\n this.savedBrowserStates.set(threadId, session.browserState);\n }\n this.threadManagers.delete(threadId);\n this.sessions.delete(threadId);\n // Reset activeThreadId if we just cleared it\n if (this.activeThreadId === threadId) {\n this.activeThreadId = DEFAULT_THREAD_ID;\n }\n }\n\n // ---------------------------------------------------------------------------\n // Abstract methods to be implemented by subclasses\n // ---------------------------------------------------------------------------\n\n /**\n * Get the shared browser manager (used for 'shared' scope and default thread).\n * @throws Error if shared manager is not initialized\n */\n protected getSharedManager(): TManager {\n if (!this.sharedManager) {\n throw new Error('Browser not launched');\n }\n return this.sharedManager;\n }\n\n /**\n * Create a new session for a thread.\n * Called when a thread is accessed for the first time.\n */\n protected abstract createSession(threadId: string): Promise<ThreadSession>;\n\n /**\n * Get the browser manager for a specific session.\n */\n protected abstract getManagerForSession(session: ThreadSession): TManager;\n\n /**\n * Destroy a session and clean up resources.\n */\n protected abstract doDestroySession(session: ThreadSession): Promise<void>;\n}\n","/**\n * MastraBrowser Base Class\n *\n * Abstract base class for browser providers. Extends MastraBase for logger integration.\n *\n * ## Architecture\n *\n * Each browser provider defines its own tools via the `getTools()` method.\n * This allows different providers to offer different capabilities:\n *\n * - **AgentBrowser**: 17 deterministic tools using refs ([ref=e1], [ref=e2])\n * - **StagehandBrowser**: AI-powered tools (act, extract, observe)\n *\n