From 772b8af92e3b03e1d3a0264787aede3347206076 Mon Sep 17 00:00:00 2001 From: miguel Date: Fri, 5 Dec 2025 13:06:18 -0800 Subject: [PATCH 1/3] Fix key mapping in Anthropic CUA Client --- .changeset/shy-sides-crash.md | 5 +++++ packages/core/lib/v3/agent/AnthropicCUAClient.ts | 14 ++------------ packages/core/lib/v3/handlers/v3CuaAgentHandler.ts | 1 + 3 files changed, 8 insertions(+), 12 deletions(-) create mode 100644 .changeset/shy-sides-crash.md diff --git a/.changeset/shy-sides-crash.md b/.changeset/shy-sides-crash.md new file mode 100644 index 000000000..0c83fecfe --- /dev/null +++ b/.changeset/shy-sides-crash.md @@ -0,0 +1,5 @@ +--- +"@browserbasehq/stagehand": patch +--- + +Fix key action mapping in Anthropic CUA diff --git a/packages/core/lib/v3/agent/AnthropicCUAClient.ts b/packages/core/lib/v3/agent/AnthropicCUAClient.ts index e1fbe5a1a..21e05c47a 100644 --- a/packages/core/lib/v3/agent/AnthropicCUAClient.ts +++ b/packages/core/lib/v3/agent/AnthropicCUAClient.ts @@ -15,7 +15,6 @@ import { AgentScreenshotProviderError } from "../types/public/sdkErrors"; import Anthropic from "@anthropic-ai/sdk"; import { ToolSet } from "ai"; import { AgentClient } from "./AgentClient"; -import { mapKeyToPlaywright } from "./utils/cuaKeyMapping"; import { compressConversationImages } from "./utils/imageCompression"; import { toJsonSchema } from "../zodCompat"; import type { StagehandZodSchema } from "../zodCompat"; @@ -772,10 +771,10 @@ export class AnthropicCUAClient extends AgentClient { text: input.text as string, ...input, }; - } else if (action === "keypress") { + } else if (action === "keypress" || action === "key") { return { type: "keypress", - keys: input.keys as string[], + keys: input.text as string[], ...input, }; } else if (action === "double_click" || action === "doubleClick") { @@ -865,15 +864,6 @@ export class AnthropicCUAClient extends AgentClient { type: "wait", ...input, }; - } else if (action === "key") { - const text = input.text as string; - const mappedKey = mapKeyToPlaywright(text); - - return { - type: "key", - text: mappedKey, - ...input, - }; } else if (action === "left_click") { // Convert left_click to regular click const coordinates = input.coordinate as number[] | undefined; diff --git a/packages/core/lib/v3/handlers/v3CuaAgentHandler.ts b/packages/core/lib/v3/handlers/v3CuaAgentHandler.ts index 33b67721b..ee63f146b 100644 --- a/packages/core/lib/v3/handlers/v3CuaAgentHandler.ts +++ b/packages/core/lib/v3/handlers/v3CuaAgentHandler.ts @@ -276,6 +276,7 @@ export class V3CuaAgentHandler { return { success: true }; } case "keypress": { + console.log("keypress", action); const { keys } = action; const keyList = Array.isArray(keys) ? keys : [keys]; const stagehandActions: Action[] = []; From cbedcdd1f9164e7255081ff7e4b4f1a4e376eb2c Mon Sep 17 00:00:00 2001 From: miguel Date: Fri, 5 Dec 2025 13:17:26 -0800 Subject: [PATCH 2/3] remove log --- packages/core/lib/v3/handlers/v3CuaAgentHandler.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/core/lib/v3/handlers/v3CuaAgentHandler.ts b/packages/core/lib/v3/handlers/v3CuaAgentHandler.ts index ee63f146b..33b67721b 100644 --- a/packages/core/lib/v3/handlers/v3CuaAgentHandler.ts +++ b/packages/core/lib/v3/handlers/v3CuaAgentHandler.ts @@ -276,7 +276,6 @@ export class V3CuaAgentHandler { return { success: true }; } case "keypress": { - console.log("keypress", action); const { keys } = action; const keyList = Array.isArray(keys) ? keys : [keys]; const stagehandActions: Action[] = []; From b9716b927267a9743e5c1099df84e672265bd6bd Mon Sep 17 00:00:00 2001 From: Sean McGuire <75873287+seanmcguire12@users.noreply.github.com> Date: Fri, 5 Dec 2025 13:36:05 -0800 Subject: [PATCH 3/3] Update packages/core/lib/v3/agent/AnthropicCUAClient.ts Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> --- packages/core/lib/v3/agent/AnthropicCUAClient.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/lib/v3/agent/AnthropicCUAClient.ts b/packages/core/lib/v3/agent/AnthropicCUAClient.ts index 21e05c47a..e425b8f98 100644 --- a/packages/core/lib/v3/agent/AnthropicCUAClient.ts +++ b/packages/core/lib/v3/agent/AnthropicCUAClient.ts @@ -774,7 +774,7 @@ export class AnthropicCUAClient extends AgentClient { } else if (action === "keypress" || action === "key") { return { type: "keypress", - keys: input.text as string[], + keys: [input.text as string], ...input, }; } else if (action === "double_click" || action === "doubleClick") {