Coverage report: 93%

Files Functions Classes

coverage.py v7.13.5, created at 2026-04-14 23:55 +0000

    Statements   Branches   Total
File   coverage statements missing excluded   coverage branches partial   coverage
src / local_deep_research / __init__.py   100% 6 0 0   100% 0 0   100%
src / local_deep_research / __version__.py   100% 1 0 0   100% 0 0   100%
src / local_deep_research / advanced_search_system / __init__.py   100% 1 0 0   100% 0 0   100%
src / local_deep_research / advanced_search_system / candidate_exploration / __init__.py   100% 7 0 0   100% 0 0   100%
src / local_deep_research / advanced_search_system / candidate_exploration / adaptive_explorer.py   100% 129 0 0   100% 38 0   100%
src / local_deep_research / advanced_search_system / candidate_exploration / base_explorer.py   98% 130 2 0   95% 42 2   98%
src / local_deep_research / advanced_search_system / candidate_exploration / constraint_guided_explorer.py   99% 140 1 0   95% 60 3   98%
src / local_deep_research / advanced_search_system / candidate_exploration / diversity_explorer.py   95% 185 10 0   85% 88 5   92%
src / local_deep_research / advanced_search_system / candidate_exploration / parallel_explorer.py   100% 90 0 0   96% 24 1   99%
src / local_deep_research / advanced_search_system / candidate_exploration / progressive_explorer.py   100% 119 0 0   97% 64 2   99%
src / local_deep_research / advanced_search_system / candidates / __init__.py   100% 2 0 0   100% 0 0   100%
src / local_deep_research / advanced_search_system / candidates / base_candidate.py   100% 36 0 0   100% 14 0   100%
src / local_deep_research / advanced_search_system / constraint_checking / __init__.py   100% 8 0 0   100% 0 0   100%
src / local_deep_research / advanced_search_system / constraint_checking / base_constraint_checker.py   94% 31 2 0   100% 4 0   94%
src / local_deep_research / advanced_search_system / constraint_checking / constraint_checker.py   100% 55 0 0   100% 10 0   100%
src / local_deep_research / advanced_search_system / constraint_checking / dual_confidence_checker.py   91% 116 10 0   85% 34 5   90%
src / local_deep_research / advanced_search_system / constraint_checking / evidence_analyzer.py   91% 56 5 0   88% 8 1   91%
src / local_deep_research / advanced_search_system / constraint_checking / intelligent_constraint_relaxer.py   98% 167 4 0   94% 84 3   96%
src / local_deep_research / advanced_search_system / constraint_checking / rejection_engine.py   100% 30 0 0   100% 10 0   100%
src / local_deep_research / advanced_search_system / constraint_checking / strict_checker.py   94% 80 5 0   93% 28 2   94%
src / local_deep_research / advanced_search_system / constraint_checking / threshold_checker.py   100% 59 0 0   100% 16 0   100%
src / local_deep_research / advanced_search_system / constraints / __init__.py   100% 3 0 0   100% 0 0   100%
src / local_deep_research / advanced_search_system / constraints / base_constraint.py   100% 33 0 0   100% 12 0   100%
src / local_deep_research / advanced_search_system / constraints / constraint_analyzer.py   100% 46 0 0   100% 18 0   100%
src / local_deep_research / advanced_search_system / evidence / __init__.py   100% 4 0 0   100% 0 0   100%
src / local_deep_research / advanced_search_system / evidence / base_evidence.py   100% 27 0 0   100% 2 0   100%
src / local_deep_research / advanced_search_system / evidence / evaluator.py   100% 50 0 0   100% 14 0   100%
src / local_deep_research / advanced_search_system / evidence / requirements.py   100% 11 0 0   100% 0 0   100%
src / local_deep_research / advanced_search_system / filters / __init__.py   100% 2 0 0   100% 0 0   100%
src / local_deep_research / advanced_search_system / filters / base_filter.py   89% 9 1 0   100% 0 0   89%
src / local_deep_research / advanced_search_system / filters / cross_engine_filter.py   97% 78 2 0   100% 34 0   98%
src / local_deep_research / advanced_search_system / filters / followup_relevance_filter.py   100% 47 0 0   100% 14 0   100%
src / local_deep_research / advanced_search_system / filters / journal_reputation_filter.py   89% 120 13 0   81% 26 3   88%
src / local_deep_research / advanced_search_system / findings / base_findings.py   79% 19 4 0   100% 0 0   79%
src / local_deep_research / advanced_search_system / findings / repository.py   94% 189 12 0   94% 72 4   94%
src / local_deep_research / advanced_search_system / findings / topic.py   100% 93 0 0   88% 52 6   96%
src / local_deep_research / advanced_search_system / knowledge / __init__.py   100% 0 0 0   100% 0 0   100%
src / local_deep_research / advanced_search_system / knowledge / base_knowledge.py   86% 37 5 0   100% 6 0   88%
src / local_deep_research / advanced_search_system / knowledge / followup_context_manager.py   98% 107 2 0   95% 44 2   97%
src / local_deep_research / advanced_search_system / knowledge / standard_knowledge.py   100% 44 0 0   100% 6 0   100%
src / local_deep_research / advanced_search_system / query_generation / adaptive_query_generator.py   98% 155 3 0   93% 74 5   97%
src / local_deep_research / advanced_search_system / questions / __init__.py   100% 8 0 0   100% 0 0   100%
src / local_deep_research / advanced_search_system / questions / atomic_fact_question.py   100% 44 0 0   100% 24 0   100%
src / local_deep_research / advanced_search_system / questions / base_question.py   93% 14 1 0   100% 4 0   94%
src / local_deep_research / advanced_search_system / questions / browsecomp_question.py   98% 151 3 0   92% 106 9   95%
src / local_deep_research / advanced_search_system / questions / decomposition_question.py   96% 133 5 0   88% 88 11   93%
src / local_deep_research / advanced_search_system / questions / entity_aware_question.py   100% 48 0 0   94% 16 1   98%
src / local_deep_research / advanced_search_system / questions / flexible_browsecomp_question.py   100% 26 0 0   93% 14 1   98%
src / local_deep_research / advanced_search_system / questions / followup / __init__.py   100% 3 0 0   100% 0 0   100%
src / local_deep_research / advanced_search_system / questions / followup / base_followup_question.py   93% 14 1 0   100% 0 0   93%
src / local_deep_research / advanced_search_system / questions / followup / llm_followup_question.py   100% 11 0 0   100% 0 0   100%
src / local_deep_research / advanced_search_system / questions / followup / simple_followup_question.py   100% 7 0 0   100% 0 0   100%
src / local_deep_research / advanced_search_system / questions / news_question.py   100% 13 0 0   100% 2 0   100%
src / local_deep_research / advanced_search_system / questions / standard_question.py   100% 41 0 0   92% 12 1   98%
src / local_deep_research / advanced_search_system / repositories / __init__.py   0% 2 2 0   100% 0 0   0%
src / local_deep_research / advanced_search_system / search_optimization / cross_constraint_manager.py   95% 259 12 0   92% 106 5   94%
src / local_deep_research / advanced_search_system / source_management / diversity_manager.py   97% 238 6 0   94% 112 7   96%
src / local_deep_research / advanced_search_system / tools / __init__.py   100% 0 0 0   100% 0 0   100%
src / local_deep_research / advanced_search_system / tools / base_tool.py   97% 36 1 0   92% 12 1   96%
src / local_deep_research / api / __init__.py   100% 5 0 0   100% 0 0   100%
src / local_deep_research / api / benchmark_functions.py   100% 79 0 0   100% 28 0   100%
src / local_deep_research / api / client.py   97% 131 4 0   92% 50 4   96%
src / local_deep_research / api / research_functions.py   95% 227 12 0   86% 94 13   92%
src / local_deep_research / api / settings_utils.py   94% 152 9 0   92% 76 6   93%
src / local_deep_research / benchmarks / __init__.py   100% 6 0 0   100% 0 0   100%
src / local_deep_research / benchmarks / benchmark_functions.py   98% 131 3 0   91% 76 7   95%
src / local_deep_research / benchmarks / comparison / __init__.py   100% 3 0 0   100% 0 0   100%
src / local_deep_research / benchmarks / comparison / evaluator.py   91% 304 28 0   82% 82 5   89%
src / local_deep_research / benchmarks / comparison / results.py   100% 28 0 0   100% 6 0   100%
src / local_deep_research / benchmarks / datasets.py   0% 2 2 0   100% 0 0   0%
src / local_deep_research / benchmarks / datasets / __init__.py   83% 12 2 0   100% 0 0   83%
src / local_deep_research / benchmarks / datasets / base.py   91% 101 9 0   95% 22 1   92%
src / local_deep_research / benchmarks / datasets / browsecomp.py   96% 51 2 0   86% 14 2   94%
src / local_deep_research / benchmarks / datasets / custom_dataset_template.py   100% 25 0 0   100% 6 0   100%
src / local_deep_research / benchmarks / datasets / simpleqa.py   100% 25 0 0   100% 6 0   100%
src / local_deep_research / benchmarks / datasets / utils.py   87% 63 8 0   88% 16 2   87%
src / local_deep_research / benchmarks / datasets / xbench_deepsearch.py   96% 99 4 0   82% 22 4   93%
src / local_deep_research / benchmarks / efficiency / __init__.py   100% 3 0 0   100% 0 0   100%
src / local_deep_research / benchmarks / efficiency / resource_monitor.py   98% 130 3 0   100% 38 0   98%
src / local_deep_research / benchmarks / efficiency / speed_profiler.py   95% 85 4 0   80% 30 4   91%
src / local_deep_research / benchmarks / evaluators / __init__.py   100% 5 0 0   100% 0 0   100%
src / local_deep_research / benchmarks / evaluators / base.py   93% 15 1 0   100% 0 0   93%
src / local_deep_research / benchmarks / evaluators / browsecomp.py   100% 18 0 0   100% 0 0   100%
src / local_deep_research / benchmarks / evaluators / composite.py   100% 31 0 0   100% 6 0   100%
src / local_deep_research / benchmarks / evaluators / simpleqa.py   100% 69 0 0   100% 4 0   100%
src / local_deep_research / benchmarks / graders.py   90% 200 20 0   85% 62 7   89%
src / local_deep_research / benchmarks / metrics.py   0% 3 3 0   100% 0 0   0%
src / local_deep_research / benchmarks / metrics / __init__.py   100% 3 0 0   100% 0 0   100%
src / local_deep_research / benchmarks / metrics / calculation.py   99% 137 2 0   100% 38 0   99%
src / local_deep_research / benchmarks / metrics / reporting.py   100% 54 0 0   96% 26 1   99%
src / local_deep_research / benchmarks / models / __init__.py   0% 2 2 0   100% 0 0   0%
src / local_deep_research / benchmarks / optimization / __init__.py   100% 4 0 0   100% 0 0   100%
src / local_deep_research / benchmarks / optimization / api.py   100% 18 0 0   100% 0 0   100%
src / local_deep_research / benchmarks / optimization / metrics.py   100% 2 0 0   100% 0 0   100%
src / local_deep_research / benchmarks / optimization / optuna_optimizer.py   79% 357 74 0   74% 86 10   78%
src / local_deep_research / benchmarks / runners.py   100% 122 0 0   100% 42 0   100%
src / local_deep_research / benchmarks / templates.py   100% 3 0 0   100% 0 0   100%
src / local_deep_research / benchmarks / web_api / __init__.py   100% 3 0 0   100% 0 0   100%
src / local_deep_research / benchmarks / web_api / benchmark_routes.py   98% 352 8 0   90% 88 9   96%
src / local_deep_research / benchmarks / web_api / benchmark_service.py   96% 478 18 0   83% 128 22   93%
src / local_deep_research / citation_handler.py   100% 35 0 0   100% 10 0   100%
src / local_deep_research / citation_handlers / __init__.py   100% 5 0 0   100% 0 0   100%
src / local_deep_research / citation_handlers / base_citation_handler.py   96% 54 2 0   95% 20 1   96%
src / local_deep_research / citation_handlers / forced_answer_citation_handler.py   100% 52 0 0   100% 16 0   100%
src / local_deep_research / citation_handlers / precision_extraction_handler.py   99% 204 1 0   92% 84 7   97%
src / local_deep_research / citation_handlers / standard_citation_handler.py   100% 26 0 0   100% 4 0   100%
src / local_deep_research / config / __init__.py   100% 0 0 0   100% 0 0   100%
src / local_deep_research / config / constants.py   100% 2 0 0   100% 0 0   100%
src / local_deep_research / config / llm_config.py   97% 351 12 0   88% 132 16   94%
src / local_deep_research / config / paths.py   100% 71 0 0   100% 2 0   100%
src / local_deep_research / config / search_config.py   100% 27 0 0   90% 10 1   97%
src / local_deep_research / config / thread_settings.py   100% 52 0 0   100% 26 0   100%
src / local_deep_research / constants.py   100% 28 0 0   100% 2 0   100%
src / local_deep_research / content_fetcher / __init__.py   100% 3 0 0   100% 0 0   100%
src / local_deep_research / content_fetcher / fetcher.py   91% 129 11 0   93% 46 1   92%
src / local_deep_research / content_fetcher / url_classifier.py   98% 104 2 0   95% 64 3   97%
src / local_deep_research / database / alembic_runner.py   95% 88 4 0   82% 28 5   92%
src / local_deep_research / database / auth_db.py   97% 72 2 0   100% 12 0   98%
src / local_deep_research / database / backup / __init__.py   100% 3 0 0   100% 0 0   100%
src / local_deep_research / database / backup / backup_scheduler.py   100% 60 0 0   90% 10 1   99%
src / local_deep_research / database / backup / backup_service.py   88% 219 26 0   94% 50 3   89%
src / local_deep_research / database / credential_store_base.py   95% 41 2 0   100% 10 0   96%
src / local_deep_research / database / encrypted_db.py   91% 306 29 0   83% 66 7   89%
src / local_deep_research / database / initialize.py   92% 51 4 0   93% 14 1   92%
src / local_deep_research / database / library_init.py   100% 82 0 0   100% 10 0   100%
src / local_deep_research / database / models / __init__.py   100% 21 0 0   100% 0 0   100%
src / local_deep_research / database / models / active_research.py   94% 17 1 0   100% 0 0   94%
src / local_deep_research / database / models / auth.py   100% 18 0 0   100% 0 0   100%
src / local_deep_research / database / models / base.py   100% 2 0 0   100% 0 0   100%
src / local_deep_research / database / models / benchmark.py   100% 101 0 0   100% 0 0   100%
src / local_deep_research / database / models / cache.py   92% 49 4 0   75% 4 1   91%
src / local_deep_research / database / models / download_tracker.py   100% 47 0 0   100% 0 0   100%
src / local_deep_research / database / models / file_integrity.py   100% 39 0 0   100% 0 0   100%
src / local_deep_research / database / models / library.py   99% 306 3 0   100% 0 0   99%
src / local_deep_research / database / models / logs.py   92% 24 2 0   100% 0 0   92%
src / local_deep_research / database / models / metrics.py   96% 96 4 0   100% 0 0   96%
src / local_deep_research / database / models / news.py   99% 111 1 0   100% 0 0   99%
src / local_deep_research / database / models / providers.py   93% 14 1 0   100% 0 0   93%
src / local_deep_research / database / models / queue.py   100% 27 0 0   100% 0 0   100%
src / local_deep_research / database / models / queued_research.py   94% 16 1 0   100% 0 0   94%
src / local_deep_research / database / models / rate_limiting.py   93% 30 2 0   100% 0 0   93%
src / local_deep_research / database / models / reports.py   100% 53 0 0   100% 0 0   100%
src / local_deep_research / database / models / research.py   95% 129 7 0   100% 0 0   95%
src / local_deep_research / database / models / settings.py   95% 55 3 0   100% 0 0   95%
src / local_deep_research / database / models / user_base.py   100% 2 0 0   100% 0 0   100%
src / local_deep_research / database / models / user_news_search_history.py   86% 14 2 0   100% 0 0   86%
src / local_deep_research / database / pool_config.py   100% 2 0 0   100% 0 0   100%
src / local_deep_research / database / queue_service.py   100% 78 0 0   100% 14 0   100%
src / local_deep_research / database / session_context.py   93% 111 8 0   98% 46 1   94%
src / local_deep_research / database / session_passwords.py   100% 28 0 0   100% 2 0   100%
src / local_deep_research / database / sqlcipher_compat.py   100% 6 0 0   100% 0 0   100%
src / local_deep_research / database / sqlcipher_utils.py   98% 159 3 0   91% 22 2   97%
src / local_deep_research / database / temp_auth.py   100% 24 0 0   100% 2 0   100%
src / local_deep_research / database / thread_local_session.py   97% 139 4 0   96% 26 1   97%
src / local_deep_research / database / thread_metrics.py   96% 50 2 0   81% 16 1   92%
src / local_deep_research / defaults / __init__.py   95% 19 1 0   75% 8 2   89%
src / local_deep_research / document_loaders / __init__.py   100% 5 0 0   100% 0 0   100%
src / local_deep_research / document_loaders / bytes_loader.py   92% 52 4 0   100% 10 0   94%
src / local_deep_research / document_loaders / json_loader.py   100% 59 0 0   100% 12 0   100%
src / local_deep_research / document_loaders / loader_registry.py   81% 94 18 0   67% 18 6   79%
src / local_deep_research / document_loaders / yaml_loader.py   100% 44 0 0   100% 4 0   100%
src / local_deep_research / domain_classifier / __init__.py   100% 9 0 0   100% 4 0   100%
src / local_deep_research / domain_classifier / classifier.py   94% 155 10 0   93% 42 3   93%
src / local_deep_research / domain_classifier / models.py   100% 18 0 0   100% 0 0   100%
src / local_deep_research / embeddings / __init__.py   100% 2 0 0   100% 0 0   100%
src / local_deep_research / embeddings / embeddings_config.py   98% 49 1 0   88% 16 2   95%
src / local_deep_research / embeddings / providers / __init__.py   100% 2 0 0   100% 0 0   100%
src / local_deep_research / embeddings / providers / base.py   91% 34 3 0   100% 2 0   92%
src / local_deep_research / embeddings / providers / implementations / __init__.py   100% 4 0 0   100% 0 0   100%
src / local_deep_research / embeddings / providers / implementations / ollama.py   96% 76 3 0   100% 16 0   97%
src / local_deep_research / embeddings / providers / implementations / openai.py   100% 62 0 0   100% 20 0   100%
src / local_deep_research / embeddings / providers / implementations / sentence_transformers.py   100% 28 0 0   100% 4 0   100%
src / local_deep_research / embeddings / splitters / __init__.py   100% 2 0 0   100% 0 0   100%
src / local_deep_research / embeddings / splitters / text_splitter_registry.py   100% 38 0 0   94% 16 1   98%
src / local_deep_research / error_handling / __init__.py   100% 3 0 0   100% 0 0   100%
src / local_deep_research / error_handling / error_reporter.py   91% 81 7 0   83% 24 2   90%
src / local_deep_research / error_handling / report_generator.py   100% 106 0 0   94% 54 3   98%
src / local_deep_research / exceptions.py   100% 2 0 0   100% 0 0   100%
src / local_deep_research / exporters / __init__.py   100% 8 0 0   100% 0 0   100%
src / local_deep_research / exporters / base.py   91% 44 4 0   100% 10 0   93%
src / local_deep_research / exporters / latex_exporter.py   100% 29 0 0   100% 0 0   100%
src / local_deep_research / exporters / odt_exporter.py   92% 63 5 0   83% 12 2   91%
src / local_deep_research / exporters / pdf_exporter.py   100% 33 0 0   100% 2 0   100%
src / local_deep_research / exporters / quarto_exporter.py   100% 45 0 0   100% 2 0   100%
src / local_deep_research / exporters / registry.py   100% 34 0 0   100% 4 0   100%
src / local_deep_research / exporters / ris_exporter.py   100% 29 0 0   100% 0 0   100%
src / local_deep_research / followup_research / __init__.py   100% 3 0 0   100% 0 0   100%
src / local_deep_research / followup_research / models.py   100% 13 0 0   100% 0 0   100%
src / local_deep_research / followup_research / routes.py   100% 89 0 0   100% 8 0   100%
src / local_deep_research / followup_research / service.py   96% 52 2 0   90% 10 1   95%
src / local_deep_research / library / download_management / __init__.py   100% 5 0 0   100% 0 0   100%
src / local_deep_research / library / download_management / database_init.py   92% 24 2 0   75% 4 1   89%
src / local_deep_research / library / download_management / failure_classifier.py   96% 81 3 0   92% 38 3   95%
src / local_deep_research / library / download_management / filters / __init__.py   100% 2 0 0   100% 0 0   100%
src / local_deep_research / library / download_management / filters / resource_filter.py   100% 32 0 0   100% 6 0   100%
src / local_deep_research / library / download_management / models / __init__.py   97% 39 1 0   100% 0 0   97%
src / local_deep_research / library / download_management / retry_manager.py   100% 98 0 0   96% 24 1   99%
src / local_deep_research / library / download_management / status_tracker.py   94% 138 8 0   93% 44 3   94%
src / local_deep_research / llm / __init__.py   100% 2 0 0   100% 0 0   100%
src / local_deep_research / llm / llm_registry.py   100% 49 0 0   100% 4 0   100%
src / local_deep_research / llm / providers / __init__.py   100% 3 0 0   100% 0 0   100%
src / local_deep_research / llm / providers / auto_discovery.py   98% 103 2 0   91% 34 3   96%
src / local_deep_research / llm / providers / base.py   100% 11 0 1   100% 0 0   100%
src / local_deep_research / llm / providers / implementations / anthropic.py   95% 37 2 0   100% 6 0   95%
src / local_deep_research / llm / providers / implementations / custom_openai_endpoint.py   100% 39 0 0   100% 6 0   100%
src / local_deep_research / llm / providers / implementations / google.py   100% 40 0 0   100% 10 0   100%
src / local_deep_research / llm / providers / implementations / ionos.py   100% 12 0 0   100% 0 0   100%
src / local_deep_research / llm / providers / implementations / lmstudio.py   100% 34 0 0   100% 0 0   100%
src / local_deep_research / llm / providers / implementations / ollama.py   99% 93 1 0   92% 24 2   97%
src / local_deep_research / llm / providers / implementations / openai.py   100% 67 0 0   100% 16 0   100%
src / local_deep_research / llm / providers / implementations / openrouter.py   100% 12 0 0   100% 0 0   100%
src / local_deep_research / llm / providers / implementations / xai.py   100% 12 0 0   100% 0 0   100%
src / local_deep_research / llm / providers / openai_base.py   99% 120 1 0   89% 36 4   97%
src / local_deep_research / mcp / __init__.py   100% 2 0 0   100% 0 0   100%
src / local_deep_research / mcp / __main__.py   67% 3 1 0   50% 2 1   60%
src / local_deep_research / mcp / client.py   70% 185 55 0   74% 50 5   71%
src / local_deep_research / mcp / server.py   94% 284 17 0   93% 98 7   94%
src / local_deep_research / metrics / __init__.py   100% 3 0 0   100% 0 0   100%
src / local_deep_research / metrics / database.py   100% 28 0 0   100% 6 0   100%
src / local_deep_research / metrics / pricing / __init__.py   100% 4 0 0   100% 0 0   100%
src / local_deep_research / metrics / pricing / cost_calculator.py   96% 79 3 0   96% 24 1   96%
src / local_deep_research / metrics / pricing / pricing_cache.py   94% 33 2 0   100% 0 0   94%
src / local_deep_research / metrics / pricing / pricing_fetcher.py   91% 107 10 0   92% 48 4   91%
src / local_deep_research / metrics / query_utils.py   100% 25 0 0   100% 14 0   100%
src / local_deep_research / metrics / search_tracker.py   98% 107 2 0   96% 28 1   98%
src / local_deep_research / metrics / token_counter.py   89% 465 51 0   78% 200 25   86%
src / local_deep_research / news / __init__.py   100% 6 0 0   100% 0 0   100%
src / local_deep_research / news / api.py   89% 404 46 0   84% 140 19   87%
src / local_deep_research / news / core / __init__.py   100% 0 0 0   100% 0 0   100%
src / local_deep_research / news / core / base_card.py   99% 145 2 0   100% 14 0   99%
src / local_deep_research / news / core / card_factory.py   95% 127 6 0   89% 38 2   94%
src / local_deep_research / news / core / card_storage.py   97% 149 5 0   90% 48 5   95%
src / local_deep_research / news / core / news_analyzer.py   100% 165 0 0   98% 58 1   99%
src / local_deep_research / news / core / relevance_service.py   100% 52 0 0   100% 30 0   100%
src / local_deep_research / news / core / search_integration.py   94% 52 3 0   100% 6 0   95%
src / local_deep_research / news / core / storage.py   71% 92 27 0   100% 0 0   71%
src / local_deep_research / news / core / storage_manager.py   98% 184 4 0   84% 50 8   95%
src / local_deep_research / news / core / utils.py   100% 35 0 0   100% 8 0   100%
src / local_deep_research / news / exceptions.py   100% 55 0 0   100% 6 0   100%
src / local_deep_research / news / flask_api.py   89% 674 74 0   84% 140 10   88%
src / local_deep_research / news / folder_manager.py   100% 82 0 0   100% 26 0   100%
src / local_deep_research / news / preference_manager / __init__.py   100% 0 0 0   100% 0 0   100%
src / local_deep_research / news / preference_manager / base_preference.py   97% 70 2 0   100% 14 0   98%
src / local_deep_research / news / preference_manager / storage.py   100% 98 0 0   94% 32 2   98%
src / local_deep_research / news / rating_system / __init__.py   100% 0 0 0   100% 0 0   100%
src / local_deep_research / news / rating_system / base_rater.py   95% 77 4 0   93% 14 1   95%
src / local_deep_research / news / rating_system / storage.py   98% 92 2 0   94% 32 2   97%
src / local_deep_research / news / recommender / __init__.py   100% 0 0 0   100% 0 0   100%
src / local_deep_research / news / recommender / base_recommender.py   98% 63 1 0   100% 20 0   99%
src / local_deep_research / news / recommender / topic_based.py   100% 105 0 0   96% 28 1   99%
src / local_deep_research / news / subscription_manager / __init__.py   100% 5 0 0   100% 0 0   100%
src / local_deep_research / news / subscription_manager / base_subscription.py   95% 92 5 0   81% 16 3   93%
src / local_deep_research / news / subscription_manager / scheduler.py   98% 666 14 0   94% 168 10   97%
src / local_deep_research / news / subscription_manager / search_subscription.py   100% 61 0 0   100% 12 0   100%
src / local_deep_research / news / subscription_manager / storage.py   98% 120 2 0   91% 34 3   97%
src / local_deep_research / news / subscription_manager / topic_subscription.py   100% 75 0 0   100% 16 0   100%
src / local_deep_research / news / utils / __init__.py   100% 0 0 0   100% 0 0   100%
src / local_deep_research / news / utils / headline_generator.py   100% 29 0 0   100% 6 0   100%
src / local_deep_research / news / utils / topic_generator.py   100% 57 0 0   100% 24 0   100%
src / local_deep_research / news / web.py   97% 78 2 0   100% 10 0   98%
src / local_deep_research / notifications / __init__.py   100% 8 0 0   100% 0 0   100%
src / local_deep_research / notifications / exceptions.py   100% 8 0 0   100% 0 0   100%
src / local_deep_research / notifications / manager.py   100% 147 0 0   97% 36 1   99%
src / local_deep_research / notifications / queue_helpers.py   97% 110 3 0   94% 18 1   97%
src / local_deep_research / notifications / service.py   99% 86 1 0   96% 26 1   98%
src / local_deep_research / notifications / templates.py   97% 88 3 0   94% 18 1   96%
src / local_deep_research / notifications / url_builder.py   100% 27 0 0   100% 8 0   100%
src / local_deep_research / report_generator.py   100% 176 0 0   95% 74 4   98%
src / local_deep_research / research_library / __init__.py   100% 8 0 0   100% 0 0   100%
src / local_deep_research / research_library / deletion / __init__.py   100% 4 0 0   100% 0 0   100%
src / local_deep_research / research_library / deletion / routes / __init__.py   100% 2 0 0   100% 0 0   100%
src / local_deep_research / research_library / deletion / routes / delete_routes.py   97% 160 5 0   78% 18 2   95%
src / local_deep_research / research_library / deletion / services / __init__.py   100% 4 0 0   100% 0 0   100%
src / local_deep_research / research_library / deletion / services / bulk_deletion.py   94% 67 4 0   86% 22 3   92%
src / local_deep_research / research_library / deletion / services / collection_deletion.py   95% 77 4 0   92% 12 1   94%
src / local_deep_research / research_library / deletion / services / document_deletion.py   100% 122 0 0   100% 30 0   100%
src / local_deep_research / research_library / deletion / utils / __init__.py   100% 2 0 0   100% 0 0   100%
src / local_deep_research / research_library / deletion / utils / cascade_helper.py   98% 127 3 0   91% 32 1   96%
src / local_deep_research / research_library / downloaders / __init__.py   100% 10 0 0   100% 0 0   100%
src / local_deep_research / research_library / downloaders / arxiv.py   97% 107 3 0   92% 50 4   96%
src / local_deep_research / research_library / downloaders / base.py   92% 133 10 0   93% 28 2   93%
src / local_deep_research / research_library / downloaders / biorxiv.py   98% 94 2 0   100% 40 0   99%
src / local_deep_research / research_library / downloaders / direct_pdf.py   98% 59 1 0   96% 28 1   98%
src / local_deep_research / research_library / downloaders / extraction / __init__.py   100% 8 0 0   100% 0 0   100%
src / local_deep_research / research_library / downloaders / extraction / base.py   100% 5 0 0   100% 0 0   100%
src / local_deep_research / research_library / downloaders / extraction / justext_extractor.py   59% 32 13 0   50% 8 2   58%
src / local_deep_research / research_library / downloaders / extraction / metadata_extractor.py   77% 154 35 0   52% 92 28   68%
src / local_deep_research / research_library / downloaders / extraction / newspaper_extractor.py   70% 23 7 0   50% 2 1   68%
src / local_deep_research / research_library / downloaders / extraction / pipeline.py   50% 202 102 0   51% 76 7   50%
src / local_deep_research / research_library / downloaders / extraction / readability_extractor.py   65% 23 8 0   67% 6 2   66%
src / local_deep_research / research_library / downloaders / extraction / trafilatura_extractor.py   71% 24 7 0   50% 2 1   69%
src / local_deep_research / research_library / downloaders / generic.py   94% 86 5 0   94% 36 2   94%
src / local_deep_research / research_library / downloaders / html.py   93% 122 8 0   98% 40 1   94%
src / local_deep_research / research_library / downloaders / openalex.py   98% 88 2 0   96% 26 1   97%
src / local_deep_research / research_library / downloaders / playwright_html.py   36% 192 122 0   30% 40 6   35%
src / local_deep_research / research_library / downloaders / pubmed.py   98% 269 6 0   92% 130 9   96%
src / local_deep_research / research_library / downloaders / semantic_scholar.py   97% 71 2 0   85% 20 3   95%
src / local_deep_research / research_library / routes / __init__.py   100% 0 0 0   100% 0 0   100%
src / local_deep_research / research_library / routes / library_routes.py   95% 549 25 0   86% 110 11   94%
src / local_deep_research / research_library / routes / rag_routes.py   87% 987 133 0   80% 242 19   85%
src / local_deep_research / research_library / search / __init__.py   100% 3 0 0   100% 0 0   100%
src / local_deep_research / research_library / search / routes / __init__.py   100% 2 0 0   100% 0 0   100%
src / local_deep_research / research_library / search / routes / search_routes.py   94% 173 10 0   80% 40 8   92%
src / local_deep_research / research_library / search / services / __init__.py   100% 2 0 0   100% 0 0   100%
src / local_deep_research / research_library / search / services / research_history_indexer.py   100% 106 0 0   96% 28 1   99%
src / local_deep_research / research_library / services / __init__.py   100% 0 0 0   100% 0 0   100%
src / local_deep_research / research_library / services / download_service.py   98% 705 14 0   88% 224 28   95%
src / local_deep_research / research_library / services / library_rag_service.py   97% 457 13 0   89% 134 13   95%
src / local_deep_research / research_library / services / library_service.py   89% 353 38 0   79% 120 11   87%
src / local_deep_research / research_library / services / pdf_storage_manager.py   92% 185 14 0   93% 60 4   93%
src / local_deep_research / research_library / services / rag_service_factory.py   100% 43 0 0   100% 12 0   100%
src / local_deep_research / research_library / utils / __init__.py   92% 107 9 0   85% 34 5   90%
src / local_deep_research / research_scheduler / document_scheduler.py   100% 28 0 0   100% 4 0   100%
src / local_deep_research / research_scheduler / routes.py   94% 35 2 0   67% 6 2   90%
src / local_deep_research / search_system.py   97% 101 3 0   88% 32 2   95%
src / local_deep_research / search_system_factory.py   96% 152 6 0   94% 86 5   95%
src / local_deep_research / security / __init__.py   100% 26 0 0   100% 0 0   100%
src / local_deep_research / security / account_lockout.py   100% 59 0 0   96% 24 1   99%
src / local_deep_research / security / data_sanitizer.py   100% 48 0 0   100% 20 0   100%
src / local_deep_research / security / decorators.py   100% 16 0 0   100% 6 0   100%
src / local_deep_research / security / file_integrity / __init__.py   100% 5 0 0   100% 0 0   100%
src / local_deep_research / security / file_integrity / base_verifier.py   88% 26 3 0   100% 2 0   89%
src / local_deep_research / security / file_integrity / integrity_manager.py   98% 200 3 0   98% 66 1   98%
src / local_deep_research / security / file_integrity / verifiers / __init__.py   100% 2 0 0   100% 0 0   100%
src / local_deep_research / security / file_integrity / verifiers / faiss_verifier.py   100% 9 0 0   100% 0 0   100%
src / local_deep_research / security / file_upload_validator.py   100% 62 0 0   100% 24 0   100%
src / local_deep_research / security / file_write_verifier.py   100% 41 0 0   100% 14 0   100%
src / local_deep_research / security / filename_sanitizer.py   100% 25 0 0   100% 12 0   100%
src / local_deep_research / security / ip_ranges.py   100% 2 0 0   100% 0 0   100%
src / local_deep_research / security / log_sanitizer.py   100% 9 0 0   100% 2 0   100%
src / local_deep_research / security / module_whitelist.py   100% 41 0 0   100% 12 0   100%
src / local_deep_research / security / network_utils.py   100% 11 0 0   100% 4 0   100%
src / local_deep_research / security / notification_validator.py   95% 63 3 0   96% 26 1   96%
src / local_deep_research / security / password_validator.py   100% 15 0 0   100% 6 0   100%
src / local_deep_research / security / path_validator.py   96% 140 5 0   100% 78 0   98%
src / local_deep_research / security / rate_limiter.py   100% 63 0 0   94% 16 1   99%
src / local_deep_research / security / safe_requests.py   99% 150 2 0   96% 54 2   98%
src / local_deep_research / security / security_headers.py   100% 84 0 0   96% 26 1   99%
src / local_deep_research / security / security_settings.py   93% 56 4 0   91% 22 2   92%
src / local_deep_research / security / ssrf_validator.py   92% 73 6 0   100% 30 0   94%
src / local_deep_research / security / url_builder.py   94% 66 4 0   100% 24 0   96%
src / local_deep_research / security / url_validator.py   92% 163 13 0   98% 82 2   94%
src / local_deep_research / settings / __init__.py   100% 3 0 0   100% 0 0   100%
src / local_deep_research / settings / base.py   70% 30 9 0   100% 0 0   70%
src / local_deep_research / settings / env_definitions / __init__.py   100% 10 0 0   100% 0 0   100%
src / local_deep_research / settings / env_definitions / bootstrap.py   100% 2 0 0   100% 0 0   100%
src / local_deep_research / settings / env_definitions / db_config.py   100% 2 0 0   100% 0 0   100%
src / local_deep_research / settings / env_definitions / news_scheduler.py   100% 2 0 0   100% 0 0   100%
src / local_deep_research / settings / env_definitions / security.py   100% 4 0 0   100% 0 0   100%
src / local_deep_research / settings / env_definitions / server.py   100% 2 0 0   100% 0 0   100%
src / local_deep_research / settings / env_definitions / testing.py   100% 6 0 0   100% 0 0   100%
src / local_deep_research / settings / env_registry.py   100% 29 0 0   100% 4 0   100%
src / local_deep_research / settings / env_settings.py   98% 153 3 0   100% 38 0   98%
src / local_deep_research / settings / logger.py   96% 54 2 0   89% 28 3   94%
src / local_deep_research / settings / manager.py   93% 491 36 0   91% 202 16   92%
src / local_deep_research / storage / __init__.py   100% 5 0 0   100% 0 0   100%
src / local_deep_research / storage / base.py   71% 21 6 0   100% 0 0   71%
src / local_deep_research / storage / database.py   96% 71 3 0   100% 12 0   96%
src / local_deep_research / storage / database_with_file_backup.py   100% 40 0 0   100% 8 0   100%
src / local_deep_research / storage / factory.py   100% 16 0 0   100% 4 0   100%
src / local_deep_research / storage / file.py   97% 89 3 0   100% 16 0   97%
src / local_deep_research / text_optimization / __init__.py   100% 2 0 0   100% 0 0   100%
src / local_deep_research / text_optimization / citation_formatter.py   99% 398 4 0   95% 148 7   98%
src / local_deep_research / text_processing / __init__.py   100% 2 0 0   100% 0 0   100%
src / local_deep_research / text_processing / text_cleaner.py   100% 9 0 0   100% 2 0   100%
src / local_deep_research / utilities / __init__.py   100% 0 0 0   100% 0 0   100%
src / local_deep_research / utilities / db_utils.py   88% 99 12 0   79% 34 3   86%
src / local_deep_research / utilities / enums.py   100% 9 0 0   100% 0 0   100%
src / local_deep_research / utilities / es_utils.py   97% 126 4 0   93% 30 2   96%
src / local_deep_research / utilities / formatting.py   100% 6 0 0   100% 4 0   100%
src / local_deep_research / utilities / json_utils.py   100% 81 0 0   90% 42 4   97%
src / local_deep_research / utilities / llm_utils.py   89% 116 13 0   100% 40 0   92%
src / local_deep_research / utilities / log_utils.py   96% 131 5 0   93% 28 2   96%
src / local_deep_research / utilities / resource_utils.py   100% 14 0 0   100% 8 0   100%
src / local_deep_research / utilities / search_cache.py   99% 247 3 0   90% 48 5   97%
src / local_deep_research / utilities / search_utilities.py   97% 136 4 0   100% 56 0   98%
src / local_deep_research / utilities / setup_utils.py   0% 3 3 0   100% 0 0   0%
src / local_deep_research / utilities / thread_context.py   100% 41 0 0   100% 8 0   100%
src / local_deep_research / utilities / threading_utils.py   100% 42 0 0   100% 8 0   100%
src / local_deep_research / utilities / type_utils.py   100% 9 0 0   100% 6 0   100%
src / local_deep_research / utilities / url_utils.py   100% 19 0 0   100% 10 0   100%
src / local_deep_research / web / __init__.py   100% 0 0 0   100% 0 0   100%
src / local_deep_research / web / api.py   96% 163 6 0   91% 32 3   95%
src / local_deep_research / web / app.py   98% 59 1 0   88% 8 1   97%
src / local_deep_research / web / app_factory.py   90% 436 45 0   75% 60 9   88%
src / local_deep_research / web / auth / __init__.py   100% 3 0 0   100% 0 0   100%
src / local_deep_research / web / auth / cleanup_middleware.py   95% 41 2 0   100% 14 0   96%
src / local_deep_research / web / auth / connection_cleanup.py   68% 94 30 0   54% 24 5   65%
src / local_deep_research / web / auth / database_middleware.py   100% 43 0 0   92% 26 2   97%
src / local_deep_research / web / auth / decorators.py   100% 46 0 0   100% 18 0   100%
src / local_deep_research / web / auth / middleware_optimizer.py   100% 25 0 0   100% 16 0   100%
src / local_deep_research / web / auth / password_utils.py   100% 19 0 0   100% 10 0   100%
src / local_deep_research / web / auth / queue_middleware.py   92% 26 2 0   100% 10 0   94%
src / local_deep_research / web / auth / queue_middleware_v2.py   100% 19 0 0   100% 8 0   100%
src / local_deep_research / web / auth / routes.py   90% 317 32 0   85% 80 12   89%
src / local_deep_research / web / auth / session_cleanup.py   100% 20 0 0   100% 10 0   100%
src / local_deep_research / web / auth / session_manager.py   100% 87 0 0   100% 28 0   100%
src / local_deep_research / web / database / benchmark_schema.py   100% 30 0 0   100% 6 0   100%
src / local_deep_research / web / exceptions.py   100% 19 0 0   100% 4 0   100%
src / local_deep_research / web / models / database.py   100% 79 0 0   86% 14 2   98%
src / local_deep_research / web / models / settings.py   100% 44 0 0   100% 8 0   100%
src / local_deep_research / web / queue / __init__.py   100% 3 0 0   100% 0 0   100%
src / local_deep_research / web / queue / manager.py   100% 57 0 0   100% 8 0   100%
src / local_deep_research / web / queue / processor_v2.py   97% 295 10 0   88% 68 8   95%
src / local_deep_research / web / routes / api_routes.py   99% 205 3 0   91% 34 1   97%
src / local_deep_research / web / routes / context_overflow_api.py   100% 116 0 0   97% 38 1   99%
src / local_deep_research / web / routes / globals.py   100% 94 0 0   100% 24 0   100%
src / local_deep_research / web / routes / history_routes.py   100% 170 0 0   100% 26 0   100%
src / local_deep_research / web / routes / metrics_routes.py   99% 696 6 0   94% 180 11   98%
src / local_deep_research / web / routes / news_routes.py   100% 129 0 0   100% 4 0   100%
src / local_deep_research / web / routes / research_routes.py   94% 664 40 0   92% 168 12   94%
src / local_deep_research / web / routes / route_registry.py   88% 32 4 0   72% 18 1   82%
src / local_deep_research / web / routes / settings_routes.py   85% 932 140 0   85% 320 21   85%
src / local_deep_research / web / server_config.py   100% 72 0 0   100% 34 0   100%
src / local_deep_research / web / services / pdf_extraction_service.py   96% 49 2 0   100% 12 0   97%
src / local_deep_research / web / services / pdf_service.py   100% 46 0 0   100% 10 0   100%
src / local_deep_research / web / services / research_service.py   86% 669 92 0   84% 194 24   86%
src / local_deep_research / web / services / research_sources_service.py   100% 71 0 0   88% 16 2   98%
src / local_deep_research / web / services / resource_service.py   100% 40 0 0   100% 4 0   100%
src / local_deep_research / web / services / settings_service.py   83% 30 5 0   50% 2 1   81%
src / local_deep_research / web / services / socket_service.py   97% 148 5 0   98% 46 1   97%
src / local_deep_research / web / themes / __init__.py   100% 77 0 0   91% 22 2   98%
src / local_deep_research / web / themes / loader.py   95% 76 4 0   79% 24 3   91%
src / local_deep_research / web / themes / schema.py   100% 16 0 0   100% 0 0   100%
src / local_deep_research / web / utils / __init__.py   100% 0 0 0   100% 0 0   100%
src / local_deep_research / web / utils / formatters.py   100% 23 0 0   100% 4 0   100%
src / local_deep_research / web / utils / route_decorators.py   100% 21 0 0   100% 2 0   100%
src / local_deep_research / web / utils / templates.py   100% 7 0 0   100% 0 0   100%
src / local_deep_research / web / utils / theme_helper.py   100% 21 0 0   100% 2 0   100%
src / local_deep_research / web / utils / vite_helper.py   100% 46 0 0   100% 18 0   100%
src / local_deep_research / web / warning_checks / __init__.py   89% 80 9 0   83% 24 4   88%
src / local_deep_research / web / warning_checks / backup.py   100% 23 0 0   100% 16 0   100%
src / local_deep_research / web / warning_checks / context.py   100% 21 0 0   100% 8 0   100%
src / local_deep_research / web / warning_checks / hardware.py   100% 29 0 0   100% 20 0   100%
src / local_deep_research / web_search_engines / __init__.py   100% 0 0 0   100% 0 0   100%
src / local_deep_research / web_search_engines / default_search_engines.py   100% 4 0 0   100% 0 0   100%
src / local_deep_research / web_search_engines / engine_registry.py   100% 9 0 0   100% 0 0   100%
src / local_deep_research / web_search_engines / engines / __init__.py   100% 0 0 0   100% 0 0   100%
src / local_deep_research / web_search_engines / engines / full_search.py   100% 94 0 0   97% 38 1   99%
src / local_deep_research / web_search_engines / engines / local_embedding_manager.py   99% 106 1 0   95% 22 1   98%
src / local_deep_research / web_search_engines / engines / meta_search_engine.py   82% 163 30 0   68% 62 2   78%
src / local_deep_research / web_search_engines / engines / parallel_search_engine.py   97% 263 9 0   92% 102 8   95%
src / local_deep_research / web_search_engines / engines / search_engine_arxiv.py   98% 159 3 0   97% 38 1   98%
src / local_deep_research / web_search_engines / engines / search_engine_brave.py   98% 43 1 0   100% 6 0   98%
src / local_deep_research / web_search_engines / engines / search_engine_collection.py   98% 92 2 0   95% 20 1   97%
src / local_deep_research / web_search_engines / engines / search_engine_ddg.py   100% 41 0 0   100% 12 0   100%
src / local_deep_research / web_search_engines / engines / search_engine_elasticsearch.py   98% 123 3 0   100% 34 0   98%
src / local_deep_research / web_search_engines / engines / search_engine_exa.py   98% 82 2 0   93% 28 2   96%
src / local_deep_research / web_search_engines / engines / search_engine_github.py   100% 326 0 0   98% 110 2   99%
src / local_deep_research / web_search_engines / engines / search_engine_google_pse.py   99% 129 1 0   94% 34 2   98%
src / local_deep_research / web_search_engines / engines / search_engine_guardian.py   97% 241 8 0   89% 76 6   95%
src / local_deep_research / web_search_engines / engines / search_engine_gutenberg.py   94% 206 12 0   84% 80 11   91%
src / local_deep_research / web_search_engines / engines / search_engine_library.py   94% 127 7 0   87% 38 3   93%
src / local_deep_research / web_search_engines / engines / search_engine_mojeek.py   97% 86 3 0   92% 26 2   96%
src / local_deep_research / web_search_engines / engines / search_engine_nasa_ads.py   90% 132 13 0   86% 44 6   89%
src / local_deep_research / web_search_engines / engines / search_engine_openalex.py   98% 159 3 0   95% 58 3   97%
src / local_deep_research / web_search_engines / engines / search_engine_openlibrary.py   92% 213 18 0   83% 90 15   89%
src / local_deep_research / web_search_engines / engines / search_engine_paperless.py   93% 301 22 0   82% 100 16   90%
src / local_deep_research / web_search_engines / engines / search_engine_pubchem.py   95% 250 13 0   72% 80 18   89%
src / local_deep_research / web_search_engines / engines / search_engine_pubmed.py   97% 710 21 0   83% 354 60   92%
src / local_deep_research / web_search_engines / engines / search_engine_retriever.py   100% 57 0 0   100% 12 0   100%
src / local_deep_research / web_search_engines / engines / search_engine_scaleserp.py   97% 93 3 0   88% 24 3   95%
src / local_deep_research / web_search_engines / engines / search_engine_searxng.py   96% 220 9 0   92% 72 6   95%
src / local_deep_research / web_search_engines / engines / search_engine_semantic_scholar.py   99% 265 3 0   94% 96 6   98%
src / local_deep_research / web_search_engines / engines / search_engine_serpapi.py   100% 34 0 0   100% 4 0   100%
src / local_deep_research / web_search_engines / engines / search_engine_serper.py   100% 91 0 0   95% 22 1   99%
src / local_deep_research / web_search_engines / engines / search_engine_stackexchange.py   96% 230 9 0   89% 56 6   95%
src / local_deep_research / web_search_engines / engines / search_engine_tavily.py   98% 62 1 0   93% 14 1   97%
src / local_deep_research / web_search_engines / engines / search_engine_wayback.py   96% 198 7 0   94% 54 3   96%
src / local_deep_research / web_search_engines / engines / search_engine_wikinews.py   97% 159 4 0   85% 40 6   95%
src / local_deep_research / web_search_engines / engines / search_engine_wikipedia.py   97% 116 3 0   91% 22 2   96%
src / local_deep_research / web_search_engines / engines / search_engine_zenodo.py   98% 169 3 0   92% 52 4   97%
src / local_deep_research / web_search_engines / rate_limiting / __init__.py   100% 3 0 0   100% 0 0   100%
src / local_deep_research / web_search_engines / rate_limiting / __main__.py   0% 3 3 0   0% 2 0   0%
src / local_deep_research / web_search_engines / rate_limiting / exceptions.py   100% 6 0 0   100% 0 0   100%
src / local_deep_research / web_search_engines / rate_limiting / llm / __init__.py   100% 3 0 0   100% 0 0   100%
src / local_deep_research / web_search_engines / rate_limiting / llm / detection.py   91% 43 4 0   96% 24 1   93%
src / local_deep_research / web_search_engines / rate_limiting / llm / wrapper.py   93% 100 7 0   93% 30 2   93%
src / local_deep_research / web_search_engines / rate_limiting / tracker.py   97% 329 9 2   95% 110 5   97%
src / local_deep_research / web_search_engines / relevance_filter.py   96% 97 4 0   92% 38 3   95%
src / local_deep_research / web_search_engines / retriever_registry.py   100% 37 0 0   100% 4 0   100%
src / local_deep_research / web_search_engines / search_engine_base.py   98% 322 8 0   98% 122 3   98%
src / local_deep_research / web_search_engines / search_engine_factory.py   98% 194 3 0   87% 116 13   94%
src / local_deep_research / web_search_engines / search_engines_config.py   99% 113 1 0   98% 54 1   99%
Total   95% 43034 2358 3   90% 12724 978   93%

No items found using the specified filter.