calkit-python 0.47.7__tar.gz → 0.47.8__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 (1073) hide show
  1. {calkit_python-0.47.7 → calkit_python-0.47.8}/PKG-INFO +1 -1
  2. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/cli/latex.py +158 -45
  3. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/models/pipeline.py +8 -1
  4. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/pipeline.py +27 -2
  5. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/cli/test_latex.py +56 -4
  6. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/models/test_pipeline.py +2 -1
  7. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/test_pipeline.py +27 -0
  8. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/cli-reference.md +1 -1
  9. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/latex.md +21 -8
  10. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/pipeline/index.md +2 -1
  11. {calkit_python-0.47.7/vscode-ext → calkit_python-0.47.8/docs}/schemas/calkit.json +7 -1
  12. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/api/routes/projects/core.py +70 -0
  13. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/models/core.py +15 -0
  14. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/tests/api/routes/projects/test_publications.py +91 -0
  15. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/client/index.ts +1 -0
  16. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/client/schemas.gen.ts +75 -0
  17. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/client/types.gen.ts +40 -0
  18. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Common/ArtifactCompareModal.tsx +98 -15
  19. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/publications.tsx +80 -5
  20. {calkit_python-0.47.7 → calkit_python-0.47.8}/vscode-ext/package.json +25 -0
  21. {calkit_python-0.47.7/docs → calkit_python-0.47.8/vscode-ext}/schemas/calkit.json +7 -1
  22. {calkit_python-0.47.7 → calkit_python-0.47.8}/vscode-ext/src/extension.ts +152 -0
  23. calkit_python-0.47.8/vscode-ext/src/latex/core.ts +27 -0
  24. calkit_python-0.47.8/vscode-ext/src/test/latex.test.ts +20 -0
  25. {calkit_python-0.47.7 → calkit_python-0.47.8}/.claude-plugin/marketplace.json +0 -0
  26. {calkit_python-0.47.7 → calkit_python-0.47.8}/.dockerignore +0 -0
  27. {calkit_python-0.47.7 → calkit_python-0.47.8}/.gitattributes +0 -0
  28. {calkit_python-0.47.7 → calkit_python-0.47.8}/.gitignore +0 -0
  29. {calkit_python-0.47.7 → calkit_python-0.47.8}/.gitmodules +0 -0
  30. {calkit_python-0.47.7 → calkit_python-0.47.8}/.pre-commit-config.yaml +0 -0
  31. {calkit_python-0.47.7 → calkit_python-0.47.8}/.prettierignore +0 -0
  32. {calkit_python-0.47.7 → calkit_python-0.47.8}/.prettierrc.json +0 -0
  33. {calkit_python-0.47.7 → calkit_python-0.47.8}/.python-version +0 -0
  34. {calkit_python-0.47.7 → calkit_python-0.47.8}/.vscode/launch.json +0 -0
  35. {calkit_python-0.47.7 → calkit_python-0.47.8}/.vscode/tasks.json +0 -0
  36. {calkit_python-0.47.7 → calkit_python-0.47.8}/AGENTS.md +0 -0
  37. {calkit_python-0.47.7 → calkit_python-0.47.8}/CITATION.cff +0 -0
  38. {calkit_python-0.47.7 → calkit_python-0.47.8}/CODE_OF_CONDUCT.md +0 -0
  39. {calkit_python-0.47.7 → calkit_python-0.47.8}/CONTRIBUTING.md +0 -0
  40. {calkit_python-0.47.7 → calkit_python-0.47.8}/LICENSE +0 -0
  41. {calkit_python-0.47.7 → calkit_python-0.47.8}/Makefile +0 -0
  42. {calkit_python-0.47.7 → calkit_python-0.47.8}/README.md +0 -0
  43. {calkit_python-0.47.7 → calkit_python-0.47.8}/actions/run/README.md +0 -0
  44. {calkit_python-0.47.7 → calkit_python-0.47.8}/actions/run/action.yml +0 -0
  45. {calkit_python-0.47.7 → calkit_python-0.47.8}/actions/run/example.yml +0 -0
  46. {calkit_python-0.47.7 → calkit_python-0.47.8}/agent-plugin/.claude-plugin/plugin.json +0 -0
  47. {calkit_python-0.47.7 → calkit_python-0.47.8}/agent-plugin/skills/add-pipeline-stage/SKILL.md +0 -0
  48. {calkit_python-0.47.7 → calkit_python-0.47.8}/agent-plugin/skills/build-paper-pipeline/SKILL.md +0 -0
  49. {calkit_python-0.47.7 → calkit_python-0.47.8}/agent-plugin/skills/check-questions/SKILL.md +0 -0
  50. {calkit_python-0.47.7 → calkit_python-0.47.8}/agent-plugin/skills/check-reproducibility/SKILL.md +0 -0
  51. {calkit_python-0.47.7 → calkit_python-0.47.8}/agent-plugin/skills/conventions/SKILL.md +0 -0
  52. {calkit_python-0.47.7 → calkit_python-0.47.8}/agent-plugin/skills/create-pipeline/SKILL.md +0 -0
  53. {calkit_python-0.47.7 → calkit_python-0.47.8}/assistant/.gitignore +0 -0
  54. {calkit_python-0.47.7 → calkit_python-0.47.8}/assistant/.python-version +0 -0
  55. {calkit_python-0.47.7 → calkit_python-0.47.8}/assistant/Makefile +0 -0
  56. {calkit_python-0.47.7 → calkit_python-0.47.8}/assistant/README.md +0 -0
  57. {calkit_python-0.47.7 → calkit_python-0.47.8}/assistant/main.py +0 -0
  58. {calkit_python-0.47.7 → calkit_python-0.47.8}/assistant/pyproject.toml +0 -0
  59. {calkit_python-0.47.7 → calkit_python-0.47.8}/assistant/resources/icon.ico +0 -0
  60. {calkit_python-0.47.7 → calkit_python-0.47.8}/assistant/resources/screenshot.png +0 -0
  61. {calkit_python-0.47.7 → calkit_python-0.47.8}/assistant/tests/test_main.py +0 -0
  62. {calkit_python-0.47.7 → calkit_python-0.47.8}/assistant/uv.lock +0 -0
  63. {calkit_python-0.47.7 → calkit_python-0.47.8}/browser-ext/.gitignore +0 -0
  64. {calkit_python-0.47.7 → calkit_python-0.47.8}/browser-ext/README.md +0 -0
  65. {calkit_python-0.47.7 → calkit_python-0.47.8}/browser-ext/options.html +0 -0
  66. {calkit_python-0.47.7 → calkit_python-0.47.8}/browser-ext/package-lock.json +0 -0
  67. {calkit_python-0.47.7 → calkit_python-0.47.8}/browser-ext/package.json +0 -0
  68. {calkit_python-0.47.7 → calkit_python-0.47.8}/browser-ext/popup.html +0 -0
  69. {calkit_python-0.47.7 → calkit_python-0.47.8}/browser-ext/public/icons/calkit-128.png +0 -0
  70. {calkit_python-0.47.7 → calkit_python-0.47.8}/browser-ext/public/icons/calkit-16.png +0 -0
  71. {calkit_python-0.47.7 → calkit_python-0.47.8}/browser-ext/public/icons/calkit-32.png +0 -0
  72. {calkit_python-0.47.7 → calkit_python-0.47.8}/browser-ext/public/icons/calkit-48.png +0 -0
  73. {calkit_python-0.47.7 → calkit_python-0.47.8}/browser-ext/public/icons/calkit.svg +0 -0
  74. {calkit_python-0.47.7 → calkit_python-0.47.8}/browser-ext/public/manifest.json +0 -0
  75. {calkit_python-0.47.7 → calkit_python-0.47.8}/browser-ext/scripts/build-content.mjs +0 -0
  76. {calkit_python-0.47.7 → calkit_python-0.47.8}/browser-ext/scripts/package-manifest.mjs +0 -0
  77. {calkit_python-0.47.7 → calkit_python-0.47.8}/browser-ext/scripts/store-screenshots.py +0 -0
  78. {calkit_python-0.47.7 → calkit_python-0.47.8}/browser-ext/scripts/watch.mjs +0 -0
  79. {calkit_python-0.47.7 → calkit_python-0.47.8}/browser-ext/src/background/index.ts +0 -0
  80. {calkit_python-0.47.7 → calkit_python-0.47.8}/browser-ext/src/content/github.ts +0 -0
  81. {calkit_python-0.47.7 → calkit_python-0.47.8}/browser-ext/src/content/overleaf.ts +0 -0
  82. {calkit_python-0.47.7 → calkit_python-0.47.8}/browser-ext/src/content/references.ts +0 -0
  83. {calkit_python-0.47.7 → calkit_python-0.47.8}/browser-ext/src/core/api.ts +0 -0
  84. {calkit_python-0.47.7 → calkit_python-0.47.8}/browser-ext/src/core/auth.ts +0 -0
  85. {calkit_python-0.47.7 → calkit_python-0.47.8}/browser-ext/src/core/calkit-yaml.test.ts +0 -0
  86. {calkit_python-0.47.7 → calkit_python-0.47.8}/browser-ext/src/core/calkit-yaml.ts +0 -0
  87. {calkit_python-0.47.7 → calkit_python-0.47.8}/browser-ext/src/core/detect.test.ts +0 -0
  88. {calkit_python-0.47.7 → calkit_python-0.47.8}/browser-ext/src/core/detect.ts +0 -0
  89. {calkit_python-0.47.7 → calkit_python-0.47.8}/browser-ext/src/core/hub-url.ts +0 -0
  90. {calkit_python-0.47.7 → calkit_python-0.47.8}/browser-ext/src/core/hubs.test.ts +0 -0
  91. {calkit_python-0.47.7 → calkit_python-0.47.8}/browser-ext/src/core/hubs.ts +0 -0
  92. {calkit_python-0.47.7 → calkit_python-0.47.8}/browser-ext/src/core/latex.test.ts +0 -0
  93. {calkit_python-0.47.7 → calkit_python-0.47.8}/browser-ext/src/core/latex.ts +0 -0
  94. {calkit_python-0.47.7 → calkit_python-0.47.8}/browser-ext/src/core/lifecycle.ts +0 -0
  95. {calkit_python-0.47.7 → calkit_python-0.47.8}/browser-ext/src/core/messages.test.ts +0 -0
  96. {calkit_python-0.47.7 → calkit_python-0.47.8}/browser-ext/src/core/messages.ts +0 -0
  97. {calkit_python-0.47.7 → calkit_python-0.47.8}/browser-ext/src/core/pickers.ts +0 -0
  98. {calkit_python-0.47.7 → calkit_python-0.47.8}/browser-ext/src/core/storage.ts +0 -0
  99. {calkit_python-0.47.7 → calkit_python-0.47.8}/browser-ext/src/core/types.ts +0 -0
  100. {calkit_python-0.47.7 → calkit_python-0.47.8}/browser-ext/src/core/ui.test.ts +0 -0
  101. {calkit_python-0.47.7 → calkit_python-0.47.8}/browser-ext/src/core/ui.ts +0 -0
  102. {calkit_python-0.47.7 → calkit_python-0.47.8}/browser-ext/src/options/options.ts +0 -0
  103. {calkit_python-0.47.7 → calkit_python-0.47.8}/browser-ext/src/popup/popup.css +0 -0
  104. {calkit_python-0.47.7 → calkit_python-0.47.8}/browser-ext/src/popup/popup.ts +0 -0
  105. {calkit_python-0.47.7 → calkit_python-0.47.8}/browser-ext/src/viewer/viewer.ts +0 -0
  106. {calkit_python-0.47.7 → calkit_python-0.47.8}/browser-ext/tsconfig.json +0 -0
  107. {calkit_python-0.47.7 → calkit_python-0.47.8}/browser-ext/viewer.html +0 -0
  108. {calkit_python-0.47.7 → calkit_python-0.47.8}/browser-ext/vite.config.ts +0 -0
  109. {calkit_python-0.47.7 → calkit_python-0.47.8}/browser-ext/vite.content.config.ts +0 -0
  110. {calkit_python-0.47.7 → calkit_python-0.47.8}/browser-ext/vitest.config.ts +0 -0
  111. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/__init__.py +0 -0
  112. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/__main__.py +0 -0
  113. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/calc.py +0 -0
  114. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/cli/__init__.py +0 -0
  115. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/cli/check.py +0 -0
  116. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/cli/config.py +0 -0
  117. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/cli/core.py +0 -0
  118. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/cli/delete.py +0 -0
  119. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/cli/describe.py +0 -0
  120. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/cli/dev.py +0 -0
  121. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/cli/hub.py +0 -0
  122. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/cli/import_.py +0 -0
  123. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/cli/list.py +0 -0
  124. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/cli/main/__init__.py +0 -0
  125. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/cli/main/core.py +0 -0
  126. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/cli/main/xr.py +0 -0
  127. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/cli/new.py +0 -0
  128. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/cli/notebooks.py +0 -0
  129. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/cli/office.py +0 -0
  130. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/cli/overleaf.py +0 -0
  131. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/cli/scheduler.py +0 -0
  132. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/cli/sync.py +0 -0
  133. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/cli/update.py +0 -0
  134. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/conda.py +0 -0
  135. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/config.py +0 -0
  136. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/core.py +0 -0
  137. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/datasets.py +0 -0
  138. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/dependencies.py +0 -0
  139. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/detect.py +0 -0
  140. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/docker.py +0 -0
  141. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/docx.py +0 -0
  142. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/dvc/__init__.py +0 -0
  143. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/dvc/core.py +0 -0
  144. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/dvc/zip.py +0 -0
  145. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/environments.py +0 -0
  146. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/fs.py +0 -0
  147. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/git.py +0 -0
  148. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/github.py +0 -0
  149. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/gui.py +0 -0
  150. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/hub.py +0 -0
  151. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/install.py +0 -0
  152. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/invenio.py +0 -0
  153. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/julia.py +0 -0
  154. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/jupyter.py +0 -0
  155. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/jupyterlab/__init__.py +0 -0
  156. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/jupyterlab/routes.py +0 -0
  157. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/labextension/package.json +0 -0
  158. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/labextension/schemas/calkit/package.json.orig +0 -0
  159. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/labextension/schemas/calkit/plugin.json +0 -0
  160. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/labextension/static/506.c34b070098184e33.js +0 -0
  161. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/labextension/static/57d13a7399cec3c5.png +0 -0
  162. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/labextension/static/616.528427eb54a4a0c0.js +0 -0
  163. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/labextension/static/740.6bf87276e9e5788a.js +0 -0
  164. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/labextension/static/899.f9b9f9bf705a6493.js +0 -0
  165. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/labextension/static/935.46ecc6bf99aa593a.js +0 -0
  166. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/labextension/static/remoteEntry.109a3a8379365e59.js +0 -0
  167. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/labextension/static/style.js +0 -0
  168. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/labextension/static/third-party-licenses.json +0 -0
  169. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/latex.py +0 -0
  170. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/licenses.py +0 -0
  171. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/magics.py +0 -0
  172. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/markdown.py +0 -0
  173. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/matlab.py +0 -0
  174. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/models/__init__.py +0 -0
  175. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/models/core.py +0 -0
  176. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/models/docx.py +0 -0
  177. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/models/io.py +0 -0
  178. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/models/iteration.py +0 -0
  179. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/notebooks.py +0 -0
  180. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/office.py +0 -0
  181. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/ops.py +0 -0
  182. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/overleaf.py +0 -0
  183. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/procedures.py +0 -0
  184. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/provenance.py +0 -0
  185. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/questions.py +0 -0
  186. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/releases.py +0 -0
  187. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/reproducibility.py +0 -0
  188. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/resources/README.md +0 -0
  189. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/resources/__init__.py +0 -0
  190. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/resources/devcontainer/Dockerfile +0 -0
  191. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/resources/devcontainer/README.md +0 -0
  192. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/resources/devcontainer/base.json +0 -0
  193. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/resources/devcontainer/devcontainer.json +0 -0
  194. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/resources/devcontainer/scripts/check-envs.sh +0 -0
  195. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/resources/devcontainer/scripts/post-create.sh +0 -0
  196. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/resources/devcontainer/scripts/post-start.sh +0 -0
  197. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/resources/devcontainer/scripts/update-content.sh +0 -0
  198. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/resources/github-actions/example.yml +0 -0
  199. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/resources/vscode/README.md +0 -0
  200. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/resources/vscode/extensions.json +0 -0
  201. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/resources/vscode/settings.json +0 -0
  202. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/schema.py +0 -0
  203. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/server.py +0 -0
  204. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/templates/__init__.py +0 -0
  205. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/templates/core.py +0 -0
  206. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/templates/latex/__init__.py +0 -0
  207. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/templates/latex/article/paper.tex +0 -0
  208. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/templates/latex/core.py +0 -0
  209. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/templates/latex/ieee-conference/paper.tex +0 -0
  210. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/templates/latex/jfm/jfm.bst +0 -0
  211. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/templates/latex/jfm/jfm.cls +0 -0
  212. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/templates/latex/jfm/lineno-FLM.sty +0 -0
  213. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/templates/latex/jfm/paper.tex +0 -0
  214. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/templates/latex/jfm/upmath.sty +0 -0
  215. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/templates/latex/report/paper.tex +0 -0
  216. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/__init__.py +0 -0
  217. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/cli/__init__.py +0 -0
  218. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/cli/main/__init__.py +0 -0
  219. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/cli/main/test_core.py +0 -0
  220. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/cli/main/test_lock.py +0 -0
  221. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/cli/main/test_subprojects.py +0 -0
  222. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/cli/main/test_xr.py +0 -0
  223. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/cli/test_check.py +0 -0
  224. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/cli/test_config.py +0 -0
  225. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/cli/test_core.py +0 -0
  226. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/cli/test_delete.py +0 -0
  227. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/cli/test_describe.py +0 -0
  228. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/cli/test_hub.py +0 -0
  229. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/cli/test_import.py +0 -0
  230. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/cli/test_list.py +0 -0
  231. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/cli/test_new.py +0 -0
  232. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/cli/test_notebooks.py +0 -0
  233. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/cli/test_overleaf.py +0 -0
  234. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/cli/test_scheduler.py +0 -0
  235. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/cli/test_sync.py +0 -0
  236. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/cli/test_update.py +0 -0
  237. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/dvc/__init__.py +0 -0
  238. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/dvc/test_core.py +0 -0
  239. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/dvc/test_zip.py +0 -0
  240. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/jupyterlab/__init__.py +0 -0
  241. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/jupyterlab/conftest.py +0 -0
  242. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/jupyterlab/test_routes.py +0 -0
  243. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/models/__init__.py +0 -0
  244. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/models/test_core.py +0 -0
  245. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/models/test_iteration.py +0 -0
  246. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/test_calc.py +0 -0
  247. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/test_conda.py +0 -0
  248. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/test_config.py +0 -0
  249. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/test_core.py +0 -0
  250. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/test_dependencies.py +0 -0
  251. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/test_detect.py +0 -0
  252. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/test_docker.py +0 -0
  253. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/test_docs_references.py +0 -0
  254. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/test_docx.py +0 -0
  255. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/test_environments.py +0 -0
  256. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/test_fs.py +0 -0
  257. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/test_git.py +0 -0
  258. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/test_hub.py +0 -0
  259. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/test_install.py +0 -0
  260. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/test_invenio.py +0 -0
  261. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/test_julia.py +0 -0
  262. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/test_jupyter.py +0 -0
  263. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/test_keyring_windows.py +0 -0
  264. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/test_licenses.py +0 -0
  265. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/test_magics.py +0 -0
  266. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/test_markdown.py +0 -0
  267. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/test_matlab.py +0 -0
  268. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/test_models.py +0 -0
  269. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/test_notebooks.py +0 -0
  270. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/test_overleaf.py +0 -0
  271. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/test_procedures.py +0 -0
  272. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/test_provenance.py +0 -0
  273. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/test_questions.py +0 -0
  274. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/test_releases.py +0 -0
  275. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/test_reproducibility.py +0 -0
  276. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/test_resources.py +0 -0
  277. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/test_schema.py +0 -0
  278. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/test_templates.py +0 -0
  279. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/tests/test_workspace.py +0 -0
  280. {calkit_python-0.47.7 → calkit_python-0.47.8}/calkit/workspace.py +0 -0
  281. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/CNAME +0 -0
  282. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/acknowledgements.md +0 -0
  283. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/ai-tools.md +0 -0
  284. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/apps.md +0 -0
  285. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/browser-ext/index.md +0 -0
  286. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/browser-ext/privacy.md +0 -0
  287. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/calculations.md +0 -0
  288. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/calkit-yaml.md +0 -0
  289. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/cloud-integration.md +0 -0
  290. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/comparisons.md +0 -0
  291. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/datasets.md +0 -0
  292. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/dev/latex-word.md +0 -0
  293. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/environments.md +0 -0
  294. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/examples.md +0 -0
  295. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/governance.md +0 -0
  296. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/help.md +0 -0
  297. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/hpc.md +0 -0
  298. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/hub/index.md +0 -0
  299. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/hub/self-hosting.md +0 -0
  300. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/img/c-to-the-k-white.svg +0 -0
  301. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/img/calkit-fragmentation-compendium.png +0 -0
  302. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/img/calkit-no-bg.png +0 -0
  303. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/img/caltech.png +0 -0
  304. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/img/connect-zenodo.png +0 -0
  305. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/img/jupyterlab/all-green.png +0 -0
  306. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/img/jupyterlab/collect-data-stale.png +0 -0
  307. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/img/jupyterlab/new-env.png +0 -0
  308. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/img/jupyterlab/new-notebook.png +0 -0
  309. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/img/jupyterlab/pipeline-badge.png +0 -0
  310. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/img/jupyterlab-params.png +0 -0
  311. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/img/pipeline.png +0 -0
  312. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/img/plos-osi-code-2024-03.png +0 -0
  313. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/img/schmidt-sciences.png +0 -0
  314. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/img/vscode-nb-params.png +0 -0
  315. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/index.md +0 -0
  316. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/installation.md +0 -0
  317. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/jupyterlab.md +0 -0
  318. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/local-server.md +0 -0
  319. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/notebooks.md +0 -0
  320. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/overleaf.md +0 -0
  321. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/pipeline/manual-steps.md +0 -0
  322. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/pipeline/markdown.md +0 -0
  323. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/pipeline/running-and-logging.md +0 -0
  324. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/privacy.md +0 -0
  325. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/provenance.md +0 -0
  326. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/questions.md +0 -0
  327. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/quickstart.md +0 -0
  328. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/references.md +0 -0
  329. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/releases.md +0 -0
  330. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/reproducibility.md +0 -0
  331. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/requirements.md +0 -0
  332. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/subprojects.md +0 -0
  333. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/adding-latex-pub-docker.md +0 -0
  334. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/ai-agents.md +0 -0
  335. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/conda-envs.md +0 -0
  336. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/existing-project.md +0 -0
  337. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/first-project.md +0 -0
  338. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/github-actions.md +0 -0
  339. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/img/actions-repo-secrets.png +0 -0
  340. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/img/latex-codespaces/building-codespace.png +0 -0
  341. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/img/latex-codespaces/codespaces-secrets-2.png +0 -0
  342. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/img/latex-codespaces/editor-split.png +0 -0
  343. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/img/latex-codespaces/go-to-linked-code.png +0 -0
  344. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/img/latex-codespaces/issue-from-selection.png +0 -0
  345. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/img/latex-codespaces/new-project.png +0 -0
  346. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/img/latex-codespaces/new-pub-2.png +0 -0
  347. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/img/latex-codespaces/new-token.png +0 -0
  348. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/img/latex-codespaces/paper.tex.png +0 -0
  349. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/img/latex-codespaces/project-home-3.png +0 -0
  350. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/img/latex-codespaces/push.png +0 -0
  351. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/img/latex-codespaces/stage.png +0 -0
  352. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/img/office/anakin-excel.jpg +0 -0
  353. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/img/office/chart-more-rows.png +0 -0
  354. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/img/office/create-project.png +0 -0
  355. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/img/office/elsevier-research-data-guidelines.png +0 -0
  356. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/img/office/excel-chart.png +0 -0
  357. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/img/office/excel-data.png +0 -0
  358. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/img/office/insert-link-to-file.png +0 -0
  359. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/img/office/needs-clone.png +0 -0
  360. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/img/office/new-stage.png +0 -0
  361. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/img/office/phd-comics-version-control.webp +0 -0
  362. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/img/office/pipeline-out-of-date.png +0 -0
  363. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/img/office/status-more-rows.png +0 -0
  364. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/img/office/uncommitted-changes.png +0 -0
  365. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/img/office/untracked-data.png +0 -0
  366. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/img/office/updated-publication.png +0 -0
  367. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/img/office/word-to-pdf-stage-2.png +0 -0
  368. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/img/office/workflow-page.png +0 -0
  369. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/img/openfoam/clone.png +0 -0
  370. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/img/openfoam/create-project.png +0 -0
  371. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/img/openfoam/datasets-page.png +0 -0
  372. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/img/openfoam/figure-on-website-updated.png +0 -0
  373. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/img/openfoam/figure-on-website.png +0 -0
  374. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/img/openfoam/new-token.png +0 -0
  375. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/img/openfoam/reclone.png +0 -0
  376. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/img/openfoam/status-after-import-dataset.png +0 -0
  377. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/img/quick-actions.png +0 -0
  378. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/img/run-proc.png +0 -0
  379. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/img/vscode-slurm-notebook/create-calkit-env.png +0 -0
  380. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/img/vscode-slurm-notebook/create-inner-env.png +0 -0
  381. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/img/vscode-slurm-notebook/create-new-calkit-env.png +0 -0
  382. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/img/vscode-slurm-notebook/select-calkit-env.png +0 -0
  383. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/img/vscode-slurm-notebook/slurm-job-running.png +0 -0
  384. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/img/vscode-slurm-notebook/slurm-launch-options.png +0 -0
  385. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/img/vscode-slurm-notebook/starting-slurm-job.png +0 -0
  386. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/index.md +0 -0
  387. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/jupyterlab.md +0 -0
  388. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/latex-codespaces.md +0 -0
  389. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/latex-word.md +0 -0
  390. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/matlab.md +0 -0
  391. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/notebook-pipeline.md +0 -0
  392. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/office.md +0 -0
  393. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/openfoam.md +0 -0
  394. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/procedures.md +0 -0
  395. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/runnable-readme.md +0 -0
  396. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/vscode-slurm-notebook.md +0 -0
  397. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/tutorials/writing-first.md +0 -0
  398. {calkit_python-0.47.7 → calkit_python-0.47.8}/docs/version-control.md +0 -0
  399. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/harbor-tb-science/.gitignore +0 -0
  400. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/harbor-tb-science/README.md +0 -0
  401. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/harbor-tb-science/overlay-authoring/.gitignore +0 -0
  402. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/harbor-tb-science/overlay-authoring/authoring/Dockerfile +0 -0
  403. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/harbor-tb-science/overlay-authoring/calkit.yaml +0 -0
  404. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/harbor-tb-science/overlay-variant/solution/calkit.yaml +0 -0
  405. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/harbor-tb-science/overlay-variant/solution/make_design_report.py +0 -0
  406. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/harbor-tb-science/overlay-variant/solution/solve.sh +0 -0
  407. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/harbor-tb-science/overlay-variant/tests/test_calkit.py +0 -0
  408. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/harbor-tb-science/patch_variant.py +0 -0
  409. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/harbor-tb-science/setup.sh +0 -0
  410. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/harbor-tb-science/tamper.sh +0 -0
  411. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/latex-word/.calkit/env-locks/py/osx-arm64.txt +0 -0
  412. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/latex-word/.calkit/env-locks/py/win-64.txt +0 -0
  413. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/latex-word/.calkit/env-locks/tex/amd64.json +0 -0
  414. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/latex-word/.calkit/env-locks/tex/arm64.json +0 -0
  415. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/latex-word/.dvc/.gitignore +0 -0
  416. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/latex-word/.dvc/config +0 -0
  417. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/latex-word/.dvcignore +0 -0
  418. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/latex-word/.gitattributes +0 -0
  419. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/latex-word/.gitignore +0 -0
  420. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/latex-word/README.md +0 -0
  421. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/latex-word/calkit.yaml +0 -0
  422. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/latex-word/dvc.lock +0 -0
  423. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/latex-word/dvc.yaml +0 -0
  424. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/latex-word/figures/.gitignore +0 -0
  425. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/latex-word/paper/.gitignore +0 -0
  426. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/latex-word/paper/figures/.gitignore +0 -0
  427. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/latex-word/paper/main.tex +0 -0
  428. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/latex-word/paper/methods.tex +0 -0
  429. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/latex-word/paper/refs.bib +0 -0
  430. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/latex-word/requirements.txt +0 -0
  431. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/latex-word/scripts/plot-wake.py +0 -0
  432. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/markdown/.calkit/envs/jl/Manifest.toml +0 -0
  433. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/markdown/.calkit/envs/jl/Project.toml +0 -0
  434. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/markdown/.calkit/envs/py/.python-version +0 -0
  435. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/markdown/.calkit/envs/py/pyproject.toml +0 -0
  436. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/markdown/.calkit/envs/py/uv.lock +0 -0
  437. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/markdown/.calkit/envs/r/.Rbuildignore +0 -0
  438. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/markdown/.calkit/envs/r/.Rprofile +0 -0
  439. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/markdown/.calkit/envs/r/DESCRIPTION +0 -0
  440. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/markdown/.calkit/envs/r/renv/.gitignore +0 -0
  441. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/markdown/.calkit/envs/r/renv/activate.R +0 -0
  442. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/markdown/.calkit/envs/r/renv/settings.json +0 -0
  443. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/markdown/.calkit/envs/r/renv.lock +0 -0
  444. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/markdown/.dvc/.gitignore +0 -0
  445. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/markdown/.dvc/config +0 -0
  446. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/markdown/.dvcignore +0 -0
  447. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/markdown/.gitignore +0 -0
  448. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/markdown/README.md +0 -0
  449. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/markdown/calkit.yaml +0 -0
  450. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/markdown/data/data.csv +0 -0
  451. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/markdown/data/data2.csv +0 -0
  452. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/markdown/dvc.lock +0 -0
  453. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/markdown/dvc.yaml +0 -0
  454. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/markdown/figures/data2.png +0 -0
  455. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/markdown/figures/figure.png +0 -0
  456. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/markdown/results/fit.json +0 -0
  457. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/markdown-python/.dvc/.gitignore +0 -0
  458. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/markdown-python/.dvc/config +0 -0
  459. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/markdown-python/.dvcignore +0 -0
  460. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/markdown-python/.gitignore +0 -0
  461. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/markdown-python/.python-version +0 -0
  462. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/markdown-python/README.md +0 -0
  463. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/markdown-python/calkit.yaml +0 -0
  464. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/markdown-python/dvc.lock +0 -0
  465. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/markdown-python/dvc.yaml +0 -0
  466. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/markdown-python/figures/waves.png +0 -0
  467. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/markdown-python/pyproject.toml +0 -0
  468. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/markdown-python/src/wavetools/__init__.py +0 -0
  469. {calkit_python-0.47.7 → calkit_python-0.47.8}/examples/markdown-python/uv.lock +0 -0
  470. {calkit_python-0.47.7 → calkit_python-0.47.8}/flake.lock +0 -0
  471. {calkit_python-0.47.7 → calkit_python-0.47.8}/flake.nix +0 -0
  472. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/.env.example +0 -0
  473. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/.gitattributes +0 -0
  474. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/.gitignore +0 -0
  475. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/.vscode/launch.json +0 -0
  476. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/AGENTS.md +0 -0
  477. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/LICENSE +0 -0
  478. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/Makefile +0 -0
  479. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/README.md +0 -0
  480. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/.gitignore +0 -0
  481. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/.python-version +0 -0
  482. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/Dockerfile +0 -0
  483. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/Makefile +0 -0
  484. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/README.md +0 -0
  485. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/alembic.ini +0 -0
  486. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/__init__.py +0 -0
  487. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/alembic/README +0 -0
  488. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/alembic/env.py +0 -0
  489. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/alembic/script.py.mako +0 -0
  490. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/alembic/versions/.keep +0 -0
  491. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/alembic/versions/07c8236476c4_add_fields_to_usertoken.py +0 -0
  492. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/alembic/versions/10a05eaedfbd_add_dataset_table.py +0 -0
  493. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/alembic/versions/1546aa334cd5_make_project_description_nullable.py +0 -0
  494. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/alembic/versions/1a31ce608336_add_cascade_delete_relationships.py +0 -0
  495. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/alembic/versions/1fb6e38eb0e9_add_deviceauth_table.py +0 -0
  496. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/alembic/versions/208e7457f3ba_add_title_to_project.py +0 -0
  497. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/alembic/versions/2e7c25a00842_add_is_public_to_project.py +0 -0
  498. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/alembic/versions/38e178698db2_update_subscription_model_to_use_plan_.py +0 -0
  499. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/alembic/versions/3b1e67e9c318_add_usertoken_table.py +0 -0
  500. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/alembic/versions/4dac15c0282a_add_stripe_customer_id_to_user.py +0 -0
  501. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/alembic/versions/4e1c917fcca4_add_status_columns_to_project_table.py +0 -0
  502. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/alembic/versions/5ba89308431f_add_project_table.py +0 -0
  503. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/alembic/versions/5d6f8217c890_add_subscriber_user_id_to_org_.py +0 -0
  504. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/alembic/versions/65b2d15cc702_add_github_username_field_to_user.py +0 -0
  505. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/alembic/versions/697c3c1a8a27_add_git_repo_url_to_project.py +0 -0
  506. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/alembic/versions/6f3a3afbea8b_add_number_field_to_question.py +0 -0
  507. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/alembic/versions/7076d9b5c887_use_account_for_project_owner.py +0 -0
  508. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/alembic/versions/71e1d1e69bbd_add_table_for_storing_user_github_tokens.py +0 -0
  509. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/alembic/versions/799476973bce_add_created_ts_to_user_github_token_.py +0 -0
  510. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/alembic/versions/7cacee34034c_add_parent_child_relationship_to_.py +0 -0
  511. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/alembic/versions/97762605447f_add_onboarding_flags_and_feedback.py +0 -0
  512. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/alembic/versions/9c0a54914c78_add_max_length_for_string_varchar_.py +0 -0
  513. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/alembic/versions/9c4f70636d73_add_fields_to_usertoken.py +0 -0
  514. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/alembic/versions/a333fc5aa994_index_project_folders_synced_with_.py +0 -0
  515. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/alembic/versions/a4af19842927_create_table_to_store_user_zenodo_tokens.py +0 -0
  516. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/alembic/versions/ab7816be480b_drop_items.py +0 -0
  517. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/alembic/versions/ac622559475f_save_timestamps_for_github_token_.py +0 -0
  518. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/alembic/versions/af024967630d_lowercase_account_names.py +0 -0
  519. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/alembic/versions/c1f9a3e27d48_consolidate_comment_tables.py +0 -0
  520. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/alembic/versions/c46a78ba506c_add_created_column_to_account.py +0 -0
  521. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/alembic/versions/c4e1d7a92b35_add_analytics_consent_to_user.py +0 -0
  522. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/alembic/versions/c749b39072d3_add_figurecomment.py +0 -0
  523. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/alembic/versions/c7c41c3f0d22_add_user_external_credential_table.py +0 -0
  524. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/alembic/versions/d01ce914143d_make_question_a_table.py +0 -0
  525. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/alembic/versions/d21ed1c9537e_add_zenodo_user_id_column_to_user.py +0 -0
  526. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/alembic/versions/d3a8021fb433_add_table_for_user_project_access.py +0 -0
  527. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/alembic/versions/d4e5f6a7b8c9_ghless_membership_and_invitations.py +0 -0
  528. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/alembic/versions/d6366015af35_add_discount_code_table.py +0 -0
  529. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/alembic/versions/d98dd8ec85a3_edit_replace_id_integers_in_all_models_.py +0 -0
  530. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/alembic/versions/dcef842dee10_add_refreshtoken_table.py +0 -0
  531. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/alembic/versions/e1b0fa2a6d34_backfill_external_credentials_from_legacy_.py +0 -0
  532. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/alembic/versions/e2412789c190_initialize_models.py +0 -0
  533. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/alembic/versions/e7671197c00b_add_account_table.py +0 -0
  534. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/alembic/versions/ed74edb0a9e6_create_table_for_user_overleaf_token.py +0 -0
  535. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/alembic/versions/edcabfca98df_add_subscription_and_org_membership_.py +0 -0
  536. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/alembic/versions/f0e23e048b1b_add_fields_to_project.py +0 -0
  537. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/alembic/versions/f3a9c1b7e240_add_releases_feature.py +0 -0
  538. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/alembic/versions/f5ad6445ad03_enable_user_project_access_to_be_null.py +0 -0
  539. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/alembic/versions/f74a96172dbd_add_table_for_locking_project_files.py +0 -0
  540. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/api/__init__.py +0 -0
  541. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/api/deps.py +0 -0
  542. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/api/main.py +0 -0
  543. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/api/routes/__init__.py +0 -0
  544. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/api/routes/accounts.py +0 -0
  545. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/api/routes/datasets.py +0 -0
  546. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/api/routes/feedback.py +0 -0
  547. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/api/routes/login.py +0 -0
  548. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/api/routes/misc.py +0 -0
  549. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/api/routes/orgs.py +0 -0
  550. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/api/routes/projects/__init__.py +0 -0
  551. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/api/routes/projects/activity.py +0 -0
  552. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/api/routes/projects/datasets.py +0 -0
  553. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/api/routes/projects/dvc.py +0 -0
  554. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/api/routes/projects/figures.py +0 -0
  555. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/api/routes/projects/fs.py +0 -0
  556. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/api/routes/projects/pipeline.py +0 -0
  557. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/api/routes/projects/releases.py +0 -0
  558. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/api/routes/references.py +0 -0
  559. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/api/routes/users.py +0 -0
  560. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/arxiv.py +0 -0
  561. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/cache.py +0 -0
  562. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/client.py +0 -0
  563. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/config.py +0 -0
  564. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/core.py +0 -0
  565. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/db.py +0 -0
  566. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/dvc.py +0 -0
  567. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/email-templates/build/new_account.html +0 -0
  568. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/email-templates/build/project_invitation.html +0 -0
  569. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/email-templates/build/release_share.html +0 -0
  570. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/email-templates/build/reset_password.html +0 -0
  571. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/email-templates/build/test_email.html +0 -0
  572. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/email-templates/build/verify_email.html +0 -0
  573. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/email-templates/src/new_account.mjml +0 -0
  574. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/email-templates/src/project_invitation.mjml +0 -0
  575. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/email-templates/src/release_share.mjml +0 -0
  576. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/email-templates/src/reset_password.mjml +0 -0
  577. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/email-templates/src/test_email.mjml +0 -0
  578. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/email-templates/src/verify_email.mjml +0 -0
  579. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/formatting.py +0 -0
  580. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/git.py +0 -0
  581. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/github.py +0 -0
  582. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/imports.py +0 -0
  583. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/index.py +0 -0
  584. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/main.py +0 -0
  585. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/messaging.py +0 -0
  586. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/mixpanel.py +0 -0
  587. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/models/__init__.py +0 -0
  588. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/models/projects.py +0 -0
  589. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/models/releases.py +0 -0
  590. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/orgs.py +0 -0
  591. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/pdftext.py +0 -0
  592. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/pipeline.py +0 -0
  593. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/projects.py +0 -0
  594. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/security.py +0 -0
  595. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/storage.py +0 -0
  596. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/stripe.py +0 -0
  597. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/subscriptions.py +0 -0
  598. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/tasks.py +0 -0
  599. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/tests/__init__.py +0 -0
  600. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/tests/api/__init__.py +0 -0
  601. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/tests/api/routes/__init__.py +0 -0
  602. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/tests/api/routes/projects/__init__.py +0 -0
  603. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/tests/api/routes/projects/test_activity.py +0 -0
  604. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/tests/api/routes/projects/test_core.py +0 -0
  605. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/tests/api/routes/projects/test_datasets.py +0 -0
  606. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/tests/api/routes/projects/test_dvc.py +0 -0
  607. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/tests/api/routes/projects/test_figure_upload.py +0 -0
  608. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/tests/api/routes/projects/test_figures.py +0 -0
  609. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/tests/api/routes/projects/test_fs.py +0 -0
  610. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/tests/api/routes/projects/test_misc.py +0 -0
  611. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/tests/api/routes/projects/test_overleaf_links.py +0 -0
  612. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/tests/api/routes/projects/test_pipeline.py +0 -0
  613. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/tests/api/routes/projects/test_reference_items.py +0 -0
  614. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/tests/api/routes/projects/test_templates.py +0 -0
  615. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/tests/api/routes/test_feedback.py +0 -0
  616. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/tests/api/routes/test_login.py +0 -0
  617. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/tests/api/routes/test_misc.py +0 -0
  618. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/tests/api/routes/test_releases.py +0 -0
  619. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/tests/api/routes/test_users.py +0 -0
  620. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/tests/conftest.py +0 -0
  621. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/tests/test_arxiv.py +0 -0
  622. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/tests/test_cache.py +0 -0
  623. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/tests/test_client.py +0 -0
  624. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/tests/test_core.py +0 -0
  625. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/tests/test_db.py +0 -0
  626. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/tests/test_dvc.py +0 -0
  627. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/tests/test_formatting.py +0 -0
  628. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/tests/test_git.py +0 -0
  629. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/tests/test_index.py +0 -0
  630. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/tests/test_mixpanel.py +0 -0
  631. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/tests/test_pdftext.py +0 -0
  632. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/tests/test_pipeline.py +0 -0
  633. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/tests/test_projects.py +0 -0
  634. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/tests/test_tasks.py +0 -0
  635. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/tests/test_users.py +0 -0
  636. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/tests/test_version.py +0 -0
  637. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/thumbnails.py +0 -0
  638. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/users.py +0 -0
  639. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/version.py +0 -0
  640. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/warm.py +0 -0
  641. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/zenodo.py +0 -0
  642. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/app/zotero.py +0 -0
  643. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/prestart.sh +0 -0
  644. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/pyproject.toml +0 -0
  645. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/scripts/backend-pre-start.py +0 -0
  646. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/scripts/create-initial-data.py +0 -0
  647. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/scripts/delete-user.py +0 -0
  648. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/scripts/format.sh +0 -0
  649. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/scripts/generate-client.py +0 -0
  650. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/scripts/lint.sh +0 -0
  651. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/scripts/rotate-fernet-secrets.py +0 -0
  652. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/scripts/test.sh +0 -0
  653. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/backend/tests-start.sh +0 -0
  654. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/config/alloy/config.alloy +0 -0
  655. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/config/grafana/provisioning/dashboards/dashboards.yml +0 -0
  656. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/config/grafana/provisioning/dashboards/fastapi.json +0 -0
  657. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/config/grafana/provisioning/dashboards/warm-queue.json +0 -0
  658. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/config/grafana/provisioning/datasources/datasources.yml +0 -0
  659. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/config/loki/loki.yml +0 -0
  660. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/config/prometheus/prometheus.yml +0 -0
  661. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/docker-compose.override.yml +0 -0
  662. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/docker-compose.traefik.yml +0 -0
  663. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/docker-compose.yml +0 -0
  664. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/docs/dev/database-migrations.md +0 -0
  665. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/docs/dev/deployment.md +0 -0
  666. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/docs/dev/development.md +0 -0
  667. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/.dockerignore +0 -0
  668. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/.gitignore +0 -0
  669. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/.nvmrc +0 -0
  670. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/Dockerfile +0 -0
  671. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/Makefile +0 -0
  672. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/README.md +0 -0
  673. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/biome.json +0 -0
  674. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/index.html +0 -0
  675. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/modify-openapi-operationids.js +0 -0
  676. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/nginx-backend-not-found.conf +0 -0
  677. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/nginx.conf +0 -0
  678. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/openapi-ts.config.ts +0 -0
  679. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/package-lock.json +0 -0
  680. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/package.json +0 -0
  681. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/playwright.config.ts +0 -0
  682. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/public/assets/images/c-to-the-k.svg +0 -0
  683. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/public/assets/images/calkit-no-bg.svg +0 -0
  684. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/public/assets/images/calkit.svg +0 -0
  685. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/public/assets/images/fastapi-logo.svg +0 -0
  686. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/public/assets/images/favicon.png +0 -0
  687. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/public/assets/images/kdot.svg +0 -0
  688. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/public/tex/.gitignore +0 -0
  689. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/public/tex/LICENSE-busytex +0 -0
  690. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/public/tex/busytex.js +0 -0
  691. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/public/tex/busytex.wasm +0 -0
  692. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/public/tex/busytex_pipeline.js +0 -0
  693. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/public/tex/busytex_worker.js +0 -0
  694. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/scripts/download-tex-engine.sh +0 -0
  695. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/client/client/client.gen.ts +0 -0
  696. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/client/client/index.ts +0 -0
  697. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/client/client/types.gen.ts +0 -0
  698. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/client/client/utils.gen.ts +0 -0
  699. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/client/client.gen.ts +0 -0
  700. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/client/core/auth.gen.ts +0 -0
  701. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/client/core/bodySerializer.gen.ts +0 -0
  702. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/client/core/params.gen.ts +0 -0
  703. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/client/core/pathSerializer.gen.ts +0 -0
  704. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/client/core/queryKeySerializer.gen.ts +0 -0
  705. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/client/core/serverSentEvents.gen.ts +0 -0
  706. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/client/core/types.gen.ts +0 -0
  707. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/client/core/utils.gen.ts +0 -0
  708. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/client/sdk.gen.ts +0 -0
  709. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Admin/AddUser.tsx +0 -0
  710. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Admin/EditUser.tsx +0 -0
  711. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Admin/FeatureVotesTable.tsx +0 -0
  712. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Admin/FeedbackTable.tsx +0 -0
  713. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Common/ActionsMenu.tsx +0 -0
  714. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Common/ClearableInput.tsx +0 -0
  715. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Common/CodeEditorPane.tsx +0 -0
  716. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Common/CommentsPanel.tsx +0 -0
  717. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Common/ConnectGitHubPrompt.tsx +0 -0
  718. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Common/ConnectZoteroPrompt.tsx +0 -0
  719. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Common/DeleteAlert.tsx +0 -0
  720. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Common/DiscardChangesDialog.tsx +0 -0
  721. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Common/FeatureVoteButton.tsx +0 -0
  722. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Common/FilterableSelect.tsx +0 -0
  723. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Common/GlobalSearch.tsx +0 -0
  724. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Common/HelpFeedback.tsx +0 -0
  725. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Common/InputsRow.tsx +0 -0
  726. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Common/LoadingSpinner.tsx +0 -0
  727. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Common/Markdown.test.tsx +0 -0
  728. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Common/Markdown.tsx +0 -0
  729. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Common/Mermaid.tsx +0 -0
  730. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Common/Navbar.tsx +0 -0
  731. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Common/NoArtifactFound.tsx +0 -0
  732. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Common/NotBuiltAlert.tsx +0 -0
  733. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Common/NotFound.tsx +0 -0
  734. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Common/NotificationBell.tsx +0 -0
  735. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Common/OAuthButtons.tsx +0 -0
  736. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Common/PageMenu.tsx +0 -0
  737. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Common/PdfCanvas.tsx +0 -0
  738. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Common/PdfDocumentViewer.tsx +0 -0
  739. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Common/ProjectCommandPalette.tsx +0 -0
  740. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Common/RefPicker.tsx +0 -0
  741. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Common/SandboxedHtml.test.tsx +0 -0
  742. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Common/SandboxedHtml.tsx +0 -0
  743. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Common/Sidebar.tsx +0 -0
  744. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Common/SidebarItems.tsx +0 -0
  745. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Common/TexText.test.tsx +0 -0
  746. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Common/TexText.tsx +0 -0
  747. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Common/Tooltip.tsx +0 -0
  748. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Common/Topbar.tsx +0 -0
  749. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Common/UserMenu.tsx +0 -0
  750. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Datasets/BrowseDatasets.tsx +0 -0
  751. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Datasets/DataEntryGrid.tsx +0 -0
  752. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Datasets/DatasetViewer.tsx +0 -0
  753. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Datasets/NewDataset.tsx +0 -0
  754. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Environments/NewEnvironment.tsx +0 -0
  755. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Environments/ViewEnvironment.tsx +0 -0
  756. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Figures/FigureEditLauncher.tsx +0 -0
  757. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Figures/FigureEditor.tsx +0 -0
  758. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Figures/FigureFromExisting.tsx +0 -0
  759. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Figures/FigureView.tsx +0 -0
  760. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Figures/UploadFigure.tsx +0 -0
  761. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Files/EditFileInfo.tsx +0 -0
  762. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Files/FileContent.tsx +0 -0
  763. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Files/FileEditorModal.tsx +0 -0
  764. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Files/SelectedItemInfo.tsx +0 -0
  765. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Files/UploadFile.tsx +0 -0
  766. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Local/AddPath.tsx +0 -0
  767. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Local/DiscardChanges.tsx +0 -0
  768. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Local/IgnorePath.tsx +0 -0
  769. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Local/NewStage.tsx +0 -0
  770. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Local/SaveFiles.tsx +0 -0
  771. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Notebooks/NotebookRunLauncher.tsx +0 -0
  772. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Notebooks/NotebookRunner.tsx +0 -0
  773. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Notebooks/NotebookView.tsx +0 -0
  774. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Onboarding/AccountSetupCard.tsx +0 -0
  775. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Onboarding/ChecklistCard.tsx +0 -0
  776. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Onboarding/CommandBlock.tsx +0 -0
  777. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Onboarding/FeaturedProjects.tsx +0 -0
  778. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Onboarding/ProjectChecklist.tsx +0 -0
  779. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Onboarding/ReproAudit.test.ts +0 -0
  780. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Onboarding/ReproAudit.tsx +0 -0
  781. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Onboarding/StartPaths.tsx +0 -0
  782. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Orgs/AddMember.tsx +0 -0
  783. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Orgs/NewOrg.tsx +0 -0
  784. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Pipeline/PipelineEditorModal.tsx +0 -0
  785. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Pipeline/StageEditorModal.tsx +0 -0
  786. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Presentations/PresentationView.tsx +0 -0
  787. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Projects/AddCollaborator.tsx +0 -0
  788. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Projects/CloneProject.tsx +0 -0
  789. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Projects/CreateIssue.tsx +0 -0
  790. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Projects/CreateQuestion.tsx +0 -0
  791. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Projects/EditProject.tsx +0 -0
  792. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Projects/EditQuestion.tsx +0 -0
  793. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Projects/HelpContent.tsx +0 -0
  794. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Projects/InviteLinks.tsx +0 -0
  795. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Projects/MakeProjectPublic.tsx +0 -0
  796. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Projects/NewProjectModal.tsx +0 -0
  797. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Projects/ProjectShowcase.tsx +0 -0
  798. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Projects/ProjectStatus.tsx +0 -0
  799. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Projects/QuestionModal.tsx +0 -0
  800. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Projects/RecentChanges.test.ts +0 -0
  801. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Projects/RecentChanges.tsx +0 -0
  802. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Publications/ImportOverleaf.test.ts +0 -0
  803. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Publications/ImportOverleaf.tsx +0 -0
  804. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Publications/LatexEditor.tsx +0 -0
  805. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Publications/NewPublication.tsx +0 -0
  806. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Publications/PdfAnnotator.tsx +0 -0
  807. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Publications/PublicationComponents.test.ts +0 -0
  808. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Publications/PublicationComponents.tsx +0 -0
  809. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Publications/PublicationView.tsx +0 -0
  810. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/References/DeleteReferenceItemDialog.tsx +0 -0
  811. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/References/DeleteReferencesCollectionDialog.tsx +0 -0
  812. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/References/EditReferenceItemModal.tsx +0 -0
  813. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/References/FileViewModal.tsx +0 -0
  814. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/References/ImportFromZoteroModal.tsx +0 -0
  815. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/References/LabelExistingReferences.tsx +0 -0
  816. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/References/NewReferencesCollection.tsx +0 -0
  817. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/References/ReferenceItemModal.tsx +0 -0
  818. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/References/ReferencesInfoPanel.tsx +0 -0
  819. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Releases/ArtifactReleasesPanel.tsx +0 -0
  820. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Releases/NewRelease.tsx +0 -0
  821. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Releases/PathPicker.tsx +0 -0
  822. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Releases/ReleasePdfAnnotator.tsx +0 -0
  823. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Releases/ReleaseViewer.tsx +0 -0
  824. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Releases/ReleasesTable.tsx +0 -0
  825. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Releases/ShareDialog.tsx +0 -0
  826. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Releases/releaseSort.ts +0 -0
  827. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Tables/TableThumbnail.tsx +0 -0
  828. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Tables/TableView.test.tsx +0 -0
  829. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/Tables/TableView.tsx +0 -0
  830. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/UserSettings/Appearance.tsx +0 -0
  831. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/UserSettings/ChangePassword.tsx +0 -0
  832. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/UserSettings/ConnectedAccounts.tsx +0 -0
  833. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/UserSettings/DeleteAccount.tsx +0 -0
  834. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/UserSettings/DeleteConfirmation.tsx +0 -0
  835. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/UserSettings/NewToken.tsx +0 -0
  836. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/UserSettings/OnboardingChecklists.tsx +0 -0
  837. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/UserSettings/PickSubscription.tsx +0 -0
  838. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/UserSettings/Privacy.tsx +0 -0
  839. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/UserSettings/Subscription.tsx +0 -0
  840. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/UserSettings/UpdateOverleafToken.tsx +0 -0
  841. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/UserSettings/UserInformation.tsx +0 -0
  842. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/components/UserSettings/UserTokens.tsx +0 -0
  843. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/hooks/useAuth.ts +0 -0
  844. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/hooks/useCustomToast.ts +0 -0
  845. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/hooks/useOnboarding.ts +0 -0
  846. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/hooks/useProject.ts +0 -0
  847. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/hooks/useRefreshProject.ts +0 -0
  848. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/hooks/useSubmitOnCmdEnter.test.ts +0 -0
  849. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/hooks/useSubmitOnCmdEnter.ts +0 -0
  850. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/lib/analytics.test.ts +0 -0
  851. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/lib/analytics.ts +0 -0
  852. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/lib/api.test.ts +0 -0
  853. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/lib/api.ts +0 -0
  854. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/lib/auth.test.ts +0 -0
  855. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/lib/auth.ts +0 -0
  856. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/lib/bibtex.test.ts +0 -0
  857. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/lib/bibtex.ts +0 -0
  858. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/lib/core.ts +0 -0
  859. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/lib/csv.test.ts +0 -0
  860. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/lib/csv.ts +0 -0
  861. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/lib/environments.test.ts +0 -0
  862. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/lib/environments.ts +0 -0
  863. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/lib/errors.ts +0 -0
  864. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/lib/figureScript.test.ts +0 -0
  865. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/lib/figureScript.ts +0 -0
  866. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/lib/fuzzy.test.ts +0 -0
  867. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/lib/fuzzy.ts +0 -0
  868. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/lib/github.test.ts +0 -0
  869. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/lib/github.ts +0 -0
  870. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/lib/google.ts +0 -0
  871. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/lib/keyboard.ts +0 -0
  872. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/lib/latexCompiler.ts +0 -0
  873. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/lib/latexProject.mapPaths.test.ts +0 -0
  874. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/lib/latexProject.test.ts +0 -0
  875. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/lib/latexProject.ts +0 -0
  876. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/lib/layout.ts +0 -0
  877. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/lib/notebook.test.ts +0 -0
  878. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/lib/notebook.ts +0 -0
  879. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/lib/onboarding.test.ts +0 -0
  880. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/lib/onboarding.ts +0 -0
  881. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/lib/pipelineYaml.test.ts +0 -0
  882. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/lib/pipelineYaml.ts +0 -0
  883. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/lib/projectFiles.ts +0 -0
  884. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/lib/provenance.test.ts +0 -0
  885. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/lib/provenance.ts +0 -0
  886. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/lib/pyodide.test.ts +0 -0
  887. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/lib/pyodide.ts +0 -0
  888. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/lib/releases.ts +0 -0
  889. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/lib/staleChunks.test.ts +0 -0
  890. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/lib/staleChunks.ts +0 -0
  891. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/lib/strings.test.ts +0 -0
  892. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/lib/strings.ts +0 -0
  893. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/lib/tables.test.ts +0 -0
  894. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/lib/tables.ts +0 -0
  895. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/lib/tex.test.ts +0 -0
  896. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/lib/tex.ts +0 -0
  897. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/lib/zenodo.ts +0 -0
  898. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/lib/zotero.ts +0 -0
  899. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/main.tsx +0 -0
  900. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/routeTree.gen.ts +0 -0
  901. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/routes/__root.tsx +0 -0
  902. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/app.tsx +0 -0
  903. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/apps/$appName.tsx +0 -0
  904. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/apps/index.tsx +0 -0
  905. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/apps.tsx +0 -0
  906. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/collaborators.tsx +0 -0
  907. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/datasets.tsx +0 -0
  908. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/environments.tsx +0 -0
  909. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/figures.tsx +0 -0
  910. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/files.tsx +0 -0
  911. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/history.tsx +0 -0
  912. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/index.tsx +0 -0
  913. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/local.tsx +0 -0
  914. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/notebooks.tsx +0 -0
  915. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/pipeline.tsx +0 -0
  916. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/presentations.tsx +0 -0
  917. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/questions.$questionNumber.tsx +0 -0
  918. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/references.tsx +0 -0
  919. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/releases.tsx +0 -0
  920. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/software.tsx +0 -0
  921. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/tables.tsx +0 -0
  922. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout.tsx +0 -0
  923. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/routes/_layout/$accountName/$projectName/releases/$releaseName.tsx +0 -0
  924. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/routes/_layout/$accountName/index.tsx +0 -0
  925. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/routes/_layout/admin.tsx +0 -0
  926. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/routes/_layout/datasets.tsx +0 -0
  927. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/routes/_layout/index.tsx +0 -0
  928. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/routes/_layout/new.tsx +0 -0
  929. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/routes/_layout/orgs.tsx +0 -0
  930. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/routes/_layout/projects.tsx +0 -0
  931. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/routes/_layout/settings.tsx +0 -0
  932. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/routes/_layout.tsx +0 -0
  933. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/routes/auth/google.tsx +0 -0
  934. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/routes/auth/zenodo.tsx +0 -0
  935. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/routes/auth/zotero.tsx +0 -0
  936. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/routes/checkout.tsx +0 -0
  937. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/routes/join/$token.tsx +0 -0
  938. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/routes/login/device.tsx +0 -0
  939. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/routes/login/index.tsx +0 -0
  940. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/routes/recover-password.tsx +0 -0
  941. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/routes/reset-password.tsx +0 -0
  942. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/routes/signup.tsx +0 -0
  943. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/routes/verify-email.tsx +0 -0
  944. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/theme.tsx +0 -0
  945. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/src/vite-env.d.ts +0 -0
  946. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/tests/auth.setup.ts +0 -0
  947. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/tests/config.ts +0 -0
  948. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/tests/figures-pagination.spec.ts +0 -0
  949. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/tests/login.spec.ts +0 -0
  950. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/tests/reset-password.spec.ts +0 -0
  951. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/tests/user-settings.spec.ts +0 -0
  952. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/tests/utils/mailcatcher.ts +0 -0
  953. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/tests/utils/random.ts +0 -0
  954. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/tests/utils/user.ts +0 -0
  955. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/tsconfig.json +0 -0
  956. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/tsconfig.node.json +0 -0
  957. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/vite.config.ts +0 -0
  958. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/frontend/vitest.config.ts +0 -0
  959. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/scripts/build-push.sh +0 -0
  960. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/scripts/build.sh +0 -0
  961. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/scripts/deploy.sh +0 -0
  962. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/scripts/pem-to-env.sh +0 -0
  963. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/scripts/test-local.sh +0 -0
  964. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/scripts/test.sh +0 -0
  965. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/texmf-proxy/Dockerfile +0 -0
  966. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/texmf-proxy/README.md +0 -0
  967. {calkit_python-0.47.7 → calkit_python-0.47.8}/hub/texmf-proxy/proxy.py +0 -0
  968. {calkit_python-0.47.7 → calkit_python-0.47.8}/images/latex/Dockerfile +0 -0
  969. {calkit_python-0.47.7 → calkit_python-0.47.8}/images/latex/README.md +0 -0
  970. {calkit_python-0.47.7 → calkit_python-0.47.8}/images/latex/entrypoint.sh +0 -0
  971. {calkit_python-0.47.7 → calkit_python-0.47.8}/jupyterlab-ext/.yarnrc.yml +0 -0
  972. {calkit_python-0.47.7 → calkit_python-0.47.8}/jupyterlab-ext/babel.config.js +0 -0
  973. {calkit_python-0.47.7 → calkit_python-0.47.8}/jupyterlab-ext/install.json +0 -0
  974. {calkit_python-0.47.7 → calkit_python-0.47.8}/jupyterlab-ext/jest.config.js +0 -0
  975. {calkit_python-0.47.7 → calkit_python-0.47.8}/jupyterlab-ext/jupyter-config/server-config/calkit.json +0 -0
  976. {calkit_python-0.47.7 → calkit_python-0.47.8}/jupyterlab-ext/package.json +0 -0
  977. {calkit_python-0.47.7 → calkit_python-0.47.8}/jupyterlab-ext/schema/plugin.json +0 -0
  978. {calkit_python-0.47.7 → calkit_python-0.47.8}/jupyterlab-ext/src/__tests__/useQueries.spec.ts +0 -0
  979. {calkit_python-0.47.7 → calkit_python-0.47.8}/jupyterlab-ext/src/calkit-config.ts +0 -0
  980. {calkit_python-0.47.7 → calkit_python-0.47.8}/jupyterlab-ext/src/cell-output-marker.ts +0 -0
  981. {calkit_python-0.47.7 → calkit_python-0.47.8}/jupyterlab-ext/src/components/commit-dialog.tsx +0 -0
  982. {calkit_python-0.47.7 → calkit_python-0.47.8}/jupyterlab-ext/src/components/environment-editor.tsx +0 -0
  983. {calkit_python-0.47.7 → calkit_python-0.47.8}/jupyterlab-ext/src/components/notebook-registration.tsx +0 -0
  984. {calkit_python-0.47.7 → calkit_python-0.47.8}/jupyterlab-ext/src/components/notebook-toolbar.tsx +0 -0
  985. {calkit_python-0.47.7 → calkit_python-0.47.8}/jupyterlab-ext/src/components/pipeline-status-bar.tsx +0 -0
  986. {calkit_python-0.47.7 → calkit_python-0.47.8}/jupyterlab-ext/src/components/project-info-editor.tsx +0 -0
  987. {calkit_python-0.47.7 → calkit_python-0.47.8}/jupyterlab-ext/src/components/sidebar-settings.tsx +0 -0
  988. {calkit_python-0.47.7 → calkit_python-0.47.8}/jupyterlab-ext/src/components/sidebar.tsx +0 -0
  989. {calkit_python-0.47.7 → calkit_python-0.47.8}/jupyterlab-ext/src/components/stage-editor.tsx +0 -0
  990. {calkit_python-0.47.7 → calkit_python-0.47.8}/jupyterlab-ext/src/feature-flags.ts +0 -0
  991. {calkit_python-0.47.7 → calkit_python-0.47.8}/jupyterlab-ext/src/file-browser-menu.ts +0 -0
  992. {calkit_python-0.47.7 → calkit_python-0.47.8}/jupyterlab-ext/src/hooks/__tests__/useQueries.test.tsx +0 -0
  993. {calkit_python-0.47.7 → calkit_python-0.47.8}/jupyterlab-ext/src/hooks/useQueries.ts +0 -0
  994. {calkit_python-0.47.7 → calkit_python-0.47.8}/jupyterlab-ext/src/icons.ts +0 -0
  995. {calkit_python-0.47.7 → calkit_python-0.47.8}/jupyterlab-ext/src/index.ts +0 -0
  996. {calkit_python-0.47.7 → calkit_python-0.47.8}/jupyterlab-ext/src/io-tracker.ts +0 -0
  997. {calkit_python-0.47.7 → calkit_python-0.47.8}/jupyterlab-ext/src/pipeline-state.ts +0 -0
  998. {calkit_python-0.47.7 → calkit_python-0.47.8}/jupyterlab-ext/src/queryClient.ts +0 -0
  999. {calkit_python-0.47.7 → calkit_python-0.47.8}/jupyterlab-ext/src/request.ts +0 -0
  1000. {calkit_python-0.47.7 → calkit_python-0.47.8}/jupyterlab-ext/src/shims-mainmenu.d.ts +0 -0
  1001. {calkit_python-0.47.7 → calkit_python-0.47.8}/jupyterlab-ext/style/base.css +0 -0
  1002. {calkit_python-0.47.7 → calkit_python-0.47.8}/jupyterlab-ext/style/cell-output-marker.css +0 -0
  1003. {calkit_python-0.47.7 → calkit_python-0.47.8}/jupyterlab-ext/style/environment-editor.css +0 -0
  1004. {calkit_python-0.47.7 → calkit_python-0.47.8}/jupyterlab-ext/style/environment-selector.css +0 -0
  1005. {calkit_python-0.47.7 → calkit_python-0.47.8}/jupyterlab-ext/style/img/calkit-no-bg.png +0 -0
  1006. {calkit_python-0.47.7 → calkit_python-0.47.8}/jupyterlab-ext/style/index.css +0 -0
  1007. {calkit_python-0.47.7 → calkit_python-0.47.8}/jupyterlab-ext/style/index.js +0 -0
  1008. {calkit_python-0.47.7 → calkit_python-0.47.8}/jupyterlab-ext/style/notebook-toolbar.css +0 -0
  1009. {calkit_python-0.47.7 → calkit_python-0.47.8}/jupyterlab-ext/style/pipeline-status-bar.css +0 -0
  1010. {calkit_python-0.47.7 → calkit_python-0.47.8}/jupyterlab-ext/style/sidebar.css +0 -0
  1011. {calkit_python-0.47.7 → calkit_python-0.47.8}/jupyterlab-ext/tsconfig.json +0 -0
  1012. {calkit_python-0.47.7 → calkit_python-0.47.8}/jupyterlab-ext/tsconfig.test.json +0 -0
  1013. {calkit_python-0.47.7 → calkit_python-0.47.8}/jupyterlab-ext/ui-tests/.gitignore +0 -0
  1014. {calkit_python-0.47.7 → calkit_python-0.47.8}/jupyterlab-ext/ui-tests/README.md +0 -0
  1015. {calkit_python-0.47.7 → calkit_python-0.47.8}/jupyterlab-ext/ui-tests/jupyter_server_test_config.py +0 -0
  1016. {calkit_python-0.47.7 → calkit_python-0.47.8}/jupyterlab-ext/ui-tests/package.json +0 -0
  1017. {calkit_python-0.47.7 → calkit_python-0.47.8}/jupyterlab-ext/ui-tests/playwright.config.js +0 -0
  1018. {calkit_python-0.47.7 → calkit_python-0.47.8}/jupyterlab-ext/ui-tests/tests/calkit.spec.ts +0 -0
  1019. {calkit_python-0.47.7 → calkit_python-0.47.8}/jupyterlab-ext/ui-tests/yarn.lock +0 -0
  1020. {calkit_python-0.47.7 → calkit_python-0.47.8}/jupyterlab-ext/yarn.lock +0 -0
  1021. {calkit_python-0.47.7 → calkit_python-0.47.8}/mkdocs.yml +0 -0
  1022. {calkit_python-0.47.7 → calkit_python-0.47.8}/pyproject.toml +0 -0
  1023. {calkit_python-0.47.7 → calkit_python-0.47.8}/scripts/generate-docs-references.py +0 -0
  1024. {calkit_python-0.47.7 → calkit_python-0.47.8}/scripts/install.ps1 +0 -0
  1025. {calkit_python-0.47.7 → calkit_python-0.47.8}/scripts/install.sh +0 -0
  1026. {calkit_python-0.47.7 → calkit_python-0.47.8}/scripts/list-changes.py +0 -0
  1027. {calkit_python-0.47.7 → calkit_python-0.47.8}/scripts/make-ck9.sh +0 -0
  1028. {calkit_python-0.47.7 → calkit_python-0.47.8}/scripts/sync-docs.py +0 -0
  1029. {calkit_python-0.47.7 → calkit_python-0.47.8}/scripts/sync-resources.py +0 -0
  1030. {calkit_python-0.47.7 → calkit_python-0.47.8}/test/docx/accepted.docx +0 -0
  1031. {calkit_python-0.47.7 → calkit_python-0.47.8}/test/docx/export.docx +0 -0
  1032. {calkit_python-0.47.7 → calkit_python-0.47.8}/test/docx/main.tex +0 -0
  1033. {calkit_python-0.47.7 → calkit_python-0.47.8}/test/docx/methods.tex +0 -0
  1034. {calkit_python-0.47.7 → calkit_python-0.47.8}/test/docx/resolved.docx +0 -0
  1035. {calkit_python-0.47.7 → calkit_python-0.47.8}/test/docx/returned.docx +0 -0
  1036. {calkit_python-0.47.7 → calkit_python-0.47.8}/test/docx/word-import.docx +0 -0
  1037. {calkit_python-0.47.7 → calkit_python-0.47.8}/test/dvc-md5-dir/osx-arm64.txt +0 -0
  1038. {calkit_python-0.47.7 → calkit_python-0.47.8}/test/nb-julia.ipynb +0 -0
  1039. {calkit_python-0.47.7 → calkit_python-0.47.8}/test/nb-params.ipynb +0 -0
  1040. {calkit_python-0.47.7 → calkit_python-0.47.8}/test/nb-subdir.ipynb +0 -0
  1041. {calkit_python-0.47.7 → calkit_python-0.47.8}/test/pipeline.ipynb +0 -0
  1042. {calkit_python-0.47.7 → calkit_python-0.47.8}/test/script.py +0 -0
  1043. {calkit_python-0.47.7 → calkit_python-0.47.8}/test/test-log.log +0 -0
  1044. {calkit_python-0.47.7 → calkit_python-0.47.8}/uv.lock +0 -0
  1045. {calkit_python-0.47.7 → calkit_python-0.47.8}/vscode-ext/.gitignore +0 -0
  1046. {calkit_python-0.47.7 → calkit_python-0.47.8}/vscode-ext/.vscodeignore +0 -0
  1047. {calkit_python-0.47.7 → calkit_python-0.47.8}/vscode-ext/LICENSE +0 -0
  1048. {calkit_python-0.47.7 → calkit_python-0.47.8}/vscode-ext/README.md +0 -0
  1049. {calkit_python-0.47.7 → calkit_python-0.47.8}/vscode-ext/changelog-notes.md +0 -0
  1050. {calkit_python-0.47.7 → calkit_python-0.47.8}/vscode-ext/images/calkit-icon.svg +0 -0
  1051. {calkit_python-0.47.7 → calkit_python-0.47.8}/vscode-ext/images/calkit-no-bg.png +0 -0
  1052. {calkit_python-0.47.7 → calkit_python-0.47.8}/vscode-ext/package-lock.json +0 -0
  1053. {calkit_python-0.47.7 → calkit_python-0.47.8}/vscode-ext/scripts/gen-changelog.js +0 -0
  1054. {calkit_python-0.47.7 → calkit_python-0.47.8}/vscode-ext/scripts/set-proposed-api.js +0 -0
  1055. {calkit_python-0.47.7 → calkit_python-0.47.8}/vscode-ext/src/environments.ts +0 -0
  1056. {calkit_python-0.47.7 → calkit_python-0.47.8}/vscode-ext/src/figures/core.ts +0 -0
  1057. {calkit_python-0.47.7 → calkit_python-0.47.8}/vscode-ext/src/figures/view.ts +0 -0
  1058. {calkit_python-0.47.7 → calkit_python-0.47.8}/vscode-ext/src/markdown/core.ts +0 -0
  1059. {calkit_python-0.47.7 → calkit_python-0.47.8}/vscode-ext/src/markdown/view.ts +0 -0
  1060. {calkit_python-0.47.7 → calkit_python-0.47.8}/vscode-ext/src/notebooks.ts +0 -0
  1061. {calkit_python-0.47.7 → calkit_python-0.47.8}/vscode-ext/src/pipeline/core.ts +0 -0
  1062. {calkit_python-0.47.7 → calkit_python-0.47.8}/vscode-ext/src/sidebar.ts +0 -0
  1063. {calkit_python-0.47.7 → calkit_python-0.47.8}/vscode-ext/src/test/environments.test.ts +0 -0
  1064. {calkit_python-0.47.7 → calkit_python-0.47.8}/vscode-ext/src/test/figures.test.ts +0 -0
  1065. {calkit_python-0.47.7 → calkit_python-0.47.8}/vscode-ext/src/test/kernel-selection.test.ts +0 -0
  1066. {calkit_python-0.47.7 → calkit_python-0.47.8}/vscode-ext/src/test/markdown.test.ts +0 -0
  1067. {calkit_python-0.47.7 → calkit_python-0.47.8}/vscode-ext/src/test/notebooks.test.ts +0 -0
  1068. {calkit_python-0.47.7 → calkit_python-0.47.8}/vscode-ext/src/test/pipeline.test.ts +0 -0
  1069. {calkit_python-0.47.7 → calkit_python-0.47.8}/vscode-ext/src/test/sidebar.test.ts +0 -0
  1070. {calkit_python-0.47.7 → calkit_python-0.47.8}/vscode-ext/src/test/yaml.test.ts +0 -0
  1071. {calkit_python-0.47.7 → calkit_python-0.47.8}/vscode-ext/src/types.ts +0 -0
  1072. {calkit_python-0.47.7 → calkit_python-0.47.8}/vscode-ext/src/yaml.ts +0 -0
  1073. {calkit_python-0.47.7 → calkit_python-0.47.8}/vscode-ext/tsconfig.json +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: calkit-python
