local-deep-research 0.5.0__py3-none-any.whl → 0.5.3__py3-none-any.whl

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.
@@ -1,9 +1,9 @@
1
- local_deep_research-0.5.0.dist-info/METADATA,sha256=MHzkyEprOZlD9pJTHHXdxuucEcKweXxPJRJ2qgAtIWk,17676
2
- local_deep_research-0.5.0.dist-info/WHEEL,sha256=tSfRZzRHthuv7vxpI4aehrdN9scLjk-dCJkPLzkHxGg,90
3
- local_deep_research-0.5.0.dist-info/entry_points.txt,sha256=GcXS501Rjh-P80S8db7hnrQ23mS_Jg27PwpVQVO77as,113
4
- local_deep_research-0.5.0.dist-info/licenses/LICENSE,sha256=Qg2CaTdu6SWnSqk1_JtgBPp_Da-LdqJDhT1Vt1MUc5s,1072
1
+ local_deep_research-0.5.3.dist-info/METADATA,sha256=sJGfKxEAI9Nn8wafKK3qnTOaj8sJzq2mqNvl130ep0s,17676
2
+ local_deep_research-0.5.3.dist-info/WHEEL,sha256=tSfRZzRHthuv7vxpI4aehrdN9scLjk-dCJkPLzkHxGg,90
3
+ local_deep_research-0.5.3.dist-info/entry_points.txt,sha256=GcXS501Rjh-P80S8db7hnrQ23mS_Jg27PwpVQVO77as,113
4
+ local_deep_research-0.5.3.dist-info/licenses/LICENSE,sha256=Qg2CaTdu6SWnSqk1_JtgBPp_Da-LdqJDhT1Vt1MUc5s,1072
5
5
  local_deep_research/__init__.py,sha256=j1ktf_e9HeXPe86NHibY5aINtZfTSGRTvLNtz9BJZa4,1071
6
- local_deep_research/__version__.py,sha256=LBK46heutvn3KmsCrKIYu8RQikbfnjZaj2xFrXaeCzQ,22
6
+ local_deep_research/__version__.py,sha256=tgzuqHKcEdKBaP57F5oXxq4XlW2n9J4Fj8ZGu7nGOZg,22
7
7
  local_deep_research/advanced_search_system/__init__.py,sha256=sGusMj4eFIrhXR6QbOM16UDKB6aI-iS4IFivKWpMlh0,234
8
8
  local_deep_research/advanced_search_system/answer_decoding/__init__.py,sha256=BmmbIPQnouYyboFD61CDq71fW5On555w7dbt42s9gV4,148
9
9
  local_deep_research/advanced_search_system/answer_decoding/browsecomp_answer_decoder.py,sha256=4FDMP4n_z5DOzVIisH3_kexRqNm1AO3MDe-Md3WtgE0,12856
@@ -135,11 +135,14 @@ local_deep_research/citation_handlers/forced_answer_citation_handler.py,sha256=o
135
135
  local_deep_research/citation_handlers/precision_extraction_handler.py,sha256=wJkoWzu4ODAZRJoCH5WPZVD96UnsrfBDvW8cE4FCm_Q,19835
136
136
  local_deep_research/citation_handlers/standard_citation_handler.py,sha256=PaJDvkwWOW6J4ZtA1VYSE78F4p3xiMtH1ZvdIBceyDQ,2987
137
137
  local_deep_research/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
138
- local_deep_research/config/llm_config.py,sha256=2f4hoAAGg4yVlsiZZKyLjIWj0u4a3FFzfFKkgFm6Dbs,18775
138
+ local_deep_research/config/llm_config.py,sha256=_IIYxtdn9S3ry2OVrBX9ztLNg3frSp2vNqDcqhie-aY,21512
139
139
  local_deep_research/config/search_config.py,sha256=DP7SbdcqGPu1yxv3fxtqd1vda5pVY3fH66DyDKuzJio,2209
140
140
  local_deep_research/defaults/.env.template,sha256=_eVCy4d_XwpGXy8n50CG3wH9xx2oqJCFKS7IbqgInDk,491
141
141
  local_deep_research/defaults/__init__.py,sha256=EUnb-wRT2mtv6lqM0hB16KfHJkR7d8JBNCIbEKwu48k,1342
142
142
  local_deep_research/defaults/default_settings.json,sha256=0dfTFkplu7wnLJQYLBf4wKER55EmYbp_rMAJ5kgmUXc,124250
