local-deep-research 0.1.20__py3-none-any.whl → 0.1.21__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.
@@ -186,40 +186,40 @@ strengths = ["searches all local collections", "personal documents", "offline ac
186
186
  weaknesses = ["may return too many results", "requires indexing"]
187
187
  requires_llm = true
188
188
 
189
- [semantic_scholar]
190
- module_path = "local_deep_research.web_search_engines.engines.search_engine_semantic_scholar"
191
- class_name = "SemanticScholarSearchEngine"
192
- requires_api_key = false
193
- api_key_env = "S2_API_KEY"
194
- reliability = 0.87
195
- strengths = [
196
- "comprehensive scientific literature",
197
- "extensive citation network",
198
- "AI-generated summaries (TLDRs)",
199
- "academic paper metadata",
200
- "cross-disciplinary coverage",
201
- "200M+ papers across all fields",
202
- "usable without API key"
203
- ]
204
- weaknesses = [
205
- "rate limited (1000 requests/day) without API key",
206
- "limited to academic content"
207
- ]
208
- supports_full_search = true
209
- requires_llm = false
189
+ #[semantic_scholar]
190
+ #module_path = "local_deep_research.web_search_engines.engines.search_engine_semantic_scholar"
191
+ #class_name = "SemanticScholarSearchEngine"
192
+ #requires_api_key = false
193
+ #api_key_env = "S2_API_KEY"
194
+ #reliability = 0.87
195
+ #strengths = [
196
+ # "comprehensive scientific literature",
197
+ # "extensive citation network",
198
+ # "AI-generated summaries (TLDRs)",
199
+ # "academic paper metadata",
200
+ # "cross-disciplinary coverage",
201
+ # "200M+ papers across all fields",
202
+ # "usable without API key"
203
+ #]
204
+ #weaknesses = [
205
+ # "rate limited (1000 requests/day) without API key",
206
+ # "limited to academic content"
207
+ #]
208
+ #supports_full_search = true
209
+ #requires_llm = false
210
210
 
211
- [semantic_scholar.default_params]
212
- max_results = 20
213
- get_abstracts = true
214
- get_tldr = true
215
- get_references = false
216
- get_citations = false
217
- get_embeddings = false
218
- citation_limit = 10
219
- reference_limit = 10
220
- optimize_queries = true
221
- max_retries = 5
222
- retry_backoff_factor = 1.0
211
+ #[semantic_scholar.default_params]
212
+ #max_results = 20
213
+ #get_abstracts = true
214
+ #get_tldr = true
215
+ #get_references = false
216
+ #get_citations = false
217
+ #get_embeddings = false
218
+ #citation_limit = 10
219
+ #reference_limit = 10
220
+ #optimize_queries = true
221
+ #max_retries = 5
222
+ #retry_backoff_factor = 1.0
223
223
 
224
224
  # Default search engine to use if none specified
225
225
  DEFAULT_SEARCH_ENGINE = "wikipedia"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: local-deep-research
3
- Version: 0.1.20
3
+ Version: 0.1.21
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
@@ -106,6 +106,13 @@ ldr # (OR python -m local_deep_research.main)
106
106
  Access the web interface at `http://127.0.0.1:5000` in your browser.
107
107
 
108
108
  ## Features
109
+ <div align="center">
110
+ <a href="https://www.youtube.com/watch?v=4tDqV__jzKY">
111
+ <img src="https://img.youtube.com/vi/4tDqV__jzKY/0.jpg" alt="Local Deep Research">
112
+ <br>
113
+ <span>▶️ Watch Video</span>
114
+ </a>
115
+ </div>
109
116
 
110
117
  - 🔍 **Advanced Research Capabilities**
111
118
  - Automated deep research with intelligent follow-up questions
@@ -151,17 +158,17 @@ The package automatically creates and manages configuration files in your user d
151
158
 
152
159
  ### Default Configuration Files
153
160
 
154
- If you prefere environment variables please refere to this file: https://github.com/LearningCircuit/local-deep-research/blob/main/docs/env_configuration.md
155
-
156
161
  When you first run the tool, it creates these configuration files:
157
162
 
158
163
  | File | Purpose |
159
164
  |------|---------|
160
165
  | `settings.toml` | General settings for research, web interface, and search |
161
- | `llm_config.py` | Configure which LLM to use (local or cloud-based) |
166
+ | `llm_config.py` | Advanced LLM configuration (rarely needs modification) |
162
167
  | `search_engines.toml` | Define and configure search engines |
163
168
  | `local_collections.toml` | Configure local document collections for RAG |
164
- | `.secrets.toml` | Store API keys for cloud services |
169
+ | `.env` | Environment variables for configuration (recommended for API keys) |
170
+
171
+ > **Note:** For comprehensive environment variable configuration, see our [Environment Variables Guide](https://github.com/LearningCircuit/local-deep-research/blob/main/docs/env_configuration.md).
165
172
 
166
173
  ## Setting Up AI Models
167
174
 
@@ -175,42 +182,34 @@ The system supports multiple LLM providers:
175
182
 
176
183
  ### Cloud Models
177
184
 
178
- Edit your `.secrets.toml` file to add API keys:
185
+ Add API keys to your environment variables (recommended) by creating a `.env` file in your config directory:
179
186
 
180
- ```toml
181
- ANTHROPIC_API_KEY = "your-api-key-here" # For Claude models
182
- OPENAI_API_KEY = "your-openai-key-here" # For GPT models
183
- OPENAI_ENDPOINT_API_KEY = "your-key-here" # For OpenRouter or similar services
187
+ ```bash
188
+ # Set API keys for cloud providers in .env
189
+ ANTHROPIC_API_KEY=your-api-key-here # For Claude models
190
+ OPENAI_API_KEY=your-openai-key-here # For GPT models
191
+ OPENAI_ENDPOINT_API_KEY=your-key-here # For OpenRouter or similar services
192
+
193
+ # Set your preferred LLM provider and model (no need to edit llm_config.py)
194
+ LDR_LLM__PROVIDER=ollama # Options: ollama, openai, anthropic, etc.
195
+ LDR_LLM__MODEL=gemma3:12b # Model name to use
184
196
  ```
185
197
 
186
- Then edit `llm_config.py` to change the default provider:
187
-
188
- ```python
189
- # Set your preferred model provider here
190
- DEFAULT_PROVIDER = ModelProvider.OLLAMA # Change to your preferred provider
191
-
192
- # Set your default model name here
193
- DEFAULT_MODEL = "mistral" # Change to your preferred model
194
- ```
198
+ > **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.
195
199
 
196
200
  ### Supported LLM Providers
197
201
 
198
202
  The system supports multiple LLM providers:
199
203
 
200
- | Provider | Type | Configuration | Notes |
201
- |----------|------|--------------|-------|
202
- | `OLLAMA` | Local | No API key needed | Default - install from ollama.ai |
203
- | `OPENAI` | Cloud | Requires `OPENAI_API_KEY` | GPT models (3.5, 4, 4o) |
204
- | `ANTHROPIC` | Cloud | Requires `ANTHROPIC_API_KEY` | Claude models (3 Opus, Sonnet, Haiku) |
205
- | `OPENAI_ENDPOINT` | Cloud | Requires `OPENAI_ENDPOINT_API_KEY` | For any OpenAI-compatible API |
206
- | `VLLM` | Local | No API key needed | For hosting models via vLLM |
207
-
208
- You can configure the OpenAI-compatible endpoint URL in `llm_config.py`:
209
-
210
- ```python
211
- # For OpenRouter, Together.ai, Azure OpenAI, or any compatible endpoint
212
- OPENAI_ENDPOINT_URL = "https://openrouter.ai/api/v1"
213
- ```
204
+ | Provider | Type | API Key | Setup Details | Models |
205
+ |----------|------|---------|---------------|--------|
206
+ | `OLLAMA` | Local | No | Install from [ollama.ai](https://ollama.ai) | Mistral, Llama, Gemma, etc. |
207
+ | `OPENAI` | Cloud | `OPENAI_API_KEY` | Set in environment | GPT-3.5, GPT-4, GPT-4o |
208
+ | `ANTHROPIC` | Cloud | `ANTHROPIC_API_KEY` | Set in environment | Claude 3 Opus, Sonnet, Haiku |
209
+ | `OPENAI_ENDPOINT` | Cloud | `OPENAI_ENDPOINT_API_KEY` | Set in environment | Any OpenAI-compatible model |
210
+ | `VLLM` | Local | No | Requires GPU setup | Any supported by vLLM |
211
+ | `LMSTUDIO` | Local | No | Use LM Studio server | Models from LM Studio |
212
+ | `LLAMACPP` | Local | No | Configure model path | GGUF model formats |
214
213
 
215
214
  The `OPENAI_ENDPOINT` provider can access any service with an OpenAI-compatible API, including:
216
215
  - OpenRouter (access to hundreds of models)
@@ -219,26 +218,43 @@ The `OPENAI_ENDPOINT` provider can access any service with an OpenAI-compatible
219
218
  - Groq
220
219
  - Anyscale
221
220
  - Self-hosted LLM servers with OpenAI compatibility
222
- - Any other service that implements the OpenAI API specification
223
221
 
224
222
  ## Setting Up Search Engines
225
223
 
226
- The system includes multiple search engines. Some require API keys:
224
+ Some search engines require API keys. Add them to your environment variables by creating a `.env` file in your config directory:
227
225
 
228
- Use .env in config folder if .secrets.toml doesnt work.
226
+ ```bash
227
+ # Search engine API keys (add to .env file)
228
+ SERP_API_KEY=your-serpapi-key-here # For Google results via SerpAPI
229
+ GOOGLE_PSE_API_KEY=your-google-key-here # For Google Programmable Search
230
+ GOOGLE_PSE_ENGINE_ID=your-pse-id-here # For Google Programmable Search
231
+ BRAVE_API_KEY=your-brave-search-key-here # For Brave Search
232
+ GUARDIAN_API_KEY=your-guardian-key-here # For The Guardian
233
+
234
+ # Set your preferred search tool
235
+ LDR_SEARCH__TOOL=auto # Default: intelligently selects best engine
236
+ ```
229
237
 
230
- You can also overwrite other settings via environment variables, e.g. to overwrite [web] port setting in settings.toml please use: **LDR_WEB__PORT=8080**
238
+ > **Tip:** To override other settings via environment variables (e.g., to change the web port), use: **LDR_WEB__PORT=8080**
231
239
 
232
- ```toml
233
- # Add to .secrets.toml
234
- SERP_API_KEY = "your-serpapi-key-here" # For Google results via SerpAPI
235
- GOOGLE_PSE_API_KEY = "your-google-key-here" # For Google Programmable Search
236
- GOOGLE_PSE_ENGINE_ID = "your-pse-id-here" # For Google Programmable Search
237
- BRAVE_API_KEY = "your-brave-search-key-here" # For Brave Search
238
- GUARDIAN_API_KEY = "your-guardian-key-here" # For The Guardian
239
- ```
240
+ ### Available Search Engines
241
+
242
+ | Engine | Purpose | API Key Required? | Rate Limit |
243
+ |--------|---------|-------------------|------------|
244
+ | `auto` | Intelligently selects the best engine | No | Based on selected engine |
245
+ | `wikipedia` | General knowledge and facts | No | No strict limit |
246
+ | `arxiv` | Scientific papers and research | No | No strict limit |
247
+ | `pubmed` | Medical and biomedical research | No | No strict limit |
248
+ | `semantic_scholar` | Academic literature across all fields | No | 100/5min |
249
+ | `github` | Code repositories and documentation | No | 60/hour (unauthenticated) |
250
+ | `brave` | Web search (privacy-focused) | Yes | Based on plan |
251
+ | `serpapi` | Google search results | Yes | Based on plan |
252
+ | `google_pse` | Custom Google search | Yes | 100/day free tier |
253
+ | `wayback` | Historical web content | No | No strict limit |
254
+ | `searxng` | Local web search engine | No (requires local server) | No limit |
255
+ | Any collection name | Search your local documents | No | No limit |
240
256
 
241
- No API key required for: Wikipedia, arXiv, PubMed, Semantic Scholar, and local collections.
257
+ > **Note:** For detailed SearXNG setup, see our [SearXNG Setup Guide](https://github.com/LearningCircuit/local-deep-research/blob/main/docs/SearXNG-Setup.md).
242
258
 
243
259
  ## Local Document Search (RAG)
244
260
 
@@ -262,8 +278,6 @@ max_filtered_results = 5
262
278
  chunk_size = 1000
263
279
  chunk_overlap = 200
264
280
  cache_dir = "__CACHE_DIR__/local_search/project_docs"
265
-
266
- # More collections defined in the file...
267
281
  ```
268
282
 
269
283
  2. Create your document directories:
@@ -279,34 +293,29 @@ You can use local document search in several ways:
279
293
  3. **All collections**: Set `tool = "local_all"` to search across all collections
280
294
  4. **Query syntax**: Type `collection:project_docs your query` to target a specific collection
281
295
 
282
- ## Available Search Engines
296
+ ## Docker Support
283
297
 
284
- | Engine | Purpose | API Key Required? | Rate Limit |
285
- |--------|---------|-------------------|------------|
286
- | `auto` | Intelligently selects the best engine | No | Based on selected engine |
287
- | `wikipedia` | General knowledge and facts | No | No strict limit |
288
- | `arxiv` | Scientific papers and research | No | No strict limit |
289
- | `pubmed` | Medical and biomedical research | No | No strict limit |
290
- | `semantic_scholar` | Academic literature across all fields | No | 100/5min |
291
- | `github` | Code repositories and documentation | No | 60/hour (unauthenticated) |
292
- | `brave` | Web search (privacy-focused) | Yes | Based on plan |
293
- | `serpapi` | Google search results | Yes | Based on plan |
294
- | `google_pse` | Custom Google search | Yes | 100/day free tier |
295
- | `wayback` | Historical web content | No | No strict limit |
296
- | `searxng` | Local web search engine | No (requires local server) | No limit |
297
- | Any collection name | Search your local documents | No | No limit |
298
+ Local Deep Research can run in Docker containers for easy deployment across environments.
298
299
 
299
- > **Support Free Knowledge:** If you frequently use the search engines in this tool, please consider making a donation to these organizations. They provide valuable services and rely on user support to maintain their operations:
300
- > - [Donate to Wikipedia](https://donate.wikimedia.org)
301
- > - [Support arXiv](https://arxiv.org/about/give)
302
- > - [Donate to DuckDuckGo](https://duckduckgo.com/donations)
303
- > - [Support PubMed/NCBI](https://www.nlm.nih.gov/pubs/donations/donations.html)
300
+ ### Quick Docker Run
301
+
302
+ ```bash
303
+ # Run with default settings (connects to Ollama running on the host)
304
+ docker run --network=host \
305
+ -e LDR_LLM__PROVIDER="ollama" \
306
+ -e LDR_LLM__MODEL="mistral" \
307
+ local-deep-research
308
+ ```
309
+
310
+ For comprehensive Docker setup information, see:
311
+ - [Docker Usage Guide](https://github.com/LearningCircuit/local-deep-research/blob/main/docs/docker-usage-readme.md)
312
+ - [Docker Compose Guide](https://github.com/LearningCircuit/local-deep-research/blob/main/docs/docker-compose-guide.md)
304
313
 
305
314
  ## Advanced Configuration
306
315
 
307
316
  ### Research Parameters
308
317
 
309
- Edit `settings.toml` to customize research parameters:
318
+ Edit `settings.toml` to customize research parameters or use environment variables:
310
319
 
311
320
  ```toml
312
321
  [search]
@@ -324,8 +333,13 @@ max_results = 50
324
333
 
325
334
  # Results after relevance filtering
326
335
  max_filtered_results = 5
336
+ ```
327
337
 
328
- # More settings available...
338
+ Using environment variables:
339
+ ```bash
340
+ LDR_SEARCH__TOOL=auto
341
+ LDR_SEARCH__ITERATIONS=3
342
+ LDR_SEARCH__QUESTIONS_PER_ITERATION=2
329
343
  ```
330
344
 
331
345
  ## Web Interface
@@ -338,9 +352,6 @@ The web interface offers several features:
338
352
  - **PDF Export**: Download reports
339
353
  - **Research Management**: Terminate processes or delete records
340
354
 
341
- ![Web Interface](./web1.png)
342
- ![Web Interface](./web2.png)
343
-
344
355
  ## Command Line Interface
345
356
 
346
357
  The CLI version allows you to:
@@ -363,8 +374,6 @@ cd local-deep-research
363
374
  pip install -e .
364
375
  ```
365
376
 
366
- This creates an "editable" installation that uses your local code, so any changes you make are immediately available without reinstalling.
367
-
368
377
  You can run the application directly using Python module syntax:
369
378
 
370
379
  ```bash
@@ -375,12 +384,6 @@ python -m local_deep_research.web.app
375
384
  python -m local_deep_research.main
376
385
  ```
377
386
 
378
- This approach is useful for development and debugging, as it provides more detailed error messages and allows you to make code changes on the fly.
379
-
380
- ## Example Research
381
-
382
- The repository includes complete research examples like our [fusion energy research analysis](https://github.com/LearningCircuit/local-deep-research/blob/main/examples/fusion-energy-research-developments.md) showcasing the system's capabilities.
383
-
384
387
  ## Community & Support
385
388
 
386
389
  Join our [Discord server](https://discord.gg/2E6gYU2Z) to exchange ideas, discuss usage patterns, and share research approaches.
@@ -393,24 +396,33 @@ This project is licensed under the MIT License.
393
396
 
394
397
  - Built with [Ollama](https://ollama.ai) for local AI processing
395
398
  - Search powered by multiple sources:
396
- - [Wikipedia](https://www.wikipedia.org/) for factual knowledge (default search engine)
399
+ - [Wikipedia](https://www.wikipedia.org/) for factual knowledge
397
400
  - [arXiv](https://arxiv.org/) for scientific papers
398
401
  - [PubMed](https://pubmed.ncbi.nlm.nih.gov/) for biomedical literature
402
+ - [Semantic Scholar](https://www.semanticscholar.org/) for academic literature
399
403
  - [DuckDuckGo](https://duckduckgo.com) for web search
400
404
  - [The Guardian](https://www.theguardian.com/) for journalism
401
- - [SerpAPI](https://serpapi.com) for Google search results (requires API key)
405
+ - [SerpAPI](https://serpapi.com) for Google search results
402
406
  - [SearXNG](https://searxng.org/) for local web-search engine
403
407
  - [Brave Search](https://search.brave.com/) for privacy-focused web search
404
- - [Semantic Scholar](https://www.semanticscholar.org/) for academic literature
405
408
  - Built on [LangChain](https://github.com/hwchase17/langchain) framework
406
409
  - Uses [justext](https://github.com/miso-belica/justext), [Playwright](https://playwright.dev), [FAISS](https://github.com/facebookresearch/faiss), and more
407
410
 
411
+ > **Support Free Knowledge:** If you frequently use the search engines in this tool, please consider making a donation to these organizations:
412
+ > - [Donate to Wikipedia](https://donate.wikimedia.org)
413
+ > - [Support arXiv](https://arxiv.org/about/give)
414
+ > - [Donate to DuckDuckGo](https://duckduckgo.com/donations)
415
+ > - [Support PubMed/NCBI](https://www.nlm.nih.gov/pubs/donations/donations.html)
416
+
408
417
  ## Contributing
409
418
 
410
419
  Contributions are welcome! Please feel free to submit a Pull Request.
411
420
 
412
421
  1. Fork the repository
413
422
  2. Create your feature branch (`git checkout -b feature/AmazingFeature`)
414
- 3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)
415
- 4. Push to the branch (`git push origin feature/AmazingFeature`)
416
- 5. Open a Pull Request
423
+ 3. Make your changes
424
+ 4. Commit your changes (`git commit -m 'Add some AmazingFeature'`)
425
+ 5. Push to the branch (`git push origin feature/AmazingFeature`)
426
+ 6. **Important:** Open a Pull Request against the `dev` branch, not the `main` branch
427
+
428
+ We prefer all pull requests to be submitted against the `dev` branch for easier testing and integration before releasing to the main branch.
@@ -8,7 +8,7 @@ local_deep_research/defaults/__init__.py,sha256=2Vvlkl-gmP_qPYWegE4JBgummypogl3V
8
8
  local_deep_research/defaults/llm_config.py,sha256=7wTIugVYD_ypG7Xwvu3DBt0yO8TWBf_drOIQOSOkdQQ,9628
9
9
  local_deep_research/defaults/local_collections.toml,sha256=zNa03PVnFrZ757JdZOuW6QDxkOc6ep5tG8baGBrMmXM,1778
10
10
  local_deep_research/defaults/main.toml,sha256=6Lzbc5sVLxMwu83bLBp_tpYOZgmtThCfPL1L42eTGro,1939
11
- local_deep_research/defaults/search_engines.toml,sha256=TYkOqVaZq9JPawz4fIPyGdkAtYa4t8F9H50VY-wv2ak,8101
11
+ local_deep_research/defaults/search_engines.toml,sha256=g0-qrw10oMgW74z_lYpPDkGwMje25mvalfY1EJ0nL3g,8134
12
12
  local_deep_research/utilties/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
13
  local_deep_research/utilties/enums.py,sha256=TVAZiu9szNbdacfb7whgaQJJlSk7oYByADaAierD4CE,229
14
14
  local_deep_research/utilties/llm_utils.py,sha256=IGv-_gJWqLTpO3_op1NHIwxKaFEzmXhhVYSLTTSMnIA,4522
@@ -50,9 +50,9 @@ local_deep_research/web_search_engines/engines/search_engine_semantic_scholar.py
50
50
  local_deep_research/web_search_engines/engines/search_engine_serpapi.py,sha256=XikEYnM-pAaR70VeAJ28lbqpRzCj4bCA9xY29taTV8g,9215
51
51
  local_deep_research/web_search_engines/engines/search_engine_wayback.py,sha256=astAvSLajDZ6rwgthJ3iBcHSWuDSYPO7uilIxaJhXmU,18132
52
52
  local_deep_research/web_search_engines/engines/search_engine_wikipedia.py,sha256=KSGJECbEcxZpVK-PhYsTCtzedSK0l1AjQmvGtx8KBks,9799
53
- local_deep_research-0.1.20.dist-info/licenses/LICENSE,sha256=Qg2CaTdu6SWnSqk1_JtgBPp_Da-LdqJDhT1Vt1MUc5s,1072
54
- local_deep_research-0.1.20.dist-info/METADATA,sha256=29URKDSkO8eCFRa5NkCoPIZ_lHYH5xOeK8ORQp5-v6k,15608
55
- local_deep_research-0.1.20.dist-info/WHEEL,sha256=DK49LOLCYiurdXXOXwGJm6U4DkHkg4lcxjhqwRa0CP4,91
56
- local_deep_research-0.1.20.dist-info/entry_points.txt,sha256=u-Y6Z3MWtR3dmsTDFYhXyfkPv7mALUA7YAnY4Fi1XDs,97
57
- local_deep_research-0.1.20.dist-info/top_level.txt,sha256=h6-uVE_wSuLOcoWwT9szhX23mBWufu77MqmM25UfbCY,20
58
- local_deep_research-0.1.20.dist-info/RECORD,,
53
+ local_deep_research-0.1.21.dist-info/licenses/LICENSE,sha256=Qg2CaTdu6SWnSqk1_JtgBPp_Da-LdqJDhT1Vt1MUc5s,1072
54
+ local_deep_research-0.1.21.dist-info/METADATA,sha256=wmEq00-MvscM4aUEqNZWCmNa4ytEAfiBvljEx3px5DQ,16405
55
+ local_deep_research-0.1.21.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
56
+ local_deep_research-0.1.21.dist-info/entry_points.txt,sha256=u-Y6Z3MWtR3dmsTDFYhXyfkPv7mALUA7YAnY4Fi1XDs,97
57
+ local_deep_research-0.1.21.dist-info/top_level.txt,sha256=h6-uVE_wSuLOcoWwT9szhX23mBWufu77MqmM25UfbCY,20
58
+ local_deep_research-0.1.21.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (78.0.2)
2
+ Generator: setuptools (78.1.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5