From 264ec25578a4a62906e6b41c2c1b39d4f45c3e77 Mon Sep 17 00:00:00 2001 From: Nathan Flurry Date: Tue, 17 Mar 2026 06:25:27 -0700 Subject: [PATCH] feat: [US-023] - Add TypeScript SDK browser interaction methods Co-Authored-By: Claude Opus 4.6 (1M context) --- sdks/typescript/src/client.ts | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/sdks/typescript/src/client.ts b/sdks/typescript/src/client.ts index 2f0e7e4..4322655 100644 --- a/sdks/typescript/src/client.ts +++ b/sdks/typescript/src/client.ts @@ -31,11 +31,14 @@ import { type AgentInstallResponse, type AgentListResponse, type BrowserActionResponse, + type BrowserClickRequest, type BrowserContentQuery, type BrowserContentResponse, type BrowserCreateTabRequest, + type BrowserDialogRequest, type BrowserExecuteRequest, type BrowserExecuteResponse, + type BrowserHoverRequest, type BrowserLinksResponse, type BrowserMarkdownResponse, type BrowserNavigateRequest, @@ -43,13 +46,17 @@ import { type BrowserPdfQuery, type BrowserReloadRequest, type BrowserScreenshotQuery, + type BrowserScrollRequest, type BrowserScrapeRequest, type BrowserScrapeResponse, + type BrowserSelectRequest, type BrowserSnapshotResponse, type BrowserStartRequest, type BrowserStatusResponse, type BrowserTabInfo, type BrowserTabListResponse, + type BrowserTypeRequest, + type BrowserUploadRequest, type BrowserWaitRequest, type BrowserWaitResponse, type DesktopActionResponse, @@ -2138,6 +2145,34 @@ export class SandboxAgent { return this.requestJson("GET", `${API_PREFIX}/browser/snapshot`); } + async browserClick(request: BrowserClickRequest): Promise { + return this.requestJson("POST", `${API_PREFIX}/browser/click`, { body: request }); + } + + async browserType(request: BrowserTypeRequest): Promise { + return this.requestJson("POST", `${API_PREFIX}/browser/type`, { body: request }); + } + + async browserSelect(request: BrowserSelectRequest): Promise { + return this.requestJson("POST", `${API_PREFIX}/browser/select`, { body: request }); + } + + async browserHover(request: BrowserHoverRequest): Promise { + return this.requestJson("POST", `${API_PREFIX}/browser/hover`, { body: request }); + } + + async browserScroll(request: BrowserScrollRequest): Promise { + return this.requestJson("POST", `${API_PREFIX}/browser/scroll`, { body: request }); + } + + async browserUpload(request: BrowserUploadRequest): Promise { + return this.requestJson("POST", `${API_PREFIX}/browser/upload`, { body: request }); + } + + async browserDialog(request: BrowserDialogRequest): Promise { + return this.requestJson("POST", `${API_PREFIX}/browser/dialog`, { body: request }); + } + private async getLiveConnection(agent: string): Promise { await this.awaitHealthy();