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.
- flowapy-0.4.1/.github/CODEOWNERS +11 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/.github/dependabot.yml +27 -17
- {flowapy-0.3.0 → flowapy-0.4.1}/.github/workflows/release-chat-service.yaml +27 -1
- {flowapy-0.3.0 → flowapy-0.4.1}/.github/workflows/release-flowapy.yaml +4 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/.github/workflows/release-react-viewer.yaml +27 -1
- {flowapy-0.3.0 → flowapy-0.4.1}/.pre-commit-config.yaml +10 -2
- {flowapy-0.3.0 → flowapy-0.4.1}/PKG-INFO +8 -8
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/README.md +11 -9
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/LICENSES.md +9 -2
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/assessments/NM_000152_5-c_1935C_A/aggregation.json +12 -12
- flowapy-0.4.1/examples/demo/fixtures/papers/10.1002%2Fhumu.23878/main.md +738 -0
- flowapy-0.4.1/examples/demo/fixtures/papers/10.1002%2Fhumu.23878/main.pdf +0 -0
- 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
- flowapy-0.4.1/examples/demo/fixtures/papers/10.1002%2Fhumu.23878/supplements/000_HUMU-40-2146-s001.pdf +0 -0
- flowapy-0.4.1/examples/demo/fixtures/papers/10.1002%2Fhumu.23878/supplements/000_HUMU-40-2146-s001.pdf.md +513 -0
- 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
- flowapy-0.4.1/examples/demo/fixtures/papers/10.3389%2Ffped.2021.729824/main.pdf +0 -0
- flowapy-0.4.1/examples/demo/fixtures/papers/10.3389%2Ffped.2021.729824/merged.md +247 -0
- flowapy-0.4.1/examples/demo/fixtures/papers/10.3389%2Ffped.2021.729824/supplements/000_Image_1.PDF +0 -0
- flowapy-0.4.1/examples/demo/fixtures/papers/10.3389%2Ffped.2021.729824/supplements/000_Image_1.PDF.md +9 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/package.json +20 -20
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/components/literature/LiteratureView.tsx +23 -13
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/components/literature/PaperStatusGroup.tsx +1 -1
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/lib/aggregate.ts +1 -1
- flowapy-0.4.1/examples/demo/src/lib/paperInvalidation.ts +96 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/lib/papers.ts +7 -3
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/pages/api/papers/[doi]/markdown.ts +8 -5
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/pages/api/papers/[doi]/pdf.ts +37 -8
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/pages/api/papers/[doi]/supplements.ts +43 -19
- flowapy-0.4.1/examples/demo/test/paper-invalidation.test.ts +139 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/test/papers-pdf-upload.test.ts +92 -1
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/test/papers-route.test.ts +1 -1
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/test/papers-supplements.test.ts +92 -5
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/test/papers.test.ts +12 -1
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo-gateway/pyproject.toml +4 -10
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo-gateway/tests/test_resolve.py +3 -3
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo-gateway/uv.lock +167 -156
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/package.json +14 -14
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/src/artifact.ts +6 -4
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/src/storage-keys.ts +5 -1
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/src/yaml.ts +1 -1
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/test/paper-cache.test.ts +15 -5
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/README.md +17 -7
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/package.json +10 -10
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/index.ts +9 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/markdown-viewer/MarkdownHighlightViewer.tsx +4 -3
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/markdown-viewer/types.ts +1 -1
- flowapy-0.4.1/packages/react-viewer/src/paper-matching/matchFilesToPapers.test.ts +140 -0
- flowapy-0.4.1/packages/react-viewer/src/paper-matching/matchFilesToPapers.ts +121 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/styles.css +1 -1
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/triage/EvidenceViewerShell.test.tsx +2 -2
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/triage/EvidenceViewerShell.tsx +1 -1
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/triage/citation-resolver.ts +3 -3
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/triage/types.ts +1 -1
- {flowapy-0.3.0 → flowapy-0.4.1}/pnpm-lock.yaml +928 -897
- {flowapy-0.3.0 → flowapy-0.4.1}/pyproject.toml +20 -23
- {flowapy-0.3.0 → flowapy-0.4.1}/src/flowa/aggregate.py +4 -4
- flowapy-0.4.1/src/flowa/assemble.py +207 -0
- flowapy-0.4.1/src/flowa/convert.py +320 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/src/flowa/download.py +38 -104
- {flowapy-0.3.0 → flowapy-0.4.1}/src/flowa/extract.py +18 -7
- {flowapy-0.3.0 → flowapy-0.4.1}/src/flowa/normalize.py +75 -43
- {flowapy-0.3.0 → flowapy-0.4.1}/src/flowa/query.py +16 -17
- {flowapy-0.3.0 → flowapy-0.4.1}/src/flowa/resolve.py +17 -16
- {flowapy-0.3.0 → flowapy-0.4.1}/src/flowa/schema.py +1 -1
- {flowapy-0.3.0 → flowapy-0.4.1}/src/flowa/storage.py +65 -9
- {flowapy-0.3.0 → flowapy-0.4.1}/tests/test_assemble.py +58 -17
- flowapy-0.4.1/tests/test_convert.py +181 -0
- flowapy-0.4.1/tests/test_download.py +92 -0
- flowapy-0.4.1/tests/test_normalize.py +105 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/tests/test_resolve.py +3 -3
- {flowapy-0.3.0 → flowapy-0.4.1}/uv.lock +218 -209
- flowapy-0.3.0/examples/demo/src/components/literature/matchFilename.ts +0 -51
- flowapy-0.3.0/examples/demo/src/lib/paperInvalidation.ts +0 -52
- flowapy-0.3.0/examples/demo/test/matchFilename.test.ts +0 -103
- flowapy-0.3.0/examples/demo/test/paper-invalidation.test.ts +0 -90
- flowapy-0.3.0/src/flowa/assemble.py +0 -132
- flowapy-0.3.0/src/flowa/convert.py +0 -203
- flowapy-0.3.0/tests/test_download.py +0 -51
- {flowapy-0.3.0 → flowapy-0.4.1}/.github/workflows/dependabot-auto-merge.yml +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/.github/workflows/lint.yaml +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/.gitignore +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/.markdownlint.json +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/.nvmrc +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/.prettierignore +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/Dockerfile +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/LICENSE +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/README.md +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/docs/images/viewer.png +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/.gitkeep +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/.env.example +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/.gitignore +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/assessments/NM_000152_5-c_1935C_A/query.json +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/assessments/NM_000152_5-c_1935C_A/runs/cfc0186a7b7e46eb802a516b86ec207f/progress.jsonl +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/assessments/NM_000152_5-c_1935C_A/variant_details.json +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.1002%2Fajmg.a.61481/metadata.json +0 -0
- /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
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.1002%2Fhumu.23878/metadata.json +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.1002%2Fhumu.23878/pdf_index.pkl.zst +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.1016%2Fj.ejmg.2020.103997/metadata.json +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.1016%2Fj.nmd.2022.02.002/metadata.json +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.1016%2Fj.tjog.2022.07.008/metadata.json +0 -0
- /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
- /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
- /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
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.1016%2Fj.ymgmr.2024.101163/metadata.json +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.1016%2Fj.ymgmr.2024.101163/pdf_index.pkl.zst +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.1016%2Fj.ymgmr.2024.101163/supplements/000_mmc1.docx +0 -0
- /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
- /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
- /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
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.1038%2Fs41598-022-25914-8/metadata.json +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.1038%2Fs41598-022-25914-8/pdf_index.pkl.zst +0 -0
- {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
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.1093%2Fhmg%2Fddz218/metadata.json +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.1136%2Fjmg-2022-108675/metadata.json +0 -0
- /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
- /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
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.1186%2Fs12881-019-0878-8/metadata.json +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.1186%2Fs12881-019-0878-8/pdf_index.pkl.zst +0 -0
- /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
- /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
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.1186%2Fs13023-021-01817-1/metadata.json +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.1186%2Fs13023-021-01817-1/pdf_index.pkl.zst +0 -0
- /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
- /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
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.1186%2Fs13023-021-02146-z/metadata.json +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.1186%2Fs13023-021-02146-z/pdf_index.pkl.zst +0 -0
- /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
- /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
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.1186%2Fs13023-023-02848-6/metadata.json +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.1186%2Fs13023-023-02848-6/pdf_index.pkl.zst +0 -0
- /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
- /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
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.1186%2Fs13052-019-0692-0/metadata.json +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.1186%2Fs13052-019-0692-0/pdf_index.pkl.zst +0 -0
- /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
- /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
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.3389%2Ffcvm.2022.1061384/metadata.json +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.3389%2Ffcvm.2022.1061384/pdf_index.pkl.zst +0 -0
- /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
- /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
- /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
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.3389%2Ffcvm.2023.1261172/metadata.json +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.3389%2Ffcvm.2023.1261172/pdf_index.pkl.zst +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.3389%2Ffcvm.2023.1261172/supplements/000_Table1.docx +0 -0
- /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
- /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
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.3389%2Ffimmu.2024.1336599/metadata.json +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.3389%2Ffimmu.2024.1336599/pdf_index.pkl.zst +0 -0
- /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
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.3389%2Ffped.2021.729824/metadata.json +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.3389%2Ffped.2021.729824/pdf_index.pkl.zst +0 -0
- /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
- /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
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.3389%2Ffphar.2022.903488/metadata.json +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.3389%2Ffphar.2022.903488/pdf_index.pkl.zst +0 -0
- /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
- /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
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.3390%2Fijns11010016/metadata.json +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.3390%2Fijns11010016/pdf_index.pkl.zst +0 -0
- /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
- /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
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.3390%2Fijns6020031/metadata.json +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/fixtures/papers/10.3390%2Fijns6020031/pdf_index.pkl.zst +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/next-env.d.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/next.config.mjs +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/postcss.config.cjs +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/public/favicon.svg +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/scripts/chat-service.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/scripts/copy-pdfjs-assets.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/scripts/exercise-llm.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/scripts/start.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/components/literature/ProgressLog.tsx +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/db/migrate.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/db/schema.sql +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/lib/chatSessionClient.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/lib/citationResolverClient.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/lib/demoConfig.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/lib/progressEvents.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/lib/runs.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/lib/triageBackendClient.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/lib/triageDb.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/lib/variantId.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/pages/_app.tsx +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/pages/api/aggregate/[variantId]/[category].ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/pages/api/edit-drafts/[variantId]/[category]/[version].ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/pages/api/edit-drafts/[variantId]/[category]/index.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/pages/api/papers/index.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/pages/api/runs/[variantId]/[runId]/progress.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/pages/api/runs/index.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/pages/api/runs/latest.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/pages/api/triage/claim.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/pages/api/triage/comment.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/pages/api/triage/paper-done.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/pages/api/triage/snapshot/[variantId]/[category]/[version].ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/pages/index.tsx +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/pages/variants/[variantId].tsx +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/pages/viewer/[variantId]/[category].tsx +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/src/styles/globals.css +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/tailwind.config.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/test/LiteratureView.test.tsx +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/test/ProgressLog.test.tsx +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/test/aggregate.test.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/test/chat-service.test.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/test/index-page.test.tsx +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/test/progress-route.test.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/test/runs-latest-route.test.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/test/runs-route.test.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/test/runs.test.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/test/setup.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/test/triage.test.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/test/variantId.test.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/tsconfig.json +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo/vitest.config.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo-gateway/README.md +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo-gateway/src/demo_gateway/__init__.py +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo-gateway/src/demo_gateway/config.py +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo-gateway/src/demo_gateway/main.py +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo-gateway/src/demo_gateway/progress.py +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo-gateway/src/demo_gateway/runs.py +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo-gateway/tests/__init__.py +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo-gateway/tests/conftest.py +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo-gateway/tests/test_main.py +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo-gateway/tests/test_progress.py +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/examples/demo-gateway/tests/test_runs.py +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/package.json +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/.gitkeep +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/Dockerfile +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/LICENSE +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/README.md +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/src/audit.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/src/auth/jwt.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/src/auth/oidc.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/src/chat.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/src/cli.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/src/config.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/src/index.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/src/instrumentation.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/src/llm/anthropic.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/src/llm/bedrock.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/src/llm/factory.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/src/llm/google-gla.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/src/llm/google-vertex.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/src/llm/interface.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/src/llm/openai.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/src/prompts.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/src/server.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/src/session.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/src/storage/factory.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/src/storage/fs.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/src/storage/gcs.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/src/storage/interface.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/src/storage/s3.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/src/telemetry.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/src/text.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/test/chat.test.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/test/generic-prompt.test.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/test/llm-factory.test.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/test/oidc.test.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/test/storage-fs.test.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/test/storage-gcs.test.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/test/storage-s3.test.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/test/text.test.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/test/yaml.test.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/tsconfig.build.json +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/tsconfig.json +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/chat-service/vitest.config.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/LICENSE +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/citations/sanitize.test.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/citations/sanitize.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/citations/types.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/llm-content/LlmContent.test.tsx +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/llm-content/LlmContent.tsx +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/markdown-viewer/MarkdownHighlightViewer.test.tsx +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/markdown-viewer/offsets.test.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/markdown-viewer/offsets.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/markdown-viewer/plugins.test.tsx +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/markdown-viewer/plugins.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/pdf-viewer/PdfHighlightViewer.test.tsx +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/pdf-viewer/PdfHighlightViewer.tsx +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/pdf-viewer/types.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/triage/ChatDrawer.test.tsx +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/triage/ChatDrawer.tsx +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/triage/ChatSection.tsx +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/triage/ClaimList.tsx +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/triage/FocusCard.tsx +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/triage/MessageParts.tsx +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/triage/PaperHeader.tsx +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/triage/PaperRail.test.tsx +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/triage/PaperRail.tsx +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/triage/ReasoningStep.tsx +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/triage/SynthesisPanel.tsx +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/triage/ToolStep.tsx +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/triage/backend.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/triage/citation-utils.test.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/triage/citation-utils.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/triage/claim-refs.test.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/triage/claim-refs.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/triage/keyboard.test.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/triage/keyboard.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/triage/store.test.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/triage/store.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/triage/trace-format.test.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/src/triage/trace-format.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/tailwind.config.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/tsconfig.json +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/tsup.config.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/packages/react-viewer/vitest.config.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/pnpm-workspace.yaml +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/prompts/generic/aggregation_edit_prompt.txt +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/prompts/generic/aggregation_edit_schema.ts +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/prompts/generic/aggregation_prompt.txt +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/prompts/generic/aggregation_schema.py +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/prompts/generic/extraction_prompt.txt +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/prompts/generic/extraction_schema.py +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/prompts/generic/transcription_prompt.txt +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/prompts/package.json +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/src/flowa/__init__.py +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/src/flowa/artifact.py +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/src/flowa/cli.py +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/src/flowa/clinvar.py +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/src/flowa/content_validation.py +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/src/flowa/http_retry.py +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/src/flowa/models.py +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/src/flowa/pdf_index_cache.py +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/src/flowa/progress.py +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/src/flowa/prompts/__init__.py +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/src/flowa/py.typed +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/src/flowa/run.py +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/src/flowa/settings.py +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/tests/__init__.py +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/tests/test_content_validation.py +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/tests/test_pdf_index_cache.py +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/tests/test_progress.py +0 -0
- {flowapy-0.3.0 → flowapy-0.4.1}/tests/test_prompts.py +0 -0
- {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
|
-
# -
|
|
16
|
-
#
|
|
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"
|
|
@@ -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
|
|
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
|
|
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
|
+
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]
|
|
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]
|
|
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]
|
|
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]
|
|
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
|
|
170
|
-
# builds pdf_index.pkl.zst). Drop this line to
|
|
171
|
-
# + index and only redo extract + aggregate.
|
|
172
|
-
rm -f papers/*/
|
|
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 `
|
|
211
|
-
`
|
|
212
|
-
`pdf_index.pkl.zst` embeds the PDF's
|
|
213
|
-
index), so it carries the same copyright as
|
|
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) — `
|
|
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
|
-
- `
|
|
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":
|
|
420
|
-
"end":
|
|
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":
|
|
458
|
-
"end":
|
|
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":
|
|
489
|
-
"end":
|
|
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":
|
|
555
|
-
"end":
|
|
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":
|
|
628
|
-
"end":
|
|
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":
|
|
2814
|
-
"end":
|
|
2813
|
+
"start": 6304,
|
|
2814
|
+
"end": 6461
|
|
2815
2815
|
}
|
|
2816
2816
|
}
|
|
2817
2817
|
},
|