local-deep-research 0.1.26__tar.gz → 0.2.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (163) hide show
  1. {local_deep_research-0.1.26/src/local_deep_research.egg-info → local_deep_research-0.2.0}/PKG-INFO +177 -97
  2. {local_deep_research-0.1.26 → local_deep_research-0.2.0}/README.md +145 -66
  3. {local_deep_research-0.1.26 → local_deep_research-0.2.0}/pyproject.toml +39 -13
  4. local_deep_research-0.2.0/src/local_deep_research/__init__.py +34 -0
  5. local_deep_research-0.2.0/src/local_deep_research/__main__.py +16 -0
  6. local_deep_research-0.2.0/src/local_deep_research/advanced_search_system/__init__.py +7 -0
  7. local_deep_research-0.2.0/src/local_deep_research/advanced_search_system/filters/__init__.py +8 -0
  8. local_deep_research-0.2.0/src/local_deep_research/advanced_search_system/filters/base_filter.py +38 -0
  9. local_deep_research-0.2.0/src/local_deep_research/advanced_search_system/filters/cross_engine_filter.py +200 -0
  10. local_deep_research-0.2.0/src/local_deep_research/advanced_search_system/findings/base_findings.py +81 -0
  11. local_deep_research-0.2.0/src/local_deep_research/advanced_search_system/findings/repository.py +452 -0
  12. local_deep_research-0.2.0/src/local_deep_research/advanced_search_system/knowledge/__init__.py +1 -0
  13. local_deep_research-0.2.0/src/local_deep_research/advanced_search_system/knowledge/base_knowledge.py +151 -0
  14. local_deep_research-0.2.0/src/local_deep_research/advanced_search_system/knowledge/standard_knowledge.py +159 -0
  15. local_deep_research-0.2.0/src/local_deep_research/advanced_search_system/questions/__init__.py +1 -0
  16. local_deep_research-0.2.0/src/local_deep_research/advanced_search_system/questions/base_question.py +64 -0
  17. local_deep_research-0.2.0/src/local_deep_research/advanced_search_system/questions/decomposition_question.py +445 -0
  18. local_deep_research-0.2.0/src/local_deep_research/advanced_search_system/questions/standard_question.py +119 -0
  19. local_deep_research-0.2.0/src/local_deep_research/advanced_search_system/repositories/__init__.py +7 -0
  20. local_deep_research-0.2.0/src/local_deep_research/advanced_search_system/strategies/__init__.py +1 -0
  21. local_deep_research-0.2.0/src/local_deep_research/advanced_search_system/strategies/base_strategy.py +118 -0
  22. local_deep_research-0.2.0/src/local_deep_research/advanced_search_system/strategies/iterdrag_strategy.py +450 -0
  23. local_deep_research-0.2.0/src/local_deep_research/advanced_search_system/strategies/parallel_search_strategy.py +312 -0
  24. local_deep_research-0.2.0/src/local_deep_research/advanced_search_system/strategies/rapid_search_strategy.py +270 -0
  25. local_deep_research-0.2.0/src/local_deep_research/advanced_search_system/strategies/standard_strategy.py +300 -0
  26. local_deep_research-0.2.0/src/local_deep_research/advanced_search_system/tools/__init__.py +1 -0
  27. local_deep_research-0.2.0/src/local_deep_research/advanced_search_system/tools/base_tool.py +100 -0
  28. local_deep_research-0.2.0/src/local_deep_research/advanced_search_system/tools/knowledge_tools/__init__.py +1 -0
  29. local_deep_research-0.2.0/src/local_deep_research/advanced_search_system/tools/question_tools/__init__.py +1 -0
  30. local_deep_research-0.2.0/src/local_deep_research/advanced_search_system/tools/search_tools/__init__.py +1 -0
  31. {local_deep_research-0.1.26 → local_deep_research-0.2.0}/src/local_deep_research/api/__init__.py +5 -5
  32. {local_deep_research-0.1.26 → local_deep_research-0.2.0}/src/local_deep_research/api/research_functions.py +96 -84
  33. local_deep_research-0.2.0/src/local_deep_research/app.py +8 -0
  34. {local_deep_research-0.1.26 → local_deep_research-0.2.0}/src/local_deep_research/citation_handler.py +25 -16
  35. local_deep_research-0.1.26/src/local_deep_research/config.py → local_deep_research-0.2.0/src/local_deep_research/config/config_files.py +102 -110
  36. local_deep_research-0.2.0/src/local_deep_research/config/llm_config.py +472 -0
  37. local_deep_research-0.2.0/src/local_deep_research/config/search_config.py +77 -0
  38. {local_deep_research-0.1.26 → local_deep_research-0.2.0}/src/local_deep_research/defaults/__init__.py +10 -5
  39. {local_deep_research-0.1.26 → local_deep_research-0.2.0}/src/local_deep_research/defaults/main.toml +2 -2
  40. {local_deep_research-0.1.26 → local_deep_research-0.2.0}/src/local_deep_research/defaults/search_engines.toml +60 -34
  41. local_deep_research-0.2.0/src/local_deep_research/main.py +215 -0
  42. local_deep_research-0.2.0/src/local_deep_research/migrate_db.py +147 -0
  43. {local_deep_research-0.1.26 → local_deep_research-0.2.0}/src/local_deep_research/report_generator.py +72 -44
  44. local_deep_research-0.2.0/src/local_deep_research/search_system.py +170 -0
  45. local_deep_research-0.2.0/src/local_deep_research/setup_data_dir.py +35 -0
  46. local_deep_research-0.2.0/src/local_deep_research/test_migration.py +178 -0
  47. local_deep_research-0.2.0/src/local_deep_research/utilities/db_utils.py +49 -0
  48. {local_deep_research-0.1.26/src/local_deep_research/utilties → local_deep_research-0.2.0/src/local_deep_research/utilities}/enums.py +2 -2
  49. {local_deep_research-0.1.26/src/local_deep_research/utilties → local_deep_research-0.2.0/src/local_deep_research/utilities}/llm_utils.py +63 -29
  50. local_deep_research-0.2.0/src/local_deep_research/utilities/search_utilities.py +242 -0
  51. {local_deep_research-0.1.26/src/local_deep_research/utilties → local_deep_research-0.2.0/src/local_deep_research/utilities}/setup_utils.py +4 -2
  52. {local_deep_research-0.1.26 → local_deep_research-0.2.0}/src/local_deep_research/web/__init__.py +0 -1
  53. local_deep_research-0.2.0/src/local_deep_research/web/app.py +123 -0
  54. local_deep_research-0.2.0/src/local_deep_research/web/app_factory.py +289 -0
  55. local_deep_research-0.2.0/src/local_deep_research/web/database/README.md +70 -0
  56. local_deep_research-0.2.0/src/local_deep_research/web/database/migrate_to_ldr_db.py +289 -0
  57. local_deep_research-0.2.0/src/local_deep_research/web/database/migrations.py +447 -0
  58. local_deep_research-0.2.0/src/local_deep_research/web/database/models.py +117 -0
  59. local_deep_research-0.2.0/src/local_deep_research/web/database/schema_upgrade.py +107 -0
  60. local_deep_research-0.2.0/src/local_deep_research/web/models/database.py +294 -0
  61. local_deep_research-0.2.0/src/local_deep_research/web/models/settings.py +94 -0
  62. local_deep_research-0.2.0/src/local_deep_research/web/routes/api_routes.py +559 -0
  63. local_deep_research-0.2.0/src/local_deep_research/web/routes/history_routes.py +354 -0
  64. local_deep_research-0.2.0/src/local_deep_research/web/routes/research_routes.py +715 -0
  65. local_deep_research-0.2.0/src/local_deep_research/web/routes/settings_routes.py +1592 -0
  66. local_deep_research-0.2.0/src/local_deep_research/web/services/research_service.py +947 -0
  67. local_deep_research-0.2.0/src/local_deep_research/web/services/resource_service.py +149 -0
  68. local_deep_research-0.2.0/src/local_deep_research/web/services/settings_manager.py +669 -0
  69. local_deep_research-0.2.0/src/local_deep_research/web/services/settings_service.py +187 -0
  70. local_deep_research-0.2.0/src/local_deep_research/web/services/socket_service.py +210 -0
  71. local_deep_research-0.2.0/src/local_deep_research/web/static/css/custom_dropdown.css +277 -0
  72. local_deep_research-0.2.0/src/local_deep_research/web/static/css/settings.css +1223 -0
  73. {local_deep_research-0.1.26 → local_deep_research-0.2.0}/src/local_deep_research/web/static/css/styles.css +525 -48
  74. local_deep_research-0.2.0/src/local_deep_research/web/static/js/components/custom_dropdown.js +428 -0
  75. local_deep_research-0.2.0/src/local_deep_research/web/static/js/components/detail.js +348 -0
  76. local_deep_research-0.2.0/src/local_deep_research/web/static/js/components/fallback/formatting.js +122 -0
  77. local_deep_research-0.2.0/src/local_deep_research/web/static/js/components/fallback/ui.js +215 -0
  78. local_deep_research-0.2.0/src/local_deep_research/web/static/js/components/history.js +487 -0
  79. local_deep_research-0.2.0/src/local_deep_research/web/static/js/components/logpanel.js +949 -0
  80. local_deep_research-0.2.0/src/local_deep_research/web/static/js/components/progress.js +1107 -0
  81. local_deep_research-0.2.0/src/local_deep_research/web/static/js/components/research.js +1865 -0
  82. local_deep_research-0.2.0/src/local_deep_research/web/static/js/components/results.js +766 -0
  83. local_deep_research-0.2.0/src/local_deep_research/web/static/js/components/settings.js +3981 -0
  84. local_deep_research-0.2.0/src/local_deep_research/web/static/js/components/settings_sync.js +106 -0
  85. local_deep_research-0.2.0/src/local_deep_research/web/static/js/main.js +226 -0
  86. local_deep_research-0.2.0/src/local_deep_research/web/static/js/services/api.js +253 -0
  87. local_deep_research-0.2.0/src/local_deep_research/web/static/js/services/audio.js +31 -0
  88. local_deep_research-0.2.0/src/local_deep_research/web/static/js/services/formatting.js +119 -0
  89. local_deep_research-0.2.0/src/local_deep_research/web/static/js/services/pdf.js +622 -0
  90. local_deep_research-0.2.0/src/local_deep_research/web/static/js/services/socket.js +882 -0
  91. local_deep_research-0.2.0/src/local_deep_research/web/static/js/services/ui.js +546 -0
  92. local_deep_research-0.2.0/src/local_deep_research/web/templates/base.html +72 -0
  93. local_deep_research-0.2.0/src/local_deep_research/web/templates/components/custom_dropdown.html +47 -0
  94. local_deep_research-0.2.0/src/local_deep_research/web/templates/components/log_panel.html +32 -0
  95. local_deep_research-0.2.0/src/local_deep_research/web/templates/components/mobile_nav.html +22 -0
  96. local_deep_research-0.2.0/src/local_deep_research/web/templates/components/settings_form.html +299 -0
  97. local_deep_research-0.2.0/src/local_deep_research/web/templates/components/sidebar.html +21 -0
  98. local_deep_research-0.2.0/src/local_deep_research/web/templates/pages/details.html +73 -0
  99. local_deep_research-0.2.0/src/local_deep_research/web/templates/pages/history.html +51 -0
  100. local_deep_research-0.2.0/src/local_deep_research/web/templates/pages/progress.html +57 -0
  101. local_deep_research-0.2.0/src/local_deep_research/web/templates/pages/research.html +139 -0
  102. local_deep_research-0.2.0/src/local_deep_research/web/templates/pages/results.html +59 -0
  103. local_deep_research-0.2.0/src/local_deep_research/web/templates/settings_dashboard.html +93 -0
  104. local_deep_research-0.2.0/src/local_deep_research/web/utils/formatters.py +76 -0
  105. local_deep_research-0.2.0/src/local_deep_research/web_search_engines/__init__.py +0 -0
  106. local_deep_research-0.2.0/src/local_deep_research/web_search_engines/engines/__init__.py +0 -0
  107. {local_deep_research-0.1.26 → local_deep_research-0.2.0}/src/local_deep_research/web_search_engines/engines/full_search.py +18 -16
  108. {local_deep_research-0.1.26 → local_deep_research-0.2.0}/src/local_deep_research/web_search_engines/engines/meta_search_engine.py +182 -131
  109. {local_deep_research-0.1.26 → local_deep_research-0.2.0}/src/local_deep_research/web_search_engines/engines/search_engine_arxiv.py +224 -139
  110. {local_deep_research-0.1.26 → local_deep_research-0.2.0}/src/local_deep_research/web_search_engines/engines/search_engine_brave.py +88 -71
  111. {local_deep_research-0.1.26 → local_deep_research-0.2.0}/src/local_deep_research/web_search_engines/engines/search_engine_ddg.py +48 -39
  112. {local_deep_research-0.1.26 → local_deep_research-0.2.0}/src/local_deep_research/web_search_engines/engines/search_engine_github.py +415 -204
  113. {local_deep_research-0.1.26 → local_deep_research-0.2.0}/src/local_deep_research/web_search_engines/engines/search_engine_google_pse.py +123 -90
  114. {local_deep_research-0.1.26 → local_deep_research-0.2.0}/src/local_deep_research/web_search_engines/engines/search_engine_guardian.py +210 -157
  115. {local_deep_research-0.1.26 → local_deep_research-0.2.0}/src/local_deep_research/web_search_engines/engines/search_engine_local.py +532 -369
  116. {local_deep_research-0.1.26 → local_deep_research-0.2.0}/src/local_deep_research/web_search_engines/engines/search_engine_local_all.py +42 -36
  117. {local_deep_research-0.1.26 → local_deep_research-0.2.0}/src/local_deep_research/web_search_engines/engines/search_engine_pubmed.py +358 -266
  118. {local_deep_research-0.1.26 → local_deep_research-0.2.0}/src/local_deep_research/web_search_engines/engines/search_engine_searxng.py +211 -159
  119. {local_deep_research-0.1.26 → local_deep_research-0.2.0}/src/local_deep_research/web_search_engines/engines/search_engine_semantic_scholar.py +213 -170
  120. {local_deep_research-0.1.26 → local_deep_research-0.2.0}/src/local_deep_research/web_search_engines/engines/search_engine_serpapi.py +84 -68
  121. {local_deep_research-0.1.26 → local_deep_research-0.2.0}/src/local_deep_research/web_search_engines/engines/search_engine_wayback.py +186 -154
  122. {local_deep_research-0.1.26 → local_deep_research-0.2.0}/src/local_deep_research/web_search_engines/engines/search_engine_wikipedia.py +115 -77
  123. local_deep_research-0.2.0/src/local_deep_research/web_search_engines/search_engine_base.py +271 -0
  124. {local_deep_research-0.1.26 → local_deep_research-0.2.0}/src/local_deep_research/web_search_engines/search_engine_factory.py +192 -102
  125. {local_deep_research-0.1.26 → local_deep_research-0.2.0}/src/local_deep_research/web_search_engines/search_engines_config.py +22 -15
  126. local_deep_research-0.2.0/tests/__init__.py +0 -0
  127. local_deep_research-0.2.0/tests/download_stuff_for_local_test.py +29 -0
  128. local_deep_research-0.2.0/tests/searxng/test_searxng_instance.py +39 -0
  129. local_deep_research-0.2.0/tests/searxng/test_searxng_integration.py +16 -0
  130. {local_deep_research-0.1.26 → local_deep_research-0.2.0}/tests/test_google_pse.py +84 -57
  131. local_deep_research-0.1.26/MANIFEST.in +0 -5
  132. local_deep_research-0.1.26/PKG-INFO +0 -454
  133. local_deep_research-0.1.26/setup.cfg +0 -4
  134. local_deep_research-0.1.26/src/local_deep_research/__init__.py +0 -33
  135. local_deep_research-0.1.26/src/local_deep_research/defaults/llm_config.py +0 -338
  136. local_deep_research-0.1.26/src/local_deep_research/main.py +0 -113
  137. local_deep_research-0.1.26/src/local_deep_research/search_system.py +0 -306
  138. local_deep_research-0.1.26/src/local_deep_research/utilties/search_utilities.py +0 -114
  139. local_deep_research-0.1.26/src/local_deep_research/web/app.py +0 -1746
  140. local_deep_research-0.1.26/src/local_deep_research/web/static/js/app.js +0 -3763
  141. local_deep_research-0.1.26/src/local_deep_research/web/templates/api_keys_config.html +0 -82
  142. local_deep_research-0.1.26/src/local_deep_research/web/templates/collections_config.html +0 -90
  143. local_deep_research-0.1.26/src/local_deep_research/web/templates/index.html +0 -348
  144. local_deep_research-0.1.26/src/local_deep_research/web/templates/llm_config.html +0 -120
  145. local_deep_research-0.1.26/src/local_deep_research/web/templates/main_config.html +0 -89
  146. local_deep_research-0.1.26/src/local_deep_research/web/templates/search_engines_config.html +0 -154
  147. local_deep_research-0.1.26/src/local_deep_research/web/templates/settings.html +0 -519
  148. local_deep_research-0.1.26/src/local_deep_research/web/templates/settings_dashboard.html +0 -207
  149. local_deep_research-0.1.26/src/local_deep_research/web_search_engines/search_engine_base.py +0 -196
  150. local_deep_research-0.1.26/src/local_deep_research.egg-info/SOURCES.txt +0 -66
  151. local_deep_research-0.1.26/src/local_deep_research.egg-info/dependency_links.txt +0 -1
  152. local_deep_research-0.1.26/src/local_deep_research.egg-info/entry_points.txt +0 -3
  153. local_deep_research-0.1.26/src/local_deep_research.egg-info/requires.txt +0 -33
  154. local_deep_research-0.1.26/src/local_deep_research.egg-info/top_level.txt +0 -1
  155. {local_deep_research-0.1.26 → local_deep_research-0.2.0}/LICENSE +0 -0
  156. {local_deep_research-0.1.26/src/local_deep_research/utilties → local_deep_research-0.2.0/src/local_deep_research/config}/__init__.py +0 -0
  157. {local_deep_research-0.1.26 → local_deep_research-0.2.0}/src/local_deep_research/defaults/.env.template +0 -0
  158. {local_deep_research-0.1.26 → local_deep_research-0.2.0}/src/local_deep_research/defaults/local_collections.toml +0 -0
  159. {local_deep_research-0.1.26/src/local_deep_research/web_search_engines → local_deep_research-0.2.0/src/local_deep_research/utilities}/__init__.py +0 -0
  160. {local_deep_research-0.1.26 → local_deep_research-0.2.0}/src/local_deep_research/web/static/sounds/README.md +0 -0
  161. {local_deep_research-0.1.26 → local_deep_research-0.2.0}/src/local_deep_research/web/static/sounds/error.mp3 +0 -0
  162. {local_deep_research-0.1.26 → local_deep_research-0.2.0}/src/local_deep_research/web/static/sounds/success.mp3 +0 -0
  163. {local_deep_research-0.1.26/src/local_deep_research/web_search_engines/engines → local_deep_research-0.2.0/src/local_deep_research/web/utils}/__init__.py +0 -0