143
+ local_deep_research/error_handling/__init__.py,sha256=3kiEhchFP-gDeD_qM3lhtQqeVx7enqIwm_4hBKtohLg,396
144
+ local_deep_research/error_handling/error_reporter.py,sha256=tPBWUftpw6NWIcoRJJbaGaLApx7CQdcz3AppGDWKmnM,8583
145
+ local_deep_research/error_handling/report_generator.py,sha256=EQnKC2uENEWNAhOA2swJTxEG5CEwZDTHY4dlM1s4kM0,17303
143
146
  local_deep_research/metrics/__init__.py,sha256=u1yUJndwNie8Pq3HGx2NxmFCVwIl0EvkxSxiMFpzSyM,331
144
147
  local_deep_research/metrics/database.py,sha256=Nd6jTN__ZLM2lHld9sHT_tiVe3XNFgNeanFhIVuAVhw,1686
145
148
  local_deep_research/metrics/db_models.py,sha256=X3ow1uXjjmZhdARE7MV37pQhr3UQknB1X5iWdTiJtSs,3464
@@ -159,7 +162,6 @@ local_deep_research/migrate_db.py,sha256=-Ql7bC2VmXlWtDOXj7CGVBvBlSk--wHyZCniWJn
159
162
  local_deep_research/report_generator.py,sha256=J7Y7_soTAPkIajzbkIAPeq1ziTsXPMMz4Fwl6C-n6Zw,9282
160
163
  local_deep_research/search_system.py,sha256=BpHhWXj82iVAJajpwyHaYyeBcNKbYY5DG2oxoNDERlo,27194
161
164
  local_deep_research/setup_data_dir.py,sha256=7MJa2MMdDUnktJVHwMpyNL2079-qylpIyyLpVbF5AUY,1134
162
- local_deep_research/test_migration.py,sha256=vzgGkY2EkmvQYJtUGD7Vt14i8jf04oCvNkzMnwuMBzY,6683
163
165
  local_deep_research/utilities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
164
166
  local_deep_research/utilities/db_utils.py,sha256=BE3oP7WRbtlaqOxMrVFoAo11NpTk3RlC9w8tZUC_INU,1681
165
167
  local_deep_research/utilities/enums.py,sha256=yFwmodt93uETdQd7qyW4vOUhiAzZF-BHBbVYHKN7scU,223
@@ -177,19 +179,19 @@ local_deep_research/web/app.py,sha256=tzxKLJU1m8aG6HXIiDbHaGkd8seX_A3pfgr9wK7w6Z
177
179
  local_deep_research/web/app_factory.py,sha256=7o5GM8PUwVzB1sz7PywXLLqw3QkzhZZ18mBPbvZXKbM,9153
178
180
  local_deep_research/web/database/README.md,sha256=eEDLqLIfOBRvc0TFh3J1HrtFbZceYmVgpjS3-oyZ5nI,2861
179
181
  local_deep_research/web/database/migrate_to_ldr_db.py,sha256=RRzITerhjUjlHPTf6GoNgrwa4BpKuj_RAohzcS9ttG0,9919
180
- local_deep_research/web/database/migrations.py,sha256=KuqYMPuyz3J_VWTfd_53r1BfXt6P30BKJzj6KlrEh8I,2048
181
- local_deep_research/web/database/models.py,sha256=fikYpV7iHfTmIvM0sfDjm3X3fPhp6XIlmgCiQYmkq14,5521
182
+ local_deep_research/web/database/migrations.py,sha256=BKUDckR98Yz8cMtd473lMxLcVqWTtFyHVFWFPs9PgfY,2468
183
+ local_deep_research/web/database/models.py,sha256=k5YSyhw_vjBDdI-_gIdoTboPHWhX_O_el0SZ0SVKJrM,5747
182
184
  local_deep_research/web/database/schema_upgrade.py,sha256=x3zwZNTR2kpfqOdg573fyX6X4bH1yF5pc_it_a44CR4,3525
183
- local_deep_research/web/models/database.py,sha256=9ORuGX4WoVSiGXijL-YF4-dg1e2avfCByZrUBZ8pKIg,8566
185
+ local_deep_research/web/models/database.py,sha256=uBecKQpZd9cXdt2ZPUr0FOpHFbDZd40kQNKYSZOxnEI,8422
184
186
  local_deep_research/web/models/settings.py,sha256=rXBI9vY5k3ndR8dPd3fZJy-6HwYltQihhSBRq-sZutw,2314
185
187
  local_deep_research/web/routes/api_routes.py,sha256=7hOFqF7Y3Qc5PwugXRoSi1CEVIcXUeW6nSwWayLB0P4,20052
