deepresearch-flow 0.6.1__tar.gz → 0.7.1__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.6.1/python/deepresearch_flow.egg-info → deepresearch_flow-0.7.1}/PKG-INFO +153 -4
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/README.md +150 -2
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/pyproject.toml +3 -2
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/__init__.py +1 -1
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/db.py +81 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/snapshot/api.py +25 -15
- deepresearch_flow-0.7.1/python/deepresearch_flow/paper/snapshot/common.py +34 -0
- deepresearch_flow-0.7.1/python/deepresearch_flow/paper/snapshot/mcp_server.py +686 -0
- deepresearch_flow-0.7.1/python/deepresearch_flow/paper/snapshot/unpacker.py +259 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1/python/deepresearch_flow.egg-info}/PKG-INFO +153 -4
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow.egg-info/SOURCES.txt +3 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow.egg-info/requires.txt +2 -1
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/LICENSE +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/MANIFEST.in +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/__main__.py +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/cli.py +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/__init__.py +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/cli.py +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/config.py +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/db_ops.py +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/extract.py +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/llm.py +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/prompt_templates/__init__.py +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/prompt_templates/deep_read_phi_system.j2 +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/prompt_templates/deep_read_phi_user.j2 +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/prompt_templates/deep_read_system.j2 +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/prompt_templates/deep_read_user.j2 +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/prompt_templates/eight_questions_phi_system.j2 +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/prompt_templates/eight_questions_phi_user.j2 +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/prompt_templates/eight_questions_system.j2 +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/prompt_templates/eight_questions_user.j2 +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/prompt_templates/simple_phi_system.j2 +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/prompt_templates/simple_phi_user.j2 +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/prompt_templates/simple_system.j2 +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/prompt_templates/simple_user.j2 +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/prompt_templates/three_pass_system.j2 +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/prompt_templates/three_pass_user.j2 +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/prompts.py +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/providers/__init__.py +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/providers/azure_openai.py +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/providers/base.py +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/providers/claude.py +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/providers/dashscope.py +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/providers/gemini.py +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/providers/ollama.py +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/providers/openai_compatible.py +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/render.py +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/schema.py +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/schemas/__init__.py +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/schemas/deep_read_phi_schema.json +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/schemas/deep_read_schema.json +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/schemas/default_paper_schema.json +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/schemas/eight_questions_schema.json +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/schemas/three_pass_schema.json +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/snapshot/__init__.py +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/snapshot/builder.py +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/snapshot/identity.py +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/snapshot/schema.py +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/snapshot/tests/__init__.py +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/snapshot/tests/test_identity.py +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/snapshot/text.py +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/template_registry.py +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/templates/__init__.py +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/templates/deep_read.md.j2 +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/templates/deep_read_phi.md.j2 +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/templates/default_paper.md.j2 +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/templates/eight_questions.md.j2 +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/templates/three_pass.md.j2 +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/utils.py +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/__init__.py +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/app.py +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/constants.py +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/filters.py +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/handlers/__init__.py +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/handlers/api.py +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/handlers/pages.py +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/markdown.py +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/LICENSE +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/build/pdf.js +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/build/pdf.js.map +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/build/pdf.sandbox.js +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/build/pdf.sandbox.js.map +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/build/pdf.worker.js +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/build/pdf.worker.js.map +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/78-EUC-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/78-EUC-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/78-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/78-RKSJ-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/78-RKSJ-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/78-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/78ms-RKSJ-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/78ms-RKSJ-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/83pv-RKSJ-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/90ms-RKSJ-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/90ms-RKSJ-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/90msp-RKSJ-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/90msp-RKSJ-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/90pv-RKSJ-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/90pv-RKSJ-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Add-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Add-RKSJ-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Add-RKSJ-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Add-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-CNS1-0.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-CNS1-1.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-CNS1-2.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-CNS1-3.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-CNS1-4.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-CNS1-5.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-CNS1-6.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-CNS1-UCS2.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-GB1-0.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-GB1-1.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-GB1-2.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-GB1-3.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-GB1-4.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-GB1-5.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-GB1-UCS2.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-Japan1-0.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-Japan1-1.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-Japan1-2.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-Japan1-3.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-Japan1-4.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-Japan1-5.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-Japan1-6.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-Japan1-UCS2.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-Korea1-0.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-Korea1-1.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-Korea1-2.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-Korea1-UCS2.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/B5-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/B5-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/B5pc-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/B5pc-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/CNS-EUC-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/CNS-EUC-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/CNS1-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/CNS1-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/CNS2-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/CNS2-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/ETHK-B5-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/ETHK-B5-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/ETen-B5-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/ETen-B5-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/ETenms-B5-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/ETenms-B5-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/EUC-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/EUC-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Ext-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Ext-RKSJ-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Ext-RKSJ-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Ext-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GB-EUC-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GB-EUC-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GB-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GB-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GBK-EUC-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GBK-EUC-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GBK2K-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GBK2K-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GBKp-EUC-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GBKp-EUC-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GBT-EUC-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GBT-EUC-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GBT-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GBT-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GBTpc-EUC-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GBTpc-EUC-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GBpc-EUC-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GBpc-EUC-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/HKdla-B5-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/HKdla-B5-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/HKdlb-B5-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/HKdlb-B5-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/HKgccs-B5-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/HKgccs-B5-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/HKm314-B5-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/HKm314-B5-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/HKm471-B5-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/HKm471-B5-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/HKscs-B5-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/HKscs-B5-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Hankaku.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Hiragana.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/KSC-EUC-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/KSC-EUC-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/KSC-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/KSC-Johab-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/KSC-Johab-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/KSC-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/KSCms-UHC-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/KSCms-UHC-HW-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/KSCms-UHC-HW-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/KSCms-UHC-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/KSCpc-EUC-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/KSCpc-EUC-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Katakana.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/LICENSE +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/NWP-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/NWP-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/RKSJ-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/RKSJ-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Roman.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniCNS-UCS2-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniCNS-UCS2-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniCNS-UTF16-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniCNS-UTF16-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniCNS-UTF32-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniCNS-UTF32-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniCNS-UTF8-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniCNS-UTF8-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniGB-UCS2-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniGB-UCS2-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniGB-UTF16-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniGB-UTF16-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniGB-UTF32-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniGB-UTF32-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniGB-UTF8-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniGB-UTF8-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJIS-UCS2-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJIS-UCS2-HW-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJIS-UCS2-HW-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJIS-UCS2-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJIS-UTF16-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJIS-UTF16-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJIS-UTF32-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJIS-UTF32-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJIS-UTF8-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJIS-UTF8-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJIS2004-UTF16-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJIS2004-UTF16-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJIS2004-UTF32-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJIS2004-UTF32-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJIS2004-UTF8-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJIS2004-UTF8-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJISPro-UCS2-HW-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJISPro-UCS2-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJISPro-UTF8-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJISX0213-UTF32-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJISX0213-UTF32-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJISX02132004-UTF32-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJISX02132004-UTF32-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniKS-UCS2-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniKS-UCS2-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniKS-UTF16-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniKS-UTF16-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniKS-UTF32-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniKS-UTF32-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniKS-UTF8-H.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniKS-UTF8-V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/V.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/WP-Symbol.bcmap +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/compressed.tracemonkey-pldi-09.pdf +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/debugger.css +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/debugger.js +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/altText_add.svg +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/altText_done.svg +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/annotation-check.svg +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/annotation-comment.svg +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/annotation-help.svg +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/annotation-insert.svg +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/annotation-key.svg +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/annotation-newparagraph.svg +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/annotation-noicon.svg +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/annotation-note.svg +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/annotation-paperclip.svg +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/annotation-paragraph.svg +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/annotation-pushpin.svg +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/cursor-editorFreeText.svg +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/cursor-editorInk.svg +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/findbarButton-next.svg +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/findbarButton-previous.svg +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/gv-toolbarButton-download.svg +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/gv-toolbarButton-openinapp.svg +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/loading-dark.svg +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/loading-icon.gif +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/loading.svg +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/secondaryToolbarButton-documentProperties.svg +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/secondaryToolbarButton-firstPage.svg +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/secondaryToolbarButton-handTool.svg +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/secondaryToolbarButton-lastPage.svg +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/secondaryToolbarButton-rotateCcw.svg +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/secondaryToolbarButton-rotateCw.svg +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/secondaryToolbarButton-scrollHorizontal.svg +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/secondaryToolbarButton-scrollPage.svg +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/secondaryToolbarButton-scrollVertical.svg +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/secondaryToolbarButton-scrollWrapped.svg +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/secondaryToolbarButton-selectTool.svg +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/secondaryToolbarButton-spreadEven.svg +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/secondaryToolbarButton-spreadNone.svg +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/secondaryToolbarButton-spreadOdd.svg +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-bookmark.svg +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-currentOutlineItem.svg +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-download.svg +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-editorFreeText.svg +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-editorInk.svg +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-editorStamp.svg +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-menuArrow.svg +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-openFile.svg +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-pageDown.svg +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-pageUp.svg +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-presentationMode.svg +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-print.svg +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-search.svg +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-secondaryToolbarToggle.svg +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-sidebarToggle.svg +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-viewAttachments.svg +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-viewLayers.svg +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-viewOutline.svg +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-viewThumbnail.svg +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-zoomIn.svg +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-zoomOut.svg +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/treeitem-collapsed.svg +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/treeitem-expanded.svg +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ach/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/af/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/an/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ar/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ast/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/az/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/be/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/bg/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/bn/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/bo/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/br/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/brx/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/bs/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ca/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/cak/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ckb/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/cs/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/cy/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/da/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/de/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/dsb/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/el/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/en-CA/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/en-GB/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/en-US/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/eo/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/es-AR/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/es-CL/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/es-ES/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/es-MX/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/et/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/eu/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/fa/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ff/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/fi/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/fr/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/fur/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/fy-NL/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ga-IE/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/gd/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/gl/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/gn/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/gu-IN/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/he/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/hi-IN/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/hr/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/hsb/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/hu/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/hy-AM/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/hye/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ia/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/id/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/is/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/it/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ja/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ka/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/kab/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/kk/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/km/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/kn/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ko/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/lij/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/lo/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/locale.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/lt/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ltg/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/lv/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/meh/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/mk/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/mr/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ms/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/my/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/nb-NO/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ne-NP/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/nl/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/nn-NO/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/oc/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/pa-IN/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/pl/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/pt-BR/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/pt-PT/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/rm/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ro/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ru/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/sat/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/sc/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/scn/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/sco/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/si/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/sk/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/skr/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/sl/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/son/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/sq/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/sr/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/sv-SE/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/szl/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ta/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/te/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/tg/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/th/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/tl/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/tr/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/trs/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/uk/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ur/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/uz/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/vi/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/wo/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/xh/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/zh-CN/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/zh-TW/viewer.properties +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/FoxitDingbats.pfb +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/FoxitFixed.pfb +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/FoxitFixedBold.pfb +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/FoxitFixedBoldItalic.pfb +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/FoxitFixedItalic.pfb +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/FoxitSerif.pfb +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/FoxitSerifBold.pfb +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/FoxitSerifBoldItalic.pfb +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/FoxitSerifItalic.pfb +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/FoxitSymbol.pfb +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/LICENSE_FOXIT +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/LICENSE_LIBERATION +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/LiberationSans-Bold.ttf +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/LiberationSans-BoldItalic.ttf +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/LiberationSans-Italic.ttf +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/LiberationSans-Regular.ttf +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/viewer.css +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/viewer.html +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/viewer.js +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/viewer.js.map +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/query.py +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/static/css/main.css +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/static/js/detail.js +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/static/js/index.js +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/static/js/outline.js +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/static/js/stats.js +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/static_assets.py +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/templates/base.html +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/templates/detail.html +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/templates/index.html +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/templates/stats.html +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/templates.py +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/text.py +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/recognize/__init__.py +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/recognize/cli.py +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/recognize/katex_check.js +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/recognize/markdown.py +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/recognize/math.py +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/recognize/mermaid.py +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/recognize/organize.py +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/translator/__init__.py +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/translator/cli.py +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/translator/config.py +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/translator/engine.py +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/translator/fixers.py +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/translator/placeholder.py +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/translator/prompts.py +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/translator/protector.py +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/translator/segment.py +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow.egg-info/dependency_links.txt +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow.egg-info/entry_points.txt +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow.egg-info/top_level.txt +0 -0
- {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/setup.cfg +0 -0
{deepresearch_flow-0.6.1/python/deepresearch_flow.egg-info → deepresearch_flow-0.7.1}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: deepresearch-flow
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.7.1
|
|
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
|
|
@@ -49,6 +49,7 @@ Requires-Dist: jinja2>=3.1.3
|
|
|
49
49
|
Requires-Dist: json-repair>=0.55.1
|
|
50
50
|
Requires-Dist: jsonschema>=4.26.0
|
|
51
51
|
Requires-Dist: markdown-it-py>=3.0.0
|
|
52
|
+
Requires-Dist: fastmcp>=3.0.0b1
|
|
52
53
|
Requires-Dist: mdit-py-plugins>=0.4.0
|
|
53
54
|
Requires-Dist: pypdf>=6.6.2
|
|
54
55
|
Requires-Dist: pylatexenc>=2.10
|
|
@@ -56,7 +57,7 @@ Requires-Dist: pybtex>=0.24.0
|
|
|
56
57
|
Requires-Dist: rich>=14.3.1
|
|
57
58
|
Requires-Dist: rumdl>=0.1.6
|
|
58
59
|
Requires-Dist: starlette>=0.52.1
|
|
59
|
-
Requires-Dist: tqdm>=4.
|
|
60
|
+
Requires-Dist: tqdm>=4.67.2
|
|
60
61
|
Requires-Dist: uvicorn>=0.27.1
|
|
61
62
|
Dynamic: license-file
|
|
62
63
|
|
|
@@ -519,7 +520,14 @@ server {
|
|
|
519
520
|
}
|
|
520
521
|
|
|
521
522
|
location /api/ {
|
|
522
|
-
proxy_pass http://127.0.0.1:8001
|
|
523
|
+
proxy_pass http://127.0.0.1:8001;
|
|
524
|
+
proxy_set_header Host $host;
|
|
525
|
+
proxy_set_header X-Real-IP $remote_addr;
|
|
526
|
+
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
527
|
+
}
|
|
528
|
+
|
|
529
|
+
location ^~ /mcp {
|
|
530
|
+
proxy_pass http://127.0.0.1:8001;
|
|
523
531
|
proxy_set_header Host $host;
|
|
524
532
|
proxy_set_header X-Real-IP $remote_addr;
|
|
525
533
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
@@ -554,6 +562,147 @@ uv run deepresearch-flow paper db api serve \
|
|
|
554
562
|
--host 0.0.0.0 --port 8001
|
|
555
563
|
```
|
|
556
564
|
|
|
565
|
+
### 3.1) MCP (FastMCP Streamable HTTP)
|
|
566
|
+
|
|
567
|
+
This project exposes an MCP server mounted at `/mcp` on the snapshot API:
|
|
568
|
+
|
|
569
|
+
- Endpoint: `http://<host>:8001/mcp` (same host/port as `paper db api serve`)
|
|
570
|
+
- Transport: Streamable HTTP via `POST` only (no SSE; `GET` returns 405)
|
|
571
|
+
- Protocol header: optional `mcp-protocol-version` (`2025-03-26` or `2025-06-18`)
|
|
572
|
+
- Static reads: summary/source/translation are served as **text content** by reading snapshot static assets (local-first via `PAPER_DB_STATIC_EXPORT_DIR`, HTTP fallback via `PAPER_DB_STATIC_BASE` / `PAPER_DB_STATIC_BASE_URL`)
|
|
573
|
+
|
|
574
|
+
Optional (avoid HTTP fetch by reading exported assets directly on the API host):
|
|
575
|
+
|
|
576
|
+
```bash
|
|
577
|
+
export PAPER_DB_STATIC_EXPORT_DIR=/data/paper-static
|
|
578
|
+
```
|
|
579
|
+
|
|
580
|
+
#### MCP Tools (API functions)
|
|
581
|
+
|
|
582
|
+
<details>
|
|
583
|
+
<summary><strong>search_papers(query, limit=10)</strong> — full-text search (relevance-ranked)</summary>
|
|
584
|
+
|
|
585
|
+
- Args:
|
|
586
|
+
- `query` (str): keywords / topic query
|
|
587
|
+
- `limit` (int): number of results (clamped to API max page size)
|
|
588
|
+
- Returns: list of `{ paper_id, title, year, venue, snippet_markdown }`
|
|
589
|
+
|
|
590
|
+
</details>
|
|
591
|
+
|
|
592
|
+
<details>
|
|
593
|
+
<summary><strong>search_papers_by_keyword(keyword, limit=10)</strong> — facet keyword search</summary>
|
|
594
|
+
|
|
595
|
+
- Args:
|
|
596
|
+
- `keyword` (str): keyword substring
|
|
597
|
+
- `limit` (int): number of results (clamped)
|
|
598
|
+
- Returns: list of `{ paper_id, title, year, venue, snippet_markdown }`
|
|
599
|
+
|
|
600
|
+
</details>
|
|
601
|
+
|
|
602
|
+
<details>
|
|
603
|
+
<summary><strong>get_paper_metadata(paper_id)</strong> — metadata + available summary templates</summary>
|
|
604
|
+
|
|
605
|
+
- Args:
|
|
606
|
+
- `paper_id` (str)
|
|
607
|
+
- Returns: dict with:
|
|
608
|
+
- `paper_id`, `title`, `year`, `venue`
|
|
609
|
+
- `doi`, `arxiv_id`, `openreview_id`, `paper_pw_url`
|
|
610
|
+
- `preferred_summary_template`, `available_summary_templates`
|
|
611
|
+
|
|
612
|
+
</details>
|
|
613
|
+
|
|
614
|
+
<details>
|
|
615
|
+
<summary><strong>get_paper_summary(paper_id, template=None, max_chars=None)</strong> — summary JSON as raw text</summary>
|
|
616
|
+
|
|
617
|
+
- Notes:
|
|
618
|
+
- Uses `preferred_summary_template` if `template` is omitted
|
|
619
|
+
- Returns the **full JSON content** (not a URL)
|
|
620
|
+
- Args:
|
|
621
|
+
- `paper_id` (str)
|
|
622
|
+
- `template` (str | null)
|
|
623
|
+
- `max_chars` (int | null): truncation limit
|
|
624
|
+
- Returns: JSON string (may include a `[truncated: ...]` marker)
|
|
625
|
+
|
|
626
|
+
</details>
|
|
627
|
+
|
|
628
|
+
<details>
|
|
629
|
+
<summary><strong>get_paper_source(paper_id, max_chars=None)</strong> — source markdown as raw text</summary>
|
|
630
|
+
|
|
631
|
+
- Args:
|
|
632
|
+
- `paper_id` (str)
|
|
633
|
+
- `max_chars` (int | null): truncation limit
|
|
634
|
+
- Returns: markdown string (may include a `[truncated: ...]` marker)
|
|
635
|
+
|
|
636
|
+
</details>
|
|
637
|
+
|
|
638
|
+
<details>
|
|
639
|
+
<summary><strong>get_database_stats()</strong> — snapshot-level stats</summary>
|
|
640
|
+
|
|
641
|
+
- Returns:
|
|
642
|
+
- `total`
|
|
643
|
+
- `years`, `months`: list of `{ value, paper_count }`
|
|
644
|
+
- `authors`, `venues`, `institutions`, `keywords`, `tags`: top lists of `{ value, paper_count }`
|
|
645
|
+
|
|
646
|
+
</details>
|
|
647
|
+
|
|
648
|
+
<details>
|
|
649
|
+
<summary><strong>list_top_facets(category, limit=20)</strong> — top values for one facet</summary>
|
|
650
|
+
|
|
651
|
+
- Args:
|
|
652
|
+
- `category`: `author | venue | keyword | institution | tag`
|
|
653
|
+
- `limit` (int)
|
|
654
|
+
- Returns: list of `{ value, paper_count }`
|
|
655
|
+
|
|
656
|
+
</details>
|
|
657
|
+
|
|
658
|
+
<details>
|
|
659
|
+
<summary><strong>filter_papers(author=None, venue=None, year=None, keyword=None, tag=None, limit=10)</strong> — structured filtering</summary>
|
|
660
|
+
|
|
661
|
+
- Args (all optional except `limit`):
|
|
662
|
+
- `author`, `venue`, `keyword`, `tag`: substring match
|
|
663
|
+
- `year`: exact match
|
|
664
|
+
- `limit` (int): number of results (clamped)
|
|
665
|
+
- Returns: list of `{ paper_id, title, year, venue }`
|
|
666
|
+
|
|
667
|
+
</details>
|
|
668
|
+
|
|
669
|
+
#### MCP Resources (URI access)
|
|
670
|
+
|
|
671
|
+
<details>
|
|
672
|
+
<summary><strong>paper://{paper_id}/metadata</strong> — metadata JSON</summary>
|
|
673
|
+
|
|
674
|
+
Returns the same content as `get_paper_metadata(paper_id)` (as a JSON string).
|
|
675
|
+
|
|
676
|
+
</details>
|
|
677
|
+
|
|
678
|
+
<details>
|
|
679
|
+
<summary><strong>paper://{paper_id}/summary</strong> — preferred summary JSON</summary>
|
|
680
|
+
|
|
681
|
+
Returns the same content as `get_paper_summary(paper_id)` (preferred template; JSON string).
|
|
682
|
+
|
|
683
|
+
</details>
|
|
684
|
+
|
|
685
|
+
<details>
|
|
686
|
+
<summary><strong>paper://{paper_id}/summary/{template}</strong> — summary JSON for template</summary>
|
|
687
|
+
|
|
688
|
+
Returns the same content as `get_paper_summary(paper_id, template=template)` (JSON string).
|
|
689
|
+
|
|
690
|
+
</details>
|
|
691
|
+
|
|
692
|
+
<details>
|
|
693
|
+
<summary><strong>paper://{paper_id}/source</strong> — source markdown</summary>
|
|
694
|
+
|
|
695
|
+
Returns the same content as `get_paper_source(paper_id)` (markdown string).
|
|
696
|
+
|
|
697
|
+
</details>
|
|
698
|
+
|
|
699
|
+
<details>
|
|
700
|
+
<summary><strong>paper://{paper_id}/translation/{lang}</strong> — translated markdown</summary>
|
|
701
|
+
|
|
702
|
+
Returns translated markdown for `lang` (e.g. `zh`, `ja`) when available.
|
|
703
|
+
|
|
704
|
+
</details>
|
|
705
|
+
|
|
557
706
|
### 4) Frontend (static build or dev)
|
|
558
707
|
|
|
559
708
|
```bash
|
|
@@ -810,7 +959,7 @@ docker run --rm -p 8899:8899 \
|
|
|
810
959
|
```
|
|
811
960
|
|
|
812
961
|
Notes:
|
|
813
|
-
- nginx listens on 8899 and proxies `/api` to the internal API at `127.0.0.1:8000`.
|
|
962
|
+
- nginx listens on 8899 and proxies `/api` and `/mcp` to the internal API at `127.0.0.1:8000`.
|
|
814
963
|
- Mount your snapshot DB to `/db/papers.db` inside the container.
|
|
815
964
|
- Mount snapshot static assets to `/static` when serving assets from this container (default `PAPER_DB_STATIC_BASE` is `/static`).
|
|
816
965
|
- If `PAPER_DB_STATIC_BASE` is a full URL (e.g. `https://static.example.com`), nginx still serves the frontend locally, while API responses use that external static base for asset links.
|
|
@@ -457,7 +457,14 @@ server {
|
|
|
457
457
|
}
|
|
458
458
|
|
|
459
459
|
location /api/ {
|
|
460
|
-
proxy_pass http://127.0.0.1:8001
|
|
460
|
+
proxy_pass http://127.0.0.1:8001;
|
|
461
|
+
proxy_set_header Host $host;
|
|
462
|
+
proxy_set_header X-Real-IP $remote_addr;
|
|
463
|
+
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
location ^~ /mcp {
|
|
467
|
+
proxy_pass http://127.0.0.1:8001;
|
|
461
468
|
proxy_set_header Host $host;
|
|
462
469
|
proxy_set_header X-Real-IP $remote_addr;
|
|
463
470
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
@@ -492,6 +499,147 @@ uv run deepresearch-flow paper db api serve \
|
|
|
492
499
|
--host 0.0.0.0 --port 8001
|
|
493
500
|
```
|
|
494
501
|
|
|
502
|
+
### 3.1) MCP (FastMCP Streamable HTTP)
|
|
503
|
+
|
|
504
|
+
This project exposes an MCP server mounted at `/mcp` on the snapshot API:
|
|
505
|
+
|
|
506
|
+
- Endpoint: `http://<host>:8001/mcp` (same host/port as `paper db api serve`)
|
|
507
|
+
- Transport: Streamable HTTP via `POST` only (no SSE; `GET` returns 405)
|
|
508
|
+
- Protocol header: optional `mcp-protocol-version` (`2025-03-26` or `2025-06-18`)
|
|
509
|
+
- Static reads: summary/source/translation are served as **text content** by reading snapshot static assets (local-first via `PAPER_DB_STATIC_EXPORT_DIR`, HTTP fallback via `PAPER_DB_STATIC_BASE` / `PAPER_DB_STATIC_BASE_URL`)
|
|
510
|
+
|
|
511
|
+
Optional (avoid HTTP fetch by reading exported assets directly on the API host):
|
|
512
|
+
|
|
513
|
+
```bash
|
|
514
|
+
export PAPER_DB_STATIC_EXPORT_DIR=/data/paper-static
|
|
515
|
+
```
|
|
516
|
+
|
|
517
|
+
#### MCP Tools (API functions)
|
|
518
|
+
|
|
519
|
+
<details>
|
|
520
|
+
<summary><strong>search_papers(query, limit=10)</strong> — full-text search (relevance-ranked)</summary>
|
|
521
|
+
|
|
522
|
+
- Args:
|
|
523
|
+
- `query` (str): keywords / topic query
|
|
524
|
+
- `limit` (int): number of results (clamped to API max page size)
|
|
525
|
+
- Returns: list of `{ paper_id, title, year, venue, snippet_markdown }`
|
|
526
|
+
|
|
527
|
+
</details>
|
|
528
|
+
|
|
529
|
+
<details>
|
|
530
|
+
<summary><strong>search_papers_by_keyword(keyword, limit=10)</strong> — facet keyword search</summary>
|
|
531
|
+
|
|
532
|
+
- Args:
|
|
533
|
+
- `keyword` (str): keyword substring
|
|
534
|
+
- `limit` (int): number of results (clamped)
|
|
535
|
+
- Returns: list of `{ paper_id, title, year, venue, snippet_markdown }`
|
|
536
|
+
|
|
537
|
+
</details>
|
|
538
|
+
|
|
539
|
+
<details>
|
|
540
|
+
<summary><strong>get_paper_metadata(paper_id)</strong> — metadata + available summary templates</summary>
|
|
541
|
+
|
|
542
|
+
- Args:
|
|
543
|
+
- `paper_id` (str)
|
|
544
|
+
- Returns: dict with:
|
|
545
|
+
- `paper_id`, `title`, `year`, `venue`
|
|
546
|
+
- `doi`, `arxiv_id`, `openreview_id`, `paper_pw_url`
|
|
547
|
+
- `preferred_summary_template`, `available_summary_templates`
|
|
548
|
+
|
|
549
|
+
</details>
|
|
550
|
+
|
|
551
|
+
<details>
|
|
552
|
+
<summary><strong>get_paper_summary(paper_id, template=None, max_chars=None)</strong> — summary JSON as raw text</summary>
|
|
553
|
+
|
|
554
|
+
- Notes:
|
|
555
|
+
- Uses `preferred_summary_template` if `template` is omitted
|
|
556
|
+
- Returns the **full JSON content** (not a URL)
|
|
557
|
+
- Args:
|
|
558
|
+
- `paper_id` (str)
|
|
559
|
+
- `template` (str | null)
|
|
560
|
+
- `max_chars` (int | null): truncation limit
|
|
561
|
+
- Returns: JSON string (may include a `[truncated: ...]` marker)
|
|
562
|
+
|
|
563
|
+
</details>
|
|
564
|
+
|
|
565
|
+
<details>
|
|
566
|
+
<summary><strong>get_paper_source(paper_id, max_chars=None)</strong> — source markdown as raw text</summary>
|
|
567
|
+
|
|
568
|
+
- Args:
|
|
569
|
+
- `paper_id` (str)
|
|
570
|
+
- `max_chars` (int | null): truncation limit
|
|
571
|
+
- Returns: markdown string (may include a `[truncated: ...]` marker)
|
|
572
|
+
|
|
573
|
+
</details>
|
|
574
|
+
|
|
575
|
+
<details>
|
|
576
|
+
<summary><strong>get_database_stats()</strong> — snapshot-level stats</summary>
|
|
577
|
+
|
|
578
|
+
- Returns:
|
|
579
|
+
- `total`
|
|
580
|
+
- `years`, `months`: list of `{ value, paper_count }`
|
|
581
|
+
- `authors`, `venues`, `institutions`, `keywords`, `tags`: top lists of `{ value, paper_count }`
|
|
582
|
+
|
|
583
|
+
</details>
|
|
584
|
+
|
|
585
|
+
<details>
|
|
586
|
+
<summary><strong>list_top_facets(category, limit=20)</strong> — top values for one facet</summary>
|
|
587
|
+
|
|
588
|
+
- Args:
|
|
589
|
+
- `category`: `author | venue | keyword | institution | tag`
|
|
590
|
+
- `limit` (int)
|
|
591
|
+
- Returns: list of `{ value, paper_count }`
|
|
592
|
+
|
|
593
|
+
</details>
|
|
594
|
+
|
|
595
|
+
<details>
|
|
596
|
+
<summary><strong>filter_papers(author=None, venue=None, year=None, keyword=None, tag=None, limit=10)</strong> — structured filtering</summary>
|
|
597
|
+
|
|
598
|
+
- Args (all optional except `limit`):
|
|
599
|
+
- `author`, `venue`, `keyword`, `tag`: substring match
|
|
600
|
+
- `year`: exact match
|
|
601
|
+
- `limit` (int): number of results (clamped)
|
|
602
|
+
- Returns: list of `{ paper_id, title, year, venue }`
|
|
603
|
+
|
|
604
|
+
</details>
|
|
605
|
+
|
|
606
|
+
#### MCP Resources (URI access)
|
|
607
|
+
|
|
608
|
+
<details>
|
|
609
|
+
<summary><strong>paper://{paper_id}/metadata</strong> — metadata JSON</summary>
|
|
610
|
+
|
|
611
|
+
Returns the same content as `get_paper_metadata(paper_id)` (as a JSON string).
|
|
612
|
+
|
|
613
|
+
</details>
|
|
614
|
+
|
|
615
|
+
<details>
|
|
616
|
+
<summary><strong>paper://{paper_id}/summary</strong> — preferred summary JSON</summary>
|
|
617
|
+
|
|
618
|
+
Returns the same content as `get_paper_summary(paper_id)` (preferred template; JSON string).
|
|
619
|
+
|
|
620
|
+
</details>
|
|
621
|
+
|
|
622
|
+
<details>
|
|
623
|
+
<summary><strong>paper://{paper_id}/summary/{template}</strong> — summary JSON for template</summary>
|
|
624
|
+
|
|
625
|
+
Returns the same content as `get_paper_summary(paper_id, template=template)` (JSON string).
|
|
626
|
+
|
|
627
|
+
</details>
|
|
628
|
+
|
|
629
|
+
<details>
|
|
630
|
+
<summary><strong>paper://{paper_id}/source</strong> — source markdown</summary>
|
|
631
|
+
|
|
632
|
+
Returns the same content as `get_paper_source(paper_id)` (markdown string).
|
|
633
|
+
|
|
634
|
+
</details>
|
|
635
|
+
|
|
636
|
+
<details>
|
|
637
|
+
<summary><strong>paper://{paper_id}/translation/{lang}</strong> — translated markdown</summary>
|
|
638
|
+
|
|
639
|
+
Returns translated markdown for `lang` (e.g. `zh`, `ja`) when available.
|
|
640
|
+
|
|
641
|
+
</details>
|
|
642
|
+
|
|
495
643
|
### 4) Frontend (static build or dev)
|
|
496
644
|
|
|
497
645
|
```bash
|
|
@@ -748,7 +896,7 @@ docker run --rm -p 8899:8899 \
|
|
|
748
896
|
```
|
|
749
897
|
|
|
750
898
|
Notes:
|
|
751
|
-
- nginx listens on 8899 and proxies `/api` to the internal API at `127.0.0.1:8000`.
|
|
899
|
+
- nginx listens on 8899 and proxies `/api` and `/mcp` to the internal API at `127.0.0.1:8000`.
|
|
752
900
|
- Mount your snapshot DB to `/db/papers.db` inside the container.
|
|
753
901
|
- Mount snapshot static assets to `/static` when serving assets from this container (default `PAPER_DB_STATIC_BASE` is `/static`).
|
|
754
902
|
- If `PAPER_DB_STATIC_BASE` is a full URL (e.g. `https://static.example.com`), nginx still serves the frontend locally, while API responses use that external static base for asset links.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "deepresearch-flow"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.7.1"
|
|
4
4
|
description = "Workflow tools for paper extraction, review, and research automation."
|
|
5
5
|
readme = { file = "README.md", content-type = "text/markdown" }
|
|
6
6
|
license = { file = "LICENSE" }
|
|
@@ -18,6 +18,7 @@ dependencies = [
|
|
|
18
18
|
"json-repair>=0.55.1",
|
|
19
19
|
"jsonschema>=4.26.0",
|
|
20
20
|
"markdown-it-py>=3.0.0",
|
|
21
|
+
"fastmcp>=3.0.0b1",
|
|
21
22
|
"mdit-py-plugins>=0.4.0",
|
|
22
23
|
"pypdf>=6.6.2",
|
|
23
24
|
"pylatexenc>=2.10",
|
|
@@ -25,7 +26,7 @@ dependencies = [
|
|
|
25
26
|
"rich>=14.3.1",
|
|
26
27
|
"rumdl>=0.1.6",
|
|
27
28
|
"starlette>=0.52.1",
|
|
28
|
-
"tqdm>=4.
|
|
29
|
+
"tqdm>=4.67.2",
|
|
29
30
|
"uvicorn>=0.27.1",
|
|
30
31
|
]
|
|
31
32
|
keywords = ["research", "papers", "pdf", "ocr", "llm", "workflow"]
|
|
@@ -424,6 +424,87 @@ def register_db_commands(db_group: click.Group) -> None:
|
|
|
424
424
|
click.echo(f"Wrote snapshot DB: {opts.output_db}")
|
|
425
425
|
click.echo(f"Wrote static export: {opts.static_export_dir}")
|
|
426
426
|
|
|
427
|
+
@snapshot_group.group("unpack")
|
|
428
|
+
def snapshot_unpack_group() -> None:
|
|
429
|
+
"""Unpack snapshot artifacts."""
|
|
430
|
+
|
|
431
|
+
@snapshot_unpack_group.command("md")
|
|
432
|
+
@click.option("--snapshot-db", "snapshot_db", required=True, help="Path to snapshot database")
|
|
433
|
+
@click.option(
|
|
434
|
+
"--static-export-dir",
|
|
435
|
+
"static_export_dir",
|
|
436
|
+
required=True,
|
|
437
|
+
help="Path to static export directory",
|
|
438
|
+
)
|
|
439
|
+
@click.option(
|
|
440
|
+
"--pdf-root",
|
|
441
|
+
"pdf_roots",
|
|
442
|
+
multiple=True,
|
|
443
|
+
required=True,
|
|
444
|
+
help="PDF root directories for name alignment (repeatable)",
|
|
445
|
+
)
|
|
446
|
+
@click.option("--md-output-dir", "md_output_dir", required=True, help="Output directory for Markdown")
|
|
447
|
+
@click.option(
|
|
448
|
+
"--md-translated-output-dir",
|
|
449
|
+
"md_translated_output_dir",
|
|
450
|
+
required=True,
|
|
451
|
+
help="Output directory for translated Markdown",
|
|
452
|
+
)
|
|
453
|
+
def snapshot_unpack_md(
|
|
454
|
+
snapshot_db: str,
|
|
455
|
+
static_export_dir: str,
|
|
456
|
+
pdf_roots: tuple[str, ...],
|
|
457
|
+
md_output_dir: str,
|
|
458
|
+
md_translated_output_dir: str,
|
|
459
|
+
) -> None:
|
|
460
|
+
"""Unpack source/translated markdown and align filenames to PDFs."""
|
|
461
|
+
from deepresearch_flow.paper.snapshot.unpacker import SnapshotUnpackMdOptions, unpack_md
|
|
462
|
+
|
|
463
|
+
opts = SnapshotUnpackMdOptions(
|
|
464
|
+
snapshot_db=Path(snapshot_db),
|
|
465
|
+
static_export_dir=Path(static_export_dir),
|
|
466
|
+
pdf_roots=[Path(path) for path in pdf_roots],
|
|
467
|
+
md_output_dir=Path(md_output_dir),
|
|
468
|
+
md_translated_output_dir=Path(md_translated_output_dir),
|
|
469
|
+
)
|
|
470
|
+
unpack_md(opts)
|
|
471
|
+
|
|
472
|
+
@snapshot_unpack_group.command("info")
|
|
473
|
+
@click.option("--snapshot-db", "snapshot_db", required=True, help="Path to snapshot database")
|
|
474
|
+
@click.option(
|
|
475
|
+
"--static-export-dir",
|
|
476
|
+
"static_export_dir",
|
|
477
|
+
required=True,
|
|
478
|
+
help="Path to static export directory",
|
|
479
|
+
)
|
|
480
|
+
@click.option(
|
|
481
|
+
"--pdf-root",
|
|
482
|
+
"pdf_roots",
|
|
483
|
+
multiple=True,
|
|
484
|
+
required=True,
|
|
485
|
+
help="PDF root directories for name alignment (repeatable)",
|
|
486
|
+
)
|
|
487
|
+
@click.option("--template", "template", required=True, help="Summary template tag")
|
|
488
|
+
@click.option("--output-json", "output_json", required=True, help="Output JSON file path")
|
|
489
|
+
def snapshot_unpack_info(
|
|
490
|
+
snapshot_db: str,
|
|
491
|
+
static_export_dir: str,
|
|
492
|
+
pdf_roots: tuple[str, ...],
|
|
493
|
+
template: str,
|
|
494
|
+
output_json: str,
|
|
495
|
+
) -> None:
|
|
496
|
+
"""Unpack aggregated paper_infos.json from snapshot summaries."""
|
|
497
|
+
from deepresearch_flow.paper.snapshot.unpacker import SnapshotUnpackInfoOptions, unpack_info
|
|
498
|
+
|
|
499
|
+
opts = SnapshotUnpackInfoOptions(
|
|
500
|
+
snapshot_db=Path(snapshot_db),
|
|
501
|
+
static_export_dir=Path(static_export_dir),
|
|
502
|
+
pdf_roots=[Path(path) for path in pdf_roots],
|
|
503
|
+
template=template,
|
|
504
|
+
output_json=Path(output_json),
|
|
505
|
+
)
|
|
506
|
+
unpack_info(opts)
|
|
507
|
+
|
|
427
508
|
@db_group.group("api")
|
|
428
509
|
def api_group() -> None:
|
|
429
510
|
"""Read-only JSON API server backed by a snapshot DB."""
|
{deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/snapshot/api.py
RENAMED
|
@@ -11,8 +11,9 @@ from starlette.applications import Starlette
|
|
|
11
11
|
from starlette.middleware.cors import CORSMiddleware
|
|
12
12
|
from starlette.requests import Request
|
|
13
13
|
from starlette.responses import JSONResponse, Response
|
|
14
|
-
from starlette.routing import Route
|
|
14
|
+
from starlette.routing import Mount, Route
|
|
15
15
|
|
|
16
|
+
from deepresearch_flow.paper.snapshot.common import ApiLimits, _open_ro_conn
|
|
16
17
|
from deepresearch_flow.paper.snapshot.text import merge_adjacent_markers, remove_cjk_spaces, rewrite_search_query
|
|
17
18
|
|
|
18
19
|
_WHITESPACE_RE = re.compile(r"\s+")
|
|
@@ -87,13 +88,6 @@ _FACET_TYPE_TO_KEY = {
|
|
|
87
88
|
}
|
|
88
89
|
|
|
89
90
|
|
|
90
|
-
@dataclass(frozen=True)
|
|
91
|
-
class ApiLimits:
|
|
92
|
-
max_query_length: int = 500
|
|
93
|
-
max_page_size: int = 100
|
|
94
|
-
max_pagination_offset: int = 10_000 # page * page_size
|
|
95
|
-
|
|
96
|
-
|
|
97
91
|
@dataclass(frozen=True)
|
|
98
92
|
class SnapshotApiConfig:
|
|
99
93
|
snapshot_db: Path
|
|
@@ -110,12 +104,6 @@ def _json_error(status_code: int, *, error: str, detail: str) -> JSONResponse:
|
|
|
110
104
|
return JSONResponse({"error": error, "detail": detail}, status_code=status_code)
|
|
111
105
|
|
|
112
106
|
|
|
113
|
-
def _open_ro_conn(db_path: Path) -> sqlite3.Connection:
|
|
114
|
-
uri = f"file:{db_path.as_posix()}?mode=ro"
|
|
115
|
-
conn = sqlite3.connect(uri, uri=True)
|
|
116
|
-
conn.row_factory = sqlite3.Row
|
|
117
|
-
conn.execute("PRAGMA query_only=ON;")
|
|
118
|
-
return conn
|
|
119
107
|
|
|
120
108
|
|
|
121
109
|
def _snapshot_build_id(conn: sqlite3.Connection) -> str:
|
|
@@ -917,6 +905,22 @@ def create_app(
|
|
|
917
905
|
limits=limits or ApiLimits(),
|
|
918
906
|
)
|
|
919
907
|
|
|
908
|
+
# Lazy import to avoid circular dependency
|
|
909
|
+
from deepresearch_flow.paper.snapshot.mcp_server import (
|
|
910
|
+
McpSnapshotConfig,
|
|
911
|
+
create_mcp_app,
|
|
912
|
+
resolve_static_export_dir,
|
|
913
|
+
)
|
|
914
|
+
|
|
915
|
+
mcp_config = McpSnapshotConfig(
|
|
916
|
+
snapshot_db=snapshot_db,
|
|
917
|
+
static_base_url=_normalize_base_url(static_base_url),
|
|
918
|
+
static_export_dir=resolve_static_export_dir(),
|
|
919
|
+
limits=limits or ApiLimits(),
|
|
920
|
+
origin_allowlist=cors_allowed_origins or ["*"],
|
|
921
|
+
)
|
|
922
|
+
mcp_app, mcp_lifespan = create_mcp_app(mcp_config)
|
|
923
|
+
|
|
920
924
|
routes = [
|
|
921
925
|
Route("/api/v1/config", _api_config, methods=["GET"]),
|
|
922
926
|
Route("/api/v1/search", _api_search, methods=["GET"]),
|
|
@@ -927,9 +931,15 @@ def create_app(
|
|
|
927
931
|
Route("/api/v1/facets/{facet:str}/{facet_id:str}/stats", _api_facet_stats, methods=["GET"]),
|
|
928
932
|
Route("/api/v1/facets/{facet:str}/by-value/{value:str}/papers", _api_facet_by_value_papers, methods=["GET"]),
|
|
929
933
|
Route("/api/v1/facets/{facet:str}/by-value/{value:str}/stats", _api_facet_by_value_stats, methods=["GET"]),
|
|
934
|
+
Mount("/mcp", app=mcp_app),
|
|
930
935
|
]
|
|
931
936
|
|
|
932
|
-
|
|
937
|
+
# Pass MCP lifespan to ensure session manager initializes properly
|
|
938
|
+
# https://gofastmcp.com/deployment/http#mounting-in-starlette
|
|
939
|
+
app = Starlette(
|
|
940
|
+
routes=routes,
|
|
941
|
+
lifespan=mcp_lifespan,
|
|
942
|
+
)
|
|
933
943
|
if cfg.cors_allowed_origins:
|
|
934
944
|
app.add_middleware(
|
|
935
945
|
CORSMiddleware,
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"""Shared utilities for snapshot API and MCP server.
|
|
2
|
+
|
|
3
|
+
This module contains common types, configuration, and utilities used by both
|
|
4
|
+
the snapshot REST API and the MCP server to avoid circular imports.
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from __future__ import annotations
|
|
8
|
+
|
|
9
|
+
from dataclasses import dataclass
|
|
10
|
+
from pathlib import Path
|
|
11
|
+
import sqlite3
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
@dataclass(frozen=True)
|
|
15
|
+
class ApiLimits:
|
|
16
|
+
"""API rate and size limits."""
|
|
17
|
+
|
|
18
|
+
max_query_length: int = 500
|
|
19
|
+
max_page_size: int = 100
|
|
20
|
+
max_pagination_offset: int = 10_000
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
def _open_ro_conn(db_path: Path) -> sqlite3.Connection:
|
|
24
|
+
"""Open a read-only SQLite connection with Row factory.
|
|
25
|
+
|
|
26
|
+
Args:
|
|
27
|
+
db_path: Path to the SQLite database file.
|
|
28
|
+
|
|
29
|
+
Returns:
|
|
30
|
+
sqlite3.Connection: A read-only connection with row_factory set to Row.
|
|
31
|
+
"""
|
|
32
|
+
conn = sqlite3.connect(f"file:{db_path}?mode=ro", uri=True, check_same_thread=False)
|
|
33
|
+
conn.row_factory = sqlite3.Row
|
|
34
|
+
return conn
|