diff --git a/sdks/typescript/src/client.ts b/sdks/typescript/src/client.ts index adaa58e..2f0e7e4 100644 --- a/sdks/typescript/src/client.ts +++ b/sdks/typescript/src/client.ts @@ -31,10 +31,21 @@ import { type AgentInstallResponse, type AgentListResponse, type BrowserActionResponse, + type BrowserContentQuery, + type BrowserContentResponse, type BrowserCreateTabRequest, + type BrowserExecuteRequest, + type BrowserExecuteResponse, + type BrowserLinksResponse, + type BrowserMarkdownResponse, type BrowserNavigateRequest, type BrowserPageInfo, + type BrowserPdfQuery, type BrowserReloadRequest, + type BrowserScreenshotQuery, + type BrowserScrapeRequest, + type BrowserScrapeResponse, + type BrowserSnapshotResponse, type BrowserStartRequest, type BrowserStatusResponse, type BrowserTabInfo, @@ -2085,6 +2096,48 @@ export class SandboxAgent { return this.requestJson("DELETE", `${API_PREFIX}/browser/tabs/${tabId}`); } + async takeBrowserScreenshot(query: BrowserScreenshotQuery = {}): Promise { + const response = await this.requestRaw("GET", `${API_PREFIX}/browser/screenshot`, { + query, + accept: "image/*", + }); + const buffer = await response.arrayBuffer(); + return new Uint8Array(buffer); + } + + async getBrowserPdf(query: BrowserPdfQuery = {}): Promise { + const response = await this.requestRaw("GET", `${API_PREFIX}/browser/pdf`, { + query, + accept: "application/pdf", + }); + const buffer = await response.arrayBuffer(); + return new Uint8Array(buffer); + } + + async getBrowserContent(query: BrowserContentQuery = {}): Promise { + return this.requestJson("GET", `${API_PREFIX}/browser/content`, { query }); + } + + async getBrowserMarkdown(): Promise { + return this.requestJson("GET", `${API_PREFIX}/browser/markdown`); + } + + async scrapeBrowser(request: BrowserScrapeRequest): Promise { + return this.requestJson("POST", `${API_PREFIX}/browser/scrape`, { body: request }); + } + + async getBrowserLinks(): Promise { + return this.requestJson("GET", `${API_PREFIX}/browser/links`); + } + + async executeBrowserScript(request: BrowserExecuteRequest): Promise { + return this.requestJson("POST", `${API_PREFIX}/browser/execute`, { body: request }); + } + + async getBrowserSnapshot(): Promise { + return this.requestJson("GET", `${API_PREFIX}/browser/snapshot`); + } + private async getLiveConnection(agent: string): Promise { await this.awaitHealthy();