186
188
  local_deep_research/web/routes/benchmark_routes.py,sha256=bXiURrmWoaGtbOQ3jhgXgxjs3Qa440Jqk1CPZ1QMyO0,15725
187
189
  local_deep_research/web/routes/globals.py,sha256=cCCSW0MPxHKNXDy0kGG5HqOz197i1iyqJdWRI72DCWw,454
188
- local_deep_research/web/routes/history_routes.py,sha256=ZKuLJRahQfSzyxVDTm02QqrLgPHNZ1OsUv1kaO-6cbc,12839
190
+ local_deep_research/web/routes/history_routes.py,sha256=fFdZbMBWAQmtgTipWD1zNeRDhXRGAYiJhCmWrlWYaaY,12847
189
191
  local_deep_research/web/routes/metrics_routes.py,sha256=b0fYdhH_OvyvMRjdswA41qPNV4DIWrZjoOnlysEBcAE,41619
190
- local_deep_research/web/routes/research_routes.py,sha256=l2V-wMMC0_x0jx5tpwu7XOurK13vR7v3ri5jqPveqYY,29333
192
+ local_deep_research/web/routes/research_routes.py,sha256=fVMV9WDO2T6XVVH1oU_bCXR1ekg6XNbnvkc61NB-DQs,27964
191
193
  local_deep_research/web/routes/settings_routes.py,sha256=0VZPWSZ9-yQNFNdid_rC4jzqKI2sE0AjucuIstZx548,60600
192
- local_deep_research/web/services/research_service.py,sha256=WdbdwkfBCL_Ve8C1w-VxhwIWQYAeDiGxP7OlRWBvsJA,44684
194
+ local_deep_research/web/services/research_service.py,sha256=UXzq9Kx5t3fOv4IHKk2fP413XvEEwDzUapF5ehZzAIM,48027
193
195
  local_deep_research/web/services/resource_service.py,sha256=aU7SDADxcIAAuIymL_TOxUV_HvEMAfL8gZSB5gVSzFM,4674
194
196
  local_deep_research/web/services/settings_manager.py,sha256=EsAqZ5LTFFJcrWdCEheQYUqMWCwh7AUGe6Jefi8-Df4,19744
195
197
  local_deep_research/web/services/settings_service.py,sha256=W3TdSb1_WTBdKVQEvi4swXBP99dMm2IT7H-5Y1weEH4,3535
@@ -204,9 +206,9 @@ local_deep_research/web/static/js/components/fallback/formatting.js,sha256=OoP38
204
206
  local_deep_research/web/static/js/components/fallback/ui.js,sha256=O4fMeHXodvpFTEgSYR2TmcbL5Kyt2Hq1Tv2O7B3fDpk,7210
205
207
  local_deep_research/web/static/js/components/history.js,sha256=TiE1R1U81L0bOuKhBgmB-9gS-66YNgmi_yIy-rG_5uY,15507
206
208
  local_deep_research/web/static/js/components/logpanel.js,sha256=IiTpKPSEn7KtKT4xh9X6FcMZWfloj5eTDa8Oday2lhs,42808
207
- local_deep_research/web/static/js/components/progress.js,sha256=tw2RchReAeU5mQcN9KgYKD6Qh1uhv2RTsBHL5aOJ1IU,42130
209
+ local_deep_research/web/static/js/components/progress.js,sha256=8cydtosQZpdX2MTpYEq9GPARCWV5azKMaRHxYiDvJoM,42542
208
210
  local_deep_research/web/static/js/components/research.js,sha256=EGWDdpswJnvH3GNlmp5albNzMv6-_20uF2D0qB73-zo,86577
209
- local_deep_research/web/static/js/components/results.js,sha256=3gIfl44dxsG0pMG7MHBIRAT7c_R5Lc0A5WakSdTzxV8,35755
211
+ local_deep_research/web/static/js/components/results.js,sha256=3kDk0kodglBqIODh_ve0I9ERIZkITz2yB5isUUda-bc,35763
210
212
  local_deep_research/web/static/js/components/settings.js,sha256=qnRxnx9LdyOpjIEKfb4mJdES9sLkNKvyzxy4OGUqmGQ,169998
211
213
  local_deep_research/web/static/js/components/settings_sync.js,sha256=LWDZ2EE8ChCxI5TPmPm9F4rOiYIEzEJxSCE1GLXk-2w,3925
212
214
  local_deep_research/web/static/js/main.js,sha256=z7gJvwL6A7xqAYloen8uoshdOLeRWohM57xsfrCDUuI,8143
