From 8ade8bba9dbedec3057828858aefcd7bb9dd5d1e Mon Sep 17 00:00:00 2001 From: Nathan Flurry Date: Tue, 17 Mar 2026 06:19:12 -0700 Subject: [PATCH] feat: [US-020] - Add TypeScript SDK browser lifecycle and CDP methods Co-Authored-By: Claude Opus 4.6 (1M context) --- sdks/typescript/src/client.ts | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/sdks/typescript/src/client.ts b/sdks/typescript/src/client.ts index df66400..acff243 100644 --- a/sdks/typescript/src/client.ts +++ b/sdks/typescript/src/client.ts @@ -30,6 +30,8 @@ import { type AgentInstallRequest, type AgentInstallResponse, type AgentListResponse, + type BrowserStartRequest, + type BrowserStatusResponse, type DesktopActionResponse, type DesktopClipboardQuery, type DesktopClipboardResponse, @@ -2008,6 +2010,28 @@ export class SandboxAgent { return new DesktopStreamSession(this.connectDesktopStreamWebSocket(options)); } + async startBrowser(request: BrowserStartRequest = {}): Promise { + return this.requestJson("POST", `${API_PREFIX}/browser/start`, { + body: request, + }); + } + + async stopBrowser(): Promise { + return this.requestJson("POST", `${API_PREFIX}/browser/stop`); + } + + async getBrowserStatus(): Promise { + return this.requestJson("GET", `${API_PREFIX}/browser/status`); + } + + getBrowserCdpUrl(options: ProcessTerminalWebSocketUrlOptions = {}): string { + return toWebSocketUrl( + this.buildUrl(`${API_PREFIX}/browser/cdp`, { + access_token: options.accessToken ?? this.token, + }), + ); + } + private async getLiveConnection(agent: string): Promise { await this.awaitHealthy();