deepresearch-flow 0.4.1__tar.gz → 0.5.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.
- {deepresearch_flow-0.4.1/python/deepresearch_flow.egg-info → deepresearch_flow-0.5.0}/PKG-INFO +62 -2
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/README.md +61 -1
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/pyproject.toml +1 -1
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/db.py +34 -0
- deepresearch_flow-0.5.0/python/deepresearch_flow/paper/web/app.py +199 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/constants.py +1 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/handlers/__init__.py +2 -1
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/handlers/api.py +55 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/handlers/pages.py +105 -25
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/markdown.py +60 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/viewer.html +57 -5
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/viewer.js +5 -1
- deepresearch_flow-0.5.0/python/deepresearch_flow/paper/web/static/js/detail.js +775 -0
- deepresearch_flow-0.5.0/python/deepresearch_flow/paper/web/static/js/outline.js +72 -0
- deepresearch_flow-0.5.0/python/deepresearch_flow/paper/web/static_assets.py +289 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/templates/detail.html +43 -66
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/templates.py +7 -4
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0/python/deepresearch_flow.egg-info}/PKG-INFO +62 -2
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow.egg-info/SOURCES.txt +1 -0
- deepresearch_flow-0.4.1/python/deepresearch_flow/paper/web/app.py +0 -94
- deepresearch_flow-0.4.1/python/deepresearch_flow/paper/web/static/js/detail.js +0 -406
- deepresearch_flow-0.4.1/python/deepresearch_flow/paper/web/static/js/outline.js +0 -58
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/LICENSE +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/MANIFEST.in +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/__init__.py +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/__main__.py +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/cli.py +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/__init__.py +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/cli.py +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/config.py +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/db_ops.py +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/extract.py +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/llm.py +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/prompt_templates/__init__.py +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/prompt_templates/deep_read_system.j2 +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/prompt_templates/deep_read_user.j2 +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/prompt_templates/eight_questions_system.j2 +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/prompt_templates/eight_questions_user.j2 +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/prompt_templates/simple_system.j2 +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/prompt_templates/simple_user.j2 +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/prompt_templates/three_pass_system.j2 +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/prompt_templates/three_pass_user.j2 +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/prompts.py +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/providers/__init__.py +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/providers/azure_openai.py +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/providers/base.py +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/providers/claude.py +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/providers/dashscope.py +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/providers/gemini.py +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/providers/ollama.py +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/providers/openai_compatible.py +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/render.py +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/schema.py +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/schemas/__init__.py +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/schemas/deep_read_schema.json +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/schemas/default_paper_schema.json +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/schemas/eight_questions_schema.json +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/schemas/three_pass_schema.json +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/template_registry.py +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/templates/__init__.py +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/templates/deep_read.md.j2 +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/templates/default_paper.md.j2 +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/templates/eight_questions.md.j2 +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/templates/three_pass.md.j2 +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/utils.py +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/__init__.py +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/filters.py +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/LICENSE +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/build/pdf.js +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/build/pdf.js.map +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/build/pdf.sandbox.js +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/build/pdf.sandbox.js.map +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/build/pdf.worker.js +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/build/pdf.worker.js.map +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/78-EUC-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/78-EUC-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/78-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/78-RKSJ-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/78-RKSJ-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/78-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/78ms-RKSJ-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/78ms-RKSJ-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/83pv-RKSJ-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/90ms-RKSJ-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/90ms-RKSJ-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/90msp-RKSJ-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/90msp-RKSJ-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/90pv-RKSJ-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/90pv-RKSJ-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Add-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Add-RKSJ-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Add-RKSJ-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Add-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-CNS1-0.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-CNS1-1.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-CNS1-2.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-CNS1-3.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-CNS1-4.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-CNS1-5.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-CNS1-6.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-CNS1-UCS2.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-GB1-0.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-GB1-1.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-GB1-2.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-GB1-3.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-GB1-4.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-GB1-5.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-GB1-UCS2.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-Japan1-0.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-Japan1-1.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-Japan1-2.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-Japan1-3.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-Japan1-4.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-Japan1-5.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-Japan1-6.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-Japan1-UCS2.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-Korea1-0.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-Korea1-1.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-Korea1-2.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-Korea1-UCS2.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/B5-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/B5-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/B5pc-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/B5pc-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/CNS-EUC-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/CNS-EUC-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/CNS1-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/CNS1-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/CNS2-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/CNS2-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/ETHK-B5-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/ETHK-B5-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/ETen-B5-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/ETen-B5-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/ETenms-B5-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/ETenms-B5-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/EUC-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/EUC-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Ext-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Ext-RKSJ-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Ext-RKSJ-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Ext-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GB-EUC-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GB-EUC-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GB-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GB-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GBK-EUC-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GBK-EUC-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GBK2K-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GBK2K-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GBKp-EUC-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GBKp-EUC-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GBT-EUC-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GBT-EUC-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GBT-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GBT-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GBTpc-EUC-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GBTpc-EUC-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GBpc-EUC-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GBpc-EUC-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/HKdla-B5-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/HKdla-B5-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/HKdlb-B5-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/HKdlb-B5-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/HKgccs-B5-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/HKgccs-B5-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/HKm314-B5-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/HKm314-B5-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/HKm471-B5-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/HKm471-B5-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/HKscs-B5-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/HKscs-B5-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Hankaku.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Hiragana.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/KSC-EUC-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/KSC-EUC-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/KSC-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/KSC-Johab-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/KSC-Johab-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/KSC-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/KSCms-UHC-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/KSCms-UHC-HW-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/KSCms-UHC-HW-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/KSCms-UHC-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/KSCpc-EUC-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/KSCpc-EUC-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Katakana.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/LICENSE +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/NWP-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/NWP-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/RKSJ-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/RKSJ-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Roman.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniCNS-UCS2-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniCNS-UCS2-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniCNS-UTF16-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniCNS-UTF16-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniCNS-UTF32-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniCNS-UTF32-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniCNS-UTF8-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniCNS-UTF8-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniGB-UCS2-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniGB-UCS2-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniGB-UTF16-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniGB-UTF16-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniGB-UTF32-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniGB-UTF32-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniGB-UTF8-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniGB-UTF8-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJIS-UCS2-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJIS-UCS2-HW-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJIS-UCS2-HW-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJIS-UCS2-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJIS-UTF16-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJIS-UTF16-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJIS-UTF32-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJIS-UTF32-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJIS-UTF8-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJIS-UTF8-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJIS2004-UTF16-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJIS2004-UTF16-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJIS2004-UTF32-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJIS2004-UTF32-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJIS2004-UTF8-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJIS2004-UTF8-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJISPro-UCS2-HW-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJISPro-UCS2-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJISPro-UTF8-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJISX0213-UTF32-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJISX0213-UTF32-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJISX02132004-UTF32-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJISX02132004-UTF32-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniKS-UCS2-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniKS-UCS2-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniKS-UTF16-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniKS-UTF16-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniKS-UTF32-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniKS-UTF32-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniKS-UTF8-H.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniKS-UTF8-V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/V.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/WP-Symbol.bcmap +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/compressed.tracemonkey-pldi-09.pdf +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/debugger.css +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/debugger.js +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/altText_add.svg +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/altText_done.svg +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/annotation-check.svg +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/annotation-comment.svg +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/annotation-help.svg +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/annotation-insert.svg +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/annotation-key.svg +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/annotation-newparagraph.svg +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/annotation-noicon.svg +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/annotation-note.svg +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/annotation-paperclip.svg +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/annotation-paragraph.svg +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/annotation-pushpin.svg +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/cursor-editorFreeText.svg +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/cursor-editorInk.svg +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/findbarButton-next.svg +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/findbarButton-previous.svg +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/gv-toolbarButton-download.svg +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/gv-toolbarButton-openinapp.svg +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/loading-dark.svg +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/loading-icon.gif +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/loading.svg +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/secondaryToolbarButton-documentProperties.svg +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/secondaryToolbarButton-firstPage.svg +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/secondaryToolbarButton-handTool.svg +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/secondaryToolbarButton-lastPage.svg +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/secondaryToolbarButton-rotateCcw.svg +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/secondaryToolbarButton-rotateCw.svg +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/secondaryToolbarButton-scrollHorizontal.svg +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/secondaryToolbarButton-scrollPage.svg +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/secondaryToolbarButton-scrollVertical.svg +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/secondaryToolbarButton-scrollWrapped.svg +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/secondaryToolbarButton-selectTool.svg +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/secondaryToolbarButton-spreadEven.svg +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/secondaryToolbarButton-spreadNone.svg +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/secondaryToolbarButton-spreadOdd.svg +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-bookmark.svg +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-currentOutlineItem.svg +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-download.svg +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-editorFreeText.svg +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-editorInk.svg +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-editorStamp.svg +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-menuArrow.svg +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-openFile.svg +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-pageDown.svg +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-pageUp.svg +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-presentationMode.svg +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-print.svg +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-search.svg +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-secondaryToolbarToggle.svg +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-sidebarToggle.svg +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-viewAttachments.svg +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-viewLayers.svg +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-viewOutline.svg +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-viewThumbnail.svg +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-zoomIn.svg +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-zoomOut.svg +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/treeitem-collapsed.svg +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/treeitem-expanded.svg +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ach/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/af/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/an/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ar/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ast/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/az/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/be/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/bg/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/bn/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/bo/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/br/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/brx/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/bs/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ca/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/cak/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ckb/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/cs/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/cy/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/da/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/de/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/dsb/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/el/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/en-CA/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/en-GB/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/en-US/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/eo/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/es-AR/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/es-CL/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/es-ES/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/es-MX/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/et/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/eu/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/fa/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ff/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/fi/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/fr/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/fur/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/fy-NL/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ga-IE/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/gd/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/gl/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/gn/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/gu-IN/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/he/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/hi-IN/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/hr/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/hsb/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/hu/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/hy-AM/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/hye/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ia/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/id/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/is/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/it/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ja/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ka/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/kab/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/kk/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/km/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/kn/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ko/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/lij/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/lo/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/locale.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/lt/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ltg/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/lv/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/meh/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/mk/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/mr/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ms/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/my/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/nb-NO/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ne-NP/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/nl/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/nn-NO/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/oc/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/pa-IN/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/pl/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/pt-BR/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/pt-PT/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/rm/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ro/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ru/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/sat/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/sc/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/scn/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/sco/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/si/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/sk/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/skr/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/sl/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/son/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/sq/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/sr/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/sv-SE/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/szl/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ta/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/te/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/tg/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/th/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/tl/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/tr/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/trs/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/uk/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ur/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/uz/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/vi/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/wo/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/xh/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/zh-CN/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/zh-TW/viewer.properties +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/FoxitDingbats.pfb +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/FoxitFixed.pfb +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/FoxitFixedBold.pfb +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/FoxitFixedBoldItalic.pfb +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/FoxitFixedItalic.pfb +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/FoxitSerif.pfb +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/FoxitSerifBold.pfb +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/FoxitSerifBoldItalic.pfb +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/FoxitSerifItalic.pfb +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/FoxitSymbol.pfb +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/LICENSE_FOXIT +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/LICENSE_LIBERATION +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/LiberationSans-Bold.ttf +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/LiberationSans-BoldItalic.ttf +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/LiberationSans-Italic.ttf +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/LiberationSans-Regular.ttf +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/viewer.css +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/pdfjs/web/viewer.js.map +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/query.py +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/static/css/main.css +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/static/js/index.js +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/static/js/stats.js +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/templates/base.html +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/templates/index.html +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/templates/stats.html +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/text.py +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/recognize/__init__.py +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/recognize/cli.py +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/recognize/katex_check.js +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/recognize/markdown.py +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/recognize/math.py +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/recognize/mermaid.py +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/recognize/organize.py +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/translator/__init__.py +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/translator/cli.py +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/translator/config.py +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/translator/engine.py +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/translator/fixers.py +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/translator/placeholder.py +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/translator/prompts.py +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/translator/protector.py +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/translator/segment.py +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow.egg-info/dependency_links.txt +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow.egg-info/entry_points.txt +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow.egg-info/requires.txt +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow.egg-info/top_level.txt +0 -0
- {deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/setup.cfg +0 -0
{deepresearch_flow-0.4.1/python/deepresearch_flow.egg-info → deepresearch_flow-0.5.0}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: deepresearch-flow
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.5.0
|
|
4
4
|
Summary: Workflow tools for paper extraction, review, and research automation.
|
|
5
5
|
Author-email: DengQi <dengqi935@gmail.com>
|
|
6
6
|
License: MIT License
|
|
@@ -87,7 +87,7 @@ Dynamic: license-file
|
|
|
87
87
|
<a href="https://hub.docker.com/r/nerdneils/deepresearch-flow">
|
|
88
88
|
<img src="https://img.shields.io/docker/v/nerdneils/deepresearch-flow?style=flat-square" />
|
|
89
89
|
</a>
|
|
90
|
-
<a href="https://
|
|
90
|
+
<a href="https://github.com/nerdneilsfield/ai-deepresearch-flow/pkgs/container/deepresearch-flow">
|
|
91
91
|
<img src="https://img.shields.io/badge/ghcr.io-nerdneilsfield%2Fdeepresearch-flow-0f172a?style=flat-square" />
|
|
92
92
|
</a>
|
|
93
93
|
<a href="https://github.com/nerdneilsfield/ai-deepresearch-flow/blob/main/LICENSE">
|
|
@@ -216,6 +216,66 @@ uv run deepresearch-flow paper db serve \
|
|
|
216
216
|
|
|
217
217
|
---
|
|
218
218
|
|
|
219
|
+
## Deployment (Static CDN)
|
|
220
|
+
|
|
221
|
+
Use a separate static server (CDN) for PDFs/Markdown/images and keep the API/UI on another host.
|
|
222
|
+
|
|
223
|
+
### 1) Export static assets
|
|
224
|
+
|
|
225
|
+
```bash
|
|
226
|
+
uv run deepresearch-flow paper db serve \
|
|
227
|
+
--input paper_infos.json \
|
|
228
|
+
--md-root ./docs \
|
|
229
|
+
--md-translated-root ./docs \
|
|
230
|
+
--pdf-root ./pdfs \
|
|
231
|
+
--static-mode prod \
|
|
232
|
+
--static-base-url https://static.example.com \
|
|
233
|
+
--static-export-dir /data/paper-static
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
Notes:
|
|
237
|
+
- The API host must be able to read the original PDF/Markdown roots to build the index and hashes.
|
|
238
|
+
- The CDN host only needs the exported directory (e.g. `/data/paper-static`).
|
|
239
|
+
|
|
240
|
+
### 2) Serve the export directory with CORS + cache headers (Caddy example)
|
|
241
|
+
|
|
242
|
+
```caddyfile
|
|
243
|
+
:8002 {
|
|
244
|
+
root * /data/paper-static
|
|
245
|
+
encode zstd gzip
|
|
246
|
+
|
|
247
|
+
@static path /pdf/* /md/* /md_translate/* /images/*
|
|
248
|
+
header @static {
|
|
249
|
+
Access-Control-Allow-Origin *
|
|
250
|
+
Access-Control-Allow-Methods GET,HEAD,OPTIONS
|
|
251
|
+
Access-Control-Allow-Headers *
|
|
252
|
+
Cache-Control "public, max-age=31536000, immutable"
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
@options method OPTIONS
|
|
256
|
+
respond @options 204
|
|
257
|
+
|
|
258
|
+
file_server
|
|
259
|
+
}
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
### 3) Start the API/UI with static base
|
|
263
|
+
|
|
264
|
+
```bash
|
|
265
|
+
export PAPER_DB_STATIC_BASE_URL="https://static.example.com"
|
|
266
|
+
export PAPER_DB_STATIC_MODE="prod"
|
|
267
|
+
export PAPER_DB_STATIC_EXPORT_DIR="/data/paper-static"
|
|
268
|
+
export PAPER_DB_PDFJS_CDN_BASE_URL="https://cdnjs.cloudflare.com/ajax/libs/pdf.js/4.0.379"
|
|
269
|
+
|
|
270
|
+
uv run deepresearch-flow paper db serve \
|
|
271
|
+
--input paper_infos.json \
|
|
272
|
+
--md-root ./docs \
|
|
273
|
+
--md-translated-root ./docs \
|
|
274
|
+
--pdf-root ./pdfs
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
---
|
|
278
|
+
|
|
219
279
|
## Comprehensive Guide
|
|
220
280
|
|
|
221
281
|
<details>
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
<a href="https://hub.docker.com/r/nerdneils/deepresearch-flow">
|
|
26
26
|
<img src="https://img.shields.io/docker/v/nerdneils/deepresearch-flow?style=flat-square" />
|
|
27
27
|
</a>
|
|
28
|
-
<a href="https://
|
|
28
|
+
<a href="https://github.com/nerdneilsfield/ai-deepresearch-flow/pkgs/container/deepresearch-flow">
|
|
29
29
|
<img src="https://img.shields.io/badge/ghcr.io-nerdneilsfield%2Fdeepresearch-flow-0f172a?style=flat-square" />
|
|
30
30
|
</a>
|
|
31
31
|
<a href="https://github.com/nerdneilsfield/ai-deepresearch-flow/blob/main/LICENSE">
|
|
@@ -154,6 +154,66 @@ uv run deepresearch-flow paper db serve \
|
|
|
154
154
|
|
|
155
155
|
---
|
|
156
156
|
|
|
157
|
+
## Deployment (Static CDN)
|
|
158
|
+
|
|
159
|
+
Use a separate static server (CDN) for PDFs/Markdown/images and keep the API/UI on another host.
|
|
160
|
+
|
|
161
|
+
### 1) Export static assets
|
|
162
|
+
|
|
163
|
+
```bash
|
|
164
|
+
uv run deepresearch-flow paper db serve \
|
|
165
|
+
--input paper_infos.json \
|
|
166
|
+
--md-root ./docs \
|
|
167
|
+
--md-translated-root ./docs \
|
|
168
|
+
--pdf-root ./pdfs \
|
|
169
|
+
--static-mode prod \
|
|
170
|
+
--static-base-url https://static.example.com \
|
|
171
|
+
--static-export-dir /data/paper-static
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
Notes:
|
|
175
|
+
- The API host must be able to read the original PDF/Markdown roots to build the index and hashes.
|
|
176
|
+
- The CDN host only needs the exported directory (e.g. `/data/paper-static`).
|
|
177
|
+
|
|
178
|
+
### 2) Serve the export directory with CORS + cache headers (Caddy example)
|
|
179
|
+
|
|
180
|
+
```caddyfile
|
|
181
|
+
:8002 {
|
|
182
|
+
root * /data/paper-static
|
|
183
|
+
encode zstd gzip
|
|
184
|
+
|
|
185
|
+
@static path /pdf/* /md/* /md_translate/* /images/*
|
|
186
|
+
header @static {
|
|
187
|
+
Access-Control-Allow-Origin *
|
|
188
|
+
Access-Control-Allow-Methods GET,HEAD,OPTIONS
|
|
189
|
+
Access-Control-Allow-Headers *
|
|
190
|
+
Cache-Control "public, max-age=31536000, immutable"
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
@options method OPTIONS
|
|
194
|
+
respond @options 204
|
|
195
|
+
|
|
196
|
+
file_server
|
|
197
|
+
}
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
### 3) Start the API/UI with static base
|
|
201
|
+
|
|
202
|
+
```bash
|
|
203
|
+
export PAPER_DB_STATIC_BASE_URL="https://static.example.com"
|
|
204
|
+
export PAPER_DB_STATIC_MODE="prod"
|
|
205
|
+
export PAPER_DB_STATIC_EXPORT_DIR="/data/paper-static"
|
|
206
|
+
export PAPER_DB_PDFJS_CDN_BASE_URL="https://cdnjs.cloudflare.com/ajax/libs/pdf.js/4.0.379"
|
|
207
|
+
|
|
208
|
+
uv run deepresearch-flow paper db serve \
|
|
209
|
+
--input paper_infos.json \
|
|
210
|
+
--md-root ./docs \
|
|
211
|
+
--md-translated-root ./docs \
|
|
212
|
+
--pdf-root ./pdfs
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
---
|
|
216
|
+
|
|
157
217
|
## Comprehensive Guide
|
|
158
218
|
|
|
159
219
|
<details>
|
|
@@ -600,6 +600,32 @@ def register_db_commands(db_group: click.Group) -> None:
|
|
|
600
600
|
)
|
|
601
601
|
@click.option("--cache-dir", "cache_dir", default=None, help="Cache directory for merged inputs")
|
|
602
602
|
@click.option("--no-cache", "no_cache", is_flag=True, help="Disable cache for db serve")
|
|
603
|
+
@click.option(
|
|
604
|
+
"--static-base-url",
|
|
605
|
+
"static_base_url",
|
|
606
|
+
default=None,
|
|
607
|
+
help="Static asset base URL (e.g. https://static.example.com)",
|
|
608
|
+
)
|
|
609
|
+
@click.option(
|
|
610
|
+
"--static-mode",
|
|
611
|
+
"static_mode",
|
|
612
|
+
type=click.Choice(["auto", "dev", "prod"]),
|
|
613
|
+
default="auto",
|
|
614
|
+
show_default=True,
|
|
615
|
+
help="Static asset mode (dev uses local assets, prod uses static base URL)",
|
|
616
|
+
)
|
|
617
|
+
@click.option(
|
|
618
|
+
"--static-export-dir",
|
|
619
|
+
"static_export_dir",
|
|
620
|
+
default=None,
|
|
621
|
+
help="Optional export directory for hashed static assets",
|
|
622
|
+
)
|
|
623
|
+
@click.option(
|
|
624
|
+
"--pdfjs-cdn-base-url",
|
|
625
|
+
"pdfjs_cdn_base_url",
|
|
626
|
+
default=None,
|
|
627
|
+
help="PDF.js CDN base URL (defaults to jsDelivr)",
|
|
628
|
+
)
|
|
603
629
|
@click.option("--host", default="127.0.0.1", show_default=True, help="Bind host")
|
|
604
630
|
@click.option("--port", default=8000, type=int, show_default=True, help="Bind port")
|
|
605
631
|
@click.option(
|
|
@@ -617,6 +643,10 @@ def register_db_commands(db_group: click.Group) -> None:
|
|
|
617
643
|
pdf_roots: tuple[str, ...],
|
|
618
644
|
cache_dir: str | None,
|
|
619
645
|
no_cache: bool,
|
|
646
|
+
static_base_url: str | None,
|
|
647
|
+
static_mode: str,
|
|
648
|
+
static_export_dir: str | None,
|
|
649
|
+
pdfjs_cdn_base_url: str | None,
|
|
620
650
|
host: str,
|
|
621
651
|
port: int,
|
|
622
652
|
fallback_language: str,
|
|
@@ -635,6 +665,10 @@ def register_db_commands(db_group: click.Group) -> None:
|
|
|
635
665
|
pdf_roots=[Path(root) for root in pdf_roots],
|
|
636
666
|
cache_dir=Path(cache_dir) if cache_dir else None,
|
|
637
667
|
use_cache=not no_cache,
|
|
668
|
+
static_base_url=static_base_url,
|
|
669
|
+
static_mode=static_mode,
|
|
670
|
+
static_export_dir=Path(static_export_dir) if static_export_dir else None,
|
|
671
|
+
pdfjs_cdn_base_url=pdfjs_cdn_base_url,
|
|
638
672
|
)
|
|
639
673
|
except Exception as exc:
|
|
640
674
|
raise click.ClickException(str(exc)) from exc
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
import logging
|
|
4
|
+
import os
|
|
5
|
+
from pathlib import Path
|
|
6
|
+
|
|
7
|
+
from starlette.applications import Starlette
|
|
8
|
+
from starlette.middleware.base import BaseHTTPMiddleware
|
|
9
|
+
from starlette.requests import Request
|
|
10
|
+
from starlette.routing import Mount, Route
|
|
11
|
+
from starlette.staticfiles import StaticFiles
|
|
12
|
+
|
|
13
|
+
from deepresearch_flow.paper.db_ops import build_index, load_and_merge_papers
|
|
14
|
+
from deepresearch_flow.paper.web.constants import DEFAULT_PDFJS_CDN_BASE_URL, PDFJS_STATIC_DIR, STATIC_DIR
|
|
15
|
+
from deepresearch_flow.paper.web.handlers import (
|
|
16
|
+
api_markdown,
|
|
17
|
+
api_papers,
|
|
18
|
+
api_pdf,
|
|
19
|
+
api_stats,
|
|
20
|
+
index_page,
|
|
21
|
+
paper_detail,
|
|
22
|
+
robots_txt,
|
|
23
|
+
stats_page,
|
|
24
|
+
)
|
|
25
|
+
from deepresearch_flow.paper.web.markdown import create_md_renderer
|
|
26
|
+
from deepresearch_flow.paper.web.static_assets import build_static_assets
|
|
27
|
+
|
|
28
|
+
logger = logging.getLogger(__name__)
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
class _NoIndexMiddleware(BaseHTTPMiddleware):
|
|
32
|
+
async def dispatch(self, request: Request, call_next): # type: ignore[override]
|
|
33
|
+
response = await call_next(request)
|
|
34
|
+
response.headers["X-Robots-Tag"] = "noindex, nofollow, noarchive, nosnippet, noai, noimageai"
|
|
35
|
+
return response
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
class _StaticAssetFiles(StaticFiles):
|
|
39
|
+
def __init__(self, *args, cache_control: str | None = None, **kwargs) -> None:
|
|
40
|
+
super().__init__(*args, **kwargs)
|
|
41
|
+
self._cache_control = cache_control
|
|
42
|
+
|
|
43
|
+
async def get_response(self, path: str, scope): # type: ignore[override]
|
|
44
|
+
response = await super().get_response(path, scope)
|
|
45
|
+
if self._cache_control and response.status_code == 200:
|
|
46
|
+
response.headers.setdefault("Cache-Control", self._cache_control)
|
|
47
|
+
return response
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
def _normalize_static_mode(value: str | None) -> str:
|
|
51
|
+
if not value:
|
|
52
|
+
return "auto"
|
|
53
|
+
normalized = value.strip().lower()
|
|
54
|
+
if normalized in {"dev", "development"}:
|
|
55
|
+
return "dev"
|
|
56
|
+
if normalized in {"prod", "production"}:
|
|
57
|
+
return "prod"
|
|
58
|
+
return "auto"
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
def _resolve_static_mode(value: str, static_base_url: str | None) -> str:
|
|
62
|
+
if value == "auto":
|
|
63
|
+
return "prod" if static_base_url else "dev"
|
|
64
|
+
return value
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
def create_app(
|
|
68
|
+
*,
|
|
69
|
+
db_paths: list[Path],
|
|
70
|
+
fallback_language: str = "en",
|
|
71
|
+
bibtex_path: Path | None = None,
|
|
72
|
+
md_roots: list[Path] | None = None,
|
|
73
|
+
md_translated_roots: list[Path] | None = None,
|
|
74
|
+
pdf_roots: list[Path] | None = None,
|
|
75
|
+
cache_dir: Path | None = None,
|
|
76
|
+
use_cache: bool = True,
|
|
77
|
+
static_base_url: str | None = None,
|
|
78
|
+
static_mode: str | None = None,
|
|
79
|
+
static_export_dir: Path | None = None,
|
|
80
|
+
pdfjs_cdn_base_url: str | None = None,
|
|
81
|
+
) -> Starlette:
|
|
82
|
+
papers = load_and_merge_papers(db_paths, bibtex_path, cache_dir, use_cache, pdf_roots=pdf_roots)
|
|
83
|
+
|
|
84
|
+
md_roots = md_roots or []
|
|
85
|
+
md_translated_roots = md_translated_roots or []
|
|
86
|
+
pdf_roots = pdf_roots or []
|
|
87
|
+
index = build_index(
|
|
88
|
+
papers,
|
|
89
|
+
md_roots=md_roots,
|
|
90
|
+
md_translated_roots=md_translated_roots,
|
|
91
|
+
pdf_roots=pdf_roots,
|
|
92
|
+
)
|
|
93
|
+
md = create_md_renderer()
|
|
94
|
+
static_base_url = static_base_url or os.getenv("PAPER_DB_STATIC_BASE_URL")
|
|
95
|
+
static_mode = _normalize_static_mode(static_mode or os.getenv("PAPER_DB_STATIC_MODE"))
|
|
96
|
+
resolved_mode = _resolve_static_mode(static_mode, static_base_url)
|
|
97
|
+
export_dir_value = static_export_dir or os.getenv("PAPER_DB_STATIC_EXPORT_DIR")
|
|
98
|
+
export_dir = Path(export_dir_value) if export_dir_value else None
|
|
99
|
+
pdfjs_cdn_base_url = (
|
|
100
|
+
pdfjs_cdn_base_url
|
|
101
|
+
or os.getenv("PAPER_DB_PDFJS_CDN_BASE_URL")
|
|
102
|
+
or DEFAULT_PDFJS_CDN_BASE_URL
|
|
103
|
+
)
|
|
104
|
+
if pdfjs_cdn_base_url:
|
|
105
|
+
lowered = pdfjs_cdn_base_url.strip().lower()
|
|
106
|
+
if lowered in {"none", "off", "local"}:
|
|
107
|
+
pdfjs_cdn_base_url = None
|
|
108
|
+
else:
|
|
109
|
+
pdfjs_cdn_base_url = pdfjs_cdn_base_url.rstrip("/")
|
|
110
|
+
|
|
111
|
+
asset_config = None
|
|
112
|
+
if resolved_mode == "prod":
|
|
113
|
+
if not static_base_url:
|
|
114
|
+
logger.warning("Static mode set to prod without base URL; falling back to dev asset routes.")
|
|
115
|
+
resolved_mode = "dev"
|
|
116
|
+
else:
|
|
117
|
+
asset_config = build_static_assets(
|
|
118
|
+
index,
|
|
119
|
+
static_base_url=static_base_url,
|
|
120
|
+
static_export_dir=export_dir,
|
|
121
|
+
)
|
|
122
|
+
if resolved_mode == "dev" and export_dir:
|
|
123
|
+
asset_config = build_static_assets(
|
|
124
|
+
index,
|
|
125
|
+
static_base_url="",
|
|
126
|
+
static_export_dir=export_dir,
|
|
127
|
+
allow_empty_base=True,
|
|
128
|
+
)
|
|
129
|
+
if asset_config is None:
|
|
130
|
+
asset_config = build_static_assets(index, static_base_url=None)
|
|
131
|
+
|
|
132
|
+
routes = [
|
|
133
|
+
Route("/", index_page, methods=["GET"]),
|
|
134
|
+
Route("/robots.txt", robots_txt, methods=["GET"]),
|
|
135
|
+
Route("/stats", stats_page, methods=["GET"]),
|
|
136
|
+
Route("/paper/{source_hash:str}", paper_detail, methods=["GET"]),
|
|
137
|
+
Route("/api/papers", api_papers, methods=["GET"]),
|
|
138
|
+
Route("/api/stats", api_stats, methods=["GET"]),
|
|
139
|
+
Route("/api/pdf/{source_hash:str}", api_pdf, methods=["GET"]),
|
|
140
|
+
Route("/api/dev/markdown/{source_hash:str}", api_markdown, methods=["GET"]),
|
|
141
|
+
]
|
|
142
|
+
if PDFJS_STATIC_DIR.exists():
|
|
143
|
+
routes.append(
|
|
144
|
+
Mount(
|
|
145
|
+
"/pdfjs",
|
|
146
|
+
app=StaticFiles(directory=str(PDFJS_STATIC_DIR), html=True),
|
|
147
|
+
name="pdfjs",
|
|
148
|
+
)
|
|
149
|
+
)
|
|
150
|
+
elif pdf_roots:
|
|
151
|
+
logger.warning(
|
|
152
|
+
"PDF.js viewer assets not found at %s; PDF Viewer mode will be unavailable.",
|
|
153
|
+
PDFJS_STATIC_DIR,
|
|
154
|
+
)
|
|
155
|
+
if STATIC_DIR.exists():
|
|
156
|
+
routes.append(
|
|
157
|
+
Mount(
|
|
158
|
+
"/static",
|
|
159
|
+
app=StaticFiles(directory=str(STATIC_DIR)),
|
|
160
|
+
name="static",
|
|
161
|
+
)
|
|
162
|
+
)
|
|
163
|
+
if export_dir and export_dir.exists() and asset_config.enabled and not asset_config.base_url:
|
|
164
|
+
cache_header = "public, max-age=31536000, immutable"
|
|
165
|
+
routes.extend(
|
|
166
|
+
[
|
|
167
|
+
Mount(
|
|
168
|
+
"/pdf",
|
|
169
|
+
app=_StaticAssetFiles(directory=str(export_dir / "pdf"), cache_control=cache_header),
|
|
170
|
+
name="static_pdf",
|
|
171
|
+
),
|
|
172
|
+
Mount(
|
|
173
|
+
"/images",
|
|
174
|
+
app=_StaticAssetFiles(directory=str(export_dir / "images"), cache_control=cache_header),
|
|
175
|
+
name="static_images",
|
|
176
|
+
),
|
|
177
|
+
Mount(
|
|
178
|
+
"/md",
|
|
179
|
+
app=_StaticAssetFiles(directory=str(export_dir / "md"), cache_control=cache_header),
|
|
180
|
+
name="static_md",
|
|
181
|
+
),
|
|
182
|
+
Mount(
|
|
183
|
+
"/md_translate",
|
|
184
|
+
app=_StaticAssetFiles(directory=str(export_dir / "md_translate"), cache_control=cache_header),
|
|
185
|
+
name="static_md_translate",
|
|
186
|
+
),
|
|
187
|
+
]
|
|
188
|
+
)
|
|
189
|
+
app = Starlette(routes=routes)
|
|
190
|
+
app.add_middleware(_NoIndexMiddleware)
|
|
191
|
+
app.state.index = index
|
|
192
|
+
app.state.md = md
|
|
193
|
+
app.state.fallback_language = fallback_language
|
|
194
|
+
app.state.pdf_roots = pdf_roots
|
|
195
|
+
app.state.static_mode = resolved_mode
|
|
196
|
+
app.state.asset_config = asset_config
|
|
197
|
+
app.state.static_export_dir = export_dir
|
|
198
|
+
app.state.pdfjs_cdn_base_url = pdfjs_cdn_base_url
|
|
199
|
+
return app
|
{deepresearch_flow-0.4.1 → deepresearch_flow-0.5.0}/python/deepresearch_flow/paper/web/constants.py
RENAMED
|
@@ -12,6 +12,7 @@ CDN_KATEX_AUTO = "https://cdn.jsdelivr.net/npm/katex@0.16.27/dist/contrib/auto-r
|
|
|
12
12
|
# Use legacy builds to ensure `pdfjsLib` is available as a global.
|
|
13
13
|
CDN_PDFJS = "https://cdn.jsdelivr.net/npm/pdfjs-dist@3.11.174/legacy/build/pdf.min.js"
|
|
14
14
|
CDN_PDFJS_WORKER = "https://cdn.jsdelivr.net/npm/pdfjs-dist@3.11.174/legacy/build/pdf.worker.min.js"
|
|
15
|
+
DEFAULT_PDFJS_CDN_BASE_URL = "https://cdn.jsdelivr.net/npm/pdfjs-dist@3.11.174"
|
|
15
16
|
|
|
16
17
|
# PDF.js viewer configuration
|
|
17
18
|
PDFJS_VIEWER_PATH = "/pdfjs/web/viewer.html"
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
"""Route handlers for paper web UI."""
|
|
2
2
|
|
|
3
|
-
from .api import api_papers, api_pdf, api_stats
|
|
3
|
+
from .api import api_markdown, api_papers, api_pdf, api_stats
|
|
4
4
|
from .pages import index_page, paper_detail, robots_txt, stats_page
|
|
5
5
|
|
|
6
6
|
__all__ = [
|
|
7
7
|
"api_papers",
|
|
8
8
|
"api_pdf",
|
|
9
9
|
"api_stats",
|
|
10
|
+
"api_markdown",
|
|
10
11
|
"index_page",
|
|
11
12
|
"paper_detail",
|
|
12
13
|
"robots_txt",
|
|
@@ -19,6 +19,8 @@ from deepresearch_flow.paper.web.filters import (
|
|
|
19
19
|
presence_filter,
|
|
20
20
|
sorted_ids,
|
|
21
21
|
)
|
|
22
|
+
from deepresearch_flow.paper.web.markdown import normalize_markdown_images
|
|
23
|
+
from deepresearch_flow.paper.web.static_assets import resolve_asset_urls
|
|
22
24
|
from deepresearch_flow.paper.web.text import extract_summary_snippet, normalize_title, normalize_venue
|
|
23
25
|
from deepresearch_flow.paper.web.query import Query, QueryTerm, parse_query
|
|
24
26
|
|
|
@@ -92,9 +94,18 @@ def _apply_query(index: PaperIndex, query: Query) -> set[int]:
|
|
|
92
94
|
return result
|
|
93
95
|
|
|
94
96
|
|
|
97
|
+
def _safe_read_text(path: Path) -> str:
|
|
98
|
+
try:
|
|
99
|
+
return path.read_text(encoding="utf-8")
|
|
100
|
+
except UnicodeDecodeError:
|
|
101
|
+
return path.read_text(encoding="latin-1")
|
|
102
|
+
|
|
103
|
+
|
|
95
104
|
async def api_papers(request: Request) -> JSONResponse:
|
|
96
105
|
"""API endpoint for paper list with filtering, sorting, and pagination."""
|
|
97
106
|
index: PaperIndex = request.app.state.index
|
|
107
|
+
asset_config = request.app.state.asset_config
|
|
108
|
+
prefer_local = request.app.state.static_mode == "dev"
|
|
98
109
|
filters = parse_filters(request)
|
|
99
110
|
page = int(filters["page"])
|
|
100
111
|
page_size = int(filters["page_size"])
|
|
@@ -165,6 +176,7 @@ async def api_papers(request: Request) -> JSONResponse:
|
|
|
165
176
|
source_hash = str(paper.get("source_hash") or stable_hash(str(paper.get("source_path") or idx)))
|
|
166
177
|
translations = index.translated_md_by_hash.get(source_hash, {})
|
|
167
178
|
translation_languages = sorted(translations.keys(), key=str.lower)
|
|
179
|
+
asset_urls = resolve_asset_urls(index, source_hash, asset_config, prefer_local=prefer_local)
|
|
168
180
|
items.append(
|
|
169
181
|
{
|
|
170
182
|
"source_hash": source_hash,
|
|
@@ -183,6 +195,10 @@ async def api_papers(request: Request) -> JSONResponse:
|
|
|
183
195
|
"has_summary": bool(paper.get("_has_summary")),
|
|
184
196
|
"is_pdf_only": bool(paper.get("_is_pdf_only")),
|
|
185
197
|
"translation_languages": translation_languages,
|
|
198
|
+
"pdf_url": asset_urls["pdf_url"],
|
|
199
|
+
"md_url": asset_urls["md_url"],
|
|
200
|
+
"md_translated_url": asset_urls["md_translated_url"],
|
|
201
|
+
"images_base_url": asset_urls["images_base_url"],
|
|
186
202
|
}
|
|
187
203
|
)
|
|
188
204
|
|
|
@@ -215,3 +231,42 @@ async def api_pdf(request: Request) -> Response:
|
|
|
215
231
|
if allowed_roots and not _ensure_under_roots(pdf_path, allowed_roots):
|
|
216
232
|
return Response("Forbidden", status_code=403)
|
|
217
233
|
return FileResponse(pdf_path)
|
|
234
|
+
|
|
235
|
+
|
|
236
|
+
async def api_markdown(request: Request) -> Response:
|
|
237
|
+
"""Dev-only API endpoint to serve raw markdown content."""
|
|
238
|
+
if request.app.state.static_mode != "dev":
|
|
239
|
+
return Response("Not Found", status_code=404)
|
|
240
|
+
index: PaperIndex = request.app.state.index
|
|
241
|
+
asset_config = request.app.state.asset_config
|
|
242
|
+
export_dir = request.app.state.static_export_dir
|
|
243
|
+
source_hash = request.path_params["source_hash"]
|
|
244
|
+
lang = request.query_params.get("lang")
|
|
245
|
+
md_path = None
|
|
246
|
+
if export_dir and asset_config and asset_config.enabled and (asset_config.base_url or "") == "":
|
|
247
|
+
if lang:
|
|
248
|
+
translated_url = asset_config.translated_md_urls.get(source_hash, {}).get(lang.lower())
|
|
249
|
+
if translated_url:
|
|
250
|
+
rel_path = translated_url.lstrip("/")
|
|
251
|
+
export_path = export_dir / rel_path
|
|
252
|
+
if export_path.exists():
|
|
253
|
+
raw = _safe_read_text(export_path)
|
|
254
|
+
return Response(raw, media_type="text/markdown")
|
|
255
|
+
else:
|
|
256
|
+
md_url = asset_config.md_urls.get(source_hash)
|
|
257
|
+
if md_url:
|
|
258
|
+
rel_path = md_url.lstrip("/")
|
|
259
|
+
export_path = export_dir / rel_path
|
|
260
|
+
if export_path.exists():
|
|
261
|
+
raw = _safe_read_text(export_path)
|
|
262
|
+
return Response(raw, media_type="text/markdown")
|
|
263
|
+
if lang:
|
|
264
|
+
md_path = index.translated_md_by_hash.get(source_hash, {}).get(lang.lower())
|
|
265
|
+
else:
|
|
266
|
+
md_path = index.md_path_by_hash.get(source_hash)
|
|
267
|
+
if not md_path:
|
|
268
|
+
return Response("Markdown not found", status_code=404)
|
|
269
|
+
raw = _safe_read_text(md_path)
|
|
270
|
+
if lang:
|
|
271
|
+
raw = normalize_markdown_images(raw)
|
|
272
|
+
return Response(raw, media_type="text/markdown")
|