import type { JSX } from "react"; import { translate } from "../../../../i18n/index"; import { ToolMarkdownBlock, ToolSection, type AgentToolRendererProps } from "./agentToolContentShared"; import { AgentTaskStepList } from "../AgentTaskStepList"; import { getTaskRenderData } from "./render-data/agentToolRenderData"; export function AgentTaskContent({ call, onLinkClick }: AgentToolRendererProps): JSX.Element { "use memo"; const task = getTaskRenderData(call); const failureMarkdown = task.errorMarkdown ?? (isFailedTaskStatus(call.statusKind, task.status, call.status) ? translate("agentHost.agentTool.details.missingFailureDetails") : null); return (
{task.title} {task.status ? ( {" · "} {task.status} ) : null} {task.durationText ? ( {" · "} {task.durationText} ) : null}
{task.status === "running" && task.latestStepSummary ? (
{task.latestStepSummary}
) : null} {task.prompt ? ( ) : null} {task.childSessionId ? (
{task.childSessionId}
) : null} {task.steps.length > 0 ? ( ) : null} {task.resultMarkdown ? ( ) : null} {failureMarkdown ? ( ) : null}
); } function isFailedTaskStatus( ...values: Array ): boolean { return values.some((value) => { const normalized = (value ?? "").trim().toLowerCase(); return normalized === "failed" || normalized === "error"; }); }