From 1195993d1824321ad855aaee6f8010817ab2ad25 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Thu, 10 Sep 2026 17:59:34 +0000 Subject: [PATCH 1/2] Add reasoning effort to OpenAI CUA and Claude Computer Use Expose the new reasoningEffort request field on both agents, matching the API and the existing Grok/Meta Computer Use pattern. Co-authored-by: nikhil --- src/types/agents/claude-computer-use.ts | 7 ++++- src/types/agents/cua.ts | 3 +- src/types/constants.ts | 4 +++ src/types/index.ts | 2 ++ tests/integration/client-http.test.ts | 37 +++++++++++++++++++++++++ 5 files changed, 51 insertions(+), 2 deletions(-) diff --git a/src/types/agents/claude-computer-use.ts b/src/types/agents/claude-computer-use.ts index 37181c8..f33cbfb 100644 --- a/src/types/agents/claude-computer-use.ts +++ b/src/types/agents/claude-computer-use.ts @@ -1,4 +1,8 @@ -import { ClaudeComputerUseLlm, ClaudeComputerUseTaskStatus } from "../constants"; +import { + ClaudeComputerUseLlm, + ClaudeComputerUseReasoningEffort, + ClaudeComputerUseTaskStatus, +} from "../constants"; import { CreateSessionParams } from "../session"; export interface ClaudeComputerUseApiKeys { @@ -8,6 +12,7 @@ export interface ClaudeComputerUseApiKeys { export interface StartClaudeComputerUseTaskParams { task: string; llm?: ClaudeComputerUseLlm; + reasoningEffort?: ClaudeComputerUseReasoningEffort; sessionId?: string; maxFailures?: number; maxSteps?: number; diff --git a/src/types/agents/cua.ts b/src/types/agents/cua.ts index 8f0656f..de51d71 100644 --- a/src/types/agents/cua.ts +++ b/src/types/agents/cua.ts @@ -1,4 +1,4 @@ -import { CuaLlm, CuaTaskStatus } from "../constants"; +import { CuaLlm, CuaReasoningEffort, CuaTaskStatus } from "../constants"; import { CreateSessionParams } from "../session"; export interface CuaApiKeys { @@ -12,6 +12,7 @@ export interface CuaBaseUrls { export interface StartCuaTaskParams { task: string; llm?: CuaLlm; + reasoningEffort?: CuaReasoningEffort; sessionId?: string; maxFailures?: number; maxSteps?: number; diff --git a/src/types/constants.ts b/src/types/constants.ts index 2349a89..b71caa3 100644 --- a/src/types/constants.ts +++ b/src/types/constants.ts @@ -66,6 +66,8 @@ export type ClaudeComputerUseLlm = | "claude-sonnet-4-20250514" | "claude-3-7-sonnet-20250219"; +export type ClaudeComputerUseReasoningEffort = "low" | "medium" | "high" | "xhigh" | "max"; + export type CuaLlm = | "computer-use-preview" | "gpt-6-astra" @@ -76,6 +78,8 @@ export type CuaLlm = | "gpt-5.4" | "gpt-5.4-mini"; +export type CuaReasoningEffort = "none" | "low" | "medium" | "high" | "xhigh" | "max"; + export type HyperAgentVersion = "0.8.0" | "1.1.0"; export type HyperAgentLlm = diff --git a/src/types/index.ts b/src/types/index.ts index 5f2502d..3f6bde8 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -253,7 +253,9 @@ export { BrowserUseTaskStatus, BrowserUseLlm, ClaudeComputerUseLlm, + ClaudeComputerUseReasoningEffort, CuaLlm, + CuaReasoningEffort, GeminiComputerUseLlm, GrokComputerUseLlm, GrokReasoningEffort, diff --git a/tests/integration/client-http.test.ts b/tests/integration/client-http.test.ts index bac03d7..6930e96 100644 --- a/tests/integration/client-http.test.ts +++ b/tests/integration/client-http.test.ts @@ -60,6 +60,11 @@ const startServer = async (): Promise => { return; } + if (request.method === "POST" && request.url === "/api/task/claude-computer-use") { + sendJson(response, 200, { jobId: "claude_job_123", liveUrl: null }); + return; + } + if (request.method === "POST" && request.url === "/api/task/meta-computer-use") { sendJson(response, 200, { jobId: "meta_job_123", liveUrl: null }); return; @@ -281,6 +286,7 @@ describe("client HTTP integration", () => { const started = await client.agents.cua.start({ task: "Complete the task", llm: "gpt-5.4-mini", + reasoningEffort: "high", useCustomApiKeys: true, apiKeys: { openai: "openai-key" }, baseUrls: { openai: "https://example.openai.azure.com/openai/v1/" }, @@ -296,6 +302,7 @@ describe("client HTTP integration", () => { body: { task: "Complete the task", llm: "gpt-5.4-mini", + reasoningEffort: "high", useCustomApiKeys: true, apiKeys: { openai: "openai-key" }, baseUrls: { openai: "https://example.openai.azure.com/openai/v1/" }, @@ -304,6 +311,36 @@ describe("client HTTP integration", () => { ]); }); + test("Claude Computer Use forwards reasoning effort on start", async () => { + const server = await startServer(); + servers.push(server); + const client = new HyperbrowserClient({ + apiKey: "test-api-key", + baseUrl: server.baseUrl, + }); + + const started = await client.agents.claudeComputerUse.start({ + task: "Complete the task", + llm: "claude-opus-5", + reasoningEffort: "xhigh", + }); + + expect(started).toEqual({ jobId: "claude_job_123", liveUrl: null }); + expect(server.requests).toEqual([ + { + method: "POST", + url: "/api/task/claude-computer-use", + apiKey: "test-api-key", + contentType: "application/json", + body: { + task: "Complete the task", + llm: "claude-opus-5", + reasoningEffort: "xhigh", + }, + }, + ]); + }); + test("Meta Computer Use starts, polls, reads, and stops a task", async () => { const server = await startServer(); servers.push(server); From b1c6af20a716c59302a18b0ffe1ca8ee845059ba Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Thu, 10 Sep 2026 18:31:18 +0000 Subject: [PATCH 2/2] Bump version to 0.92.6 Co-authored-by: nikhil --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 36810b0..08732bf 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@hyperbrowser/sdk", - "version": "0.92.5", + "version": "0.92.6", "description": "Node SDK for Hyperbrowser API", "author": "", "repository": {