local-deep-research 0.5.2__py3-none-any.whl → 0.5.4__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.
- local_deep_research/__version__.py +1 -1
- local_deep_research/config/llm_config.py +61 -1
- local_deep_research/error_handling/__init__.py +13 -0
- local_deep_research/error_handling/error_reporter.py +236 -0
- local_deep_research/error_handling/report_generator.py +403 -0
- local_deep_research/web/routes/history_routes.py +1 -1
- local_deep_research/web/services/research_service.py +106 -2
- local_deep_research/web/static/css/styles.css +78 -3
- local_deep_research/web/static/js/components/custom_dropdown.js +12 -0
- local_deep_research/web/static/js/components/progress.js +19 -13
- local_deep_research/web/static/js/components/research.js +72 -25
- local_deep_research/web/static/js/components/results.js +1 -1
- local_deep_research/web/static/js/services/keyboard.js +46 -5
- local_deep_research/web/templates/pages/research.html +19 -12
- {local_deep_research-0.5.2.dist-info → local_deep_research-0.5.4.dist-info}/METADATA +1 -1
- {local_deep_research-0.5.2.dist-info → local_deep_research-0.5.4.dist-info}/RECORD +19 -17
- local_deep_research/test_migration.py +0 -188
- {local_deep_research-0.5.2.dist-info → local_deep_research-0.5.4.dist-info}/WHEEL +0 -0
- {local_deep_research-0.5.2.dist-info → local_deep_research-0.5.4.dist-info}/entry_points.txt +0 -0
- {local_deep_research-0.5.2.dist-info → local_deep_research-0.5.4.dist-info}/licenses/LICENSE +0 -0
@@ -293,6 +293,18 @@
|
|
293
293
|
}
|
294
294
|
});
|
295
295
|
|
296
|
+
// Blur event - close dropdown when tabbing away
|
297
|
+
input.addEventListener('blur', (e) => {
|
298
|
+
// Small delay to allow click events on dropdown items to fire first
|
299
|
+
setTimeout(() => {
|
300
|
+
// Check if focus has moved to an element inside the dropdown
|
301
|
+
const activeElement = document.activeElement;
|
302
|
+
if (!dropdownList.contains(activeElement) && activeElement !== input) {
|
303
|
+
hideDropdown();
|
304
|
+
}
|
305
|
+
}, 150);
|
306
|
+
});
|
307
|
+
|
296
308
|
// Keyboard navigation for dropdown
|
297
309
|
input.addEventListener('keydown', (e) => {
|
298
310
|
const items = dropdownList.querySelectorAll('.custom-dropdown-item');
|
@@ -630,18 +630,20 @@
|
|
630
630
|
cancelButton.style.display = 'none';
|
631
631
|
}
|
632
632
|
} else if (data.status === 'failed' || data.status === 'cancelled') {
|
633
|
-
//
|
634
|
-
if (
|
635
|
-
|
633
|
+
// For failed research, try to show the error report if available
|
634
|
+
if (data.status === 'failed') {
|
635
|
+
if (viewResultsButton) {
|
636
|
+
viewResultsButton.textContent = 'View Error Report';
|
637
|
+
viewResultsButton.href = `/research/results/${currentResearchId}`;
|
638
|
+
viewResultsButton.style.display = 'inline-block';
|
639
|
+
}
|
636
640
|
} else {
|
637
|
-
|
638
|
-
|
639
|
-
|
640
|
-
|
641
|
-
|
642
|
-
|
643
|
-
viewResultsButton.href = '/';
|
644
|
-
viewResultsButton.style.display = 'inline-block';
|
641
|
+
// For cancelled research, go back to home
|
642
|
+
if (viewResultsButton) {
|
643
|
+
viewResultsButton.textContent = 'Start New Research';
|
644
|
+
viewResultsButton.href = '/';
|
645
|
+
viewResultsButton.style.display = 'inline-block';
|
646
|
+
}
|
645
647
|
}
|
646
648
|
|
647
649
|
// Hide cancel button
|
@@ -917,8 +919,12 @@
|
|
917
919
|
cancelButton.style.display = 'none';
|
918
920
|
}
|
919
921
|
|
920
|
-
// Show
|
921
|
-
|
922
|
+
// Show error report button
|
923
|
+
if (viewResultsButton) {
|
924
|
+
viewResultsButton.textContent = 'View Error Report';
|
925
|
+
viewResultsButton.href = `/research/results/${currentResearchId}`;
|
926
|
+
viewResultsButton.style.display = 'inline-block';
|
927
|
+
}
|
922
928
|
|
923
929
|
// Show notification if enabled
|
924
930
|
showNotification('Research Error', `There was an error with your research: ${data.error}`);
|
@@ -436,8 +436,17 @@
|
|
436
436
|
const savedState = localStorage.getItem('advancedOptionsOpen') === 'true';
|
437
437
|
|
438
438
|
if (savedState) {
|
439
|
-
advancedToggle.classList.add('open'
|
440
|
-
|
439
|
+
advancedToggle.classList.add('open');
|
440
|
+
advancedPanel.classList.add('expanded');
|
441
|
+
|
442
|
+
// Update ARIA attributes
|
443
|
+
advancedToggle.setAttribute('aria-expanded', 'true');
|
444
|
+
|
445
|
+
// Update screen reader text
|
446
|
+
const srText = advancedToggle.querySelector('.sr-only');
|
447
|
+
if (srText) {
|
448
|
+
srText.textContent = 'Click to collapse advanced options';
|
449
|
+
}
|
441
450
|
|
442
451
|
// Update icon immediately
|
443
452
|
const icon = advancedToggle.querySelector('i');
|
@@ -445,8 +454,18 @@
|
|
445
454
|
icon.className = 'fas fa-chevron-up';
|
446
455
|
}
|
447
456
|
} else {
|
448
|
-
advancedToggle.classList.remove('open'
|
449
|
-
|
457
|
+
advancedToggle.classList.remove('open');
|
458
|
+
advancedPanel.classList.remove('expanded');
|
459
|
+
|
460
|
+
// Update ARIA attributes
|
461
|
+
advancedToggle.setAttribute('aria-expanded', 'false');
|
462
|
+
|
463
|
+
// Update screen reader text
|
464
|
+
const srText = advancedToggle.querySelector('.sr-only');
|
465
|
+
if (srText) {
|
466
|
+
srText.textContent = 'Click to expand advanced options';
|
467
|
+
}
|
468
|
+
|
450
469
|
// Ensure icon is correct
|
451
470
|
const icon = advancedToggle.querySelector('i');
|
452
471
|
if (icon) {
|
@@ -460,6 +479,15 @@
|
|
460
479
|
const isOpen = advancedToggle.classList.toggle('open');
|
461
480
|
advancedToggle.classList.toggle('expanded', isOpen);
|
462
481
|
|
482
|
+
// Update ARIA attributes for accessibility
|
483
|
+
this.setAttribute('aria-expanded', isOpen);
|
484
|
+
|
485
|
+
// Update screen reader text
|
486
|
+
const srText = this.querySelector('.sr-only');
|
487
|
+
if (srText) {
|
488
|
+
srText.textContent = isOpen ? 'Click to collapse advanced options' : 'Click to expand advanced options';
|
489
|
+
}
|
490
|
+
|
463
491
|
// Save state to localStorage
|
464
492
|
localStorage.setItem('advancedOptionsOpen', isOpen);
|
465
493
|
|
@@ -469,27 +497,40 @@
|
|
469
497
|
icon.className = isOpen ? 'fas fa-chevron-up' : 'fas fa-chevron-down';
|
470
498
|
}
|
471
499
|
|
472
|
-
//
|
473
|
-
|
474
|
-
|
475
|
-
|
476
|
-
|
477
|
-
|
478
|
-
|
479
|
-
|
480
|
-
|
481
|
-
} else {
|
482
|
-
advancedPanel.classList.remove('expanded'); // Remove class to trigger transition
|
483
|
-
// Optionally hide with display:none after transition ends (using event listener)
|
484
|
-
advancedPanel.addEventListener('transitionend', () => {
|
485
|
-
if (!advancedPanel.classList.contains('expanded')) {
|
486
|
-
advancedPanel.style.display = 'none';
|
487
|
-
}
|
488
|
-
}, { once: true });
|
500
|
+
// Update panel expanded class for CSS animation
|
501
|
+
advancedPanel.classList.toggle('expanded', isOpen);
|
502
|
+
});
|
503
|
+
|
504
|
+
// Add keyboard support for the advanced options toggle
|
505
|
+
advancedToggle.addEventListener('keydown', function(event) {
|
506
|
+
if (event.key === 'Enter' || event.key === ' ') {
|
507
|
+
event.preventDefault();
|
508
|
+
this.click(); // Trigger the click handler
|
489
509
|
}
|
490
510
|
});
|
491
511
|
}
|
492
512
|
|
513
|
+
// Global keyboard shortcuts for this page
|
514
|
+
document.addEventListener('keydown', function(event) {
|
515
|
+
// Escape key: return focus to search field (override global Esc behavior when on search page)
|
516
|
+
if (event.key === 'Escape') {
|
517
|
+
if (queryInput && document.activeElement !== queryInput) {
|
518
|
+
event.preventDefault();
|
519
|
+
event.stopPropagation(); // Prevent global keyboard service from handling this
|
520
|
+
queryInput.focus();
|
521
|
+
queryInput.select(); // Select all text for easy replacement
|
522
|
+
}
|
523
|
+
}
|
524
|
+
|
525
|
+
// Ctrl/Cmd + Enter: submit form from anywhere on the page
|
526
|
+
if ((event.ctrlKey || event.metaKey) && event.key === 'Enter') {
|
527
|
+
if (form) {
|
528
|
+
event.preventDefault();
|
529
|
+
handleResearchSubmit(new Event('submit'));
|
530
|
+
}
|
531
|
+
}
|
532
|
+
});
|
533
|
+
|
493
534
|
// Form submission
|
494
535
|
form.addEventListener('submit', handleResearchSubmit);
|
495
536
|
|
@@ -505,15 +546,21 @@
|
|
505
546
|
selectMode(this);
|
506
547
|
} else if (event.key === 'ArrowLeft' || event.key === 'ArrowUp') {
|
507
548
|
event.preventDefault();
|
508
|
-
|
509
|
-
|
549
|
+
// Find the previous mode option, skipping hidden inputs
|
550
|
+
const allModeOptions = Array.from(document.querySelectorAll('.mode-option'));
|
551
|
+
const currentIndex = allModeOptions.indexOf(this);
|
552
|
+
const previousMode = allModeOptions[currentIndex - 1];
|
553
|
+
if (previousMode) {
|
510
554
|
selectMode(previousMode);
|
511
555
|
previousMode.focus();
|
512
556
|
}
|
513
557
|
} else if (event.key === 'ArrowRight' || event.key === 'ArrowDown') {
|
514
558
|
event.preventDefault();
|
515
|
-
|
516
|
-
|
559
|
+
// Find the next mode option, skipping hidden inputs
|
560
|
+
const allModeOptions = Array.from(document.querySelectorAll('.mode-option'));
|
561
|
+
const currentIndex = allModeOptions.indexOf(this);
|
562
|
+
const nextMode = allModeOptions[currentIndex + 1];
|
563
|
+
if (nextMode) {
|
517
564
|
selectMode(nextMode);
|
518
565
|
nextMode.focus();
|
519
566
|
}
|
@@ -98,7 +98,7 @@
|
|
98
98
|
resultsContainer.innerHTML = '<div class="text-center my-5"><i class="fas fa-spinner fa-pulse"></i><p class="mt-3">Loading research results...</p></div>';
|
99
99
|
|
100
100
|
// Fetch result from API
|
101
|
-
const response = await fetch(`/research/api/report/${researchId}`);
|
101
|
+
const response = await fetch(`/research/api/history/report/${researchId}`);
|
102
102
|
|
103
103
|
if (!response.ok) {
|
104
104
|
throw new Error(`HTTP error ${response.status}`);
|
@@ -8,12 +8,40 @@
|
|
8
8
|
// Keyboard shortcut registry - simplified to just the essential ones
|
9
9
|
const shortcuts = {
|
10
10
|
'newSearch': {
|
11
|
-
keys: ['
|
11
|
+
keys: ['escape'],
|
12
12
|
description: 'Return to main search',
|
13
13
|
handler: () => {
|
14
14
|
// Always navigate to main research page
|
15
15
|
window.location.href = '/';
|
16
16
|
}
|
17
|
+
},
|
18
|
+
'navNewResearch': {
|
19
|
+
keys: ['ctrl+shift+1'],
|
20
|
+
description: 'Go to New Research',
|
21
|
+
handler: () => {
|
22
|
+
window.location.href = '/';
|
23
|
+
}
|
24
|
+
},
|
25
|
+
'navHistory': {
|
26
|
+
keys: ['ctrl+shift+2'],
|
27
|
+
description: 'Go to History',
|
28
|
+
handler: () => {
|
29
|
+
window.location.href = '/research/history';
|
30
|
+
}
|
31
|
+
},
|
32
|
+
'navMetrics': {
|
33
|
+
keys: ['ctrl+shift+3'],
|
34
|
+
description: 'Go to Metrics',
|
35
|
+
handler: () => {
|
36
|
+
window.location.href = '/metrics';
|
37
|
+
}
|
38
|
+
},
|
39
|
+
'navSettings': {
|
40
|
+
keys: ['ctrl+shift+4'],
|
41
|
+
description: 'Go to Settings',
|
42
|
+
handler: () => {
|
43
|
+
window.location.href = '/research/settings';
|
44
|
+
}
|
17
45
|
}
|
18
46
|
};
|
19
47
|
|
@@ -39,7 +67,7 @@
|
|
39
67
|
|
40
68
|
// Match key
|
41
69
|
const eventKey = event.key.toLowerCase();
|
42
|
-
if (eventKey !== key && event.code.toLowerCase() !== `key${key}`) {
|
70
|
+
if (eventKey !== key && event.code.toLowerCase() !== `key${key}` && event.code.toLowerCase() !== `digit${key}`) {
|
43
71
|
// Special handling for special keys
|
44
72
|
if (key === '/' && eventKey !== '/') return false;
|
45
73
|
else if (key === ',' && eventKey !== ',') return false;
|
@@ -70,9 +98,22 @@
|
|
70
98
|
activeElement.contentEditable === 'true'
|
71
99
|
);
|
72
100
|
|
73
|
-
//
|
74
|
-
if (isTyping
|
75
|
-
|
101
|
+
// Skip shortcuts when typing, except for navigation shortcuts and Esc (unless on settings page)
|
102
|
+
if (isTyping) {
|
103
|
+
const isNavShortcut = event.ctrlKey && event.shiftKey && (
|
104
|
+
['1', '2', '3', '4'].includes(event.key) ||
|
105
|
+
['Digit1', 'Digit2', 'Digit3', 'Digit4'].includes(event.code)
|
106
|
+
);
|
107
|
+
const isEscOnSettingsPage = event.key === 'Escape' && window.location.pathname.includes('/settings');
|
108
|
+
|
109
|
+
// Debug navigation shortcuts
|
110
|
+
if (event.ctrlKey && event.shiftKey) {
|
111
|
+
console.log('Nav shortcut attempt:', event.key, event.code, 'isNavShortcut:', isNavShortcut);
|
112
|
+
}
|
113
|
+
|
114
|
+
if (!isNavShortcut && (event.key !== 'Escape' || isEscOnSettingsPage)) {
|
115
|
+
return;
|
116
|
+
}
|
76
117
|
}
|
77
118
|
|
78
119
|
// Debug log
|
@@ -35,7 +35,11 @@
|
|
35
35
|
</span>
|
36
36
|
<span class="hint-item">
|
37
37
|
<i class="fas fa-home hint-icon"></i>
|
38
|
-
<span class="hint-text"><kbd>
|
38
|
+
<span class="hint-text"><kbd>Esc</kbd> returns here from anywhere</span>
|
39
|
+
</span>
|
40
|
+
<span class="hint-item">
|
41
|
+
<i class="fas fa-bars hint-icon"></i>
|
42
|
+
<span class="hint-text"><kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>1-4</kbd> to navigate menu</span>
|
39
43
|
</span>
|
40
44
|
</div>
|
41
45
|
</div>
|
@@ -48,7 +52,7 @@
|
|
48
52
|
<label for="mode-quick" class="mode-option active" data-mode="quick" role="radio" aria-checked="true" tabindex="0">
|
49
53
|
<div class="mode-icon"><i class="fas fa-bolt" aria-hidden="true"></i></div>
|
50
54
|
<div class="mode-info">
|
51
|
-
<
|
55
|
+
<h2>Quick Summary</h2>
|
52
56
|
<p>Generated in a few minutes</p>
|
53
57
|
</div>
|
54
58
|
</label>
|
@@ -57,7 +61,7 @@
|
|
57
61
|
<label for="mode-detailed" class="mode-option" data-mode="detailed" role="radio" aria-checked="false" tabindex="-1">
|
58
62
|
<div class="mode-icon"><i class="fas fa-microscope" aria-hidden="true"></i></div>
|
59
63
|
<div class="mode-info">
|
60
|
-
<
|
64
|
+
<h2>Detailed Report</h2>
|
61
65
|
<p>In-depth analysis (takes longer)</p>
|
62
66
|
</div>
|
63
67
|
</label>
|
@@ -65,13 +69,14 @@
|
|
65
69
|
</fieldset>
|
66
70
|
</div>
|
67
71
|
|
68
|
-
<!-- Advanced Options -->
|
69
|
-
<
|
72
|
+
<!-- Advanced Options - positioned before start for configuration -->
|
73
|
+
<button type="button" class="advanced-options-toggle" aria-expanded="false" aria-controls="advanced-options-panel">
|
70
74
|
<span class="toggle-text">Advanced Options</span>
|
71
|
-
<i class="fas fa-chevron-down"></i>
|
72
|
-
|
75
|
+
<i class="fas fa-chevron-down" aria-hidden="true"></i>
|
76
|
+
<span class="sr-only">Click to expand advanced options</span>
|
77
|
+
</button>
|
73
78
|
|
74
|
-
<div class="advanced-options-panel">
|
79
|
+
<div class="advanced-options-panel" id="advanced-options-panel" aria-labelledby="advanced-options-toggle">
|
75
80
|
<div class="form-row">
|
76
81
|
<!-- Model Provider Selection -->
|
77
82
|
<div class="form-group half">
|
@@ -151,6 +156,12 @@
|
|
151
156
|
</div>
|
152
157
|
</div>
|
153
158
|
|
159
|
+
<!-- Start Research Button -->
|
160
|
+
<div class="form-actions">
|
161
|
+
<button type="submit" class="btn btn-primary" id="start-research-btn"><i class="fas fa-rocket"></i> Start Research</button>
|
162
|
+
</div>
|
163
|
+
|
164
|
+
<!-- Audio Notifications -->
|
154
165
|
<div class="form-options">
|
155
166
|
<div class="form-option">
|
156
167
|
<label for="notification-toggle" class="checkbox-label">
|
@@ -159,10 +170,6 @@
|
|
159
170
|
</label>
|
160
171
|
</div>
|
161
172
|
</div>
|
162
|
-
|
163
|
-
<div class="form-actions">
|
164
|
-
<button type="submit" class="btn btn-primary" id="start-research-btn"><i class="fas fa-rocket"></i> Start Research</button>
|
165
|
-
</div>
|
166
173
|
</form>
|
167
174
|
</div>
|
168
175
|
</div>
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: local-deep-research
|
3
|
-
Version: 0.5.
|
3
|
+
Version: 0.5.4
|
4
4
|
Summary: AI-powered research assistant with deep, iterative analysis using LLMs and web searches
|
5
5
|
Author-Email: LearningCircuit <185559241+LearningCircuit@users.noreply.github.com>, HashedViking <6432677+HashedViking@users.noreply.github.com>
|
6
6
|
License: MIT License
|
@@ -1,9 +1,9 @@
|
|
1
|
-
local_deep_research-0.5.
|
2
|
-
local_deep_research-0.5.
|
3
|
-
local_deep_research-0.5.
|
4
|
-
local_deep_research-0.5.
|
1
|
+
local_deep_research-0.5.4.dist-info/METADATA,sha256=1fnH-5wpmsGOOrww0M6gFDdKKjw3XW3XTDKGvpf5syE,17676
|
2
|
+
local_deep_research-0.5.4.dist-info/WHEEL,sha256=tSfRZzRHthuv7vxpI4aehrdN9scLjk-dCJkPLzkHxGg,90
|
3
|
+
local_deep_research-0.5.4.dist-info/entry_points.txt,sha256=GcXS501Rjh-P80S8db7hnrQ23mS_Jg27PwpVQVO77as,113
|
4
|
+
local_deep_research-0.5.4.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=
|
6
|
+
local_deep_research/__version__.py,sha256=DITpct-LrdIsTgwx2NgH5Ghx5y8Xgz1YMimy1ZV5RTY,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=
|
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
|
@@ -185,28 +187,28 @@ local_deep_research/web/models/settings.py,sha256=rXBI9vY5k3ndR8dPd3fZJy-6HwYltQ
|
|
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=
|
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
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=
|
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
|
196
198
|
local_deep_research/web/services/socket_service.py,sha256=kKV9LbMvgMtuvX32nuZnrMWwS6IzSOM90FxL9nWsfCQ,11904
|
197
199
|
local_deep_research/web/static/css/custom_dropdown.css,sha256=MFRm4HaMGM7X2Z-Yvb-_y20BE1NInSmN1cUJc_v5k4k,11542
|
198
200
|
local_deep_research/web/static/css/settings.css,sha256=QZbjLz8zNQZvM_ROzQOH67ZHZHEQ8WohkIPJlsekqfk,24719
|
199
|
-
local_deep_research/web/static/css/styles.css,sha256=
|
200
|
-
local_deep_research/web/static/js/components/custom_dropdown.js,sha256=
|
201
|
+
local_deep_research/web/static/css/styles.css,sha256=ya6TVTZL9B8ihWqYukW8u2i20lKwa7BkeVPt3fkB4mk,36856
|
202
|
+
local_deep_research/web/static/js/components/custom_dropdown.js,sha256=yWYSxFBgjqE3jXveET_x7FBeNDfrALUBbRoPmhCrhYs,17368
|
201
203
|
local_deep_research/web/static/js/components/detail.js,sha256=iVm4n_1n7vw0zo_fngT-uZP9OiY7TK4ozutIi9of_L4,27436
|
202
204
|
local_deep_research/web/static/js/components/details.js,sha256=acDE_KnnTMGn4tGTYq7HMaOGUg9UsjyFeqTgm1VC6kI,29899
|
203
205
|
local_deep_research/web/static/js/components/fallback/formatting.js,sha256=OoP38zcapAV-zvMd5wvjdBgbQFfueVVbKRK89V9aMh4,3294
|
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=
|
208
|
-
local_deep_research/web/static/js/components/research.js,sha256=
|
209
|
-
local_deep_research/web/static/js/components/results.js,sha256=
|
209
|
+
local_deep_research/web/static/js/components/progress.js,sha256=8cydtosQZpdX2MTpYEq9GPARCWV5azKMaRHxYiDvJoM,42542
|
210
|
+
local_deep_research/web/static/js/components/research.js,sha256=9oGOTpm0J6nO43qPOWQJsWt9ukLSbAC1MV5AegGnp9E,88282
|
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
|
@@ -214,7 +216,7 @@ local_deep_research/web/static/js/research_form.js,sha256=qOZK0z_BE_xx2a1sx5vTjs
|
|
214
216
|
local_deep_research/web/static/js/services/api.js,sha256=AP24hrw6VBrEjQxIMnxrZuGFmrdm9MReSjjZ-AIKqr0,6776
|
215
217
|
local_deep_research/web/static/js/services/audio.js,sha256=JeeTkj485limzvawdiluLSr67QWlb6AyB57u9oTwIw0,857
|
216
218
|
local_deep_research/web/static/js/services/formatting.js,sha256=7XwyJLLvPOdlWReCbHRRVMdvsZxGEfIGRIEDLqZLnnc,3294
|
217
|
-
local_deep_research/web/static/js/services/keyboard.js,sha256=
|
219
|
+
local_deep_research/web/static/js/services/keyboard.js,sha256=WuJCp-tWmEy6DaZQYNe4jP9FDHztuLVQtI_eYliJZv4,6793
|
218
220
|
local_deep_research/web/static/js/services/pdf.js,sha256=SIjoHw44PYuYkF4nIo_47s9m2ifLQMTcNYGdcOj4mf8,26059
|
219
221
|
local_deep_research/web/static/js/services/socket.js,sha256=9h6XOi29nFJ42xGuxT0ZLN-7U1-MMmo9-mGC8KgCjT8,36805
|
220
222
|
local_deep_research/web/static/js/services/ui.js,sha256=XkJCUqhDjfeY58bExyurcFmWCYBbWRHSpsIABmWtU7s,16349
|
@@ -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=
|
237
|
+
local_deep_research/web/templates/pages/research.html,sha256=4puS2jcJNrcXI_6NPwfvvZiD_uaNhsKtFCdSG03bVqo,10291
|
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.
|
267
|
+
local_deep_research-0.5.4.dist-info/RECORD,,
|