Coverage report: 92%

Files Functions Classes

coverage.py v7.14.1, created at 2026-06-03 23:15 +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   94% 185 11 0   84% 88 6   91%
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/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% 3 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/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   98% 88 2 0   100% 38 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   73% 444 122 0   64% 148 23   70%
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% 186 12 0   94% 68 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% 109 2 0   96% 46 2   97%
src/local_deep_research/advanced_search_system/knowledge/standard_knowledge.py   100% 42 0 0   100% 6 0   100%
src/local_deep_research/advanced_search_system/questions/__init__.py   100% 7 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/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   100% 2 0 0   100% 0 0   100%
src/local_deep_research/advanced_search_system/summarization/__init__.py   100% 3 0 0   100% 0 0   100%
src/local_deep_research/advanced_search_system/summarization/base.py   100% 27 0 0   100% 4 0   100%
src/local_deep_research/advanced_search_system/summarization/focused.py   100% 8 0 0   100% 0 0   100%
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/advanced_search_system/tools/fetch/__init__.py   89% 88 10 0   96% 24 1   90%
src/local_deep_research/advanced_search_system/tools/fetch/prompts.py   100% 4 0 0   100% 0 0   100%
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% 230 11 0   88% 96 12   93%
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   97% 117 3 0   100% 36 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% 4 0 0   100% 0 0   100%
src/local_deep_research/benchmarks/metrics/calculation.py   99% 140 2 0   100% 38 0   99%
src/local_deep_research/benchmarks/metrics/reporting.py   97% 60 2 0   90% 30 3   94%
src/local_deep_research/benchmarks/metrics/statistics.py   100% 53 0 0   100% 24 0   100%
src/local_deep_research/benchmarks/models/__init__.py   100% 2 0 0   100% 0 0   100%
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% 16 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% 350 8 0   90% 86 9   96%
src/local_deep_research/benchmarks/web_api/benchmark_service.py   97% 477 13 0   84% 128 21   94%
src/local_deep_research/chat/__init__.py   100% 3 0 0   100% 0 0   100%
src/local_deep_research/chat/context.py   92% 143 12 0   81% 64 8   88%
src/local_deep_research/chat/routes.py   89% 351 38 2   78% 76 15   87%
src/local_deep_research/chat/service.py   85% 285 44 0   86% 64 7   85%
src/local_deep_research/citation_handler.py   100% 38 0 0   92% 12 1   98%
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% 79 3 0   96% 28 1   96%
src/local_deep_research/citation_handlers/forced_answer_citation_handler.py   100% 51 0 0   100% 16 0   100%
src/local_deep_research/citation_handlers/precision_extraction_handler.py   99% 210 1 0   92% 90 7   97%
src/local_deep_research/citation_handlers/standard_citation_handler.py   100% 24 0 0   100% 2 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% 4 0 0   100% 0 0   100%
src/local_deep_research/config/llm_config.py   97% 334 11 0   90% 118 12   95%
src/local_deep_research/config/paths.py   100% 76 0 0   100% 2 0   100%
src/local_deep_research/config/search_config.py   100% 26 0 0   90% 10 1   97%
src/local_deep_research/config/thread_settings.py   100% 54 0 0   100% 26 0   100%
src/local_deep_research/constants.py   100% 53 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   97% 130 4 0   98% 46 1   97%
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   94% 136 8 0   83% 46 6   91%
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% 6 0 0   100% 0 0   100%
src/local_deep_research/database/backup/backup_executor.py   100% 60 0 0   90% 10 1   99%
src/local_deep_research/database/backup/backup_service.py   88% 230 28 0   92% 52 4   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   92% 336 28 0   82% 74 9   90%
src/local_deep_research/database/initialize.py   92% 51 4 0   93% 14 1   92%
src/local_deep_research/database/library_init.py   100% 95 0 0   100% 12 0   100%
src/local_deep_research/database/models/__init__.py   100% 24 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/chat.py   95% 59 3 0   100% 0 0   95%
src/local_deep_research/database/models/citation.py   94% 32 2 0   100% 0 0   94%
src/local_deep_research/database/models/download_tracker.py   100% 48 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/journal.py   93% 14 1 0   100% 0 0   93%
src/local_deep_research/database/models/library.py   99% 307 3 0   100% 0 0   99%
src/local_deep_research/database/models/logs.py   94% 16 1 0   100% 0 0   94%
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% 135 7 0   100% 0 0   95%
src/local_deep_research/database/models/settings.py   95% 56 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% 75 0 0   100% 16 0   100%
src/local_deep_research/database/session_context.py   92% 118 9 0   96% 48 2   93%
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% 167 3 0   92% 24 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   94% 151 9 0   96% 26 1   94%
src/local_deep_research/database/thread_metrics.py   96% 53 2 0   83% 18 1   93%
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   100% 94 0 0   100% 18 0   100%
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   97% 86 3 0   100% 18 0   97%
src/local_deep_research/embeddings/providers/implementations/openai.py   99% 81 1 0   97% 30 1   98%
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/openai_compat_errors.py   95% 64 3 0   97% 30 1   96%
src/local_deep_research/error_handling/report_generator.py   100% 106 0 0   94% 54 3   98%
src/local_deep_research/exceptions.py   100% 6 0 0   100% 0 0   100%
src/local_deep_research/exporters/__init__.py   83% 12 2 0   100% 0 0   83%
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% 9 0 0   100% 0 0   100%
src/local_deep_research/followup_research/routes.py   88% 118 14 0   90% 10 1   88%
src/local_deep_research/followup_research/service.py   96% 52 2 0   90% 10 1   95%
src/local_deep_research/journal_quality/__init__.py   100% 0 0 0   100% 0 0   100%
src/local_deep_research/journal_quality/data_sources/__init__.py   93% 14 1 0   75% 4 1   89%
src/local_deep_research/journal_quality/data_sources/_openalex_common.py   98% 47 1 0   94% 16 1   97%
src/local_deep_research/journal_quality/data_sources/base.py   68% 37 12 0   0% 4 0   61%
src/local_deep_research/journal_quality/data_sources/doaj.py   55% 55 25 0   0% 6 0   49%
src/local_deep_research/journal_quality/data_sources/institutions.py   88% 76 9 0   60% 20 6   82%
src/local_deep_research/journal_quality/data_sources/jabref.py   40% 60 36 0   0% 16 0   32%
src/local_deep_research/journal_quality/data_sources/openalex.py   90% 83 8 0   73% 22 6   87%
src/local_deep_research/journal_quality/data_sources/predatory.py   95% 57 3 0   64% 14 3   89%
src/local_deep_research/journal_quality/db.py   39% 672 407 0   28% 242 28   36%
src/local_deep_research/journal_quality/downloader.py   81% 223 43 0   75% 44 9   80%
src/local_deep_research/journal_quality/models.py   100% 50 0 0   100% 0 0   100%
src/local_deep_research/journal_quality/scoring.py   97% 60 2 0   96% 48 2   96%
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% 68 3 0   91% 32 3   94%
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% 25 0 0   100% 4 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% 95 0 0   96% 24 1   99%
src/local_deep_research/library/download_management/status_tracker.py   92% 142 11 0   93% 44 3   92%
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   100% 103 0 0   97% 34 1   99%
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% 38 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/deepseek.py   100% 12 0 0   100% 0 0   100%
src/local_deep_research/llm/providers/implementations/google.py   100% 42 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/llamacpp.py   100% 35 0 0   100% 0 0   100%
src/local_deep_research/llm/providers/implementations/lmstudio.py   100% 53 0 0   100% 6 0   100%
src/local_deep_research/llm/providers/implementations/ollama.py   99% 94 1 0   92% 24 2   97%
src/local_deep_research/llm/providers/implementations/openai.py   100% 68 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   98% 125 3 0   87% 38 5   95%
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   77% 185 43 0   82% 50 7   78%
src/local_deep_research/mcp/server.py   94% 285 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   98% 66 1 0   89% 38 4   95%
src/local_deep_research/metrics/query_utils.py   100% 43 0 0   100% 18 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% 500 54 0   78% 216 28   86%
src/local_deep_research/news/__init__.py   100% 8 0 0   100% 0 0   100%
src/local_deep_research/news/api.py   90% 372 37 0   85% 124 14   89%
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% 179 4 0   83% 48 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% 675 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   97% 92 3 0   91% 32 3   95%
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% 109 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/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   98% 83 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% 152 0 0   97% 38 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% 93 1 0   97% 30 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% 180 0 0   95% 78 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   100% 32 0 0   100% 8 0   100%
src/local_deep_research/research_library/downloaders/extraction/metadata_extractor.py   100% 154 0 0   97% 92 3   99%
src/local_deep_research/research_library/downloaders/extraction/newspaper_extractor.py   100% 23 0 0   100% 2 0   100%
src/local_deep_research/research_library/downloaders/extraction/pipeline.py   88% 202 24 0   86% 76 5   87%
src/local_deep_research/research_library/downloaders/extraction/readability_extractor.py   100% 23 0 0   100% 6 0   100%
src/local_deep_research/research_library/downloaders/extraction/trafilatura_extractor.py   100% 24 0 0   100% 2 0   100%
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   57% 199 86 0   45% 44 10   55%
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% 550 25 0   86% 110 11   94%
src/local_deep_research/research_library/routes/rag_routes.py   86% 1002 139 0   80% 248 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% 168 10 0   80% 40 8   91%
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% 103 0 0   96% 26 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% 717 16 0   87% 232 30   95%
src/local_deep_research/research_library/services/library_rag_service.py   96% 549 20 0   90% 162 15   95%
src/local_deep_research/research_library/services/library_service.py   89% 356 38 0   80% 122 11   87%
src/local_deep_research/research_library/services/pdf_storage_manager.py   92% 186 14 0   93% 60 4   93%
src/local_deep_research/research_library/services/rag_service_factory.py   100% 47 0 0   100% 14 0   100%
src/local_deep_research/research_library/utils/__init__.py   92% 114 9 0   86% 36 5   91%
src/local_deep_research/research_scheduler/routes.py   94% 34 2 0   67% 6 2   90%
src/local_deep_research/scheduler/__init__.py   100% 2 0 0   100% 0 0   100%
src/local_deep_research/scheduler/background.py   97% 678 20 0   92% 168 11   96%
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% 76 0 0   100% 30 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% 3 0 0   100% 0 0   100%
src/local_deep_research/security/log_sanitizer.py   100% 19 0 0   100% 6 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   92% 102 8 0   95% 38 2   93%
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% 66 0 0   94% 16 1   99%
src/local_deep_research/security/safe_requests.py   99% 223 3 0   96% 72 3   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   98% 119 2 0   98% 50 1   98%
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/security/web_middleware.py   100% 45 0 0   100% 18 0   100%
src/local_deep_research/settings/__init__.py   100% 4 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% 42 0 0   100% 10 0   100%
src/local_deep_research/settings/env_settings.py   98% 154 3 0   100% 38 0   98%
src/local_deep_research/settings/exceptions.py   96% 24 1 0   75% 4 1   93%
src/local_deep_research/settings/logger.py   96% 54 2 0   89% 28 3   94%
src/local_deep_research/settings/manager.py   92% 527 41 0   90% 230 22   91%
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   97% 486 14 0   94% 186 11   96%
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/citation_normalizer.py   91% 169 16 0   81% 108 14   87%
src/local_deep_research/utilities/db_utils.py   88% 80 10 0   77% 30 3   85%
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/js_rendering.py   100% 5 0 0   100% 0 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   100% 97 0 0   100% 32 0   100%
src/local_deep_research/utilities/log_utils.py   86% 217 30 0   74% 66 9   83%
src/local_deep_research/utilities/openalex_enrichment.py   99% 73 1 0   97% 36 1   98%
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   96% 179 7 0   96% 84 3   96%
src/local_deep_research/utilities/setup_utils.py   100% 3 0 0   100% 0 0   100%
src/local_deep_research/utilities/thread_context.py   100% 39 0 0   100% 6 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   96% 56 2 0   100% 24 0   98%
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   91% 86 8 0   79% 14 3   89%
src/local_deep_research/web/app_factory.py   88% 391 45 0   71% 48 8   87%
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   93% 118 8 0   100% 24 0   94%
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% 48 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% 342 33 0   88% 84 10   90%
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% 82 0 0   88% 16 2   98%
src/local_deep_research/web/models/settings.py   94% 51 3 0   80% 10 0   92%
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   91% 446 39 0   82% 104 15   89%
src/local_deep_research/web/routes/api_routes.py   99% 208 3 0   92% 36 1   98%
src/local_deep_research/web/routes/context_overflow_api.py   100% 112 0 0   97% 34 1   99%
src/local_deep_research/web/routes/globals.py   99% 123 1 0   97% 38 1   99%
src/local_deep_research/web/routes/history_routes.py   99% 168 1 0   96% 28 1   99%
src/local_deep_research/web/routes/metrics_routes.py   86% 902 123 0   76% 238 16   84%
src/local_deep_research/web/routes/news_routes.py   100% 140 0 0   100% 8 0   100%
src/local_deep_research/web/routes/research_routes.py   92% 698 58 0   89% 174 16   91%
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% 987 150 0   85% 348 23   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   87% 77 10 0   80% 20 2   86%
src/local_deep_research/web/services/report_assembly_service.py   96% 84 3 0   92% 40 3   95%
src/local_deep_research/web/services/research_service.py   82% 916 165 0   76% 296 48   81%
src/local_deep_research/web/services/research_sources_service.py   85% 189 28 0   76% 80 15   83%
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   95% 209 10 0   98% 66 1   96%
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/request_helpers.py   100% 6 0 0   100% 2 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% 97 0 0   97% 38 1   99%
src/local_deep_research/web_search_engines/engines/local_embedding_manager.py   99% 109 1 0   96% 24 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% 274 9 0   92% 104 8   96%
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   99% 330 2 0   97% 112 3   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% 207 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% 146 14 0   85% 54 8   89%
src/local_deep_research/web_search_engines/engines/search_engine_openalex.py   94% 178 10 0   88% 68 4   93%
src/local_deep_research/web_search_engines/engines/search_engine_openlibrary.py   92% 214 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% 251 13 0   72% 80 18   89%
src/local_deep_research/web_search_engines/engines/search_engine_pubmed.py   97% 715 22 0   83% 356 61   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   98% 276 5 0   92% 100 8   97%
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% 231 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   98% 160 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% 170 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   96% 100 4 0   93% 30 2   95%
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   92% 124 10 0   88% 48 6   91%
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   97% 335 11 0   96% 128 5   97%
src/local_deep_research/web_search_engines/search_engine_factory.py   98% 198 3 0   88% 120 13   94%
src/local_deep_research/web_search_engines/search_engines_config.py   99% 113 1 0   98% 54 1   99%
Total   93% 47411 3261 5   88% 14078 1147   92%

No items found using the specified filter.