@@ -232,7 +234,7 @@ local_deep_research/web/templates/pages/details.html,sha256=Led51_cv97e_Z057_7QV
232
234
  local_deep_research/web/templates/pages/history.html,sha256=dGeXmpp1WTsd3Em_8k1cscwOJEPO_7puu04KC966QhA,1982
233
235
  local_deep_research/web/templates/pages/metrics.html,sha256=IYG08UNnWAATqCDh0fRskJONKjHTLGgLWcrztiAm0Yg,81507
234
236
  local_deep_research/web/templates/pages/progress.html,sha256=iRKGkgyo9wBKrYAiwk61MbnaDUxeQf8SGP3wGoHWteQ,2546
235
- local_deep_research/web/templates/pages/research.html,sha256=KnIZQ1GiyJ2wRwQWJi9fn2ozzF1x0NL8xaEZsx059QM,9634
237
+ local_deep_research/web/templates/pages/research.html,sha256=Nn_LatiSZfKxa-Oq7z1WaV65GfPHu35YvYJDlHiTDs0,9634
236
238
  local_deep_research/web/templates/pages/results.html,sha256=n5tHESU5iRcjwjga4y589r41B9NEqHIvzpMsXlRL0vw,3591
237
239
  local_deep_research/web/templates/pages/star_reviews.html,sha256=Bg3cGwRjNBBSvC9ZoqZqjY-6_0-cM4VZHRGlTai_Wng,24361
238
240
  local_deep_research/web/templates/settings_dashboard.html,sha256=A1fBe1D29v8G3ys94_rIiBP6Ky-rtYL6TRbDluoBMPI,4342
@@ -262,4 +264,4 @@ local_deep_research/web_search_engines/engines/search_engine_wikipedia.py,sha256
262
264
  local_deep_research/web_search_engines/search_engine_base.py,sha256=sRgtszDM9RqNw_oVdmGk8CmKS_9EJYR-LyE1as53cp8,12401
263
265
  local_deep_research/web_search_engines/search_engine_factory.py,sha256=eMaFup2p4u1nP4fTmjzfLUAl_mUZkoE1mUABBIvNzDM,12095
264
266
  local_deep_research/web_search_engines/search_engines_config.py,sha256=oJ5GL9BhFvWFgmFtvwJ7AZ9o-uPLEfTNhJJouHF40iA,5296
