diff --git a/web/src/app/_components/input-box.tsx b/web/src/app/_components/input-box.tsx
index fd3efa9..b3b8197 100644
--- a/web/src/app/_components/input-box.tsx
+++ b/web/src/app/_components/input-box.tsx
@@ -1,8 +1,8 @@
// Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
// SPDX-License-Identifier: MIT
-import { ArrowUpOutlined, CloseOutlined } from "@ant-design/icons";
import { AnimatePresence, motion } from "framer-motion";
+import { ArrowUp, X } from "lucide-react";
import {
type KeyboardEvent,
useCallback,
@@ -105,8 +105,9 @@ export function InputBox({
{feedback.option.text}
-
@@ -148,7 +149,7 @@ export function InputBox({
) : (
-
+
)}
diff --git a/web/src/app/_components/markdown.tsx b/web/src/app/_components/markdown.tsx
index 9cfe3c1..f470108 100644
--- a/web/src/app/_components/markdown.tsx
+++ b/web/src/app/_components/markdown.tsx
@@ -1,7 +1,7 @@
// Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
// SPDX-License-Identifier: MIT
-import { CheckOutlined, CopyOutlined } from "@ant-design/icons";
+import { Check, Copy } from "lucide-react";
import { useMemo, useState } from "react";
import ReactMarkdown, {
type Options as ReactMarkdownOptions,
@@ -91,9 +91,9 @@ function CopyButton({ content }: { content: string }) {
}}
>
{copied ? (
-
+
) : (
-
+
)}{" "}
diff --git a/web/src/app/_components/message-list-view.tsx b/web/src/app/_components/message-list-view.tsx
index ee8be71..6f41e6e 100644
--- a/web/src/app/_components/message-list-view.tsx
+++ b/web/src/app/_components/message-list-view.tsx
@@ -1,13 +1,10 @@
// Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
// SPDX-License-Identifier: MIT
-import {
- DownloadOutlined,
- SoundOutlined,
- LoadingOutlined,
-} from "@ant-design/icons";
+import { LoadingOutlined } from "@ant-design/icons";
import { parse } from "best-effort-json-parser";
import { motion } from "framer-motion";
+import { Download, Podcast } from "lucide-react";
import { useCallback, useMemo, useState } from "react";
import { Button } from "~/components/ui/button";
@@ -383,7 +380,7 @@ function PodcastCard({
- {isGenerating ?
:
}
+ {isGenerating ?
:
}
{isGenerating
? "Generating podcast..."
@@ -400,7 +397,7 @@ function PodcastCard({
href={audioUrl}
download={`${(title ?? "podcast").replaceAll(" ", "-")}.mp3`}
>
-
+
diff --git a/web/src/app/_components/research-activities-block.tsx b/web/src/app/_components/research-activities-block.tsx
index 6899c3e..dc2dc30 100644
--- a/web/src/app/_components/research-activities-block.tsx
+++ b/web/src/app/_components/research-activities-block.tsx
@@ -1,14 +1,11 @@
// Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
// SPDX-License-Identifier: MIT
-import {
- BookOutlined,
- PythonOutlined,
- SearchOutlined,
-} from "@ant-design/icons";
+import { PythonOutlined } from "@ant-design/icons";
import { parse } from "best-effort-json-parser";
import { motion } from "framer-motion";
import { LRUCache } from "lru-cache";
+import { BookOpenText, Search } from "lucide-react";
import { useMemo } from "react";
import SyntaxHighlighter from "react-syntax-highlighter";
import { docco } from "react-syntax-highlighter/dist/esm/styles/hljs";
@@ -139,20 +136,20 @@ function WebSearchToolCall({ toolCall }: { toolCall: ToolCallRuntime }) {
[searchResults],
);
return (
-
+
-
+
Searching for
{(toolCall.args as { query: string }).query}
-
+
{pageResults && (
{searching &&
@@ -231,34 +228,32 @@ function CrawlToolCall({ toolCall }: { toolCall: ToolCallRuntime }) {
);
const title = useMemo(() => __pageCache.get(url), [url]);
return (
-
+
);
}
@@ -268,7 +263,7 @@ function PythonToolCall({ toolCall }: { toolCall: ToolCallRuntime }) {
return (toolCall.args as { code: string }).code;
}, [toolCall.args]);
return (
-
+
diff --git a/web/src/app/_components/research-block.tsx b/web/src/app/_components/research-block.tsx
index c58397a..795f781 100644
--- a/web/src/app/_components/research-block.tsx
+++ b/web/src/app/_components/research-block.tsx
@@ -1,7 +1,7 @@
// Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
// SPDX-License-Identifier: MIT
-import { CloseOutlined } from "@ant-design/icons";
+import { X } from "lucide-react";
import { useEffect, useState } from "react";
import { Button } from "~/components/ui/button";
@@ -48,7 +48,7 @@ export function ResearchBlock({
openResearch(null);
}}
>
-
+
diff --git a/web/src/app/_components/research-report-block.tsx b/web/src/app/_components/research-report-block.tsx
index 45aa167..89d1598 100644
--- a/web/src/app/_components/research-report-block.tsx
+++ b/web/src/app/_components/research-report-block.tsx
@@ -1,7 +1,7 @@
// Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
// SPDX-License-Identifier: MIT
-import { SoundOutlined } from "@ant-design/icons";
+import { Podcast } from "lucide-react";
import { useCallback, useRef, useState } from "react";
import { Button } from "~/components/ui/button";
@@ -51,7 +51,7 @@ export function ResearchReportBlock({
void handleListenToReport();
}}
>
-
+
)}