fix(ai): default tool call arguments

fixes #1065
This commit is contained in:
Mario Zechner 2026-01-30 01:13:16 +01:00
parent 098f396cf3
commit af813f9048
2 changed files with 4 additions and 4 deletions

View file

@ -233,7 +233,7 @@ export const streamAnthropic: StreamFunction<"anthropic-messages", AnthropicOpti
name: isOAuthToken name: isOAuthToken
? fromClaudeCodeName(event.content_block.name, context.tools) ? fromClaudeCodeName(event.content_block.name, context.tools)
: event.content_block.name, : 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,
}; };
@ -619,7 +619,7 @@ function convertMessages(
type: "tool_use", type: "tool_use",
id: block.id, id: block.id,
name: isOAuthToken ? toClaudeCodeName(block.name) : block.name, name: isOAuthToken ? toClaudeCodeName(block.name) : block.name,
input: block.arguments, input: block.arguments ?? {},
}); });
} }
} }

View file

@ -143,7 +143,7 @@ export function convertMessages<T extends GoogleApiType>(model: Model<T>, contex
// We include a note telling the model this is historical context to prevent mimicry. // We include a note telling the model this is historical context to prevent mimicry.
const isGemini3 = model.id.toLowerCase().includes("gemini-3"); const isGemini3 = model.id.toLowerCase().includes("gemini-3");
if (isGemini3 && !thoughtSignature) { if (isGemini3 && !thoughtSignature) {
const argsStr = JSON.stringify(block.arguments, null, 2); const argsStr = JSON.stringify(block.arguments ?? {}, null, 2);
parts.push({ parts.push({
text: `[Historical context: a different model called tool "${block.name}" with arguments: ${argsStr}. Do not mimic this format - use proper function calling.]`, text: `[Historical context: a different model called tool "${block.name}" with arguments: ${argsStr}. Do not mimic this format - use proper function calling.]`,
}); });
@ -151,7 +151,7 @@ export function convertMessages<T extends GoogleApiType>(model: Model<T>, contex
const part: Part = { const part: Part = {
functionCall: { functionCall: {
name: block.name, name: block.name,
args: block.arguments, args: block.arguments ?? {},
...(requiresToolCallId(model.id) ? { id: block.id } : {}), ...(requiresToolCallId(model.id) ? { id: block.id } : {}),
}, },
}; };