feat: [US-022] - Add TypeScript SDK browser content extraction methods

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Nathan Flurry 2026-03-17 06:23:14 -07:00
parent 9776e0f4cb
commit f4c43a5ac5

View file

@ -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<Uint8Array> {
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<Uint8Array> {
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<BrowserContentResponse> {
return this.requestJson("GET", `${API_PREFIX}/browser/content`, { query });
}
async getBrowserMarkdown(): Promise<BrowserMarkdownResponse> {
return this.requestJson("GET", `${API_PREFIX}/browser/markdown`);
}
async scrapeBrowser(request: BrowserScrapeRequest): Promise<BrowserScrapeResponse> {
return this.requestJson("POST", `${API_PREFIX}/browser/scrape`, { body: request });
}
async getBrowserLinks(): Promise<BrowserLinksResponse> {
return this.requestJson("GET", `${API_PREFIX}/browser/links`);
}
async executeBrowserScript(request: BrowserExecuteRequest): Promise<BrowserExecuteResponse> {
return this.requestJson("POST", `${API_PREFIX}/browser/execute`, { body: request });
}
async getBrowserSnapshot(): Promise<BrowserSnapshotResponse> {
return this.requestJson("GET", `${API_PREFIX}/browser/snapshot`);
}
private async getLiveConnection(agent: string): Promise<LiveAcpConnection> {
await this.awaitHealthy();