gitextract__hhdux9u/ ├── .claude/ │ ├── SKILL.md │ └── references/ │ ├── adding-features.md │ ├── advanced-patterns.md │ ├── api-reference.md │ ├── architecture.md │ ├── components.md │ ├── config-reference.md │ ├── deep-research.md │ ├── flows.md │ ├── mcp.md │ ├── multi-agents.md │ ├── prompts.md │ └── retrievers.md ├── .cursorignore ├── .dockerignore ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ └── feature_request.md │ ├── dependabot.yml │ └── workflows/ │ ├── build.yml │ ├── deploy.yml │ └── docker-build.yml ├── .gitignore ├── .python-version ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── Dockerfile ├── Dockerfile.fullstack ├── LICENSE ├── Procfile ├── README-ja_JP.md ├── README-ko_KR.md ├── README-zh_CN.md ├── README.md ├── backend/ │ ├── Dockerfile │ ├── Procfile │ ├── __init__.py │ ├── chat/ │ │ ├── __init__.py │ │ └── chat.py │ ├── memory/ │ │ ├── __init__.py │ │ ├── draft.py │ │ └── research.py │ ├── report_type/ │ │ ├── __init__.py │ │ ├── basic_report/ │ │ │ ├── __init__.py │ │ │ └── basic_report.py │ │ ├── deep_research/ │ │ │ ├── README.md │ │ │ ├── __init__.py │ │ │ ├── example.py │ │ │ └── main.py │ │ └── detailed_report/ │ │ ├── README.md │ │ ├── __init__.py │ │ └── detailed_report.py │ ├── requirements.txt │ ├── run_server.py │ ├── runtime.txt │ ├── server/ │ │ ├── __init__.py │ │ ├── app.py │ │ ├── logging_config.py │ │ ├── multi_agent_runner.py │ │ ├── report_store.py │ │ ├── server_utils.py │ │ └── websocket_manager.py │ ├── styles/ │ │ └── pdf_styles.css │ └── utils.py ├── citation.cff ├── cli.py ├── docker-compose.yml ├── docs/ │ ├── CNAME │ ├── README.md │ ├── babel.config.js │ ├── blog/ │ │ ├── 2023-09-22-gpt-researcher/ │ │ │ └── index.md │ │ ├── 2023-11-12-openai-assistant/ │ │ │ └── index.md │ │ ├── 2024-05-19-gptr-langgraph/ │ │ │ └── index.md │ │ ├── 2024-09-7-hybrid-research/ │ │ │ └── index.md │ │ ├── 2025-02-26-deep-research/ │ │ │ └── index.md │ │ ├── 2025-03-10-stepping-into-the-story/ │ │ │ └── index.md │ │ └── authors.yml │ ├── discord-bot/ │ │ ├── Dockerfile │ │ ├── Dockerfile.dev │ │ ├── commands/ │ │ │ └── ask.js │ │ ├── deploy-commands.js │ │ ├── gptr-webhook.js │ │ ├── index.js │ │ ├── package.json │ │ └── server.js │ ├── docs/ │ │ ├── contribute.md │ │ ├── examples/ │ │ │ ├── custom_prompt.py │ │ │ ├── detailed_report.md │ │ │ ├── examples.ipynb │ │ │ ├── examples.md │ │ │ ├── hybrid_research.md │ │ │ ├── pip-run.ipynb │ │ │ ├── sample_report.py │ │ │ └── sample_sources_only.py │ │ ├── faq.md │ │ ├── gpt-researcher/ │ │ │ ├── context/ │ │ │ │ ├── azure-storage.md │ │ │ │ ├── data-ingestion.md │ │ │ │ ├── filtering-by-domain.md │ │ │ │ ├── local-docs.md │ │ │ │ ├── tailored-research.md │ │ │ │ └── vector-stores.md │ │ │ ├── frontend/ │ │ │ │ ├── discord-bot.md │ │ │ │ ├── embed-script.md │ │ │ │ ├── introduction.md │ │ │ │ ├── nextjs-frontend.md │ │ │ │ ├── react-package.md │ │ │ │ ├── vanilla-js-frontend.md │ │ │ │ └── visualizing-websockets.md │ │ │ ├── getting-started/ │ │ │ │ ├── cli.md │ │ │ │ ├── getting-started-with-docker.md │ │ │ │ ├── getting-started.md │ │ │ │ ├── how-to-choose.md │ │ │ │ ├── introduction.md │ │ │ │ └── linux-deployment.md │ │ │ ├── gptr/ │ │ │ │ ├── ai-development.md │ │ │ │ ├── automated-tests.md │ │ │ │ ├── claude-skill.md │ │ │ │ ├── config.md │ │ │ │ ├── deep_research.md │ │ │ │ ├── example.md │ │ │ │ ├── image_generation.md │ │ │ │ ├── npm-package.md │ │ │ │ ├── pip-package.md │ │ │ │ ├── querying-the-backend.md │ │ │ │ ├── scraping.md │ │ │ │ └── troubleshooting.md │ │ │ ├── handling-logs/ │ │ │ │ ├── all-about-logs.md │ │ │ │ ├── langsmith-logs.md │ │ │ │ └── simple-logs-example.md │ │ │ ├── llms/ │ │ │ │ ├── llms.md │ │ │ │ ├── running-with-azure.md │ │ │ │ ├── running-with-ollama.md │ │ │ │ ├── supported-llms.md │ │ │ │ └── testing-your-llm.md │ │ │ ├── mcp-server/ │ │ │ │ ├── advanced-usage.md │ │ │ │ ├── claude-integration.md │ │ │ │ └── getting-started.md │ │ │ ├── multi_agents/ │ │ │ │ ├── ag2.md │ │ │ │ └── langgraph.md │ │ │ ├── retrievers/ │ │ │ │ └── mcp-configs.mdx │ │ │ └── search-engines/ │ │ │ ├── search-engines.md │ │ │ └── test-your-retriever.md │ │ ├── proposals/ │ │ │ ├── adaptive-deep-research.md │ │ │ ├── high-quality-content-scraping-architecture.md │ │ │ ├── local-server-deployment-guide.md │ │ │ └── social-media-data-acquisition.md │ │ ├── reference/ │ │ │ ├── config/ │ │ │ │ ├── config.md │ │ │ │ └── singleton.md │ │ │ ├── processing/ │ │ │ │ ├── html.md │ │ │ │ └── text.md │ │ │ └── sidebar.json │ │ ├── roadmap.md │ │ └── welcome.md │ ├── docusaurus.config.js │ ├── npm/ │ │ ├── Readme.md │ │ ├── index.js │ │ └── package.json │ ├── package.json │ ├── pydoc-markdown.yml │ ├── sidebars.js │ ├── src/ │ │ ├── components/ │ │ │ ├── HomepageFeatures.js │ │ │ └── HomepageFeatures.module.css │ │ ├── css/ │ │ │ └── custom.css │ │ └── pages/ │ │ ├── index.js │ │ └── index.module.css │ └── static/ │ ├── .nojekyll │ └── CNAME ├── evals/ │ ├── README.md │ ├── __init__.py │ ├── hallucination_eval/ │ │ ├── evaluate.py │ │ ├── inputs/ │ │ │ └── search_queries.jsonl │ │ ├── requirements.txt │ │ ├── results/ │ │ │ ├── aggregate_results.json │ │ │ └── evaluation_records.jsonl │ │ └── run_eval.py │ └── simple_evals/ │ ├── .gitignore │ ├── __init__.py │ ├── logs/ │ │ ├── .gitkeep │ │ ├── README.md │ │ └── SimpleQA Eval 100 Problems 2-22-25.txt │ ├── problems/ │ │ └── Simple QA Test Set.csv │ ├── requirements.txt │ ├── run_eval.py │ └── simpleqa_eval.py ├── frontend/ │ ├── README.md │ ├── index.html │ ├── nextjs/ │ │ ├── .babelrc.build.json │ │ ├── .dockerignore │ │ ├── .eslintrc.json │ │ ├── .example.env │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── .python-version │ │ ├── Dockerfile │ │ ├── Dockerfile.dev │ │ ├── README.md │ │ ├── actions/ │ │ │ └── apiActions.ts │ │ ├── app/ │ │ │ ├── api/ │ │ │ │ ├── chat/ │ │ │ │ │ └── route.ts │ │ │ │ └── reports/ │ │ │ │ ├── [id]/ │ │ │ │ │ ├── chat/ │ │ │ │ │ │ └── route.ts │ │ │ │ │ └── route.ts │ │ │ │ └── route.ts │ │ │ ├── globals.css │ │ │ ├── layout.tsx │ │ │ ├── page.tsx │ │ │ └── research/ │ │ │ └── [id]/ │ │ │ └── page.tsx │ │ ├── components/ │ │ │ ├── Footer.tsx │ │ │ ├── Header.tsx │ │ │ ├── Hero.tsx │ │ │ ├── HumanFeedback.tsx │ │ │ ├── Images/ │ │ │ │ ├── ImageModal.tsx │ │ │ │ └── ImagesAlbum.tsx │ │ │ ├── Langgraph/ │ │ │ │ └── Langgraph.js │ │ │ ├── LoadingDots.tsx │ │ │ ├── ResearchBlocks/ │ │ │ │ ├── AccessReport.tsx │ │ │ │ ├── ChatInterface.tsx │ │ │ │ ├── ChatResponse.tsx │ │ │ │ ├── ImageSection.tsx │ │ │ │ ├── LogsSection.tsx │ │ │ │ ├── Question.tsx │ │ │ │ ├── Report.tsx │ │ │ │ ├── Sources.tsx │ │ │ │ └── elements/ │ │ │ │ ├── ChatInput.tsx │ │ │ │ ├── InputArea.tsx │ │ │ │ ├── LogMessage.tsx │ │ │ │ ├── SourceCard.tsx │ │ │ │ └── SubQuestions.tsx │ │ │ ├── ResearchResults.tsx │ │ │ ├── ResearchSidebar.tsx │ │ │ ├── Settings/ │ │ │ │ ├── ChatBox.tsx │ │ │ │ ├── FileUpload.tsx │ │ │ │ ├── LayoutSelector.tsx │ │ │ │ ├── MCPSelector.tsx │ │ │ │ ├── Modal.tsx │ │ │ │ ├── Settings.css │ │ │ │ └── ToneSelector.tsx │ │ │ ├── SimilarTopics.tsx │ │ │ ├── Task/ │ │ │ │ ├── Accordion.tsx │ │ │ │ ├── AgentLogs.tsx │ │ │ │ ├── DomainFilter.tsx │ │ │ │ ├── Report.tsx │ │ │ │ └── ResearchForm.tsx │ │ │ ├── TypeAnimation.tsx │ │ │ ├── layouts/ │ │ │ │ ├── CopilotLayout.tsx │ │ │ │ ├── MobileLayout.tsx │ │ │ │ └── ResearchPageLayout.tsx │ │ │ ├── mobile/ │ │ │ │ ├── MobileChatPanel.tsx │ │ │ │ ├── MobileHomeScreen.tsx │ │ │ │ └── MobileResearchContent.tsx │ │ │ └── research/ │ │ │ ├── CopilotPanel.tsx │ │ │ ├── CopilotResearchContent.tsx │ │ │ ├── NotFoundContent.tsx │ │ │ ├── ResearchContent.tsx │ │ │ └── ResearchPanel.tsx │ │ ├── config/ │ │ │ └── task.ts │ │ ├── helpers/ │ │ │ ├── findDifferences.ts │ │ │ ├── getHost.ts │ │ │ └── markdownHelper.ts │ │ ├── hooks/ │ │ │ ├── ResearchHistoryContext.tsx │ │ │ ├── useAnalytics.ts │ │ │ ├── useResearchHistory.ts │ │ │ ├── useScrollHandler.ts │ │ │ └── useWebSocket.ts │ │ ├── next.config.mjs │ │ ├── nginx/ │ │ │ └── default.conf │ │ ├── package.json │ │ ├── package.lib.json │ │ ├── postcss.config.mjs │ │ ├── public/ │ │ │ ├── embed.js │ │ │ ├── manifest.json │ │ │ ├── sw.js │ │ │ └── workbox-f1770938.js │ │ ├── rollup.config.js │ │ ├── src/ │ │ │ ├── GPTResearcher.tsx │ │ │ ├── index.css │ │ │ ├── index.d.ts │ │ │ ├── index.ts │ │ │ └── utils/ │ │ │ └── imageTransformPlugin.js │ │ ├── styles/ │ │ │ └── markdown.css │ │ ├── tailwind.config.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.lib.json │ │ ├── types/ │ │ │ ├── data.ts │ │ │ └── react-ga4.d.ts │ │ └── utils/ │ │ ├── consolidateBlocks.ts │ │ ├── dataProcessing.ts │ │ └── getLayout.tsx │ ├── pdf_styles.css │ ├── scripts.js │ └── styles.css ├── gpt_researcher/ │ ├── __init__.py │ ├── actions/ │ │ ├── __init__.py │ │ ├── agent_creator.py │ │ ├── markdown_processing.py │ │ ├── query_processing.py │ │ ├── report_generation.py │ │ ├── retriever.py │ │ ├── utils.py │ │ └── web_scraping.py │ ├── agent.py │ ├── config/ │ │ ├── __init__.py │ │ ├── config.py │ │ └── variables/ │ │ ├── __init__.py │ │ ├── base.py │ │ ├── default.py │ │ └── test_local.json │ ├── context/ │ │ ├── __init__.py │ │ ├── compression.py │ │ └── retriever.py │ ├── document/ │ │ ├── __init__.py │ │ ├── azure_document_loader.py │ │ ├── document.py │ │ ├── langchain_document.py │ │ └── online_document.py │ ├── llm_provider/ │ │ ├── __init__.py │ │ ├── generic/ │ │ │ ├── __init__.py │ │ │ └── base.py │ │ └── image/ │ │ ├── __init__.py │ │ └── image_generator.py │ ├── mcp/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── client.py │ │ ├── research.py │ │ ├── streaming.py │ │ └── tool_selector.py │ ├── memory/ │ │ ├── __init__.py │ │ └── embeddings.py │ ├── prompts.py │ ├── retrievers/ │ │ ├── __init__.py │ │ ├── arxiv/ │ │ │ ├── __init__.py │ │ │ └── arxiv.py │ │ ├── bing/ │ │ │ ├── __init__.py │ │ │ └── bing.py │ │ ├── bocha/ │ │ │ ├── __init__.py │ │ │ └── bocha.py │ │ ├── custom/ │ │ │ ├── __init__.py │ │ │ └── custom.py │ │ ├── duckduckgo/ │ │ │ ├── __init__.py │ │ │ └── duckduckgo.py │ │ ├── exa/ │ │ │ ├── __init__.py │ │ │ └── exa.py │ │ ├── google/ │ │ │ ├── __init__.py │ │ │ └── google.py │ │ ├── mcp/ │ │ │ ├── __init__.py │ │ │ └── retriever.py │ │ ├── pubmed_central/ │ │ │ ├── __init__.py │ │ │ └── pubmed_central.py │ │ ├── searchapi/ │ │ │ ├── __init__.py │ │ │ └── searchapi.py │ │ ├── searx/ │ │ │ ├── __init__.py │ │ │ └── searx.py │ │ ├── semantic_scholar/ │ │ │ ├── __init__.py │ │ │ └── semantic_scholar.py │ │ ├── serpapi/ │ │ │ ├── __init__.py │ │ │ └── serpapi.py │ │ ├── serper/ │ │ │ ├── __init__.py │ │ │ └── serper.py │ │ ├── tavily/ │ │ │ ├── __init__.py │ │ │ └── tavily_search.py │ │ └── utils.py │ ├── scraper/ │ │ ├── __init__.py │ │ ├── arxiv/ │ │ │ ├── __init__.py │ │ │ └── arxiv.py │ │ ├── beautiful_soup/ │ │ │ ├── __init__.py │ │ │ └── beautiful_soup.py │ │ ├── browser/ │ │ │ ├── __init__.py │ │ │ ├── browser.py │ │ │ ├── js/ │ │ │ │ └── overlay.js │ │ │ ├── nodriver_scraper.py │ │ │ └── processing/ │ │ │ ├── __init__.py │ │ │ ├── html.py │ │ │ └── scrape_skills.py │ │ ├── firecrawl/ │ │ │ ├── __init__.py │ │ │ └── firecrawl.py │ │ ├── pymupdf/ │ │ │ ├── __init__.py │ │ │ └── pymupdf.py │ │ ├── scraper.py │ │ ├── tavily_extract/ │ │ │ ├── __init__.py │ │ │ └── tavily_extract.py │ │ ├── utils.py │ │ └── web_base_loader/ │ │ ├── __init__.py │ │ └── web_base_loader.py │ ├── skills/ │ │ ├── __init__.py │ │ ├── browser.py │ │ ├── context_manager.py │ │ ├── curator.py │ │ ├── deep_research.py │ │ ├── image_generator.py │ │ ├── researcher.py │ │ └── writer.py │ ├── utils/ │ │ ├── __init__.py │ │ ├── costs.py │ │ ├── enum.py │ │ ├── llm.py │ │ ├── logger.py │ │ ├── logging_config.py │ │ ├── rate_limiter.py │ │ ├── tools.py │ │ ├── validators.py │ │ └── workers.py │ └── vector_store/ │ ├── __init__.py │ └── vector_store.py ├── json_schema_generator.py ├── langgraph.json ├── main.py ├── mcp-server/ │ └── README.md ├── multi_agents/ │ ├── README.md │ ├── __init__.py │ ├── agent.py │ ├── agents/ │ │ ├── __init__.py │ │ ├── editor.py │ │ ├── human.py │ │ ├── orchestrator.py │ │ ├── publisher.py │ │ ├── researcher.py │ │ ├── reviewer.py │ │ ├── reviser.py │ │ ├── utils/ │ │ │ ├── __init__.py │ │ │ ├── file_formats.py │ │ │ ├── llms.py │ │ │ ├── pdf_styles.css │ │ │ ├── utils.py │ │ │ └── views.py │ │ └── writer.py │ ├── langgraph.json │ ├── main.py │ ├── memory/ │ │ ├── __init__.py │ │ ├── draft.py │ │ └── research.py │ ├── package.json │ ├── requirements.txt │ └── task.json ├── multi_agents_ag2/ │ ├── README.md │ ├── __init__.py │ ├── agents/ │ │ ├── __init__.py │ │ ├── editor.py │ │ └── orchestrator.py │ ├── main.py │ ├── requirements.txt │ └── task.json ├── poetry.toml ├── pyproject.toml ├── requirements.txt ├── setup.py ├── terraform/ │ ├── ecr-setup/ │ │ ├── main.tf │ │ ├── outputs.tf │ │ ├── variables.tf │ │ └── versions.tf │ ├── github-actions-setup/ │ │ ├── main.tf │ │ ├── outputs.tf │ │ ├── variables.tf │ │ └── versions.tf │ ├── main.tf │ ├── outputs.tf │ ├── variables.tf │ └── versions.tf └── tests/ ├── __init__.py ├── documents-report-source.py ├── gptr-logs-handler.py ├── report-types.py ├── research_test.py ├── test-loaders.py ├── test-openai-llm.py ├── test-your-embeddings.py ├── test-your-llm.py ├── test-your-retriever.py ├── test_logging.py ├── test_logging_output.py ├── test_logs.py ├── test_mcp.py ├── test_quick_search.py ├── test_researcher_logging.py ├── test_security_fix.py └── vector-store.py