From 616ba186df76c171d8d07f18b48166744aa020ff Mon Sep 17 00:00:00 2001 From: miguel Date: Wed, 19 Mar 2025 10:51:51 -0700 Subject: [PATCH] fixed anthropic open operator --- .changeset/puny-garlics-join.md | 5 +++++ lib/handlers/operatorHandler.ts | 18 ++++++++++++++---- lib/llm/LLMClient.ts | 9 +++++++-- 3 files changed, 26 insertions(+), 6 deletions(-) create mode 100644 .changeset/puny-garlics-join.md diff --git a/.changeset/puny-garlics-join.md b/.changeset/puny-garlics-join.md new file mode 100644 index 000000000..8a8316bd1 --- /dev/null +++ b/.changeset/puny-garlics-join.md @@ -0,0 +1,5 @@ +--- +"@browserbasehq/stagehand": patch +--- + +Fix the open operator handler to work with anthropic diff --git a/lib/handlers/operatorHandler.ts b/lib/handlers/operatorHandler.ts index fceae9a90..23ec2a7ce 100644 --- a/lib/handlers/operatorHandler.ts +++ b/lib/handlers/operatorHandler.ts @@ -85,10 +85,20 @@ export class StagehandOperatorHandler { type: "text", text: messageText, }, - { - type: "image_url", - image_url: { url: `data:image/png;base64,${base64Image}` }, - }, + this.llmClient.type === "anthropic" + ? { + type: "image", + source: { + type: "base64", + media_type: "image/png", + data: base64Image, + }, + text: "the screenshot of the current page", + } + : { + type: "image_url", + image_url: { url: `data:image/png;base64,${base64Image}` }, + }, ], }); } diff --git a/lib/llm/LLMClient.ts b/lib/llm/LLMClient.ts index d893b69ec..586f60e58 100644 --- a/lib/llm/LLMClient.ts +++ b/lib/llm/LLMClient.ts @@ -13,9 +13,14 @@ export type ChatMessageContent = | (ChatMessageImageContent | ChatMessageTextContent)[]; export interface ChatMessageImageContent { - type: "image_url"; - image_url: { url: string }; + type: string; + image_url?: { url: string }; text?: string; + source?: { + type: string; + media_type: string; + data: string; + }; } export interface ChatMessageTextContent {