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.
Files changed (480) hide show
  1. {deepresearch_flow-0.6.1/python/deepresearch_flow.egg-info → deepresearch_flow-0.7.1}/PKG-INFO +153 -4
  2. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/README.md +150 -2
  3. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/pyproject.toml +3 -2
  4. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/__init__.py +1 -1
  5. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/db.py +81 -0
  6. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/snapshot/api.py +25 -15
  7. deepresearch_flow-0.7.1/python/deepresearch_flow/paper/snapshot/common.py +34 -0
  8. deepresearch_flow-0.7.1/python/deepresearch_flow/paper/snapshot/mcp_server.py +686 -0
  9. deepresearch_flow-0.7.1/python/deepresearch_flow/paper/snapshot/unpacker.py +259 -0
  10. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1/python/deepresearch_flow.egg-info}/PKG-INFO +153 -4
  11. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow.egg-info/SOURCES.txt +3 -0
  12. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow.egg-info/requires.txt +2 -1
  13. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/LICENSE +0 -0
  14. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/MANIFEST.in +0 -0
  15. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/__main__.py +0 -0
  16. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/cli.py +0 -0
  17. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/__init__.py +0 -0
  18. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/cli.py +0 -0
  19. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/config.py +0 -0
  20. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/db_ops.py +0 -0
  21. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/extract.py +0 -0
  22. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/llm.py +0 -0
  23. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/prompt_templates/__init__.py +0 -0
  24. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/prompt_templates/deep_read_phi_system.j2 +0 -0
  25. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/prompt_templates/deep_read_phi_user.j2 +0 -0
  26. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/prompt_templates/deep_read_system.j2 +0 -0
  27. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/prompt_templates/deep_read_user.j2 +0 -0
  28. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/prompt_templates/eight_questions_phi_system.j2 +0 -0
  29. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/prompt_templates/eight_questions_phi_user.j2 +0 -0
  30. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/prompt_templates/eight_questions_system.j2 +0 -0
  31. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/prompt_templates/eight_questions_user.j2 +0 -0
  32. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/prompt_templates/simple_phi_system.j2 +0 -0
  33. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/prompt_templates/simple_phi_user.j2 +0 -0
  34. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/prompt_templates/simple_system.j2 +0 -0
  35. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/prompt_templates/simple_user.j2 +0 -0
  36. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/prompt_templates/three_pass_system.j2 +0 -0
  37. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/prompt_templates/three_pass_user.j2 +0 -0
  38. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/prompts.py +0 -0
  39. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/providers/__init__.py +0 -0
  40. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/providers/azure_openai.py +0 -0
  41. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/providers/base.py +0 -0
  42. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/providers/claude.py +0 -0
  43. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/providers/dashscope.py +0 -0
  44. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/providers/gemini.py +0 -0
  45. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/providers/ollama.py +0 -0
  46. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/providers/openai_compatible.py +0 -0
  47. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/render.py +0 -0
  48. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/schema.py +0 -0
  49. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/schemas/__init__.py +0 -0
  50. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/schemas/deep_read_phi_schema.json +0 -0
  51. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/schemas/deep_read_schema.json +0 -0
  52. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/schemas/default_paper_schema.json +0 -0
  53. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/schemas/eight_questions_schema.json +0 -0
  54. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/schemas/three_pass_schema.json +0 -0
  55. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/snapshot/__init__.py +0 -0
  56. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/snapshot/builder.py +0 -0
  57. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/snapshot/identity.py +0 -0
  58. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/snapshot/schema.py +0 -0
  59. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/snapshot/tests/__init__.py +0 -0
  60. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/snapshot/tests/test_identity.py +0 -0
  61. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/snapshot/text.py +0 -0
  62. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/template_registry.py +0 -0
  63. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/templates/__init__.py +0 -0
  64. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/templates/deep_read.md.j2 +0 -0
  65. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/templates/deep_read_phi.md.j2 +0 -0
  66. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/templates/default_paper.md.j2 +0 -0
  67. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/templates/eight_questions.md.j2 +0 -0
  68. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/templates/three_pass.md.j2 +0 -0
  69. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/utils.py +0 -0
  70. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/__init__.py +0 -0
  71. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/app.py +0 -0
  72. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/constants.py +0 -0
  73. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/filters.py +0 -0
  74. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/handlers/__init__.py +0 -0
  75. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/handlers/api.py +0 -0
  76. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/handlers/pages.py +0 -0
  77. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/markdown.py +0 -0
  78. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/LICENSE +0 -0
  79. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/build/pdf.js +0 -0
  80. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/build/pdf.js.map +0 -0
  81. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/build/pdf.sandbox.js +0 -0
  82. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/build/pdf.sandbox.js.map +0 -0
  83. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/build/pdf.worker.js +0 -0
  84. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/build/pdf.worker.js.map +0 -0
  85. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/78-EUC-H.bcmap +0 -0
  86. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/78-EUC-V.bcmap +0 -0
  87. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/78-H.bcmap +0 -0
  88. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/78-RKSJ-H.bcmap +0 -0
  89. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/78-RKSJ-V.bcmap +0 -0
  90. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/78-V.bcmap +0 -0
  91. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/78ms-RKSJ-H.bcmap +0 -0
  92. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/78ms-RKSJ-V.bcmap +0 -0
  93. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/83pv-RKSJ-H.bcmap +0 -0
  94. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/90ms-RKSJ-H.bcmap +0 -0
  95. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/90ms-RKSJ-V.bcmap +0 -0
  96. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/90msp-RKSJ-H.bcmap +0 -0
  97. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/90msp-RKSJ-V.bcmap +0 -0
  98. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/90pv-RKSJ-H.bcmap +0 -0
  99. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/90pv-RKSJ-V.bcmap +0 -0
  100. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Add-H.bcmap +0 -0
  101. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Add-RKSJ-H.bcmap +0 -0
  102. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Add-RKSJ-V.bcmap +0 -0
  103. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Add-V.bcmap +0 -0
  104. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-CNS1-0.bcmap +0 -0
  105. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-CNS1-1.bcmap +0 -0
  106. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-CNS1-2.bcmap +0 -0
  107. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-CNS1-3.bcmap +0 -0
  108. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-CNS1-4.bcmap +0 -0
  109. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-CNS1-5.bcmap +0 -0
  110. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-CNS1-6.bcmap +0 -0
  111. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-CNS1-UCS2.bcmap +0 -0
  112. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-GB1-0.bcmap +0 -0
  113. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-GB1-1.bcmap +0 -0
  114. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-GB1-2.bcmap +0 -0
  115. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-GB1-3.bcmap +0 -0
  116. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-GB1-4.bcmap +0 -0
  117. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-GB1-5.bcmap +0 -0
  118. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-GB1-UCS2.bcmap +0 -0
  119. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-Japan1-0.bcmap +0 -0
  120. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-Japan1-1.bcmap +0 -0
  121. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-Japan1-2.bcmap +0 -0
  122. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-Japan1-3.bcmap +0 -0
  123. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-Japan1-4.bcmap +0 -0
  124. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-Japan1-5.bcmap +0 -0
  125. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-Japan1-6.bcmap +0 -0
  126. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-Japan1-UCS2.bcmap +0 -0
  127. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-Korea1-0.bcmap +0 -0
  128. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-Korea1-1.bcmap +0 -0
  129. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-Korea1-2.bcmap +0 -0
  130. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-Korea1-UCS2.bcmap +0 -0
  131. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/B5-H.bcmap +0 -0
  132. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/B5-V.bcmap +0 -0
  133. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/B5pc-H.bcmap +0 -0
  134. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/B5pc-V.bcmap +0 -0
  135. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/CNS-EUC-H.bcmap +0 -0
  136. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/CNS-EUC-V.bcmap +0 -0
  137. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/CNS1-H.bcmap +0 -0
  138. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/CNS1-V.bcmap +0 -0
  139. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/CNS2-H.bcmap +0 -0
  140. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/CNS2-V.bcmap +0 -0
  141. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/ETHK-B5-H.bcmap +0 -0
  142. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/ETHK-B5-V.bcmap +0 -0
  143. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/ETen-B5-H.bcmap +0 -0
  144. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/ETen-B5-V.bcmap +0 -0
  145. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/ETenms-B5-H.bcmap +0 -0
  146. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/ETenms-B5-V.bcmap +0 -0
  147. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/EUC-H.bcmap +0 -0
  148. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/EUC-V.bcmap +0 -0
  149. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Ext-H.bcmap +0 -0
  150. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Ext-RKSJ-H.bcmap +0 -0
  151. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Ext-RKSJ-V.bcmap +0 -0
  152. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Ext-V.bcmap +0 -0
  153. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GB-EUC-H.bcmap +0 -0
  154. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GB-EUC-V.bcmap +0 -0
  155. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GB-H.bcmap +0 -0
  156. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GB-V.bcmap +0 -0
  157. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GBK-EUC-H.bcmap +0 -0
  158. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GBK-EUC-V.bcmap +0 -0
  159. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GBK2K-H.bcmap +0 -0
  160. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GBK2K-V.bcmap +0 -0
  161. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GBKp-EUC-H.bcmap +0 -0
  162. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GBKp-EUC-V.bcmap +0 -0
  163. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GBT-EUC-H.bcmap +0 -0
  164. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GBT-EUC-V.bcmap +0 -0
  165. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GBT-H.bcmap +0 -0
  166. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GBT-V.bcmap +0 -0
  167. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GBTpc-EUC-H.bcmap +0 -0
  168. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GBTpc-EUC-V.bcmap +0 -0
  169. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GBpc-EUC-H.bcmap +0 -0
  170. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GBpc-EUC-V.bcmap +0 -0
  171. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/H.bcmap +0 -0
  172. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/HKdla-B5-H.bcmap +0 -0
  173. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/HKdla-B5-V.bcmap +0 -0
  174. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/HKdlb-B5-H.bcmap +0 -0
  175. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/HKdlb-B5-V.bcmap +0 -0
  176. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/HKgccs-B5-H.bcmap +0 -0
  177. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/HKgccs-B5-V.bcmap +0 -0
  178. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/HKm314-B5-H.bcmap +0 -0
  179. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/HKm314-B5-V.bcmap +0 -0
  180. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/HKm471-B5-H.bcmap +0 -0
  181. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/HKm471-B5-V.bcmap +0 -0
  182. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/HKscs-B5-H.bcmap +0 -0
  183. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/HKscs-B5-V.bcmap +0 -0
  184. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Hankaku.bcmap +0 -0
  185. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Hiragana.bcmap +0 -0
  186. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/KSC-EUC-H.bcmap +0 -0
  187. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/KSC-EUC-V.bcmap +0 -0
  188. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/KSC-H.bcmap +0 -0
  189. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/KSC-Johab-H.bcmap +0 -0
  190. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/KSC-Johab-V.bcmap +0 -0
  191. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/KSC-V.bcmap +0 -0
  192. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/KSCms-UHC-H.bcmap +0 -0
  193. {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
  194. {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
  195. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/KSCms-UHC-V.bcmap +0 -0
  196. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/KSCpc-EUC-H.bcmap +0 -0
  197. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/KSCpc-EUC-V.bcmap +0 -0
  198. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Katakana.bcmap +0 -0
  199. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/LICENSE +0 -0
  200. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/NWP-H.bcmap +0 -0
  201. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/NWP-V.bcmap +0 -0
  202. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/RKSJ-H.bcmap +0 -0
  203. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/RKSJ-V.bcmap +0 -0
  204. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Roman.bcmap +0 -0
  205. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniCNS-UCS2-H.bcmap +0 -0
  206. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniCNS-UCS2-V.bcmap +0 -0
  207. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniCNS-UTF16-H.bcmap +0 -0
  208. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniCNS-UTF16-V.bcmap +0 -0
  209. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniCNS-UTF32-H.bcmap +0 -0
  210. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniCNS-UTF32-V.bcmap +0 -0
  211. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniCNS-UTF8-H.bcmap +0 -0
  212. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniCNS-UTF8-V.bcmap +0 -0
  213. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniGB-UCS2-H.bcmap +0 -0
  214. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniGB-UCS2-V.bcmap +0 -0
  215. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniGB-UTF16-H.bcmap +0 -0
  216. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniGB-UTF16-V.bcmap +0 -0
  217. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniGB-UTF32-H.bcmap +0 -0
  218. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniGB-UTF32-V.bcmap +0 -0
  219. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniGB-UTF8-H.bcmap +0 -0
  220. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniGB-UTF8-V.bcmap +0 -0
  221. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJIS-UCS2-H.bcmap +0 -0
  222. {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
  223. {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
  224. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJIS-UCS2-V.bcmap +0 -0
  225. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJIS-UTF16-H.bcmap +0 -0
  226. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJIS-UTF16-V.bcmap +0 -0
  227. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJIS-UTF32-H.bcmap +0 -0
  228. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJIS-UTF32-V.bcmap +0 -0
  229. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJIS-UTF8-H.bcmap +0 -0
  230. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJIS-UTF8-V.bcmap +0 -0
  231. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJIS2004-UTF16-H.bcmap +0 -0
  232. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJIS2004-UTF16-V.bcmap +0 -0
  233. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJIS2004-UTF32-H.bcmap +0 -0
  234. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJIS2004-UTF32-V.bcmap +0 -0
  235. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJIS2004-UTF8-H.bcmap +0 -0
  236. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJIS2004-UTF8-V.bcmap +0 -0
  237. {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
  238. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJISPro-UCS2-V.bcmap +0 -0
  239. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJISPro-UTF8-V.bcmap +0 -0
  240. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJISX0213-UTF32-H.bcmap +0 -0
  241. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJISX0213-UTF32-V.bcmap +0 -0
  242. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJISX02132004-UTF32-H.bcmap +0 -0
  243. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJISX02132004-UTF32-V.bcmap +0 -0
  244. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniKS-UCS2-H.bcmap +0 -0
  245. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniKS-UCS2-V.bcmap +0 -0
  246. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniKS-UTF16-H.bcmap +0 -0
  247. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniKS-UTF16-V.bcmap +0 -0
  248. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniKS-UTF32-H.bcmap +0 -0
  249. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniKS-UTF32-V.bcmap +0 -0
  250. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniKS-UTF8-H.bcmap +0 -0
  251. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniKS-UTF8-V.bcmap +0 -0
  252. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/V.bcmap +0 -0
  253. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/WP-Symbol.bcmap +0 -0
  254. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/compressed.tracemonkey-pldi-09.pdf +0 -0
  255. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/debugger.css +0 -0
  256. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/debugger.js +0 -0
  257. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/altText_add.svg +0 -0
  258. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/altText_done.svg +0 -0
  259. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/annotation-check.svg +0 -0
  260. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/annotation-comment.svg +0 -0
  261. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/annotation-help.svg +0 -0
  262. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/annotation-insert.svg +0 -0
  263. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/annotation-key.svg +0 -0
  264. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/annotation-newparagraph.svg +0 -0
  265. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/annotation-noicon.svg +0 -0
  266. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/annotation-note.svg +0 -0
  267. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/annotation-paperclip.svg +0 -0
  268. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/annotation-paragraph.svg +0 -0
  269. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/annotation-pushpin.svg +0 -0
  270. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/cursor-editorFreeText.svg +0 -0
  271. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/cursor-editorInk.svg +0 -0
  272. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/findbarButton-next.svg +0 -0
  273. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/findbarButton-previous.svg +0 -0
  274. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/gv-toolbarButton-download.svg +0 -0
  275. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/gv-toolbarButton-openinapp.svg +0 -0
  276. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/loading-dark.svg +0 -0
  277. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/loading-icon.gif +0 -0
  278. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/loading.svg +0 -0
  279. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/secondaryToolbarButton-documentProperties.svg +0 -0
  280. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/secondaryToolbarButton-firstPage.svg +0 -0
  281. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/secondaryToolbarButton-handTool.svg +0 -0
  282. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/secondaryToolbarButton-lastPage.svg +0 -0
  283. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/secondaryToolbarButton-rotateCcw.svg +0 -0
  284. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/secondaryToolbarButton-rotateCw.svg +0 -0
  285. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/secondaryToolbarButton-scrollHorizontal.svg +0 -0
  286. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/secondaryToolbarButton-scrollPage.svg +0 -0
  287. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/secondaryToolbarButton-scrollVertical.svg +0 -0
  288. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/secondaryToolbarButton-scrollWrapped.svg +0 -0
  289. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/secondaryToolbarButton-selectTool.svg +0 -0
  290. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/secondaryToolbarButton-spreadEven.svg +0 -0
  291. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/secondaryToolbarButton-spreadNone.svg +0 -0
  292. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/secondaryToolbarButton-spreadOdd.svg +0 -0
  293. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-bookmark.svg +0 -0
  294. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-currentOutlineItem.svg +0 -0
  295. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-download.svg +0 -0
  296. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-editorFreeText.svg +0 -0
  297. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-editorInk.svg +0 -0
  298. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-editorStamp.svg +0 -0
  299. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-menuArrow.svg +0 -0
  300. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-openFile.svg +0 -0
  301. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-pageDown.svg +0 -0
  302. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-pageUp.svg +0 -0
  303. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-presentationMode.svg +0 -0
  304. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-print.svg +0 -0
  305. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-search.svg +0 -0
  306. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-secondaryToolbarToggle.svg +0 -0
  307. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-sidebarToggle.svg +0 -0
  308. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-viewAttachments.svg +0 -0
  309. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-viewLayers.svg +0 -0
  310. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-viewOutline.svg +0 -0
  311. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-viewThumbnail.svg +0 -0
  312. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-zoomIn.svg +0 -0
  313. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-zoomOut.svg +0 -0
  314. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/treeitem-collapsed.svg +0 -0
  315. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/images/treeitem-expanded.svg +0 -0
  316. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ach/viewer.properties +0 -0
  317. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/af/viewer.properties +0 -0
  318. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/an/viewer.properties +0 -0
  319. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ar/viewer.properties +0 -0
  320. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ast/viewer.properties +0 -0
  321. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/az/viewer.properties +0 -0
  322. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/be/viewer.properties +0 -0
  323. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/bg/viewer.properties +0 -0
  324. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/bn/viewer.properties +0 -0
  325. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/bo/viewer.properties +0 -0
  326. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/br/viewer.properties +0 -0
  327. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/brx/viewer.properties +0 -0
  328. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/bs/viewer.properties +0 -0
  329. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ca/viewer.properties +0 -0
  330. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/cak/viewer.properties +0 -0
  331. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ckb/viewer.properties +0 -0
  332. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/cs/viewer.properties +0 -0
  333. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/cy/viewer.properties +0 -0
  334. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/da/viewer.properties +0 -0
  335. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/de/viewer.properties +0 -0
  336. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/dsb/viewer.properties +0 -0
  337. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/el/viewer.properties +0 -0
  338. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/en-CA/viewer.properties +0 -0
  339. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/en-GB/viewer.properties +0 -0
  340. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/en-US/viewer.properties +0 -0
  341. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/eo/viewer.properties +0 -0
  342. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/es-AR/viewer.properties +0 -0
  343. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/es-CL/viewer.properties +0 -0
  344. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/es-ES/viewer.properties +0 -0
  345. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/es-MX/viewer.properties +0 -0
  346. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/et/viewer.properties +0 -0
  347. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/eu/viewer.properties +0 -0
  348. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/fa/viewer.properties +0 -0
  349. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ff/viewer.properties +0 -0
  350. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/fi/viewer.properties +0 -0
  351. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/fr/viewer.properties +0 -0
  352. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/fur/viewer.properties +0 -0
  353. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/fy-NL/viewer.properties +0 -0
  354. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ga-IE/viewer.properties +0 -0
  355. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/gd/viewer.properties +0 -0
  356. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/gl/viewer.properties +0 -0
  357. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/gn/viewer.properties +0 -0
  358. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/gu-IN/viewer.properties +0 -0
  359. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/he/viewer.properties +0 -0
  360. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/hi-IN/viewer.properties +0 -0
  361. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/hr/viewer.properties +0 -0
  362. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/hsb/viewer.properties +0 -0
  363. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/hu/viewer.properties +0 -0
  364. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/hy-AM/viewer.properties +0 -0
  365. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/hye/viewer.properties +0 -0
  366. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ia/viewer.properties +0 -0
  367. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/id/viewer.properties +0 -0
  368. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/is/viewer.properties +0 -0
  369. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/it/viewer.properties +0 -0
  370. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ja/viewer.properties +0 -0
  371. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ka/viewer.properties +0 -0
  372. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/kab/viewer.properties +0 -0
  373. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/kk/viewer.properties +0 -0
  374. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/km/viewer.properties +0 -0
  375. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/kn/viewer.properties +0 -0
  376. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ko/viewer.properties +0 -0
  377. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/lij/viewer.properties +0 -0
  378. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/lo/viewer.properties +0 -0
  379. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/locale.properties +0 -0
  380. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/lt/viewer.properties +0 -0
  381. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ltg/viewer.properties +0 -0
  382. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/lv/viewer.properties +0 -0
  383. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/meh/viewer.properties +0 -0
  384. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/mk/viewer.properties +0 -0
  385. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/mr/viewer.properties +0 -0
  386. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ms/viewer.properties +0 -0
  387. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/my/viewer.properties +0 -0
  388. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/nb-NO/viewer.properties +0 -0
  389. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ne-NP/viewer.properties +0 -0
  390. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/nl/viewer.properties +0 -0
  391. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/nn-NO/viewer.properties +0 -0
  392. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/oc/viewer.properties +0 -0
  393. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/pa-IN/viewer.properties +0 -0
  394. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/pl/viewer.properties +0 -0
  395. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/pt-BR/viewer.properties +0 -0
  396. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/pt-PT/viewer.properties +0 -0
  397. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/rm/viewer.properties +0 -0
  398. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ro/viewer.properties +0 -0
  399. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ru/viewer.properties +0 -0
  400. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/sat/viewer.properties +0 -0
  401. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/sc/viewer.properties +0 -0
  402. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/scn/viewer.properties +0 -0
  403. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/sco/viewer.properties +0 -0
  404. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/si/viewer.properties +0 -0
  405. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/sk/viewer.properties +0 -0
  406. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/skr/viewer.properties +0 -0
  407. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/sl/viewer.properties +0 -0
  408. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/son/viewer.properties +0 -0
  409. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/sq/viewer.properties +0 -0
  410. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/sr/viewer.properties +0 -0
  411. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/sv-SE/viewer.properties +0 -0
  412. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/szl/viewer.properties +0 -0
  413. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ta/viewer.properties +0 -0
  414. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/te/viewer.properties +0 -0
  415. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/tg/viewer.properties +0 -0
  416. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/th/viewer.properties +0 -0
  417. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/tl/viewer.properties +0 -0
  418. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/tr/viewer.properties +0 -0
  419. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/trs/viewer.properties +0 -0
  420. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/uk/viewer.properties +0 -0
  421. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ur/viewer.properties +0 -0
  422. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/uz/viewer.properties +0 -0
  423. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/vi/viewer.properties +0 -0
  424. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/wo/viewer.properties +0 -0
  425. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/xh/viewer.properties +0 -0
  426. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/zh-CN/viewer.properties +0 -0
  427. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/locale/zh-TW/viewer.properties +0 -0
  428. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/FoxitDingbats.pfb +0 -0
  429. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/FoxitFixed.pfb +0 -0
  430. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/FoxitFixedBold.pfb +0 -0
  431. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/FoxitFixedBoldItalic.pfb +0 -0
  432. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/FoxitFixedItalic.pfb +0 -0
  433. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/FoxitSerif.pfb +0 -0
  434. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/FoxitSerifBold.pfb +0 -0
  435. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/FoxitSerifBoldItalic.pfb +0 -0
  436. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/FoxitSerifItalic.pfb +0 -0
  437. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/FoxitSymbol.pfb +0 -0
  438. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/LICENSE_FOXIT +0 -0
  439. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/LICENSE_LIBERATION +0 -0
  440. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/LiberationSans-Bold.ttf +0 -0
  441. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/LiberationSans-BoldItalic.ttf +0 -0
  442. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/LiberationSans-Italic.ttf +0 -0
  443. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/LiberationSans-Regular.ttf +0 -0
  444. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/viewer.css +0 -0
  445. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/viewer.html +0 -0
  446. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/viewer.js +0 -0
  447. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/pdfjs/web/viewer.js.map +0 -0
  448. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/query.py +0 -0
  449. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/static/css/main.css +0 -0
  450. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/static/js/detail.js +0 -0
  451. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/static/js/index.js +0 -0
  452. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/static/js/outline.js +0 -0
  453. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/static/js/stats.js +0 -0
  454. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/static_assets.py +0 -0
  455. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/templates/base.html +0 -0
  456. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/templates/detail.html +0 -0
  457. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/templates/index.html +0 -0
  458. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/templates/stats.html +0 -0
  459. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/templates.py +0 -0
  460. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/paper/web/text.py +0 -0
  461. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/recognize/__init__.py +0 -0
  462. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/recognize/cli.py +0 -0
  463. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/recognize/katex_check.js +0 -0
  464. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/recognize/markdown.py +0 -0
  465. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/recognize/math.py +0 -0
  466. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/recognize/mermaid.py +0 -0
  467. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/recognize/organize.py +0 -0
  468. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/translator/__init__.py +0 -0
  469. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/translator/cli.py +0 -0
  470. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/translator/config.py +0 -0
  471. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/translator/engine.py +0 -0
  472. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/translator/fixers.py +0 -0
  473. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/translator/placeholder.py +0 -0
  474. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/translator/prompts.py +0 -0
  475. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/translator/protector.py +0 -0
  476. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow/translator/segment.py +0 -0
  477. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow.egg-info/dependency_links.txt +0 -0
  478. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow.egg-info/entry_points.txt +0 -0
  479. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/python/deepresearch_flow.egg-info/top_level.txt +0 -0
  480. {deepresearch_flow-0.6.1 → deepresearch_flow-0.7.1}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: deepresearch-flow
3
- Version: 0.6.1
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.66.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.6.1"
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.66.4",
29
+ "tqdm>=4.67.2",
29
30
  "uvicorn>=0.27.1",
30
31
  ]
31
32
  keywords = ["research", "papers", "pdf", "ocr", "llm", "workflow"]
@@ -2,4 +2,4 @@
2
2
 
3
3
  __all__ = ["__version__"]
4
4
 
5
- __version__ = "0.1.0"
5
+ __version__ = "0.7.1"
@@ -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."""
@@ -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
- app = Starlette(routes=routes)
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