@@ -1,38 +1,36 @@
1
- Metadata-Version: 2.4
1
+ Metadata-Version: 2.1
2
2
  Name: local-deep-research
3
- Version: 0.1.26
3
+ Version: 0.2.0
4
4
  Summary: AI-powered research assistant with deep, iterative analysis using LLMs and web searches
5
- Author-email: LearningCircuit <185559241+LearningCircuit@users.noreply.github.com>, HashedViking <6432677+HashedViking@users.noreply.github.com>
5
+ Author-Email: LearningCircuit <185559241+LearningCircuit@users.noreply.github.com>, HashedViking <6432677+HashedViking@users.noreply.github.com>
6
6
  License: MIT License
7
-
8
- Copyright (c) 2025 LearningCircuit
9
-
10
- Permission is hereby granted, free of charge, to any person obtaining a copy
11
- of this software and associated documentation files (the "Software"), to deal
12
- in the Software without restriction, including without limitation the rights
13
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14
- copies of the Software, and to permit persons to whom the Software is
15
- furnished to do so, subject to the following conditions:
16
-
17
- The above copyright notice and this permission notice shall be included in all
18
- copies or substantial portions of the Software.
19
-
20
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
26
- SOFTWARE.
27
-
28
- Project-URL: Homepage, https://github.com/LearningCircuit/local-deep-research
29
- Project-URL: Bug Tracker, https://github.com/LearningCircuit/local-deep-research/issues
7
+
8
+ Copyright (c) 2025 LearningCircuit
9
+
10
+ Permission is hereby granted, free of charge, to any person obtaining a copy
11
+ of this software and associated documentation files (the "Software"), to deal
12
+ in the Software without restriction, including without limitation the rights
13
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14
+ copies of the Software, and to permit persons to whom the Software is
15
+ furnished to do so, subject to the following conditions:
16
+
17
+ The above copyright notice and this permission notice shall be included in all
18
+ copies or substantial portions of the Software.
19
+
20
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
26
+ SOFTWARE.
27
+
30
28
  Classifier: Programming Language :: Python :: 3
