SYMBOL INDEX (969 symbols across 86 files) FILE: packages/cli/src/commands/click.ts function registerClickCommand (line 5) | function registerClickCommand(program: Command): void { FILE: packages/cli/src/commands/eval.ts function registerEvalCommand (line 5) | function registerEvalCommand(program: Command): void { FILE: packages/cli/src/commands/extract.ts function registerExtractCommand (line 6) | function registerExtractCommand(program: Command): void { FILE: packages/cli/src/commands/interactive.ts type InteractiveOptions (line 15) | interface InteractiveOptions { function registerInteractiveCommand (line 23) | function registerInteractiveCommand(program: Command): void { function parseCommandLine (line 107) | function parseCommandLine(input: string): string[] { function handleCommand (line 140) | async function handleCommand( function printHelp (line 316) | function printHelp(): void { FILE: packages/cli/src/commands/open.ts function registerOpenCommand (line 5) | function registerOpenCommand(program: Command): void { FILE: packages/cli/src/commands/run.ts type RunOptions (line 21) | interface RunOptions { function createModel (line 34) | async function createModel(provider: string, modelId: string): Promise { method handleRequest (line 60) | private async handleRequest(request: CLIRequest): Promise { method getSessionBrowser (line 155) | private getSessionBrowser(request: CLIRequest) { method stop (line 168) | async stop(): Promise { method socketPath (line 183) | static get socketPath(): string { FILE: packages/cli/src/sessions.ts type ManagedSession (line 4) | interface ManagedSession { class SessionManager (line 11) | class SessionManager { method create (line 14) | async create(options?: ViewportOptions): Promise { method get (line 29) | get(id: string): Viewport | undefined { method close (line 38) | async close(id: string): Promise { method closeAll (line 47) | async closeAll(): Promise { method list (line 54) | list(): Array<{ id: string; createdAt: number; lastAccessedAt: number ... method activeCount (line 62) | get activeCount(): number { method getDefault (line 66) | getDefault(): Viewport | undefined { method getDefaultId (line 73) | getDefaultId(): string | undefined { FILE: packages/core/src/agent/agent.test.ts function createMockPageAnalyzer (line 19) | function createMockPageAnalyzer(): PageAnalyzer { function createMockUsage (line 46) | function createMockUsage(input = 100, output = 50): InferenceUsage { function createMockModel (line 50) | function createMockModel(options?: { function createDoneOnStepModel (line 84) | function createDoneOnStepModel(doneOnStep: number, result = 'Task comple... function createMockBrowserState (line 113) | function createMockBrowserState(): ViewportSnapshot { function createMockRegistry (line 124) | function createMockRegistry(): CommandCatalog{ function createMockTools (line 135) | function createMockTools(actionResults?: CommandResult[]): CommandExecut... function createMockBrowser (line 150) | function createMockBrowser(overrides?: { function createDefaultAgentOptions (line 171) | function createDefaultAgentOptions(overrides?: Partial): A... FILE: packages/core/src/agent/agent.ts type AgentOptions (line 54) | interface AgentOptions { class Agent (line 75) | class Agent { method constructor (line 97) | constructor(options: AgentOptions) { method run (line 177) | async run(stepLimit?: number): Promise { method executeStep (line 390) | private async executeStep(step: number, stepLimit: number): Promise { method getSchemaName (line 671) | private getSchemaName(): string { method normalizeOutput (line 687) | private normalizeOutput(output: Record): AgentDecision { method shouldUpdatePlan (line 720) | private shouldUpdatePlan(step: number): boolean { method updatePlan (line 728) | private async updatePlan(step: number): Promise { method rebuildInstructionBuilder (line 779) | private rebuildInstructionBuilder(pageUrl?: string): void { method autoNavigateFromTask (line 792) | private async autoNavigateFromTask(): Promise { method executeInitialActions (line 816) | private async executeInitialActions(): Promise { method makeFailureRecoveryCall (line 856) | private async makeFailureRecoveryCall( method updateCostTracking (line 903) | private updateCostTracking( method filterSensitiveData (line 933) | private filterSensitiveData(results: CommandResult[]): CommandResult[] { method saveConversation (line 955) | private async saveConversation(step: number): Promise { method addNewTask (line 981) | addNewTask(task: string): void { method getFollowUpTasks (line 986) | getFollowUpTasks(): string[] { method pause (line 994) | pause(): void { method resume (line 998) | resume(): void { method stop (line 1002) | stop(): void { method getState (line 1006) | getState(): AgentState { method getHistory (line 1010) | getHistory(): ExecutionLog { method getAccumulatedCost (line 1014) | getAccumulatedCost(): AccumulatedCost { FILE: packages/core/src/agent/conversation.test.ts function createManager (line 9) | function createManager( function createMockModel (line 19) | function createMockModel(summary = 'Summary of the conversation'): Langu... FILE: packages/core/src/agent/conversation/service.ts class ConversationManager (line 36) | class ConversationManager { method constructor (line 45) | constructor(options: ConversationManagerOptions) { method setInstructionBuilder (line 53) | setInstructionBuilder(prompt: string): void { method addStateMessage (line 62) | addStateMessage( method addAssistantMessage (line 87) | addAssistantMessage(text: string, step?: number): void { method addCommandResultMessage (line 102) | addCommandResultMessage(text: string, step?: number): void { method addUserMessage (line 117) | addUserMessage(text: string): void { method addEphemeralMessage (line 134) | addEphemeralMessage(text: string, role: 'user' | 'assistant' = 'user')... method getMessages (line 153) | getMessages(): Message[] { method consumeEphemeralMessages (line 189) | private consumeEphemeralMessages(): void { method estimateTotalTokens (line 207) | estimateTotalTokens(): number { method compact (line 226) | private compact(): void { method compactWithLlm (line 292) | async compactWithLlm(model?: LanguageModel): Promise { method shouldCompactWithLlm (line 379) | shouldCompactWithLlm(): boolean { method recordConversationEntry (line 392) | private recordConversationEntry( method agentHistoryDescription (line 415) | agentHistoryDescription(stepLimitShown = 10): string { method formatStepDescription (line 459) | private formatStepDescription(step: number, items: ConversationEntry[]... method getConversationEntrys (line 471) | getConversationEntrys(): readonly ConversationEntry[] { method save (line 483) | save(): ConversationManagerState { method load (line 505) | load(state: ConversationManagerState): void { method saveToFile (line 532) | async saveToFile(filePath: string): Promise { method loadFromFile (line 544) | async loadFromFile(filePath: string): Promise { method messageCount (line 555) | get messageCount(): number { method step (line 559) | get step(): number { method clear (line 563) | clear(): void { method resetMessages (line 574) | resetMessages(): void { FILE: packages/core/src/agent/conversation/types.ts type ConversationManagerOptions (line 7) | interface ConversationManagerOptions { type MessageCategory (line 21) | type MessageCategory = type TrackedMessage (line 29) | interface TrackedMessage { type ConversationEntry (line 50) | interface ConversationEntry { type ConversationManagerState (line 70) | interface ConversationManagerState { type SerializedTrackedMessage (line 82) | interface SerializedTrackedMessage { FILE: packages/core/src/agent/conversation/utils.ts function estimateTokens (line 7) | function estimateTokens(text: string): number { function estimateMessageTokens (line 11) | function estimateMessageTokens(content: string | unknown[]): number { constant MASK (line 32) | const MASK = '***'; function redactSensitiveValues (line 38) | function redactSensitiveValues( function redactMessage (line 56) | function redactMessage( function redactMessages (line 95) | function redactMessages( function extractTextContent (line 107) | function extractTextContent(message: Message): string { function truncate (line 122) | function truncate(text: string, maxLen: number): string { FILE: packages/core/src/agent/evaluator.ts constant JUDGE_SYSTEM_PROMPT (line 17) | const JUDGE_SYSTEM_PROMPT = `You are an expert task completion judge. Yo... constant SIMPLE_JUDGE_SYSTEM_PROMPT (line 35) | const SIMPLE_JUDGE_SYSTEM_PROMPT = `You are a quick-check validator for ... class ResultEvaluator (line 39) | class ResultEvaluator { method constructor (line 42) | constructor(model: LanguageModel) { method evaluate (line 50) | async evaluate( method simpleEvaluate (line 92) | async simpleEvaluate( function constructEvaluatorMessages (line 128) | function constructEvaluatorMessages( function constructQuickCheckMessages (line 231) | function constructQuickCheckMessages( FILE: packages/core/src/agent/instructions.ts type PromptTemplate (line 14) | type PromptTemplate = 'default' | 'flash' | 'no-thinking'; type InstructionBuilderOptions (line 16) | interface InstructionBuilderOptions { type StepInfo (line 29) | interface StepInfo { type StepPromptBuilderOptions (line 34) | interface StepPromptBuilderOptions { constant TEMPLATES_DIR (line 55) | const TEMPLATES_DIR = resolve(dirname(fileURLToPath(import.meta.url)), '... constant TEMPLATE_FILES (line 63) | const TEMPLATE_FILES: Record = { function loadTemplate (line 76) | function loadTemplate(variant: PromptTemplate): string { function interpolate (line 97) | function interpolate(template: string, variables: Record... function clearTemplateCache (line 106) | function clearTemplateCache(): void { class InstructionBuilder (line 123) | class InstructionBuilder { method constructor (line 127) | constructor(options: InstructionBuilderOptions, actionDescriptions: st... method build (line 139) | build(): string { method fromSettings (line 171) | static fromSettings(settings: AgentConfig, registry: CommandCatalog, p... method buildTaskPrompt (line 187) | static buildTaskPrompt(task: string): string { method buildStatePrompt (line 191) | static buildStatePrompt( method buildCommandResultPrompt (line 226) | static buildCommandResultPrompt(results: Array<{ action: string; resul... method buildLoopNudge (line 236) | static buildLoopNudge(message: string): string { method buildPlanPrompt (line 240) | static buildPlanPrompt(currentPlan: string): string { class StepPromptBuilder (line 261) | class StepPromptBuilder { method constructor (line 274) | constructor(options: StepPromptBuilderOptions) { method getUserMessage (line 295) | getUserMessage(): string | ContentPart[] { method buildStateDescription (line 329) | private buildStateDescription(): string { method buildAgentHistorySection (line 352) | private buildAgentHistorySection(): string { method buildAgentStateSection (line 357) | private buildAgentStateSection(): string { method buildBrowserStateSection (line 380) | private buildBrowserStateSection(): string { method buildTabsText (line 401) | private buildTabsText(): string { method buildPageInfoText (line 423) | private buildPageInfoText(): string { method buildElementsText (line 441) | private buildElementsText(): string { function buildCommandDescriptions (line 479) | function buildCommandDescriptions(registry: CommandCatalog, pageUrl?: st... function buildContextualCommands (line 491) | function buildContextualCommands(registry: CommandCatalog, pageUrl: stri... function buildExtractionInstructionBuilder (line 517) | function buildExtractionInstructionBuilder(): string { function buildExtractionUserPrompt (line 542) | function buildExtractionUserPrompt( function extractDomain (line 556) | function extractDomain(url: string): string { FILE: packages/core/src/agent/replay-recorder.ts type ReplayRecorderOptions (line 7) | interface ReplayRecorderOptions { type FrameData (line 18) | interface FrameData { class ReplayRecorder (line 37) | class ReplayRecorder { method constructor (line 44) | constructor(options: ReplayRecorderOptions) { method addFrame (line 57) | addFrame(screenshotBase64: string, stepNumber?: number, label?: string... method save (line 74) | async save(generateGif: string | boolean = true): Promise { method encodeGif (line 112) | private async encodeGif(outputPath: string): Promise { method createStepOverlaySvg (line 224) | private createStepOverlaySvg(stepNumber: number, label?: string): stri... method saveFrames (line 239) | private async saveFrames(outputPath: string): Promise { method escapeXml (line 266) | private escapeXml(text: string): string { method frameCount (line 275) | get frameCount(): number { method clear (line 279) | clear(): void { FILE: packages/core/src/agent/stall-detector.test.ts function clickAction (line 12) | function clickAction(index: number): Command { function inputAction (line 16) | function inputAction(index: number, text: string): Command { function navigateAction (line 20) | function navigateAction(url: string): Command { function scrollAction (line 24) | function scrollAction(direction: 'up' | 'down', index?: number): Command { function doneAction (line 28) | function doneAction(text: string): Command { function searchGoogleAction (line 32) | function searchGoogleAction(query: string): Command { function makeFingerprint (line 36) | function makeFingerprint(overrides: Partial = {}): PageSi... FILE: packages/core/src/agent/stall-detector.ts type PageSignature (line 5) | interface PageSignature { type StallDetectorConfig (line 13) | interface StallDetectorConfig { constant DEFAULT_OPTIONS (line 21) | const DEFAULT_OPTIONS: StallDetectorConfig = { type StallCheckResult (line 28) | interface StallCheckResult { constant ESCALATING_NUDGES (line 39) | const ESCALATING_NUDGES = [ class StallDetector (line 71) | class StallDetector { method constructor (line 78) | constructor(options?: Partial) { method recordAction (line 82) | recordAction(actions: Command[]): void { method recordFingerprint (line 92) | recordFingerprint(fingerprint: PageSignature): void { method isStuck (line 103) | isStuck(): StallCheckResult { method getLoopNudgeMessage (line 173) | getLoopNudgeMessage(): string { method getTotalRepetitions (line 185) | getTotalRepetitions(): number { method reset (line 189) | reset(): void { method normalizeActionHash (line 204) | private normalizeActionHash(actions: Command[]): string { method normalizeSearchQuery (line 246) | private normalizeSearchQuery(query: string): string { method hashFingerprint (line 259) | private hashFingerprint(fp: PageSignature): string { method countTrailingRepetitions (line 278) | private countTrailingRepetitions(history: string[]): number { method countConsecutiveStagnantPages (line 296) | private countConsecutiveStagnantPages(): number { method getSeverity (line 321) | private getSeverity(repetitions: number): number { method getEscalatingNudge (line 331) | private getEscalatingNudge(): string { function hashPageTree (line 347) | function hashPageTree(domTree: string): string { function hashTextContent (line 360) | function hashTextContent(text: string): string { FILE: packages/core/src/agent/types.ts type AgentConfig (line 8) | interface AgentConfig { constant DEFAULT_AGENT_CONFIG (line 69) | const DEFAULT_AGENT_CONFIG: AgentConfig = { type CompactionPolicy (line 104) | interface CompactionPolicy { type Reasoning (line 123) | type Reasoning = z.infer; type AgentDecision (line 136) | type AgentDecision = z.infer; type AgentDecisionCompact (line 150) | type AgentDecisionCompact = z.infer; type AgentDecisionDirect (line 161) | type AgentDecisionDirect = z.infer; type StepTelemetry (line 165) | interface StepTelemetry { type ExtractedVariable (line 191) | interface ExtractedVariable { type AgentState (line 204) | interface AgentState { type StepRecord (line 223) | interface StepRecord { class ExecutionLog (line 242) | class ExecutionLog { method constructor (line 252) | constructor(init: { method recomputeTotals (line 267) | recomputeTotals(): void { method addEntry (line 280) | addEntry(entry: StepRecord): void { method finish (line 286) | finish(): void { method finalResult (line 296) | finalResult(): string | undefined { method isDone (line 311) | isDone(): boolean { method urls (line 320) | urls(): string[] { method screenshots (line 336) | screenshots(): string[] { method errors (line 349) | errors(): string[] { method allExtractedVariables (line 367) | allExtractedVariables(): ExtractedVariable[] { method toJSON (line 380) | toJSON(): Record { method saveToFile (line 404) | async saveToFile(filePath: string): Promise { method loadFromFile (line 416) | static async loadFromFile(filePath: string): Promise { type PlanStep (line 445) | type PlanStep = z.infer; type EvaluationResult (line 463) | type EvaluationResult = z.infer; type QuickCheckResult (line 475) | type QuickCheckResult = z.infer; type StepCostBreakdown (line 479) | interface StepCostBreakdown { type AccumulatedCost (line 485) | interface AccumulatedCost { type PricingTable (line 494) | interface PricingTable { constant PRICING_TABLE (line 499) | const PRICING_TABLE: Record = { function calculateStepCost (line 512) | function calculateStepCost( type PlanRevision (line 538) | type PlanRevision = z.infer; constant EXTENDED_THINKING_MODELS (line 542) | const EXTENDED_THINKING_MODELS = [ function supportsDeepReasoning (line 555) | function supportsDeepReasoning(modelId: string): boolean { constant COORDINATE_CLICK_MODELS (line 559) | const COORDINATE_CLICK_MODELS = [ function supportsCoordinateMode (line 567) | function supportsCoordinateMode(modelId: string): boolean { constant FLASH_MODELS (line 571) | const FLASH_MODELS = [ function isCompactModel (line 579) | function isCompactModel(modelId: string): boolean { type RunOutcome (line 585) | interface RunOutcome { FILE: packages/core/src/bridge/adapter.ts type MCPToolDefinition (line 4) | interface MCPToolDefinition { class BridgeAdapter (line 10) | class BridgeAdapter { method constructor (line 13) | constructor(tools: CommandExecutor) { method getToolDefinitions (line 17) | getToolDefinitions(): MCPToolDefinition[] { method getToolNames (line 25) | getToolNames(): string[] { method parseToolName (line 29) | parseToolName(mcpToolName: string): string | null { method zodToJsonSchema (line 36) | private zodToJsonSchema(schema: ZodTypeAny): Record { method fieldToJsonSchema (line 61) | private fieldToJsonSchema(schema: ZodTypeAny): Record { FILE: packages/core/src/bridge/client.ts type BridgeClientOptions (line 10) | interface BridgeClientOptions { type MCPTool (line 24) | interface MCPTool { type MCPConnectionState (line 30) | type MCPConnectionState = 'disconnected' | 'connecting' | 'connected' | ... type PendingRequest (line 32) | interface PendingRequest { type BridgeClientEvents (line 39) | interface BridgeClientEvents { class BridgeClient (line 58) | class BridgeClient extends EventEmitter { method constructor (line 83) | constructor(options: BridgeClientOptions) { method state (line 94) | get state(): MCPConnectionState { method isConnected (line 98) | get isConnected(): boolean { method connect (line 104) | async connect(): Promise { method spawnProcess (line 125) | private async spawnProcess(): Promise { method initialize (line 153) | private async initialize(): Promise { method setState (line 166) | private setState(newState: MCPConnectionState): void { method handleProcessClose (line 177) | private handleProcessClose(): void { method attemptReconnect (line 196) | private attemptReconnect(): void { method listTools (line 239) | async listTools(): Promise { method getTools (line 253) | getTools(): MCPTool[] { method invalidateToolCache (line 258) | invalidateToolCache(): void { method toolsCacheAge (line 264) | get toolsCacheAge(): number { method toCustomActions (line 270) | toCustomActions(): CustomCommandSpec[] { method callTool (line 288) | async callTool(name: string, args: Record): Promise { method startHealthChecks (line 310) | private startHealthChecks(): void { method stopHealthChecks (line 324) | private stopHealthChecks(): void { method send (line 333) | private send(method: string, params?: Record): Promis... method sendNotification (line 361) | private sendNotification(method: string, params?: Record { method waitForPendingDrain (line 463) | private waitForPendingDrain(): Promise { method pendingRequestCount (line 477) | get pendingRequestCount(): number { FILE: packages/core/src/bridge/mcp-types.ts type MCPServerOptions (line 6) | interface MCPServerOptions { type MCPCapability (line 12) | type MCPCapability = 'browse' | 'extract' | 'screenshot' | 'interact'; type MCPRequest (line 14) | interface MCPRequest { type MCPResponse (line 19) | interface MCPResponse { FILE: packages/core/src/bridge/server.test.ts function makeMockViewport (line 7) | function makeMockViewport() { function makeMockPageAnalyzer (line 37) | function makeMockPageAnalyzer() { function makeRequest (line 58) | function makeRequest( FILE: packages/core/src/bridge/server.ts type BridgeServerOptions (line 13) | interface BridgeServerOptions { type MCPRequest (line 23) | interface MCPRequest { type MCPResponse (line 30) | interface MCPResponse { type MCPNotification (line 37) | interface MCPNotification { type MCPResource (line 45) | interface MCPResource { type MCPResourceContent (line 52) | interface MCPResourceContent { type ResourceSubscription (line 61) | interface ResourceSubscription { class BridgeServer (line 78) | class BridgeServer { method constructor (line 99) | constructor(options: BridgeServerOptions) { method getResourceDefinitions (line 111) | private getResourceDefinitions(): MCPResource[] { method handleMessage (line 142) | async handleMessage(message: MCPRequest): Promise { method handleRequest (line 152) | async handleRequest(request: MCPRequest & { id: string | number }): Pr... method handleNotification (line 191) | private async handleNotification(message: MCPRequest): Promise { method handleInitialize (line 208) | private handleInitialize(request: MCPRequest & { id: string | number }... method handleToolsList (line 229) | private handleToolsList(request: MCPRequest & { id: string | number })... method handleToolsCall (line 244) | private async handleToolsCall(request: MCPRequest & { id: string | num... method handleResourcesList (line 294) | private handleResourcesList(request: MCPRequest & { id: string | numbe... method handleResourcesRead (line 304) | private async handleResourcesRead(request: MCPRequest & { id: string |... method readResource (line 335) | private async readResource(uri: string): Promise { method handleResourcesSubscribe (line 378) | private handleResourcesSubscribe(request: MCPRequest & { id: string | ... method handleResourcesUnsubscribe (line 407) | private handleResourcesUnsubscribe(request: MCPRequest & { id: string ... method emitProgress (line 425) | emitProgress(requestId: string | number, progress: number, message?: s... method notifyResourceChanged (line 440) | private notifyResourceChanged(uri: string): void { method broadcastNotification (line 452) | private broadcastNotification(notification: MCPNotification): void { method startStdio (line 468) | async startStdio(): Promise { method startSSE (line 517) | async startSSE(port?: number): Promise { method handleSSEConnection (line 568) | private handleSSEConnection(res: ServerResponse): void { method handleSSEMessage (line 588) | private async handleSSEMessage(req: IncomingMessage, res: ServerRespon... method stopSSE (line 625) | async stopSSE(): Promise { method stop (line 647) | async stop(): Promise { FILE: packages/core/src/commands/catalog.test.ts function makeHandler (line 9) | function makeHandler( function makeContext (line 15) | function makeContext(overrides: Partial = {}): Executi... FILE: packages/core/src/commands/catalog/catalog.ts constant SPECIAL_PARAMS (line 12) | const SPECIAL_PARAMS = new Set([ function inspectHandlerParams (line 26) | function inspectHandlerParams(handler: Function): string[] { function detectSpecialParams (line 87) | function detectSpecialParams(handler: Function): Set { function resolveSpecialParam (line 101) | function resolveSpecialParam( class CommandCatalog (line 125) | class CommandCatalog { method constructor (line 130) | constructor(options?: CatalogOptions) { method register (line 134) | register(action: CatalogEntry): void { method registerCustom (line 153) | registerCustom(definition: CustomCommandSpec): void { method unregister (line 163) | unregister(name: string): void { method get (line 168) | get(name: string): CatalogEntry | undefined { method has (line 172) | has(name: string): boolean { method getAll (line 176) | getAll(): CatalogEntry[] { method getNames (line 180) | getNames(): string[] { method execute (line 184) | async execute( method getSpecialParams (line 216) | getSpecialParams(name: string): Set { method injectSpecialParams (line 225) | private injectSpecialParams( method buildDynamicSchema (line 248) | buildDynamicSchema(): z.ZodType { method size (line 269) | get size(): number { method getPromptDescription (line 279) | getPromptDescription(pageUrl?: string): string { method getActionsForDomain (line 325) | getActionsForDomain(domain: string): CatalogEntry[] { method replaceSensitiveData (line 344) | replaceSensitiveData( method getTerminatingActions (line 370) | getTerminatingActions(): string[] { method isTerminating (line 379) | isTerminating(name: string): boolean { function extractDomain (line 387) | function extractDomain(url: string): string | null { FILE: packages/core/src/commands/catalog/types.ts type CatalogEntry (line 4) | interface CatalogEntry { type CatalogOptions (line 13) | interface CatalogOptions { FILE: packages/core/src/commands/executor.test.ts function makeMockPageAnalyzer (line 8) | function makeMockPageAnalyzer() { function makeMockViewport (line 29) | function makeMockViewport() { function makeMockPage (line 45) | function makeMockPage() { function makeMockCdpSession (line 62) | function makeMockCdpSession() { function makeContext (line 68) | function makeContext(overrides: Partial = {}): Executi... function action (line 85) | function action(a: Record): Command { FILE: packages/core/src/commands/executor.ts type CommandExecutorOptions (line 50) | interface CommandExecutorOptions { class CommandExecutor (line 57) | class CommandExecutor { method constructor (line 65) | constructor(options?: CommandExecutorOptions) { method setCoordinateClicking (line 83) | setCoordinateClicking(enabled: boolean): void { method registerBuiltinActions (line 87) | private registerBuiltinActions(): void { method useStructuredOutputAction (line 693) | private useStructuredOutputAction(): void { method executeAction (line 757) | async executeAction( method executeActions (line 765) | async executeActions( method maskSensitiveResult (line 810) | private maskSensitiveResult( method maskSensitiveText (line 835) | private maskSensitiveText( function buildSearchUrl (line 846) | function buildSearchUrl( constant ERROR_PATTERNS (line 867) | const ERROR_PATTERNS: Array<{ function classifyViewportError (line 1027) | function classifyViewportError(error: unknown): InterpretedViewportError { FILE: packages/core/src/commands/extraction/extractor.ts type ExtractionResult (line 16) | type ExtractionResult = z.infer; class ContentExtractor (line 18) | class ContentExtractor { method constructor (line 21) | constructor(model: LanguageModel) { method extract (line 25) | async extract(page: Page, goal: string, startFromChar?: number): Promi... method extractStructured (line 69) | async extractStructured( method extractLinks (line 123) | async extractLinks( method extractFromText (line 131) | async extractFromText( method extractFromTextWithJsonSchema (line 160) | private async extractFromTextWithJsonSchema( method combineExtractions (line 190) | private async combineExtractions(results: string[], goal: string): Pro... FILE: packages/core/src/commands/types.ts type Command (line 172) | type Command = z.infer; type CommandName (line 174) | type CommandName = Command['action']; type CommandResult (line 178) | interface CommandResult { type ViewportErrorCategory (line 188) | type ViewportErrorCategory = type InterpretedViewportError (line 199) | interface InterpretedViewportError { type CustomCommandSpec (line 208) | interface CustomCommandSpec { type ExecutionContext (line 216) | interface ExecutionContext { FILE: packages/core/src/commands/utils.ts function scrollPage (line 3) | async function scrollPage( function scrollElement (line 19) | async function scrollElement( function buildGoogleSearchUrl (line 39) | function buildGoogleSearchUrl(query: string): string { FILE: packages/core/src/config/config.ts class Config (line 13) | class Config { method constructor (line 16) | private constructor(overrides: DeepPartial = {}) { method instance (line 29) | static instance(overrides?: DeepPartial): Config { method reset (line 36) | static reset(): void { method mergeEnvDefaults (line 40) | private mergeEnvDefaults(overrides: DeepPartial): DeepPa... method deepMerge (line 68) | private deepMerge(...objects: DeepPartial[]): DeepPartia... method browser (line 96) | get browser() { method agent (line 100) | get agent() { method configDir (line 104) | static get configDir(): string { method tmpDir (line 112) | static get tmpDir(): string { method configFilePath (line 120) | static get configFilePath(): string { method loadConfigFile (line 124) | static loadConfigFile(): DeepPartial { method saveConfigFile (line 139) | static saveConfigFile(config: ConfigFileContents): void { method isDocker (line 149) | static isDocker(): boolean { method hasDisplay (line 162) | static hasDisplay(): boolean { FILE: packages/core/src/config/types.ts type ProxyConfig (line 10) | type ProxyConfig = z.infer; type ViewportConfig (line 35) | type ViewportConfig = z.infer; type AgentConfig (line 74) | type AgentConfig = z.infer; type GlobalConfig (line 83) | type GlobalConfig = z.infer; type ConfigFileContents (line 85) | interface ConfigFileContents { FILE: packages/core/src/errors.ts class OpenBrowserError (line 1) | class OpenBrowserError extends Error { method constructor (line 2) | constructor(message: string, options?: ErrorOptions) { class ViewportError (line 8) | class ViewportError extends OpenBrowserError { method constructor (line 9) | constructor(message: string, options?: ErrorOptions) { class LaunchFailedError (line 15) | class LaunchFailedError extends ViewportError { method constructor (line 16) | constructor(message: string, options?: ErrorOptions) { class NavigationFailedError (line 22) | class NavigationFailedError extends ViewportError { method constructor (line 23) | constructor( class ViewportCrashedError (line 33) | class ViewportCrashedError extends ViewportError { method constructor (line 34) | constructor(message = 'Browser has crashed', options?: ErrorOptions) { class AgentError (line 40) | class AgentError extends OpenBrowserError { method constructor (line 41) | constructor(message: string, options?: ErrorOptions) { class AgentStalledError (line 47) | class AgentStalledError extends AgentError { method constructor (line 48) | constructor(message = 'Agent is stuck in a loop', options?: ErrorOptio... class StepLimitExceededError (line 54) | class StepLimitExceededError extends AgentError { method constructor (line 58) | constructor(stepsTaken: number, stepLimit: number, options?: ErrorOpti... class UrlBlockedError (line 66) | class UrlBlockedError extends OpenBrowserError { method constructor (line 69) | constructor(url: string, options?: ErrorOptions) { class PageExtractionError (line 76) | class PageExtractionError extends OpenBrowserError { method constructor (line 77) | constructor(message: string, options?: ErrorOptions) { class ModelError (line 83) | class ModelError extends OpenBrowserError { method constructor (line 84) | constructor(message: string, options?: ErrorOptions) { class ModelThrottledError (line 90) | class ModelThrottledError extends ModelError { method constructor (line 93) | constructor(message: string, retryAfterMs?: number, options?: ErrorOpt... class CommandFailedError (line 100) | class CommandFailedError extends OpenBrowserError { method constructor (line 103) | constructor(toolName: string, message: string, options?: ErrorOptions) { class ContextualViewportError (line 110) | class ContextualViewportError extends ViewportError { method constructor (line 115) | constructor( class ProviderError (line 131) | class ProviderError extends ModelError { method constructor (line 135) | constructor( method isRetryable (line 147) | get isRetryable(): boolean { class SchemaViolationError (line 153) | class SchemaViolationError extends OpenBrowserError { method constructor (line 157) | constructor(field: string, issues: string[], options?: ErrorOptions) { FILE: packages/core/src/logging.ts constant LEVEL_NAMES (line 3) | const LEVEL_NAMES: Record = { constant LEVEL_COLORS (line 10) | const LEVEL_COLORS: Record = { constant RESET (line 17) | const RESET = '\x1b[0m'; constant DIM (line 18) | const DIM = '\x1b[2m'; constant BOLD (line 19) | const BOLD = '\x1b[1m'; function setGlobalLogLevel (line 25) | function setGlobalLogLevel(level: LogLevel): void { function getGlobalLogLevel (line 29) | function getGlobalLogLevel(): LogLevel { function setLogColors (line 33) | function setLogColors(enabled: boolean): void { function setLogTimestamps (line 37) | function setLogTimestamps(enabled: boolean): void { function formatTimestamp (line 41) | function formatTimestamp(): string { function formatMessage (line 50) | function formatMessage( class Logger (line 77) | class Logger { method constructor (line 81) | constructor(name: string) { method setLevel (line 85) | setLevel(level: LogLevel): void { method getEffectiveLevel (line 89) | getEffectiveLevel(): LogLevel { method isEnabled (line 93) | isEnabled(level: LogLevel): boolean { method debug (line 97) | debug(message: string, ...args: unknown[]): void { method info (line 101) | info(message: string, ...args: unknown[]): void { method warn (line 105) | warn(message: string, ...args: unknown[]): void { method error (line 109) | error(message: string, ...args: unknown[]): void { method log (line 113) | private log(level: LogLevel, message: string, ...args: unknown[]): void { function createLogger (line 133) | function createLogger(name: string): Logger { FILE: packages/core/src/metering/tracker.test.ts constant TEST_PRICING (line 12) | const TEST_PRICING: PricingTable = { FILE: packages/core/src/metering/tracker.ts class UsageMeter (line 17) | class UsageMeter { method constructor (line 23) | constructor(modelId: string, customPricing?: PricingTable) { method record (line 28) | record(inputTokens: number, outputTokens: number): void { method getTotalUsage (line 41) | getTotalUsage(): UsageRecord { method getStepUsages (line 45) | getStepUsages(): UsageRecord[] { method getEstimatedCost (line 49) | getEstimatedCost(): number { method getEstimatedCostFormatted (line 59) | getEstimatedCostFormatted(): string { method getModelCost (line 64) | private getModelCost(): CostRates | undefined { method getSummary (line 68) | getSummary(): string { method reset (line 80) | reset(): void { class CompositeUsageMeter (line 92) | class CompositeUsageMeter { method constructor (line 100) | constructor(customPricing?: PricingTable) { method start (line 105) | start(): void { method setBudget (line 113) | setBudget(config: BudgetPolicy): this { method clearBudget (line 123) | clearBudget(): void { method record (line 133) | record(opts: { method getTracker (line 173) | getTracker(modelId: string): UsageMeter { method getTotalCost (line 178) | getTotalCost(): number { method getTotalCostFormatted (line 187) | getTotalCostFormatted(): string { method getTotalUsage (line 192) | getTotalUsage(): UsageRecord { method getBudgetState (line 204) | getBudgetState(): BudgetState { method getSummary (line 218) | getSummary(): MeteringSummary { method getSummaryText (line 235) | getSummaryText(): string { method reset (line 279) | reset(): void { method getOrCreateTracker (line 291) | private getOrCreateTracker(modelId: string): UsageMeter { method checkBudget (line 300) | private checkBudget(): void { method buildModelBreakdown (line 328) | private buildModelBreakdown(): ModelUsageBreakdown[] { method buildRoleBreakdown (line 354) | private buildRoleBreakdown(): RoleUsageBreakdown[] { class BudgetDepletedError (line 383) | class BudgetDepletedError extends Error { method constructor (line 387) | constructor(currentCost: number, maxCost: number) { function estimateTokenCount (line 399) | function estimateTokenCount(text: string): number { function resolveModelCost (line 404) | function resolveModelCost(modelId: string, pricing: PricingTable): CostR... function computeCost (line 416) | function computeCost( FILE: packages/core/src/metering/types.ts type UsageRecord (line 1) | interface UsageRecord { type CostRates (line 7) | interface CostRates { type PricingTable (line 12) | interface PricingTable { type ModelRole (line 23) | type ModelRole = 'main' | 'extraction' | 'judge' | 'compaction'; type ActionUsageRecord (line 26) | interface ActionUsageRecord { type ModelUsageBreakdown (line 37) | interface ModelUsageBreakdown { type RoleUsageBreakdown (line 47) | interface RoleUsageBreakdown { type MeteringSummary (line 57) | interface MeteringSummary { type BudgetPolicy (line 79) | interface BudgetPolicy { type BudgetState (line 97) | interface BudgetState { constant DEFAULT_COST_RATES (line 108) | const DEFAULT_COST_RATES: PricingTable = { FILE: packages/core/src/model/adapters/vercel.ts type VercelModelAdapterOptions (line 9) | interface VercelModelAdapterOptions { class VercelModelAdapter (line 18) | class VercelModelAdapter implements LanguageModel { method constructor (line 25) | constructor(options: VercelModelAdapterOptions) { method modelId (line 33) | get modelId(): string { method provider (line 37) | get provider(): ModelProvider { method invoke (line 41) | async invoke(options: InferenceOptions): Promise = [ function inferProvider (line 169) | function inferProvider(modelId: string, providerHint?: string): ModelPro... FILE: packages/core/src/model/interface.ts type ModelProvider (line 6) | type ModelProvider = type InferenceOptions (line 17) | interface InferenceOptions { type LanguageModel (line 46) | interface LanguageModel { FILE: packages/core/src/model/messages.ts type TextContent (line 1) | interface TextContent { type ImageContent (line 6) | interface ImageContent { type ContentPart (line 13) | type ContentPart = TextContent | ImageContent; type SystemMessage (line 15) | interface SystemMessage { type UserMessage (line 20) | interface UserMessage { type AssistantMessage (line 25) | interface AssistantMessage { type ToolResultMessage (line 31) | interface ToolResultMessage { type ToolCall (line 37) | interface ToolCall { type Message (line 43) | type Message = SystemMessage | UserMessage | AssistantMessage | ToolResu... function systemMessage (line 47) | function systemMessage(content: string): SystemMessage { function userMessage (line 51) | function userMessage(content: string | ContentPart[]): UserMessage { function assistantMessage (line 55) | function assistantMessage( function toolResultMessage (line 62) | function toolResultMessage(toolCallId: string, content: string): ToolRes... function textContent (line 66) | function textContent(text: string): TextContent { function imageContent (line 70) | function imageContent(base64: string, mediaType = 'image/png'): ImageCon... FILE: packages/core/src/model/schema-optimizer.ts type SchemaOptimizationOptions (line 6) | interface SchemaOptimizationOptions { constant DEFAULTS (line 28) | const DEFAULTS: Required> = { function optimizeJsonSchemaForModel (line 41) | function optimizeJsonSchemaForModel( function optimizeSchemaForModel (line 67) | function optimizeSchemaForModel( function collapseUnions (line 107) | function collapseUnions( function collapseEnums (line 138) | function collapseEnums( function flattenNesting (line 178) | function flattenNesting( function flattenProperties (line 221) | function flattenProperties( function applyProviderTweaks (line 268) | function applyProviderTweaks( function applyGeminiTweaks (line 286) | function applyGeminiTweaks(schema: Record): Record): Record) => Record { FILE: packages/core/src/model/types.ts type InferenceUsage (line 3) | interface InferenceUsage { type InferenceResult (line 9) | interface InferenceResult { FILE: packages/core/src/page/content-extractor.ts function getTurndown (line 6) | function getTurndown(): TurndownService { function htmlTableToMarkdown (line 47) | function htmlTableToMarkdown(table: HTMLTableElement): string { constant KNOWN_LANGUAGES (line 88) | const KNOWN_LANGUAGES = new Set([ function detectCodeLanguage (line 108) | function detectCodeLanguage(codeEl: HTMLElement | null): string { class ReadingState (line 144) | class ReadingState { method currentOffset (line 152) | get currentOffset(): number { method contentLength (line 159) | get contentLength(): number { method hasMore (line 166) | get hasMore(): boolean { method progress (line 173) | get progress(): number { method advance (line 181) | advance(chars: number): void { method update (line 189) | update(url: string, totalLength: number): void { method reset (line 200) | reset(): void { type MarkdownExtractionOptions (line 207) | interface MarkdownExtractionOptions { function extractMarkdown (line 214) | async function extractMarkdown( function htmlToMarkdown (line 283) | function htmlToMarkdown(html: string): string { function extractLinks (line 297) | async function extractLinks( function extractTextContent (line 332) | async function extractTextContent(page: Page): Promise { function chunkText (line 340) | function chunkText(text: string, maxChunkSize: number): string[] { FILE: packages/core/src/page/page-analyzer.test.ts function makeMockPage (line 9) | function makeMockPage(overrides: Record = {}) { function makeMockCdpSession (line 26) | function makeMockCdpSession(overrides: Record = {}) { function makeNode (line 33) | function makeNode(overrides: Partial = {}): PageTreeNode { FILE: packages/core/src/page/page-analyzer.ts type PageAnalyzerOptions (line 19) | interface PageAnalyzerOptions { class PageAnalyzer (line 27) | class PageAnalyzer { method constructor (line 40) | constructor(options?: PageAnalyzerOptions) { method extractState (line 56) | async extractState( method _extractState (line 66) | private async _extractState( method extractWithIframes (line 148) | async extractWithIframes( method extractCrossOriginIframe (line 218) | private async extractCrossOriginIframe( method collectHiddenElementHints (line 292) | private collectHiddenElementHints( method applyViewportThresholdFilter (line 338) | private applyViewportThresholdFilter( method integrateShadowDOMChildren (line 377) | private integrateShadowDOMChildren(root: PageTreeNode): void { method getElementSelector (line 397) | async getElementSelector(index: number): Promise { method getElementByBackendNodeId (line 401) | async getElementByBackendNodeId( method clickElementByIndex (line 431) | async clickElementByIndex( method clickAtCoordinates (line 488) | async clickAtCoordinates( method inputTextByIndex (line 496) | async inputTextByIndex( method recordInteraction (line 520) | private recordInteraction( method getInteractedElements (line 533) | getInteractedElements(): InteractedElement[] { method clearInteractedElements (line 537) | clearInteractedElements(): void { method getCachedTree (line 541) | getCachedTree(): PageTreeNode | null { method getCachedSelectorMap (line 545) | getCachedSelectorMap(): SelectorIndex | null { method clearCache (line 549) | clearCache(): void { FILE: packages/core/src/page/renderer.test.ts function makeNode (line 8) | function makeNode(overrides: Partial = {}): PageTreeNode { function makeTextNode (line 23) | function makeTextNode(text: string): PageTreeNode { FILE: packages/core/src/page/renderer/interactive-elements.ts constant ALWAYS_CLICKABLE_TAGS (line 3) | const ALWAYS_CLICKABLE_TAGS = new Set([ constant CLICKABLE_ROLES (line 7) | const CLICKABLE_ROLES = new Set([ function isClickableElement (line 12) | function isClickableElement(node: PageTreeNode): boolean { function getClickableDescription (line 21) | function getClickableDescription(node: PageTreeNode): string { FILE: packages/core/src/page/renderer/layer-order.ts function filterByPaintOrder (line 7) | function filterByPaintOrder(nodes: PageTreeNode[]): PageTreeNode[] { function rectsOverlap (line 52) | function rectsOverlap(a: DOMRect, b: DOMRect, threshold: number): boolean { FILE: packages/core/src/page/renderer/tree-renderer.ts type RendererOptions (line 6) | interface RendererOptions { constant DEFAULT_OPTIONS (line 17) | const DEFAULT_OPTIONS: RendererOptions = { constant SVG_TAGS (line 31) | const SVG_TAGS = new Set(['svg', 'path', 'rect', 'circle', 'ellipse', 'l... class TreeRenderer (line 33) | class TreeRenderer { method constructor (line 36) | constructor(options?: Partial) { method serializeTree (line 40) | serializeTree( method serializeNode (line 126) | private serializeNode( method serializeChildrenWithDedup (line 257) | private serializeChildrenWithDedup( method isRedundantWrapper (line 312) | private isRedundantWrapper(node: PageTreeNode): boolean { method getInlineText (line 337) | private getInlineText(node: PageTreeNode): string | null { method hasVisibleDescendant (line 351) | private hasVisibleDescendant(node: PageTreeNode): boolean { method hasInteractiveDescendant (line 359) | private hasInteractiveDescendant(node: PageTreeNode): boolean { method collectInteractiveElements (line 367) | private collectInteractiveElements( method buildCssSelector (line 379) | private buildCssSelector(node: PageTreeNode): string { method filterOffScreenElements (line 417) | private filterOffScreenElements( method formatHiddenElementHints (line 484) | private formatHiddenElementHints( method getNodeDescription (line 520) | private getNodeDescription(node: PageTreeNode): string { method resolveSvgDescription (line 533) | private resolveSvgDescription(node: PageTreeNode): string { FILE: packages/core/src/page/snapshot-builder.ts constant INTERACTIVE_TAGS (line 10) | const INTERACTIVE_TAGS = new Set([ constant INTERACTIVE_ROLES (line 15) | const INTERACTIVE_ROLES = new Set([ constant INVISIBLE_TAGS (line 22) | const INVISIBLE_TAGS = new Set([ class SnapshotBuilder (line 26) | class SnapshotBuilder { method captureSnapshot (line 29) | async captureSnapshot(cdpSession: CDPSession): Promise<{ method buildTree (line 51) | buildTree( method buildNodeTree (line 117) | private buildNodeTree( method buildAXMap (line 223) | private buildAXMap(node: AXNode, map: Map): void { method createEmptyNode (line 234) | private createEmptyNode(): PageTreeNode { FILE: packages/core/src/page/types.ts type DOMRect (line 3) | interface DOMRect { type TargetInfo (line 10) | interface TargetInfo { type TargetAllTrees (line 18) | interface TargetAllTrees { type InteractedElement (line 27) | interface InteractedElement { type MatchLevel (line 43) | type MatchLevel = (typeof MatchLevel)[keyof typeof MatchLevel]; type SimplifiedNode (line 45) | interface SimplifiedNode { type PageTreeNode (line 54) | interface PageTreeNode { type SelectorIndex (line 103) | interface SelectorIndex { type RenderedPageState (line 115) | interface RenderedPageState { type CDPDOMNode (line 127) | interface CDPDOMNode { type CDPLayoutNode (line 144) | interface CDPLayoutNode { type CDPSnapshotResult (line 153) | interface CDPSnapshotResult { type AXNode (line 185) | interface AXNode { FILE: packages/core/src/sandbox/file-access.ts constant ALLOWED_EXTENSIONS (line 7) | const ALLOWED_EXTENSIONS = new Set([ constant MAX_FILE_SIZE (line 14) | const MAX_FILE_SIZE = 10 * 1024 * 1024; type FileAccessOptions (line 16) | interface FileAccessOptions { type FileInfo (line 23) | interface FileInfo { type FileAccessState (line 32) | interface FileAccessState { class FileAccess (line 38) | class FileAccess { method constructor (line 45) | constructor(options: FileAccessOptions) { method indexDirectory (line 66) | private indexDirectory(): void { method resolvePath (line 89) | private resolvePath(relativePath: string): string { method validateExtension (line 98) | private validateExtension(filePath: string): void { method isBinaryFile (line 107) | private isBinaryFile(filePath: string): boolean { method read (line 120) | async read(relativePath: string): Promise { method write (line 143) | async write(relativePath: string, content: string): Promise { method list (line 179) | async list(relativeDir = '.'): Promise { method delete (line 206) | async delete(relativePath: string): Promise { method exists (line 226) | async exists(relativePath: string): Promise { method getState (line 231) | getState(): FileAccessState { method getSandboxDir (line 239) | getSandboxDir(): string { FILE: packages/core/src/telemetry.ts type TimingResult (line 5) | interface TimingResult { function timed (line 14) | async function timed( function withTiming (line 34) | function withTiming( class Stopwatch (line 47) | class Stopwatch { method constructor (line 51) | constructor() { method split (line 55) | split(label: string): number { method elapsed (line 61) | elapsed(): number { method reset (line 65) | reset(): void { method getSplits (line 70) | getSplits(): Array<{ label: string; timeMs: number }> { method summary (line 74) | summary(): string { FILE: packages/core/src/types.ts type Brand (line 6) | type Brand = T & { readonly [__brand]: B }; type TargetId (line 8) | type TargetId = Brand; type SessionId (line 9) | type SessionId = Brand; type ElementRef (line 10) | type ElementRef = Brand; type TabId (line 11) | type TabId = Brand; function targetId (line 13) | function targetId(id: string): TargetId { function sessionId (line 17) | function sessionId(id: string): SessionId { function elementIndex (line 21) | function elementIndex(index: number): ElementRef { function tabId (line 25) | function tabId(id: number): TabId { type Result (line 31) | type Result = { ok: true; value: T } | { ok: false; error:... function ok (line 33) | function ok(value: T): Result { function err (line 37) | function err(error: E): Result { type Position (line 47) | type Position = z.infer; type Rect (line 55) | type Rect = z.infer; type LogLevel (line 65) | type LogLevel = (typeof LogLevel)[keyof typeof LogLevel]; type DeepPartial (line 69) | type DeepPartial = { type Awaitable (line 73) | type Awaitable = T | Promise; FILE: packages/core/src/utils.ts function generateId (line 5) | function generateId(size = 12): string { function matchesUrlPattern (line 11) | function matchesUrlPattern(url: string, pattern: string): boolean { function isUrlPermitted (line 41) | function isUrlPermitted( function sanitizeText (line 57) | function sanitizeText(text: string): string { function truncateText (line 64) | function truncateText(text: string, maxLength: number, suffix = '...'): ... function removeTags (line 69) | function removeTags(html: string): string { function sleep (line 75) | function sleep(ms: number): Promise { function withDeadline (line 79) | async function withDeadline( class Timer (line 90) | class Timer { method constructor (line 93) | constructor() { method elapsed (line 97) | elapsed(): number { method elapsedSeconds (line 101) | elapsedSeconds(): number { method reset (line 105) | reset(): void { type RetryOptions (line 112) | interface RetryOptions { constant DEFAULT_RETRY (line 119) | const DEFAULT_RETRY: RetryOptions = { function withRetry (line 126) | async function withRetry( function groupBy (line 151) | function groupBy( function dedent (line 165) | function dedent(str: string): string { function matchUrlWithDomainPattern (line 187) | function matchUrlWithDomainPattern(url: string, pattern: string): boolean { constant NEW_TAB_URLS (line 209) | const NEW_TAB_URLS = new Set([ function isNewTabPage (line 218) | function isNewTabPage(url: string): boolean { function sanitizeSurrogates (line 225) | function sanitizeSurrogates(text: string): string { constant URL_REGEX (line 232) | const URL_REGEX = /https?:\/\/[^\s<>"{}|\\^`\[\]]+/g; function extractUrls (line 237) | function extractUrls(text: string): string[] { function escapeRegExp (line 244) | function escapeRegExp(string: string): string { FILE: packages/core/src/viewport/event-hub.ts type Handler (line 1) | type Handler = (payload: T) => void; type RequestHandler (line 2) | type RequestHandler = (payload: Req) => Pr... class EventHub (line 4) | class EventHub< method constructor (line 16) | constructor(options?: { maxHistory?: number }) { method on (line 20) | on(event: K, handler: Handler(event: K, handler: Handler(event: K, payload: EventMap[K]... method onRequest (line 54) | onRequest( method request (line 64) | async request( method off (line 84) | off(event: K, handler?: Handler { method detach (line 33) | async detach(): Promise { method teardown (line 48) | protected async teardown(): Promise { method onEvent (line 52) | protected onEvent( FILE: packages/core/src/viewport/guards/blank-page.ts class BlankPageGuard (line 7) | class BlankPageGuard extends BaseGuard { method setup (line 11) | protected async setup(): Promise { FILE: packages/core/src/viewport/guards/crash.ts class CrashGuard (line 7) | class CrashGuard extends BaseGuard { method setup (line 11) | protected async setup(): Promise { FILE: packages/core/src/viewport/guards/default-handler.ts class DefaultHandlerGuard (line 8) | class DefaultHandlerGuard extends BaseGuard { method setup (line 12) | protected async setup(): Promise { FILE: packages/core/src/viewport/guards/downloads.ts type DownloadGuardOptions (line 12) | interface DownloadGuardOptions { type DownloadStatus (line 26) | type DownloadStatus = 'started' | 'completed' | 'failed'; type DownloadInfo (line 28) | interface DownloadInfo { class DownloadGuard (line 49) | class DownloadGuard extends BaseGuard { method constructor (line 68) | constructor(options?: DownloadGuardOptions) { method setup (line 86) | protected async setup(): Promise { method teardown (line 107) | protected async teardown(): Promise { method configureCdpDownloadBehavior (line 119) | private async configureCdpDownloadBehavior(): Promise { method handleDownload (line 144) | private async handleDownload(download: Download): Promise { method resolveUniquePath (line 214) | private resolveUniquePath(suggestedFilename: string): string { method ensureDownloadsDir (line 232) | private ensureDownloadsDir(): void { method getDownloadHistory (line 244) | getDownloadHistory(): DownloadInfo[] { method waitForDownload (line 254) | waitForDownload(timeout = 30_000): Promise { method notifyWaiters (line 268) | private notifyWaiters(info: DownloadInfo): void { method removePendingWaiter (line 276) | private removePendingWaiter(waiter: (typeof this.pendingWaiters)[numbe... function formatBytes (line 286) | function formatBytes(bytes: number | undefined): string { FILE: packages/core/src/viewport/guards/har-capture.ts type HarRequest (line 8) | interface HarRequest { type HarResponse (line 18) | interface HarResponse { type HarEntry (line 32) | interface HarEntry { type PendingRequest (line 45) | interface PendingRequest { type ResponseInfo (line 53) | interface ResponseInfo { class HarCaptureGuard (line 65) | class HarCaptureGuard extends BaseGuard { method constructor (line 75) | constructor(outputPath: string) { method setup (line 80) | protected async setup(): Promise { method finalizeEntry (line 149) | private finalizeEntry(requestId: string, endTimestamp: number, encoded... method teardown (line 208) | protected override async teardown(): Promise { function toHeaderArray (line 227) | function toHeaderArray(headers: Record): Array<{ name: s... function parseQueryString (line 231) | function parseQueryString(url: string): Array<{ name: string; value: str... FILE: packages/core/src/viewport/guards/local-instance.ts class LocalInstanceGuard (line 7) | class LocalInstanceGuard extends BaseGuard { method setup (line 11) | protected async setup(): Promise { FILE: packages/core/src/viewport/guards/page-ready.ts type PageReadyGuardOptions (line 8) | interface PageReadyGuardOptions { type LoadState (line 24) | type LoadState = 'domcontentloaded' | 'load' | 'networkidle'; class PageReadyGuard (line 40) | class PageReadyGuard extends BaseGuard { method constructor (line 72) | constructor(options?: PageReadyGuardOptions) { method setup (line 80) | protected async setup(): Promise { method teardown (line 98) | protected async teardown(): Promise { method setupLifecycleListeners (line 115) | private setupLifecycleListeners(): void { method setupMutationObserver (line 156) | private async setupMutationObserver(): Promise { method onMutationBatch (line 219) | private onMutationBatch(count: number): void { method resetIdleTimer (line 236) | private resetIdleTimer(): void { method markStable (line 247) | private markStable(): void { method waitForDomStable (line 270) | waitForDomStable(timeout = 10_000): Promise { method getReachedStates (line 289) | getReachedStates(): ReadonlySet { method getMutationCount (line 297) | getMutationCount(): number { method isStable (line 304) | isStable(): boolean { method notifyStableWaiters (line 310) | private notifyStableWaiters(): void { method removeStableWaiter (line 318) | private removeStableWaiter(waiter: (typeof this.stableWaiters)[number]... method clearTimers (line 327) | private clearTimers(): void { FILE: packages/core/src/viewport/guards/permissions.ts class PermissionsGuard (line 8) | class PermissionsGuard extends BaseGuard { method constructor (line 16) | constructor(permissions: string[]) { method setup (line 21) | protected async setup(): Promise { method grantForCurrentPage (line 43) | private async grantForCurrentPage(): Promise { FILE: packages/core/src/viewport/guards/persistence.ts class PersistenceGuard (line 9) | class PersistenceGuard extends BaseGuard { method constructor (line 15) | constructor(storagePath: string) { method setup (line 20) | protected async setup(): Promise { method save (line 47) | async save(): Promise { FILE: packages/core/src/viewport/guards/popups.ts class PopupGuard (line 8) | class PopupGuard extends BaseGuard { method setup (line 12) | protected async setup(): Promise { FILE: packages/core/src/viewport/guards/screenshot.ts class ScreenshotGuard (line 8) | class ScreenshotGuard extends BaseGuard { method setup (line 12) | protected async setup(): Promise { FILE: packages/core/src/viewport/guards/url-policy.ts class UrlPolicyGuard (line 9) | class UrlPolicyGuard extends BaseGuard { method constructor (line 16) | constructor(allowedUrls: string[] = [], blockedUrls: string[] = []) { method setup (line 22) | protected async setup(): Promise { FILE: packages/core/src/viewport/guards/video-capture.ts type VideoRecordingOptions (line 11) | interface VideoRecordingOptions { type ResolvedOptions (line 56) | interface ResolvedOptions { function resolveOptions (line 66) | function resolveOptions(opts: VideoRecordingOptions): ResolvedOptions { class VideoCaptureGuard (line 93) | class VideoCaptureGuard extends BaseGuard { method constructor (line 109) | constructor(options: VideoRecordingOptions) { method setup (line 116) | protected async setup(): Promise { method teardown (line 134) | protected override async teardown(): Promise { method pause (line 148) | pause(): void { method resume (line 157) | resume(): void { method isPaused (line 164) | get isPaused(): boolean { method capturedFrameCount (line 169) | get capturedFrameCount(): number { method startTracing (line 175) | private async startTracing(): Promise { method stopTracing (line 191) | private async stopTracing(): Promise { method startScreencast (line 207) | private async startScreencast(): Promise { method stopScreencast (line 259) | private async stopScreencast(): Promise { method saveFrames (line 274) | private async saveFrames(): Promise { FILE: packages/core/src/viewport/launch-profile.ts constant CHROME_AUTOMATION_FLAGS (line 8) | const CHROME_AUTOMATION_FLAGS = [ constant CHROME_STRIPPED_FEATURES (line 40) | const CHROME_STRIPPED_FEATURES = [ constant ANTI_DETECTION_FLAGS (line 67) | const ANTI_DETECTION_FLAGS = [ constant CONTAINER_FLAGS (line 72) | const CONTAINER_FLAGS = [ constant RELAXED_SECURITY_FLAGS (line 80) | const RELAXED_SECURITY_FLAGS = [ constant REPRODUCIBLE_RENDER_FLAGS (line 86) | const REPRODUCIBLE_RENDER_FLAGS = [ class LaunchProfile (line 98) | class LaunchProfile { method create (line 107) | static create(): LaunchProfile { method headless (line 111) | headless(value = true): this { method relaxedSecurity (line 116) | relaxedSecurity(value = true): this { method windowSize (line 121) | windowSize(width: number, height: number): this { method proxy (line 127) | proxy(server: string, username?: string, password?: string): this { method userDataDir (line 132) | userDataDir(dir: string): this { method browserBinary (line 137) | browserBinary(path: string): this { method persistAfterClose (line 142) | persistAfterClose(value = true): this { method channel (line 147) | channel(name: string): this { method extraArgs (line 152) | extraArgs(...args: string[]): this { method stealthMode (line 157) | stealthMode(value = true): this { method dockerMode (line 162) | dockerMode(value = true): this { method deterministicRendering (line 167) | deterministicRendering(value = true): this { method downloadsPath (line 172) | downloadsPath(path: string): this { method maxIframes (line 177) | maxIframes(max: number): this { method addExtension (line 182) | addExtension(extensionPath: string): this { method autoDetect (line 190) | autoDetect(): this { method build (line 201) | build(): LaunchOptions { FILE: packages/core/src/viewport/types.ts type TabDescriptor (line 4) | interface TabDescriptor { type ViewportSnapshot (line 11) | interface ViewportSnapshot { type ViewportHistory (line 23) | interface ViewportHistory { type LaunchOptions (line 54) | type LaunchOptions = z.infer; type PageState (line 56) | interface PageState { FILE: packages/core/src/viewport/viewport.ts type Target (line 36) | interface Target { type ViewportInfo (line 44) | interface ViewportInfo { type ViewportOptions (line 51) | interface ViewportOptions { class Viewport (line 82) | class Viewport { method constructor (line 109) | constructor(options: ViewportOptions = {}) { method isConnected (line 137) | get isConnected(): boolean { method currentPage (line 141) | get currentPage(): Page { method browserContext (line 148) | get browserContext(): BrowserContext { method cdp (line 155) | get cdp(): CDPSession | null { method start (line 161) | async start(): Promise { method setupDisconnectHandler (line 241) | private setupDisconnectHandler(): void { method setupPageLifecycleListeners (line 251) | private setupPageLifecycleListeners(): void { method getTargets (line 290) | async getTargets(): Promise { method refreshTargets (line 295) | private async refreshTargets(): Promise { method findTarget (line 327) | findTarget(id: TargetId): Target | undefined { method getPageTargets (line 334) | async getPageTargets(): Promise { method detectViewport (line 346) | async detectViewport(): Promise { method invalidateViewportCache (line 401) | invalidateViewportCache(): void { method reconnect (line 414) | async reconnect(): Promise { method cleanupForReconnect (line 511) | private async cleanupForReconnect(): Promise { method waitForStableDOM (line 558) | async waitForStableDOM(timeout = 3000, quietPeriodMs = 300): Promise { method launchBrowser (line 687) | private async launchBrowser(): Promise { method buildChromiumArgs (line 707) | private buildChromiumArgs(): string[] { method createContext (line 724) | private async createContext(): Promise { method initializeWatchdogs (line 739) | private async initializeWatchdogs(): Promise { method navigate (line 777) | async navigate(url: string): Promise { method waitForPageReady (line 810) | async waitForPageReady(): Promise { method click (line 826) | async click(selector: string): Promise { method type (line 830) | async type(selector: string, text: string): Promise { method pressKey (line 834) | async pressKey(key: string): Promise { method screenshot (line 838) | async screenshot(fullPage = false): Promise<{ base64: string; width: n... method getState (line 854) | async getState(): Promise { method switchTab (line 885) | async switchTab(tabIndex: number): Promise { method closeTab (line 906) | async closeTab(tabIndex?: number): Promise { method newTab (line 935) | async newTab(url?: string): Promise { method evaluate (line 949) | async evaluate(expression: string): Promise { method setPage (line 953) | async setPage(page: Page): Promise { method close (line 961) | async close(): Promise { method [Symbol.asyncDispose] (line 1003) | async [Symbol.asyncDispose](): Promise { function normalizeTargetType (line 1013) | function normalizeTargetType( FILE: packages/core/src/viewport/visual-tracer.ts type VisualTracerOptions (line 3) | interface VisualTracerOptions { constant DEFAULT_OPTIONS (line 12) | const DEFAULT_OPTIONS: Required = { constant OVERLAY_ATTR (line 27) | const OVERLAY_ATTR = 'data-demo-mode-overlay'; class VisualTracer (line 29) | class VisualTracer { method constructor (line 32) | constructor(options?: VisualTracerOptions) { method highlightElement (line 44) | async highlightElement(page: Page, selector: string, label?: string): ... method showAction (line 101) | async showAction(page: Page, action: string, details?: string): Promis... method highlightClick (line 140) | async highlightClick(page: Page, x: number, y: number, label?: string)... method highlightScroll (line 240) | async highlightScroll(page: Page, direction: 'up' | 'down'): Promise { method showElementSequence (line 551) | async showElementSequence( method showTimeline (line 704) | async showTimeline( method showCoordinates (line 857) | async showCoordinates(page: Page, x: number, y: number): Promise { method clearOverlays (line 970) | async clearOverlays(page: Page): Promise { FILE: packages/sandbox/src/sandbox.ts constant DEFAULT_OPTIONS (line 14) | const DEFAULT_OPTIONS: Required = { class ResourceMonitor (line 33) | class ResourceMonitor { method constructor (line 41) | constructor(limitMB: number) { method start (line 45) | start(intervalMs: number, onOOM: () => void): void { method stop (line 55) | stop(): void { method takeSnapshot (line 64) | private takeSnapshot(): void { method getPeakMemoryMB (line 97) | getPeakMemoryMB(): number { method getCpuTimeMs (line 101) | getCpuTimeMs(): number { method getSnapshots (line 107) | getSnapshots(): ResourceSnapshot[] { method getCurrentMemoryMB (line 111) | getCurrentMemoryMB(): number { class OutputCapture (line 123) | class OutputCapture { method start (line 130) | start(): void { method stop (line 153) | stop(): void { method getOutput (line 167) | getOutput(): CapturedOutput { class Sandbox (line 182) | class Sandbox { method constructor (line 185) | constructor(options?: SandboxOptions) { method run (line 193) | async run(agentOptions: Omit): Promise { method createOOMPromise (line 359) | private createOOMPromise( method classifyError (line 389) | private classifyError(error: unknown, oomTriggered: boolean): SandboxE... method buildMetrics (line 444) | private buildMetrics( method forceCleanup (line 466) | private async forceCleanup(browser: Viewport): Promise { method getOptions (line 481) | getOptions(): Readonly> { FILE: packages/sandbox/src/types.ts type SandboxOptions (line 3) | interface SandboxOptions { type SandboxErrorCategory (line 28) | type SandboxErrorCategory = type SandboxError (line 36) | interface SandboxError { type CapturedOutput (line 45) | interface CapturedOutput { type SandboxMetrics (line 52) | interface SandboxMetrics { type SandboxResult (line 71) | interface SandboxResult { type ResourceSnapshot (line 87) | interface ResourceSnapshot {