flowapy 0.3.0__tar.gz → 0.4.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (352) hide show
  1. flowapy-0.4.1/.github/CODEOWNERS +11 -0
  2. {flowapy-0.3.0 → flowapy-0.4.1}/.github/dependabot.yml +27 -17
  3. {flowapy-0.3.0 → flowapy-0.4.1}/.github/workflows/release-chat-service.yaml +27 -1
  4. {flowapy-0.3.0 → flowapy-0.4.1}/.github/workflows/release-flowapy.yaml +4 -0
  5. {flowapy-0.3.0 → flowapy-0.4.1}/.github/workflows/release-react-viewer.yaml +27 -1
  6. {flowapy-0.3.0 → flowapy-0.4.1}/.pre-commit-config.yaml +10 -2
  7. {flowapy-0.3.0 → flowapy-0.4.1}/PKG-INFO +8 -8
  8. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/README.md +11 -9
  9. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/LICENSES.md +9 -2
  10. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/assessments/NM_000152_5-c_1935C_A/aggregation.json +12 -12
  11. flowapy-0.4.1/examples/demo/fixtures/papers/10.1002%2Fhumu.23878/main.md +738 -0
  12. flowapy-0.4.1/examples/demo/fixtures/papers/10.1002%2Fhumu.23878/main.pdf +0 -0
  13. flowapy-0.3.0/examples/demo/fixtures/papers/10.1002%2Fhumu.23878/markdown.md → flowapy-0.4.1/examples/demo/fixtures/papers/10.1002%2Fhumu.23878/merged.md +95 -71
  14. flowapy-0.4.1/examples/demo/fixtures/papers/10.1002%2Fhumu.23878/supplements/000_HUMU-40-2146-s001.pdf +0 -0
  15. flowapy-0.4.1/examples/demo/fixtures/papers/10.1002%2Fhumu.23878/supplements/000_HUMU-40-2146-s001.pdf.md +513 -0
  16. flowapy-0.3.0/examples/demo/fixtures/papers/10.3389%2Ffped.2021.729824/markdown.md → flowapy-0.4.1/examples/demo/fixtures/papers/10.3389%2Ffped.2021.729824/main.md +58 -56
  17. flowapy-0.4.1/examples/demo/fixtures/papers/10.3389%2Ffped.2021.729824/main.pdf +0 -0
  18. flowapy-0.4.1/examples/demo/fixtures/papers/10.3389%2Ffped.2021.729824/merged.md +247 -0
  19. flowapy-0.4.1/examples/demo/fixtures/papers/10.3389%2Ffped.2021.729824/supplements/000_Image_1.PDF +0 -0
  20. flowapy-0.4.1/examples/demo/fixtures/papers/10.3389%2Ffped.2021.729824/supplements/000_Image_1.PDF.md +9 -0
  21. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/package.json +20 -20
  22. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/components/literature/LiteratureView.tsx +23 -13
  23. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/components/literature/PaperStatusGroup.tsx +1 -1
  24. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/lib/aggregate.ts +1 -1
  25. flowapy-0.4.1/examples/demo/src/lib/paperInvalidation.ts +96 -0
  26. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/lib/papers.ts +7 -3
  27. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/pages/api/papers/[doi]/markdown.ts +8 -5
  28. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/pages/api/papers/[doi]/pdf.ts +37 -8
  29. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/pages/api/papers/[doi]/supplements.ts +43 -19
  30. flowapy-0.4.1/examples/demo/test/paper-invalidation.test.ts +139 -0
  31. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/test/papers-pdf-upload.test.ts +92 -1
  32. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/test/papers-route.test.ts +1 -1
  33. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/test/papers-supplements.test.ts +92 -5
  34. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/test/papers.test.ts +12 -1
  35. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo-gateway/pyproject.toml +4 -10
  36. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo-gateway/tests/test_resolve.py +3 -3
  37. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo-gateway/uv.lock +167 -156
  38. {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/package.json +14 -14
  39. {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/src/artifact.ts +6 -4
  40. {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/src/storage-keys.ts +5 -1
  41. {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/src/yaml.ts +1 -1
  42. {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/test/paper-cache.test.ts +15 -5
  43. {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/README.md +17 -7
  44. {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/package.json +10 -10
  45. {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/index.ts +9 -0
  46. {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/markdown-viewer/MarkdownHighlightViewer.tsx +4 -3
  47. {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/markdown-viewer/types.ts +1 -1
  48. flowapy-0.4.1/packages/react-viewer/src/paper-matching/matchFilesToPapers.test.ts +140 -0
  49. flowapy-0.4.1/packages/react-viewer/src/paper-matching/matchFilesToPapers.ts +121 -0
  50. {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/styles.css +1 -1
  51. {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/triage/EvidenceViewerShell.test.tsx +2 -2
  52. {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/triage/EvidenceViewerShell.tsx +1 -1
  53. {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/triage/citation-resolver.ts +3 -3
  54. {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/triage/types.ts +1 -1
  55. {flowapy-0.3.0 → flowapy-0.4.1}/pnpm-lock.yaml +928 -897
  56. {flowapy-0.3.0 → flowapy-0.4.1}/pyproject.toml +20 -23
  57. {flowapy-0.3.0 → flowapy-0.4.1}/src/flowa/aggregate.py +4 -4
  58. flowapy-0.4.1/src/flowa/assemble.py +207 -0
  59. flowapy-0.4.1/src/flowa/convert.py +320 -0
  60. {flowapy-0.3.0 → flowapy-0.4.1}/src/flowa/download.py +38 -104
  61. {flowapy-0.3.0 → flowapy-0.4.1}/src/flowa/extract.py +18 -7
  62. {flowapy-0.3.0 → flowapy-0.4.1}/src/flowa/normalize.py +75 -43
  63. {flowapy-0.3.0 → flowapy-0.4.1}/src/flowa/query.py +16 -17
  64. {flowapy-0.3.0 → flowapy-0.4.1}/src/flowa/resolve.py +17 -16
  65. {flowapy-0.3.0 → flowapy-0.4.1}/src/flowa/schema.py +1 -1
  66. {flowapy-0.3.0 → flowapy-0.4.1}/src/flowa/storage.py +65 -9
  67. {flowapy-0.3.0 → flowapy-0.4.1}/tests/test_assemble.py +58 -17
  68. flowapy-0.4.1/tests/test_convert.py +181 -0
  69. flowapy-0.4.1/tests/test_download.py +92 -0
  70. flowapy-0.4.1/tests/test_normalize.py +105 -0
  71. {flowapy-0.3.0 → flowapy-0.4.1}/tests/test_resolve.py +3 -3
  72. {flowapy-0.3.0 → flowapy-0.4.1}/uv.lock +218 -209
  73. flowapy-0.3.0/examples/demo/src/components/literature/matchFilename.ts +0 -51
  74. flowapy-0.3.0/examples/demo/src/lib/paperInvalidation.ts +0 -52
  75. flowapy-0.3.0/examples/demo/test/matchFilename.test.ts +0 -103
  76. flowapy-0.3.0/examples/demo/test/paper-invalidation.test.ts +0 -90
  77. flowapy-0.3.0/src/flowa/assemble.py +0 -132
  78. flowapy-0.3.0/src/flowa/convert.py +0 -203
  79. flowapy-0.3.0/tests/test_download.py +0 -51
  80. {flowapy-0.3.0 → flowapy-0.4.1}/.github/workflows/dependabot-auto-merge.yml +0 -0
  81. {flowapy-0.3.0 → flowapy-0.4.1}/.github/workflows/lint.yaml +0 -0
  82. {flowapy-0.3.0 → flowapy-0.4.1}/.gitignore +0 -0
  83. {flowapy-0.3.0 → flowapy-0.4.1}/.markdownlint.json +0 -0
  84. {flowapy-0.3.0 → flowapy-0.4.1}/.nvmrc +0 -0
  85. {flowapy-0.3.0 → flowapy-0.4.1}/.prettierignore +0 -0
  86. {flowapy-0.3.0 → flowapy-0.4.1}/Dockerfile +0 -0
  87. {flowapy-0.3.0 → flowapy-0.4.1}/LICENSE +0 -0
  88. {flowapy-0.3.0 → flowapy-0.4.1}/README.md +0 -0
  89. {flowapy-0.3.0 → flowapy-0.4.1}/docs/images/viewer.png +0 -0
  90. {flowapy-0.3.0 → flowapy-0.4.1}/examples/.gitkeep +0 -0
  91. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/.env.example +0 -0
  92. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/.gitignore +0 -0
  93. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/assessments/NM_000152_5-c_1935C_A/extractions/10.1002%2Fhumu.23878.json +0 -0
  94. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/assessments/NM_000152_5-c_1935C_A/extractions/10.1016%2Fj.ymgmr.2024.101163.json +0 -0
  95. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/assessments/NM_000152_5-c_1935C_A/extractions/10.1038%2Fs41598-022-25914-8.json +0 -0
  96. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/assessments/NM_000152_5-c_1935C_A/extractions/10.1186%2Fs12881-019-0878-8.json +0 -0
  97. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/assessments/NM_000152_5-c_1935C_A/extractions/10.1186%2Fs13023-021-01817-1.json +0 -0
  98. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/assessments/NM_000152_5-c_1935C_A/extractions/10.1186%2Fs13023-021-02146-z.json +0 -0
  99. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/assessments/NM_000152_5-c_1935C_A/extractions/10.1186%2Fs13023-023-02848-6.json +0 -0
  100. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/assessments/NM_000152_5-c_1935C_A/extractions/10.1186%2Fs13052-019-0692-0.json +0 -0
  101. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/assessments/NM_000152_5-c_1935C_A/extractions/10.3389%2Ffcvm.2022.1061384.json +0 -0
  102. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/assessments/NM_000152_5-c_1935C_A/extractions/10.3389%2Ffcvm.2023.1261172.json +0 -0
  103. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/assessments/NM_000152_5-c_1935C_A/extractions/10.3389%2Ffimmu.2024.1336599.json +0 -0
  104. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/assessments/NM_000152_5-c_1935C_A/extractions/10.3389%2Ffped.2021.729824.json +0 -0
  105. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/assessments/NM_000152_5-c_1935C_A/extractions/10.3389%2Ffphar.2022.903488.json +0 -0
  106. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/assessments/NM_000152_5-c_1935C_A/extractions/10.3390%2Fijns11010016.json +0 -0
  107. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/assessments/NM_000152_5-c_1935C_A/extractions/10.3390%2Fijns6020031.json +0 -0
  108. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/assessments/NM_000152_5-c_1935C_A/query.json +0 -0
  109. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/assessments/NM_000152_5-c_1935C_A/runs/cfc0186a7b7e46eb802a516b86ec207f/progress.jsonl +0 -0
  110. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/assessments/NM_000152_5-c_1935C_A/variant_details.json +0 -0
  111. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.1002%2Fajmg.a.61481/metadata.json +0 -0
  112. /flowapy-0.3.0/examples/demo/fixtures/papers/10.1002%2Fhumu.23878/source.pdf → /flowapy-0.4.1/examples/demo/fixtures/papers/10.1002%2Fhumu.23878/merged.pdf +0 -0
  113. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.1002%2Fhumu.23878/metadata.json +0 -0
  114. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.1002%2Fhumu.23878/pdf_index.pkl.zst +0 -0
  115. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.1016%2Fj.ejmg.2020.103997/metadata.json +0 -0
  116. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.1016%2Fj.nmd.2022.02.002/metadata.json +0 -0
  117. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.1016%2Fj.tjog.2022.07.008/metadata.json +0 -0
  118. /flowapy-0.3.0/examples/demo/fixtures/papers/10.1016%2Fj.ymgmr.2024.101163/source.md → /flowapy-0.4.1/examples/demo/fixtures/papers/10.1016%2Fj.ymgmr.2024.101163/main.md +0 -0
  119. /flowapy-0.3.0/examples/demo/fixtures/papers/10.1016%2Fj.ymgmr.2024.101163/source.pdf → /flowapy-0.4.1/examples/demo/fixtures/papers/10.1016%2Fj.ymgmr.2024.101163/main.pdf +0 -0
  120. /flowapy-0.3.0/examples/demo/fixtures/papers/10.1016%2Fj.ymgmr.2024.101163/markdown.md → /flowapy-0.4.1/examples/demo/fixtures/papers/10.1016%2Fj.ymgmr.2024.101163/merged.md +0 -0
  121. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.1016%2Fj.ymgmr.2024.101163/metadata.json +0 -0
  122. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.1016%2Fj.ymgmr.2024.101163/pdf_index.pkl.zst +0 -0
  123. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.1016%2Fj.ymgmr.2024.101163/supplements/000_mmc1.docx +0 -0
  124. /flowapy-0.3.0/examples/demo/fixtures/papers/10.1038%2Fs41598-022-25914-8/source.md → /flowapy-0.4.1/examples/demo/fixtures/papers/10.1038%2Fs41598-022-25914-8/main.md +0 -0
  125. /flowapy-0.3.0/examples/demo/fixtures/papers/10.1038%2Fs41598-022-25914-8/source.pdf → /flowapy-0.4.1/examples/demo/fixtures/papers/10.1038%2Fs41598-022-25914-8/main.pdf +0 -0
  126. /flowapy-0.3.0/examples/demo/fixtures/papers/10.1038%2Fs41598-022-25914-8/markdown.md → /flowapy-0.4.1/examples/demo/fixtures/papers/10.1038%2Fs41598-022-25914-8/merged.md +0 -0
  127. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.1038%2Fs41598-022-25914-8/metadata.json +0 -0
  128. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.1038%2Fs41598-022-25914-8/pdf_index.pkl.zst +0 -0
  129. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.1038%2Fs41598-022-25914-8/supplements/000_41598_2022_25914_MOESM1_ESM.docx +0 -0
  130. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.1093%2Fhmg%2Fddz218/metadata.json +0 -0
  131. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.1136%2Fjmg-2022-108675/metadata.json +0 -0
  132. /flowapy-0.3.0/examples/demo/fixtures/papers/10.1186%2Fs12881-019-0878-8/markdown.md → /flowapy-0.4.1/examples/demo/fixtures/papers/10.1186%2Fs12881-019-0878-8/main.md +0 -0
  133. /flowapy-0.3.0/examples/demo/fixtures/papers/10.1186%2Fs12881-019-0878-8/source.pdf → /flowapy-0.4.1/examples/demo/fixtures/papers/10.1186%2Fs12881-019-0878-8/main.pdf +0 -0
  134. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.1186%2Fs12881-019-0878-8/metadata.json +0 -0
  135. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.1186%2Fs12881-019-0878-8/pdf_index.pkl.zst +0 -0
  136. /flowapy-0.3.0/examples/demo/fixtures/papers/10.1186%2Fs13023-021-01817-1/markdown.md → /flowapy-0.4.1/examples/demo/fixtures/papers/10.1186%2Fs13023-021-01817-1/main.md +0 -0
  137. /flowapy-0.3.0/examples/demo/fixtures/papers/10.1186%2Fs13023-021-01817-1/source.pdf → /flowapy-0.4.1/examples/demo/fixtures/papers/10.1186%2Fs13023-021-01817-1/main.pdf +0 -0
  138. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.1186%2Fs13023-021-01817-1/metadata.json +0 -0
  139. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.1186%2Fs13023-021-01817-1/pdf_index.pkl.zst +0 -0
  140. /flowapy-0.3.0/examples/demo/fixtures/papers/10.1186%2Fs13023-021-02146-z/markdown.md → /flowapy-0.4.1/examples/demo/fixtures/papers/10.1186%2Fs13023-021-02146-z/main.md +0 -0
  141. /flowapy-0.3.0/examples/demo/fixtures/papers/10.1186%2Fs13023-021-02146-z/source.pdf → /flowapy-0.4.1/examples/demo/fixtures/papers/10.1186%2Fs13023-021-02146-z/main.pdf +0 -0
  142. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.1186%2Fs13023-021-02146-z/metadata.json +0 -0
  143. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.1186%2Fs13023-021-02146-z/pdf_index.pkl.zst +0 -0
  144. /flowapy-0.3.0/examples/demo/fixtures/papers/10.1186%2Fs13023-023-02848-6/markdown.md → /flowapy-0.4.1/examples/demo/fixtures/papers/10.1186%2Fs13023-023-02848-6/main.md +0 -0
  145. /flowapy-0.3.0/examples/demo/fixtures/papers/10.1186%2Fs13023-023-02848-6/source.pdf → /flowapy-0.4.1/examples/demo/fixtures/papers/10.1186%2Fs13023-023-02848-6/main.pdf +0 -0
  146. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.1186%2Fs13023-023-02848-6/metadata.json +0 -0
  147. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.1186%2Fs13023-023-02848-6/pdf_index.pkl.zst +0 -0
  148. /flowapy-0.3.0/examples/demo/fixtures/papers/10.1186%2Fs13052-019-0692-0/markdown.md → /flowapy-0.4.1/examples/demo/fixtures/papers/10.1186%2Fs13052-019-0692-0/main.md +0 -0
  149. /flowapy-0.3.0/examples/demo/fixtures/papers/10.1186%2Fs13052-019-0692-0/source.pdf → /flowapy-0.4.1/examples/demo/fixtures/papers/10.1186%2Fs13052-019-0692-0/main.pdf +0 -0
  150. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.1186%2Fs13052-019-0692-0/metadata.json +0 -0
  151. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.1186%2Fs13052-019-0692-0/pdf_index.pkl.zst +0 -0
  152. /flowapy-0.3.0/examples/demo/fixtures/papers/10.3389%2Ffcvm.2022.1061384/markdown.md → /flowapy-0.4.1/examples/demo/fixtures/papers/10.3389%2Ffcvm.2022.1061384/main.md +0 -0
  153. /flowapy-0.3.0/examples/demo/fixtures/papers/10.3389%2Ffcvm.2022.1061384/source.pdf → /flowapy-0.4.1/examples/demo/fixtures/papers/10.3389%2Ffcvm.2022.1061384/main.pdf +0 -0
  154. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.3389%2Ffcvm.2022.1061384/metadata.json +0 -0
  155. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.3389%2Ffcvm.2022.1061384/pdf_index.pkl.zst +0 -0
  156. /flowapy-0.3.0/examples/demo/fixtures/papers/10.3389%2Ffcvm.2023.1261172/source.md → /flowapy-0.4.1/examples/demo/fixtures/papers/10.3389%2Ffcvm.2023.1261172/main.md +0 -0
  157. /flowapy-0.3.0/examples/demo/fixtures/papers/10.3389%2Ffcvm.2023.1261172/source.pdf → /flowapy-0.4.1/examples/demo/fixtures/papers/10.3389%2Ffcvm.2023.1261172/main.pdf +0 -0
  158. /flowapy-0.3.0/examples/demo/fixtures/papers/10.3389%2Ffcvm.2023.1261172/markdown.md → /flowapy-0.4.1/examples/demo/fixtures/papers/10.3389%2Ffcvm.2023.1261172/merged.md +0 -0
  159. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.3389%2Ffcvm.2023.1261172/metadata.json +0 -0
  160. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.3389%2Ffcvm.2023.1261172/pdf_index.pkl.zst +0 -0
  161. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.3389%2Ffcvm.2023.1261172/supplements/000_Table1.docx +0 -0
  162. /flowapy-0.3.0/examples/demo/fixtures/papers/10.3389%2Ffimmu.2024.1336599/markdown.md → /flowapy-0.4.1/examples/demo/fixtures/papers/10.3389%2Ffimmu.2024.1336599/main.md +0 -0
  163. /flowapy-0.3.0/examples/demo/fixtures/papers/10.3389%2Ffimmu.2024.1336599/source.pdf → /flowapy-0.4.1/examples/demo/fixtures/papers/10.3389%2Ffimmu.2024.1336599/main.pdf +0 -0
  164. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.3389%2Ffimmu.2024.1336599/metadata.json +0 -0
  165. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.3389%2Ffimmu.2024.1336599/pdf_index.pkl.zst +0 -0
  166. /flowapy-0.3.0/examples/demo/fixtures/papers/10.3389%2Ffped.2021.729824/source.pdf → /flowapy-0.4.1/examples/demo/fixtures/papers/10.3389%2Ffped.2021.729824/merged.pdf +0 -0
  167. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.3389%2Ffped.2021.729824/metadata.json +0 -0
  168. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.3389%2Ffped.2021.729824/pdf_index.pkl.zst +0 -0
  169. /flowapy-0.3.0/examples/demo/fixtures/papers/10.3389%2Ffphar.2022.903488/markdown.md → /flowapy-0.4.1/examples/demo/fixtures/papers/10.3389%2Ffphar.2022.903488/main.md +0 -0
  170. /flowapy-0.3.0/examples/demo/fixtures/papers/10.3389%2Ffphar.2022.903488/source.pdf → /flowapy-0.4.1/examples/demo/fixtures/papers/10.3389%2Ffphar.2022.903488/main.pdf +0 -0
  171. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.3389%2Ffphar.2022.903488/metadata.json +0 -0
  172. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.3389%2Ffphar.2022.903488/pdf_index.pkl.zst +0 -0
  173. /flowapy-0.3.0/examples/demo/fixtures/papers/10.3390%2Fijns11010016/markdown.md → /flowapy-0.4.1/examples/demo/fixtures/papers/10.3390%2Fijns11010016/main.md +0 -0
  174. /flowapy-0.3.0/examples/demo/fixtures/papers/10.3390%2Fijns11010016/source.pdf → /flowapy-0.4.1/examples/demo/fixtures/papers/10.3390%2Fijns11010016/main.pdf +0 -0
  175. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.3390%2Fijns11010016/metadata.json +0 -0
  176. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.3390%2Fijns11010016/pdf_index.pkl.zst +0 -0
  177. /flowapy-0.3.0/examples/demo/fixtures/papers/10.3390%2Fijns6020031/markdown.md → /flowapy-0.4.1/examples/demo/fixtures/papers/10.3390%2Fijns6020031/main.md +0 -0
  178. /flowapy-0.3.0/examples/demo/fixtures/papers/10.3390%2Fijns6020031/source.pdf → /flowapy-0.4.1/examples/demo/fixtures/papers/10.3390%2Fijns6020031/main.pdf +0 -0
  179. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.3390%2Fijns6020031/metadata.json +0 -0
  180. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.3390%2Fijns6020031/pdf_index.pkl.zst +0 -0
  181. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/next-env.d.ts +0 -0
  182. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/next.config.mjs +0 -0
  183. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/postcss.config.cjs +0 -0
  184. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/public/favicon.svg +0 -0
  185. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/scripts/chat-service.ts +0 -0
  186. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/scripts/copy-pdfjs-assets.ts +0 -0
  187. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/scripts/exercise-llm.ts +0 -0
  188. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/scripts/start.ts +0 -0
  189. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/components/literature/ProgressLog.tsx +0 -0
  190. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/db/migrate.ts +0 -0
  191. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/db/schema.sql +0 -0
  192. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/lib/chatSessionClient.ts +0 -0
  193. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/lib/citationResolverClient.ts +0 -0
  194. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/lib/demoConfig.ts +0 -0
  195. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/lib/progressEvents.ts +0 -0
  196. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/lib/runs.ts +0 -0
  197. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/lib/triageBackendClient.ts +0 -0
  198. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/lib/triageDb.ts +0 -0
  199. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/lib/variantId.ts +0 -0
  200. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/pages/_app.tsx +0 -0
  201. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/pages/api/aggregate/[variantId]/[category].ts +0 -0
  202. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/pages/api/edit-drafts/[variantId]/[category]/[version].ts +0 -0
  203. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/pages/api/edit-drafts/[variantId]/[category]/index.ts +0 -0
  204. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/pages/api/papers/index.ts +0 -0
  205. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/pages/api/runs/[variantId]/[runId]/progress.ts +0 -0
  206. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/pages/api/runs/index.ts +0 -0
  207. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/pages/api/runs/latest.ts +0 -0
  208. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/pages/api/triage/claim.ts +0 -0
  209. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/pages/api/triage/comment.ts +0 -0
  210. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/pages/api/triage/paper-done.ts +0 -0
  211. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/pages/api/triage/snapshot/[variantId]/[category]/[version].ts +0 -0
  212. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/pages/index.tsx +0 -0
  213. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/pages/variants/[variantId].tsx +0 -0
  214. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/pages/viewer/[variantId]/[category].tsx +0 -0
  215. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/styles/globals.css +0 -0
  216. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/tailwind.config.ts +0 -0
  217. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/test/LiteratureView.test.tsx +0 -0
  218. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/test/ProgressLog.test.tsx +0 -0
  219. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/test/aggregate.test.ts +0 -0
  220. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/test/chat-service.test.ts +0 -0
  221. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/test/index-page.test.tsx +0 -0
  222. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/test/progress-route.test.ts +0 -0
  223. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/test/runs-latest-route.test.ts +0 -0
  224. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/test/runs-route.test.ts +0 -0
  225. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/test/runs.test.ts +0 -0
  226. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/test/setup.ts +0 -0
  227. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/test/triage.test.ts +0 -0
  228. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/test/variantId.test.ts +0 -0
  229. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/tsconfig.json +0 -0
  230. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/vitest.config.ts +0 -0
  231. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo-gateway/README.md +0 -0
  232. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo-gateway/src/demo_gateway/__init__.py +0 -0
  233. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo-gateway/src/demo_gateway/config.py +0 -0
  234. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo-gateway/src/demo_gateway/main.py +0 -0
  235. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo-gateway/src/demo_gateway/progress.py +0 -0
  236. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo-gateway/src/demo_gateway/runs.py +0 -0
  237. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo-gateway/tests/__init__.py +0 -0
  238. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo-gateway/tests/conftest.py +0 -0
  239. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo-gateway/tests/test_main.py +0 -0
  240. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo-gateway/tests/test_progress.py +0 -0
  241. {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo-gateway/tests/test_runs.py +0 -0
  242. {flowapy-0.3.0 → flowapy-0.4.1}/package.json +0 -0
  243. {flowapy-0.3.0 → flowapy-0.4.1}/packages/.gitkeep +0 -0
  244. {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/Dockerfile +0 -0
  245. {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/LICENSE +0 -0
  246. {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/README.md +0 -0
  247. {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/src/audit.ts +0 -0
  248. {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/src/auth/jwt.ts +0 -0
  249. {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/src/auth/oidc.ts +0 -0
  250. {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/src/chat.ts +0 -0
  251. {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/src/cli.ts +0 -0
  252. {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/src/config.ts +0 -0
  253. {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/src/index.ts +0 -0
  254. {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/src/instrumentation.ts +0 -0
  255. {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/src/llm/anthropic.ts +0 -0
  256. {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/src/llm/bedrock.ts +0 -0
  257. {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/src/llm/factory.ts +0 -0
  258. {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/src/llm/google-gla.ts +0 -0
  259. {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/src/llm/google-vertex.ts +0 -0
  260. {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/src/llm/interface.ts +0 -0
  261. {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/src/llm/openai.ts +0 -0
  262. {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/src/prompts.ts +0 -0
  263. {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/src/server.ts +0 -0
  264. {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/src/session.ts +0 -0
  265. {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/src/storage/factory.ts +0 -0
  266. {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/src/storage/fs.ts +0 -0
  267. {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/src/storage/gcs.ts +0 -0
  268. {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/src/storage/interface.ts +0 -0
  269. {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/src/storage/s3.ts +0 -0
  270. {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/src/telemetry.ts +0 -0
  271. {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/src/text.ts +0 -0
  272. {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/test/chat.test.ts +0 -0
  273. {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/test/generic-prompt.test.ts +0 -0
  274. {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/test/llm-factory.test.ts +0 -0
  275. {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/test/oidc.test.ts +0 -0
  276. {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/test/storage-fs.test.ts +0 -0
  277. {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/test/storage-gcs.test.ts +0 -0
  278. {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/test/storage-s3.test.ts +0 -0
  279. {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/test/text.test.ts +0 -0
  280. {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/test/yaml.test.ts +0 -0
  281. {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/tsconfig.build.json +0 -0
  282. {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/tsconfig.json +0 -0
  283. {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/vitest.config.ts +0 -0
  284. {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/LICENSE +0 -0
  285. {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/citations/sanitize.test.ts +0 -0
  286. {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/citations/sanitize.ts +0 -0
  287. {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/citations/types.ts +0 -0
  288. {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/llm-content/LlmContent.test.tsx +0 -0
  289. {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/llm-content/LlmContent.tsx +0 -0
  290. {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/markdown-viewer/MarkdownHighlightViewer.test.tsx +0 -0
  291. {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/markdown-viewer/offsets.test.ts +0 -0
  292. {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/markdown-viewer/offsets.ts +0 -0
  293. {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/markdown-viewer/plugins.test.tsx +0 -0
  294. {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/markdown-viewer/plugins.ts +0 -0
  295. {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/pdf-viewer/PdfHighlightViewer.test.tsx +0 -0
  296. {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/pdf-viewer/PdfHighlightViewer.tsx +0 -0
  297. {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/pdf-viewer/types.ts +0 -0
  298. {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/triage/ChatDrawer.test.tsx +0 -0
  299. {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/triage/ChatDrawer.tsx +0 -0
  300. {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/triage/ChatSection.tsx +0 -0
  301. {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/triage/ClaimList.tsx +0 -0
  302. {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/triage/FocusCard.tsx +0 -0
  303. {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/triage/MessageParts.tsx +0 -0
  304. {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/triage/PaperHeader.tsx +0 -0
  305. {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/triage/PaperRail.test.tsx +0 -0
  306. {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/triage/PaperRail.tsx +0 -0
  307. {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/triage/ReasoningStep.tsx +0 -0
  308. {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/triage/SynthesisPanel.tsx +0 -0
  309. {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/triage/ToolStep.tsx +0 -0
  310. {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/triage/backend.ts +0 -0
  311. {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/triage/citation-utils.test.ts +0 -0
  312. {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/triage/citation-utils.ts +0 -0
  313. {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/triage/claim-refs.test.ts +0 -0
  314. {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/triage/claim-refs.ts +0 -0
  315. {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/triage/keyboard.test.ts +0 -0
  316. {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/triage/keyboard.ts +0 -0
  317. {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/triage/store.test.ts +0 -0
  318. {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/triage/store.ts +0 -0
  319. {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/triage/trace-format.test.ts +0 -0
  320. {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/triage/trace-format.ts +0 -0
  321. {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/tailwind.config.ts +0 -0
  322. {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/tsconfig.json +0 -0
  323. {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/tsup.config.ts +0 -0
  324. {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/vitest.config.ts +0 -0
  325. {flowapy-0.3.0 → flowapy-0.4.1}/pnpm-workspace.yaml +0 -0
  326. {flowapy-0.3.0 → flowapy-0.4.1}/prompts/generic/aggregation_edit_prompt.txt +0 -0
  327. {flowapy-0.3.0 → flowapy-0.4.1}/prompts/generic/aggregation_edit_schema.ts +0 -0
  328. {flowapy-0.3.0 → flowapy-0.4.1}/prompts/generic/aggregation_prompt.txt +0 -0
  329. {flowapy-0.3.0 → flowapy-0.4.1}/prompts/generic/aggregation_schema.py +0 -0
  330. {flowapy-0.3.0 → flowapy-0.4.1}/prompts/generic/extraction_prompt.txt +0 -0
  331. {flowapy-0.3.0 → flowapy-0.4.1}/prompts/generic/extraction_schema.py +0 -0
  332. {flowapy-0.3.0 → flowapy-0.4.1}/prompts/generic/transcription_prompt.txt +0 -0
  333. {flowapy-0.3.0 → flowapy-0.4.1}/prompts/package.json +0 -0
  334. {flowapy-0.3.0 → flowapy-0.4.1}/src/flowa/__init__.py +0 -0
  335. {flowapy-0.3.0 → flowapy-0.4.1}/src/flowa/artifact.py +0 -0
  336. {flowapy-0.3.0 → flowapy-0.4.1}/src/flowa/cli.py +0 -0
  337. {flowapy-0.3.0 → flowapy-0.4.1}/src/flowa/clinvar.py +0 -0
  338. {flowapy-0.3.0 → flowapy-0.4.1}/src/flowa/content_validation.py +0 -0
  339. {flowapy-0.3.0 → flowapy-0.4.1}/src/flowa/http_retry.py +0 -0
  340. {flowapy-0.3.0 → flowapy-0.4.1}/src/flowa/models.py +0 -0
  341. {flowapy-0.3.0 → flowapy-0.4.1}/src/flowa/pdf_index_cache.py +0 -0
  342. {flowapy-0.3.0 → flowapy-0.4.1}/src/flowa/progress.py +0 -0
  343. {flowapy-0.3.0 → flowapy-0.4.1}/src/flowa/prompts/__init__.py +0 -0
  344. {flowapy-0.3.0 → flowapy-0.4.1}/src/flowa/py.typed +0 -0
  345. {flowapy-0.3.0 → flowapy-0.4.1}/src/flowa/run.py +0 -0
  346. {flowapy-0.3.0 → flowapy-0.4.1}/src/flowa/settings.py +0 -0
  347. {flowapy-0.3.0 → flowapy-0.4.1}/tests/__init__.py +0 -0
  348. {flowapy-0.3.0 → flowapy-0.4.1}/tests/test_content_validation.py +0 -0
  349. {flowapy-0.3.0 → flowapy-0.4.1}/tests/test_pdf_index_cache.py +0 -0
  350. {flowapy-0.3.0 → flowapy-0.4.1}/tests/test_progress.py +0 -0
  351. {flowapy-0.3.0 → flowapy-0.4.1}/tests/test_prompts.py +0 -0
  352. {flowapy-0.3.0 → flowapy-0.4.1}/tsconfig.base.json +0 -0
@@ -0,0 +1,11 @@
1
+ # Code review ownership for flowa.
2
+ #
3
+ # GitHub requests a review from the matching owner on every PR that touches
4
+ # these paths — including Dependabot's. This replaces Dependabot's `reviewers:`
5
+ # option, which GitHub retired in 2025 (it now silently ignores that key);
6
+ # CODEOWNERS is the supported mechanism for auto-requesting reviewers.
7
+ #
8
+ # `main` requires only the `lint` status check (no required code-owner
9
+ # approval), so this only *requests* review — it never blocks the auto-merge of
10
+ # routine Dependabot bumps (dependabot-auto-merge.yml).
11
+ * @lgruen-vcgs
@@ -12,8 +12,14 @@
12
12
  # (`min-release-age=7d` in pnpm's global config, `exclude-newer = "7 days"`
13
13
  # in each uv project). Without it Dependabot would happily open PRs that CI
14
14
  # then rejects because the new version is too fresh.
15
- # - The reviewer assignment notifies @lgruen-vcgs on each PR; the weekly
16
- # cadence keeps the inbox manageable.
15
+ # - Review requests come from .github/CODEOWNERS. Dependabot's `reviewers:`
16
+ # option was retired by GitHub in 2025 (it is now silently ignored), so the
17
+ # code owner is what gets a review request on each PR. The weekly cadence
18
+ # keeps the inbox manageable.
19
+ # - No explicit `labels:` — Dependabot applies its defaults (`dependencies`
20
+ # plus the `python:uv` / `javascript:npm` ecosystem label, which it
21
+ # auto-creates). Naming a label here that Dependabot does not auto-create
22
+ # makes it error whenever that label is missing from the repo.
17
23
 
18
24
  version: 2
19
25
 
@@ -26,15 +32,29 @@ updates:
26
32
  schedule:
27
33
  interval: "weekly"
28
34
  open-pull-requests-limit: 10
29
- reviewers:
30
- - "lgruen-vcgs"
31
- labels:
32
- - "dependencies"
33
- - "npm"
34
35
  commit-message:
35
36
  prefix: "deps"
36
37
  cooldown:
37
38
  default-days: 7
39
+ # Hold the published UI peer deps on their current majors. @flowajs/react-
40
+ # viewer declares @mantine/* and react / react-dom as peer dependencies
41
+ # (^8 / ^18); downstream consumers of the published package are on those
42
+ # majors (Mantine 8 / React 18). A major bump here drags the peer range
43
+ # ahead of those consumers and forces them through a breaking upgrade, so
44
+ # block majors for the @mantine/* family and the react stack until they
45
+ # migrate in lockstep. Minor/patch within 8.x / 18.x still flow (the
46
+ # npm-non-major group below).
47
+ ignore:
48
+ - dependency-name: "@mantine/*"
49
+ update-types: ["version-update:semver-major"]
50
+ - dependency-name: "react"
51
+ update-types: ["version-update:semver-major"]
52
+ - dependency-name: "react-dom"
53
+ update-types: ["version-update:semver-major"]
54
+ - dependency-name: "@types/react"
55
+ update-types: ["version-update:semver-major"]
56
+ - dependency-name: "@types/react-dom"
57
+ update-types: ["version-update:semver-major"]
38
58
  groups:
39
59
  npm-non-major:
40
60
  patterns:
@@ -49,11 +69,6 @@ updates:
49
69
  schedule:
50
70
  interval: "weekly"
51
71
  open-pull-requests-limit: 10
52
- reviewers:
53
- - "lgruen-vcgs"
54
- labels:
55
- - "dependencies"
56
- - "python"
57
72
  commit-message:
58
73
  prefix: "deps"
59
74
  cooldown:
@@ -73,11 +88,6 @@ updates:
73
88
  schedule:
74
89
  interval: "weekly"
75
90
  open-pull-requests-limit: 10
76
- reviewers:
77
- - "lgruen-vcgs"
78
- labels:
79
- - "dependencies"
80
- - "python"
81
91
  commit-message:
82
92
  prefix: "deps"
83
93
  cooldown:
@@ -75,8 +75,34 @@ jobs:
75
75
  working-directory: packages/chat-service
76
76
  run: pnpm pack --dry-run
77
77
 
78
+ # `npm publish --provenance` occasionally exits non-zero with a spurious
79
+ # `E401 … Failed to generate Web Auth URLs` from its post-publish web-auth
80
+ # step *after* the registry has already accepted the tarball + provenance.
81
+ # Verify the registry state on failure and treat a present version as
82
+ # success — this also makes a re-run over an already-published version pass.
78
83
  - name: Publish
79
84
  working-directory: packages/chat-service
80
- run: npm publish --provenance --access=public
81
85
  env:
82
86
  NPM_CONFIG_PROVENANCE: true
87
+ run: |
88
+ name=$(node -p "require('./package.json').name")
89
+ version=$(node -p "require('./package.json').version")
90
+ set +e
91
+ npm publish --provenance --access=public
92
+ code=$?
93
+ set -e
94
+ if [ "$code" -eq 0 ]; then
95
+ echo "Published $name@$version."
96
+ exit 0
97
+ fi
98
+ echo "npm publish exited $code; verifying whether $name@$version reached the registry."
99
+ for attempt in 1 2 3; do
100
+ if npm view "$name@$version" version >/dev/null 2>&1; then
101
+ echo "$name@$version is present on the registry; treating as published."
102
+ exit 0
103
+ fi
104
+ echo "Not visible yet (attempt $attempt/3); waiting for registry propagation."
105
+ sleep 10
106
+ done
107
+ echo "Publish failed: $name@$version is not on the registry."
108
+ exit "$code"
@@ -92,3 +92,7 @@ jobs:
92
92
 
93
93
  - name: Publish to PyPI
94
94
  uses: pypa/gh-action-pypi-publish@release/v1
95
+ # Treat an already-present version as success so a re-run (e.g. after a
96
+ # transient registry error) doesn't fail on "file already exists".
97
+ with:
98
+ skip-existing: true
@@ -72,8 +72,34 @@ jobs:
72
72
  working-directory: packages/react-viewer
73
73
  run: pnpm pack --dry-run
74
74
 
75
+ # `npm publish --provenance` occasionally exits non-zero with a spurious
76
+ # `E401 … Failed to generate Web Auth URLs` from its post-publish web-auth
77
+ # step *after* the registry has already accepted the tarball + provenance.
78
+ # Verify the registry state on failure and treat a present version as
79
+ # success — this also makes a re-run over an already-published version pass.
75
80
  - name: Publish
76
81
  working-directory: packages/react-viewer
77
- run: npm publish --provenance --access=public
78
82
  env:
79
83
  NPM_CONFIG_PROVENANCE: true
84
+ run: |
85
+ name=$(node -p "require('./package.json').name")
86
+ version=$(node -p "require('./package.json').version")
87
+ set +e
88
+ npm publish --provenance --access=public
89
+ code=$?
90
+ set -e
91
+ if [ "$code" -eq 0 ]; then
92
+ echo "Published $name@$version."
93
+ exit 0
94
+ fi
95
+ echo "npm publish exited $code; verifying whether $name@$version reached the registry."
96
+ for attempt in 1 2 3; do
97
+ if npm view "$name@$version" version >/dev/null 2>&1; then
98
+ echo "$name@$version is present on the registry; treating as published."
99
+ exit 0
100
+ fi
101
+ echo "Not visible yet (attempt $attempt/3); waiting for registry propagation."
102
+ sleep 10
103
+ done
104
+ echo "Publish failed: $name@$version is not on the registry."
105
+ exit "$code"
@@ -113,6 +113,14 @@ repos:
113
113
  # demo-gateway is its own uv project (separate venv + ruff/mypy config),
114
114
  # so these cd in and run that project's pinned tools, mirroring the pytest
115
115
  # hook below.
116
+ #
117
+ # demo-gateway installs flowapy as an editable path dep (`path = "../.."`),
118
+ # so a change to `src/flowa/` can break its mypy/pytest gates even when no
119
+ # demo-gateway file is touched. The type+behaviour gates therefore also
120
+ # fire on `src/flowa/**.py`; the formatters don't, since ruff only inspects
121
+ # demo-gateway's own files. (Without this, a flowapy-only commit skips these
122
+ # locally — pre-commit runs hooks against staged files — and the break only
123
+ # surfaces in CI's `--all-files` run.)
116
124
  - id: ruff-format-demo-gateway
117
125
  name: ruff format (demo-gateway)
118
126
  entry: bash -c 'cd examples/demo-gateway && uv run --no-sync ruff format --check src/ tests/'
@@ -130,10 +138,10 @@ repos:
130
138
  entry: bash -c 'cd examples/demo-gateway && uv run --no-sync mypy src/ tests/'
131
139
  language: system
132
140
  pass_filenames: false
133
- files: ^examples/demo-gateway/.*\.py$
141
+ files: ^(examples/demo-gateway/.*|src/flowa/.*)\.py$
134
142
  - id: pytest-demo-gateway
135
143
  name: pytest (demo-gateway)
136
144
  entry: bash -c 'cd examples/demo-gateway && uv run --no-sync pytest tests/'
137
145
  language: system
138
146
  pass_filenames: false
139
- files: ^examples/demo-gateway/.*\.py$
147
+ files: ^(examples/demo-gateway/.*|src/flowa/.*)\.py$
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: flowapy
3
- Version: 0.3.0
3
+ Version: 0.4.1
4
4
  Summary: Variant literature assessment pipeline with AI extraction
5
5
  Project-URL: Homepage, https://github.com/populationgenomics/flowa
6
6
  Project-URL: Source, https://github.com/populationgenomics/flowa
@@ -37,27 +37,27 @@ Requires-Python: ==3.13.*
37
37
  Requires-Dist: anchorite>=0.5.1
38
38
  Requires-Dist: boto3
39
39
  Requires-Dist: defusedxml
40
- Requires-Dist: fsspec
41
- Requires-Dist: gcsfs
40
+ Requires-Dist: fsspec>=2026.4.0
41
+ Requires-Dist: gcsfs>=2026.4.0
42
42
  Requires-Dist: httpx
43
43
  Requires-Dist: jinja2
44
44
  Requires-Dist: logfire
45
45
  Requires-Dist: markitdown[docx,xls,xlsx]>=0.1.5
46
46
  Requires-Dist: pydantic-settings
47
47
  Requires-Dist: pypdf
48
- Requires-Dist: s3fs
48
+ Requires-Dist: s3fs>=2026.4.0
49
49
  Requires-Dist: socksio>=1.0.0
50
50
  Requires-Dist: tenacity
51
51
  Requires-Dist: typer
52
52
  Requires-Dist: zstandard
53
53
  Provides-Extra: anthropic
54
- Requires-Dist: pydantic-ai-slim[anthropic]==1.101.0; extra == 'anthropic'
54
+ Requires-Dist: pydantic-ai-slim[anthropic]<2,>=1.101.0; extra == 'anthropic'
55
55
  Provides-Extra: bedrock
56
- Requires-Dist: pydantic-ai-slim[bedrock]==1.101.0; extra == 'bedrock'
56
+ Requires-Dist: pydantic-ai-slim[bedrock]<2,>=1.101.0; extra == 'bedrock'
57
57
  Provides-Extra: google
58
- Requires-Dist: pydantic-ai-slim[google]==1.101.0; extra == 'google'
58
+ Requires-Dist: pydantic-ai-slim[google]<2,>=1.101.0; extra == 'google'
59
59
  Provides-Extra: openai
60
- Requires-Dist: pydantic-ai-slim[openai]==1.101.0; extra == 'openai'
60
+ Requires-Dist: pydantic-ai-slim[openai]<2,>=1.101.0; extra == 'openai'
61
61
  Description-Content-Type: text/markdown
62
62
 
63
63
  # Flowa
@@ -166,10 +166,12 @@ VARIANT=NM_001035_3-c_14174A_G
166
166
  rm -f assessments/$VARIANT/aggregation.json \
167
167
  assessments/$VARIANT/aggregation_raw.json
168
168
  rm -rf assessments/$VARIANT/extractions/ assessments/$VARIANT/runs/
169
- # Re-runs flowa.convert (which uses anchorite for PDF chunking and
170
- # builds pdf_index.pkl.zst). Drop this line to reuse the cached markdown
171
- # + index and only redo extract + aggregate.
172
- rm -f papers/*/markdown.md papers/*/convert_raw.json papers/*/pdf_index.pkl.zst
169
+ # Re-runs flowa.convert (which transcribes each PDF, builds merged.pdf when
170
+ # there are PDF supplements, and builds pdf_index.pkl.zst). Drop this line to
171
+ # reuse the cached transcriptions + index and only redo extract + aggregate.
172
+ rm -f papers/*/main.md papers/*/merged.md papers/*/merged.pdf \
173
+ papers/*/convert_raw.json papers/*/pdf_index.pkl.zst \
174
+ papers/*/supplements/*.pdf.md
173
175
  ```
174
176
 
175
177
  Then drive the pipeline. The demo's `scripts/start.ts` translates the
@@ -207,11 +209,11 @@ and not needed by anything downstream.
207
209
 
208
210
  For papers whose source license blocks redistribution (CC-BY-NC-ND,
209
211
  paywalled; see `fixtures/LICENSES.md` for the rule), do **not** delete
210
- the whole `papers/{encodedDoi}/` directory — only delete `source.pdf`,
211
- `markdown.md`, `convert_raw.json`, and `pdf_index.pkl.zst`. The
212
- `pdf_index.pkl.zst` embeds the PDF's extracted text (anchorite's char
213
- index), so it carries the same copyright as `source.pdf` and must not
214
- ship in the open-source repo. Keep `metadata.json` (the bibliographic
212
+ the whole `papers/{encodedDoi}/` directory — only delete `main.pdf`,
213
+ `merged.pdf`, `main.md`, `merged.md`, `convert_raw.json`, `pdf_index.pkl.zst`,
214
+ and the `supplements/` directory. The `pdf_index.pkl.zst` embeds the PDF's
215
+ extracted text (anchorite's char index), so it carries the same copyright as
216
+ `main.pdf` and must not ship in the open-source repo. Keep `metadata.json` (the bibliographic
215
217
  fields are factual data, not copyrightable) but replace its `abstract`
216
218
  field with a sentinel string, so the omission reads as deliberate (not
217
219
  a missing-data bug) when the literature view renders the row:
@@ -2,7 +2,7 @@
2
2
 
3
3
  The fixture under `examples/demo/fixtures/papers/` ships three kinds of entries, all keyed by the encoded DOI:
4
4
 
5
- 1. **Full-content papers** (15) — `source.pdf` + `markdown.md` + `metadata.json`. The pipeline downloaded the PDF from PMC, converted it to Markdown, and ran extraction. Three also carry `source.md` (the PDF transcription) and a `supplements/` directory of xlsx/docx supplements, which are converted and appended into `markdown.md`. All are CC-BY (any version) or CC0, so the PDF, the derivative Markdown, and the supplements are redistributable provided attribution is preserved (entries below).
5
+ 1. **Full-content papers** (15) — `main.pdf` + `main.md` + `metadata.json` + `pdf_index.pkl.zst`. The pipeline downloaded the main PDF from PMC, transcribed it to Markdown (`main.md`), and ran extraction. Papers with supplements also carry a `supplements/` directory and an assembled `merged.md` (`main.md` + the supplement transcriptions/conversions): **3** carry an xlsx/docx (office) supplement, and **2** carry a separate PDF supplement (which is additionally concatenated into a derived `merged.pdf` and transcribed). All are CC-BY (any version) or CC0, so the PDFs, the derivative Markdown, and the supplements are redistributable provided attribution is preserved (entries below).
6
6
  2. **Metadata-only, license-restricted** (5) — only `metadata.json`; the source paper is paywalled or under a no-derivatives / non-commercial licence (e.g. CC-BY-NC-ND). The `abstract` field is replaced with a sentinel string explaining the omission, since the abstract is the author's prose and is subject to publisher copyright. Bibliographic facts (DOI, PMID, title, authors, journal, date) are not copyrightable and ship as-is.
7
7
  3. **Metadata-only, CC-BY not in PMC** (1) — only `metadata.json`; the source paper IS CC-BY-licensed but PMC's OA subset doesn't carry it, so flowa's PMC-only download path silently skipped it. Abstract is preserved (CC-BY permits redistribution); PDF/Markdown are absent. A curator running the demo locally can fetch the PDF from the journal site.
8
8
 
@@ -101,6 +101,7 @@ For all three kinds, the demo's literature page renders the row from `metadata.j
101
101
  - **DOI:** [10.1002/humu.23878](https://doi.org/10.1002/humu.23878)
102
102
  - **PMID:** 31342611
103
103
  - **License:** [CC-BY 4.0](https://creativecommons.org/licenses/by/4.0/)
104
+ - **Supplement:** `supplements/000_HUMU-40-2146-s001.pdf` (supplementary data PDF; inherits the article's CC-BY 4.0).
104
105
 
105
106
  ### `10.1186%2Fs12881-019-0878-8/`
106
107
 
@@ -147,12 +148,18 @@ For all three kinds, the demo's literature page renders the row from `metadata.j
147
148
  - **DOI:** [10.3389/fped.2021.729824](https://doi.org/10.3389/fped.2021.729824)
148
149
  - **PMID:** 34966699
149
150
  - **License:** [CC-BY 4.0](https://creativecommons.org/licenses/by/4.0/)
151
+ - **Supplement:** `supplements/000_Image_1.PDF` (supplementary figure PDF; inherits the article's CC-BY 4.0).
150
152
 
151
153
  ### Derivative artifacts
152
154
 
153
155
  For each full-content paper the fixture also ships the pipeline's derivatives:
154
156
 
155
- - `markdown.md` — Markdown extracted from the PDF by the conversion stage.
157
+ - `main.md` — the main PDF transcribed to Markdown by the conversion stage.
158
+ - `merged.md` — present only for papers with supplements: `main.md` + the
159
+ PDF-supplement transcriptions + the converted office supplements.
160
+ - `merged.pdf` — present only for the two papers with a PDF supplement: `main.pdf`
161
+ concatenated with the supplement PDF (what the viewer renders + the index is built from).
162
+ - `pdf_index.pkl.zst` — the anchorite PDF index (embeds the PDF's extracted text).
156
163
  - `metadata.json` — bibliographic metadata (DOI, PMID, title, authors, etc.).
157
164
 
158
165
  These derivatives are released under the same CC-BY licence as the underlying PDFs.
@@ -416,8 +416,8 @@
416
416
  }
417
417
  ],
418
418
  "markdown_anchor": {
419
- "start": 110375,
420
- "end": 110422
419
+ "start": 110789,
420
+ "end": 110836
421
421
  }
422
422
  }
423
423
  }
@@ -454,8 +454,8 @@
454
454
  }
455
455
  ],
456
456
  "markdown_anchor": {
457
- "start": 26931,
458
- "end": 27066
457
+ "start": 36529,
458
+ "end": 36664
459
459
  }
460
460
  }
461
461
  }
@@ -485,8 +485,8 @@
485
485
  }
486
486
  ],
487
487
  "markdown_anchor": {
488
- "start": 53026,
489
- "end": 53074
488
+ "start": 53390,
489
+ "end": 53438
490
490
  }
491
491
  }
492
492
  }
@@ -551,8 +551,8 @@
551
551
  }
552
552
  ],
553
553
  "markdown_anchor": {
554
- "start": 65886,
555
- "end": 66324
554
+ "start": 66258,
555
+ "end": 66696
556
556
  }
557
557
  }
558
558
  }
@@ -624,8 +624,8 @@
624
624
  }
625
625
  ],
626
626
  "markdown_anchor": {
627
- "start": 54842,
628
- "end": 55327
627
+ "start": 55216,
628
+ "end": 55701
629
629
  }
630
630
  }
631
631
  }
@@ -2810,8 +2810,8 @@
2810
2810
  }
2811
2811
  ],
2812
2812
  "markdown_anchor": {
2813
- "start": 6305,
2814
- "end": 6462
2813
+ "start": 6304,
2814
+ "end": 6461
2815
2815
  }
2816
2816
  }
2817
2817
  },