Files
agent-radar 2ed3415fb7
Publish Claude Code Binaries / Stage and publish binaries (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-arm64 (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build linux-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build windows-amd64 (push) Canceled after 0s
Sync Tutti Agent Skills / sync (push) Canceled after 0s
Windows Agent Adapters / Test Windows agent adapters (push) Canceled after 0s
Windows Daemon Adapters / Test Windows daemon adapters (push) Canceled after 0s
Publish Tutti App Runtime / Publish runtime catalog (push) Canceled after 0s
源码快照 @ 2026-09-01 (source-only, 剔除非源码素材)
2026-09-01 20:17:27 +08:00

89 lines
2.9 KiB
TypeScript

import type { JSX } from "react";
import type { AgentToolCallVM } from "../../contracts/agentToolCallVM";
import { AgentApprovalContent } from "./AgentApprovalContent";
import { AgentAskUserQuestionContent } from "./AgentAskUserQuestionContent";
import { AgentBashContent } from "./AgentBashContent";
import { AgentEditContent } from "./AgentEditContent";
import { AgentImageGenerationContent } from "./AgentImageGenerationContent";
import { AgentMcpToolContent } from "./AgentMcpToolContent";
import { AgentPlanModeContent } from "./AgentPlanModeContent";
import { AgentReadContent } from "./AgentReadContent";
import { AgentSearchContent } from "./AgentSearchContent";
import { AgentSkillContent } from "./AgentSkillContent";
import { AgentTaskContent } from "./AgentTaskContent";
import { AgentTodoWriteContent } from "./AgentTodoWriteContent";
import { AgentToolSearchContent } from "./AgentToolSearchContent";
import { AgentDefaultToolContent } from "./agentToolContentShared";
import { AgentWebFetchContent } from "./AgentWebFetchContent";
import { AgentWebSearchContent } from "./AgentWebSearchContent";
import { AgentWriteContent } from "./AgentWriteContent";
export function AgentExpandedToolContent({
call,
onLinkClick
}: {
call: AgentToolCallVM;
onLinkClick?: (href: string) => void;
}): JSX.Element | null {
"use memo";
const props = { call, onLinkClick };
let content: JSX.Element | null;
switch (call.rendererKind) {
case "approval":
content = <AgentApprovalContent {...props} />;
break;
case "plan-enter":
case "plan-exit":
content = <AgentPlanModeContent {...props} />;
break;
case "ask-user":
content = <AgentAskUserQuestionContent {...props} />;
break;
case "task":
content = <AgentTaskContent {...props} />;
break;
case "read":
content = <AgentReadContent {...props} />;
break;
case "write":
content = <AgentWriteContent {...props} />;
break;
case "edit":
content = <AgentEditContent {...props} />;
break;
case "bash":
content = <AgentBashContent {...props} />;
break;
case "search":
content = <AgentSearchContent {...props} />;
break;
case "web-search":
content = <AgentWebSearchContent {...props} />;
break;
case "web-fetch":
content = <AgentWebFetchContent {...props} />;
break;
case "image-generation":
content = <AgentImageGenerationContent {...props} />;
break;
case "todo-write":
content = <AgentTodoWriteContent {...props} />;
break;
case "tool-search":
content = <AgentToolSearchContent {...props} />;
break;
case "skill":
content = <AgentSkillContent {...props} />;
break;
case "mcp":
content = <AgentMcpToolContent {...props} />;
break;
default:
content = <AgentDefaultToolContent {...props} />;
}
if (!content) {
return null;
}
return content;
}