265
- local_deep_research-0.5.0.dist-info/RECORD,,
267
+ local_deep_research-0.5.3.dist-info/RECORD,,
@@ -1,188 +0,0 @@
1
- #!/usr/bin/env python
2
- """
3
- Migration test script for Local Deep Research.
4
- This script checks the contents of both the legacy and new databases to diagnose migration issues.
5
- """
6
-
7
- import os
8
- import sqlite3
9
- import sys
10
- import time
11
-
12
-
13
- def check_db_content(db_path, description):
14
- """Check what tables and how many rows are in a database."""
15
- if not os.path.exists(db_path):
16
- print(f"❌ {description} database not found at: {db_path}")
17
- return False
18
-
19
- print(f"📊 Examining {description} database at: {db_path}")
20
- try:
21
- conn = sqlite3.connect(db_path)
22
- cursor = conn.cursor()
23
-
24
- # Get list of tables
25
- cursor.execute("SELECT name FROM sqlite_master WHERE type='table'")
26
- tables = [
27
- row[0]
28
- for row in cursor.fetchall()
29
- if not row[0].startswith("sqlite_")
30
- ]
31
-
32
- if not tables:
33
- print(" ℹ️ No user tables found in database")
34
- conn.close()
35
- return False
36
-
37
- print(f" 📋 Tables found: {', '.join(tables)}")
38
-
39
- # For each table, count rows
40
- for table in tables:
41
- cursor.execute(f"SELECT COUNT(*) FROM {table}")
42
- count = cursor.fetchone()[0]
43
- print(f" 📝 Table '{table}' has {count} rows")
44
-
45
- # If table has rows, show sample
46
- if count > 0:
47
- cursor.execute(f"SELECT * FROM {table} LIMIT 1")
48
- columns = [description[0] for description in cursor.description]
49
- print(f" Columns: {', '.join(columns)}")
50
-
51
- # For specific tables, get key columns
52
- if table in [
53
- "research_history",
54
- "research_logs",
55
- "research",
56
- "settings",
57
- ]:
58
- key_cols = (
59
- "id, query, status"
60
- if table == "research_history"
61
- else "id, key, value"
62
- if table == "settings"
63
- else "id, message"
64
- )
65
- cursor.execute(f"SELECT {key_cols} FROM {table} LIMIT 3")
66
- sample = cursor.fetchall()
67
- for row in sample:
68
- print(f" Sample data: {row}")
69
-
70
- conn.close()
71
- return True
72
- except Exception as e:
73
- print(f"❌ Error examining database: {e}")
74
- return False
75
-
76
-
77
- def main():
78
- """Main function to test the migration."""
79
- # Import necessary constants
80
- try:
81
- # Set up paths
82
- current_dir = os.path.dirname(os.path.abspath(__file__))
83
- project_root = os.path.abspath(os.path.join(current_dir, "..", ".."))
84
-
85
- # Determine paths
86
- data_dir = os.path.join(project_root, "data")
87
- new_db_path = os.path.join(data_dir, "ldr.db")
88
-
89
- legacy_research_history_db = os.path.join(
90
- project_root, "src", "local_deep_research", "research_history.db"
91
- )
92
- legacy_deep_research_db = os.path.join(data_dir, "deep_research.db")
93
-
94
- # Print paths for verification
95
- print("=" * 60)
96
- print("DATABASE PATHS")
97
- print("=" * 60)
98
- print(f"New database path: {new_db_path}")
99
- print(f"Legacy research history DB: {legacy_research_history_db}")
100
- print(f"Legacy deep research DB: {legacy_deep_research_db}")
101
- print("=" * 60)
102
-
103
- # Check all databases
104
- check_db_content(legacy_research_history_db, "Legacy research_history")
105
- check_db_content(legacy_deep_research_db, "Legacy deep_research")
106
-
107
- # Now check for the new database or create it if needed
108
- if os.path.exists(new_db_path):
109
- check_db_content(new_db_path, "New ldr")
110
- else:
111
- print(f"ℹ️ New database doesn't exist yet at: {new_db_path}")
112
- print("Would you like to run a test migration? (y/n)")
113
- choice = input("> ").lower()
114
- if choice == "y":
115
- # Run the migration script directly
116
- try:
117
- from src.local_deep_research.setup_data_dir import (
118
- setup_data_dir,
119
- )
120
- except ImportError:
121
- # If that fails, try with the direct import
122
- sys.path.append(
123
- os.path.dirname(
124
- os.path.dirname(os.path.abspath(__file__))
125
- )
126
- )
127
- from local_deep_research.setup_data_dir import (
128
- setup_data_dir,
129
- )
130
-
131
- setup_data_dir()
132
-
133
- # Import migration function
134
- try:
135
- from src.local_deep_research.web.database.migrate_to_ldr_db import (
136
- migrate_to_ldr_db,
137
- )
138
- except ImportError:
139
- # If that fails, try with the direct import
140
- from local_deep_research.web.database.migrate_to_ldr_db import (
141
- migrate_to_ldr_db,
142
- )
143
-
144
- print("Running migration...")
145
- success = migrate_to_ldr_db()
146
-
147
- # Wait briefly to ensure file system has time to update
148
- time.sleep(1)
149
-
150
- if success:
151
- print("\n✅ Migration completed. Checking new database:")
152
- check_db_content(new_db_path, "New ldr")
153
- else:
154
- print("❌ Migration failed")
155
-
156
- # Get the paths from the migration script to verify
157
- try:
158
- try:
159
- from src.local_deep_research.web.models.database import (
160
- DB_PATH,
161
- LEGACY_DEEP_RESEARCH_DB,
162
- LEGACY_RESEARCH_HISTORY_DB,
163
- )
164
- except ImportError:
165
- from local_deep_research.web.models.database import (
166
- DB_PATH,
167
- LEGACY_DEEP_RESEARCH_DB,
168
- LEGACY_RESEARCH_HISTORY_DB,
169
- )
170
-
171
- print("\n" + "=" * 60)
172
- print("PATHS FROM DATABASE MODULE")
173
- print("=" * 60)
174
- print(f"DB_PATH: {DB_PATH}")
175
- print(f"LEGACY_RESEARCH_HISTORY_DB: {LEGACY_RESEARCH_HISTORY_DB}")
176
- print(f"LEGACY_DEEP_RESEARCH_DB: {LEGACY_DEEP_RESEARCH_DB}")
177
- except ImportError as e:
178
- print(f"Could not import paths from database module: {e}")
179
-
180
- except Exception as e:
181
- print(f"Error in test script: {e}")
182
- return 1
183
-
184
- return 0
185
-
186
-
187
- if __name__ == "__main__":
188
- sys.exit(main())