gitextract_d9b2_eay/ ├── .dockerignore ├── .gitattributes ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ └── runtime-information.yml │ ├── copilot-instructions.md │ └── workflows/ │ └── backend-unit-tests.yml ├── .gitignore ├── CONTRIBUTING.md ├── LICENSE ├── Makefile ├── README.md ├── README_ja.md ├── README_zh.md ├── SECURITY.md ├── backend/ │ ├── .gitignore │ ├── .python-version │ ├── AGENTS.md │ ├── CLAUDE.md │ ├── CONTRIBUTING.md │ ├── Dockerfile │ ├── Makefile │ ├── README.md │ ├── app/ │ │ ├── __init__.py │ │ ├── channels/ │ │ │ ├── __init__.py │ │ │ ├── base.py │ │ │ ├── feishu.py │ │ │ ├── manager.py │ │ │ ├── message_bus.py │ │ │ ├── service.py │ │ │ ├── slack.py │ │ │ ├── store.py │ │ │ └── telegram.py │ │ └── gateway/ │ │ ├── __init__.py │ │ ├── app.py │ │ ├── config.py │ │ ├── path_utils.py │ │ └── routers/ │ │ ├── __init__.py │ │ ├── agents.py │ │ ├── artifacts.py │ │ ├── channels.py │ │ ├── mcp.py │ │ ├── memory.py │ │ ├── models.py │ │ ├── skills.py │ │ ├── suggestions.py │ │ └── uploads.py │ ├── debug.py │ ├── docs/ │ │ ├── API.md │ │ ├── APPLE_CONTAINER.md │ │ ├── ARCHITECTURE.md │ │ ├── AUTO_TITLE_GENERATION.md │ │ ├── CONFIGURATION.md │ │ ├── FILE_UPLOAD.md │ │ ├── HARNESS_APP_SPLIT.md │ │ ├── MCP_SERVER.md │ │ ├── MEMORY_IMPROVEMENTS.md │ │ ├── MEMORY_IMPROVEMENTS_SUMMARY.md │ │ ├── PATH_EXAMPLES.md │ │ ├── README.md │ │ ├── SETUP.md │ │ ├── TITLE_GENERATION_IMPLEMENTATION.md │ │ ├── TODO.md │ │ ├── plan_mode_usage.md │ │ ├── summarization.md │ │ └── task_tool_improvements.md │ ├── langgraph.json │ ├── packages/ │ │ └── harness/ │ │ ├── deerflow/ │ │ │ ├── __init__.py │ │ │ ├── agents/ │ │ │ │ ├── __init__.py │ │ │ │ ├── checkpointer/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── async_provider.py │ │ │ │ │ └── provider.py │ │ │ │ ├── lead_agent/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── agent.py │ │ │ │ │ └── prompt.py │ │ │ │ ├── memory/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── prompt.py │ │ │ │ │ ├── queue.py │ │ │ │ │ └── updater.py │ │ │ │ ├── middlewares/ │ │ │ │ │ ├── clarification_middleware.py │ │ │ │ │ ├── dangling_tool_call_middleware.py │ │ │ │ │ ├── deferred_tool_filter_middleware.py │ │ │ │ │ ├── loop_detection_middleware.py │ │ │ │ │ ├── memory_middleware.py │ │ │ │ │ ├── subagent_limit_middleware.py │ │ │ │ │ ├── thread_data_middleware.py │ │ │ │ │ ├── title_middleware.py │ │ │ │ │ ├── todo_middleware.py │ │ │ │ │ ├── tool_error_handling_middleware.py │ │ │ │ │ ├── uploads_middleware.py │ │ │ │ │ └── view_image_middleware.py │ │ │ │ └── thread_state.py │ │ │ ├── client.py │ │ │ ├── community/ │ │ │ │ ├── aio_sandbox/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── aio_sandbox.py │ │ │ │ │ ├── aio_sandbox_provider.py │ │ │ │ │ ├── backend.py │ │ │ │ │ ├── local_backend.py │ │ │ │ │ ├── remote_backend.py │ │ │ │ │ └── sandbox_info.py │ │ │ │ ├── firecrawl/ │ │ │ │ │ └── tools.py │ │ │ │ ├── image_search/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── tools.py │ │ │ │ ├── infoquest/ │ │ │ │ │ ├── infoquest_client.py │ │ │ │ │ └── tools.py │ │ │ │ ├── jina_ai/ │ │ │ │ │ ├── jina_client.py │ │ │ │ │ └── tools.py │ │ │ │ └── tavily/ │ │ │ │ └── tools.py │ │ │ ├── config/ │ │ │ │ ├── __init__.py │ │ │ │ ├── agents_config.py │ │ │ │ ├── app_config.py │ │ │ │ ├── checkpointer_config.py │ │ │ │ ├── extensions_config.py │ │ │ │ ├── memory_config.py │ │ │ │ ├── model_config.py │ │ │ │ ├── paths.py │ │ │ │ ├── sandbox_config.py │ │ │ │ ├── skills_config.py │ │ │ │ ├── subagents_config.py │ │ │ │ ├── summarization_config.py │ │ │ │ ├── title_config.py │ │ │ │ ├── tool_config.py │ │ │ │ ├── tool_search_config.py │ │ │ │ └── tracing_config.py │ │ │ ├── mcp/ │ │ │ │ ├── __init__.py │ │ │ │ ├── cache.py │ │ │ │ ├── client.py │ │ │ │ ├── oauth.py │ │ │ │ └── tools.py │ │ │ ├── models/ │ │ │ │ ├── __init__.py │ │ │ │ ├── claude_provider.py │ │ │ │ ├── credential_loader.py │ │ │ │ ├── factory.py │ │ │ │ ├── openai_codex_provider.py │ │ │ │ ├── patched_deepseek.py │ │ │ │ └── patched_minimax.py │ │ │ ├── reflection/ │ │ │ │ ├── __init__.py │ │ │ │ └── resolvers.py │ │ │ ├── sandbox/ │ │ │ │ ├── __init__.py │ │ │ │ ├── exceptions.py │ │ │ │ ├── local/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── list_dir.py │ │ │ │ │ ├── local_sandbox.py │ │ │ │ │ └── local_sandbox_provider.py │ │ │ │ ├── middleware.py │ │ │ │ ├── sandbox.py │ │ │ │ ├── sandbox_provider.py │ │ │ │ └── tools.py │ │ │ ├── skills/ │ │ │ │ ├── __init__.py │ │ │ │ ├── loader.py │ │ │ │ ├── parser.py │ │ │ │ ├── types.py │ │ │ │ └── validation.py │ │ │ ├── subagents/ │ │ │ │ ├── __init__.py │ │ │ │ ├── builtins/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── bash_agent.py │ │ │ │ │ └── general_purpose.py │ │ │ │ ├── config.py │ │ │ │ ├── executor.py │ │ │ │ └── registry.py │ │ │ ├── tools/ │ │ │ │ ├── __init__.py │ │ │ │ ├── builtins/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── clarification_tool.py │ │ │ │ │ ├── present_file_tool.py │ │ │ │ │ ├── setup_agent_tool.py │ │ │ │ │ ├── task_tool.py │ │ │ │ │ ├── tool_search.py │ │ │ │ │ └── view_image_tool.py │ │ │ │ └── tools.py │ │ │ └── utils/ │ │ │ ├── file_conversion.py │ │ │ ├── network.py │ │ │ └── readability.py │ │ └── pyproject.toml │ ├── pyproject.toml │ ├── ruff.toml │ └── tests/ │ ├── conftest.py │ ├── test_app_config_reload.py │ ├── test_artifacts_router.py │ ├── test_channel_file_attachments.py │ ├── test_channels.py │ ├── test_checkpointer.py │ ├── test_checkpointer_none_fix.py │ ├── test_cli_auth_providers.py │ ├── test_client.py │ ├── test_client_live.py │ ├── test_config_version.py │ ├── test_credential_loader.py │ ├── test_custom_agent.py │ ├── test_docker_sandbox_mode_detection.py │ ├── test_feishu_parser.py │ ├── test_harness_boundary.py │ ├── test_infoquest_client.py │ ├── test_lead_agent_model_resolution.py │ ├── test_local_sandbox_encoding.py │ ├── test_loop_detection_middleware.py │ ├── test_mcp_client_config.py │ ├── test_mcp_oauth.py │ ├── test_memory_prompt_injection.py │ ├── test_memory_updater.py │ ├── test_memory_upload_filtering.py │ ├── test_model_config.py │ ├── test_model_factory.py │ ├── test_patched_minimax.py │ ├── test_present_file_tool_core_logic.py │ ├── test_provisioner_kubeconfig.py │ ├── test_readability.py │ ├── test_reflection_resolvers.py │ ├── test_sandbox_tools_security.py │ ├── test_serialize_message_content.py │ ├── test_skills_archive_root.py │ ├── test_skills_loader.py │ ├── test_skills_router.py │ ├── test_subagent_executor.py │ ├── test_subagent_timeout_config.py │ ├── test_suggestions_router.py │ ├── test_task_tool_core_logic.py │ ├── test_thread_data_middleware.py │ ├── test_title_generation.py │ ├── test_title_middleware_core_logic.py │ ├── test_token_usage.py │ ├── test_tool_error_handling_middleware.py │ ├── test_tool_search.py │ ├── test_tracing_config.py │ ├── test_uploads_middleware_core_logic.py │ └── test_uploads_router.py ├── config.example.yaml ├── deer-flow.code-workspace ├── docker/ │ ├── docker-compose-dev.yaml │ ├── docker-compose.yaml │ ├── nginx/ │ │ ├── nginx.conf │ │ └── nginx.local.conf │ └── provisioner/ │ ├── Dockerfile │ ├── README.md │ └── app.py ├── docs/ │ ├── CODE_CHANGE_SUMMARY_BY_FILE.md │ └── SKILL_NAME_CONFLICT_FIX.md ├── extensions_config.example.json ├── frontend/ │ ├── .gitignore │ ├── .npmrc │ ├── AGENTS.md │ ├── CLAUDE.md │ ├── Dockerfile │ ├── Makefile │ ├── README.md │ ├── components.json │ ├── eslint.config.js │ ├── next.config.js │ ├── package.json │ ├── pnpm-workspace.yaml │ ├── postcss.config.js │ ├── prettier.config.js │ ├── public/ │ │ └── demo/ │ │ └── threads/ │ │ ├── 21cfea46-34bd-4aa6-9e1f-3009452fbeb9/ │ │ │ └── thread.json │ │ ├── 3823e443-4e2b-4679-b496-a9506eae462b/ │ │ │ ├── thread.json │ │ │ └── user-data/ │ │ │ └── outputs/ │ │ │ └── fei-fei-li-podcast-timeline.md │ │ ├── 4f3e55ee-f853-43db-bfb3-7d1a411f03cb/ │ │ │ └── thread.json │ │ ├── 5aa47db1-d0cb-4eb9-aea5-3dac1b371c5a/ │ │ │ ├── thread.json │ │ │ └── user-data/ │ │ │ └── outputs/ │ │ │ └── jiangsu-football/ │ │ │ ├── css/ │ │ │ │ └── style.css │ │ │ ├── favicon.html │ │ │ ├── index.html │ │ │ └── js/ │ │ │ ├── data.js │ │ │ └── main.js │ │ ├── 7cfa5f8f-a2f8-47ad-acbd-da7137baf990/ │ │ │ ├── thread.json │ │ │ └── user-data/ │ │ │ └── outputs/ │ │ │ ├── index.html │ │ │ ├── script.js │ │ │ └── style.css │ │ ├── 7f9dc56c-e49c-4671-a3d2-c492ff4dce0c/ │ │ │ ├── thread.json │ │ │ └── user-data/ │ │ │ └── outputs/ │ │ │ └── leica-master-photography-article.md │ │ ├── 90040b36-7eba-4b97-ba89-02c3ad47a8b9/ │ │ │ └── thread.json │ │ ├── ad76c455-5bf9-4335-8517-fc03834ab828/ │ │ │ ├── thread.json │ │ │ └── user-data/ │ │ │ ├── outputs/ │ │ │ │ └── titanic_summary.txt │ │ │ └── uploads/ │ │ │ └── titanic.csv │ │ ├── b83fbb2a-4e36-4d82-9de0-7b2a02c2092a/ │ │ │ ├── thread.json │ │ │ └── user-data/ │ │ │ └── outputs/ │ │ │ └── index.html │ │ ├── c02bb4d5-4202-490e-ae8f-ff4864fc0d2e/ │ │ │ ├── thread.json │ │ │ └── user-data/ │ │ │ └── outputs/ │ │ │ ├── index.html │ │ │ ├── script.js │ │ │ └── styles.css │ │ ├── d3e5adaf-084c-4dd5-9d29-94f1d6bccd98/ │ │ │ ├── thread.json │ │ │ └── user-data/ │ │ │ └── outputs/ │ │ │ └── diana_hu_research.md │ │ ├── f4125791-0128-402a-8ca9-50e0947557e4/ │ │ │ ├── thread.json │ │ │ └── user-data/ │ │ │ └── outputs/ │ │ │ └── index.html │ │ └── fe3f7974-1bcb-4a01-a950-79673baafefd/ │ │ ├── thread.json │ │ └── user-data/ │ │ └── outputs/ │ │ ├── index.html │ │ └── research_deerflow_20260201.md │ ├── scripts/ │ │ └── save-demo.js │ ├── src/ │ │ ├── app/ │ │ │ ├── api/ │ │ │ │ └── auth/ │ │ │ │ └── [...all]/ │ │ │ │ └── route.ts │ │ │ ├── layout.tsx │ │ │ ├── mock/ │ │ │ │ └── api/ │ │ │ │ ├── mcp/ │ │ │ │ │ └── config/ │ │ │ │ │ └── route.ts │ │ │ │ ├── models/ │ │ │ │ │ └── route.ts │ │ │ │ ├── skills/ │ │ │ │ │ └── route.ts │ │ │ │ └── threads/ │ │ │ │ ├── [thread_id]/ │ │ │ │ │ ├── artifacts/ │ │ │ │ │ │ └── [[...artifact_path]]/ │ │ │ │ │ │ └── route.ts │ │ │ │ │ └── history/ │ │ │ │ │ └── route.ts │ │ │ │ └── search/ │ │ │ │ └── route.ts │ │ │ ├── page.tsx │ │ │ └── workspace/ │ │ │ ├── agents/ │ │ │ │ ├── [agent_name]/ │ │ │ │ │ └── chats/ │ │ │ │ │ └── [thread_id]/ │ │ │ │ │ ├── layout.tsx │ │ │ │ │ └── page.tsx │ │ │ │ ├── new/ │ │ │ │ │ └── page.tsx │ │ │ │ └── page.tsx │ │ │ ├── chats/ │ │ │ │ ├── [thread_id]/ │ │ │ │ │ ├── layout.tsx │ │ │ │ │ └── page.tsx │ │ │ │ └── page.tsx │ │ │ ├── layout.tsx │ │ │ └── page.tsx │ │ ├── components/ │ │ │ ├── ai-elements/ │ │ │ │ ├── artifact.tsx │ │ │ │ ├── canvas.tsx │ │ │ │ ├── chain-of-thought.tsx │ │ │ │ ├── checkpoint.tsx │ │ │ │ ├── code-block.tsx │ │ │ │ ├── connection.tsx │ │ │ │ ├── context.tsx │ │ │ │ ├── controls.tsx │ │ │ │ ├── conversation.tsx │ │ │ │ ├── edge.tsx │ │ │ │ ├── image.tsx │ │ │ │ ├── loader.tsx │ │ │ │ ├── message.tsx │ │ │ │ ├── model-selector.tsx │ │ │ │ ├── node.tsx │ │ │ │ ├── open-in-chat.tsx │ │ │ │ ├── panel.tsx │ │ │ │ ├── plan.tsx │ │ │ │ ├── prompt-input.tsx │ │ │ │ ├── queue.tsx │ │ │ │ ├── reasoning.tsx │ │ │ │ ├── shimmer.tsx │ │ │ │ ├── sources.tsx │ │ │ │ ├── suggestion.tsx │ │ │ │ ├── task.tsx │ │ │ │ ├── toolbar.tsx │ │ │ │ └── web-preview.tsx │ │ │ ├── landing/ │ │ │ │ ├── footer.tsx │ │ │ │ ├── header.tsx │ │ │ │ ├── hero.tsx │ │ │ │ ├── progressive-skills-animation.tsx │ │ │ │ ├── section.tsx │ │ │ │ └── sections/ │ │ │ │ ├── case-study-section.tsx │ │ │ │ ├── community-section.tsx │ │ │ │ ├── sandbox-section.tsx │ │ │ │ ├── skills-section.tsx │ │ │ │ └── whats-new-section.tsx │ │ │ ├── theme-provider.tsx │ │ │ ├── ui/ │ │ │ │ ├── alert.tsx │ │ │ │ ├── aurora-text.tsx │ │ │ │ ├── avatar.tsx │ │ │ │ ├── badge.tsx │ │ │ │ ├── breadcrumb.tsx │ │ │ │ ├── button-group.tsx │ │ │ │ ├── button.tsx │ │ │ │ ├── card.tsx │ │ │ │ ├── carousel.tsx │ │ │ │ ├── collapsible.tsx │ │ │ │ ├── command.tsx │ │ │ │ ├── confetti-button.tsx │ │ │ │ ├── dialog.tsx │ │ │ │ ├── dropdown-menu.tsx │ │ │ │ ├── empty.tsx │ │ │ │ ├── flickering-grid.tsx │ │ │ │ ├── galaxy.css │ │ │ │ ├── galaxy.jsx │ │ │ │ ├── hover-card.tsx │ │ │ │ ├── input-group.tsx │ │ │ │ ├── input.tsx │ │ │ │ ├── item.tsx │ │ │ │ ├── magic-bento.css │ │ │ │ ├── magic-bento.tsx │ │ │ │ ├── number-ticker.tsx │ │ │ │ ├── progress.tsx │ │ │ │ ├── resizable.tsx │ │ │ │ ├── scroll-area.tsx │ │ │ │ ├── select.tsx │ │ │ │ ├── separator.tsx │ │ │ │ ├── sheet.tsx │ │ │ │ ├── shine-border.tsx │ │ │ │ ├── sidebar.tsx │ │ │ │ ├── skeleton.tsx │ │ │ │ ├── sonner.tsx │ │ │ │ ├── spotlight-card.css │ │ │ │ ├── spotlight-card.tsx │ │ │ │ ├── switch.tsx │ │ │ │ ├── tabs.tsx │ │ │ │ ├── terminal.tsx │ │ │ │ ├── textarea.tsx │ │ │ │ ├── toggle-group.tsx │ │ │ │ ├── toggle.tsx │ │ │ │ ├── tooltip.tsx │ │ │ │ └── word-rotate.tsx │ │ │ └── workspace/ │ │ │ ├── agent-welcome.tsx │ │ │ ├── agents/ │ │ │ │ ├── agent-card.tsx │ │ │ │ └── agent-gallery.tsx │ │ │ ├── artifacts/ │ │ │ │ ├── artifact-file-detail.tsx │ │ │ │ ├── artifact-file-list.tsx │ │ │ │ ├── artifact-trigger.tsx │ │ │ │ ├── context.tsx │ │ │ │ └── index.ts │ │ │ ├── chats/ │ │ │ │ ├── chat-box.tsx │ │ │ │ ├── index.ts │ │ │ │ ├── use-chat-mode.ts │ │ │ │ └── use-thread-chat.ts │ │ │ ├── citations/ │ │ │ │ ├── artifact-link.tsx │ │ │ │ └── citation-link.tsx │ │ │ ├── code-editor.tsx │ │ │ ├── copy-button.tsx │ │ │ ├── export-trigger.tsx │ │ │ ├── flip-display.tsx │ │ │ ├── github-icon.tsx │ │ │ ├── input-box.tsx │ │ │ ├── messages/ │ │ │ │ ├── context.ts │ │ │ │ ├── index.ts │ │ │ │ ├── markdown-content.tsx │ │ │ │ ├── message-group.tsx │ │ │ │ ├── message-list-item.tsx │ │ │ │ ├── message-list.tsx │ │ │ │ ├── skeleton.tsx │ │ │ │ └── subtask-card.tsx │ │ │ ├── mode-hover-guide.tsx │ │ │ ├── overscroll.tsx │ │ │ ├── recent-chat-list.tsx │ │ │ ├── settings/ │ │ │ │ ├── about-content.ts │ │ │ │ ├── about-settings-page.tsx │ │ │ │ ├── about.md │ │ │ │ ├── appearance-settings-page.tsx │ │ │ │ ├── index.ts │ │ │ │ ├── memory-settings-page.tsx │ │ │ │ ├── notification-settings-page.tsx │ │ │ │ ├── settings-dialog.tsx │ │ │ │ ├── settings-section.tsx │ │ │ │ ├── skill-settings-page.tsx │ │ │ │ └── tool-settings-page.tsx │ │ │ ├── streaming-indicator.tsx │ │ │ ├── thread-title.tsx │ │ │ ├── todo-list.tsx │ │ │ ├── tooltip.tsx │ │ │ ├── welcome.tsx │ │ │ ├── workspace-container.tsx │ │ │ ├── workspace-header.tsx │ │ │ ├── workspace-nav-chat-list.tsx │ │ │ ├── workspace-nav-menu.tsx │ │ │ └── workspace-sidebar.tsx │ │ ├── core/ │ │ │ ├── agents/ │ │ │ │ ├── api.ts │ │ │ │ ├── hooks.ts │ │ │ │ ├── index.ts │ │ │ │ └── types.ts │ │ │ ├── api/ │ │ │ │ ├── api-client.ts │ │ │ │ ├── index.ts │ │ │ │ ├── stream-mode.test.ts │ │ │ │ └── stream-mode.ts │ │ │ ├── artifacts/ │ │ │ │ ├── hooks.ts │ │ │ │ ├── index.ts │ │ │ │ ├── loader.ts │ │ │ │ └── utils.ts │ │ │ ├── config/ │ │ │ │ └── index.ts │ │ │ ├── i18n/ │ │ │ │ ├── context.tsx │ │ │ │ ├── cookies.ts │ │ │ │ ├── hooks.ts │ │ │ │ ├── index.ts │ │ │ │ ├── locale.ts │ │ │ │ ├── locales/ │ │ │ │ │ ├── en-US.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── types.ts │ │ │ │ │ └── zh-CN.ts │ │ │ │ └── server.ts │ │ │ ├── mcp/ │ │ │ │ ├── api.ts │ │ │ │ ├── hooks.ts │ │ │ │ ├── index.ts │ │ │ │ └── types.ts │ │ │ ├── memory/ │ │ │ │ ├── api.ts │ │ │ │ ├── hooks.ts │ │ │ │ ├── index.ts │ │ │ │ └── types.ts │ │ │ ├── messages/ │ │ │ │ └── utils.ts │ │ │ ├── models/ │ │ │ │ ├── api.ts │ │ │ │ ├── hooks.ts │ │ │ │ ├── index.ts │ │ │ │ └── types.ts │ │ │ ├── notification/ │ │ │ │ └── hooks.ts │ │ │ ├── rehype/ │ │ │ │ └── index.ts │ │ │ ├── settings/ │ │ │ │ ├── hooks.ts │ │ │ │ ├── index.ts │ │ │ │ └── local.ts │ │ │ ├── skills/ │ │ │ │ ├── api.ts │ │ │ │ ├── hooks.ts │ │ │ │ ├── index.ts │ │ │ │ └── type.ts │ │ │ ├── streamdown/ │ │ │ │ ├── index.ts │ │ │ │ └── plugins.ts │ │ │ ├── tasks/ │ │ │ │ ├── context.tsx │ │ │ │ ├── index.ts │ │ │ │ └── types.ts │ │ │ ├── threads/ │ │ │ │ ├── export.ts │ │ │ │ ├── hooks.ts │ │ │ │ ├── index.ts │ │ │ │ ├── types.ts │ │ │ │ └── utils.ts │ │ │ ├── todos/ │ │ │ │ ├── index.ts │ │ │ │ └── types.ts │ │ │ ├── tools/ │ │ │ │ └── utils.ts │ │ │ ├── uploads/ │ │ │ │ ├── api.ts │ │ │ │ ├── hooks.ts │ │ │ │ └── index.ts │ │ │ └── utils/ │ │ │ ├── datetime.ts │ │ │ ├── files.tsx │ │ │ ├── json.ts │ │ │ ├── markdown.ts │ │ │ └── uuid.ts │ │ ├── env.js │ │ ├── hooks/ │ │ │ └── use-mobile.ts │ │ ├── lib/ │ │ │ └── utils.ts │ │ ├── server/ │ │ │ └── better-auth/ │ │ │ ├── client.ts │ │ │ ├── config.ts │ │ │ ├── index.ts │ │ │ └── server.ts │ │ ├── styles/ │ │ │ └── globals.css │ │ └── typings/ │ │ └── md.d.ts │ └── tsconfig.json ├── scripts/ │ ├── check.py │ ├── check.sh │ ├── cleanup-containers.sh │ ├── config-upgrade.sh │ ├── configure.py │ ├── deploy.sh │ ├── docker.sh │ ├── export_claude_code_oauth.py │ ├── serve.sh │ ├── start-daemon.sh │ ├── tool-error-degradation-detection.sh │ └── wait-for-port.sh └── skills/ └── public/ ├── bootstrap/ │ ├── SKILL.md │ ├── references/ │ │ └── conversation-guide.md │ └── templates/ │ └── SOUL.template.md ├── chart-visualization/ │ ├── SKILL.md │ ├── references/ │ │ ├── generate_area_chart.md │ │ ├── generate_bar_chart.md │ │ ├── generate_boxplot_chart.md │ │ ├── generate_column_chart.md │ │ ├── generate_district_map.md │ │ ├── generate_dual_axes_chart.md │ │ ├── generate_fishbone_diagram.md │ │ ├── generate_flow_diagram.md │ │ ├── generate_funnel_chart.md │ │ ├── generate_histogram_chart.md │ │ ├── generate_line_chart.md │ │ ├── generate_liquid_chart.md │ │ ├── generate_mind_map.md │ │ ├── generate_network_graph.md │ │ ├── generate_organization_chart.md │ │ ├── generate_path_map.md │ │ ├── generate_pie_chart.md │ │ ├── generate_pin_map.md │ │ ├── generate_radar_chart.md │ │ ├── generate_sankey_chart.md │ │ ├── generate_scatter_chart.md │ │ ├── generate_spreadsheet.md │ │ ├── generate_treemap_chart.md │ │ ├── generate_venn_chart.md │ │ ├── generate_violin_chart.md │ │ └── generate_word_cloud_chart.md │ └── scripts/ │ └── generate.js ├── claude-to-deerflow/ │ ├── SKILL.md │ └── scripts/ │ ├── chat.sh │ └── status.sh ├── consulting-analysis/ │ └── SKILL.md ├── data-analysis/ │ ├── SKILL.md │ └── scripts/ │ └── analyze.py ├── deep-research/ │ └── SKILL.md ├── find-skills/ │ ├── SKILL.md │ └── scripts/ │ └── install-skill.sh ├── frontend-design/ │ ├── LICENSE.txt │ └── SKILL.md ├── github-deep-research/ │ ├── SKILL.md │ ├── assets/ │ │ └── report_template.md │ └── scripts/ │ └── github_api.py ├── image-generation/ │ ├── SKILL.md │ ├── scripts/ │ │ └── generate.py │ └── templates/ │ └── doraemon.md ├── podcast-generation/ │ ├── SKILL.md │ ├── scripts/ │ │ └── generate.py │ └── templates/ │ └── tech-explainer.md ├── ppt-generation/ │ ├── SKILL.md │ └── scripts/ │ └── generate.py ├── skill-creator/ │ ├── LICENSE.txt │ ├── SKILL.md │ ├── agents/ │ │ ├── analyzer.md │ │ ├── comparator.md │ │ └── grader.md │ ├── assets/ │ │ └── eval_review.html │ ├── eval-viewer/ │ │ ├── generate_review.py │ │ └── viewer.html │ ├── references/ │ │ ├── output-patterns.md │ │ ├── schemas.md │ │ └── workflows.md │ └── scripts/ │ ├── aggregate_benchmark.py │ ├── generate_report.py │ ├── improve_description.py │ ├── init_skill.py │ ├── package_skill.py │ ├── quick_validate.py │ ├── run_eval.py │ ├── run_loop.py │ └── utils.py ├── surprise-me/ │ └── SKILL.md ├── vercel-deploy-claimable/ │ ├── SKILL.md │ └── scripts/ │ └── deploy.sh ├── video-generation/ │ ├── SKILL.md │ └── scripts/ │ └── generate.py └── web-design-guidelines/ └── SKILL.md