| import type { ToolCall } from "@langchain/core/messages"; |
| import type { AIMessage } from "@langchain/langgraph-sdk"; |
|
|
| import type { Translations } from "../i18n"; |
| import { hasToolCalls } from "../messages/utils"; |
|
|
| export function explainLastToolCall(message: AIMessage, t: Translations) { |
| if (hasToolCalls(message)) { |
| const lastToolCall = message.tool_calls![message.tool_calls!.length - 1]!; |
| return explainToolCall(lastToolCall, t); |
| } |
| return t.common.thinking; |
| } |
|
|
| export function explainToolCall(toolCall: ToolCall, t: Translations) { |
| if (toolCall.name === "web_search" || toolCall.name === "image_search") { |
| return t.toolCalls.searchFor(toolCall.args.query); |
| } else if (toolCall.name === "web_fetch") { |
| return t.toolCalls.viewWebPage; |
| } else if (toolCall.name === "present_files") { |
| return t.toolCalls.presentFiles; |
| } else if (toolCall.name === "write_todos") { |
| return t.toolCalls.writeTodos; |
| } else if (toolCall.args.description) { |
| return toolCall.args.description; |
| } else { |
| return t.toolCalls.useTool(toolCall.name); |
| } |
| } |
|
|