deepresearch-flow 0.2.1__tar.gz → 0.4.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (461) hide show
  1. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/MANIFEST.in +2 -0
  2. deepresearch_flow-0.4.0/PKG-INFO +327 -0
  3. deepresearch_flow-0.4.0/README.md +266 -0
  4. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/pyproject.toml +4 -2
  5. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/cli.py +2 -0
  6. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/config.py +15 -0
  7. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/db.py +193 -0
  8. deepresearch_flow-0.4.0/python/deepresearch_flow/paper/db_ops.py +1939 -0
  9. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/llm.py +2 -0
  10. deepresearch_flow-0.4.0/python/deepresearch_flow/paper/web/app.py +94 -0
  11. deepresearch_flow-0.4.0/python/deepresearch_flow/paper/web/constants.py +23 -0
  12. deepresearch_flow-0.4.0/python/deepresearch_flow/paper/web/filters.py +255 -0
  13. deepresearch_flow-0.4.0/python/deepresearch_flow/paper/web/handlers/__init__.py +14 -0
  14. deepresearch_flow-0.4.0/python/deepresearch_flow/paper/web/handlers/api.py +217 -0
  15. deepresearch_flow-0.4.0/python/deepresearch_flow/paper/web/handlers/pages.py +334 -0
  16. deepresearch_flow-0.4.0/python/deepresearch_flow/paper/web/markdown.py +549 -0
  17. deepresearch_flow-0.4.0/python/deepresearch_flow/paper/web/static/css/main.css +857 -0
  18. deepresearch_flow-0.4.0/python/deepresearch_flow/paper/web/static/js/detail.js +406 -0
  19. deepresearch_flow-0.4.0/python/deepresearch_flow/paper/web/static/js/index.js +266 -0
  20. deepresearch_flow-0.4.0/python/deepresearch_flow/paper/web/static/js/outline.js +58 -0
  21. deepresearch_flow-0.4.0/python/deepresearch_flow/paper/web/static/js/stats.js +39 -0
  22. deepresearch_flow-0.4.0/python/deepresearch_flow/paper/web/templates/base.html +43 -0
  23. deepresearch_flow-0.4.0/python/deepresearch_flow/paper/web/templates/detail.html +332 -0
  24. deepresearch_flow-0.4.0/python/deepresearch_flow/paper/web/templates/index.html +114 -0
  25. deepresearch_flow-0.4.0/python/deepresearch_flow/paper/web/templates/stats.html +29 -0
  26. deepresearch_flow-0.4.0/python/deepresearch_flow/paper/web/templates.py +85 -0
  27. deepresearch_flow-0.4.0/python/deepresearch_flow/paper/web/text.py +68 -0
  28. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/recognize/cli.py +157 -3
  29. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/recognize/organize.py +58 -0
  30. deepresearch_flow-0.4.0/python/deepresearch_flow/translator/__init__.py +1 -0
  31. deepresearch_flow-0.4.0/python/deepresearch_flow/translator/cli.py +451 -0
  32. deepresearch_flow-0.4.0/python/deepresearch_flow/translator/config.py +19 -0
  33. deepresearch_flow-0.4.0/python/deepresearch_flow/translator/engine.py +959 -0
  34. deepresearch_flow-0.4.0/python/deepresearch_flow/translator/fixers.py +451 -0
  35. deepresearch_flow-0.4.0/python/deepresearch_flow/translator/placeholder.py +62 -0
  36. deepresearch_flow-0.4.0/python/deepresearch_flow/translator/prompts.py +116 -0
  37. deepresearch_flow-0.4.0/python/deepresearch_flow/translator/protector.py +291 -0
  38. deepresearch_flow-0.4.0/python/deepresearch_flow/translator/segment.py +180 -0
  39. deepresearch_flow-0.4.0/python/deepresearch_flow.egg-info/PKG-INFO +327 -0
  40. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow.egg-info/SOURCES.txt +28 -1
  41. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow.egg-info/requires.txt +2 -0
  42. deepresearch_flow-0.2.1/PKG-INFO +0 -424
  43. deepresearch_flow-0.2.1/README.md +0 -365
  44. deepresearch_flow-0.2.1/python/deepresearch_flow/paper/web/app.py +0 -3368
  45. deepresearch_flow-0.2.1/python/deepresearch_flow.egg-info/PKG-INFO +0 -424
  46. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/LICENSE +0 -0
  47. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/__init__.py +0 -0
  48. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/__main__.py +0 -0
  49. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/__init__.py +0 -0
  50. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/cli.py +0 -0
  51. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/extract.py +0 -0
  52. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/prompt_templates/__init__.py +0 -0
  53. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/prompt_templates/deep_read_system.j2 +0 -0
  54. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/prompt_templates/deep_read_user.j2 +0 -0
  55. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/prompt_templates/eight_questions_system.j2 +0 -0
  56. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/prompt_templates/eight_questions_user.j2 +0 -0
  57. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/prompt_templates/simple_system.j2 +0 -0
  58. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/prompt_templates/simple_user.j2 +0 -0
  59. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/prompt_templates/three_pass_system.j2 +0 -0
  60. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/prompt_templates/three_pass_user.j2 +0 -0
  61. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/prompts.py +0 -0
  62. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/providers/__init__.py +0 -0
  63. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/providers/azure_openai.py +0 -0
  64. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/providers/base.py +0 -0
  65. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/providers/claude.py +0 -0
  66. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/providers/dashscope.py +0 -0
  67. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/providers/gemini.py +0 -0
  68. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/providers/ollama.py +0 -0
  69. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/providers/openai_compatible.py +0 -0
  70. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/render.py +0 -0
  71. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/schema.py +0 -0
  72. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/schemas/__init__.py +0 -0
  73. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/schemas/deep_read_schema.json +0 -0
  74. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/schemas/default_paper_schema.json +0 -0
  75. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/schemas/eight_questions_schema.json +0 -0
  76. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/schemas/three_pass_schema.json +0 -0
  77. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/template_registry.py +0 -0
  78. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/templates/__init__.py +0 -0
  79. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/templates/deep_read.md.j2 +0 -0
  80. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/templates/default_paper.md.j2 +0 -0
  81. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/templates/eight_questions.md.j2 +0 -0
  82. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/templates/three_pass.md.j2 +0 -0
  83. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/utils.py +0 -0
  84. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/__init__.py +0 -0
  85. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/LICENSE +0 -0
  86. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/build/pdf.js +0 -0
  87. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/build/pdf.js.map +0 -0
  88. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/build/pdf.sandbox.js +0 -0
  89. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/build/pdf.sandbox.js.map +0 -0
  90. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/build/pdf.worker.js +0 -0
  91. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/build/pdf.worker.js.map +0 -0
  92. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/78-EUC-H.bcmap +0 -0
  93. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/78-EUC-V.bcmap +0 -0
  94. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/78-H.bcmap +0 -0
  95. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/78-RKSJ-H.bcmap +0 -0
  96. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/78-RKSJ-V.bcmap +0 -0
  97. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/78-V.bcmap +0 -0
  98. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/78ms-RKSJ-H.bcmap +0 -0
  99. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/78ms-RKSJ-V.bcmap +0 -0
  100. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/83pv-RKSJ-H.bcmap +0 -0
  101. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/90ms-RKSJ-H.bcmap +0 -0
  102. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/90ms-RKSJ-V.bcmap +0 -0
  103. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/90msp-RKSJ-H.bcmap +0 -0
  104. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/90msp-RKSJ-V.bcmap +0 -0
  105. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/90pv-RKSJ-H.bcmap +0 -0
  106. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/90pv-RKSJ-V.bcmap +0 -0
  107. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Add-H.bcmap +0 -0
  108. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Add-RKSJ-H.bcmap +0 -0
  109. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Add-RKSJ-V.bcmap +0 -0
  110. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Add-V.bcmap +0 -0
  111. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-CNS1-0.bcmap +0 -0
  112. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-CNS1-1.bcmap +0 -0
  113. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-CNS1-2.bcmap +0 -0
  114. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-CNS1-3.bcmap +0 -0
  115. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-CNS1-4.bcmap +0 -0
  116. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-CNS1-5.bcmap +0 -0
  117. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-CNS1-6.bcmap +0 -0
  118. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-CNS1-UCS2.bcmap +0 -0
  119. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-GB1-0.bcmap +0 -0
  120. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-GB1-1.bcmap +0 -0
  121. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-GB1-2.bcmap +0 -0
  122. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-GB1-3.bcmap +0 -0
  123. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-GB1-4.bcmap +0 -0
  124. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-GB1-5.bcmap +0 -0
  125. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-GB1-UCS2.bcmap +0 -0
  126. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-Japan1-0.bcmap +0 -0
  127. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-Japan1-1.bcmap +0 -0
  128. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-Japan1-2.bcmap +0 -0
  129. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-Japan1-3.bcmap +0 -0
  130. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-Japan1-4.bcmap +0 -0
  131. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-Japan1-5.bcmap +0 -0
  132. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-Japan1-6.bcmap +0 -0
  133. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-Japan1-UCS2.bcmap +0 -0
  134. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-Korea1-0.bcmap +0 -0
  135. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-Korea1-1.bcmap +0 -0
  136. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-Korea1-2.bcmap +0 -0
  137. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Adobe-Korea1-UCS2.bcmap +0 -0
  138. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/B5-H.bcmap +0 -0
  139. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/B5-V.bcmap +0 -0
  140. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/B5pc-H.bcmap +0 -0
  141. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/B5pc-V.bcmap +0 -0
  142. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/CNS-EUC-H.bcmap +0 -0
  143. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/CNS-EUC-V.bcmap +0 -0
  144. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/CNS1-H.bcmap +0 -0
  145. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/CNS1-V.bcmap +0 -0
  146. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/CNS2-H.bcmap +0 -0
  147. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/CNS2-V.bcmap +0 -0
  148. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/ETHK-B5-H.bcmap +0 -0
  149. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/ETHK-B5-V.bcmap +0 -0
  150. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/ETen-B5-H.bcmap +0 -0
  151. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/ETen-B5-V.bcmap +0 -0
  152. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/ETenms-B5-H.bcmap +0 -0
  153. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/ETenms-B5-V.bcmap +0 -0
  154. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/EUC-H.bcmap +0 -0
  155. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/EUC-V.bcmap +0 -0
  156. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Ext-H.bcmap +0 -0
  157. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Ext-RKSJ-H.bcmap +0 -0
  158. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Ext-RKSJ-V.bcmap +0 -0
  159. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Ext-V.bcmap +0 -0
  160. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GB-EUC-H.bcmap +0 -0
  161. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GB-EUC-V.bcmap +0 -0
  162. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GB-H.bcmap +0 -0
  163. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GB-V.bcmap +0 -0
  164. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GBK-EUC-H.bcmap +0 -0
  165. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GBK-EUC-V.bcmap +0 -0
  166. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GBK2K-H.bcmap +0 -0
  167. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GBK2K-V.bcmap +0 -0
  168. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GBKp-EUC-H.bcmap +0 -0
  169. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GBKp-EUC-V.bcmap +0 -0
  170. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GBT-EUC-H.bcmap +0 -0
  171. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GBT-EUC-V.bcmap +0 -0
  172. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GBT-H.bcmap +0 -0
  173. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GBT-V.bcmap +0 -0
  174. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GBTpc-EUC-H.bcmap +0 -0
  175. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GBTpc-EUC-V.bcmap +0 -0
  176. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GBpc-EUC-H.bcmap +0 -0
  177. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/GBpc-EUC-V.bcmap +0 -0
  178. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/H.bcmap +0 -0
  179. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/HKdla-B5-H.bcmap +0 -0
  180. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/HKdla-B5-V.bcmap +0 -0
  181. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/HKdlb-B5-H.bcmap +0 -0
  182. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/HKdlb-B5-V.bcmap +0 -0
  183. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/HKgccs-B5-H.bcmap +0 -0
  184. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/HKgccs-B5-V.bcmap +0 -0
  185. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/HKm314-B5-H.bcmap +0 -0
  186. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/HKm314-B5-V.bcmap +0 -0
  187. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/HKm471-B5-H.bcmap +0 -0
  188. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/HKm471-B5-V.bcmap +0 -0
  189. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/HKscs-B5-H.bcmap +0 -0
  190. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/HKscs-B5-V.bcmap +0 -0
  191. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Hankaku.bcmap +0 -0
  192. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Hiragana.bcmap +0 -0
  193. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/KSC-EUC-H.bcmap +0 -0
  194. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/KSC-EUC-V.bcmap +0 -0
  195. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/KSC-H.bcmap +0 -0
  196. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/KSC-Johab-H.bcmap +0 -0
  197. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/KSC-Johab-V.bcmap +0 -0
  198. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/KSC-V.bcmap +0 -0
  199. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/KSCms-UHC-H.bcmap +0 -0
  200. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/KSCms-UHC-HW-H.bcmap +0 -0
  201. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/KSCms-UHC-HW-V.bcmap +0 -0
  202. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/KSCms-UHC-V.bcmap +0 -0
  203. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/KSCpc-EUC-H.bcmap +0 -0
  204. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/KSCpc-EUC-V.bcmap +0 -0
  205. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Katakana.bcmap +0 -0
  206. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/LICENSE +0 -0
  207. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/NWP-H.bcmap +0 -0
  208. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/NWP-V.bcmap +0 -0
  209. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/RKSJ-H.bcmap +0 -0
  210. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/RKSJ-V.bcmap +0 -0
  211. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/Roman.bcmap +0 -0
  212. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniCNS-UCS2-H.bcmap +0 -0
  213. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniCNS-UCS2-V.bcmap +0 -0
  214. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniCNS-UTF16-H.bcmap +0 -0
  215. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniCNS-UTF16-V.bcmap +0 -0
  216. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniCNS-UTF32-H.bcmap +0 -0
  217. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniCNS-UTF32-V.bcmap +0 -0
  218. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniCNS-UTF8-H.bcmap +0 -0
  219. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniCNS-UTF8-V.bcmap +0 -0
  220. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniGB-UCS2-H.bcmap +0 -0
  221. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniGB-UCS2-V.bcmap +0 -0
  222. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniGB-UTF16-H.bcmap +0 -0
  223. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniGB-UTF16-V.bcmap +0 -0
  224. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniGB-UTF32-H.bcmap +0 -0
  225. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniGB-UTF32-V.bcmap +0 -0
  226. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniGB-UTF8-H.bcmap +0 -0
  227. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniGB-UTF8-V.bcmap +0 -0
  228. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJIS-UCS2-H.bcmap +0 -0
  229. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJIS-UCS2-HW-H.bcmap +0 -0
  230. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJIS-UCS2-HW-V.bcmap +0 -0
  231. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJIS-UCS2-V.bcmap +0 -0
  232. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJIS-UTF16-H.bcmap +0 -0
  233. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJIS-UTF16-V.bcmap +0 -0
  234. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJIS-UTF32-H.bcmap +0 -0
  235. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJIS-UTF32-V.bcmap +0 -0
  236. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJIS-UTF8-H.bcmap +0 -0
  237. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJIS-UTF8-V.bcmap +0 -0
  238. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJIS2004-UTF16-H.bcmap +0 -0
  239. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJIS2004-UTF16-V.bcmap +0 -0
  240. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJIS2004-UTF32-H.bcmap +0 -0
  241. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJIS2004-UTF32-V.bcmap +0 -0
  242. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJIS2004-UTF8-H.bcmap +0 -0
  243. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJIS2004-UTF8-V.bcmap +0 -0
  244. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJISPro-UCS2-HW-V.bcmap +0 -0
  245. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJISPro-UCS2-V.bcmap +0 -0
  246. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJISPro-UTF8-V.bcmap +0 -0
  247. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJISX0213-UTF32-H.bcmap +0 -0
  248. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJISX0213-UTF32-V.bcmap +0 -0
  249. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJISX02132004-UTF32-H.bcmap +0 -0
  250. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniJISX02132004-UTF32-V.bcmap +0 -0
  251. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniKS-UCS2-H.bcmap +0 -0
  252. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniKS-UCS2-V.bcmap +0 -0
  253. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniKS-UTF16-H.bcmap +0 -0
  254. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniKS-UTF16-V.bcmap +0 -0
  255. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniKS-UTF32-H.bcmap +0 -0
  256. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniKS-UTF32-V.bcmap +0 -0
  257. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniKS-UTF8-H.bcmap +0 -0
  258. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/UniKS-UTF8-V.bcmap +0 -0
  259. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/V.bcmap +0 -0
  260. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/cmaps/WP-Symbol.bcmap +0 -0
  261. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/compressed.tracemonkey-pldi-09.pdf +0 -0
  262. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/debugger.css +0 -0
  263. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/debugger.js +0 -0
  264. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/altText_add.svg +0 -0
  265. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/altText_done.svg +0 -0
  266. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/annotation-check.svg +0 -0
  267. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/annotation-comment.svg +0 -0
  268. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/annotation-help.svg +0 -0
  269. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/annotation-insert.svg +0 -0
  270. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/annotation-key.svg +0 -0
  271. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/annotation-newparagraph.svg +0 -0
  272. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/annotation-noicon.svg +0 -0
  273. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/annotation-note.svg +0 -0
  274. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/annotation-paperclip.svg +0 -0
  275. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/annotation-paragraph.svg +0 -0
  276. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/annotation-pushpin.svg +0 -0
  277. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/cursor-editorFreeText.svg +0 -0
  278. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/cursor-editorInk.svg +0 -0
  279. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/findbarButton-next.svg +0 -0
  280. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/findbarButton-previous.svg +0 -0
  281. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/gv-toolbarButton-download.svg +0 -0
  282. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/gv-toolbarButton-openinapp.svg +0 -0
  283. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/loading-dark.svg +0 -0
  284. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/loading-icon.gif +0 -0
  285. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/loading.svg +0 -0
  286. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/secondaryToolbarButton-documentProperties.svg +0 -0
  287. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/secondaryToolbarButton-firstPage.svg +0 -0
  288. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/secondaryToolbarButton-handTool.svg +0 -0
  289. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/secondaryToolbarButton-lastPage.svg +0 -0
  290. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/secondaryToolbarButton-rotateCcw.svg +0 -0
  291. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/secondaryToolbarButton-rotateCw.svg +0 -0
  292. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/secondaryToolbarButton-scrollHorizontal.svg +0 -0
  293. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/secondaryToolbarButton-scrollPage.svg +0 -0
  294. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/secondaryToolbarButton-scrollVertical.svg +0 -0
  295. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/secondaryToolbarButton-scrollWrapped.svg +0 -0
  296. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/secondaryToolbarButton-selectTool.svg +0 -0
  297. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/secondaryToolbarButton-spreadEven.svg +0 -0
  298. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/secondaryToolbarButton-spreadNone.svg +0 -0
  299. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/secondaryToolbarButton-spreadOdd.svg +0 -0
  300. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-bookmark.svg +0 -0
  301. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-currentOutlineItem.svg +0 -0
  302. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-download.svg +0 -0
  303. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-editorFreeText.svg +0 -0
  304. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-editorInk.svg +0 -0
  305. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-editorStamp.svg +0 -0
  306. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-menuArrow.svg +0 -0
  307. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-openFile.svg +0 -0
  308. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-pageDown.svg +0 -0
  309. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-pageUp.svg +0 -0
  310. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-presentationMode.svg +0 -0
  311. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-print.svg +0 -0
  312. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-search.svg +0 -0
  313. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-secondaryToolbarToggle.svg +0 -0
  314. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-sidebarToggle.svg +0 -0
  315. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-viewAttachments.svg +0 -0
  316. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-viewLayers.svg +0 -0
  317. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-viewOutline.svg +0 -0
  318. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-viewThumbnail.svg +0 -0
  319. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-zoomIn.svg +0 -0
  320. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/toolbarButton-zoomOut.svg +0 -0
  321. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/treeitem-collapsed.svg +0 -0
  322. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/images/treeitem-expanded.svg +0 -0
  323. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ach/viewer.properties +0 -0
  324. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/af/viewer.properties +0 -0
  325. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/an/viewer.properties +0 -0
  326. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ar/viewer.properties +0 -0
  327. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ast/viewer.properties +0 -0
  328. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/az/viewer.properties +0 -0
  329. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/be/viewer.properties +0 -0
  330. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/bg/viewer.properties +0 -0
  331. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/bn/viewer.properties +0 -0
  332. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/bo/viewer.properties +0 -0
  333. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/br/viewer.properties +0 -0
  334. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/brx/viewer.properties +0 -0
  335. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/bs/viewer.properties +0 -0
  336. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ca/viewer.properties +0 -0
  337. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/cak/viewer.properties +0 -0
  338. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ckb/viewer.properties +0 -0
  339. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/cs/viewer.properties +0 -0
  340. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/cy/viewer.properties +0 -0
  341. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/da/viewer.properties +0 -0
  342. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/de/viewer.properties +0 -0
  343. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/dsb/viewer.properties +0 -0
  344. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/el/viewer.properties +0 -0
  345. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/en-CA/viewer.properties +0 -0
  346. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/en-GB/viewer.properties +0 -0
  347. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/en-US/viewer.properties +0 -0
  348. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/eo/viewer.properties +0 -0
  349. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/es-AR/viewer.properties +0 -0
  350. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/es-CL/viewer.properties +0 -0
  351. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/es-ES/viewer.properties +0 -0
  352. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/es-MX/viewer.properties +0 -0
  353. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/et/viewer.properties +0 -0
  354. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/eu/viewer.properties +0 -0
  355. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/fa/viewer.properties +0 -0
  356. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ff/viewer.properties +0 -0
  357. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/fi/viewer.properties +0 -0
  358. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/fr/viewer.properties +0 -0
  359. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/fur/viewer.properties +0 -0
  360. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/fy-NL/viewer.properties +0 -0
  361. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ga-IE/viewer.properties +0 -0
  362. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/gd/viewer.properties +0 -0
  363. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/gl/viewer.properties +0 -0
  364. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/gn/viewer.properties +0 -0
  365. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/gu-IN/viewer.properties +0 -0
  366. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/he/viewer.properties +0 -0
  367. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/hi-IN/viewer.properties +0 -0
  368. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/hr/viewer.properties +0 -0
  369. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/hsb/viewer.properties +0 -0
  370. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/hu/viewer.properties +0 -0
  371. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/hy-AM/viewer.properties +0 -0
  372. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/hye/viewer.properties +0 -0
  373. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ia/viewer.properties +0 -0
  374. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/id/viewer.properties +0 -0
  375. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/is/viewer.properties +0 -0
  376. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/it/viewer.properties +0 -0
  377. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ja/viewer.properties +0 -0
  378. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ka/viewer.properties +0 -0
  379. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/kab/viewer.properties +0 -0
  380. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/kk/viewer.properties +0 -0
  381. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/km/viewer.properties +0 -0
  382. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/kn/viewer.properties +0 -0
  383. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ko/viewer.properties +0 -0
  384. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/lij/viewer.properties +0 -0
  385. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/lo/viewer.properties +0 -0
  386. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/locale.properties +0 -0
  387. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/lt/viewer.properties +0 -0
  388. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ltg/viewer.properties +0 -0
  389. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/lv/viewer.properties +0 -0
  390. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/meh/viewer.properties +0 -0
  391. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/mk/viewer.properties +0 -0
  392. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/mr/viewer.properties +0 -0
  393. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ms/viewer.properties +0 -0
  394. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/my/viewer.properties +0 -0
  395. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/nb-NO/viewer.properties +0 -0
  396. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ne-NP/viewer.properties +0 -0
  397. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/nl/viewer.properties +0 -0
  398. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/nn-NO/viewer.properties +0 -0
  399. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/oc/viewer.properties +0 -0
  400. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/pa-IN/viewer.properties +0 -0
  401. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/pl/viewer.properties +0 -0
  402. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/pt-BR/viewer.properties +0 -0
  403. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/pt-PT/viewer.properties +0 -0
  404. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/rm/viewer.properties +0 -0
  405. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ro/viewer.properties +0 -0
  406. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ru/viewer.properties +0 -0
  407. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/sat/viewer.properties +0 -0
  408. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/sc/viewer.properties +0 -0
  409. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/scn/viewer.properties +0 -0
  410. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/sco/viewer.properties +0 -0
  411. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/si/viewer.properties +0 -0
  412. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/sk/viewer.properties +0 -0
  413. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/skr/viewer.properties +0 -0
  414. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/sl/viewer.properties +0 -0
  415. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/son/viewer.properties +0 -0
  416. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/sq/viewer.properties +0 -0
  417. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/sr/viewer.properties +0 -0
  418. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/sv-SE/viewer.properties +0 -0
  419. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/szl/viewer.properties +0 -0
  420. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ta/viewer.properties +0 -0
  421. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/te/viewer.properties +0 -0
  422. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/tg/viewer.properties +0 -0
  423. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/th/viewer.properties +0 -0
  424. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/tl/viewer.properties +0 -0
  425. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/tr/viewer.properties +0 -0
  426. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/trs/viewer.properties +0 -0
  427. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/uk/viewer.properties +0 -0
  428. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/ur/viewer.properties +0 -0
  429. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/uz/viewer.properties +0 -0
  430. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/vi/viewer.properties +0 -0
  431. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/wo/viewer.properties +0 -0
  432. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/xh/viewer.properties +0 -0
  433. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/zh-CN/viewer.properties +0 -0
  434. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/locale/zh-TW/viewer.properties +0 -0
  435. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/FoxitDingbats.pfb +0 -0
  436. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/FoxitFixed.pfb +0 -0
  437. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/FoxitFixedBold.pfb +0 -0
  438. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/FoxitFixedBoldItalic.pfb +0 -0
  439. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/FoxitFixedItalic.pfb +0 -0
  440. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/FoxitSerif.pfb +0 -0
  441. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/FoxitSerifBold.pfb +0 -0
  442. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/FoxitSerifBoldItalic.pfb +0 -0
  443. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/FoxitSerifItalic.pfb +0 -0
  444. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/FoxitSymbol.pfb +0 -0
  445. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/LICENSE_FOXIT +0 -0
  446. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/LICENSE_LIBERATION +0 -0
  447. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/LiberationSans-Bold.ttf +0 -0
  448. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/LiberationSans-BoldItalic.ttf +0 -0
  449. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/LiberationSans-Italic.ttf +0 -0
  450. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/standard_fonts/LiberationSans-Regular.ttf +0 -0
  451. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/viewer.css +0 -0
  452. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/viewer.html +0 -0
  453. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/viewer.js +0 -0
  454. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/pdfjs/web/viewer.js.map +0 -0
  455. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/paper/web/query.py +0 -0
  456. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/recognize/__init__.py +0 -0
  457. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow/recognize/markdown.py +0 -0
  458. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow.egg-info/dependency_links.txt +0 -0
  459. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow.egg-info/entry_points.txt +0 -0
  460. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/python/deepresearch_flow.egg-info/top_level.txt +0 -0
  461. {deepresearch_flow-0.2.1 → deepresearch_flow-0.4.0}/setup.cfg +0 -0
