diff --git a/internal/cloud/code-agent-agentrun-adapter.ts b/internal/cloud/code-agent-agentrun-adapter.ts index c99562c7..2970a4a2 100644 --- a/internal/cloud/code-agent-agentrun-adapter.ts +++ b/internal/cloud/code-agent-agentrun-adapter.ts @@ -1695,14 +1695,22 @@ function mapAgentRunEvent(event, mapping = {}) { if (event.type === "tool_call") { const commandExecution = agentRunCommandExecutionEvent(base, payload); if (commandExecution) return commandExecution; + const toolName = firstNonEmpty(payload.toolName, payload.name, payload.item?.type, payload.type, payload.method, "call"); + const command = firstNonEmpty(payload.command, payload.commandLine, payload.item?.command, payload.item?.commandLine); + const output = firstNonEmpty(payload.outputSummary, payload.stdoutSummary, payload.summary?.text, payload.itemPreview); return { ...base, type: "tool_call", status: String(payload.status ?? (payload.method === "item/completed" ? "completed" : "running")), - label: `agentrun:tool:${String(payload.name ?? payload.method ?? "call")}`, + label: `agentrun:tool:${String(toolName)}`, itemId: payload.item?.id ?? payload.itemId ?? null, - toolName: payload.item?.type ?? payload.name ?? payload.method ?? "call", - message: textPayload(payload, "tool call"), + toolName, + command, + exitCode: Number.isInteger(payload.item?.exitCode) ? payload.item.exitCode : Number.isInteger(payload.exitCode) ? payload.exitCode : undefined, + durationMs: typeof payload.item?.durationMs === "number" ? payload.item.durationMs : typeof payload.durationMs === "number" ? payload.durationMs : undefined, + stdoutSummary: output, + outputSummary: output, + message: output || command || textPayload(payload, "tool call"), outputBytes: typeof payload.outputBytes === "number" ? payload.outputBytes : payload.summary?.outputBytes, outputTruncated: payload.outputTruncated === true || payload.summary?.outputTruncated === true };