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 AgentInstallResponse,
type AgentListResponse, type AgentListResponse,
type BrowserActionResponse, type BrowserActionResponse,
type BrowserContentQuery,
type BrowserContentResponse,
type BrowserCreateTabRequest, type BrowserCreateTabRequest,
type BrowserExecuteRequest,
type BrowserExecuteResponse,
type BrowserLinksResponse,
type BrowserMarkdownResponse,
type BrowserNavigateRequest, type BrowserNavigateRequest,
type BrowserPageInfo, type BrowserPageInfo,
type BrowserPdfQuery,
type BrowserReloadRequest, type BrowserReloadRequest,
type BrowserScreenshotQuery,
type BrowserScrapeRequest,
type BrowserScrapeResponse,
type BrowserSnapshotResponse,
type BrowserStartRequest, type BrowserStartRequest,
type BrowserStatusResponse, type BrowserStatusResponse,
type BrowserTabInfo, type BrowserTabInfo,
@ -2085,6 +2096,48 @@ export class SandboxAgent {
return this.requestJson("DELETE", `${API_PREFIX}/browser/tabs/${tabId}`); 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> { private async getLiveConnection(agent: string): Promise<LiveAcpConnection> {
await this.awaitHealthy(); await this.awaitHealthy();