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