diff --git a/web/src/app/_dialogs/about.md b/web/src/app/_dialogs/about.md new file mode 100644 index 0000000..823c5fe --- /dev/null +++ b/web/src/app/_dialogs/about.md @@ -0,0 +1,31 @@ +# 🦌 [About DeerFlow](https://github.com/bytedance/deer-flow) + +> Come from Open Source, Back to Open Source + +**DeerFlow** (**D**eep **E**xploration and **E**fficient **R**esearch **Flow**) is a community-driven AI automation framework that builds upon the incredible work of the open source community. Our goal is to combine language models with specialized tools for tasks like web search, crawling, and Python code execution, while giving back to the community that made this possible. + +## Github + +[github.com/bytedance/deer-flow](https://github.com/bytedance/deer-flow) + +## License + +This project is open source and available under the MIT License. + +## Acknowledgments + +Special thanks to all the open source projects and contributors that make DeerFlow possible. We stand on the shoulders of giants. + +In particular, we want to express our deep appreciation for: +- [LangChain](https://github.com/langchain-ai/langchain) for their exceptional framework that powers our LLM interactions and chains +- [LangGraph](https://github.com/langchain-ai/langgraph) for enabling our sophisticated multi-agent orchestration + +For the web project, we want to express our deep appreciation for: +- [Next.js](https://nextjs.org/) for their exceptional framework +- [Shadcn](https://ui.shadcn.com/) for their minimalistic components that powers our UI +- [Zustand](https://zustand.docs.pmnd.rs/) for their stunning state management +- [Framer Motion](https://www.framer.com/motion/) for their amazing animation library +- [React Markdown](https://www.npmjs.com/package/react-markdown) for their exceptional markdown rendering and customizability +- Last but not least, special thanks to [SToneX](https://github.com/stonexer) for his great contribution for **[token-by-token visual effect](./src/core/rehype/rehype-split-words-into-spans.ts)** + +These amazing projects form the foundation of DeerFlow and demonstrate the power of open source collaboration. diff --git a/web/src/app/_dialogs/settings-dialog.tsx b/web/src/app/_dialogs/settings-dialog.tsx index f864ad3..3584e32 100644 --- a/web/src/app/_dialogs/settings-dialog.tsx +++ b/web/src/app/_dialogs/settings-dialog.tsx @@ -1,4 +1,5 @@ import { BadgeInfo, Blocks, Settings } from "lucide-react"; +import { useState } from "react"; import { Button } from "~/components/ui/button"; import { @@ -10,11 +11,33 @@ import { DialogTitle, DialogTrigger, } from "~/components/ui/dialog"; +import { Tabs, TabsContent } from "~/components/ui/tabs"; +import { cn } from "~/lib/utils"; -import { ScrollContainer } from "../_components/scroll-container"; +import { Markdown } from "../_components/markdown"; import { Tooltip } from "../_components/tooltip"; +import about from "./about.md"; + +const SETTINGS_TABS = [ + { + id: "general", + label: "General", + icon: Settings, + }, + { + id: "mcp", + label: "MCP", + icon: Blocks, + }, + { + id: "about", + label: "About", + icon: BadgeInfo, + }, +]; export function SettingsDialog() { + const [activeTabId, setActiveTabId] = useState(SETTINGS_TABS[0]!.id); return ( @@ -31,32 +54,41 @@ export function SettingsDialog() { Manage your DeerFlow settings here. -
-
- -
    -
  • - - General -
  • -
  • - - MCP -
  • -
  • - - About -
  • -
-
+ +
+
    +
    + {SETTINGS_TABS.map((tab) => ( +
  • setActiveTabId(tab.id)} + > + + {tab.label} +
  • + ))} +
    +
+
+
+ +
General
+
+ +
Coming soon...
+
+ + {about} + +
+
-
- -
-
+