fix(ai): resolve OAuth tool names via context
This commit is contained in:
@@ -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,
|
||||||
|
|||||||
Reference in New Issue
Block a user