3
- Version: 0.47.7
3
+ Version: 0.47.8
4
4
  Summary: Reproducibility simplified.
5
5
  Project-URL: Homepage, https://calkit.org
6
6
  Project-URL: Issues, https://github.com/calkit/calkit/issues
@@ -345,6 +345,9 @@ _VERBATIM_PARAM_RE = re.compile(
345
345
  r"(\\(?:verbatiminput\*?|lstinputlisting))"
346
346
  r"(?=\s*(?:\[[^\]\n]*\])?\s*\{[^}\n]*#[0-9])"
347
347
  )
348
+ _INPUT_WRAPPER_RE = re.compile(
349
+ r"\\([A-Za-z@]+)\*?\s*(?:\[[^\]]*\]\s*)*\{\s*\\(?:input|include)\s*\{"
350
+ )
348
351
  get_diff_path = calkit.latex.get_diff_path
349
352
  _default_base_ref = calkit.latex.default_base_ref
350
353
 
@@ -409,7 +412,9 @@ def diff(
409
412
  typer.Option(
410
413
  "--latexmk-rc",
411
414
  "-r",
412
- help="Path to a latexmkrc file to build the marked-up document with.",
415
+ help=(
416
+ "Path to a latexmkrc file to build the marked-up document with."
417
+ ),
413
418
  ),
414
419
  ] = None,
