File tree Expand file tree Collapse file tree 4 files changed +49
-4
lines changed Expand file tree Collapse file tree 4 files changed +49
-4
lines changed Original file line number Diff line number Diff line change 1+ ---
2+ " @browserbasehq/stagehand " : patch
3+ ---
4+
5+ configure default viewport when running on browserbase
Original file line number Diff line number Diff line change @@ -28,6 +28,7 @@ import {
2828 StagehandResponseParseError ,
2929} from "../types/stagehandApiErrors" ;
3030import makeFetchCookie from "fetch-cookie" ;
31+ import { applyDefaultBrowserSettingsViewport } from "./browserbaseDefaults" ;
3132import { STAGEHAND_VERSION } from "./version" ;
3233
3334export class StagehandAPI {
@@ -64,7 +65,10 @@ export class StagehandAPI {
6465 }
6566 this . modelApiKey = modelApiKey ;
6667
67- const region = browserbaseSessionCreateParams ?. region ;
68+ const sessionCreateParams = applyDefaultBrowserSettingsViewport (
69+ browserbaseSessionCreateParams ,
70+ ) ;
71+ const region = sessionCreateParams ?. region ;
6872 if ( region && region !== "us-west-2" ) {
6973 return { sessionId : browserbaseSessionID ?? null , available : false } ;
7074 }
@@ -84,7 +88,7 @@ export class StagehandAPI {
8488 selfHeal,
8589 waitForCaptchaSolves,
8690 actionTimeoutMs,
87- browserbaseSessionCreateParams,
91+ browserbaseSessionCreateParams : sessionCreateParams ,
8892 browserbaseSessionID,
8993 } ) ,
9094 } ) ;
Original file line number Diff line number Diff line change 1+ import Browserbase from "@browserbasehq/sdk" ;
2+
3+ export type BrowserbaseSessionCreateParams = Omit <
4+ Browserbase . Sessions . SessionCreateParams ,
5+ "projectId"
6+ > & { projectId ?: string } ;
7+
8+ export const DEFAULT_BROWSERBASE_VIEWPORT = {
9+ width : 1288 ,
10+ height : 711 ,
11+ } as const ;
12+
13+ export function applyDefaultBrowserSettingsViewport (
14+ params ?: BrowserbaseSessionCreateParams ,
15+ ) : BrowserbaseSessionCreateParams {
16+ const paramsWithDefaults = {
17+ ...( params ?? { } ) ,
18+ } as BrowserbaseSessionCreateParams ;
19+
20+ const viewport = paramsWithDefaults . browserSettings ?. viewport ?? {
21+ width : DEFAULT_BROWSERBASE_VIEWPORT . width ,
22+ height : DEFAULT_BROWSERBASE_VIEWPORT . height ,
23+ } ;
24+
25+ return {
26+ ...paramsWithDefaults ,
27+ browserSettings : {
28+ ...( paramsWithDefaults . browserSettings ?? { } ) ,
29+ viewport,
30+ } ,
31+ } ;
32+ }
Original file line number Diff line number Diff line change @@ -45,6 +45,7 @@ import { StagehandAgentHandler } from "./handlers/stagehandAgentHandler";
4545import { StagehandLogger } from "./logger" ;
4646import { connectToMCPServer } from "./mcp/connection" ;
4747import { resolveTools } from "./mcp/utils" ;
48+ import { applyDefaultBrowserSettingsViewport } from "./browserbaseDefaults" ;
4849import { isRunningInBun , loadApiKeyFromEnv } from "./utils" ;
4950
5051dotenv . config ( { path : ".env" } ) ;
@@ -158,11 +159,14 @@ async function getBrowser(
158159 ) ;
159160 }
160161
162+ const sessionCreateParams = applyDefaultBrowserSettingsViewport (
163+ browserbaseSessionCreateParams ,
164+ ) ;
161165 const session = await browserbase . sessions . create ( {
162166 projectId,
163- ...browserbaseSessionCreateParams ,
167+ ...sessionCreateParams ,
164168 userMetadata : {
165- ...( browserbaseSessionCreateParams ?. userMetadata || { } ) ,
169+ ...( sessionCreateParams ?. userMetadata || { } ) ,
166170 stagehand : "true" ,
167171 } ,
168172 } ) ;
You can’t perform that action at this time.
0 commit comments