Skip to content

Commit a9057ac

Browse files
committed
fix: enforce browser base_url routing
Fail fast when browser-scoped clients are missing a browser session base_url, route subresource calls through the session base consistently, and keep lint output clean. Made-with: Cursor
1 parent 7486cd4 commit a9057ac

1 file changed

Lines changed: 24 additions & 8 deletions

File tree

src/lib/kernel-browser-session.ts

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,11 @@ export class KernelBrowserSession {
162162
processID: string,
163163
options?: RequestOptions,
164164
): APIPromise<Stream<ProcessStdoutStreamResponse>> => {
165-
return this.sessionClient.browsers.process.stdoutStream(processID, { id: this.sessionId }, this.opt(options));
165+
return this.sessionClient.browsers.process.stdoutStream(
166+
processID,
167+
{ id: this.sessionId },
168+
this.opt(options),
169+
);
166170
},
167171
};
168172

@@ -174,7 +178,11 @@ export class KernelBrowserSession {
174178
body: ComputerCaptureScreenshotParams | null | undefined,
175179
options?: RequestOptions,
176180
): APIPromise<Response> => {
177-
return this.sessionClient.browsers.computer.captureScreenshot(this.sessionId, body ?? {}, this.opt(options));
181+
return this.sessionClient.browsers.computer.captureScreenshot(
182+
this.sessionId,
183+
body ?? {},
184+
this.opt(options),
185+
);
178186
},
179187
clickMouse: (body: ComputerClickMouseParams, options?: RequestOptions): APIPromise<void> => {
180188
return this.sessionClient.browsers.computer.clickMouse(this.sessionId, body, this.opt(options));
@@ -201,7 +209,11 @@ export class KernelBrowserSession {
201209
body: ComputerSetCursorVisibilityParams,
202210
options?: RequestOptions,
203211
): APIPromise<ComputerSetCursorVisibilityResponse> => {
204-
return this.sessionClient.browsers.computer.setCursorVisibility(this.sessionId, body, this.opt(options));
212+
return this.sessionClient.browsers.computer.setCursorVisibility(
213+
this.sessionId,
214+
body,
215+
this.opt(options),
216+
);
205217
},
206218
typeText: (body: ComputerTypeTextParams, options?: RequestOptions): APIPromise<void> => {
207219
return this.sessionClient.browsers.computer.typeText(this.sessionId, body, this.opt(options));
@@ -231,7 +243,11 @@ export class KernelBrowserSession {
231243
return this.sessionClient.browsers.replays.list(this.sessionId, this.opt(options));
232244
},
233245
download: (replayID: string, options?: RequestOptions): APIPromise<Response> => {
234-
return this.sessionClient.browsers.replays.download(replayID, { id: this.sessionId }, this.opt(options));
246+
return this.sessionClient.browsers.replays.download(
247+
replayID,
248+
{ id: this.sessionId },
249+
this.opt(options),
250+
);
235251
},
236252
start: (
237253
body: ReplayStartParams | null | undefined,
@@ -344,16 +360,16 @@ function createBrowserSessionKernel(
344360
...(((parent as any)._options?.defaultQuery as Record<string, unknown> | undefined) ?? {}),
345361
jwt: transport.jwt,
346362
}
347-
: ((parent as any)._options?.defaultQuery ?? undefined);
363+
: (parent as any)._options?.defaultQuery ?? undefined;
348364

349365
const sessionClient = parent.withOptions({
350366
baseURL: transport.defaultBaseURL,
351367
defaultQuery: defaultQuery as Record<string, string | undefined> | undefined,
352368
}) as Kernel;
353369

354-
const originalPrepareOptions = ((sessionClient as any).prepareOptions as
355-
| ((options: FinalRequestOptions) => Promise<void>)
356-
| undefined)?.bind(sessionClient);
370+
const originalPrepareOptions = (
371+
(sessionClient as any).prepareOptions as ((options: FinalRequestOptions) => Promise<void>) | undefined
372+
)?.bind(sessionClient);
357373

358374
(sessionClient as any).authHeaders = async () => undefined;
359375
(sessionClient as any).prepareOptions = async (options: FinalRequestOptions) => {

0 commit comments

Comments
 (0)