@@ -5,3 +5,5 @@ recursive-include python/deepresearch_flow/paper/templates *.j2
5
5
  recursive-include python/deepresearch_flow/paper/prompt_templates *.j2
6
6
  recursive-include python/deepresearch_flow/paper/examples *.toml
7
7
  recursive-include python/deepresearch_flow/paper/web/pdfjs *
8
+ recursive-include python/deepresearch_flow/paper/web/templates *
9
+ recursive-include python/deepresearch_flow/paper/web/static *
@@ -0,0 +1,327 @@
1
+ Metadata-Version: 2.4
2
+ Name: deepresearch-flow
3
+ Version: 0.4.0
4
+ Summary: Workflow tools for paper extraction, review, and research automation.
5
+ Author-email: DengQi <dengqi935@gmail.com>
6
+ License: MIT License
7
+
8
+ Copyright (c) 2025 DengQi
9
+
10
+ Permission is hereby granted, free of charge, to any person obtaining a copy
11
+ of this software and associated documentation files (the "Software"), to deal
12
+ in the Software without restriction, including without limitation the rights
13
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14
+ copies of the Software, and to permit persons to whom the Software is
15
+ furnished to do so, subject to the following conditions:
16
+
17
+ The above copyright notice and this permission notice shall be included in all
18
+ copies or substantial portions of the Software.
19
+
20
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
26
+ SOFTWARE.
27
+
28
+ Project-URL: Homepage, https://github.com/nerdneilsfield/ai-deepresearch-flow
29
+ Project-URL: Repository, https://github.com/nerdneilsfield/ai-deepresearch-flow
30
+ Project-URL: Issues, https://github.com/nerdneilsfield/ai-deepresearch-flow/issues
31
+ Keywords: research,papers,pdf,ocr,llm,workflow
32
+ Classifier: Development Status :: 3 - Alpha
33
+ Classifier: Intended Audience :: Science/Research
34
+ Classifier: License :: OSI Approved :: MIT License
35
+ Classifier: Programming Language :: Python :: 3
36
+ Classifier: Programming Language :: Python :: 3 :: Only
37
+ Classifier: Topic :: Scientific/Engineering :: Information Analysis
38
+ Requires-Python: >=3.12
39
+ Description-Content-Type: text/markdown
40
+ License-File: LICENSE
41
+ Requires-Dist: anthropic>=0.28.0
42
+ Requires-Dist: click>=8.1.7
43
+ Requires-Dist: coloredlogs>=15.0.1
44
+ Requires-Dist: dashscope>=1.20.0
45
+ Requires-Dist: google-auth>=2.0.0
46
+ Requires-Dist: google-genai>=0.5.0
47
+ Requires-Dist: httpx>=0.27.0
48
+ Requires-Dist: jinja2>=3.1.3
49
+ Requires-Dist: json-repair>=0.31.0
50
+ Requires-Dist: jsonschema>=4.21.1
51
+ Requires-Dist: markdown-it-py>=3.0.0
52
+ Requires-Dist: mdit-py-plugins>=0.4.0
53
+ Requires-Dist: pypdf>=3.0.0
54
+ Requires-Dist: pybtex>=0.24.0
55
+ Requires-Dist: rich>=13.7.1
56
+ Requires-Dist: rumdl>=0.0.214
57
+ Requires-Dist: starlette>=0.37.2
58
+ Requires-Dist: tqdm>=4.66.4
59
+ Requires-Dist: uvicorn>=0.27.1
60
+ Dynamic: license-file
61
+
62
+ <p align="center">
63
+ <img src=".github/assets/logo.png" width="140" alt="ai-deepresearch-flow logo" />
64
+ </p>
65
+
66
+ <h3 align="center">ai-deepresearch-flow</h3>
67
+
68
+ <p align="center">
69
+ <em>From documents to deep research insight — automatically.</em>
70
+ </p>
71
+
72
+ <p align="center">
73
+ <a href="README.md">English</a> | <a href="README_ZH.md">中文</a>
74
+ </p>
75
+
76
+ <p align="center">
77
+ <a href="https://github.com/nerdneilsfield/ai-deepresearch-flow/actions">
78
+ <img src="https://img.shields.io/github/actions/workflow/status/nerdneilsfield/ai-deepresearch-flow/push-to-pypi.yml?style=flat-square" />
79
+ </a>
80
+ <a href="https://pypi.org/project/deepresearch-flow/">
81
+ <img src="https://img.shields.io/pypi/v/deepresearch-flow?style=flat-square" />
82
+ </a>
83
+ <a href="https://pypi.org/project/deepresearch-flow/">
84
+ <img src="https://img.shields.io/pypi/pyversions/deepresearch-flow?style=flat-square" />
85
+ </a>
86
+ <a href="https://hub.docker.com/r/nerdneils/deepresearch-flow">
87
+ <img src="https://img.shields.io/docker/v/nerdneils/deepresearch-flow?style=flat-square" />
88
+ </a>
89
+ <a href="https://ghcr.io/nerdneilsfield/deepresearch-flow">
90
+ <img src="https://img.shields.io/badge/ghcr.io-nerdneilsfield%2Fdeepresearch-flow-0f172a?style=flat-square" />
91
+ </a>
92
+ <a href="https://github.com/nerdneilsfield/ai-deepresearch-flow/blob/main/LICENSE">
93
+ <img src="https://img.shields.io/github/license/nerdneilsfield/ai-deepresearch-flow?style=flat-square" />
94
+ </a>
95
+ <a href="https://github.com/nerdneilsfield/ai-deepresearch-flow/stargazers">
96
+ <img src="https://img.shields.io/github/stars/nerdneilsfield/ai-deepresearch-flow?style=flat-square" />
97
+ </a>
98
+ <a href="https://pypi.org/project/deepresearch-flow">
99
+ <img alt="PyPI - Version" src="https://img.shields.io/pypi/v/deepresearch-flow">
100
+ </a>
101
+ <a href="https://github.com/nerdneilsfield/ai-deepresearch-flow/issues">
102
+ <img src="https://img.shields.io/github/issues/nerdneilsfield/ai-deepresearch-flow?style=flat-square" />
103
+ </a>
104
+ </p>
105
+
106
+ ---
107
+
108
+ ## The Core Pain Points
109
+
110
+ - **OCR Chaos**: Raw markdown from OCR tools is often broken -- tables drift, formulas break, and references are non-clickable.
111
+ - **Translation Nightmares**: Translating technical papers often destroys code blocks, LaTeX formulas, and table structures.
112
+ - **Information Overload**: Extracting structured insights (authors, venues, summaries) from hundreds of PDFs manually is impossible.
113
+ - **Context Switching**: Managing PDFs, summaries, and translations in different windows kills focus.
114
+
115
+ ## The Solution
116
+
117
+ DeepResearch Flow provides a unified pipeline to **Repair**, **Translate**, **Extract**, and **Serve** your research library.
118
+
119
+ ## Key Features
120
+
121
+ - **Smart Extraction**: Turn unstructured Markdown into schema-enforced JSON (summaries, metadata, Q&A) using LLMs (OpenAI, Claude, Gemini, etc.).
122
+ - **Precision Translation**: Translate OCR Markdown to Chinese/Japanese (`.zh.md`, `.ja.md`) while **freezing** formulas, code, tables, and references. No more broken layout.
123
+ - **Local Knowledge DB**: A high-performance local Web UI to browse papers with **Split View** (Source vs. Translated vs. Summary), full-text search, and multi-dimensional filtering.
124
+ - **Coverage Compare**: Compare JSON/PDF/Markdown/Translated datasets to find missing artifacts and export CSV reports.
125
+ - **OCR Post-Processing**: Automatically fix broken references (`[1]` -> `[^1]`), merge split paragraphs, and standardize layouts.
126
+
127
+ ---
128
+
129
+ ## Quick Start
130
+
131
+ ### 1) Installation
132
+
133
+ ```bash
134
+ # Recommended: using uv for speed
135
+ uv pip install deepresearch-flow
136
+
137
+ # Or standard pip
138
+ pip install deepresearch-flow
139
+ ```
140
+
141
+ ### 2) Configuration
142
+
143
+ Set up your LLM providers. We support OpenAI, Claude, Gemini, Ollama, and more.
144
+
145
+ ```bash
146
+ cp config.example.toml config.toml
147
+ # Edit config.toml to add your API keys (e.g., env:OPENAI_API_KEY)
148
+ ```
149
+
150
+ ### 3) The "Zero to Hero" Workflow
151
+
152
+ #### Step 1: Extract Insights
153
+
154
+ Scan a folder of markdown files and extract structured summaries.
155
+
156
+ ```bash
157
+ uv run deepresearch-flow paper extract \
158
+ --input ./docs \
159
+ --model openai/gpt-4o-mini \
160
+ --prompt-template deep_read
161
+ ```
162
+
163
+ #### Step 2: Translate Safely
164
+
165
+ Translate papers to Chinese, protecting LaTeX and tables.
166
+
167
+ ```bash
168
+ uv run deepresearch-flow translator translate \
169
+ --input ./docs \
170
+ --target-lang zh \
171
+ --model openai/gpt-4o-mini \
172
+ --fix-level moderate
173
+ ```
174
+
175
+ #### Step 3: Serve Your Database
176
+
177
+ Launch a local UI to read and manage your papers.
178
+
179
+ ```bash
180
+ uv run deepresearch-flow paper db serve \
181
+ --input paper_infos.json \
182
+ --md-root ./docs \
183
+ --md-translated-root ./docs \
184
+ --host 127.0.0.1
185
+ ```
186
+
187
+ ---
188
+
189
+ ## Comprehensive Guide
190
+
191
+ <details>
192
+ <summary><strong>1. Translator: OCR-Safe Translation</strong></summary>
193
+
194
+ The translator module is built for scientific documents. It uses a node-based architecture to ensure stability.
195
+
196
+ - Structure Protection: automatically detects and "freezes" code blocks, LaTeX (`$$...$$`), HTML tables, and images before sending text to the LLM.
197
+ - OCR Repair: use `--fix-level` to merge broken paragraphs and convert text references (`[1]`) to clickable Markdown footnotes (`[^1]`).
198
+ - Context-Aware: supports retries for failed chunks and falls back gracefully.
199
+
200
+ ```bash
201
+ # Translate with structure protection and OCR repairs
202
+ uv run deepresearch-flow translator translate \
203
+ --input ./paper.md \
204
+ --target-lang ja \
205
+ --fix-level aggressive \
206
+ --model claude/claude-3-5-sonnet-20240620
207
+ ```
208
+
209
+ </details>
210
+
211
+ <details>
212
+ <summary><strong>2. Paper Extract: Structured Knowledge</strong></summary>
213
+
214
+ Turn loose markdown files into a queryable database.
215
+
216
+ - Templates: built-in prompts like `simple`, `eight_questions`, and `deep_read` guide the LLM to extract specific insights.
217
+ - Async and throttled: precise control over concurrency (`--max-concurrency`) and rate limits (`--sleep-every`).
218
+ - Incremental: skips already processed files; resumes from where you left off.
219
+
220
+ ```bash
221
+ uv run deepresearch-flow paper extract \
222
+ --input ./library \
223
+ --output paper_data.json \
224
+ --template-dir ./my-custom-prompts \
225
+ --max-concurrency 10
226
+ ```
227
+
228
+ </details>
229
+
230
+ <details>
231
+ <summary><strong>3. Database and UI: Your Personal ArXiv</strong></summary>
232
+
233
+ The db serve command creates a local research station.
234
+
235
+ - Split View: read the original PDF/Markdown on the left and the Summary/Translation on the right.
236
+ - Full Text Search: search by title, author, year, or content tags (`tag:fpga year:2023..2024`).
237
+ - Stats: visualize publication trends and keyword frequencies.
238
+ - PDF Viewer: built-in PDF.js viewer prevents cross-origin issues with local files.
239
+
240
+ ```bash
241
+ uv run deepresearch-flow paper db serve \
242
+ --input paper_infos.json \
243
+ --pdf-root ./pdfs \
244
+ --cache-dir .cache/db
245
+ ```
246
+
247
+ </details>
248
+
249
+ <details>
250
+ <summary><strong>4. Paper DB Compare: Coverage Audit</strong></summary>
251
+
252
+ Compare two datasets (A/B) to find missing PDFs, markdowns, translations, or JSON items, with match metadata.
253
+
254
+ ```bash
255
+ uv run deepresearch-flow paper db compare \
256
+ --input-a ./a.json \
257
+ --md-root-b ./md_root \
258
+ --output-csv ./compare.csv
259
+
260
+ # Compare translated markdowns by language
261
+ uv run deepresearch-flow paper db compare \
262
+ --md-translated-root-a ./translated_a \
263
+ --md-translated-root-b ./translated_b \
264
+ --lang zh
265
+ ```
266
+
267
+ </details>
268
+
269
+ <details>
270
+ <summary><strong>5. Recognize: OCR Post-Processing</strong></summary>
271
+
272
+ Tools to clean up raw outputs from OCR engines like MinerU.
273
+
274
+ - Embed Images: convert local image links to Base64 for a portable single-file Markdown.
275
+ - Unpack Images: extract Base64 images back to files.
276
+ - Organize: flatten nested OCR output directories.
277
+ - Fix: apply OCR fixes and rumdl formatting during organize, or as a standalone step.
278
+
279
+ ```bash
280
+ uv run deepresearch-flow recognize md embed --input ./raw_ocr --output ./clean_md
281
+ ```
282
+
283
+ ```bash
284
+ # Organize MinerU output and apply OCR fixes
285
+ uv run deepresearch-flow recognize organize \
286
+ --input ./mineru_outputs \
287
+ --output-simple ./ocr_md \
288
+ --fix
289
+
290
+ # Fix and format existing markdown outputs
291
+ uv run deepresearch-flow recognize fix \
292
+ --input ./ocr_md \
293
+ --output ./ocr_md_fixed
294
+
295
+ # Fix in place
296
+ uv run deepresearch-flow recognize fix \
297
+ --input ./ocr_md \
298
+ --in-place
299
+ ```
300
+
301
+ </details>
302
+
303
+ ---
304
+
305
+ ## Docker Support
306
+
307
+ Don't want to manage Python environments?
308
+
309
+ ```bash
310
+ docker run --rm -v $(pwd):/app -it ghcr.io/nerdneilsfield/deepresearch-flow --help
311
+ ```
312
+
313
+ ## Configuration
314
+
315
+ The config.toml is your control center. It supports:
316
+
317
+ - Multiple Providers: mix and match OpenAI, DeepSeek (DashScope), Gemini, Claude, and Ollama.
318
+ - Model Routing: explicit routing to specific models (`--model provider/model_name`).
319
+ - Environment Variables: keep secrets safe using `env:VAR_NAME` syntax.
320
+
321
+ See `config.example.toml` for a full reference.
322
+
323
+ ---
324
+
325
+ <p align="center">
326
+ Built with love for the Open Science community.
327
+ </p>
@@ -0,0 +1,266 @@
1
+ <p align="center">
2
+ <img src=".github/assets/logo.png" width="140" alt="ai-deepresearch-flow logo" />
3
+ </p>
4
+
5
+ <h3 align="center">ai-deepresearch-flow</h3>
6
+
7
+ <p align="center">
8
+ <em>From documents to deep research insight — automatically.</em>
9
+ </p>
10
+
11
+ <p align="center">
12
+ <a href="README.md">English</a> | <a href="README_ZH.md">中文</a>
13
+ </p>
14
+
15
+ <p align="center">
16
+ <a href="https://github.com/nerdneilsfield/ai-deepresearch-flow/actions">
17
+ <img src="https://img.shields.io/github/actions/workflow/status/nerdneilsfield/ai-deepresearch-flow/push-to-pypi.yml?style=flat-square" />
18
+ </a>
19
+ <a href="https://pypi.org/project/deepresearch-flow/">
20
+ <img src="https://img.shields.io/pypi/v/deepresearch-flow?style=flat-square" />
21
+ </a>
22
+ <a href="https://pypi.org/project/deepresearch-flow/">
23
+ <img src="https://img.shields.io/pypi/pyversions/deepresearch-flow?style=flat-square" />
24
+ </a>
25
+ <a href="https://hub.docker.com/r/nerdneils/deepresearch-flow">
26
+ <img src="https://img.shields.io/docker/v/nerdneils/deepresearch-flow?style=flat-square" />
27
+ </a>
28
+ <a href="https://ghcr.io/nerdneilsfield/deepresearch-flow">
29
+ <img src="https://img.shields.io/badge/ghcr.io-nerdneilsfield%2Fdeepresearch-flow-0f172a?style=flat-square" />
30
+ </a>
31
+ <a href="https://github.com/nerdneilsfield/ai-deepresearch-flow/blob/main/LICENSE">
32
+ <img src="https://img.shields.io/github/license/nerdneilsfield/ai-deepresearch-flow?style=flat-square" />
33
+ </a>
34
+ <a href="https://github.com/nerdneilsfield/ai-deepresearch-flow/stargazers">
35
+ <img src="https://img.shields.io/github/stars/nerdneilsfield/ai-deepresearch-flow?style=flat-square" />
36
+ </a>
37
+ <a href="https://pypi.org/project/deepresearch-flow">
38
+ <img alt="PyPI - Version" src="https://img.shields.io/pypi/v/deepresearch-flow">
39
+ </a>
40
+ <a href="https://github.com/nerdneilsfield/ai-deepresearch-flow/issues">
41
+ <img src="https://img.shields.io/github/issues/nerdneilsfield/ai-deepresearch-flow?style=flat-square" />
42
+ </a>
43
+ </p>
44
+
45
+ ---
46
+
47
+ ## The Core Pain Points
48
+
49
+ - **OCR Chaos**: Raw markdown from OCR tools is often broken -- tables drift, formulas break, and references are non-clickable.
50
+ - **Translation Nightmares**: Translating technical papers often destroys code blocks, LaTeX formulas, and table structures.
51
+ - **Information Overload**: Extracting structured insights (authors, venues, summaries) from hundreds of PDFs manually is impossible.
52
+ - **Context Switching**: Managing PDFs, summaries, and translations in different windows kills focus.
53
+
54
+ ## The Solution
55
+
56
+ DeepResearch Flow provides a unified pipeline to **Repair**, **Translate**, **Extract**, and **Serve** your research library.
57
+
58
+ ## Key Features
59
+
60
+ - **Smart Extraction**: Turn unstructured Markdown into schema-enforced JSON (summaries, metadata, Q&A) using LLMs (OpenAI, Claude, Gemini, etc.).
61
+ - **Precision Translation**: Translate OCR Markdown to Chinese/Japanese (`.zh.md`, `.ja.md`) while **freezing** formulas, code, tables, and references. No more broken layout.
62
+ - **Local Knowledge DB**: A high-performance local Web UI to browse papers with **Split View** (Source vs. Translated vs. Summary), full-text search, and multi-dimensional filtering.
63
+ - **Coverage Compare**: Compare JSON/PDF/Markdown/Translated datasets to find missing artifacts and export CSV reports.
64
+ - **OCR Post-Processing**: Automatically fix broken references (`[1]` -> `[^1]`), merge split paragraphs, and standardize layouts.
65
+
66
+ ---
67
+
68
+ ## Quick Start
69
+
70
+ ### 1) Installation
71
+
72
+ ```bash
73
+ # Recommended: using uv for speed
74
+ uv pip install deepresearch-flow
75
+
76
+ # Or standard pip
77
+ pip install deepresearch-flow
78
+ ```
79
+
80
+ ### 2) Configuration
81
+
82
+ Set up your LLM providers. We support OpenAI, Claude, Gemini, Ollama, and more.
83
+
84
+ ```bash
85
+ cp config.example.toml config.toml
86
+ # Edit config.toml to add your API keys (e.g., env:OPENAI_API_KEY)
87
+ ```
88
+
89
+ ### 3) The "Zero to Hero" Workflow
90
+
91
+ #### Step 1: Extract Insights
92
+
93
+ Scan a folder of markdown files and extract structured summaries.
94
+
95
+ ```bash
96
+ uv run deepresearch-flow paper extract \
97
+ --input ./docs \
98
+ --model openai/gpt-4o-mini \
99
+ --prompt-template deep_read
100
+ ```
101
+
102
+ #### Step 2: Translate Safely
103
+
104
+ Translate papers to Chinese, protecting LaTeX and tables.
105
+
106
+ ```bash
107
+ uv run deepresearch-flow translator translate \
108
+ --input ./docs \
109
+ --target-lang zh \
110
+ --model openai/gpt-4o-mini \
111
+ --fix-level moderate
112
+ ```
113
+
114
+ #### Step 3: Serve Your Database
115
+
116
+ Launch a local UI to read and manage your papers.
117
+
118
+ ```bash
119
+ uv run deepresearch-flow paper db serve \
120
+ --input paper_infos.json \
121
+ --md-root ./docs \
122
+ --md-translated-root ./docs \
123
+ --host 127.0.0.1
124
+ ```
125
+
126
+ ---
127
+
128
+ ## Comprehensive Guide
129
+
130
+ <details>
131
+ <summary><strong>1. Translator: OCR-Safe Translation</strong></summary>
132
+
133
+ The translator module is built for scientific documents. It uses a node-based architecture to ensure stability.
134
+
135
+ - Structure Protection: automatically detects and "freezes" code blocks, LaTeX (`$$...$$`), HTML tables, and images before sending text to the LLM.
136
+ - OCR Repair: use `--fix-level` to merge broken paragraphs and convert text references (`[1]`) to clickable Markdown footnotes (`[^1]`).
137
+ - Context-Aware: supports retries for failed chunks and falls back gracefully.
138
+
139
+ ```bash
140
+ # Translate with structure protection and OCR repairs
141
+ uv run deepresearch-flow translator translate \
142
+ --input ./paper.md \
143
+ --target-lang ja \
144
+ --fix-level aggressive \
145
+ --model claude/claude-3-5-sonnet-20240620
146
+ ```
147
+
148
+ </details>
149
+
150
+ <details>
151
+ <summary><strong>2. Paper Extract: Structured Knowledge</strong></summary>
152
+
153
+ Turn loose markdown files into a queryable database.
154
+
155
+ - Templates: built-in prompts like `simple`, `eight_questions`, and `deep_read` guide the LLM to extract specific insights.
156
+ - Async and throttled: precise control over concurrency (`--max-concurrency`) and rate limits (`--sleep-every`).
157
+ - Incremental: skips already processed files; resumes from where you left off.
158
+
159
+ ```bash
160
+ uv run deepresearch-flow paper extract \
161
+ --input ./library \
162
+ --output paper_data.json \
163
+ --template-dir ./my-custom-prompts \
164
+ --max-concurrency 10
165
+ ```
166
+
167
+ </details>
168
+
169
+ <details>
170
+ <summary><strong>3. Database and UI: Your Personal ArXiv</strong></summary>
171
+
172
+ The db serve command creates a local research station.
173
+
174
+ - Split View: read the original PDF/Markdown on the left and the Summary/Translation on the right.
175
+ - Full Text Search: search by title, author, year, or content tags (`tag:fpga year:2023..2024`).
176
+ - Stats: visualize publication trends and keyword frequencies.
177
+ - PDF Viewer: built-in PDF.js viewer prevents cross-origin issues with local files.
178
+
179
+ ```bash
180
+ uv run deepresearch-flow paper db serve \
181
+ --input paper_infos.json \
182
+ --pdf-root ./pdfs \
183
+ --cache-dir .cache/db
184
+ ```
185
+
186
+ </details>
187
+
188
+ <details>
189
+ <summary><strong>4. Paper DB Compare: Coverage Audit</strong></summary>
190
+
191
+ Compare two datasets (A/B) to find missing PDFs, markdowns, translations, or JSON items, with match metadata.
192
+
193
+ ```bash
194
+ uv run deepresearch-flow paper db compare \
195
+ --input-a ./a.json \
196
+ --md-root-b ./md_root \
197
+ --output-csv ./compare.csv
198
+
199
+ # Compare translated markdowns by language
200
+ uv run deepresearch-flow paper db compare \
201
+ --md-translated-root-a ./translated_a \
202
+ --md-translated-root-b ./translated_b \
203
+ --lang zh
204
+ ```
205
+
206
+ </details>
207
+
208
+ <details>
209
+ <summary><strong>5. Recognize: OCR Post-Processing</strong></summary>
210
+
211
+ Tools to clean up raw outputs from OCR engines like MinerU.
212
+
213
+ - Embed Images: convert local image links to Base64 for a portable single-file Markdown.
214
+ - Unpack Images: extract Base64 images back to files.
215
+ - Organize: flatten nested OCR output directories.
216
+ - Fix: apply OCR fixes and rumdl formatting during organize, or as a standalone step.
217
+
218
+ ```bash
219
+ uv run deepresearch-flow recognize md embed --input ./raw_ocr --output ./clean_md
220
+ ```
221
+
222
+ ```bash
223
+ # Organize MinerU output and apply OCR fixes
224
+ uv run deepresearch-flow recognize organize \
225
+ --input ./mineru_outputs \
226
+ --output-simple ./ocr_md \
227
+ --fix
228
+
229
+ # Fix and format existing markdown outputs
230
+ uv run deepresearch-flow recognize fix \
231
+ --input ./ocr_md \
232
+ --output ./ocr_md_fixed
233
+
234
+ # Fix in place
235
+ uv run deepresearch-flow recognize fix \
236
+ --input ./ocr_md \
237
+ --in-place
238
+ ```
239
+
240
+ </details>
241
+
242
+ ---
243
+
244
+ ## Docker Support
245
+
246
+ Don't want to manage Python environments?
247
+
248
+ ```bash
249
+ docker run --rm -v $(pwd):/app -it ghcr.io/nerdneilsfield/deepresearch-flow --help
250
+ ```
251
+
252
+ ## Configuration
253
+
254
+ The config.toml is your control center. It supports:
255
+
256
+ - Multiple Providers: mix and match OpenAI, DeepSeek (DashScope), Gemini, Claude, and Ollama.
257
+ - Model Routing: explicit routing to specific models (`--model provider/model_name`).
258
+ - Environment Variables: keep secrets safe using `env:VAR_NAME` syntax.
259
+
260
+ See `config.example.toml` for a full reference.
261
+
262
+ ---
263
+
264
+ <p align="center">
265
+ Built with love for the Open Science community.
266
+ </p>
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "deepresearch-flow"
3
- version = "0.2.1"
3
+ version = "0.4.0"
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,9 +18,11 @@ dependencies = [
18
18
  "json-repair>=0.31.0",
19
19
  "jsonschema>=4.21.1",
20
20
  "markdown-it-py>=3.0.0",
21
+ "mdit-py-plugins>=0.4.0",
21
22
  "pypdf>=3.0.0",
22
23
  "pybtex>=0.24.0",
23
24
  "rich>=13.7.1",
25
+ "rumdl>=0.0.214",
24
26
  "starlette>=0.37.2",
25
27
  "tqdm>=4.66.4",
26
28
  "uvicorn>=0.27.1",
@@ -57,4 +59,4 @@ include-package-data = true
57
59
  "deepresearch_flow.paper.templates" = ["*.j2"]
58
60
  "deepresearch_flow.paper.prompt_templates" = ["*.j2"]
59
61
  "deepresearch_flow.paper.examples" = ["*.toml"]
60
- "deepresearch_flow.paper.web" = ["pdfjs/**/*"]
62
+ "deepresearch_flow.paper.web" = ["pdfjs/**/*", "templates/**/*", "static/**/*"]
@@ -4,6 +4,7 @@ import click
4
4
 
5
5
  from deepresearch_flow.paper.cli import paper
6
6
  from deepresearch_flow.recognize.cli import recognize
7
+ from deepresearch_flow.translator.cli import translator
7
8
 
8
9
 
9
10
  @click.group()
@@ -13,6 +14,7 @@ def cli() -> None:
13
14
 
14
15
  cli.add_command(paper)
15
16
  cli.add_command(recognize)
17
+ cli.add_command(translator)
16
18
 
17
19
 
18
20
  def main() -> None:
@@ -40,6 +40,7 @@ class ProviderConfig:
40
40
  location: str | None
41
41
  credentials_path: str | None
42
42
  anthropic_version: str | None
43
+ max_tokens: int | None
43
44
  structured_mode: str
44
45
  extra_headers: dict[str, str]
45
46
  system_prompt: str | None
@@ -102,6 +103,15 @@ def _as_str(value: Any, default: str | None = None) -> str | None:
102
103
  return str(value)
103
104
 
104
105
 
106
+ def _ensure_http_scheme(base_url: str, *, default_scheme: str = "http://") -> str:
107
+ normalized = base_url.strip()
108
+ if normalized.startswith(("http://", "https://")):
109
+ scheme, rest = normalized.split("://", 1)
110
+ rest = rest.lstrip("/")
111
+ return f"{scheme}://{rest}" if rest else f"{scheme}://"
112
+ return f"{default_scheme}{normalized.lstrip('/')}"
113
+
114
+
105
115
  def load_config(path: str) -> PaperConfig:
106
116
  config_path = Path(path)
107
117
  if not config_path.exists():
@@ -158,6 +168,8 @@ def load_config(path: str) -> PaperConfig:
158
168
  raise ValueError(f"Provider '{name}' requires base_url")
159
169
  elif provider_type == "azure_openai" and endpoint:
160
170
  base_url = endpoint
171
+ if provider_type == "ollama" and base_url:
172
+ base_url = _ensure_http_scheme(base_url)
161
173
 
162
174
  api_keys = _as_list(provider.get("api_keys"))
163
175
  if not api_keys:
@@ -188,6 +200,8 @@ def load_config(path: str) -> PaperConfig:
188
200
  location = _as_str(provider.get("location"), None)
189
201
  credentials_path = _as_str(provider.get("credentials_path"), None)
190
202
  anthropic_version = _as_str(provider.get("anthropic_version"), None)
203
+ max_tokens = provider.get("max_tokens")
204
+ max_tokens_value = int(max_tokens) if max_tokens is not None else None
191
205
 
192
206
  if provider_type == "azure_openai":
193
207
  if not base_url:
@@ -221,6 +235,7 @@ def load_config(path: str) -> PaperConfig:
221
235
  location=location,
222
236
  credentials_path=credentials_path,
223
237
  anthropic_version=anthropic_version,
238
+ max_tokens=max_tokens_value,
224
239
  structured_mode=structured_mode,
225
240
  extra_headers=extra_headers,
226
241
  system_prompt=_as_str(provider.get("system_prompt"), None),