calkit-python 0.45.3__tar.gz → 0.46.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1013) hide show
  1. {calkit_python-0.45.3 → calkit_python-0.46.0}/PKG-INFO +4 -2
  2. {calkit_python-0.45.3 → calkit_python-0.46.0}/actions/run/README.md +4 -0
  3. {calkit_python-0.45.3 → calkit_python-0.46.0}/actions/run/action.yml +19 -0
  4. {calkit_python-0.45.3/calkit/resources/github-actions → calkit_python-0.46.0/actions/run}/example.yml +4 -0
  5. calkit_python-0.46.0/agent-plugin/skills/build-paper-pipeline/SKILL.md +152 -0
  6. calkit_python-0.46.0/agent-plugin/skills/check-questions/SKILL.md +144 -0
  7. calkit_python-0.46.0/agent-plugin/skills/check-reproducibility/SKILL.md +112 -0
  8. {calkit_python-0.45.3 → calkit_python-0.46.0}/agent-plugin/skills/conventions/SKILL.md +19 -76
  9. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/cli/check.py +664 -126
  10. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/cli/core.py +32 -3
  11. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/cli/import_.py +194 -23
  12. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/cli/latex.py +25 -0
  13. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/cli/list.py +106 -2
  14. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/cli/main/core.py +520 -101
  15. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/cli/new.py +65 -6
  16. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/cli/scheduler.py +10 -16
  17. calkit_python-0.46.0/calkit/cli/sync.py +343 -0
  18. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/cli/update.py +176 -33
  19. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/config.py +5 -0
  20. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/core.py +81 -21
  21. calkit_python-0.46.0/calkit/docker.py +1255 -0
  22. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/environments.py +160 -17
  23. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/git.py +5 -2
  24. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/hub.py +14 -2
  25. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/models/core.py +419 -34
  26. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/models/pipeline.py +284 -31
  27. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/pipeline.py +93 -1
  28. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/procedures.py +26 -0
  29. calkit_python-0.46.0/calkit/provenance.py +840 -0
  30. calkit_python-0.46.0/calkit/questions.py +809 -0
  31. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/releases.py +159 -0
  32. calkit_python-0.46.0/calkit/reproducibility.py +898 -0
  33. {calkit_python-0.45.3/actions/run → calkit_python-0.46.0/calkit/resources/github-actions}/example.yml +4 -0
  34. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/cli/main/test_core.py +297 -18
  35. calkit_python-0.46.0/calkit/tests/cli/test_check.py +1277 -0
  36. calkit_python-0.46.0/calkit/tests/cli/test_import.py +388 -0
  37. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/cli/test_latex.py +75 -13
  38. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/cli/test_update.py +90 -19
  39. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/test_core.py +17 -1
  40. calkit_python-0.46.0/calkit/tests/test_docker.py +492 -0
  41. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/test_environments.py +97 -0
  42. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/test_hub.py +45 -0
  43. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/test_models.py +8 -7
  44. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/test_pipeline.py +468 -0
  45. calkit_python-0.46.0/calkit/tests/test_procedures.py +297 -0
  46. calkit_python-0.46.0/calkit/tests/test_provenance.py +580 -0
  47. calkit_python-0.46.0/calkit/tests/test_questions.py +358 -0
  48. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/test_releases.py +64 -0
  49. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/test_reproducibility.py +68 -1
  50. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/test_schema.py +25 -0
  51. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/ai-tools.md +7 -1
  52. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/calkit-yaml.md +73 -50
  53. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/cli-reference.md +648 -493
  54. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/environments.md +244 -38
  55. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/hpc.md +11 -4
  56. calkit_python-0.46.0/docs/hub/self-hosting.md +167 -0
  57. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/pipeline/index.md +65 -39
  58. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/provenance.md +160 -1
  59. calkit_python-0.46.0/docs/questions.md +138 -0
  60. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/releases.md +67 -0
  61. {calkit_python-0.45.3/vscode-ext → calkit_python-0.46.0/docs}/schemas/calkit.json +1174 -70
  62. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/index.md +1 -0
  63. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/procedures.md +38 -17
  64. calkit_python-0.46.0/docs/tutorials/writing-first.md +151 -0
  65. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/version-control.md +26 -0
  66. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/.env.example +10 -0
  67. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/api/deps.py +2 -2
  68. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/api/routes/misc.py +72 -1
  69. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/api/routes/projects/core.py +248 -69
  70. calkit_python-0.46.0/hub/backend/app/cache.py +141 -0
  71. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/config.py +50 -1
  72. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/core.py +2 -0
  73. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/git.py +188 -36
  74. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/main.py +61 -2
  75. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/models/core.py +4 -0
  76. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/pipeline.py +33 -7
  77. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/projects.py +22 -2
  78. calkit_python-0.46.0/hub/backend/app/tasks.py +131 -0
  79. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/__init__.py +2 -4
  80. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/api/routes/projects/test_activity.py +1 -5
  81. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/api/routes/projects/test_core.py +72 -103
  82. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/api/routes/projects/test_datasets.py +10 -18
  83. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/api/routes/projects/test_dvc.py +6 -21
  84. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/api/routes/projects/test_figure_upload.py +1 -3
  85. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/api/routes/projects/test_figures.py +1 -3
  86. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/api/routes/projects/test_fs.py +3 -7
  87. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/api/routes/projects/test_misc.py +1 -2
  88. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/api/routes/projects/test_overleaf_links.py +13 -18
  89. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/api/routes/projects/test_pipeline.py +1 -2
  90. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/api/routes/projects/test_publications.py +1 -2
  91. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/api/routes/projects/test_reference_items.py +1 -3
  92. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/api/routes/test_feedback.py +9 -9
  93. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/api/routes/test_login.py +27 -33
  94. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/api/routes/test_misc.py +61 -10
  95. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/api/routes/test_releases.py +10 -36
  96. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/api/routes/test_users.py +46 -58
  97. calkit_python-0.46.0/hub/backend/app/tests/test_cache.py +156 -0
  98. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/test_git.py +197 -0
  99. calkit_python-0.46.0/hub/backend/app/tests/test_tasks.py +54 -0
  100. calkit_python-0.46.0/hub/backend/app/thumbnails.py +139 -0
  101. calkit_python-0.46.0/hub/backend/app/warm.py +210 -0
  102. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/pyproject.toml +9 -0
  103. calkit_python-0.46.0/hub/config/grafana/provisioning/dashboards/warm-queue.json +342 -0
  104. calkit_python-0.46.0/hub/config/prometheus/prometheus.yml +31 -0
  105. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/docker-compose.yml +136 -0
  106. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/package-lock.json +1 -0
  107. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/package.json +1 -0
  108. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/client/index.ts +6 -1
  109. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/client/schemas.gen.ts +113 -47
  110. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/client/sdk.gen.ts +63 -0
  111. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/client/types.gen.ts +112 -23
  112. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/ArtifactCompareModal.tsx +12 -3
  113. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/Mermaid.tsx +94 -4
  114. calkit_python-0.46.0/hub/frontend/src/components/Common/TexText.tsx +84 -0
  115. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Datasets/NewDataset.tsx +5 -7
  116. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Notebooks/NotebookView.tsx +51 -2
  117. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Onboarding/ProjectChecklist.tsx +14 -4
  118. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Projects/EditQuestion.tsx +19 -2
  119. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Publications/PublicationComponents.tsx +7 -3
  120. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/References/ReferencesInfoPanel.tsx +1 -1
  121. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Tables/TableThumbnail.tsx +13 -2
  122. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Tables/TableView.tsx +29 -3
  123. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/hooks/useProject.ts +8 -0
  124. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/tables.test.ts +96 -3
  125. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/tables.ts +173 -28
  126. calkit_python-0.46.0/hub/frontend/src/lib/tex.test.ts +45 -0
  127. calkit_python-0.46.0/hub/frontend/src/lib/tex.ts +76 -0
  128. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/datasets.tsx +24 -11
  129. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/figures.tsx +137 -13
  130. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/notebooks.tsx +2 -2
  131. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/pipeline.tsx +168 -35
  132. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/publications.tsx +4 -1
  133. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/tables.tsx +2 -2
  134. {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/jest.config.js +22 -4
  135. {calkit_python-0.45.3 → calkit_python-0.46.0}/mkdocs.yml +1 -0
  136. {calkit_python-0.45.3 → calkit_python-0.46.0}/pyproject.toml +7 -2
  137. {calkit_python-0.45.3 → calkit_python-0.46.0}/scripts/generate-docs-references.py +49 -34
  138. {calkit_python-0.45.3 → calkit_python-0.46.0}/uv.lock +84 -5
  139. {calkit_python-0.45.3/docs → calkit_python-0.46.0/vscode-ext}/schemas/calkit.json +1174 -70
  140. {calkit_python-0.45.3 → calkit_python-0.46.0}/vscode-ext/src/extension.ts +3 -2
  141. calkit_python-0.45.3/calkit/cli/sync.py +0 -80
  142. calkit_python-0.45.3/calkit/docker.py +0 -470
  143. calkit_python-0.45.3/calkit/provenance.py +0 -28
  144. calkit_python-0.45.3/calkit/reproducibility.py +0 -476
  145. calkit_python-0.45.3/calkit/tests/cli/test_check.py +0 -368
  146. calkit_python-0.45.3/calkit/tests/cli/test_import.py +0 -25
  147. calkit_python-0.45.3/calkit/tests/test_docker.py +0 -70
  148. calkit_python-0.45.3/calkit/tests/test_procedures.py +0 -64
  149. calkit_python-0.45.3/docs/hub/self-hosting.md +0 -88
  150. calkit_python-0.45.3/docs/questions.md +0 -31
  151. calkit_python-0.45.3/hub/config/prometheus/prometheus.yml +0 -16
  152. {calkit_python-0.45.3 → calkit_python-0.46.0}/.claude-plugin/marketplace.json +0 -0
  153. {calkit_python-0.45.3 → calkit_python-0.46.0}/.dockerignore +0 -0
  154. {calkit_python-0.45.3 → calkit_python-0.46.0}/.gitattributes +0 -0
  155. {calkit_python-0.45.3 → calkit_python-0.46.0}/.gitignore +0 -0
  156. {calkit_python-0.45.3 → calkit_python-0.46.0}/.gitmodules +0 -0
  157. {calkit_python-0.45.3 → calkit_python-0.46.0}/.pre-commit-config.yaml +0 -0
  158. {calkit_python-0.45.3 → calkit_python-0.46.0}/.prettierignore +0 -0
  159. {calkit_python-0.45.3 → calkit_python-0.46.0}/.prettierrc.json +0 -0
  160. {calkit_python-0.45.3 → calkit_python-0.46.0}/.python-version +0 -0
  161. {calkit_python-0.45.3 → calkit_python-0.46.0}/.vscode/launch.json +0 -0
  162. {calkit_python-0.45.3 → calkit_python-0.46.0}/.vscode/tasks.json +0 -0
  163. {calkit_python-0.45.3 → calkit_python-0.46.0}/AGENTS.md +0 -0
  164. {calkit_python-0.45.3 → calkit_python-0.46.0}/CITATION.cff +0 -0
  165. {calkit_python-0.45.3 → calkit_python-0.46.0}/CODE_OF_CONDUCT.md +0 -0
  166. {calkit_python-0.45.3 → calkit_python-0.46.0}/CONTRIBUTING.md +0 -0
  167. {calkit_python-0.45.3 → calkit_python-0.46.0}/LICENSE +0 -0
  168. {calkit_python-0.45.3 → calkit_python-0.46.0}/Makefile +0 -0
  169. {calkit_python-0.45.3 → calkit_python-0.46.0}/README.md +0 -0
  170. {calkit_python-0.45.3 → calkit_python-0.46.0}/agent-plugin/.claude-plugin/plugin.json +0 -0
  171. {calkit_python-0.45.3 → calkit_python-0.46.0}/agent-plugin/skills/add-pipeline-stage/SKILL.md +0 -0
  172. {calkit_python-0.45.3 → calkit_python-0.46.0}/agent-plugin/skills/create-pipeline/SKILL.md +0 -0
  173. {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/.gitignore +0 -0
  174. {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/README.md +0 -0
  175. {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/options.html +0 -0
  176. {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/package-lock.json +0 -0
  177. {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/package.json +0 -0
  178. {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/popup.html +0 -0
  179. {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/public/icons/calkit-128.png +0 -0
  180. {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/public/icons/calkit-16.png +0 -0
  181. {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/public/icons/calkit-32.png +0 -0
  182. {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/public/icons/calkit-48.png +0 -0
  183. {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/public/icons/calkit.svg +0 -0
  184. {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/public/manifest.json +0 -0
  185. {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/scripts/build-content.mjs +0 -0
  186. {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/scripts/package-manifest.mjs +0 -0
  187. {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/scripts/store-screenshots.py +0 -0
  188. {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/scripts/watch.mjs +0 -0
  189. {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/src/background/index.ts +0 -0
  190. {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/src/content/github.ts +0 -0
  191. {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/src/content/overleaf.ts +0 -0
  192. {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/src/content/references.ts +0 -0
  193. {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/src/core/api.ts +0 -0
  194. {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/src/core/auth.ts +0 -0
  195. {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/src/core/calkit-yaml.test.ts +0 -0
  196. {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/src/core/calkit-yaml.ts +0 -0
  197. {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/src/core/detect.test.ts +0 -0
  198. {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/src/core/detect.ts +0 -0
  199. {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/src/core/hub-url.ts +0 -0
  200. {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/src/core/hubs.test.ts +0 -0
  201. {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/src/core/hubs.ts +0 -0
  202. {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/src/core/latex.test.ts +0 -0
  203. {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/src/core/latex.ts +0 -0
  204. {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/src/core/lifecycle.ts +0 -0
  205. {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/src/core/messages.test.ts +0 -0
  206. {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/src/core/messages.ts +0 -0
  207. {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/src/core/pickers.ts +0 -0
  208. {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/src/core/storage.ts +0 -0
  209. {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/src/core/types.ts +0 -0
  210. {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/src/core/ui.test.ts +0 -0
  211. {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/src/core/ui.ts +0 -0
  212. {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/src/options/options.ts +0 -0
  213. {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/src/popup/popup.css +0 -0
  214. {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/src/popup/popup.ts +0 -0
  215. {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/src/viewer/viewer.ts +0 -0
  216. {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/tsconfig.json +0 -0
  217. {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/viewer.html +0 -0
  218. {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/vite.config.ts +0 -0
  219. {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/vite.content.config.ts +0 -0
  220. {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/vitest.config.ts +0 -0
  221. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/__init__.py +0 -0
  222. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/__main__.py +0 -0
  223. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/calc.py +0 -0
  224. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/cli/__init__.py +0 -0
  225. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/cli/config.py +0 -0
  226. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/cli/delete.py +0 -0
  227. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/cli/describe.py +0 -0
  228. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/cli/dev.py +0 -0
  229. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/cli/hub.py +0 -0
  230. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/cli/main/__init__.py +0 -0
  231. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/cli/main/xr.py +0 -0
  232. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/cli/notebooks.py +0 -0
  233. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/cli/office.py +0 -0
  234. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/cli/overleaf.py +0 -0
  235. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/conda.py +0 -0
  236. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/datasets.py +0 -0
  237. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/dependencies.py +0 -0
  238. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/detect.py +0 -0
  239. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/dvc/__init__.py +0 -0
  240. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/dvc/core.py +0 -0
  241. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/dvc/zip.py +0 -0
  242. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/fs.py +0 -0
  243. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/github.py +0 -0
  244. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/gui.py +0 -0
  245. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/install.py +0 -0
  246. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/invenio.py +0 -0
  247. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/julia.py +0 -0
  248. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/jupyter.py +0 -0
  249. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/jupyterlab/__init__.py +0 -0
  250. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/jupyterlab/routes.py +0 -0
  251. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/labextension/package.json +0 -0
  252. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/labextension/schemas/calkit/package.json.orig +0 -0
  253. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/labextension/schemas/calkit/plugin.json +0 -0
  254. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/labextension/static/502.9a2c5772a15466e923ef.js +0 -0
  255. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/labextension/static/695.2c41003a452d43d2b358.js +0 -0
  256. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/labextension/static/867.a42a046aa5108f54f8fb.js +0 -0
  257. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/labextension/static/909.6d8285ce7c45878ac508.js +0 -0
  258. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/labextension/static/946.050af2abf7845cfbdbd2.js +0 -0
  259. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/labextension/static/946.050af2abf7845cfbdbd2.js.LICENSE.txt +0 -0
  260. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/labextension/static/b2f1c3efe70cb539d121.png +0 -0
  261. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/labextension/static/remoteEntry.d7a43c7948f690d37d19.js +0 -0
  262. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/labextension/static/style.js +0 -0
  263. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/labextension/static/third-party-licenses.json +0 -0
  264. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/latex.py +0 -0
  265. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/licenses.py +0 -0
  266. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/magics.py +0 -0
  267. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/markdown.py +0 -0
  268. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/matlab.py +0 -0
  269. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/models/__init__.py +0 -0
  270. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/models/io.py +0 -0
  271. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/models/iteration.py +0 -0
  272. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/notebooks.py +0 -0
  273. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/office.py +0 -0
  274. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/ops.py +0 -0
  275. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/overleaf.py +0 -0
  276. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/resources/README.md +0 -0
  277. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/resources/__init__.py +0 -0
  278. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/resources/devcontainer/Dockerfile +0 -0
  279. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/resources/devcontainer/README.md +0 -0
  280. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/resources/devcontainer/base.json +0 -0
  281. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/resources/devcontainer/devcontainer.json +0 -0
  282. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/resources/devcontainer/scripts/check-envs.sh +0 -0
  283. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/resources/devcontainer/scripts/post-create.sh +0 -0
  284. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/resources/devcontainer/scripts/post-start.sh +0 -0
  285. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/resources/devcontainer/scripts/update-content.sh +0 -0
  286. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/resources/vscode/README.md +0 -0
  287. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/resources/vscode/extensions.json +0 -0
  288. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/resources/vscode/settings.json +0 -0
  289. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/schema.py +0 -0
  290. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/server.py +0 -0
  291. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/templates/__init__.py +0 -0
  292. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/templates/core.py +0 -0
  293. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/templates/latex/__init__.py +0 -0
  294. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/templates/latex/article/paper.tex +0 -0
  295. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/templates/latex/core.py +0 -0
  296. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/templates/latex/ieee-conference/paper.tex +0 -0
  297. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/templates/latex/jfm/jfm.bst +0 -0
  298. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/templates/latex/jfm/jfm.cls +0 -0
  299. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/templates/latex/jfm/lineno-FLM.sty +0 -0
  300. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/templates/latex/jfm/paper.tex +0 -0
  301. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/templates/latex/jfm/upmath.sty +0 -0
  302. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/templates/latex/report/paper.tex +0 -0
  303. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/__init__.py +0 -0
  304. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/cli/__init__.py +0 -0
  305. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/cli/main/__init__.py +0 -0
  306. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/cli/main/test_lock.py +0 -0
  307. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/cli/main/test_subprojects.py +0 -0
  308. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/cli/main/test_xr.py +0 -0
  309. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/cli/test_config.py +0 -0
  310. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/cli/test_core.py +0 -0
  311. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/cli/test_delete.py +0 -0
  312. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/cli/test_describe.py +0 -0
  313. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/cli/test_hub.py +0 -0
  314. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/cli/test_list.py +0 -0
  315. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/cli/test_new.py +0 -0
  316. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/cli/test_notebooks.py +0 -0
  317. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/cli/test_overleaf.py +0 -0
  318. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/cli/test_scheduler.py +0 -0
  319. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/cli/test_sync.py +0 -0
  320. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/dvc/__init__.py +0 -0
  321. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/dvc/test_core.py +0 -0
  322. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/dvc/test_zip.py +0 -0
  323. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/jupyterlab/__init__.py +0 -0
  324. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/jupyterlab/conftest.py +0 -0
  325. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/jupyterlab/test_routes.py +0 -0
  326. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/models/__init__.py +0 -0
  327. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/models/test_core.py +0 -0
  328. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/models/test_iteration.py +0 -0
  329. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/models/test_pipeline.py +0 -0
  330. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/test_calc.py +0 -0
  331. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/test_conda.py +0 -0
  332. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/test_config.py +0 -0
  333. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/test_dependencies.py +0 -0
  334. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/test_detect.py +0 -0
  335. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/test_docs_references.py +0 -0
  336. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/test_fs.py +0 -0
  337. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/test_git.py +0 -0
  338. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/test_install.py +0 -0
  339. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/test_invenio.py +0 -0
  340. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/test_julia.py +0 -0
  341. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/test_jupyter.py +0 -0
  342. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/test_keyring_windows.py +0 -0
  343. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/test_licenses.py +0 -0
  344. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/test_magics.py +0 -0
  345. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/test_markdown.py +0 -0
  346. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/test_matlab.py +0 -0
  347. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/test_notebooks.py +0 -0
  348. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/test_overleaf.py +0 -0
  349. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/test_resources.py +0 -0
  350. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/test_templates.py +0 -0
  351. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/test_workspace.py +0 -0
  352. {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/workspace.py +0 -0
  353. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/CNAME +0 -0
  354. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/acknowledgements.md +0 -0
  355. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/apps.md +0 -0
  356. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/browser-ext/index.md +0 -0
  357. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/browser-ext/privacy.md +0 -0
  358. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/calculations.md +0 -0
  359. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/cloud-integration.md +0 -0
  360. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/datasets.md +0 -0
  361. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/examples.md +0 -0
  362. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/governance.md +0 -0
  363. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/help.md +0 -0
  364. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/hub/index.md +0 -0
  365. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/img/c-to-the-k-white.svg +0 -0
  366. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/img/calkit-fragmentation-compendium.png +0 -0
  367. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/img/calkit-no-bg.png +0 -0
  368. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/img/caltech.png +0 -0
  369. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/img/connect-zenodo.png +0 -0
  370. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/img/jupyterlab/all-green.png +0 -0
  371. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/img/jupyterlab/collect-data-stale.png +0 -0
  372. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/img/jupyterlab/new-env.png +0 -0
  373. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/img/jupyterlab/new-notebook.png +0 -0
  374. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/img/jupyterlab/pipeline-badge.png +0 -0
  375. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/img/jupyterlab-params.png +0 -0
  376. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/img/pipeline.png +0 -0
  377. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/img/plos-osi-code-2024-03.png +0 -0
  378. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/img/schmidt-sciences.png +0 -0
  379. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/img/vscode-nb-params.png +0 -0
  380. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/index.md +0 -0
  381. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/installation.md +0 -0
  382. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/jupyterlab.md +0 -0
  383. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/latex.md +0 -0
  384. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/local-server.md +0 -0
  385. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/notebooks.md +0 -0
  386. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/overleaf.md +0 -0
  387. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/pipeline/manual-steps.md +0 -0
  388. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/pipeline/markdown.md +0 -0
  389. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/pipeline/running-and-logging.md +0 -0
  390. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/quickstart.md +0 -0
  391. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/references.md +0 -0
  392. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/reproducibility.md +0 -0
  393. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/requirements.md +0 -0
  394. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/subprojects.md +0 -0
  395. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/adding-latex-pub-docker.md +0 -0
  396. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/ai-agents.md +0 -0
  397. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/conda-envs.md +0 -0
  398. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/existing-project.md +0 -0
  399. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/first-project.md +0 -0
  400. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/github-actions.md +0 -0
  401. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/actions-repo-secrets.png +0 -0
  402. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/latex-codespaces/building-codespace.png +0 -0
  403. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/latex-codespaces/codespaces-secrets-2.png +0 -0
  404. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/latex-codespaces/editor-split.png +0 -0
  405. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/latex-codespaces/go-to-linked-code.png +0 -0
  406. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/latex-codespaces/issue-from-selection.png +0 -0
  407. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/latex-codespaces/new-project.png +0 -0
  408. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/latex-codespaces/new-pub-2.png +0 -0
  409. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/latex-codespaces/new-token.png +0 -0
  410. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/latex-codespaces/paper.tex.png +0 -0
  411. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/latex-codespaces/project-home-3.png +0 -0
  412. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/latex-codespaces/push.png +0 -0
  413. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/latex-codespaces/stage.png +0 -0
  414. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/office/anakin-excel.jpg +0 -0
  415. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/office/chart-more-rows.png +0 -0
  416. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/office/create-project.png +0 -0
  417. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/office/elsevier-research-data-guidelines.png +0 -0
  418. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/office/excel-chart.png +0 -0
  419. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/office/excel-data.png +0 -0
  420. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/office/insert-link-to-file.png +0 -0
  421. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/office/needs-clone.png +0 -0
  422. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/office/new-stage.png +0 -0
  423. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/office/phd-comics-version-control.webp +0 -0
  424. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/office/pipeline-out-of-date.png +0 -0
  425. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/office/status-more-rows.png +0 -0
  426. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/office/uncommitted-changes.png +0 -0
  427. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/office/untracked-data.png +0 -0
  428. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/office/updated-publication.png +0 -0
  429. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/office/word-to-pdf-stage-2.png +0 -0
  430. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/office/workflow-page.png +0 -0
  431. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/openfoam/clone.png +0 -0
  432. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/openfoam/create-project.png +0 -0
  433. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/openfoam/datasets-page.png +0 -0
  434. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/openfoam/figure-on-website-updated.png +0 -0
  435. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/openfoam/figure-on-website.png +0 -0
  436. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/openfoam/new-token.png +0 -0
  437. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/openfoam/reclone.png +0 -0
  438. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/openfoam/status-after-import-dataset.png +0 -0
  439. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/quick-actions.png +0 -0
  440. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/run-proc.png +0 -0
  441. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/vscode-slurm-notebook/create-calkit-env.png +0 -0
  442. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/vscode-slurm-notebook/create-inner-env.png +0 -0
  443. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/vscode-slurm-notebook/create-new-calkit-env.png +0 -0
  444. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/vscode-slurm-notebook/select-calkit-env.png +0 -0
  445. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/vscode-slurm-notebook/slurm-job-running.png +0 -0
  446. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/vscode-slurm-notebook/slurm-launch-options.png +0 -0
  447. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/vscode-slurm-notebook/starting-slurm-job.png +0 -0
  448. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/jupyterlab.md +0 -0
  449. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/latex-codespaces.md +0 -0
  450. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/matlab.md +0 -0
  451. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/notebook-pipeline.md +0 -0
  452. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/office.md +0 -0
  453. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/openfoam.md +0 -0
  454. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/runnable-readme.md +0 -0
  455. {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/vscode-slurm-notebook.md +0 -0
  456. {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown/.calkit/envs/jl/Manifest.toml +0 -0
  457. {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown/.calkit/envs/jl/Project.toml +0 -0
  458. {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown/.calkit/envs/py/.python-version +0 -0
  459. {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown/.calkit/envs/py/pyproject.toml +0 -0
  460. {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown/.calkit/envs/py/uv.lock +0 -0
  461. {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown/.calkit/envs/r/.Rbuildignore +0 -0
  462. {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown/.calkit/envs/r/.Rprofile +0 -0
  463. {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown/.calkit/envs/r/DESCRIPTION +0 -0
  464. {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown/.calkit/envs/r/renv/.gitignore +0 -0
  465. {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown/.calkit/envs/r/renv/activate.R +0 -0
  466. {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown/.calkit/envs/r/renv/settings.json +0 -0
  467. {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown/.calkit/envs/r/renv.lock +0 -0
  468. {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown/.dvc/.gitignore +0 -0
  469. {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown/.dvc/config +0 -0
  470. {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown/.dvcignore +0 -0
  471. {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown/.gitignore +0 -0
  472. {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown/README.md +0 -0
  473. {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown/calkit.yaml +0 -0
  474. {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown/data/data.csv +0 -0
  475. {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown/data/data2.csv +0 -0
  476. {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown/dvc.lock +0 -0
  477. {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown/dvc.yaml +0 -0
  478. {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown/figures/data2.png +0 -0
  479. {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown/figures/figure.png +0 -0
  480. {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown/results/fit.json +0 -0
  481. {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown-python/.dvc/.gitignore +0 -0
  482. {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown-python/.dvc/config +0 -0
  483. {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown-python/.dvcignore +0 -0
  484. {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown-python/.gitignore +0 -0
  485. {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown-python/.python-version +0 -0
  486. {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown-python/README.md +0 -0
  487. {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown-python/calkit.yaml +0 -0
  488. {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown-python/dvc.lock +0 -0
  489. {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown-python/dvc.yaml +0 -0
  490. {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown-python/figures/waves.png +0 -0
  491. {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown-python/pyproject.toml +0 -0
  492. {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown-python/src/wavetools/__init__.py +0 -0
  493. {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown-python/uv.lock +0 -0
  494. {calkit_python-0.45.3 → calkit_python-0.46.0}/flake.lock +0 -0
  495. {calkit_python-0.45.3 → calkit_python-0.46.0}/flake.nix +0 -0
  496. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/.gitattributes +0 -0
  497. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/.gitignore +0 -0
  498. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/.vscode/launch.json +0 -0
  499. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/AGENTS.md +0 -0
  500. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/LICENSE +0 -0
  501. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/Makefile +0 -0
  502. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/README.md +0 -0
  503. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/.gitignore +0 -0
  504. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/.python-version +0 -0
  505. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/Dockerfile +0 -0
  506. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/Makefile +0 -0
  507. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/README.md +0 -0
  508. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/alembic.ini +0 -0
  509. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/__init__.py +0 -0
  510. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/README +0 -0
  511. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/env.py +0 -0
  512. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/script.py.mako +0 -0
  513. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/.keep +0 -0
  514. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/07c8236476c4_add_fields_to_usertoken.py +0 -0
  515. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/10a05eaedfbd_add_dataset_table.py +0 -0
  516. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/1546aa334cd5_make_project_description_nullable.py +0 -0
  517. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/1a31ce608336_add_cascade_delete_relationships.py +0 -0
  518. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/1fb6e38eb0e9_add_deviceauth_table.py +0 -0
  519. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/208e7457f3ba_add_title_to_project.py +0 -0
  520. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/2e7c25a00842_add_is_public_to_project.py +0 -0
  521. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/38e178698db2_update_subscription_model_to_use_plan_.py +0 -0
  522. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/3b1e67e9c318_add_usertoken_table.py +0 -0
  523. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/4dac15c0282a_add_stripe_customer_id_to_user.py +0 -0
  524. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/4e1c917fcca4_add_status_columns_to_project_table.py +0 -0
  525. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/5ba89308431f_add_project_table.py +0 -0
  526. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/5d6f8217c890_add_subscriber_user_id_to_org_.py +0 -0
  527. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/65b2d15cc702_add_github_username_field_to_user.py +0 -0
  528. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/697c3c1a8a27_add_git_repo_url_to_project.py +0 -0
  529. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/6f3a3afbea8b_add_number_field_to_question.py +0 -0
  530. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/7076d9b5c887_use_account_for_project_owner.py +0 -0
  531. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/71e1d1e69bbd_add_table_for_storing_user_github_tokens.py +0 -0
  532. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/799476973bce_add_created_ts_to_user_github_token_.py +0 -0
  533. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/7cacee34034c_add_parent_child_relationship_to_.py +0 -0
  534. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/97762605447f_add_onboarding_flags_and_feedback.py +0 -0
  535. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/9c0a54914c78_add_max_length_for_string_varchar_.py +0 -0
  536. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/9c4f70636d73_add_fields_to_usertoken.py +0 -0
  537. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/a333fc5aa994_index_project_folders_synced_with_.py +0 -0
  538. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/a4af19842927_create_table_to_store_user_zenodo_tokens.py +0 -0
  539. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/ab7816be480b_drop_items.py +0 -0
  540. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/ac622559475f_save_timestamps_for_github_token_.py +0 -0
  541. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/af024967630d_lowercase_account_names.py +0 -0
  542. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/c1f9a3e27d48_consolidate_comment_tables.py +0 -0
  543. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/c46a78ba506c_add_created_column_to_account.py +0 -0
  544. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/c749b39072d3_add_figurecomment.py +0 -0
  545. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/c7c41c3f0d22_add_user_external_credential_table.py +0 -0
  546. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/d01ce914143d_make_question_a_table.py +0 -0
  547. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/d21ed1c9537e_add_zenodo_user_id_column_to_user.py +0 -0
  548. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/d3a8021fb433_add_table_for_user_project_access.py +0 -0
  549. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/d4e5f6a7b8c9_ghless_membership_and_invitations.py +0 -0
  550. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/d6366015af35_add_discount_code_table.py +0 -0
  551. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/d98dd8ec85a3_edit_replace_id_integers_in_all_models_.py +0 -0
  552. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/dcef842dee10_add_refreshtoken_table.py +0 -0
  553. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/e1b0fa2a6d34_backfill_external_credentials_from_legacy_.py +0 -0
  554. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/e2412789c190_initialize_models.py +0 -0
  555. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/e7671197c00b_add_account_table.py +0 -0
  556. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/ed74edb0a9e6_create_table_for_user_overleaf_token.py +0 -0
  557. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/edcabfca98df_add_subscription_and_org_membership_.py +0 -0
  558. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/f0e23e048b1b_add_fields_to_project.py +0 -0
  559. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/f3a9c1b7e240_add_releases_feature.py +0 -0
  560. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/f5ad6445ad03_enable_user_project_access_to_be_null.py +0 -0
  561. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/f74a96172dbd_add_table_for_locking_project_files.py +0 -0
  562. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/api/__init__.py +0 -0
  563. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/api/main.py +0 -0
  564. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/api/routes/__init__.py +0 -0
  565. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/api/routes/accounts.py +0 -0
  566. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/api/routes/datasets.py +0 -0
  567. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/api/routes/feedback.py +0 -0
  568. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/api/routes/login.py +0 -0
  569. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/api/routes/orgs.py +0 -0
  570. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/api/routes/projects/__init__.py +0 -0
  571. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/api/routes/projects/activity.py +0 -0
  572. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/api/routes/projects/datasets.py +0 -0
  573. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/api/routes/projects/dvc.py +0 -0
  574. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/api/routes/projects/figures.py +0 -0
  575. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/api/routes/projects/fs.py +0 -0
  576. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/api/routes/projects/pipeline.py +0 -0
  577. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/api/routes/projects/releases.py +0 -0
  578. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/api/routes/references.py +0 -0
  579. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/api/routes/users.py +0 -0
  580. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/arxiv.py +0 -0
  581. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/client.py +0 -0
  582. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/db.py +0 -0
  583. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/dvc.py +0 -0
  584. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/email-templates/build/new_account.html +0 -0
  585. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/email-templates/build/project_invitation.html +0 -0
  586. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/email-templates/build/release_share.html +0 -0
  587. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/email-templates/build/reset_password.html +0 -0
  588. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/email-templates/build/test_email.html +0 -0
  589. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/email-templates/build/verify_email.html +0 -0
  590. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/email-templates/src/new_account.mjml +0 -0
  591. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/email-templates/src/project_invitation.mjml +0 -0
  592. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/email-templates/src/release_share.mjml +0 -0
  593. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/email-templates/src/reset_password.mjml +0 -0
  594. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/email-templates/src/test_email.mjml +0 -0
  595. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/email-templates/src/verify_email.mjml +0 -0
  596. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/formatting.py +0 -0
  597. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/github.py +0 -0
  598. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/imports.py +0 -0
  599. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/messaging.py +0 -0
  600. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/mixpanel.py +0 -0
  601. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/models/__init__.py +0 -0
  602. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/models/projects.py +0 -0
  603. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/models/releases.py +0 -0
  604. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/orgs.py +0 -0
  605. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/pdftext.py +0 -0
  606. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/security.py +0 -0
  607. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/storage.py +0 -0
  608. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/stripe.py +0 -0
  609. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/subscriptions.py +0 -0
  610. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/api/__init__.py +0 -0
  611. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/api/routes/__init__.py +0 -0
  612. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/api/routes/projects/__init__.py +0 -0
  613. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/api/routes/projects/test_templates.py +0 -0
  614. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/conftest.py +0 -0
  615. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/test_arxiv.py +0 -0
  616. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/test_client.py +0 -0
  617. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/test_core.py +0 -0
  618. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/test_db.py +0 -0
  619. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/test_dvc.py +0 -0
  620. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/test_formatting.py +0 -0
  621. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/test_pdftext.py +0 -0
  622. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/test_pipeline.py +0 -0
  623. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/test_projects.py +0 -0
  624. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/test_users.py +0 -0
  625. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/test_version.py +0 -0
  626. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/users.py +0 -0
  627. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/version.py +0 -0
  628. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/zenodo.py +0 -0
  629. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/zotero.py +0 -0
  630. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/prestart.sh +0 -0
  631. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/scripts/backend-pre-start.py +0 -0
  632. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/scripts/create-initial-data.py +0 -0
  633. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/scripts/format.sh +0 -0
  634. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/scripts/generate-client.py +0 -0
  635. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/scripts/lint.sh +0 -0
  636. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/scripts/rotate-fernet-secrets.py +0 -0
  637. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/scripts/test.sh +0 -0
  638. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/tests-start.sh +0 -0
  639. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/config/alloy/config.alloy +0 -0
  640. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/config/grafana/provisioning/dashboards/dashboards.yml +0 -0
  641. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/config/grafana/provisioning/dashboards/fastapi.json +0 -0
  642. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/config/grafana/provisioning/datasources/datasources.yml +0 -0
  643. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/config/loki/loki.yml +0 -0
  644. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/docker-compose.override.yml +0 -0
  645. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/docker-compose.traefik.yml +0 -0
  646. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/docs/dev/database-migrations.md +0 -0
  647. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/docs/dev/deployment.md +0 -0
  648. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/docs/dev/development.md +0 -0
  649. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/.dockerignore +0 -0
  650. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/.gitignore +0 -0
  651. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/.nvmrc +0 -0
  652. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/Dockerfile +0 -0
  653. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/Makefile +0 -0
  654. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/README.md +0 -0
  655. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/biome.json +0 -0
  656. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/index.html +0 -0
  657. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/modify-openapi-operationids.js +0 -0
  658. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/nginx-backend-not-found.conf +0 -0
  659. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/nginx.conf +0 -0
  660. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/openapi-ts.config.ts +0 -0
  661. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/playwright.config.ts +0 -0
  662. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/public/assets/images/c-to-the-k.svg +0 -0
  663. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/public/assets/images/calkit-no-bg.svg +0 -0
  664. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/public/assets/images/calkit.svg +0 -0
  665. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/public/assets/images/fastapi-logo.svg +0 -0
  666. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/public/assets/images/favicon.png +0 -0
  667. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/public/assets/images/kdot.svg +0 -0
  668. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/public/tex/.gitignore +0 -0
  669. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/public/tex/LICENSE-busytex +0 -0
  670. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/public/tex/busytex.js +0 -0
  671. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/public/tex/busytex.wasm +0 -0
  672. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/public/tex/busytex_pipeline.js +0 -0
  673. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/public/tex/busytex_worker.js +0 -0
  674. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/scripts/download-tex-engine.sh +0 -0
  675. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/client/client/client.gen.ts +0 -0
  676. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/client/client/index.ts +0 -0
  677. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/client/client/types.gen.ts +0 -0
  678. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/client/client/utils.gen.ts +0 -0
  679. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/client/client.gen.ts +0 -0
  680. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/client/core/auth.gen.ts +0 -0
  681. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/client/core/bodySerializer.gen.ts +0 -0
  682. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/client/core/params.gen.ts +0 -0
  683. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/client/core/pathSerializer.gen.ts +0 -0
  684. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/client/core/queryKeySerializer.gen.ts +0 -0
  685. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/client/core/serverSentEvents.gen.ts +0 -0
  686. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/client/core/types.gen.ts +0 -0
  687. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/client/core/utils.gen.ts +0 -0
  688. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Admin/AddUser.tsx +0 -0
  689. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Admin/EditUser.tsx +0 -0
  690. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Admin/FeatureVotesTable.tsx +0 -0
  691. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Admin/FeedbackTable.tsx +0 -0
  692. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/ActionsMenu.tsx +0 -0
  693. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/ClearableInput.tsx +0 -0
  694. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/CodeEditorPane.tsx +0 -0
  695. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/CommentsPanel.tsx +0 -0
  696. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/ConnectGitHubPrompt.tsx +0 -0
  697. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/ConnectZoteroPrompt.tsx +0 -0
  698. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/DeleteAlert.tsx +0 -0
  699. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/FeatureVoteButton.tsx +0 -0
  700. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/FilterableSelect.tsx +0 -0
  701. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/GlobalSearch.tsx +0 -0
  702. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/HelpFeedback.tsx +0 -0
  703. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/InputsRow.tsx +0 -0
  704. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/LoadingSpinner.tsx +0 -0
  705. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/Markdown.test.tsx +0 -0
  706. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/Markdown.tsx +0 -0
  707. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/Navbar.tsx +0 -0
  708. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/NoArtifactFound.tsx +0 -0
  709. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/NotBuiltAlert.tsx +0 -0
  710. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/NotFound.tsx +0 -0
  711. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/NotificationBell.tsx +0 -0
  712. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/OAuthButtons.tsx +0 -0
  713. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/PageMenu.tsx +0 -0
  714. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/PdfCanvas.tsx +0 -0
  715. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/PdfDocumentViewer.tsx +0 -0
  716. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/ProjectCommandPalette.tsx +0 -0
  717. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/RefPicker.tsx +0 -0
  718. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/Sidebar.tsx +0 -0
  719. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/SidebarItems.tsx +0 -0
  720. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/Tooltip.tsx +0 -0
  721. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/Topbar.tsx +0 -0
  722. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/UserMenu.tsx +0 -0
  723. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Datasets/BrowseDatasets.tsx +0 -0
  724. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Datasets/DataEntryGrid.tsx +0 -0
  725. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Datasets/DatasetViewer.tsx +0 -0
  726. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Environments/NewEnvironment.tsx +0 -0
  727. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Environments/ViewEnvironment.tsx +0 -0
  728. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Figures/FigureEditLauncher.tsx +0 -0
  729. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Figures/FigureEditor.tsx +0 -0
  730. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Figures/FigureFromExisting.tsx +0 -0
  731. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Figures/FigureView.tsx +0 -0
  732. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Figures/UploadFigure.tsx +0 -0
  733. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Files/EditFileInfo.tsx +0 -0
  734. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Files/FileContent.tsx +0 -0
  735. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Files/FileEditorModal.tsx +0 -0
  736. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Files/SelectedItemInfo.tsx +0 -0
  737. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Files/UploadFile.tsx +0 -0
  738. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Local/AddPath.tsx +0 -0
  739. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Local/DiscardChanges.tsx +0 -0
  740. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Local/IgnorePath.tsx +0 -0
  741. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Local/NewStage.tsx +0 -0
  742. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Local/SaveFiles.tsx +0 -0
  743. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Notebooks/NotebookRunLauncher.tsx +0 -0
  744. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Notebooks/NotebookRunner.tsx +0 -0
  745. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Onboarding/AccountSetupCard.tsx +0 -0
  746. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Onboarding/ChecklistCard.tsx +0 -0
  747. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Onboarding/CommandBlock.tsx +0 -0
  748. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Onboarding/FeaturedProjects.tsx +0 -0
  749. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Onboarding/ReproAudit.test.ts +0 -0
  750. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Onboarding/ReproAudit.tsx +0 -0
  751. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Onboarding/StartPaths.tsx +0 -0
  752. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Onboarding/TipBubble.tsx +0 -0
  753. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Orgs/AddMember.tsx +0 -0
  754. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Orgs/NewOrg.tsx +0 -0
  755. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Pipeline/StageEditorModal.tsx +0 -0
  756. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Presentations/PresentationView.tsx +0 -0
  757. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Projects/AddCollaborator.tsx +0 -0
  758. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Projects/CloneProject.tsx +0 -0
  759. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Projects/CreateIssue.tsx +0 -0
  760. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Projects/CreateQuestion.tsx +0 -0
  761. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Projects/EditProject.tsx +0 -0
  762. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Projects/HelpContent.tsx +0 -0
  763. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Projects/InviteLinks.tsx +0 -0
  764. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Projects/MakeProjectPublic.tsx +0 -0
  765. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Projects/NewProject.tsx +0 -0
  766. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Projects/ProjectShowcase.tsx +0 -0
  767. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Projects/ProjectStatus.tsx +0 -0
  768. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Projects/RecentChanges.test.ts +0 -0
  769. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Projects/RecentChanges.tsx +0 -0
  770. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Publications/ImportOverleaf.test.ts +0 -0
  771. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Publications/ImportOverleaf.tsx +0 -0
  772. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Publications/LatexEditor.tsx +0 -0
  773. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Publications/NewPublication.tsx +0 -0
  774. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Publications/PdfAnnotator.tsx +0 -0
  775. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Publications/PublicationComponents.test.ts +0 -0
  776. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Publications/PublicationView.tsx +0 -0
  777. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/References/DeleteReferenceItemDialog.tsx +0 -0
  778. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/References/DeleteReferencesCollectionDialog.tsx +0 -0
  779. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/References/EditReferenceItemModal.tsx +0 -0
  780. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/References/FileViewModal.tsx +0 -0
  781. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/References/ImportFromZoteroModal.tsx +0 -0
  782. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/References/LabelExistingReferences.tsx +0 -0
  783. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/References/NewReferencesCollection.tsx +0 -0
  784. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/References/ReferenceItemModal.tsx +0 -0
  785. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Releases/ArtifactReleasesPanel.tsx +0 -0
  786. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Releases/NewRelease.tsx +0 -0
  787. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Releases/PathPicker.tsx +0 -0
  788. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Releases/ReleasePdfAnnotator.tsx +0 -0
  789. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Releases/ReleaseViewer.tsx +0 -0
  790. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Releases/ReleasesTable.tsx +0 -0
  791. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Releases/ShareDialog.tsx +0 -0
  792. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Releases/releaseSort.ts +0 -0
  793. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Tables/TableView.test.tsx +0 -0
  794. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/UserSettings/Appearance.tsx +0 -0
  795. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/UserSettings/ChangePassword.tsx +0 -0
  796. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/UserSettings/ConnectedAccounts.tsx +0 -0
  797. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/UserSettings/DeleteAccount.tsx +0 -0
  798. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/UserSettings/DeleteConfirmation.tsx +0 -0
  799. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/UserSettings/NewToken.tsx +0 -0
  800. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/UserSettings/OnboardingChecklists.tsx +0 -0
  801. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/UserSettings/PickSubscription.tsx +0 -0
  802. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/UserSettings/Subscription.tsx +0 -0
  803. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/UserSettings/UpdateOverleafToken.tsx +0 -0
  804. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/UserSettings/UserInformation.tsx +0 -0
  805. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/UserSettings/UserTokens.tsx +0 -0
  806. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/hooks/useAuth.ts +0 -0
  807. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/hooks/useCustomToast.ts +0 -0
  808. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/hooks/useOnboarding.ts +0 -0
  809. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/hooks/useSubmitOnCmdEnter.test.ts +0 -0
  810. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/hooks/useSubmitOnCmdEnter.ts +0 -0
  811. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/hooks/useTips.ts +0 -0
  812. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/analytics.test.ts +0 -0
  813. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/analytics.ts +0 -0
  814. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/api.test.ts +0 -0
  815. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/api.ts +0 -0
  816. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/auth.test.ts +0 -0
  817. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/auth.ts +0 -0
  818. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/bibtex.test.ts +0 -0
  819. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/bibtex.ts +0 -0
  820. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/core.ts +0 -0
  821. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/csv.test.ts +0 -0
  822. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/csv.ts +0 -0
  823. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/environments.test.ts +0 -0
  824. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/environments.ts +0 -0
  825. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/errors.ts +0 -0
  826. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/figureScript.test.ts +0 -0
  827. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/figureScript.ts +0 -0
  828. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/fuzzy.test.ts +0 -0
  829. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/fuzzy.ts +0 -0
  830. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/github.test.ts +0 -0
  831. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/github.ts +0 -0
  832. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/google.ts +0 -0
  833. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/keyboard.ts +0 -0
  834. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/latexCompiler.ts +0 -0
  835. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/latexProject.mapPaths.test.ts +0 -0
  836. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/latexProject.test.ts +0 -0
  837. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/latexProject.ts +0 -0
  838. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/layout.ts +0 -0
  839. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/notebook.test.ts +0 -0
  840. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/notebook.ts +0 -0
  841. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/onboarding.test.ts +0 -0
  842. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/onboarding.ts +0 -0
  843. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/pipelineYaml.test.ts +0 -0
  844. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/pipelineYaml.ts +0 -0
  845. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/projectFiles.ts +0 -0
  846. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/provenance.test.ts +0 -0
  847. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/provenance.ts +0 -0
  848. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/pyodide.test.ts +0 -0
  849. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/pyodide.ts +0 -0
  850. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/releases.ts +0 -0
  851. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/staleChunks.test.ts +0 -0
  852. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/staleChunks.ts +0 -0
  853. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/strings.test.ts +0 -0
  854. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/strings.ts +0 -0
  855. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/tips.test.ts +0 -0
  856. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/tips.ts +0 -0
  857. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/zenodo.ts +0 -0
  858. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/zotero.ts +0 -0
  859. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/main.tsx +0 -0
  860. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routeTree.gen.ts +0 -0
  861. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/__root.tsx +0 -0
  862. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/app.tsx +0 -0
  863. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/apps/$appName.tsx +0 -0
  864. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/apps/index.tsx +0 -0
  865. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/apps.tsx +0 -0
  866. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/collaborators.tsx +0 -0
  867. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/environments.tsx +0 -0
  868. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/files.tsx +0 -0
  869. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/history.tsx +0 -0
  870. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/index.tsx +0 -0
  871. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/local.tsx +0 -0
  872. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/presentations.tsx +0 -0
  873. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/references.tsx +0 -0
  874. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/releases.tsx +0 -0
  875. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/software.tsx +0 -0
  876. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout.tsx +0 -0
  877. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/_layout/$accountName/$projectName/releases/$releaseName.tsx +0 -0
  878. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/_layout/$accountName/index.tsx +0 -0
  879. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/_layout/admin.tsx +0 -0
  880. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/_layout/datasets.tsx +0 -0
  881. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/_layout/index.tsx +0 -0
  882. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/_layout/new.tsx +0 -0
  883. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/_layout/orgs.tsx +0 -0
  884. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/_layout/projects.tsx +0 -0
  885. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/_layout/settings.tsx +0 -0
  886. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/_layout.tsx +0 -0
  887. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/auth/google.tsx +0 -0
  888. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/auth/zenodo.tsx +0 -0
  889. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/auth/zotero.tsx +0 -0
  890. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/checkout.tsx +0 -0
  891. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/join/$token.tsx +0 -0
  892. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/login/device.tsx +0 -0
  893. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/login/index.tsx +0 -0
  894. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/recover-password.tsx +0 -0
  895. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/reset-password.tsx +0 -0
  896. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/signup.tsx +0 -0
  897. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/verify-email.tsx +0 -0
  898. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/theme.tsx +0 -0
  899. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/vite-env.d.ts +0 -0
  900. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/tests/auth.setup.ts +0 -0
  901. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/tests/config.ts +0 -0
  902. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/tests/figures-pagination.spec.ts +0 -0
  903. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/tests/login.spec.ts +0 -0
  904. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/tests/reset-password.spec.ts +0 -0
  905. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/tests/user-settings.spec.ts +0 -0
  906. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/tests/utils/mailcatcher.ts +0 -0
  907. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/tests/utils/random.ts +0 -0
  908. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/tests/utils/user.ts +0 -0
  909. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/tsconfig.json +0 -0
  910. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/tsconfig.node.json +0 -0
  911. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/vite.config.ts +0 -0
  912. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/vitest.config.ts +0 -0
  913. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/scripts/build-push.sh +0 -0
  914. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/scripts/build.sh +0 -0
  915. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/scripts/deploy.sh +0 -0
  916. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/scripts/pem-to-env.sh +0 -0
  917. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/scripts/test-local.sh +0 -0
  918. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/scripts/test.sh +0 -0
  919. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/texmf-proxy/Dockerfile +0 -0
  920. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/texmf-proxy/README.md +0 -0
  921. {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/texmf-proxy/proxy.py +0 -0
  922. {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/.yarnrc.yml +0 -0
  923. {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/babel.config.js +0 -0
  924. {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/install.json +0 -0
  925. {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/jupyter-config/server-config/calkit.json +0 -0
  926. {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/package.json +0 -0
  927. {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/schema/plugin.json +0 -0
  928. {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/src/__tests__/useQueries.spec.ts +0 -0
  929. {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/src/calkit-config.ts +0 -0
  930. {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/src/cell-output-marker.ts +0 -0
  931. {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/src/components/commit-dialog.tsx +0 -0
  932. {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/src/components/environment-editor.tsx +0 -0
  933. {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/src/components/notebook-registration.tsx +0 -0
  934. {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/src/components/notebook-toolbar.tsx +0 -0
  935. {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/src/components/pipeline-status-bar.tsx +0 -0
  936. {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/src/components/project-info-editor.tsx +0 -0
  937. {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/src/components/sidebar-settings.tsx +0 -0
  938. {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/src/components/sidebar.tsx +0 -0
  939. {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/src/components/stage-editor.tsx +0 -0
  940. {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/src/feature-flags.ts +0 -0
  941. {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/src/file-browser-menu.ts +0 -0
  942. {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/src/hooks/__tests__/useQueries.test.tsx +0 -0
  943. {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/src/hooks/useQueries.ts +0 -0
  944. {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/src/icons.ts +0 -0
  945. {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/src/index.ts +0 -0
  946. {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/src/io-tracker.ts +0 -0
  947. {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/src/pipeline-state.ts +0 -0
  948. {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/src/queryClient.ts +0 -0
  949. {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/src/request.ts +0 -0
  950. {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/src/shims-mainmenu.d.ts +0 -0
  951. {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/style/base.css +0 -0
  952. {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/style/cell-output-marker.css +0 -0
  953. {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/style/environment-editor.css +0 -0
  954. {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/style/environment-selector.css +0 -0
  955. {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/style/img/calkit-no-bg.png +0 -0
  956. {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/style/index.css +0 -0
  957. {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/style/index.js +0 -0
  958. {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/style/notebook-toolbar.css +0 -0
  959. {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/style/pipeline-status-bar.css +0 -0
  960. {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/style/sidebar.css +0 -0
  961. {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/tsconfig.json +0 -0
  962. {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/tsconfig.test.json +0 -0
  963. {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/ui-tests/.gitignore +0 -0
  964. {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/ui-tests/README.md +0 -0
  965. {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/ui-tests/jupyter_server_test_config.py +0 -0
  966. {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/ui-tests/package.json +0 -0
  967. {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/ui-tests/playwright.config.js +0 -0
  968. {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/ui-tests/tests/calkit.spec.ts +0 -0
  969. {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/ui-tests/yarn.lock +0 -0
  970. {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/yarn.lock +0 -0
  971. {calkit_python-0.45.3 → calkit_python-0.46.0}/scripts/install.ps1 +0 -0
  972. {calkit_python-0.45.3 → calkit_python-0.46.0}/scripts/install.sh +0 -0
  973. {calkit_python-0.45.3 → calkit_python-0.46.0}/scripts/list-changes.py +0 -0
  974. {calkit_python-0.45.3 → calkit_python-0.46.0}/scripts/make-ck9.sh +0 -0
  975. {calkit_python-0.45.3 → calkit_python-0.46.0}/scripts/sync-docs.py +0 -0
  976. {calkit_python-0.45.3 → calkit_python-0.46.0}/scripts/sync-resources.py +0 -0
  977. {calkit_python-0.45.3 → calkit_python-0.46.0}/test/dvc-md5-dir/osx-arm64.txt +0 -0
  978. {calkit_python-0.45.3 → calkit_python-0.46.0}/test/nb-julia.ipynb +0 -0
  979. {calkit_python-0.45.3 → calkit_python-0.46.0}/test/nb-params.ipynb +0 -0
  980. {calkit_python-0.45.3 → calkit_python-0.46.0}/test/nb-subdir.ipynb +0 -0
  981. {calkit_python-0.45.3 → calkit_python-0.46.0}/test/pipeline.ipynb +0 -0
  982. {calkit_python-0.45.3 → calkit_python-0.46.0}/test/script.py +0 -0
  983. {calkit_python-0.45.3 → calkit_python-0.46.0}/test/test-log.log +0 -0
  984. {calkit_python-0.45.3 → calkit_python-0.46.0}/vscode-ext/.gitignore +0 -0
  985. {calkit_python-0.45.3 → calkit_python-0.46.0}/vscode-ext/.vscodeignore +0 -0
  986. {calkit_python-0.45.3 → calkit_python-0.46.0}/vscode-ext/LICENSE +0 -0
  987. {calkit_python-0.45.3 → calkit_python-0.46.0}/vscode-ext/README.md +0 -0
  988. {calkit_python-0.45.3 → calkit_python-0.46.0}/vscode-ext/changelog-notes.md +0 -0
  989. {calkit_python-0.45.3 → calkit_python-0.46.0}/vscode-ext/images/calkit-icon.svg +0 -0
  990. {calkit_python-0.45.3 → calkit_python-0.46.0}/vscode-ext/images/calkit-no-bg.png +0 -0
  991. {calkit_python-0.45.3 → calkit_python-0.46.0}/vscode-ext/package-lock.json +0 -0
  992. {calkit_python-0.45.3 → calkit_python-0.46.0}/vscode-ext/package.json +0 -0
  993. {calkit_python-0.45.3 → calkit_python-0.46.0}/vscode-ext/scripts/gen-changelog.js +0 -0
  994. {calkit_python-0.45.3 → calkit_python-0.46.0}/vscode-ext/scripts/set-proposed-api.js +0 -0
  995. {calkit_python-0.45.3 → calkit_python-0.46.0}/vscode-ext/src/environments.ts +0 -0
  996. {calkit_python-0.45.3 → calkit_python-0.46.0}/vscode-ext/src/figures/core.ts +0 -0
  997. {calkit_python-0.45.3 → calkit_python-0.46.0}/vscode-ext/src/figures/view.ts +0 -0
  998. {calkit_python-0.45.3 → calkit_python-0.46.0}/vscode-ext/src/markdown/core.ts +0 -0
  999. {calkit_python-0.45.3 → calkit_python-0.46.0}/vscode-ext/src/markdown/view.ts +0 -0
  1000. {calkit_python-0.45.3 → calkit_python-0.46.0}/vscode-ext/src/notebooks.ts +0 -0
  1001. {calkit_python-0.45.3 → calkit_python-0.46.0}/vscode-ext/src/pipeline/core.ts +0 -0
  1002. {calkit_python-0.45.3 → calkit_python-0.46.0}/vscode-ext/src/sidebar.ts +0 -0
  1003. {calkit_python-0.45.3 → calkit_python-0.46.0}/vscode-ext/src/test/environments.test.ts +0 -0
  1004. {calkit_python-0.45.3 → calkit_python-0.46.0}/vscode-ext/src/test/figures.test.ts +0 -0
  1005. {calkit_python-0.45.3 → calkit_python-0.46.0}/vscode-ext/src/test/kernel-selection.test.ts +0 -0
  1006. {calkit_python-0.45.3 → calkit_python-0.46.0}/vscode-ext/src/test/markdown.test.ts +0 -0
  1007. {calkit_python-0.45.3 → calkit_python-0.46.0}/vscode-ext/src/test/notebooks.test.ts +0 -0
  1008. {calkit_python-0.45.3 → calkit_python-0.46.0}/vscode-ext/src/test/pipeline.test.ts +0 -0
  1009. {calkit_python-0.45.3 → calkit_python-0.46.0}/vscode-ext/src/test/sidebar.test.ts +0 -0
  1010. {calkit_python-0.45.3 → calkit_python-0.46.0}/vscode-ext/src/test/yaml.test.ts +0 -0
  1011. {calkit_python-0.45.3 → calkit_python-0.46.0}/vscode-ext/src/types.ts +0 -0
  1012. {calkit_python-0.45.3 → calkit_python-0.46.0}/vscode-ext/src/yaml.ts +0 -0
  1013. {calkit_python-0.45.3 → calkit_python-0.46.0}/vscode-ext/tsconfig.json +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: calkit-python
3
- Version: 0.45.3
3
+ Version: 0.46.0
4
4
  Summary: Reproducibility simplified.
5
5
  Project-URL: Homepage, https://calkit.org
6
6
  Project-URL: Issues, https://github.com/calkit/calkit/issues
@@ -40,15 +40,17 @@ Requires-Dist: pillow
40
40
  Requires-Dist: psutil>=7.0.0
41
41
  Requires-Dist: pydantic-settings
42
42
  Requires-Dist: pydantic[email]
43
+ Requires-Dist: pygtrie<2.6.0
43
44
  Requires-Dist: pyjwt
44
45
  Requires-Dist: python-dotenv>=1
45
46
  Requires-Dist: pywin32; platform_system == 'Windows'
46
47
  Requires-Dist: requests
48
+ Requires-Dist: rich
47
49
  Requires-Dist: sqlitedict>=2.1.0
48
50
  Requires-Dist: texsoup>=0.3.3
49
51
  Requires-Dist: toml>=0.10.2
50
52
  Requires-Dist: tqdm>=4.67.1
51
- Requires-Dist: typer==0.25.1
53
+ Requires-Dist: typer==0.27.2
52
54
  Requires-Dist: uvicorn
53
55
  Provides-Extra: data
54
56
  Requires-Dist: pandas>=2.2.3; extra == 'data'
@@ -43,6 +43,10 @@ on:
43
43
  permissions:
44
44
  contents: write
45
45
  id-token: write
46
+ # Lets Docker environments configured with a registry push the images they
47
+ # build to the GitHub Container Registry, so later runs pull instead of
48
+ # rebuilding
49
+ packages: write
46
50
 
47
51
  # Make sure we only ever run one per branch so we don't have issues pushing
48
52
  # after running the pipeline
@@ -26,6 +26,14 @@ inputs:
26
26
  description: Arguments passed to calkit run command.
27
27
  required: false
28
28
  default: ""
29
+ login_ghcr:
30
+ description: >-
31
+ Whether to log in to the GitHub Container Registry, so that Docker
32
+ environments configured to use it can push images they build and pull
33
+ them back instead of rebuilding. Requires the workflow to grant the
34
+ "packages: write" permission.
35
+ required: false
36
+ default: "true"
29
37
  outputs: {}
30
38
  runs:
31
39
  using: composite
@@ -260,6 +268,17 @@ runs:
260
268
  if: ${{ steps.detect.outputs.needs_docker == 'true' }}
261
269
  uses: docker/setup-buildx-action@v3
262
270
 
271
+ # Logging in lets an environment with `registry: ghcr.io` push what it
272
+ # builds here, so that later runs and everyone's laptops pull the image
273
+ # instead of rebuilding it. Harmless when no environment uses a registry.
274
+ - name: Log in to the GitHub Container Registry
275
+ if: ${{ steps.detect.outputs.needs_docker == 'true' && inputs.login_ghcr == 'true' }}
276
+ uses: docker/login-action@v3
277
+ with:
278
+ registry: ghcr.io
279
+ username: ${{ github.actor }}
280
+ password: ${{ github.token }}
281
+
263
282
  - name: Report unsupported environment kinds
264
283
  if: ${{ steps.detect.outputs.unsupported_kinds != '' }}
265
284
  shell: bash
@@ -10,6 +10,10 @@ on:
10
10
  permissions:
11
11
  contents: write
12
12
  id-token: write
13
+ # Lets Docker environments configured with a registry push the images they
14
+ # build to the GitHub Container Registry, so later runs pull instead of
15
+ # rebuilding
16
+ packages: write
13
17
 
14
18
  # Make sure we only ever run one per branch so we don't have issues pushing
15
19
  # after running the pipeline
@@ -0,0 +1,152 @@
1
+ ---
2
+ name: build-paper-pipeline
3
+ description: Build the pipeline stages a manuscript's TODO comments ask for,
4
+ working backwards from the writing to the analysis behind it, and keep the
5
+ project's questions and answers matching the paper. Use when the user
6
+ invokes `/calkit:build-paper-pipeline`, leaves TODO comments in a manuscript
7
+ for an agent to address, or asks to work backwards from the writing to the
8
+ project behind it. Only for TODOs in a manuscript, and only in a Calkit
9
+ project: not TODO comments in source code, not GitHub issues, not a task
10
+ list in someone's notes.
11
+ ---
12
+
13
+ # Build the pipeline the paper asks for
14
+
15
+ The writing is the human's job. Deciding what the paper claims, and whether
16
+ a claim is worth making, is what nobody else can do for them. Everything
17
+ under a claim -- the stage that computes the number, the figure that shows
18
+ it, the question it answers -- is scaffolding, and scaffolding is what this
19
+ skill builds.
20
+
21
+ The user writes a sentence with a hole in it and marks the hole:
22
+
23
+ ```latex
24
+ % TODO: report the mean speedup over the baseline, and plot the
25
+ % distribution across cases
26
+ Our method is faster than the baseline by \todo{}.
27
+ ```
28
+
29
+ You fill the hole by building the project behind it, not by writing a
30
+ number into the sentence.
31
+
32
+ ## The rule that makes this safe
33
+
34
+ **Never type a computed value into the manuscript.** A number you typed is
35
+ a number nobody can check, and it goes stale the moment a stage reruns. The
36
+ number reaches the page through the pipeline: a stage computes it and
37
+ writes it to a results file, a `json-to-latex` stage turns that file into
38
+ LaTeX commands, and the manuscript says `\result[Speedup]`. The same
39
+ applies to figures (`\ckfigure{...}` over a pipeline output) and to the
40
+ answers in `calkit.yaml` (`{name}` placeholders over `value` evidence).
41
+
42
+ If you find yourself about to write `2.4x` into a `.tex` file, stop: that
43
+ is the hole, not the fix. The `check-reproducibility` skill covers finding
44
+ and fixing a typed literal that is already in a manuscript; this one is
45
+ about not putting one there.
46
+
47
+ See the `conventions` skill for `calkit.yaml` structure and stage kinds,
48
+ `add-pipeline-stage` for adding one stage, and `create-pipeline` for
49
+ building a pipeline from scratch.
50
+
51
+ ## Procedure
52
+
53
+ 1. **Read the manuscript and collect the TODOs.** Look for `% TODO`,
54
+ `\todo{}`, `\TODO`, and prose that asserts something with no number or
55
+ figure behind it. Quote each one back to the user with what you think it
56
+ is asking for, grouped into: needs a computation, needs a figure, needs
57
+ data the project does not have, and needs a decision only they can make.
58
+ Do not start building until they have confirmed the list --- a
59
+ misunderstood TODO costs a whole stage.
60
+
61
+ 2. **Say what is missing before you build.** For each TODO, name the inputs
62
+ it needs. If the project already has them, say which stage produces
63
+ them. If it does not, that TODO is blocked, and the honest answer is to
64
+ say so rather than to invent data. Blocked TODOs come in two kinds:
65
+
66
+ - **Data nobody has collected yet.** This is a manual step, not a
67
+ missing script. Add a `procedure` stage (see below) and tell the user
68
+ the pipeline now knows the step is outstanding.
69
+ - **Data that exists somewhere else.** Ask where. Declare it with
70
+ `imported_from` so the provenance chain reaches back past the project.
71
+
72
+ 3. **Build a stage per computation.** One stage, one question. Prefer a
73
+ script over a notebook, since a script diffs cleanly and reruns
74
+ headlessly. Write the results to a JSON file under `results/` with keys
75
+ named the way the paper will refer to them.
76
+
77
+ 4. **Inject, don't copy.** Add a `json-to-latex` stage over the results
78
+ file and reference the values from the manuscript with the generated
79
+ command. Replace the TODO with the sentence the user wrote, now with
80
+ `\result[...]` where the hole was.
81
+
82
+ 5. **Make the question match the paper.** A claim in the paper is an answer
83
+ to a question. Add or update the entry under `questions` in
84
+ `calkit.yaml`: the `question` as the paper poses it, the `answer` as the
85
+ paper states it with `{name}` placeholders where numbers go, and
86
+ `evidence` naming the results file and key, the figure, and the
87
+ publication section that carries the argument. Run
88
+ `calkit check questions` and fix what it reports.
89
+
90
+ 6. **Run the pipeline, then check your own work.** Run `calkit run`, then
91
+ `calkit check repro`, which reads the manuscript back and reports any
92
+ number in it that is not traceable to a pipeline output. A finding there
93
+ is a hole you closed by typing rather than by building, so go back to
94
+ step 3 for it. Show the user the rendered sentences
95
+ (`calkit list questions`) and the built document. Never commit a derived
96
+ output yourself, and never edit a results file by hand.
97
+
98
+ ## Data a person has to collect
99
+
100
+ Some TODOs cannot be closed by any amount of code, because the measurement
101
+ has not been made. Do not leave that as a comment in the manuscript, where
102
+ nothing tracks it. Declare the procedure and make it a stage, so the
103
+ pipeline knows the step is outstanding and everything downstream waits on
104
+ it:
105
+
106
+ ```yaml
107
+ procedures:
108
+ measure-rig:
109
+ title: Measure the rig
110
+ description: Read the temperature off the display at each setting.
111
+ steps:
112
+ - summary: Turn on the machine
113
+ wait_after_s: 5
114
+ - summary: Record the temperature
115
+ inputs:
116
+ temperature:
117
+ units: C
118
+ dtype: float
119
+
120
+ pipeline:
121
+ stages:
122
+ collect-data:
123
+ kind: procedure
124
+ procedure_name: measure-rig
125
+ plot-data:
126
+ kind: python-script
127
+ environment: py
128
+ script_path: scripts/plot-data.py
129
+ inputs:
130
+ - from_stage_outputs: collect-data
131
+ outputs:
132
+ - figures/temperature.png
133
+ ```
134
+
135
+ `calkit run` walks the person through the steps and logs each one to
136
+ `.calkit/procedure-runs/measure-rig/`, which the next stage reads like any
137
+ other input. Write the procedure's steps in the words someone at the bench
138
+ would need, not in the words a program would; you are writing for a person
139
+ holding a thermometer.
140
+
141
+ ## What to hand back
142
+
143
+ Say what you built, what you did not, and why:
144
+
145
+ - the stages you added and what each computes;
146
+ - the values and figures now injected, and where they land in the text;
147
+ - the questions you added or changed, and what `calkit check questions`
148
+ says;
149
+ - **every TODO you could not close**, with what is missing. This is the
150
+ most useful part of the report. A TODO left open because the data does
151
+ not exist is a finding; a TODO closed with a plausible-looking number is
152
+ a fabrication.
@@ -0,0 +1,144 @@
1
+ ---
2
+ name: check-questions
3
+ description: Review a Calkit project's questions and answers against their
4
+ evidence. Use when the user invokes `/calkit:check-questions`, asks whether
5
+ the project's answers are still true, or after a pipeline run changes
6
+ results that answers cite.
7
+ ---
8
+
9
+ # Check questions against evidence
10
+
11
+ An answer in `calkit.yaml` is a claim about the evidence as it was when the
12
+ answer was last edited. The pipeline keeps the evidence current; nothing
13
+ keeps the prose current. Calkit's deterministic check catches evidence
14
+ changing underneath an answer. This skill covers what a check cannot:
15
+ whether the sentence still follows from the evidence.
16
+
17
+ ## Division of labor
18
+
19
+ Deterministic, done by `calkit check questions` — never re-derive by hand:
20
+
21
+ - every evidence path exists;
22
+ - every `value` key resolves in its file, and every `{name}` placeholder in
23
+ the prose resolves and formats;
24
+ - every publication `label` still exists in the LaTeX source;
25
+ - no evidence has changed (Git history for Git-tracked outputs, `dvc.lock`
26
+ for DVC-tracked ones) since the commit that last edited the question;
27
+ - each evidence path is produced by a pipeline stage, or declared with
28
+ `imported_from` or `created_by`. This one is advisory: it is reported as
29
+ `unattributed` and does not fail the check.
30
+
31
+ Judgment, done here — the check reads paths and hashes, and cannot read a
32
+ sentence:
33
+
34
+ - **does the evidence actually support the answer**, which is the reason
35
+ this skill exists;
36
+ - does the answer still follow from the evidence, given what changed;
37
+ - are numbers retyped into the prose that should be `{name}` placeholders;
38
+ - is the answer concise, and does it point at the publication section that
39
+ carries the argument rather than repeating it.
40
+
41
+ ## Does the evidence support the answer?
42
+
43
+ A question can pass every deterministic check and still be wrong: the
44
+ paths resolve, the numbers render, nothing has changed since — and the
45
+ sentence claims something the evidence does not show. That is the failure
46
+ this skill is for, and it is not visible to the CLI. For each answer you
47
+ review, read the evidence yourself and ask, in this order:
48
+
49
+ 1. **Does the evidence say what the answer says it says?** Open each entry:
50
+ the value at its key, the figure, the table, the publication section.
51
+ An answer of "the closure cuts error by {improvement:.1f}x" needs the
52
+ value behind `improvement` to be that ratio, not the two errors it was
53
+ computed from, and not a ratio over a different pair of cases.
54
+ 2. **Does it support the claim's strength?** "Reduces error" needs a
55
+ difference; "reduces error by 40%" needs the number; "reduces error
56
+ across the range" needs evidence across the range, not at one point.
57
+ Weaken the sentence to what is there, or add the evidence that would
58
+ carry it.
59
+ 3. **Does it cover the claim's scope?** A claim about all cases cited
60
+ against one case, a claim about the method cited against one dataset,
61
+ a general statement resting on the best run: the evidence is real and
62
+ the sentence reaches past it. Name the gap.
63
+ 4. **Would the claim survive the evidence changing?** If a cited value
64
+ moved 10%, would the sentence still be true? If yes, the number is
65
+ decoration and the claim is vaguer than it looks. If a change of any
66
+ size would leave it standing, the evidence is not what the answer rests
67
+ on, and something is missing from `evidence`.
68
+ 5. **Is anything load-bearing missing?** A claim resting on a comparison
69
+ needs both sides. A claim about significance needs the test, not the
70
+ means. If the reasoning runs through an artifact the entry does not
71
+ name, add it or say the answer cannot be checked as written.
72
+ 6. **Is the causal language earned?** "Because", "leads to", "explains"
73
+ need more than co-movement. If the evidence is a correlation, the
74
+ answer should say so.
75
+
76
+ Report what you found, quoting the value or naming the figure. Where the
77
+ evidence does not support the sentence, propose the sentence it does
78
+ support and let the user decide; never edit the answer to match the
79
+ evidence without showing them both.
80
+
81
+ ## Procedure
82
+
83
+ 1. Run `calkit check questions --json` and read the report. Questions with
84
+ status `stale` or `error` need attention; `ok` ones pass the
85
+ deterministic check, which says nothing about whether their evidence
86
+ supports them, so review those too whenever the user asked for a full
87
+ review or the answer is one the paper leans on.
88
+ 2. For each **stale** question, the report names the evidence that changed
89
+ and the commit the answer dates from. Read the rendered answer
90
+ (`calkit list questions`) against the current evidence, and if it helps,
91
+ the old evidence (`git show <commit>:<path>`). Decide:
92
+ - **The claim still holds**: say so, and edit the question to record
93
+ that you read it again. Any edit counts: the check anchors on the
94
+ commit where the question last changed. Adding or refining `notes` is
95
+ usually the honest edit to make, since it is where you say what you
96
+ checked.
97
+ - **The claim no longer holds**: draft a corrected answer, show the user
98
+ the old and new text side by side with the values that changed, and
99
+ only after they agree, edit `calkit.yaml`.
100
+ - **The evidence changed because a stage is not reproducible** (same
101
+ inputs, different output): that is a pipeline defect, not an answer
102
+ defect. Report it as such and do not rewrite the answer to match noise.
103
+ 3. For each **unattributed** evidence entry, ask where the file came
104
+ from. If a stage should produce it, that is a pipeline gap worth
105
+ reporting. If it was imported or made by hand, declare it under
106
+ `figures`, `datasets`, or `publications` with `imported_from` or
107
+ `created_by` so the project says so.
108
+ 4. For each **error**, fix the reference: a missing path means the pipeline
109
+ has not been run or pulled; a bad key or placeholder means a results
110
+ file was restructured; a missing label means the publication was
111
+ reorganized. Do not delete evidence to make an error go away.
112
+ 5. For every question you touched, move any number in the prose that the
113
+ evidence carries into a `{name:...}` placeholder on a `value` entry, so
114
+ it is read from the results file rather than retyped.
115
+
116
+ 6. Run the evidence-supports-the-answer review above on every question in
117
+ scope, `ok` ones included. A question the CLI passed is where an
118
+ unsupported claim survives, because nothing else looks at it.
119
+
120
+ Never edit a stale question just to clear the check. It is the act of
121
+ reading the answer against the evidence that the edit is meant to record,
122
+ and an edit made without doing that is a false statement about the
123
+ project, not a tidy-up.
124
+
125
+ ## Writing answers
126
+
127
+ - One claim per question, two to four sentences. Say what was found and
128
+ what it means; leave the reasoning to the publication.
129
+ - Numbers come from `value` evidence via placeholders, formatted to the
130
+ precision the claim needs: `{ratio:.1f}x`, `{error:.0%}`.
131
+ - Point at the publication with a `publication` evidence entry carrying
132
+ `section` (for the reader) and `label` (for the check), instead of an
133
+ `explanation` that restates the argument.
134
+ - Each evidence entry should be one the answer actually depends on.
135
+ Evidence that would not change the answer if it changed is decoration.
136
+ - An open question has no `answer`; `notes` says why it is open and what
137
+ would settle it.
138
+
139
+ ## Reporting
140
+
141
+ Relay a short table: question index, status, what changed, what you did or
142
+ propose. Quote values, not adjectives. If the pipeline is stale
143
+ (`calkit status`), say so first, since the evidence may be about to change
144
+ again.
@@ -0,0 +1,112 @@
1
+ ---
2
+ name: check-reproducibility
3
+ description: Check whether a project is fully traceable, and fix what isn't,
4
+ including numbers typed into a manuscript that no pipeline output accounts
5
+ for. Use when the user invokes `/calkit:check-reproducibility`, asks whether
6
+ a project is reproducible, or asks where a number in a paper came from.
7
+ ---
8
+
9
+ # Check and fix reproducibility
10
+
11
+ `calkit check repro` reports what a static reading of the project can
12
+ establish: whether there is a pipeline, whether stages run in declared
13
+ environments, whether artifacts have provenance, and whether any number in
14
+ a manuscript is one nobody can trace.
15
+
16
+ ## Division of labor
17
+
18
+ Deterministic, done by `calkit check repro --json` --- never re-derive by
19
+ hand:
20
+
21
+ - whether the project is a Git and DVC repo with a remote and a pipeline;
22
+ - which stages run outside a declared environment;
23
+ - which artifacts have no `stage`, `imported_from`, or `created_by`;
24
+ - which scripts no stage refers to;
25
+ - which numbers in the manuscript duplicate a value the pipeline already
26
+ computes (`retyped_values`), and which result-like numbers have nothing
27
+ recorded behind them at all (`unattributed_numbers`).
28
+
29
+ Judgment, done here:
30
+
31
+ - whether a flagged number is really a result, or a constant, a tolerance,
32
+ a version, or a figure width the check couldn't rule out;
33
+ - which stage should compute a value that has no stage behind it;
34
+ - whether an artifact with no provenance was made here or brought in.
35
+
36
+ ## Procedure
37
+
38
+ 1. Run `calkit check repro --json` and read the report. The plain output
39
+ is a summary, each countable line naming the `-c` that opens it;
40
+ `--json` carries every finding. The command exits non-zero only for
41
+ `retyped_values`, a value the project's own pipeline computes and the
42
+ document typed anyway; everything else is advice and leaves the exit
43
+ code alone. Read the findings, not the exit code.
44
+
45
+ 2. **Pipeline and environment findings** come first: a value can't be made
46
+ traceable until there is a pipeline to make it. See the
47
+ `create-pipeline` and `add-pipeline-stage` skills.
48
+
49
+ 3. **Every `retyped_values` finding is worth fixing.** Each is a number
50
+ the pipeline already computes, typed into the document: right today and
51
+ wrong the next time that stage runs. The finding names the results file
52
+ and key, so the fix is mechanical.
53
+
54
+ 4. **`unattributed_numbers` is a list to read, not a list to fix.** Most
55
+ numbers in a paper are not results. A quantity quoted from a reference
56
+ (`cited` is true when the sentence carries a citation), a threshold the
57
+ author chose, a tolerance, a count -- none of them have anything to be
58
+ traced to, and turning them into structured values would be work for no
59
+ gain. What the list is good for is spotting the one that _is_ a result
60
+ and never got templated in. Say which ones you're leaving and why; never
61
+ rewrite a sentence to make a check pass, and never invent a stage to
62
+ compute a number somebody else measured.
63
+
64
+ For a number that is this project's result, it must reach the page
65
+ through the pipeline rather than through the author's fingers:
66
+
67
+ ```yaml
68
+ pipeline:
69
+ stages:
70
+ compute-drag:
71
+ kind: python-script
72
+ environment: py
73
+ script_path: scripts/compute-drag.py
74
+ outputs: [results/drag.json]
75
+ drag-to-latex:
76
+ kind: json-to-latex
77
+ command_name: result
78
+ inputs: [results/drag.json]
79
+ outputs:
80
+ - path: paper/generated-drag.tex
81
+ storage: git
82
+ ```
83
+
84
+ The script writes `{"DragCoefficient": 0.42}`. The document inputs the
85
+ generated file and refers to the value by key:
86
+
87
+ ```latex
88
+ \input{generated-drag}
89
+ ...
90
+ The drag coefficient is \result[DragCoefficient].
91
+ ```
92
+
93
+ `json-to-latex` generates one _keyed_ command per file, named by
94
+ `command_name` (or the output file's stem), so the reference is
95
+ `\result[DragCoefficient]` --- not a separate macro per key. Never write
96
+ a raw `stages:` block with `cmd: calkit latex from-json`; the stage kind
97
+ is what keeps `calkit.yaml` the single source of truth.
98
+
99
+ 5. **Run the pipeline** (`calkit run`) and check again. Do not run the
100
+ script yourself and paste the number in: that is the failure this whole
101
+ check exists to catch.
102
+
103
+ 6. **Report what you left.** A number you decided was not a result is a
104
+ judgment the user should see, not one to bury.
105
+
106
+ ## Related
107
+
108
+ - `build-paper-pipeline` builds the stages a manuscript's TODO comments
109
+ ask for, so the value is injected from the start rather than typed and
110
+ caught here.
111
+ - `check-questions` covers whether the project's answers still follow from
112
+ their evidence, which is the same idea one level up.
@@ -74,7 +74,12 @@ Example environment definitions:
74
74
 
75
75
  ```yaml
76
76
  environments:
77
- main:
77
+ py:
78
+ kind: uv
79
+ path: pyproject.toml
80
+ python: "3.13"
81
+
82
+ py2:
78
83
  kind: uv-venv
79
84
  path: requirements.txt
80
85
  python: "3.13"
@@ -112,81 +117,9 @@ Stages live under `pipeline.stages` in `calkit.yaml`. Every stage requires
112
117
 
113
118
  ### Stage kinds and their required fields
114
119
 
115
- **`python-script`**: Run a Python script
116
-
117
- ```yaml
118
- kind: python-script
119
- script_path: scripts/run.py
120
- args: ["--flag", "value"] # optional
121
- ```
122
-
123
- **`jupyter-notebook`**: Execute a Jupyter notebook
124
-
125
- ```yaml
126
- kind: jupyter-notebook
127
- notebook_path: notebooks/analysis.ipynb
128
- html_storage: git # optional, default: dvc
129
- executed_ipynb_storage: git # optional, default: dvc
130
- parameters: { key: value } # optional, papermill parameters
131
- ```
132
-
133
- **`shell-command`**: Run an arbitrary shell command
134
-
135
- ```yaml
136
- kind: shell-command
137
- command: "python -m mymodule --arg val"
138
- shell: bash # optional, default: bash
139
- ```
140
-
141
- **`shell-script`**: Run a shell script file
142
-
143
- ```yaml
144
- kind: shell-script
145
- script_path: scripts/run.sh
146
- ```
147
-
148
- **`latex`**: Compile a LaTeX document to PDF
149
-
150
- ```yaml
151
- kind: latex
152
- target_path: paper/paper.tex
153
- pdf_storage: git # optional, default: dvc
154
- ```
155
-
156
- **`r-script`**: Run an R script
157
-
158
- ```yaml
159
- kind: r-script
160
- script_path: scripts/analysis.R
161
- ```
162
-
163
- **`julia-script`** / **`julia-command`**: Run Julia code
164
-
165
- ```yaml
166
- kind: julia-script
167
- script_path: scripts/run.jl
168
- ```
169
-
170
- **`matlab-script`** / **`matlab-command`**: Run MATLAB code
171
-
172
- ```yaml
173
- kind: matlab-script
174
- script_path: scripts/run.m
175
- ```
176
-
177
- **`docker-command`**: Run a command inside a Docker container
178
-
179
- ```yaml
180
- kind: docker-command
181
- command: "docker run --rm myimage mycommand"
182
- ```
183
-
184
- **`command`**: Generic command (for tools that don't fit other kinds)
185
-
186
- ```yaml
187
- kind: command
188
- command: "mytool --input data/raw.csv --output data/out.csv"
189
- ```
120
+ See the `calkit.yaml` schema for details.
121
+ The most common stage kinds are `python-script`, `shell-script`, `shell-command`,
122
+ `jupyter-notebook`.
190
123
 
191
124
  ### Outputs: Git vs. DVC storage
192
125
 
@@ -308,3 +241,13 @@ calkit xr scripts/run.py --dry-run # see what would happen without running
308
241
  - `dvc.yaml`: generated by Calkit—don't edit manually
309
242
  - `.calkit/`: Calkit's internal directory—commit its contents unless they
310
243
  are large generated files
244
+
245
+ ## Provenance
246
+
247
+ Calkit's data model emphasizes provenance.
248
+ Any derived artifact (produced by a script, notebook, etc.) should be
249
+ produced by the pipeline so we can know if it's up-to-date w.r.t. its
250
+ inputs and process definition.
251
+ Imported artifacts should have attribution.
252
+ Primary artifacts should have attestation, including AI-generated content,
253
+ though the human is considered the author and AI is noted with a `with_ai` field.