gitextract_3wtguj4a/ ├── .dockerignore ├── .gitattributes ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.yml │ │ ├── config.yml │ │ ├── feature_request.yml │ │ └── question.yml │ ├── dependabot.yml │ ├── pull_request_template.md │ └── workflows/ │ ├── linting.yaml │ └── pypi-publish.yml ├── .gitignore ├── .pre-commit-config.yaml ├── CHANGELOG.md ├── LICENSE ├── MANIFEST.in ├── README.md ├── README_ZH.md ├── __init__.py ├── cli/ │ ├── __init__.py │ ├── cli_app.py │ ├── cli_interface.py │ ├── cli_launcher.py │ ├── main_cli.py │ └── workflows/ │ ├── __init__.py │ └── cli_workflow_adapter.py ├── config/ │ ├── mcp_tool_definitions.py │ └── mcp_tool_definitions_index.py ├── deepcode.py ├── deepcode_docker/ │ ├── .dockerignore │ ├── Dockerfile │ ├── docker-compose.yml │ ├── docker-entrypoint.sh │ └── run_docker.sh ├── mcp_agent.config.yaml ├── mcp_agent.secrets.yaml.example ├── nanobot/ │ ├── .dockerignore │ ├── .gitignore │ ├── COMMUNICATION.md │ ├── Dockerfile │ ├── LICENSE │ ├── README.md │ ├── SECURITY.md │ ├── bridge/ │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.ts │ │ │ ├── server.ts │ │ │ ├── types.d.ts │ │ │ └── whatsapp.ts │ │ └── tsconfig.json │ ├── core_agent_lines.sh │ ├── nanobot/ │ │ ├── __init__.py │ │ ├── __main__.py │ │ ├── agent/ │ │ │ ├── __init__.py │ │ │ ├── context.py │ │ │ ├── loop.py │ │ │ ├── memory.py │ │ │ ├── skills.py │ │ │ ├── subagent.py │ │ │ └── tools/ │ │ │ ├── __init__.py │ │ │ ├── base.py │ │ │ ├── cron.py │ │ │ ├── deepcode.py │ │ │ ├── filesystem.py │ │ │ ├── message.py │ │ │ ├── registry.py │ │ │ ├── shell.py │ │ │ ├── spawn.py │ │ │ └── web.py │ │ ├── bus/ │ │ │ ├── __init__.py │ │ │ ├── events.py │ │ │ └── queue.py │ │ ├── channels/ │ │ │ ├── __init__.py │ │ │ ├── base.py │ │ │ ├── dingtalk.py │ │ │ ├── discord.py │ │ │ ├── email.py │ │ │ ├── feishu.py │ │ │ ├── manager.py │ │ │ ├── qq.py │ │ │ ├── slack.py │ │ │ ├── telegram.py │ │ │ └── whatsapp.py │ │ ├── cli/ │ │ │ ├── __init__.py │ │ │ └── commands.py │ │ ├── config/ │ │ │ ├── __init__.py │ │ │ ├── loader.py │ │ │ └── schema.py │ │ ├── cron/ │ │ │ ├── __init__.py │ │ │ ├── service.py │ │ │ └── types.py │ │ ├── heartbeat/ │ │ │ ├── __init__.py │ │ │ └── service.py │ │ ├── providers/ │ │ │ ├── __init__.py │ │ │ ├── base.py │ │ │ ├── litellm_provider.py │ │ │ ├── registry.py │ │ │ └── transcription.py │ │ ├── session/ │ │ │ ├── __init__.py │ │ │ └── manager.py │ │ ├── skills/ │ │ │ ├── README.md │ │ │ ├── cron/ │ │ │ │ └── SKILL.md │ │ │ ├── deepcode/ │ │ │ │ └── SKILL.md │ │ │ ├── github/ │ │ │ │ └── SKILL.md │ │ │ ├── skill-creator/ │ │ │ │ └── SKILL.md │ │ │ ├── summarize/ │ │ │ │ └── SKILL.md │ │ │ ├── tmux/ │ │ │ │ ├── SKILL.md │ │ │ │ └── scripts/ │ │ │ │ ├── find-sessions.sh │ │ │ │ └── wait-for-text.sh │ │ │ └── weather/ │ │ │ └── SKILL.md │ │ └── utils/ │ │ ├── __init__.py │ │ └── helpers.py │ ├── pyproject.toml │ ├── run_nanobot.sh │ └── workspace/ │ ├── AGENTS.md │ ├── HEARTBEAT.md │ ├── SOUL.md │ ├── TOOLS.md │ ├── USER.md │ └── memory/ │ └── MEMORY.md ├── nanobot_config.json.example ├── new_ui/ │ ├── README.md │ ├── backend/ │ │ ├── __init__.py │ │ ├── api/ │ │ │ ├── __init__.py │ │ │ ├── routes/ │ │ │ │ ├── __init__.py │ │ │ │ ├── config.py │ │ │ │ ├── files.py │ │ │ │ ├── requirements.py │ │ │ │ └── workflows.py │ │ │ └── websockets/ │ │ │ ├── __init__.py │ │ │ ├── code_stream_ws.py │ │ │ ├── logs_ws.py │ │ │ └── workflow_ws.py │ │ ├── app_utils/ │ │ │ └── __init__.py │ │ ├── main.py │ │ ├── models/ │ │ │ ├── __init__.py │ │ │ ├── requests.py │ │ │ └── responses.py │ │ ├── services/ │ │ │ ├── __init__.py │ │ │ ├── requirement_service.py │ │ │ ├── session_service.py │ │ │ └── workflow_service.py │ │ └── settings.py │ ├── frontend/ │ │ ├── index.html │ │ ├── package.json │ │ ├── postcss.config.js │ │ ├── src/ │ │ │ ├── App.tsx │ │ │ ├── components/ │ │ │ │ ├── common/ │ │ │ │ │ ├── Button.tsx │ │ │ │ │ ├── Card.tsx │ │ │ │ │ ├── ConfirmDialog.tsx │ │ │ │ │ ├── GuardedLink.tsx │ │ │ │ │ ├── TaskRecoveryBanner.tsx │ │ │ │ │ ├── Toaster.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── input/ │ │ │ │ │ ├── ChatInput.tsx │ │ │ │ │ ├── FileUploader.tsx │ │ │ │ │ ├── UrlInput.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── interaction/ │ │ │ │ │ ├── InlineChatInteraction.tsx │ │ │ │ │ ├── InteractionPanel.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── layout/ │ │ │ │ │ ├── Header.tsx │ │ │ │ │ ├── Layout.tsx │ │ │ │ │ ├── Sidebar.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── results/ │ │ │ │ │ ├── CodePreview.tsx │ │ │ │ │ ├── FileTree.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── streaming/ │ │ │ │ │ ├── ActivityLogViewer.tsx │ │ │ │ │ ├── CodeStreamViewer.tsx │ │ │ │ │ ├── LogViewer.tsx │ │ │ │ │ ├── ProgressTracker.tsx │ │ │ │ │ └── index.ts │ │ │ │ └── workflow/ │ │ │ │ ├── WorkflowCanvas.tsx │ │ │ │ ├── WorkflowNode.tsx │ │ │ │ └── index.ts │ │ │ ├── hooks/ │ │ │ │ ├── index.ts │ │ │ │ ├── useAdaptiveLayout.ts │ │ │ │ ├── useNavigationGuard.ts │ │ │ │ ├── useStreaming.ts │ │ │ │ ├── useTaskRecovery.ts │ │ │ │ └── useWebSocket.ts │ │ │ ├── index.css │ │ │ ├── main.tsx │ │ │ ├── pages/ │ │ │ │ ├── ChatPlanningPage.tsx │ │ │ │ ├── HomePage.tsx │ │ │ │ ├── PaperToCodePage.tsx │ │ │ │ ├── SettingsPage.tsx │ │ │ │ ├── WorkflowEditorPage.tsx │ │ │ │ └── index.ts │ │ │ ├── services/ │ │ │ │ └── api.ts │ │ │ ├── stores/ │ │ │ │ ├── index.ts │ │ │ │ ├── sessionStore.ts │ │ │ │ └── workflowStore.ts │ │ │ └── types/ │ │ │ ├── api.ts │ │ │ ├── common.ts │ │ │ ├── index.ts │ │ │ └── workflow.ts │ │ ├── tailwind.config.js │ │ ├── tsconfig.json │ │ ├── tsconfig.node.json │ │ └── vite.config.ts │ └── scripts/ │ ├── build.sh │ └── start_dev.sh ├── prompts/ │ └── code_prompts.py ├── requirements.txt ├── run.bat ├── run.sh ├── schema/ │ └── mcp-agent.config.schema.json ├── setup.py ├── tools/ │ ├── __init__.py │ ├── bocha_search_server.py │ ├── code_implementation_server.py │ ├── code_indexer.py │ ├── code_reference_indexer.py │ ├── command_executor.py │ ├── document_segmentation_server.py │ ├── git_command.py │ ├── indexer_config.yaml │ ├── pdf_converter.py │ ├── pdf_downloader.py │ └── pdf_utils.py ├── ui/ │ ├── __init__.py │ ├── app.py │ ├── components.py │ ├── handlers.py │ ├── layout.py │ ├── sidebar_feed.py │ ├── streamlit_app.py │ └── styles.py ├── utils/ │ ├── __init__.py │ ├── cli_interface.py │ ├── cross_platform_file_handler.py │ ├── dialogue_logger.py │ ├── file_processor.py │ ├── llm_utils.py │ ├── loop_detector.py │ ├── model_limits.py │ └── simple_llm_logger.py └── workflows/ ├── __init__.py ├── agent_orchestration_engine.py ├── agents/ │ ├── __init__.py │ ├── code_implementation_agent.py │ ├── document_segmentation_agent.py │ ├── memory_agent_concise.py │ ├── memory_agent_concise_index.py │ ├── memory_agent_concise_multi.py │ └── requirement_analysis_agent.py ├── code_implementation_workflow.py ├── code_implementation_workflow_index.py ├── codebase_index_workflow.py └── plugins/ ├── USAGE.md ├── __init__.py ├── base.py ├── integration.py ├── plan_review.py └── requirement_analysis.py