415
420
  latexmk_args: Annotated[
@@ -473,7 +478,11 @@ def diff(
473
478
  bool,
474
479
  typer.Option(
475
480
  "--keep-tex",
476
- help="Keep the generated diff .tex file for inspection.",
481
+ help=(
482
+ "Keep the old, new, and diff .tex files beside the diff "
483
+ "PDF for inspection, e.g., "
484
+ ".calkit/latex-diffs/v1/paper/main-old.tex."
485
+ ),
477
486
  ),
478
487
  ] = False,
479
488
  no_check: Annotated[
@@ -508,6 +517,53 @@ def diff(
508
517
  the comparison shows its own.
509
518
  """
510
519
 
520
+ def stage_path(stage: dict, path: str) -> str:
521
+ """A stage's path in the project's frame rather than its wdir's."""
522
+ return Path(
523
+ os.path.normpath(os.path.join(stage.get("wdir") or "", path))
524
+ ).as_posix()
525
+
526
+ def find_latex_stage() -> tuple[str | None, dict | None]:
527
+ """The pipeline stage that builds the document, if any."""
528
+ ck_info = calkit.load_calkit_info()
529
+ stages = (ck_info.get("pipeline") or {}).get("stages") or {}
530
+ target = Path(os.path.normpath(tex_file)).as_posix()
531
+ for name, stage in stages.items():
532
+ if (
533
+ isinstance(stage, dict)
534
+ and stage.get("kind") == "latex"
535
+ and stage_path(stage, stage.get("target_path") or "") == target
536
+ ):
537
+ return name, stage
538
+ return None, None
539
+
540
+ def stage_inputs(name: str, stage: dict) -> list[str]:
541
+ """What a stage's diffs fetch at each revision.
542
+
543
+ Its dependencies in the compiled pipeline, which include other
544
+ stages' outputs it reads, found there since calkit.yaml only names
545
+ the stages they come from.
546
+ """
547
+ from calkit.models.pipeline import LatexStage
548
+
549
+ try:
550
+ dvc_stage = calkit.ryaml.load(Path("dvc.yaml").read_text())[
551
+ "stages"
552
+ ][name]
553
+ deps = [
554
+ dep if isinstance(dep, str) else next(iter(dep))
555
+ for dep in dvc_stage.get("deps") or []
556
+ ]
557
+ except Exception:
558
+ deps = LatexStage.model_validate(stage | {"name": name}).dvc_deps
559
+ skip = {tex_file, latexmk_rc_path}
560
+ return [
561
+ path
562
+ for dep in deps
563
+ if (path := stage_path(stage, dep)) not in skip
564
+ and not path.startswith(".calkit/")
565
+ ]
566
+
511
567
  def fetch_dvc_inputs(root: str, rev: str, paths: list[str]) -> list[str]:
512
568
  """Fetch the DVC-tracked content of ``paths`` at ``rev`` into ``root``.
513
569
 
@@ -629,7 +685,9 @@ def diff(
629
685
  Detection finds a file by its own name or pointer, but a file in a
630
686
  directory DVC tracks as a whole has only the directory's pointer,
631
687
  which can't say what's inside, so those directories beside the
632
- document are included whole.
688
+ document are included whole. Neither finds another stage's output
689
+ DVC doesn't cache, so the pipeline's inputs for the document are
690
+ added too.
633
691
  """
634
692
  doc_dir = Path(root, os.path.dirname(tex_file))
635
693
  pointed = [
@@ -637,7 +695,8 @@ def diff(
637
695
  for p in sorted(doc_dir.rglob("*.dvc"))
638
696
  if p.is_file()
639
697
  ]
640
- return calkit.latex.detect_inputs(tex_file, wdir=root) + pointed
698
+ detected = calkit.latex.detect_inputs(tex_file, wdir=root)
699
+ return detected + pointed + pipeline_inputs
641
700
 
642
701
  def point_changed_figures_at_base(base_root: str, head_root: str) -> None:
643
702
  """Make the older side's changed figures refer to its own copies.
@@ -698,6 +757,20 @@ def diff(
698
757
  from_ref = _default_base_ref(repo)
699
758
  if to_ref is None and not os.path.isfile(tex_file):
700
759
  raise_error(f"{tex_file} does not exist")
760
+ # A document the pipeline builds is diffed the way it's built, with its
761
+ # stage's environment, settings, and inputs, unless told otherwise
762
+ stage_name, stage = find_latex_stage()
763
+ pipeline_inputs: list[str] = []
764
+ if stage is not None:
765
+ if environment is None:
766
+ environment = stage.get("environment")
767
+ if latexmk_rc_path is None and stage.get("latexmkrc_path"):
768
+ latexmk_rc_path = stage_path(stage, stage["latexmkrc_path"])
769
+ latexmk_args = latexmk_args or list(stage.get("latexmk_args") or [])
770
+ latexdiff_args = latexdiff_args or list(
771
+ stage.get("latexdiff_args") or []
772
+ )
773
+ pipeline_inputs = stage_inputs(str(stage_name), stage)
701
774
  if output is None:
702
775
  output = get_diff_path(
703
776
  tex_file,
@@ -766,9 +839,9 @@ def diff(
766
839
  break_verbatim_params(root)
767
840
  point_changed_figures_at_base(checkouts["base"], head_root)
768
841
  _build_diff(
769
- base_tex=sides["base"],
770
- head_tex=sides["head"],
771
- tex_file=tex_file,
842
+ base_tex_fpath=sides["base"],
843
+ head_tex_fpath=sides["head"],
844
+ tex_file_fpath=tex_file,
772
845
  head_root=head_root,
773
846
  output=output,
774
847
  environment=environment,
@@ -825,9 +898,9 @@ def _remove_worktree(path: str) -> None:
825
898
 
826
899
 
827
900
  def _build_diff(
828
- base_tex: str,
829
- head_tex: str,
830
- tex_file: str,
901
+ base_tex_fpath: str,
902
+ head_tex_fpath: str,
903
+ tex_file_fpath: str,
831
904
  head_root: str,
832
905
  output: str,
833
906
  environment: str | None,
@@ -840,39 +913,63 @@ def _build_diff(
840
913
  force: bool,
841
914
  verbose: bool,
842
915
  ) -> None:
843
- """Mark up one document against another and build the result."""
916
+ """Mark up one document against another and build the result.
917
+
918
+ base_tex_fpath is the older revision's document, head_tex_fpath the
919
+ newer revision's, and tex_file_fpath the document as named on the
920
+ command line. head_root is where the newer side lives: a checkout,
921
+ or the working tree, beside which the marked-up document is built
922
+ so its relative inputs resolve.
923
+ """
844
924
  # Built beside the newer side, so \graphicspath, \bibliography, and
845
925
  # relative \includegraphics resolve the way they do for the real thing,
846
926
  # against that revision's own files
847
- tex_dir = os.path.dirname(tex_file) or "."
927
+ tex_dir = os.path.dirname(tex_file_fpath) or "."
848
928
  build_dir = os.path.normpath(os.path.join(head_root, tex_dir))
849
- stem = Path(tex_file).stem
850
- diff_tex = os.path.join(build_dir, f"{stem}-diff.tex")
851
- # Where --keep-tex leaves it: beside the document, since a checkout is
852
- # removed afterwards
853
- kept_tex = os.path.normpath(os.path.join(tex_dir, f"{stem}-diff.tex"))
929
+ stem = Path(tex_file_fpath).stem
930
+ diff_tex_fpath = os.path.join(build_dir, f"{stem}-diff.tex")
931
+ # Where --keep-tex leaves its copies: beside the diff PDF, since a
932
+ # checkout is removed afterwards. The old and new files are what
933
+ # latexdiff saw, after verbatim fixes and figure repointing, so a
934
+ # --flatten or macro expansion failure can be inspected.
935
+ kept_stem = os.path.splitext(output)[0]
936
+ kept_diff_fpath = f"{kept_stem}-diff.tex"
937
+ kept_old_fpath = f"{kept_stem}-old.tex"
938
+ kept_new_fpath = f"{kept_stem}-new.tex"
939
+ marked_up: bytes | None = None
854
940
  aux_dir = os.path.join(build_dir, calkit.latex.DIFF_AUX_DIRNAME)
855
941
  try:
856
942
  # --flatten pulls \input and \include files into one document on
857
943
  # each side, so a multi-file paper compares as a whole
858
944
  latexdiff_cmd = ["latexdiff", "--flatten", "--encoding=utf8"]
859
- # A checkout's verbatim inputs named by macro parameters are already
860
- # broken, so this only finds the working tree's, which can't be
861
- # edited. A filter breaks those instead, though latexdiff's
862
- # --filter-script mangles anything outside Latin-1.
863
- sources = [base_tex, head_tex] + [
945
+ sources = [base_tex_fpath, head_tex_fpath] + [
864
946
  path
865
- for side in (base_tex, head_tex)
947
+ for side in (base_tex_fpath, head_tex_fpath)
866
948
  for path in calkit.latex.detect_inputs(side)
867
949
  if Path(path).suffix in calkit.latex._SOURCE_EXTS
868
950
  ]
869
- if any(
870
- os.path.isfile(path)
871
- and _VERBATIM_PARAM_RE.search(
872
- Path(path).read_text(encoding="utf-8", errors="replace")
873
- )
951
+ texts = [
952
+ Path(path).read_text(encoding="utf-8", errors="replace")
874
953
  for path in sources
875
- ):
954
+ if os.path.isfile(path)
955
+ ]
956
+ # A macro wrapping an \input or \include, e.g., one making an
957
+ # appendix single column, gets the whole flattened file as its
958
+ # argument, which latexdiff would otherwise mark up as one token
959
+ wrappers = sorted(
960
+ {
961
+ name
962
+ for text in texts
963
+ for name in _INPUT_WRAPPER_RE.findall(text)
964
+ }
965
+ )
966
+ if wrappers:
967
+ latexdiff_cmd.append("--append-textcmd=" + ";".join(wrappers))
968
+ # A checkout's verbatim inputs named by macro parameters are already
969
+ # broken, so this only finds the working tree's, which can't be
970
+ # edited. A filter breaks those instead, though latexdiff's
971
+ # --filter-script mangles anything outside Latin-1.
972
+ if any(_VERBATIM_PARAM_RE.search(text) for text in texts):
876
973
  filter_path = Path(DIFF_TMP_DIR, "verbatim-param-filter.pl")
877
974
  os.makedirs(filter_path.parent, exist_ok=True)
878
975
  # latexdiff appends a newline to what it sends, so drop it
@@ -896,7 +993,7 @@ def _build_diff(
896
993
  # defaults
897
994
  latexdiff_cmd += latexdiff_args
898
995
  cmd = _tex_cmd(
899
- latexdiff_cmd + [base_tex, head_tex],
996
+ latexdiff_cmd + [base_tex_fpath, head_tex_fpath],
900
997
  environment=environment,
901
998
  no_check=no_check,
902
999
  verbose=verbose,
@@ -904,7 +1001,9 @@ def _build_diff(
904
1001
  )
905
1002
  typer.echo("Marking up the document with latexdiff")
906
1003
  try:
907
- marked_up = subprocess.check_output(cmd)
1004
+ # No stdin, so an environment's container isn't given a TTY,
1005
+ # which would merge latexdiff's warnings into the document
1006
+ marked_up = subprocess.check_output(cmd, stdin=subprocess.DEVNULL)
908
1007
  except FileNotFoundError:
909
1008
  raise_error(
910
1009
  "latexdiff was not found; it ships with TeX Live, so a "
@@ -944,8 +1043,7 @@ def _build_diff(
944
1043
  ):
945
1044
  typer.echo(f"{output} is up to date")
946
1045
  return
947
- with open(diff_tex, "wb") as f:
948
- f.write(marked_up)
1046
+ Path(diff_tex_fpath).write_bytes(marked_up)
949
1047
  os.makedirs(aux_dir, exist_ok=True)
950
1048
  rel_aux = calkit.latex.DIFF_AUX_DIRNAME
951
1049
  latexmk_cmd = ["latexmk"]
@@ -965,7 +1063,7 @@ def _build_diff(
965
1063
  # User pass-through args come last so they can override Calkit's
966
1064
  # defaults
967
1065
  latexmk_cmd += latexmk_args
968
- latexmk_cmd.append(diff_tex)
1066
+ latexmk_cmd.append(diff_tex_fpath)
969
1067
  cmd = _tex_cmd(
970
1068
  latexmk_cmd,
971
1069
  environment=environment,
@@ -993,10 +1091,13 @@ def _build_diff(
993
1091
  if excerpt:
994
1092
  typer.echo(f"From {log_path.as_posix()}:", err=True)
995
1093
  typer.echo("\n".join(excerpt), err=True)
996
- raise_error(
997
- "latexmk failed on the marked-up document with exit status "
998
- f"{e.returncode}; rerun with --keep-tex to inspect it"
1094
+ msg = (
1095
+ "latexmk failed on the diff document with exit code "
1096
+ f"{e.returncode}"
999
1097
  )
1098
+ if not keep_tex:
1099
+ msg += "; rerun with --keep-tex to inspect"
1100
+ raise_error(msg)
1000
1101
  built = os.path.join(aux_dir, f"{stem}-diff.pdf")
1001
1102
  if not os.path.isfile(built):
1002
1103
  raise_error("latexmk did not produce a PDF")
@@ -1007,16 +1108,28 @@ def _build_diff(
1007
1108
  if os.path.abspath(head_root) == os.path.abspath("."):
1008
1109
  shutil.rmtree(aux_dir, ignore_errors=True)
1009
1110
  os.makedirs(os.path.dirname(state_path), exist_ok=True)
1010
- with open(state_path, "w") as f:
1011
- f.write(digest)
1111
+ Path(state_path).write_text(digest)
1012
1112
  typer.echo(f"Wrote {output}")
1013
1113
  finally:
1014
- if os.path.isfile(diff_tex):
1015
- in_place = os.path.abspath(diff_tex) == os.path.abspath(kept_tex)
1016
- if keep_tex and not in_place:
1017
- shutil.copy(diff_tex, kept_tex)
1018
- if not keep_tex or not in_place:
1019
- os.remove(diff_tex)
1114
+ if keep_tex:
1115
+ os.makedirs(os.path.dirname(output) or ".", exist_ok=True)
1116
+ if marked_up is not None:
1117
+ Path(kept_diff_fpath).write_bytes(marked_up)
1118
+ for src, kept_fpath in (
1119
+ (base_tex_fpath, kept_old_fpath),
1120
+ (head_tex_fpath, kept_new_fpath),
1121
+ ):
1122
+ if os.path.isfile(src):
1123
+ shutil.copy(src, kept_fpath)
1124
+ for kept_fpath in (
1125
+ kept_old_fpath,
1126
+ kept_new_fpath,
1127
+ kept_diff_fpath,
1128
+ ):
1129
+ if os.path.isfile(kept_fpath):
1130
+ typer.echo(f"Kept {kept_fpath} for inspection")
1131
+ if os.path.isfile(diff_tex_fpath):
1132
+ os.remove(diff_tex_fpath)
1020
1133
 
1021
1134
 
1022
1135
  @latex_app.command(name="to-docx")
@@ -989,11 +989,16 @@ class LatexStage(Stage):
989
989
  default=[],
990
990
  description="Comparisons to keep for this document, each a pair of "
991
991
  "revisions. A bare string is shorthand for comparing that revision "
992
- "against the working tree.",
992
+ "against HEAD.",
993
993
  )
994
994
  diff_pdf_storage: Literal["git", "dvc"] | None = Field(
995
995
  default="dvc", description="Where to store the resulting diff PDFs."
996
996
  )
997
+ keep_diff_tex: bool = Field(
998
+ default=False,
999
+ description="Keep the old, new, and marked-up .tex files beside "
1000
+ "each diff PDF for inspection.",
1001
+ )
997
1002
  verbose: bool = Field(
998
1003
  default=False, description="Show full latexmk output."
999
1004
  )
@@ -1081,6 +1086,8 @@ class LatexStage(Stage):
1081
1086
  cmd += f" --latexmk-arg {shlex.quote(arg)}"
1082
1087
  for arg in self.latexdiff_args:
1083
1088
  cmd += f" --latexdiff-arg {shlex.quote(arg)}"
1089
+ if self.keep_diff_tex:
1090
+ cmd += " --keep-tex"
1084
1091
  # Each revision gets its own copies of any of these that are
1085
1092
  # tracked with DVC, since a checkout only has their pointers
1086
1093
  for input_path in inputs:
@@ -2,6 +2,7 @@
2
2
 
3
3
  import itertools
4
4
  import os
5
+ import posixpath
5
6
  import re
6
7
  import warnings
7
8
  from collections.abc import Callable
@@ -1407,11 +1408,16 @@ def _ensure_latex_aux_gitignore(
1407
1408
  can be wiped by a clean build (``latexmk -C``). The globs are unanchored,
1408
1409
  so aux files are caught wherever latexmk writes them relative to the
1409
1410
  source -- next to it, or in an ``aux``/output subdirectory via
1410
- ``$aux_dir``/``$out_dir``/``output_dir``. ``*.pdf`` is never ignored so the
1411
- compiled output stays tracked.
1411
+ ``$aux_dir``/``$out_dir``/``output_dir``. A stage's own ``aux_dir`` is
1412
+ also ignored whole. ``*.pdf`` is never ignored so the compiled output
1413
+ stays tracked.
1412
1414
 
1413
1415
  Returns True if ``.gitignore`` was modified.
1414
1416
  """
1417
+
1418
+ def norm(path: str) -> str:
1419
+ return posixpath.normpath(path.replace("\\", "/"))
1420
+
1415
1421
  aux_globs = [
1416
1422
  "*.aux",
1417
1423
  "*.bbl",
@@ -1434,6 +1440,25 @@ def _ensure_latex_aux_gitignore(
1434
1440
  base = os.path.join(wdir or ".", stage.wdir) if stage.wdir else wdir or "."
1435
1441
  source_dir = os.path.dirname(stage.target_path)
1436
1442
  gitignore_path = os.path.join(base, source_dir, ".gitignore")
1443
+ # An aux dir is ignored whole, since packages like glossaries write
1444
+ # files with extensions no list could anticipate. One outside the
1445
+ # source directory can't be named from its .gitignore. Pure path
1446
+ # arithmetic, since os.path.relpath resolves 'aux' to a device on
1447
+ # Windows.
1448
+ if stage.aux_dir is not None:
1449
+ aux = norm(stage.aux_dir)
1450
+ src = norm(source_dir or ".")
1451
+ if src == ".":
1452
+ inside = aux != "." and not aux.startswith(("../", "/"))
1453
+ rel = aux
1454
+ else:
1455
+ inside = aux.startswith(src + "/")
1456
+ rel = aux[len(src) + 1 :]
1457
+ if inside:
1458
+ aux_globs.append(f"/{rel}/*")
1459
+ # Unless the PDF goes there too
1460
+ if stage.output_dir is not None and norm(stage.output_dir) == aux:
1461
+ aux_globs.append(f"!/{rel}/*.pdf")
1437
1462
  return _write_managed_gitignore_block(
1438
1463
  gitignore_path, marker="calkit latex aux files", lines=aux_globs
1439
1464
  )
@@ -390,7 +390,8 @@ def test_latex_diff_dvc_inputs(tmp_dir, tmp_path_factory):
390
390
  f.write("\\documentclass{article}\n")
391
391
  f.write("\\newcommand{\\wc}[1]{\\verbatiminput{#1.wcsum}}\n")
392
392
  f.write("\\begin{document}\nGreen\u2019s function\n")
393
- f.write("\\includegraphics{figs/plot}\n\\end{document}\n")
393
+ f.write("\\includegraphics{figs/plot}\n")
394
+ f.write("\\singlecol{\\input{setup}}\n\\end{document}\n")
394
395
  with open("paper/.latexmkrc", "w") as f:
395
396
  f.write("$aux_dir = 'aux';\n")
396
397
  with open("paper/figs/plot.png", "w") as f:
@@ -451,7 +452,11 @@ def test_latex_diff_dvc_inputs(tmp_dir, tmp_path_factory):
451
452
  output = get_diff_path("paper/main.tex", "v1", "HEAD")
452
453
  with open(output) as f:
453
454
  assert f.read() == "old\nnew\n"
454
- with open("paper/main-diff.tex", encoding="utf-8") as f:
455
+ # --keep-tex keeps what latexdiff saw beside the diff PDF, so a
456
+ # --flatten or macro expansion failure can be inspected
457
+ kept_stem = output.removesuffix(".pdf")
458
+ assert not os.path.exists("paper/main-diff.tex")
459
+ with open(f"{kept_stem}-diff.tex", encoding="utf-8") as f:
455
460
  marked_up = f.read()
456
461
  # A verbatim input named by a macro parameter is broken onto its own
457
462
  # line in each checkout rather than by latexdiff's --filter-script,
@@ -459,10 +464,21 @@ def test_latex_diff_dvc_inputs(tmp_dir, tmp_path_factory):
459
464
  assert "\\verbatiminput%\n{#1.wcsum}" in marked_up
460
465
  assert "Green\u2019s function" in marked_up
461
466
  with open(stubs / "latexdiff-args.txt") as f:
462
- assert "--filter-script" not in f.read()
467
+ latexdiff_args = f.read()
468
+ assert "--filter-script" not in latexdiff_args
469
+ # A macro wrapping an input is marked up as text, not one token
470
+ assert "--append-textcmd=singlecol" in latexdiff_args
463
471
  assert "\\includegraphics{../../base/paper/figs/plot.png}" in marked_up
464
472
  assert "\\includegraphics{figs/plot}" in marked_up
465
473
  assert not os.path.exists("paper/figs")
474
+ with open(f"{kept_stem}-old.tex", encoding="utf-8") as f:
475
+ old_tex = f.read()
476
+ with open(f"{kept_stem}-new.tex", encoding="utf-8") as f:
477
+ new_tex = f.read()
478
+ assert "\\verbatiminput%\n{#1.wcsum}" in old_tex
479
+ assert "\\verbatiminput%\n{#1.wcsum}" in new_tex
480
+ assert "../../base/paper/figs/plot.png" in old_tex
481
+ assert "../../base/paper/figs/plot.png" not in new_tex
466
482
  # The diff is built with the document's rc file, read before the
467
483
  # directories Calkit sets so those win, and latexdiff gets its options
468
484
  with open(stubs / "latexmk-args.txt") as f:
@@ -548,7 +564,43 @@ def test_latex_diff_dvc_inputs(tmp_dir, tmp_path_factory):
548
564
  assert result.returncode != 0
549
565
  assert "! Undefined control sequence." in result.stderr
550
566
  assert "l.3 \\oops" in result.stderr
551
- assert "exit status 12" in result.stderr
567
+ assert "exit code 12" in result.stderr
568
+ # Detection can't find another stage's uncached output at a revision
569
+ os.remove(stubs / "setup.txt")
570
+ bare = ["calkit", "latex", "diff", "paper/main.tex", "--from", "v1"]
571
+ bare += ["--to", "HEAD", "--force"]
572
+ result = subprocess.run(bare, capture_output=True, text=True, env=env)
573
+ assert result.returncode == 0, result.stderr
574
+ assert not os.path.exists(stubs / "setup.txt")
575
+ # But a document the pipeline builds is diffed the way its stage builds
576
+ # it, fetching what the compiled stage depends on
577
+ with open("calkit.yaml", "w") as f:
578
+ f.write(
579
+ "pipeline:\n"
580
+ " stages:\n"
581
+ " paper:\n"
582
+ " kind: latex\n"
583
+ " target_path: paper/main.tex\n"
584
+ " latexmkrc_path: paper/.latexmkrc\n"
585
+ " latexdiff_args: [--type=CFONT]\n"
586
+ )
587
+ with open("dvc.yaml", "a") as f:
588
+ f.write(
589
+ " paper:\n"
590
+ " cmd: calkit latex build paper/main.tex\n"
591
+ " deps: [paper/main.tex, paper/.latexmkrc, paper/setup.tex]\n"
592
+ )
593
+ result = subprocess.run(bare, capture_output=True, text=True, env=env)
594
+ assert result.returncode == 0, result.stderr
595
+ with open(stubs / "setup.txt") as f:
596
+ assert f.read() == "present\n"
597
+ with open(stubs / "latexdiff-args.txt") as f:
598
+ assert "--type=CFONT" in f.read().split()
599
+ with open(stubs / "latexmk-args.txt") as f:
600
+ latexmk_args = f.read().split()
601
+ assert latexmk_args[latexmk_args.index("-r") + 1].endswith(
602
+ "paper/.latexmkrc"
603
+ )
552
604
 
553
605
 
554
606
  def test_marked_up_digest_ignores_the_header():
@@ -630,11 +630,12 @@ def test_latex_stage_diffs():
630
630
  latexdiff_args=["--graphics-markup=both"],
631
631
  inputs=["pubs/paper-1/figs/"],
632
632
  diffs=[["v1", "v2"]],
633
+ keep_diff_tex=True,
633
634
  )
634
635
  assert configured.extra_dvc_stages()["paper-1-diff-v1-v2"]["cmd"] == (
635
636
  "calkit latex diff -e tex --no-check --from v1 --to v2 "
636
637
  "-r pubs/paper-1/.latexmkrc --latexmk-arg -shell-escape "
637
- "--latexdiff-arg --graphics-markup=both "
638
+ "--latexdiff-arg --graphics-markup=both --keep-tex "
638
639
  "--input pubs/paper-1/figs/ "
639
640
  "--output-dir .calkit/latex-diffs/v1..v2 pubs/paper-1/main.tex"
640
641
  )
@@ -2647,6 +2647,33 @@ def test_ensure_latex_aux_gitignore(tmp_dir):
2647
2647
  # The block is not duplicated and the unrelated entry survives
2648
2648
  assert contents.count("# >>> calkit latex aux files") == 1
2649
2649
  assert "figs/*.png" in contents
2650
+ # An aux dir is ignored whole, since packages write files with any
2651
+ # extension, but not one outside the source directory
2652
+ stage.output_dir = None
2653
+ stage.aux_dir = "paper/aux"
2654
+ assert _ensure_latex_aux_gitignore(stage)
2655
+ with open(gitignore_path) as f:
2656
+ contents = f.read()
2657
+ assert "/aux/*\n" in contents
2658
+ assert "!/aux/*.pdf" not in contents
2659
+ # Unless the PDF goes there too
2660
+ stage.output_dir = "paper/aux"
2661
+ assert _ensure_latex_aux_gitignore(stage)
2662
+ with open(gitignore_path) as f:
2663
+ assert "!/aux/*.pdf" in f.read()
2664
+ stage.output_dir = None
2665
+ stage.aux_dir = "build/aux"
2666
+ assert _ensure_latex_aux_gitignore(stage)
2667
+ with open(gitignore_path) as f:
2668
+ assert "aux/*" not in f.read()
2669
+ # Nor the source directory itself
2670
+ stage.aux_dir = "paper"
2671
+ assert _ensure_latex_aux_gitignore(stage) is False
2672
+ # Windows separators name the same directory
2673
+ stage.aux_dir = "paper\\aux"
2674
+ assert _ensure_latex_aux_gitignore(stage)
2675
+ with open(gitignore_path) as f:
2676
+ assert "/aux/*\n" in f.read()
2650
2677
  # When the stage has a wdir, paths are relative to it, so the .gitignore
2651
2678
  # lands under <wdir>/<source dir>, not the project root
2652
2679
  os.makedirs("sub/doc")
@@ -3425,7 +3425,7 @@ Options:
3425
3425
  | `--latexdiff-arg` | str | no | | Extra argument to pass through to latexdiff, e.g., '--type=CFONT'. Changed figures are shown old and new by default; pass '--graphics-markup=new-only' to show only the new. Repeat the option to pass more than one. |
3426
3426
  | `--input` | str | no | | File or directory the document reads. Anything in it tracked with DVC is fetched as it was at each revision. Defaults to the inputs detected in the document. Repeat the option to pass more than one. |
3427
3427
  | `--force`, `-f` | boolean | no | False | Rebuild even if nothing the diff depends on has changed since it was last built. |
3428
- | `--keep-tex` | boolean | no | False | Keep the generated diff .tex file for inspection. |
3428
+ | `--keep-tex` | boolean | no | False | Keep the old, new, and diff .tex files beside the diff PDF for inspection, e.g., .calkit/latex-diffs/v1/paper/main-old.tex. |
3429
3429
  | `--no-check` | boolean | no | False | Don't check the environment is valid before running. |
3430
3430
  | `--verbose`, `-v` | boolean | no | False | Print verbose output. |
3431
3431
 
@@ -219,22 +219,35 @@ To run all of a document's comparisons:
219
219
  calkit run paper-1.diffs
220
220
  ```
221
221
 
222
- ### Comparing against uncommitted work
222
+ ### Comparing on demand
223
223
 
224
- `calkit latex diff` runs a comparison on demand, and with no `--to` the
225
- newer side is the working tree:
224
+ Diffs created by the pipeline are for memorializing
225
+ committed versions.
226
+ To see uncommitted changes, `calkit latex diff` runs a comparison on demand,
227
+ and with no `--to` option specified, the comparison is the working copy:
226
228
 
227
229
  ```sh
228
- calkit latex diff pubs/paper-1/main.tex --from main --env tex
230
+ calkit latex diff pubs/paper-1/main.tex --from main
229
231
  # .calkit/local/latex-diffs/main..working/pubs/paper-1/main.pdf
230
232
  ```
231
233
 
232
234
  Those diffs can't be reproduced from two revisions, so they're not tracked,
233
235
  ending up in the project's `.calkit/local` directory.
234
- With no `--from` it compares against the merge base with the default branch.
235
- DVC-tracked files the document names directly are fetched for the older
236
- side, but a pipeline output without a `.dvc` file isn't found that way, so
237
- name any of those with `--input`, e.g., `--input pubs/paper-1/figs/`.
236
+ With no `--from` it compares against the merge base with the default
237
+ branch--typically `main`.
238
+ If a `latex` pipeline stage builds the document,
239
+ the diff is built with the stage configuration, i.e.,
240
+ its environment, settings, and inputs,
241
+ so the diff uses both revisions of the figures, tables, and results.
242
+
243
+ To see the .tex files sent into `latexdiff`, e.g., when the
244
+ marked-up document fails to build, pass `--keep-tex`,
245
+ or set `keep_diff_tex: true` on the stage.
246
+ The old, new, and marked-up `.tex` files are kept beside the diff PDF,
247
+ e.g., `main-old.tex`, `main-new.tex`, and `main-diff.tex`.
248
+
249
+ In VS Code, the Calkit extension's "Diff LaTeX Document Against..." command
250
+ does the same from the editor, and opens the result.
238
251
 
239
252
  ## Interoperability with Microsoft Word
240
253
 
@@ -426,8 +426,9 @@ Model class: `LatexStage`
426
426
  | `aux_dir` | str \| None | no | null | Directory for latexmk auxiliary files. |
427
427
  | `latexmkrc_path` | str \| None | no | null | Path to a latexmkrc file to use. |
428
428
  | `pdf_storage` | Literal['git', 'dvc'] \| None | no | 'dvc' | Where to store the resulting PDF. |
429
- | `diffs` | list[str \| list[str]] | no | | Comparisons to keep for this document, each a pair of revisions. A bare string is shorthand for comparing that revision against the working tree. |
429
+ | `diffs` | list[str \| list[str]] | no | | Comparisons to keep for this document, each a pair of revisions. A bare string is shorthand for comparing that revision against HEAD. |
430
430
  | `diff_pdf_storage` | Literal['git', 'dvc'] \| None | no | 'dvc' | Where to store the resulting diff PDFs. |
431
+ | `keep_diff_tex` | bool | no | False | Keep the old, new, and marked-up .tex files beside each diff PDF for inspection. |
431
432
  | `verbose` | bool | no | False | Show full latexmk output. |
432
433
  | `force` | bool | no | False | Keep compiling despite errors (latexmk -f). |
433
434
  | `synctex` | bool | no | True | Generate SyncTeX data for editor/PDF navigation. |
@@ -2323,7 +2323,7 @@
2323
2323
  },
2324
2324
  "diffs": {
2325
2325
  "default": [],
2326
- "description": "Comparisons to keep for this document, each a pair of revisions. A bare string is shorthand for comparing that revision against the working tree.",
2326
+ "description": "Comparisons to keep for this document, each a pair of revisions. A bare string is shorthand for comparing that revision against HEAD.",
2327
2327
  "items": {
2328
2328
  "anyOf": [
2329
2329
  {
@@ -2410,6 +2410,12 @@
2410
2410
  "description": "Arguments over which to run this stage multiple times.",
2411
2411
  "title": "Iterate Over"
2412
2412
  },
2413
+ "keep_diff_tex": {
2414
+ "default": false,
2415
+ "description": "Keep the old, new, and marked-up .tex files beside each diff PDF for inspection.",
2416
+ "title": "Keep Diff Tex",
2417
+ "type": "boolean"
2418
+ },
2413
2419
  "kind": {
2414
2420
  "const": "latex",
2415
2421
  "default": "latex",