31
29
  Classifier: License :: OSI Approved :: MIT License
32
30
  Classifier: Operating System :: OS Independent
33
- Requires-Python: >=3.8
34
- Description-Content-Type: text/markdown
35
- License-File: LICENSE
31
+ Project-URL: Homepage, https://github.com/LearningCircuit/local-deep-research
32
+ Project-URL: Bug Tracker, https://github.com/LearningCircuit/local-deep-research/issues
33
+ Requires-Python: >=3.10
36
34
  Requires-Dist: langchain>=0.3.18
37
35
  Requires-Dist: langchain-community>=0.3.17
38
36
  Requires-Dist: langchain-core>=0.3.34
@@ -45,7 +43,7 @@ Requires-Dist: typing_extensions>=4.12.2
45
43
  Requires-Dist: justext
46
44
  Requires-Dist: playwright
47
45
  Requires-Dist: beautifulsoup4
48
- Requires-Dist: flask>=2.0.1
46
+ Requires-Dist: flask>=3.1.0
49
47
  Requires-Dist: flask-cors>=3.0.10
50
48
  Requires-Dist: flask-socketio>=5.1.1
51
49
  Requires-Dist: sqlalchemy>=1.4.23
@@ -66,10 +64,52 @@ Requires-Dist: lxml>=4.9.2
66
64
  Requires-Dist: pdfplumber>=0.9.0
