fix(ai): resolve OAuth tool names via context

This commit is contained in:
Mario Zechner 2026-01-10 13:45:08 +01:00
parent 79ed50e0db
commit ec83d91473

View file

@ -43,9 +43,11 @@ const claudeCodeToolNames: Record<string, string> = {
}; };
const toClaudeCodeName = (name: string) => claudeCodeToolNames[name] || name; const toClaudeCodeName = (name: string) => claudeCodeToolNames[name] || name;
const fromClaudeCodeName = (name: string) => { const fromClaudeCodeName = (name: string, tools?: Tool[]) => {
for (const [piName, ccName] of Object.entries(claudeCodeToolNames)) { if (tools && tools.length > 0) {
if (ccName === name) return piName; const lowerName = name.toLowerCase();
const matchedTool = tools.find((tool) => tool.name.toLowerCase() === lowerName);
if (matchedTool) return matchedTool.name;
} }
return name; return name;
}; };
@ -179,7 +181,9 @@ export const streamAnthropic: StreamFunction<"anthropic-messages"> = (
const block: Block = { const block: Block = {
type: "toolCall", type: "toolCall",
id: event.content_block.id, id: event.content_block.id,
name: isOAuthToken ? fromClaudeCodeName(event.content_block.name) : event.content_block.name, name: isOAuthToken
? fromClaudeCodeName(event.content_block.name, context.tools)
: event.content_block.name,
arguments: event.content_block.input as Record<string, any>, arguments: event.content_block.input as Record<string, any>,
partialJson: "", partialJson: "",
index: event.index, index: event.index,