67
65
  Requires-Dist: unstructured>=0.10.0
68
66
  Requires-Dist: google-search-results
69
- Dynamic: license-file
67
+ Requires-Dist: importlib-resources>=6.5.2
68
+ Requires-Dist: setuptools>=78.1.0
69
+ Requires-Dist: flask-wtf>=1.2.2
70
+ Description-Content-Type: text/markdown
70
71
 
71
72
  # Local Deep Research
72
73
 
74
+ ## Features
75
+
76
+ - 🔍 **Advanced Research Capabilities**
77
+ - Automated deep research with intelligent follow-up questions
78
+ - Proper inline citation and source verification
79
+ - Multi-iteration analysis for comprehensive coverage
80
+ - Full webpage content analysis (not just snippets)
81
+
82
+ - 🤖 **Flexible LLM Support**
83
+ - Local AI processing with Ollama models
84
+ - Cloud LLM support (Claude, GPT)
85
+ - Supports all Langchain models
86
+ - Configurable model selection based on needs
87
+
88
+ - 📊 **Rich Output Options**
89
+ - Detailed research findings with proper citations
90
+ - Well-structured comprehensive research reports
91
+ - Quick summaries for rapid insights
92
+ - Source tracking and verification
93
+
94
+ - 🔒 **Privacy-Focused**
95
+ - Runs entirely on your machine when using local models
96
+ - Configurable search settings
97
+ - Transparent data handling
98
+
99
+ - 🌐 **Enhanced Search Integration**
100
+ - **Auto-selection of search sources**: The "auto" search engine intelligently analyzes your query and selects the most appropriate search engine
101
+ - Multiple search engines including Wikipedia, arXiv, PubMed, Semantic Scholar, and more
102
+ - **Local RAG search for private documents** - search your own documents with vector embeddings
103
+ - Full webpage content retrieval and intelligent filtering
104
+
105
+ - 🎓 **Academic & Scientific Integration**
106
+ - Direct integration with PubMed, arXiv, Wikipedia, Semantic Scholar
107
+ - Properly formatted citations from academic sources
108
+ - Report structure suitable for literature reviews
109
+ - Cross-disciplinary synthesis of information
110
+
111
+ | [Reddit](https://www.reddit.com/r/LocalDeepResearch/) | [Discord](https://discord.gg/ttcqQeFcJ3) |
112
+
73
113
  A powerful AI-powered research assistant that performs deep, iterative analysis using multiple LLMs and web searches. The system can be run locally for privacy or configured to use cloud-based LLMs for enhanced capabilities.
74
114
 
75
115
  <div align="center">
@@ -80,7 +120,15 @@ A powerful AI-powered research assistant that performs deep, iterative analysis
80
120
  </a>
81
121
  </div>
82
122
 
123
+ **Important for non-academic searches:** For normal web searches you will need SearXNG or an API key to a search provider like brave search or SerpAPI. The free searches are mostly academic search engines and will not help you for most normal searches.
124
+
125
+ ## Windows Installation
83
126
 
127
+ Download the [Windows Installer](https://github.com/LearningCircuit/local-deep-research/releases/download/v0.2.0/LocalDeepResearch_Setup.exe) for easy one-click installation.
128
+
129
+ **Requires Ollama (or other model provider configured in .env).**
130
+ Download from https://ollama.ai and then pull a model
131
+ ollama pull gemma3:12b
84
132
 
85
133
  ## Quick Start (not required if installed with windows installer)
86
134
 
@@ -129,6 +177,16 @@ For comprehensive Docker setup information, see:
129
177
  - [Docker Usage Guide](https://github.com/LearningCircuit/local-deep-research/blob/main/docs/docker-usage-readme.md)
130
178
  - [Docker Compose Guide](https://github.com/LearningCircuit/local-deep-research/blob/main/docs/docker-compose-guide.md)
131
179
 
180
+ ## Migrating from Version 0.1.0
181
+
182
+ If you just upgraded from 0.1.0, and you want to preserve your configuration,
183
+ you will need to manually migrate from the old config files to the new settings
184
+ database:
185
+
186
+ ```bash
187
+ python -m local_deep_research.migrate_db
188
+ ```
189
+
132
190
  ## Programmatic Access
133
191
 
134
192
  Local Deep Research now provides a simple API for programmatic access to its research capabilities:
@@ -138,7 +196,7 @@ import os
138
196
  # Set environment variables to control the LLM
139
197
  os.environ["LDR_LLM__MODEL"] = "mistral" # Specify model name
140
198
 
141
- from local_deep_research import quick_summary, generate_report, analyze_documents
199
+ from local_deep_research import quick_summary, generate_report
142
200
 
143
201
  # Generate a quick research summary with custom parameters
144
202
  results = quick_summary(
@@ -154,44 +212,6 @@ print(results["summary"])
154
212
 
155
213
  These functions provide flexible options for customizing the search parameters, iterations, and output formats. For more examples, see the [programmatic access tutorial](https://github.com/LearningCircuit/local-deep-research/blob/main/examples/programmatic_access.ipynb).
156
214
 
157
-
158
- ## Features
159
-
160
- - 🔍 **Advanced Research Capabilities**
161
- - Automated deep research with intelligent follow-up questions
162
- - Proper inline citation and source verification
163
- - Multi-iteration analysis for comprehensive coverage
164
- - Full webpage content analysis (not just snippets)
165
-
166
- - 🤖 **Flexible LLM Support**
167
- - Local AI processing with Ollama models
168
- - Cloud LLM support (Claude, GPT)
169
- - Supports all Langchain models
170
- - Configurable model selection based on needs
171
-
172
- - 📊 **Rich Output Options**
173
- - Detailed research findings with proper citations
174
- - Well-structured comprehensive research reports
175
- - Quick summaries for rapid insights
176
- - Source tracking and verification
177
-
178
- - 🔒 **Privacy-Focused**
179
- - Runs entirely on your machine when using local models
180
- - Configurable search settings
181
- - Transparent data handling
182
-
183
- - 🌐 **Enhanced Search Integration**
184
- - **Auto-selection of search sources**: The "auto" search engine intelligently analyzes your query and selects the most appropriate search engine
185
- - Multiple search engines including Wikipedia, arXiv, PubMed, Semantic Scholar, and more
186
- - **Local RAG search for private documents** - search your own documents with vector embeddings
187
- - Full webpage content retrieval and intelligent filtering
188
-
189
- - 🎓 **Academic & Scientific Integration**
190
- - Direct integration with PubMed, arXiv, Wikipedia, Semantic Scholar
191
- - Properly formatted citations from academic sources
192
- - Report structure suitable for literature reviews
193
- - Cross-disciplinary synthesis of information
194
-
195
215
  ## Configuration System
196
216
 
197
217
  The package automatically creates and manages configuration files in your user directory:
@@ -206,7 +226,6 @@ When you first run the tool, it creates these configuration files:
206
226
  | File | Purpose |
207
227
  |------|---------|
208
228
  | `settings.toml` | General settings for research, web interface, and search |
209
- | `llm_config.py` | Advanced LLM configuration (rarely needs modification) |
210
229
  | `search_engines.toml` | Define and configure search engines |
211
230
  | `local_collections.toml` | Configure local document collections for RAG |
212
231
  | `.env` | Environment variables for configuration (recommended for API keys) |
@@ -219,7 +238,7 @@ The system supports multiple LLM providers:
219
238
 
220
239
  ### Local Models (via Ollama)
221
240
 
222
- 1. [Install Ollama](https://ollama.ai)
241
+ 1. [Install Ollama](https://ollama.ai)
223
242
  2. Pull a model: `ollama pull gemma3:12b` (recommended model)
224
243
  3. Ollama runs on port 11434 by default
225
244
 
@@ -233,13 +252,11 @@ ANTHROPIC_API_KEY=your-api-key-here # For Claude models
233
252
  OPENAI_API_KEY=your-openai-key-here # For GPT models
234
253
  OPENAI_ENDPOINT_API_KEY=your-key-here # For OpenRouter or similar services
235
254
 
236
- # Set your preferred LLM provider and model (no need to edit llm_config.py)
255
+ # Set your preferred LLM provider and model
237
256
  LDR_LLM__PROVIDER=ollama # Options: ollama, openai, anthropic, etc.
238
257
  LDR_LLM__MODEL=gemma3:12b # Model name to use
239
258
  ```
240
259
 
241
- > **Important:** In most cases, you don't need to modify the `llm_config.py` file. Simply set the `LDR_LLM__PROVIDER` and `LDR_LLM__MODEL` environment variables to use your preferred model.
242
-
243
260
  ### Supported LLM Providers
244
261
 
245
262
  The system supports multiple LLM providers:
@@ -373,10 +390,11 @@ LDR_SEARCH__QUESTIONS_PER_ITERATION=2
373
390
  The web interface offers several features:
374
391
 
375
392
  - **Dashboard**: Start and manage research queries
376
- - **Real-time Updates**: Track research progress
393
+ - **Real-time Updates**: Track research progress with improved logging
377
394
  - **Research History**: Access past queries
378
395
  - **PDF Export**: Download reports
379
396
  - **Research Management**: Terminate processes or delete records
397
+ - **Enhanced Settings Panel**: New unified settings UI with improved organization
380
398
 
381
399
  ## Command Line Interface
382
400
 
@@ -387,17 +405,19 @@ The CLI version allows you to:
387
405
  3. View results directly in the terminal
388
406
  4. Save reports automatically to the configured output directory
389
407
 
390
- ## Development Setup
408
+ ## Development Environment
391
409
 
392
- If you want to develop or modify the package, you can install it in development mode:
410
+ This project now uses PDM for dependency management. To set up a development environment:
393
411
 
394
412
  ```bash
395
- # Clone the repository
396
- git clone https://github.com/LearningCircuit/local-deep-research.git
397
- cd local-deep-research
413
+ # Install PDM if you don't have it
414
+ pip install pdm
415
+
416
+ # Install dependencies
417
+ pdm install --no-self
398
418
 
399
- # Install in development mode
400
- pip install -e .
419
+ # Activate the environment
420
+ pdm venv activate
401
421
  ```
402
422
 
403
423
  You can run the application directly using Python module syntax:
@@ -410,9 +430,82 @@ python -m local_deep_research.web.app
410
430
  python -m local_deep_research.main
411
431
  ```
412
432
 
433
+ For more information, see the [development documentation](docs/developing.md).
434
+
435
+ ## Unified Database
436
+
437
+ The application now uses a single unified database (`ldr.db`) for all settings and history, making configuration management simpler and more reliable.
438
+
439
+ ### Migration from v0.1.x
440
+
441
+ If you have existing data in legacy databases from v0.1.x, the application will automatically migrate your data when you first run v0.2.0.
442
+
443
+ ## Contributing
444
+
445
+ Contributions are welcome! Please feel free to submit a Pull Request.
446
+
447
+ ### Development Setup with PDM
448
+
449
+ This project uses PDM for dependency management. Here's how to set up your development environment:
450
+
451
+ ```bash
452
+ # Install PDM if you don't have it
453
+ pip install pdm
454
+
455
+ # Clone the repository
456
+ git clone https://github.com/LearningCircuit/local-deep-research.git
457
+ cd local-deep-research
458
+
459
+ # Install dependencies including dev dependencies
460
+ pdm install --no-self
461
+
462
+ # Set up pre-commit hooks
463
+ pdm run pre-commit install
464
+ pdm run pre-commit install-hooks
465
+
466
+ # Activate the virtual environment
467
+ pdm venv activate
468
+ ```
469
+
470
+ #### Common PDM Commands
471
+
472
+ ```bash
473
+ # Run linting checks
474
+ pdm run flake8
475
+ pdm run black .
476
+
477
+ # Run tests (when available)
478
+ pdm run pytest
479
+
480
+ # Add a new dependency
481
+ pdm add package-name
482
+
483
+ # Add a development dependency
484
+ pdm add -dG dev package-name
485
+ ```
486
+
487
+ ### Contributing Process
488
+
489
+ 1. Fork the repository
490
+ 2. Create your feature branch (`git checkout -b feature/AmazingFeature`)
491
+ 3. Make your changes
492
+ 4. Run linting checks to ensure code quality
493
+ 5. Commit your changes (`git commit -m 'Add some AmazingFeature'`)
494
+ 6. Push to the branch (`git push origin feature/AmazingFeature`)
495
+ 7. **Important:** Open a Pull Request against the `dev` branch, not the `main` branch
496
+
497
+ We prefer all pull requests to be submitted against the `dev` branch for easier testing and integration before releasing to the main branch.
498
+
499
+ ### Getting Help
500
+
501
+ Join our [Discord server](https://discord.gg/ttcqQeFcJ3) if you're planning to contribute. Let us know about your plans - we're always happy to guide new contributors and discuss feature ideas!
502
+
413
503
  ## Community & Support
414
504
 
415
- Join our [Discord server](https://discord.gg/2E6gYU2Z) to exchange ideas, discuss usage patterns, and share research approaches.
505
+ Join our [Discord server](https://discord.gg/ttcqQeFcJ3) to exchange ideas, discuss usage patterns, and
506
+ share research approaches.
507
+
508
+ Follow our [Subreddit](https://www.reddit.com/r/LocalDeepResearch/) for announcements, updates, and feature highlights.
416
509
 
417
510
  ## License
418
511
 
@@ -439,16 +532,3 @@ This project is licensed under the MIT License.
439
532
  > - [Support arXiv](https://arxiv.org/about/give)
440
533
  > - [Donate to DuckDuckGo](https://duckduckgo.com/donations)
441
534
  > - [Support PubMed/NCBI](https://www.nlm.nih.gov/pubs/donations/donations.html)
442
-
443
- ## Contributing
444
-
445
- Contributions are welcome! Please feel free to submit a Pull Request.
446
-
447
- 1. Fork the repository
448
- 2. Create your feature branch (`git checkout -b feature/AmazingFeature`)
449
- 3. Make your changes
450
- 4. Commit your changes (`git commit -m 'Add some AmazingFeature'`)
451
- 5. Push to the branch (`git push origin feature/AmazingFeature`)
452
- 6. **Important:** Open a Pull Request against the `dev` branch, not the `main` branch
453
-
454
- We prefer all pull requests to be submitted against the `dev` branch for easier testing and integration before releasing to the main branch.
@@ -1,5 +1,44 @@
1
1
  # Local Deep Research
2
2
 
3
+ ## Features
4
+
5
+ - 🔍 **Advanced Research Capabilities**
6
+ - Automated deep research with intelligent follow-up questions
7
+ - Proper inline citation and source verification
8
+ - Multi-iteration analysis for comprehensive coverage
9
+ - Full webpage content analysis (not just snippets)
10
+
11
+ - 🤖 **Flexible LLM Support**
12
+ - Local AI processing with Ollama models
13
+ - Cloud LLM support (Claude, GPT)
14
+ - Supports all Langchain models
15
+ - Configurable model selection based on needs
16
+
17
+ - 📊 **Rich Output Options**
18
+ - Detailed research findings with proper citations
19
+ - Well-structured comprehensive research reports
20
+ - Quick summaries for rapid insights
21
+ - Source tracking and verification
22
+
23
+ - 🔒 **Privacy-Focused**
24
+ - Runs entirely on your machine when using local models
25
+ - Configurable search settings
26
+ - Transparent data handling
27
+
28
+ - 🌐 **Enhanced Search Integration**
29
+ - **Auto-selection of search sources**: The "auto" search engine intelligently analyzes your query and selects the most appropriate search engine
30
+ - Multiple search engines including Wikipedia, arXiv, PubMed, Semantic Scholar, and more
31
+ - **Local RAG search for private documents** - search your own documents with vector embeddings
32
+ - Full webpage content retrieval and intelligent filtering
33
+
34
+ - 🎓 **Academic & Scientific Integration**
35
+ - Direct integration with PubMed, arXiv, Wikipedia, Semantic Scholar
36
+ - Properly formatted citations from academic sources
37
+ - Report structure suitable for literature reviews
38
+ - Cross-disciplinary synthesis of information
39
+
40
+ | [Reddit](https://www.reddit.com/r/LocalDeepResearch/) | [Discord](https://discord.gg/ttcqQeFcJ3) |
41
+
3
42
  A powerful AI-powered research assistant that performs deep, iterative analysis using multiple LLMs and web searches. The system can be run locally for privacy or configured to use cloud-based LLMs for enhanced capabilities.
4
43
 
5
44
  <div align="center">
@@ -10,7 +49,15 @@ A powerful AI-powered research assistant that performs deep, iterative analysis
10
49
  </a>
11
50
  </div>
12
51
 
52
+ **Important for non-academic searches:** For normal web searches you will need SearXNG or an API key to a search provider like brave search or SerpAPI. The free searches are mostly academic search engines and will not help you for most normal searches.
53
+
54
+ ## Windows Installation
13
55
 
56
+ Download the [Windows Installer](https://github.com/LearningCircuit/local-deep-research/releases/download/v0.2.0/LocalDeepResearch_Setup.exe) for easy one-click installation.
57
+
58
+ **Requires Ollama (or other model provider configured in .env).**
59
+ Download from https://ollama.ai and then pull a model
60
+ ollama pull gemma3:12b
14
61
 
15
62
  ## Quick Start (not required if installed with windows installer)
16
63
 
@@ -59,6 +106,16 @@ For comprehensive Docker setup information, see:
59
106
  - [Docker Usage Guide](https://github.com/LearningCircuit/local-deep-research/blob/main/docs/docker-usage-readme.md)
60
107
  - [Docker Compose Guide](https://github.com/LearningCircuit/local-deep-research/blob/main/docs/docker-compose-guide.md)
61
108
 
109
+ ## Migrating from Version 0.1.0
110
+
111
+ If you just upgraded from 0.1.0, and you want to preserve your configuration,
112
+ you will need to manually migrate from the old config files to the new settings
113
+ database:
114
+
115
+ ```bash
116
+ python -m local_deep_research.migrate_db
117
+ ```
118
+
62
119
  ## Programmatic Access
63
120
 
64
121
  Local Deep Research now provides a simple API for programmatic access to its research capabilities:
@@ -68,7 +125,7 @@ import os
68
125
  # Set environment variables to control the LLM
69
126
  os.environ["LDR_LLM__MODEL"] = "mistral" # Specify model name
70
127
 
71
- from local_deep_research import quick_summary, generate_report, analyze_documents
128
+ from local_deep_research import quick_summary, generate_report
72
129
 
73
130
  # Generate a quick research summary with custom parameters
74
131
  results = quick_summary(
@@ -84,44 +141,6 @@ print(results["summary"])
84
141
 
85
142
  These functions provide flexible options for customizing the search parameters, iterations, and output formats. For more examples, see the [programmatic access tutorial](https://github.com/LearningCircuit/local-deep-research/blob/main/examples/programmatic_access.ipynb).
86
143
 
87
-
88
- ## Features
89
-
90
- - 🔍 **Advanced Research Capabilities**
91
- - Automated deep research with intelligent follow-up questions
92
- - Proper inline citation and source verification
93
- - Multi-iteration analysis for comprehensive coverage
94
- - Full webpage content analysis (not just snippets)
95
-
96
- - 🤖 **Flexible LLM Support**
97
- - Local AI processing with Ollama models
98
- - Cloud LLM support (Claude, GPT)
99
- - Supports all Langchain models
100
- - Configurable model selection based on needs
101
-
102
- - 📊 **Rich Output Options**
103
- - Detailed research findings with proper citations
104
- - Well-structured comprehensive research reports
105
- - Quick summaries for rapid insights
106
- - Source tracking and verification
107
-
108
- - 🔒 **Privacy-Focused**
109
- - Runs entirely on your machine when using local models
110
- - Configurable search settings
111
- - Transparent data handling
112
-
113
- - 🌐 **Enhanced Search Integration**
114
- - **Auto-selection of search sources**: The "auto" search engine intelligently analyzes your query and selects the most appropriate search engine
115
- - Multiple search engines including Wikipedia, arXiv, PubMed, Semantic Scholar, and more
116
- - **Local RAG search for private documents** - search your own documents with vector embeddings
117
- - Full webpage content retrieval and intelligent filtering
118
-
119
- - 🎓 **Academic & Scientific Integration**
120
- - Direct integration with PubMed, arXiv, Wikipedia, Semantic Scholar
121
- - Properly formatted citations from academic sources
122
- - Report structure suitable for literature reviews
123
- - Cross-disciplinary synthesis of information
124
-
125
144
  ## Configuration System
126
145
 
127
146
  The package automatically creates and manages configuration files in your user directory:
@@ -136,7 +155,6 @@ When you first run the tool, it creates these configuration files:
136
155
  | File | Purpose |
137
156
  |------|---------|
138
157
  | `settings.toml` | General settings for research, web interface, and search |
139
- | `llm_config.py` | Advanced LLM configuration (rarely needs modification) |
140
158
  | `search_engines.toml` | Define and configure search engines |
141
159
  | `local_collections.toml` | Configure local document collections for RAG |
142
160
  | `.env` | Environment variables for configuration (recommended for API keys) |
@@ -149,7 +167,7 @@ The system supports multiple LLM providers:
149
167
 
150
168
  ### Local Models (via Ollama)
151
169
 
152
- 1. [Install Ollama](https://ollama.ai)
170
+ 1. [Install Ollama](https://ollama.ai)
153
171
  2. Pull a model: `ollama pull gemma3:12b` (recommended model)
154
172
  3. Ollama runs on port 11434 by default
155
173
 
@@ -163,13 +181,11 @@ ANTHROPIC_API_KEY=your-api-key-here # For Claude models
163
181
  OPENAI_API_KEY=your-openai-key-here # For GPT models
164
182
  OPENAI_ENDPOINT_API_KEY=your-key-here # For OpenRouter or similar services
165
183
 
166
- # Set your preferred LLM provider and model (no need to edit llm_config.py)
184
+ # Set your preferred LLM provider and model
167
185
  LDR_LLM__PROVIDER=ollama # Options: ollama, openai, anthropic, etc.
168
186
  LDR_LLM__MODEL=gemma3:12b # Model name to use
169
187
  ```
170
188
 
171
- > **Important:** In most cases, you don't need to modify the `llm_config.py` file. Simply set the `LDR_LLM__PROVIDER` and `LDR_LLM__MODEL` environment variables to use your preferred model.
172
-
173
189
  ### Supported LLM Providers
174
190
 
175
191
  The system supports multiple LLM providers:
@@ -303,10 +319,11 @@ LDR_SEARCH__QUESTIONS_PER_ITERATION=2
303
319
  The web interface offers several features:
304
320
 
305
321
  - **Dashboard**: Start and manage research queries
306
- - **Real-time Updates**: Track research progress
322
+ - **Real-time Updates**: Track research progress with improved logging
307
323
  - **Research History**: Access past queries
308
324
  - **PDF Export**: Download reports
309
325
  - **Research Management**: Terminate processes or delete records
326
+ - **Enhanced Settings Panel**: New unified settings UI with improved organization
310
327
 
311
328
  ## Command Line Interface
312
329
 
@@ -317,17 +334,19 @@ The CLI version allows you to:
317
334
  3. View results directly in the terminal
318
335
  4. Save reports automatically to the configured output directory
319
336
 
320
- ## Development Setup
337
+ ## Development Environment
321
338
 
322
- If you want to develop or modify the package, you can install it in development mode:
339
+ This project now uses PDM for dependency management. To set up a development environment:
323
340
 
324
341
  ```bash
325
- # Clone the repository
326
- git clone https://github.com/LearningCircuit/local-deep-research.git
327
- cd local-deep-research
342
+ # Install PDM if you don't have it
343
+ pip install pdm
344
+
345
+ # Install dependencies
346
+ pdm install --no-self
328
347
 
329
- # Install in development mode
330
- pip install -e .
348
+ # Activate the environment
349
+ pdm venv activate
331
350
  ```
332
351
 
333
352
  You can run the application directly using Python module syntax:
@@ -340,9 +359,82 @@ python -m local_deep_research.web.app
340
359
  python -m local_deep_research.main
341
360
  ```
342
361
 
362
+ For more information, see the [development documentation](docs/developing.md).
363
+
364
+ ## Unified Database
365
+
366
+ The application now uses a single unified database (`ldr.db`) for all settings and history, making configuration management simpler and more reliable.
367
+
368
+ ### Migration from v0.1.x
369
+
370
+ If you have existing data in legacy databases from v0.1.x, the application will automatically migrate your data when you first run v0.2.0.
371
+
372
+ ## Contributing
373
+
374
+ Contributions are welcome! Please feel free to submit a Pull Request.
375
+
376
+ ### Development Setup with PDM
377
+
378
+ This project uses PDM for dependency management. Here's how to set up your development environment:
379
+
380
+ ```bash
381
+ # Install PDM if you don't have it
382
+ pip install pdm
383
+
384
+ # Clone the repository
385
+ git clone https://github.com/LearningCircuit/local-deep-research.git
386
+ cd local-deep-research
387
+
388
+ # Install dependencies including dev dependencies
389
+ pdm install --no-self
390
+
391
+ # Set up pre-commit hooks
392
+ pdm run pre-commit install
393
+ pdm run pre-commit install-hooks
394
+
395
+ # Activate the virtual environment
396
+ pdm venv activate
397
+ ```
398
+
399
+ #### Common PDM Commands
400
+
401
+ ```bash
402
+ # Run linting checks
403
+ pdm run flake8
404
+ pdm run black .
405
+
406
+ # Run tests (when available)
407
+ pdm run pytest
408
+
409
+ # Add a new dependency
410
+ pdm add package-name
411
+
412
+ # Add a development dependency
413
+ pdm add -dG dev package-name
414
+ ```
415
+
416
+ ### Contributing Process
417
+
418
+ 1. Fork the repository
419
+ 2. Create your feature branch (`git checkout -b feature/AmazingFeature`)
420
+ 3. Make your changes
421
+ 4. Run linting checks to ensure code quality
422
+ 5. Commit your changes (`git commit -m 'Add some AmazingFeature'`)
423
+ 6. Push to the branch (`git push origin feature/AmazingFeature`)
424
+ 7. **Important:** Open a Pull Request against the `dev` branch, not the `main` branch
425
+
426
+ We prefer all pull requests to be submitted against the `dev` branch for easier testing and integration before releasing to the main branch.
427
+
428
+ ### Getting Help
429
+
430
+ Join our [Discord server](https://discord.gg/ttcqQeFcJ3) if you're planning to contribute. Let us know about your plans - we're always happy to guide new contributors and discuss feature ideas!
431
+
343
432
  ## Community & Support
344
433
 
345
- Join our [Discord server](https://discord.gg/2E6gYU2Z) to exchange ideas, discuss usage patterns, and share research approaches.
434
+ Join our [Discord server](https://discord.gg/ttcqQeFcJ3) to exchange ideas, discuss usage patterns, and
435
+ share research approaches.
436
+
437
+ Follow our [Subreddit](https://www.reddit.com/r/LocalDeepResearch/) for announcements, updates, and feature highlights.
346
438
 
347
439
  ## License
348
440
 
@@ -369,16 +461,3 @@ This project is licensed under the MIT License.
369
461
  > - [Support arXiv](https://arxiv.org/about/give)
370
462
  > - [Donate to DuckDuckGo](https://duckduckgo.com/donations)
371
463
  > - [Support PubMed/NCBI](https://www.nlm.nih.gov/pubs/donations/donations.html)
372
-
373
- ## Contributing
374
-
375
- Contributions are welcome! Please feel free to submit a Pull Request.
376
-
377
- 1. Fork the repository
378
- 2. Create your feature branch (`git checkout -b feature/AmazingFeature`)
379
- 3. Make your changes
380
- 4. Commit your changes (`git commit -m 'Add some AmazingFeature'`)
381
- 5. Push to the branch (`git push origin feature/AmazingFeature`)
382
- 6. **Important:** Open a Pull Request against the `dev` branch, not the `main` branch
383
-
384
- We prefer all pull requests to be submitted against the `dev` branch for easier testing and integration before releasing to the main branch.