scistudio 0.3.4a32__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 (2029) hide show
  1. scistudio-0.3.4a32/.agents/rules/rules.md +77 -0
  2. scistudio-0.3.4a32/.agents/skills/adr-author/SKILL.md +19 -0
  3. scistudio-0.3.4a32/.agents/skills/audit-reviewer/SKILL.md +18 -0
  4. scistudio-0.3.4a32/.agents/skills/implementer/SKILL.md +19 -0
  5. scistudio-0.3.4a32/.agents/skills/live-implementer/SKILL.md +20 -0
  6. scistudio-0.3.4a32/.agents/skills/manager/SKILL.md +20 -0
  7. scistudio-0.3.4a32/.agents/skills/scistudio-e2e-test/SKILL.md +26 -0
  8. scistudio-0.3.4a32/.agents/skills/test-engineer/SKILL.md +19 -0
  9. scistudio-0.3.4a32/.claude/rules/rules.md +77 -0
  10. scistudio-0.3.4a32/.claude/settings.local.json +16 -0
  11. scistudio-0.3.4a32/.claude/skills/adr-author/SKILL.md +19 -0
  12. scistudio-0.3.4a32/.claude/skills/audit-reviewer/SKILL.md +18 -0
  13. scistudio-0.3.4a32/.claude/skills/implementer/SKILL.md +19 -0
  14. scistudio-0.3.4a32/.claude/skills/live-implementer/SKILL.md +20 -0
  15. scistudio-0.3.4a32/.claude/skills/manager/SKILL.md +20 -0
  16. scistudio-0.3.4a32/.claude/skills/scistudio-e2e-test/SKILL.md +26 -0
  17. scistudio-0.3.4a32/.claude/skills/speckit-analyze/SKILL.md +191 -0
  18. scistudio-0.3.4a32/.claude/skills/speckit-checklist/SKILL.md +301 -0
  19. scistudio-0.3.4a32/.claude/skills/speckit-clarify/SKILL.md +185 -0
  20. scistudio-0.3.4a32/.claude/skills/speckit-constitution/SKILL.md +87 -0
  21. scistudio-0.3.4a32/.claude/skills/speckit-implement/SKILL.md +205 -0
  22. scistudio-0.3.4a32/.claude/skills/speckit-plan/SKILL.md +152 -0
  23. scistudio-0.3.4a32/.claude/skills/speckit-specify/SKILL.md +305 -0
  24. scistudio-0.3.4a32/.claude/skills/speckit-tasks/SKILL.md +198 -0
  25. scistudio-0.3.4a32/.claude/skills/speckit-taskstoissues/SKILL.md +36 -0
  26. scistudio-0.3.4a32/.claude/skills/test-engineer/SKILL.md +19 -0
  27. scistudio-0.3.4a32/.codex/rules/rules.md +77 -0
  28. scistudio-0.3.4a32/.codex/skills/adr-author/SKILL.md +19 -0
  29. scistudio-0.3.4a32/.codex/skills/audit-reviewer/SKILL.md +18 -0
  30. scistudio-0.3.4a32/.codex/skills/implementer/SKILL.md +19 -0
  31. scistudio-0.3.4a32/.codex/skills/live-implementer/SKILL.md +20 -0
  32. scistudio-0.3.4a32/.codex/skills/manager/SKILL.md +20 -0
  33. scistudio-0.3.4a32/.codex/skills/scistudio-e2e-test/SKILL.md +26 -0
  34. scistudio-0.3.4a32/.codex/skills/test-engineer/SKILL.md +19 -0
  35. scistudio-0.3.4a32/.editorconfig +24 -0
  36. scistudio-0.3.4a32/.gemini/skills/live-implementer/SKILL.md +20 -0
  37. scistudio-0.3.4a32/.gitattributes +1 -0
  38. scistudio-0.3.4a32/.github/CODEOWNERS +7 -0
  39. scistudio-0.3.4a32/.github/ISSUE_TEMPLATE/architecture.yml +46 -0
  40. scistudio-0.3.4a32/.github/ISSUE_TEMPLATE/bug.yml +32 -0
  41. scistudio-0.3.4a32/.github/ISSUE_TEMPLATE/feature.yml +42 -0
  42. scistudio-0.3.4a32/.github/ISSUE_TEMPLATE/refactor.yml +32 -0
  43. scistudio-0.3.4a32/.github/dependabot.yml +17 -0
  44. scistudio-0.3.4a32/.github/pull_request_template.md +25 -0
  45. scistudio-0.3.4a32/.github/workflows/ai-review.yml +54 -0
  46. scistudio-0.3.4a32/.github/workflows/ci.yml +367 -0
  47. scistudio-0.3.4a32/.github/workflows/deferral-scan.yml +60 -0
  48. scistudio-0.3.4a32/.github/workflows/desktop-linux-appimage.yml +95 -0
  49. scistudio-0.3.4a32/.github/workflows/desktop-macos-dmg.yml +240 -0
  50. scistudio-0.3.4a32/.github/workflows/desktop-macos-staple.yml +147 -0
  51. scistudio-0.3.4a32/.github/workflows/desktop-windows-installer.yml +99 -0
  52. scistudio-0.3.4a32/.github/workflows/docs.yml +71 -0
  53. scistudio-0.3.4a32/.github/workflows/pypi-publish.yml +321 -0
  54. scistudio-0.3.4a32/.github/workflows/workflow-gate.yml +139 -0
  55. scistudio-0.3.4a32/.gitignore +132 -0
  56. scistudio-0.3.4a32/.pre-commit-config.yaml +41 -0
  57. scistudio-0.3.4a32/.sentrux/rules.toml +101 -0
  58. scistudio-0.3.4a32/.specify/init-options.json +10 -0
  59. scistudio-0.3.4a32/.specify/integration.json +7 -0
  60. scistudio-0.3.4a32/.specify/integrations/claude/scripts/update-context.ps1 +23 -0
  61. scistudio-0.3.4a32/.specify/integrations/claude/scripts/update-context.sh +28 -0
  62. scistudio-0.3.4a32/.specify/integrations/claude.manifest.json +18 -0
  63. scistudio-0.3.4a32/.specify/integrations/speckit.manifest.json +18 -0
  64. scistudio-0.3.4a32/.specify/memory/constitution.md +192 -0
  65. scistudio-0.3.4a32/.specify/scripts/powershell/check-prerequisites.ps1 +148 -0
  66. scistudio-0.3.4a32/.specify/scripts/powershell/common.ps1 +267 -0
  67. scistudio-0.3.4a32/.specify/scripts/powershell/create-new-feature.ps1 +366 -0
  68. scistudio-0.3.4a32/.specify/scripts/powershell/setup-plan.ps1 +61 -0
  69. scistudio-0.3.4a32/.specify/scripts/powershell/update-agent-context.ps1 +513 -0
  70. scistudio-0.3.4a32/.specify/templates/agent-file-template.md +28 -0
  71. scistudio-0.3.4a32/.specify/templates/checklist-template.md +40 -0
  72. scistudio-0.3.4a32/.specify/templates/constitution-template.md +50 -0
  73. scistudio-0.3.4a32/.specify/templates/plan-template.md +104 -0
  74. scistudio-0.3.4a32/.specify/templates/spec-template.md +128 -0
  75. scistudio-0.3.4a32/.specify/templates/tasks-template.md +251 -0
  76. scistudio-0.3.4a32/.workflow/audit-pr-body.md +50 -0
  77. scistudio-0.3.4a32/.workflow/gate-record.schema.json +440 -0
  78. scistudio-0.3.4a32/.workflow/records/.gitkeep +0 -0
  79. scistudio-0.3.4a32/.workflow/records/2271-audit-2271-spec1-with-context.json +77 -0
  80. scistudio-0.3.4a32/.workflow/records/2271-feat-2271-webmcp-bridge.json +4221 -0
  81. scistudio-0.3.4a32/.workflow/records/2279-audit-2279-spec2-with-context.json +250 -0
  82. scistudio-0.3.4a32/.workflow/records/2279-feat-2279-agent-context-workspace.json +3066 -0
  83. scistudio-0.3.4a32/.workflow/records/2280-audit-2280-spec3-with-context.json +258 -0
  84. scistudio-0.3.4a32/.workflow/records/2280-feat-2280-local-background-runtime.json +1450 -0
  85. scistudio-0.3.4a32/.workflow/records/2289-repo-hygiene.json +1641 -0
  86. scistudio-0.3.4a32/.workflow/records/2297-contract-mocks.json +844 -0
  87. scistudio-0.3.4a32/.workflow/records/2298-headless-e2e.json +665 -0
  88. scistudio-0.3.4a32/.workflow/records/2303-docs-2303-enterprise-support-spec.json +1536 -0
  89. scistudio-0.3.4a32/.workflow/records/2304-feat-2304-identity-seam.json +1097 -0
  90. scistudio-0.3.4a32/.workflow/records/2307-chore-2307-pypi-publish.json +808 -0
  91. scistudio-0.3.4a32/.workflow/records/2312-test-2312-openapi-snapshot.json +571 -0
  92. scistudio-0.3.4a32/.workflow/records/audit-2279-spec2-no-context-audit-2279-spec2-no-context.json +249 -0
  93. scistudio-0.3.4a32/.workflow/records/audit-2280-spec3-no-context-audit-2280-spec3-no-context.json +249 -0
  94. scistudio-0.3.4a32/.workflow/schema.json +70 -0
  95. scistudio-0.3.4a32/AGENTS.md +288 -0
  96. scistudio-0.3.4a32/CHANGELOG.md +2915 -0
  97. scistudio-0.3.4a32/CLAUDE.md +2 -0
  98. scistudio-0.3.4a32/CONTRIBUTING.md +78 -0
  99. scistudio-0.3.4a32/LICENSE +202 -0
  100. scistudio-0.3.4a32/MAINTAINERS +7 -0
  101. scistudio-0.3.4a32/Makefile +17 -0
  102. scistudio-0.3.4a32/PKG-INFO +189 -0
  103. scistudio-0.3.4a32/README.md +129 -0
  104. scistudio-0.3.4a32/README.zh-CN.md +116 -0
  105. scistudio-0.3.4a32/desktop/README.md +162 -0
  106. scistudio-0.3.4a32/desktop/assets/entitlements.mac.plist +30 -0
  107. scistudio-0.3.4a32/desktop/assets/icon.icns +0 -0
  108. scistudio-0.3.4a32/desktop/assets/icon.ico +0 -0
  109. scistudio-0.3.4a32/desktop/assets/icon.png +0 -0
  110. scistudio-0.3.4a32/desktop/assets/icon.svg +32 -0
  111. scistudio-0.3.4a32/desktop/assets/tray.png +0 -0
  112. scistudio-0.3.4a32/desktop/assets/tray@2x.png +0 -0
  113. scistudio-0.3.4a32/desktop/assets/trayTemplate.png +0 -0
  114. scistudio-0.3.4a32/desktop/assets/trayTemplate@2x.png +0 -0
  115. scistudio-0.3.4a32/desktop/background-mode.js +467 -0
  116. scistudio-0.3.4a32/desktop/bootstrap.js +233 -0
  117. scistudio-0.3.4a32/desktop/connection-preload.js +23 -0
  118. scistudio-0.3.4a32/desktop/connection.html +301 -0
  119. scistudio-0.3.4a32/desktop/main.js +2453 -0
  120. scistudio-0.3.4a32/desktop/menu.js +183 -0
  121. scistudio-0.3.4a32/desktop/ota.js +242 -0
  122. scistudio-0.3.4a32/desktop/package-lock.json +3644 -0
  123. scistudio-0.3.4a32/desktop/package.json +110 -0
  124. scistudio-0.3.4a32/desktop/preload.js +27 -0
  125. scistudio-0.3.4a32/desktop/resources/.gitignore +20 -0
  126. scistudio-0.3.4a32/desktop/resources/git/.gitkeep +0 -0
  127. scistudio-0.3.4a32/desktop/resources/packages/.gitkeep +0 -0
  128. scistudio-0.3.4a32/desktop/resources/packages/README.md +14 -0
  129. scistudio-0.3.4a32/desktop/resources/python/.gitkeep +0 -0
  130. scistudio-0.3.4a32/desktop/runtime-port.js +159 -0
  131. scistudio-0.3.4a32/desktop/scripts/build-python-runtime-linux.sh +125 -0
  132. scistudio-0.3.4a32/desktop/scripts/build-python-runtime-macos.sh +124 -0
  133. scistudio-0.3.4a32/desktop/scripts/build-python-runtime.ps1 +148 -0
  134. scistudio-0.3.4a32/desktop/scripts/fetch-git-portable.ps1 +123 -0
  135. scistudio-0.3.4a32/desktop/scripts/fetch-git-portable.sh +149 -0
  136. scistudio-0.3.4a32/desktop/scripts/notarize.js +377 -0
  137. scistudio-0.3.4a32/desktop/scripts/npm-spawn.js +88 -0
  138. scistudio-0.3.4a32/desktop/scripts/stage-resources.ps1 +146 -0
  139. scistudio-0.3.4a32/desktop/scripts/stage-resources.sh +132 -0
  140. scistudio-0.3.4a32/desktop/scripts/start-dev.js +77 -0
  141. scistudio-0.3.4a32/desktop/scripts/start-electron.js +19 -0
  142. scistudio-0.3.4a32/desktop/splash.html +228 -0
  143. scistudio-0.3.4a32/desktop/test/background-mode.test.js +494 -0
  144. scistudio-0.3.4a32/desktop/test/bootstrap.test.js +364 -0
  145. scistudio-0.3.4a32/desktop/test/build-python-runtime.test.js +52 -0
  146. scistudio-0.3.4a32/desktop/test/harness/electron-stub.js +288 -0
  147. scistudio-0.3.4a32/desktop/test/harness/fake-backend.js +68 -0
  148. scistudio-0.3.4a32/desktop/test/harness/run-scenario.js +643 -0
  149. scistudio-0.3.4a32/desktop/test/linux-appimage.test.js +63 -0
  150. scistudio-0.3.4a32/desktop/test/macos-signing.test.js +98 -0
  151. scistudio-0.3.4a32/desktop/test/main-orchestration.test.js +48 -0
  152. scistudio-0.3.4a32/desktop/test/menu.test.js +268 -0
  153. scistudio-0.3.4a32/desktop/test/notarize.test.js +303 -0
  154. scistudio-0.3.4a32/desktop/test/npm-spawn.test.js +100 -0
  155. scistudio-0.3.4a32/desktop/test/ota.test.js +386 -0
  156. scistudio-0.3.4a32/desktop/test/runtime-port.test.js +172 -0
  157. scistudio-0.3.4a32/desktop/test/shell-known-good.test.js +103 -0
  158. scistudio-0.3.4a32/docs/adr/ADR-001.md +264 -0
  159. scistudio-0.3.4a32/docs/adr/ADR-002.md +241 -0
  160. scistudio-0.3.4a32/docs/adr/ADR-003.md +125 -0
  161. scistudio-0.3.4a32/docs/adr/ADR-004.md +115 -0
  162. scistudio-0.3.4a32/docs/adr/ADR-005.md +99 -0
  163. scistudio-0.3.4a32/docs/adr/ADR-006.md +154 -0
  164. scistudio-0.3.4a32/docs/adr/ADR-007.md +91 -0
  165. scistudio-0.3.4a32/docs/adr/ADR-008.md +92 -0
  166. scistudio-0.3.4a32/docs/adr/ADR-009.md +97 -0
  167. scistudio-0.3.4a32/docs/adr/ADR-010.md +76 -0
  168. scistudio-0.3.4a32/docs/adr/ADR-011.md +110 -0
  169. scistudio-0.3.4a32/docs/adr/ADR-012.md +88 -0
  170. scistudio-0.3.4a32/docs/adr/ADR-013.md +86 -0
  171. scistudio-0.3.4a32/docs/adr/ADR-014.md +98 -0
  172. scistudio-0.3.4a32/docs/adr/ADR-015.md +88 -0
  173. scistudio-0.3.4a32/docs/adr/ADR-016.md +80 -0
  174. scistudio-0.3.4a32/docs/adr/ADR-017.md +252 -0
  175. scistudio-0.3.4a32/docs/adr/ADR-018.md +271 -0
  176. scistudio-0.3.4a32/docs/adr/ADR-019.md +317 -0
  177. scistudio-0.3.4a32/docs/adr/ADR-020.md +317 -0
  178. scistudio-0.3.4a32/docs/adr/ADR-021.md +173 -0
  179. scistudio-0.3.4a32/docs/adr/ADR-022-addendum1.md +90 -0
  180. scistudio-0.3.4a32/docs/adr/ADR-022.md +200 -0
  181. scistudio-0.3.4a32/docs/adr/ADR-023.md +296 -0
  182. scistudio-0.3.4a32/docs/adr/ADR-024.md +216 -0
  183. scistudio-0.3.4a32/docs/adr/ADR-025.md +238 -0
  184. scistudio-0.3.4a32/docs/adr/ADR-026.md +221 -0
  185. scistudio-0.3.4a32/docs/adr/ADR-027.md +366 -0
  186. scistudio-0.3.4a32/docs/adr/ADR-028.md +288 -0
  187. scistudio-0.3.4a32/docs/adr/ADR-029.md +287 -0
  188. scistudio-0.3.4a32/docs/adr/ADR-030.md +177 -0
  189. scistudio-0.3.4a32/docs/adr/ADR-031.md +1018 -0
  190. scistudio-0.3.4a32/docs/adr/ADR-032.md +507 -0
  191. scistudio-0.3.4a32/docs/adr/ADR-033.md +863 -0
  192. scistudio-0.3.4a32/docs/adr/ADR-034.md +624 -0
  193. scistudio-0.3.4a32/docs/adr/ADR-035-addendum1.md +165 -0
  194. scistudio-0.3.4a32/docs/adr/ADR-035.md +480 -0
  195. scistudio-0.3.4a32/docs/adr/ADR-036.md +372 -0
  196. scistudio-0.3.4a32/docs/adr/ADR-037.md +890 -0
  197. scistudio-0.3.4a32/docs/adr/ADR-038.md +703 -0
  198. scistudio-0.3.4a32/docs/adr/ADR-039.md +873 -0
  199. scistudio-0.3.4a32/docs/adr/ADR-040.md +1174 -0
  200. scistudio-0.3.4a32/docs/adr/ADR-041.md +755 -0
  201. scistudio-0.3.4a32/docs/adr/ADR-042-addendum1.md +637 -0
  202. scistudio-0.3.4a32/docs/adr/ADR-042-addendum2.md +267 -0
  203. scistudio-0.3.4a32/docs/adr/ADR-042-addendum3.md +227 -0
  204. scistudio-0.3.4a32/docs/adr/ADR-042-addendum4.md +456 -0
  205. scistudio-0.3.4a32/docs/adr/ADR-042-addendum5.md +382 -0
  206. scistudio-0.3.4a32/docs/adr/ADR-042-addendum6.md +1331 -0
  207. scistudio-0.3.4a32/docs/adr/ADR-042-addendum7.md +336 -0
  208. scistudio-0.3.4a32/docs/adr/ADR-042.md +1615 -0
  209. scistudio-0.3.4a32/docs/adr/ADR-043.md +950 -0
  210. scistudio-0.3.4a32/docs/adr/ADR-044-addendum1.md +161 -0
  211. scistudio-0.3.4a32/docs/adr/ADR-044.md +433 -0
  212. scistudio-0.3.4a32/docs/adr/ADR-045.md +648 -0
  213. scistudio-0.3.4a32/docs/adr/ADR-046-addendum1.md +196 -0
  214. scistudio-0.3.4a32/docs/adr/ADR-046.md +199 -0
  215. scistudio-0.3.4a32/docs/adr/ADR-047.md +182 -0
  216. scistudio-0.3.4a32/docs/adr/ADR-048.md +535 -0
  217. scistudio-0.3.4a32/docs/adr/ADR-049.md +620 -0
  218. scistudio-0.3.4a32/docs/adr/ADR-050.md +668 -0
  219. scistudio-0.3.4a32/docs/adr/ADR-051-addendum1.md +182 -0
  220. scistudio-0.3.4a32/docs/adr/ADR-051.md +369 -0
  221. scistudio-0.3.4a32/docs/adr/ADR-052.md +597 -0
  222. scistudio-0.3.4a32/docs/adr/ADR-053.md +760 -0
  223. scistudio-0.3.4a32/docs/adr/ADR-054.md +733 -0
  224. scistudio-0.3.4a32/docs/adr/ADR-055.md +555 -0
  225. scistudio-0.3.4a32/docs/adr/ADR_legacy.md +8645 -0
  226. scistudio-0.3.4a32/docs/adr/_template/ADR-template.md +0 -0
  227. scistudio-0.3.4a32/docs/agent-provisioning.md +205 -0
  228. scistudio-0.3.4a32/docs/ai-developer/checklists/agent-manager-rules-review.md +127 -0
  229. scistudio-0.3.4a32/docs/ai-developer/e2e/2026-06-13-adr048-pr1577-viewers.md +301 -0
  230. scistudio-0.3.4a32/docs/ai-developer/e2e/2026-08-21-lc-level-1-regression.md +179 -0
  231. scistudio-0.3.4a32/docs/ai-developer/e2e/2026-08-22-lc-level-2-what-is-a-type.md +525 -0
  232. scistudio-0.3.4a32/docs/ai-developer/e2e/2026-08-23-shell-ota-hot-update-lifecycle.md +394 -0
  233. scistudio-0.3.4a32/docs/ai-developer/e2e/README.md +71 -0
  234. scistudio-0.3.4a32/docs/ai-developer/e2e/template.md +137 -0
  235. scistudio-0.3.4a32/docs/ai-developer/gate-cli-command-set.md +750 -0
  236. scistudio-0.3.4a32/docs/ai-developer/personas/adr-author.md +138 -0
  237. scistudio-0.3.4a32/docs/ai-developer/personas/audit-reviewer.md +123 -0
  238. scistudio-0.3.4a32/docs/ai-developer/personas/implementer.md +112 -0
  239. scistudio-0.3.4a32/docs/ai-developer/personas/live-implementer.md +297 -0
  240. scistudio-0.3.4a32/docs/ai-developer/personas/manager.md +136 -0
  241. scistudio-0.3.4a32/docs/ai-developer/personas/test-engineer.md +107 -0
  242. scistudio-0.3.4a32/docs/ai-developer/release-runbook.md +374 -0
  243. scistudio-0.3.4a32/docs/ai-developer/rules.md +230 -0
  244. scistudio-0.3.4a32/docs/ai-developer/skills/scistudio-e2e-test/SKILL.md +286 -0
  245. scistudio-0.3.4a32/docs/ai-developer/skills/scistudio-e2e-test/references/chrome-mcp-recipes.md +191 -0
  246. scistudio-0.3.4a32/docs/ai-developer/skills/scistudio-e2e-test/references/dev-server-lifecycle.md +166 -0
  247. scistudio-0.3.4a32/docs/ai-developer/skills/scistudio-e2e-test/references/report-template.md +168 -0
  248. scistudio-0.3.4a32/docs/ai-developer/skills/scistudio-e2e-test/references/screenshot-recipes.md +179 -0
  249. scistudio-0.3.4a32/docs/ai-developer/specific_rules/agent-dispatch.md +264 -0
  250. scistudio-0.3.4a32/docs/ai-developer/specific_rules/bug-fix.md +92 -0
  251. scistudio-0.3.4a32/docs/ai-developer/specific_rules/docs-change.md +96 -0
  252. scistudio-0.3.4a32/docs/ai-developer/specific_rules/document-standards.md +237 -0
  253. scistudio-0.3.4a32/docs/ai-developer/specific_rules/gated-workflow.md +816 -0
  254. scistudio-0.3.4a32/docs/ai-developer/specific_rules/guided-work.md +329 -0
  255. scistudio-0.3.4a32/docs/ai-developer/specific_rules/hotfix.md +98 -0
  256. scistudio-0.3.4a32/docs/ai-developer/specific_rules/new-feature.md +76 -0
  257. scistudio-0.3.4a32/docs/ai-developer/specific_rules/test-engineering.md +118 -0
  258. scistudio-0.3.4a32/docs/ai-developer/templates/agent-dispatch-audit-no-context-prompt-template.md +111 -0
  259. scistudio-0.3.4a32/docs/ai-developer/templates/agent-dispatch-audit-with-context-prompt-template.md +119 -0
  260. scistudio-0.3.4a32/docs/ai-developer/templates/agent-dispatch-checklist-template.md +184 -0
  261. scistudio-0.3.4a32/docs/ai-developer/templates/agent-dispatch-prompt-template.md +139 -0
  262. scistudio-0.3.4a32/docs/architecture/ARCHITECTURE.md +2461 -0
  263. scistudio-0.3.4a32/docs/architecture/ARCHITECTURE_legacy.md +3586 -0
  264. scistudio-0.3.4a32/docs/architecture/PROJECT_TREE.md +813 -0
  265. scistudio-0.3.4a32/docs/architecture/sentrux-rules.md +51 -0
  266. scistudio-0.3.4a32/docs/assets/README.md +4 -0
  267. scistudio-0.3.4a32/docs/assets/scistudio-canvas.png +0 -0
  268. scistudio-0.3.4a32/docs/audit/2026-05-21-semantic-dup-scan.md +478 -0
  269. scistudio-0.3.4a32/docs/audit/2026-05-22-umbrella-1427-phase1-with-context.md +445 -0
  270. scistudio-0.3.4a32/docs/audit/2026-09-06-adr-055-spec1-with-context.md +249 -0
  271. scistudio-0.3.4a32/docs/audit/2026-09-10-adr-055-spec3-no-context.md +325 -0
  272. scistudio-0.3.4a32/docs/audit/2026-09-10-adr-055-spec3-with-context.md +418 -0
  273. scistudio-0.3.4a32/docs/audit/2026-09-11-adr-054-panels-no-context.md +754 -0
  274. scistudio-0.3.4a32/docs/audit/2026-09-11-adr-055-spec2-no-context.md +342 -0
  275. scistudio-0.3.4a32/docs/audit/2026-09-11-adr-055-spec2-with-context.md +350 -0
  276. scistudio-0.3.4a32/docs/audit/README.md +5 -0
  277. scistudio-0.3.4a32/docs/audit/baselines/deferral-baseline.json +41 -0
  278. scistudio-0.3.4a32/docs/cli-integration.md +255 -0
  279. scistudio-0.3.4a32/docs/contributing/docstring-style.md +204 -0
  280. scistudio-0.3.4a32/docs/contributing/frontend-api-mocks.md +89 -0
  281. scistudio-0.3.4a32/docs/contributing/headless-e2e.md +71 -0
  282. scistudio-0.3.4a32/docs/contributing/workflows/human-bypass.md +160 -0
  283. scistudio-0.3.4a32/docs/data-storage-transport-audit.en.md +220 -0
  284. scistudio-0.3.4a32/docs/package-development/architecture.md +130 -0
  285. scistudio-0.3.4a32/docs/package-development/blocks.md +146 -0
  286. scistudio-0.3.4a32/docs/package-development/index.md +69 -0
  287. scistudio-0.3.4a32/docs/package-development/previewers.md +126 -0
  288. scistudio-0.3.4a32/docs/package-development/publishing.md +163 -0
  289. scistudio-0.3.4a32/docs/package-development/tutorials.md +259 -0
  290. scistudio-0.3.4a32/docs/package-development/types.md +176 -0
  291. scistudio-0.3.4a32/docs/planning/adr-038-039-checklist.md +697 -0
  292. scistudio-0.3.4a32/docs/planning/adr-043-package-migration-checklist.md +491 -0
  293. scistudio-0.3.4a32/docs/planning/adr-048-ai-plot-tools-scope.md +365 -0
  294. scistudio-0.3.4a32/docs/planning/adr-048-developer-docs-scope.md +115 -0
  295. scistudio-0.3.4a32/docs/planning/adr-048-impact-matrix.md +95 -0
  296. scistudio-0.3.4a32/docs/planning/adr-048-pr1577-fix-checklist.md +189 -0
  297. scistudio-0.3.4a32/docs/planning/adr-048-preview-system-scope.md +402 -0
  298. scistudio-0.3.4a32/docs/planning/adr-049-package-validator/contracts/contract-table.schema.json +183 -0
  299. scistudio-0.3.4a32/docs/planning/adr-049-package-validator/contracts/pv-a1-sections-01-03.json +932 -0
  300. scistudio-0.3.4a32/docs/planning/adr-049-package-validator/contracts/pv-a2-sections-04-06.json +619 -0
  301. scistudio-0.3.4a32/docs/planning/adr-049-package-validator/contracts/pv-a3-sections-07-09.json +959 -0
  302. scistudio-0.3.4a32/docs/planning/adr-049-package-validator/contracts/pv-a4-sections-10-12.json +939 -0
  303. scistudio-0.3.4a32/docs/planning/adr-049-package-validator/contracts/pv-a5-section-13-omissions.json +698 -0
  304. scistudio-0.3.4a32/docs/planning/adr-049-package-validator/prompts/pv-a1-sections-01-03.md +76 -0
  305. scistudio-0.3.4a32/docs/planning/adr-049-package-validator/prompts/pv-a2-sections-04-06.md +66 -0
  306. scistudio-0.3.4a32/docs/planning/adr-049-package-validator/prompts/pv-a3-sections-07-09.md +65 -0
  307. scistudio-0.3.4a32/docs/planning/adr-049-package-validator/prompts/pv-a4-sections-10-12.md +66 -0
  308. scistudio-0.3.4a32/docs/planning/adr-049-package-validator/prompts/pv-a5-section-13-omissions.md +70 -0
  309. scistudio-0.3.4a32/docs/planning/adr-053-work-import-checklist.md +1176 -0
  310. scistudio-0.3.4a32/docs/planning/backend-god-file-refactor-checklist.md +204 -0
  311. scistudio-0.3.4a32/docs/planning/learning-center-checklist.md +706 -0
  312. scistudio-0.3.4a32/docs/planning/package-validator-contract-survey-draft.md +293 -0
  313. scistudio-0.3.4a32/docs/specs/_template/SPEC-template.md +0 -0
  314. scistudio-0.3.4a32/docs/specs/adr-034-multi-provider-agent-chat.md +1642 -0
  315. scistudio-0.3.4a32/docs/specs/adr-041-codeblock-v2.md +665 -0
  316. scistudio-0.3.4a32/docs/specs/adr-042-ai-governance-tools.md +714 -0
  317. scistudio-0.3.4a32/docs/specs/adr-042-code-quality-tools.md +537 -0
  318. scistudio-0.3.4a32/docs/specs/adr-042-consistency-tools.md +752 -0
  319. scistudio-0.3.4a32/docs/specs/adr-042-documentation-tools.md +561 -0
  320. scistudio-0.3.4a32/docs/specs/adr-042-gate-ledger-runtime.md +852 -0
  321. scistudio-0.3.4a32/docs/specs/adr-042-gate-record-sentrux-workflow.md +854 -0
  322. scistudio-0.3.4a32/docs/specs/adr-042-local-gate-receipts.md +423 -0
  323. scistudio-0.3.4a32/docs/specs/adr-042-test-engineer-persona.md +380 -0
  324. scistudio-0.3.4a32/docs/specs/adr-043-io-format-capability-registry.md +646 -0
  325. scistudio-0.3.4a32/docs/specs/adr-043-package-migration.md +858 -0
  326. scistudio-0.3.4a32/docs/specs/adr-044-subworkflow-block.md +516 -0
  327. scistudio-0.3.4a32/docs/specs/adr-045-workflow-state-version.md +298 -0
  328. scistudio-0.3.4a32/docs/specs/adr-048-ai-plot-tools.md +559 -0
  329. scistudio-0.3.4a32/docs/specs/adr-048-developer-docs-refresh.md +525 -0
  330. scistudio-0.3.4a32/docs/specs/adr-048-plot-render-collection-ux.md +409 -0
  331. scistudio-0.3.4a32/docs/specs/adr-048-preview-system.md +732 -0
  332. scistudio-0.3.4a32/docs/specs/adr-049-package-validator-implementation.md +354 -0
  333. scistudio-0.3.4a32/docs/specs/adr-050-canvas-node-readability.md +637 -0
  334. scistudio-0.3.4a32/docs/specs/adr-051-interactive-blocks.md +453 -0
  335. scistudio-0.3.4a32/docs/specs/adr-052-public-api-surface.md +1590 -0
  336. scistudio-0.3.4a32/docs/specs/adr-053-learning-center.md +2096 -0
  337. scistudio-0.3.4a32/docs/specs/adr-053-personal-tool-library.md +1285 -0
  338. scistudio-0.3.4a32/docs/specs/adr-053-work-import.md +1178 -0
  339. scistudio-0.3.4a32/docs/specs/adr-054-panels.md +930 -0
  340. scistudio-0.3.4a32/docs/specs/adr-055-agent-context-workspace.md +761 -0
  341. scistudio-0.3.4a32/docs/specs/adr-055-enterprise-support.md +573 -0
  342. scistudio-0.3.4a32/docs/specs/adr-055-identity-seam.md +564 -0
  343. scistudio-0.3.4a32/docs/specs/adr-055-local-background-runtime.md +558 -0
  344. scistudio-0.3.4a32/docs/specs/adr-055-prefix-independence.md +358 -0
  345. scistudio-0.3.4a32/docs/specs/adr-055-webmcp-bridge.md +468 -0
  346. scistudio-0.3.4a32/docs/specs/alpha-observability-logging.md +316 -0
  347. scistudio-0.3.4a32/docs/specs/alpha-version-management.md +230 -0
  348. scistudio-0.3.4a32/docs/specs/appblock-variadic-ports.md +151 -0
  349. scistudio-0.3.4a32/docs/specs/data-preview-3d-viewer.md +182 -0
  350. scistudio-0.3.4a32/docs/specs/desktop-macos-signing-notarization.md +417 -0
  351. scistudio-0.3.4a32/docs/specs/desktop-ota-hot-update.md +205 -0
  352. scistudio-0.3.4a32/docs/specs/desktop-package-ota-hot-update.md +199 -0
  353. scistudio-0.3.4a32/docs/specs/desktop-shell-ota-hot-update.md +394 -0
  354. scistudio-0.3.4a32/docs/specs/embedded-coding-agent-spec.md +1290 -0
  355. scistudio-0.3.4a32/docs/specs/frontend-block-palette.md +893 -0
  356. scistudio-0.3.4a32/docs/specs/gate-local-incremental-checks.md +480 -0
  357. scistudio-0.3.4a32/docs/specs/phase10-implementation-standards.md +2472 -0
  358. scistudio-0.3.4a32/docs/specs/phase11-imaging-block-spec.md +6420 -0
  359. scistudio-0.3.4a32/docs/specs/phase11-implementation-standards.md +3409 -0
  360. scistudio-0.3.4a32/docs/specs/phase11-lcms-block-spec.md +3868 -0
  361. scistudio-0.3.4a32/docs/specs/phase11-srs-block-spec.md +1964 -0
  362. scistudio-0.3.4a32/docs/specs/port-description-metadata.md +204 -0
  363. scistudio-0.3.4a32/docs/specs/spectroscopy-package.md +1754 -0
  364. scistudio-0.3.4a32/docs/user/reference/index.md +30 -0
  365. scistudio-0.3.4a32/docs/user/reference/scistudio.api.app.md +21 -0
  366. scistudio-0.3.4a32/docs/user/reference/scistudio.api.seam.md +170 -0
  367. scistudio-0.3.4a32/docs/user/reference/scistudio.blocks.app.md +99 -0
  368. scistudio-0.3.4a32/docs/user/reference/scistudio.blocks.base.md +179 -0
  369. scistudio-0.3.4a32/docs/user/reference/scistudio.blocks.code.md +814 -0
  370. scistudio-0.3.4a32/docs/user/reference/scistudio.blocks.io.md +165 -0
  371. scistudio-0.3.4a32/docs/user/reference/scistudio.blocks.process.md +20 -0
  372. scistudio-0.3.4a32/docs/user/reference/scistudio.core.meta.md +47 -0
  373. scistudio-0.3.4a32/docs/user/reference/scistudio.core.types.md +137 -0
  374. scistudio-0.3.4a32/docs/user/reference/scistudio.previewers.data_access.md +150 -0
  375. scistudio-0.3.4a32/docs/user/reference/scistudio.previewers.models.md +284 -0
  376. scistudio-0.3.4a32/docs/user/reference/scistudio.tutorials.md +219 -0
  377. scistudio-0.3.4a32/frontend/.prettierignore +11 -0
  378. scistudio-0.3.4a32/frontend/.prettierrc.json +10 -0
  379. scistudio-0.3.4a32/frontend/components.json +21 -0
  380. scistudio-0.3.4a32/frontend/docs/2026-06-10-autoopen-investigation.md +147 -0
  381. scistudio-0.3.4a32/frontend/e2e/adr043-a3-smoke.md +124 -0
  382. scistudio-0.3.4a32/frontend/e2e/specs/adr050-canvas-readability.spec.ts +43 -0
  383. scistudio-0.3.4a32/frontend/e2e/specs/system-flows.spec.ts +96 -0
  384. scistudio-0.3.4a32/frontend/e2e/support/globals.d.ts +7 -0
  385. scistudio-0.3.4a32/frontend/e2e/support/systemMocks.ts +232 -0
  386. scistudio-0.3.4a32/frontend/eslint.config.js +188 -0
  387. scistudio-0.3.4a32/frontend/index.html +12 -0
  388. scistudio-0.3.4a32/frontend/package-lock.json +12638 -0
  389. scistudio-0.3.4a32/frontend/package.json +77 -0
  390. scistudio-0.3.4a32/frontend/playwright.config.ts +26 -0
  391. scistudio-0.3.4a32/frontend/postcss.config.js +6 -0
  392. scistudio-0.3.4a32/frontend/src/App.busyIndicator.test.tsx +93 -0
  393. scistudio-0.3.4a32/frontend/src/App.parts/AppDialogs.tsx +77 -0
  394. scistudio-0.3.4a32/frontend/src/App.parts/AppLevelMergeFlow.tsx +44 -0
  395. scistudio-0.3.4a32/frontend/src/App.parts/InteractiveModals.parts/DynamicPanel.test.tsx +294 -0
  396. scistudio-0.3.4a32/frontend/src/App.parts/InteractiveModals.parts/DynamicPanel.tsx +241 -0
  397. scistudio-0.3.4a32/frontend/src/App.parts/InteractiveModals.parts/__tests__/tutorialReviewPanel.test.ts +151 -0
  398. scistudio-0.3.4a32/frontend/src/App.parts/InteractiveModals.parts/panelModuleLoader.test.ts +250 -0
  399. scistudio-0.3.4a32/frontend/src/App.parts/InteractiveModals.parts/panelModuleLoader.ts +294 -0
  400. scistudio-0.3.4a32/frontend/src/App.parts/InteractiveModals.test.tsx +137 -0
  401. scistudio-0.3.4a32/frontend/src/App.parts/InteractiveModals.tsx +166 -0
  402. scistudio-0.3.4a32/frontend/src/App.parts/ProjectWorkspace.tsx +682 -0
  403. scistudio-0.3.4a32/frontend/src/App.parts/WelcomePane.tsx +38 -0
  404. scistudio-0.3.4a32/frontend/src/App.parts/__tests__/newDropinFile.test.tsx +323 -0
  405. scistudio-0.3.4a32/frontend/src/App.parts/__tests__/useDesktopMenuActions.test.tsx +155 -0
  406. scistudio-0.3.4a32/frontend/src/App.parts/__tests__/useTutorialReplayTab.test.tsx +130 -0
  407. scistudio-0.3.4a32/frontend/src/App.parts/closeProject.ts +34 -0
  408. scistudio-0.3.4a32/frontend/src/App.parts/useActiveTab.ts +34 -0
  409. scistudio-0.3.4a32/frontend/src/App.parts/useAppKeyboardShortcuts.ts +178 -0
  410. scistudio-0.3.4a32/frontend/src/App.parts/useAppLifecycleEffects.ts +121 -0
  411. scistudio-0.3.4a32/frontend/src/App.parts/useBlockCatalogSync.ts +52 -0
  412. scistudio-0.3.4a32/frontend/src/App.parts/useBottomPanelControls.ts +107 -0
  413. scistudio-0.3.4a32/frontend/src/App.parts/useCanvasHandlers.test.tsx +177 -0
  414. scistudio-0.3.4a32/frontend/src/App.parts/useCanvasHandlers.ts +283 -0
  415. scistudio-0.3.4a32/frontend/src/App.parts/useCanvasReadability.ts +40 -0
  416. scistudio-0.3.4a32/frontend/src/App.parts/useDesktopMenuActions.ts +68 -0
  417. scistudio-0.3.4a32/frontend/src/App.parts/useFileTabsAutosave.ts +84 -0
  418. scistudio-0.3.4a32/frontend/src/App.parts/useLearningCenter.ts +322 -0
  419. scistudio-0.3.4a32/frontend/src/App.parts/useProjectActions.ts +648 -0
  420. scistudio-0.3.4a32/frontend/src/App.parts/usePromptInput.ts +27 -0
  421. scistudio-0.3.4a32/frontend/src/App.parts/useTutorialReplayTab.ts +0 -0
  422. scistudio-0.3.4a32/frontend/src/App.parts/useWorkflowExecutionActions.test.tsx +64 -0
  423. scistudio-0.3.4a32/frontend/src/App.parts/useWorkflowExecutionActions.ts +220 -0
  424. scistudio-0.3.4a32/frontend/src/App.parts/useWorkflowSync.test.tsx +213 -0
  425. scistudio-0.3.4a32/frontend/src/App.parts/useWorkflowSync.ts +188 -0
  426. scistudio-0.3.4a32/frontend/src/App.test.tsx +96 -0
  427. scistudio-0.3.4a32/frontend/src/App.tsx +589 -0
  428. scistudio-0.3.4a32/frontend/src/__tests__/CapabilityDropdown.test.tsx +294 -0
  429. scistudio-0.3.4a32/frontend/src/__tests__/LossySaveWarning.test.tsx +378 -0
  430. scistudio-0.3.4a32/frontend/src/__tests__/adr043-a3-smoke.test.tsx +251 -0
  431. scistudio-0.3.4a32/frontend/src/__tests__/capabilities.test.ts +219 -0
  432. scistudio-0.3.4a32/frontend/src/__tests__/contract/mockBackend.test.ts +185 -0
  433. scistudio-0.3.4a32/frontend/src/__tests__/contract/mockBackend.ts +274 -0
  434. scistudio-0.3.4a32/frontend/src/__tests__/contract/openapi.ts +266 -0
  435. scistudio-0.3.4a32/frontend/src/__tests__/eslint-config.test.ts +93 -0
  436. scistudio-0.3.4a32/frontend/src/api/capabilities.ts +352 -0
  437. scistudio-0.3.4a32/frontend/src/assets/mio/angry.webp +0 -0
  438. scistudio-0.3.4a32/frontend/src/assets/mio/avatar/angry.webp +0 -0
  439. scistudio-0.3.4a32/frontend/src/assets/mio/avatar/curious.webp +0 -0
  440. scistudio-0.3.4a32/frontend/src/assets/mio/avatar/error.webp +0 -0
  441. scistudio-0.3.4a32/frontend/src/assets/mio/avatar/explain.webp +0 -0
  442. scistudio-0.3.4a32/frontend/src/assets/mio/avatar/focus.webp +0 -0
  443. scistudio-0.3.4a32/frontend/src/assets/mio/avatar/idle.webp +0 -0
  444. scistudio-0.3.4a32/frontend/src/assets/mio/avatar/success.webp +0 -0
  445. scistudio-0.3.4a32/frontend/src/assets/mio/avatar-mirrored/angry.webp +0 -0
  446. scistudio-0.3.4a32/frontend/src/assets/mio/avatar-mirrored/error.webp +0 -0
  447. scistudio-0.3.4a32/frontend/src/assets/mio/avatar-mirrored/explain.webp +0 -0
  448. scistudio-0.3.4a32/frontend/src/assets/mio/avatar-mirrored/focus.webp +0 -0
  449. scistudio-0.3.4a32/frontend/src/assets/mio/avatar-mirrored/idle.webp +0 -0
  450. scistudio-0.3.4a32/frontend/src/assets/mio/avatar-mirrored/success.webp +0 -0
  451. scistudio-0.3.4a32/frontend/src/assets/mio/curious.webp +0 -0
  452. scistudio-0.3.4a32/frontend/src/assets/mio/error.webp +0 -0
  453. scistudio-0.3.4a32/frontend/src/assets/mio/explain.webp +0 -0
  454. scistudio-0.3.4a32/frontend/src/assets/mio/focus.webp +0 -0
  455. scistudio-0.3.4a32/frontend/src/assets/mio/idle.webp +0 -0
  456. scistudio-0.3.4a32/frontend/src/assets/mio/mirrored/angry.webp +0 -0
  457. scistudio-0.3.4a32/frontend/src/assets/mio/mirrored/error.webp +0 -0
  458. scistudio-0.3.4a32/frontend/src/assets/mio/mirrored/explain.webp +0 -0
  459. scistudio-0.3.4a32/frontend/src/assets/mio/mirrored/focus.webp +0 -0
  460. scistudio-0.3.4a32/frontend/src/assets/mio/mirrored/idle.webp +0 -0
  461. scistudio-0.3.4a32/frontend/src/assets/mio/mirrored/success.webp +0 -0
  462. scistudio-0.3.4a32/frontend/src/assets/mio/success.webp +0 -0
  463. scistudio-0.3.4a32/frontend/src/components/AIChat/ScriptedAgentView.tsx +122 -0
  464. scistudio-0.3.4a32/frontend/src/components/AIChat/SetupScreen.parts/NoProvidersNotice.tsx +50 -0
  465. scistudio-0.3.4a32/frontend/src/components/AIChat/SetupScreen.parts/PermissionModePicker.tsx +83 -0
  466. scistudio-0.3.4a32/frontend/src/components/AIChat/SetupScreen.parts/ProviderPicker.tsx +179 -0
  467. scistudio-0.3.4a32/frontend/src/components/AIChat/SetupScreen.parts/types.ts +27 -0
  468. scistudio-0.3.4a32/frontend/src/components/AIChat/SetupScreen.tsx +249 -0
  469. scistudio-0.3.4a32/frontend/src/components/AIChat/TerminalTab.tsx +288 -0
  470. scistudio-0.3.4a32/frontend/src/components/AIChat/TerminalTabs.parts/ConfirmDialog.tsx +41 -0
  471. scistudio-0.3.4a32/frontend/src/components/AIChat/TerminalTabs.parts/TabStrip.tsx +84 -0
  472. scistudio-0.3.4a32/frontend/src/components/AIChat/TerminalTabs.parts/TabStripItem.tsx +195 -0
  473. scistudio-0.3.4a32/frontend/src/components/AIChat/TerminalTabs.tsx +296 -0
  474. scistudio-0.3.4a32/frontend/src/components/AIChat/TerminalView.parts/TerminalContextMenu.tsx +124 -0
  475. scistudio-0.3.4a32/frontend/src/components/AIChat/TerminalView.parts/clipboard.ts +157 -0
  476. scistudio-0.3.4a32/frontend/src/components/AIChat/TerminalView.parts/menuPlacement.ts +72 -0
  477. scistudio-0.3.4a32/frontend/src/components/AIChat/TerminalView.parts/useTerminalClipboard.ts +217 -0
  478. scistudio-0.3.4a32/frontend/src/components/AIChat/TerminalView.parts/useTerminalScrollHint.ts +98 -0
  479. scistudio-0.3.4a32/frontend/src/components/AIChat/TerminalView.tsx +688 -0
  480. scistudio-0.3.4a32/frontend/src/components/AIChat/__tests__/ProviderExtensibility.test.tsx +245 -0
  481. scistudio-0.3.4a32/frontend/src/components/AIChat/__tests__/ProviderPicker.test.tsx +179 -0
  482. scistudio-0.3.4a32/frontend/src/components/AIChat/__tests__/ScriptedAgentView.test.tsx +116 -0
  483. scistudio-0.3.4a32/frontend/src/components/AIChat/__tests__/SetupScreen.test.tsx +377 -0
  484. scistudio-0.3.4a32/frontend/src/components/AIChat/__tests__/TerminalContextMenu.test.tsx +104 -0
  485. scistudio-0.3.4a32/frontend/src/components/AIChat/__tests__/TerminalTab.test.tsx +294 -0
  486. scistudio-0.3.4a32/frontend/src/components/AIChat/__tests__/TerminalTabs.skeleton.test.tsx +31 -0
  487. scistudio-0.3.4a32/frontend/src/components/AIChat/__tests__/TerminalTabs.test.tsx +668 -0
  488. scistudio-0.3.4a32/frontend/src/components/AIChat/__tests__/TerminalView.paced.test.tsx +111 -0
  489. scistudio-0.3.4a32/frontend/src/components/AIChat/__tests__/TerminalView.scrollHint.test.tsx +159 -0
  490. scistudio-0.3.4a32/frontend/src/components/AIChat/__tests__/TerminalView.test.tsx +666 -0
  491. scistudio-0.3.4a32/frontend/src/components/AIChat/__tests__/menuPlacement.test.ts +102 -0
  492. scistudio-0.3.4a32/frontend/src/components/AIChat/__tests__/scriptedPacing.test.ts +576 -0
  493. scistudio-0.3.4a32/frontend/src/components/AIChat/__tests__/terminalViewHarness.tsx +269 -0
  494. scistudio-0.3.4a32/frontend/src/components/AIChat/__tests__/usePtyWebSocket.test.ts +297 -0
  495. scistudio-0.3.4a32/frontend/src/components/AIChat/__tests__/xtermPasteContract.test.ts +190 -0
  496. scistudio-0.3.4a32/frontend/src/components/AIChat/__tests__/xtermScrollContract.test.ts +154 -0
  497. scistudio-0.3.4a32/frontend/src/components/AIChat/blockPtyHandlers.ts +139 -0
  498. scistudio-0.3.4a32/frontend/src/components/AIChat/hooks/usePtyWebSocket.ts +227 -0
  499. scistudio-0.3.4a32/frontend/src/components/AIChat/scriptedAgentBanner.ts +61 -0
  500. scistudio-0.3.4a32/frontend/src/components/AIChat/scriptedPacing.ts +558 -0
  501. scistudio-0.3.4a32/frontend/src/components/ActivityBar.test.tsx +76 -0
  502. scistudio-0.3.4a32/frontend/src/components/ActivityBar.tsx +103 -0
  503. scistudio-0.3.4a32/frontend/src/components/BlockDetailPopover.tsx +107 -0
  504. scistudio-0.3.4a32/frontend/src/components/BlockPalette.parts/BlockTile.tsx +43 -0
  505. scistudio-0.3.4a32/frontend/src/components/BlockPalette.parts/CategoryChips.tsx +37 -0
  506. scistudio-0.3.4a32/frontend/src/components/BlockPalette.parts/__tests__/paletteModel.test.ts +364 -0
  507. scistudio-0.3.4a32/frontend/src/components/BlockPalette.parts/paletteModel.ts +244 -0
  508. scistudio-0.3.4a32/frontend/src/components/BlockPalette.test.tsx +447 -0
  509. scistudio-0.3.4a32/frontend/src/components/BlockPalette.tsx +333 -0
  510. scistudio-0.3.4a32/frontend/src/components/BottomPanel.parts/CaretPreservingTextInput.tsx +112 -0
  511. scistudio-0.3.4a32/frontend/src/components/BottomPanel.parts/CodeBlockConfigEditor.tsx +407 -0
  512. scistudio-0.3.4a32/frontend/src/components/BottomPanel.parts/ConfigField.tsx +258 -0
  513. scistudio-0.3.4a32/frontend/src/components/BottomPanel.parts/ConfigPanel.test.tsx +826 -0
  514. scistudio-0.3.4a32/frontend/src/components/BottomPanel.parts/ConfigPanel.tsx +420 -0
  515. scistudio-0.3.4a32/frontend/src/components/BottomPanel.parts/ConfigPanelBrowse.test.tsx +100 -0
  516. scistudio-0.3.4a32/frontend/src/components/BottomPanel.parts/FormatCapabilityConfig.tsx +93 -0
  517. scistudio-0.3.4a32/frontend/src/components/BottomPanel.parts/LogViewer.test.tsx +65 -0
  518. scistudio-0.3.4a32/frontend/src/components/BottomPanel.parts/LogViewer.tsx +106 -0
  519. scistudio-0.3.4a32/frontend/src/components/BottomPanel.parts/PlotTargetPicker.test.tsx +227 -0
  520. scistudio-0.3.4a32/frontend/src/components/BottomPanel.parts/PlotTargetPicker.tsx +341 -0
  521. scistudio-0.3.4a32/frontend/src/components/BottomPanel.parts/PlotsTab.test.tsx +369 -0
  522. scistudio-0.3.4a32/frontend/src/components/BottomPanel.parts/PlotsTab.tsx +396 -0
  523. scistudio-0.3.4a32/frontend/src/components/BottomPanel.parts/SubworkflowConfigEditor.test.tsx +85 -0
  524. scistudio-0.3.4a32/frontend/src/components/BottomPanel.parts/SubworkflowConfigEditor.tsx +74 -0
  525. scistudio-0.3.4a32/frontend/src/components/BottomPanel.parts/TabBar.tsx +146 -0
  526. scistudio-0.3.4a32/frontend/src/components/BottomPanel.parts/codeBlockPorts.test.ts +124 -0
  527. scistudio-0.3.4a32/frontend/src/components/BottomPanel.parts/codeBlockPorts.ts +148 -0
  528. scistudio-0.3.4a32/frontend/src/components/BottomPanel.parts/subworkflowConfig.ts +25 -0
  529. scistudio-0.3.4a32/frontend/src/components/BottomPanel.test.tsx +815 -0
  530. scistudio-0.3.4a32/frontend/src/components/BottomPanel.tsx +146 -0
  531. scistudio-0.3.4a32/frontend/src/components/BringInMyWorkDialog.parts/AgentSetup.tsx +100 -0
  532. scistudio-0.3.4a32/frontend/src/components/BringInMyWorkDialog.parts/AvailabilityGuidance.tsx +210 -0
  533. scistudio-0.3.4a32/frontend/src/components/BringInMyWorkDialog.parts/CorrectnessCaveat.tsx +34 -0
  534. scistudio-0.3.4a32/frontend/src/components/BringInMyWorkDialog.parts/DataKindsQuestion.tsx +100 -0
  535. scistudio-0.3.4a32/frontend/src/components/BringInMyWorkDialog.parts/FreeTextQuestion.tsx +101 -0
  536. scistudio-0.3.4a32/frontend/src/components/BringInMyWorkDialog.parts/PageNav.tsx +144 -0
  537. scistudio-0.3.4a32/frontend/src/components/BringInMyWorkDialog.parts/SourceAndDestination.tsx +118 -0
  538. scistudio-0.3.4a32/frontend/src/components/BringInMyWorkDialog.parts/availability.ts +262 -0
  539. scistudio-0.3.4a32/frontend/src/components/BringInMyWorkDialog.parts/copy.ts +496 -0
  540. scistudio-0.3.4a32/frontend/src/components/BringInMyWorkDialog.parts/formState.ts +224 -0
  541. scistudio-0.3.4a32/frontend/src/components/BringInMyWorkDialog.parts/pages.ts +195 -0
  542. scistudio-0.3.4a32/frontend/src/components/BringInMyWorkDialog.parts/useAgentAvailability.ts +179 -0
  543. scistudio-0.3.4a32/frontend/src/components/BringInMyWorkDialog.tsx +576 -0
  544. scistudio-0.3.4a32/frontend/src/components/CodeEditor.parts/plotCompletions.test.ts +44 -0
  545. scistudio-0.3.4a32/frontend/src/components/CodeEditor.parts/plotCompletions.ts +238 -0
  546. scistudio-0.3.4a32/frontend/src/components/CodeEditor.parts/theme.ts +29 -0
  547. scistudio-0.3.4a32/frontend/src/components/CodeEditor.parts/useConflictDecorations.ts +76 -0
  548. scistudio-0.3.4a32/frontend/src/components/CodeEditor.parts/useLintMarkers.ts +142 -0
  549. scistudio-0.3.4a32/frontend/src/components/CodeEditor.tsx +241 -0
  550. scistudio-0.3.4a32/frontend/src/components/DataPreview.parts/NodePortPanel.tsx +54 -0
  551. scistudio-0.3.4a32/frontend/src/components/DataPreview.parts/PlotViewer.tsx +280 -0
  552. scistudio-0.3.4a32/frontend/src/components/DataPreview.parts/PortInfoPanel.test.tsx +168 -0
  553. scistudio-0.3.4a32/frontend/src/components/DataPreview.parts/PortInfoPanel.tsx +134 -0
  554. scistudio-0.3.4a32/frontend/src/components/DataPreview.parts/PreviewHost.dynamic.test.tsx +335 -0
  555. scistudio-0.3.4a32/frontend/src/components/DataPreview.parts/PreviewHost.exportFallback.test.tsx +190 -0
  556. scistudio-0.3.4a32/frontend/src/components/DataPreview.parts/PreviewHost.test.tsx +569 -0
  557. scistudio-0.3.4a32/frontend/src/components/DataPreview.parts/PreviewHost.tsx +657 -0
  558. scistudio-0.3.4a32/frontend/src/components/DataPreview.parts/SubworkflowPortPanel.tsx +107 -0
  559. scistudio-0.3.4a32/frontend/src/components/DataPreview.parts/TableViewer.tsx +389 -0
  560. scistudio-0.3.4a32/frontend/src/components/DataPreview.parts/__tests__/NodePortPanel.test.tsx +67 -0
  561. scistudio-0.3.4a32/frontend/src/components/DataPreview.parts/__tests__/SubworkflowPortPanel.test.tsx +72 -0
  562. scistudio-0.3.4a32/frontend/src/components/DataPreview.parts/coreViewers.test.tsx +433 -0
  563. scistudio-0.3.4a32/frontend/src/components/DataPreview.parts/coreViewers.tsx +883 -0
  564. scistudio-0.3.4a32/frontend/src/components/DataPreview.parts/dynamicPreviewer.ts +205 -0
  565. scistudio-0.3.4a32/frontend/src/components/DataPreview.parts/previewerHostApi.ts +233 -0
  566. scistudio-0.3.4a32/frontend/src/components/DataPreview.parts/refEntries.test.ts +158 -0
  567. scistudio-0.3.4a32/frontend/src/components/DataPreview.parts/refEntries.ts +164 -0
  568. scistudio-0.3.4a32/frontend/src/components/DataPreview.test.tsx +335 -0
  569. scistudio-0.3.4a32/frontend/src/components/DataPreview.tsx +271 -0
  570. scistudio-0.3.4a32/frontend/src/components/DataRouterModal.parts/InputPanels.tsx +51 -0
  571. scistudio-0.3.4a32/frontend/src/components/DataRouterModal.parts/ItemCard.tsx +29 -0
  572. scistudio-0.3.4a32/frontend/src/components/DataRouterModal.parts/OutputPanels.tsx +62 -0
  573. scistudio-0.3.4a32/frontend/src/components/DataRouterModal.parts/types.ts +25 -0
  574. scistudio-0.3.4a32/frontend/src/components/DataRouterModal.tsx +178 -0
  575. scistudio-0.3.4a32/frontend/src/components/ErrorBoundary.tsx +62 -0
  576. scistudio-0.3.4a32/frontend/src/components/Git/BranchPicker.parts/AutoCommitToast.tsx +24 -0
  577. scistudio-0.3.4a32/frontend/src/components/Git/BranchPicker.parts/BranchCreateDialog.tsx +79 -0
  578. scistudio-0.3.4a32/frontend/src/components/Git/BranchPicker.parts/BranchMenuContent.tsx +134 -0
  579. scistudio-0.3.4a32/frontend/src/components/Git/BranchPicker.tsx +191 -0
  580. scistudio-0.3.4a32/frontend/src/components/Git/CommitDialog.parts/WorkingTreeList.tsx +39 -0
  581. scistudio-0.3.4a32/frontend/src/components/Git/CommitDialog.tsx +205 -0
  582. scistudio-0.3.4a32/frontend/src/components/Git/ConflictMarkerDecoration.parts/decorations.ts +79 -0
  583. scistudio-0.3.4a32/frontend/src/components/Git/ConflictMarkerDecoration.parts/parser.ts +204 -0
  584. scistudio-0.3.4a32/frontend/src/components/Git/ConflictMarkerDecoration.parts/types.ts +37 -0
  585. scistudio-0.3.4a32/frontend/src/components/Git/ConflictMarkerDecoration.parts/widget.ts +85 -0
  586. scistudio-0.3.4a32/frontend/src/components/Git/ConflictMarkerDecoration.ts +222 -0
  587. scistudio-0.3.4a32/frontend/src/components/Git/ConflictResolveView.tsx +185 -0
  588. scistudio-0.3.4a32/frontend/src/components/Git/GitDiffModal.tsx +163 -0
  589. scistudio-0.3.4a32/frontend/src/components/Git/GitGraph/GraphSVG.parts/GraphDots.tsx +108 -0
  590. scistudio-0.3.4a32/frontend/src/components/Git/GitGraph/GraphSVG.parts/GraphLabels.tsx +142 -0
  591. scistudio-0.3.4a32/frontend/src/components/Git/GitGraph/GraphSVG.tsx +174 -0
  592. scistudio-0.3.4a32/frontend/src/components/Git/GitGraph/__tests__/edgeRouter.test.ts +227 -0
  593. scistudio-0.3.4a32/frontend/src/components/Git/GitGraph/__tests__/laneAssign.test.ts +216 -0
  594. scistudio-0.3.4a32/frontend/src/components/Git/GitGraph/colorPalette.ts +115 -0
  595. scistudio-0.3.4a32/frontend/src/components/Git/GitGraph/edgeRouter.ts +524 -0
  596. scistudio-0.3.4a32/frontend/src/components/Git/GitGraph/integration.ts +106 -0
  597. scistudio-0.3.4a32/frontend/src/components/Git/GitGraph/interactions.ts +198 -0
  598. scistudio-0.3.4a32/frontend/src/components/Git/GitGraph/laneAssign.parts/trunkPin.ts +81 -0
  599. scistudio-0.3.4a32/frontend/src/components/Git/GitGraph/laneAssign.ts +371 -0
  600. scistudio-0.3.4a32/frontend/src/components/Git/GitHistoryList.parts/GitGraphPane.test.tsx +83 -0
  601. scistudio-0.3.4a32/frontend/src/components/Git/GitHistoryList.parts/GitGraphPane.tsx +82 -0
  602. scistudio-0.3.4a32/frontend/src/components/Git/GitHistoryList.parts/HistoryListBody.tsx +70 -0
  603. scistudio-0.3.4a32/frontend/src/components/Git/GitHistoryList.parts/HistoryRow.tsx +95 -0
  604. scistudio-0.3.4a32/frontend/src/components/Git/GitHistoryList.parts/HistoryToolbar.tsx +129 -0
  605. scistudio-0.3.4a32/frontend/src/components/Git/GitHistoryList.tsx +211 -0
  606. scistudio-0.3.4a32/frontend/src/components/Git/GitStatusBadge.tsx +100 -0
  607. scistudio-0.3.4a32/frontend/src/components/Git/GitTab.tsx +96 -0
  608. scistudio-0.3.4a32/frontend/src/components/Git/MergeFlow.parts/MergeFlowBody.tsx +144 -0
  609. scistudio-0.3.4a32/frontend/src/components/Git/MergeFlow.parts/useMergeStateMachine.ts +179 -0
  610. scistudio-0.3.4a32/frontend/src/components/Git/MergeFlow.tsx +104 -0
  611. scistudio-0.3.4a32/frontend/src/components/Git/__tests__/BranchPicker.test.tsx +97 -0
  612. scistudio-0.3.4a32/frontend/src/components/Git/__tests__/CommitDialog.test.tsx +170 -0
  613. scistudio-0.3.4a32/frontend/src/components/Git/__tests__/ConflictMarkerDecoration.test.ts +176 -0
  614. scistudio-0.3.4a32/frontend/src/components/Git/__tests__/ConflictResolveView.test.tsx +300 -0
  615. scistudio-0.3.4a32/frontend/src/components/Git/__tests__/GitHistoryList.test.tsx +308 -0
  616. scistudio-0.3.4a32/frontend/src/components/Git/__tests__/GitTab.test.tsx +108 -0
  617. scistudio-0.3.4a32/frontend/src/components/Git/__tests__/MergeFlow.test.tsx +176 -0
  618. scistudio-0.3.4a32/frontend/src/components/LearningCenter.parts/ActiveStep.tsx +379 -0
  619. scistudio-0.3.4a32/frontend/src/components/LearningCenter.parts/DialogueSurface.tsx +557 -0
  620. scistudio-0.3.4a32/frontend/src/components/LearningCenter.parts/DocMarkdown.tsx +166 -0
  621. scistudio-0.3.4a32/frontend/src/components/LearningCenter.parts/DocsBrowser.tsx +321 -0
  622. scistudio-0.3.4a32/frontend/src/components/LearningCenter.parts/FinishChoice.tsx +56 -0
  623. scistudio-0.3.4a32/frontend/src/components/LearningCenter.parts/GroupProgress.tsx +83 -0
  624. scistudio-0.3.4a32/frontend/src/components/LearningCenter.parts/PageMarkdown.tsx +124 -0
  625. scistudio-0.3.4a32/frontend/src/components/LearningCenter.parts/ProgressRing.tsx +75 -0
  626. scistudio-0.3.4a32/frontend/src/components/LearningCenter.parts/ProviderIntro.tsx +195 -0
  627. scistudio-0.3.4a32/frontend/src/components/LearningCenter.parts/ReadingSurface.tsx +308 -0
  628. scistudio-0.3.4a32/frontend/src/components/LearningCenter.parts/StepControls.tsx +75 -0
  629. scistudio-0.3.4a32/frontend/src/components/LearningCenter.parts/StepHeading.tsx +96 -0
  630. scistudio-0.3.4a32/frontend/src/components/LearningCenter.parts/StepProgressRing.tsx +69 -0
  631. scistudio-0.3.4a32/frontend/src/components/LearningCenter.parts/TargetHighlight.tsx +60 -0
  632. scistudio-0.3.4a32/frontend/src/components/LearningCenter.parts/TutorialDetail.tsx +192 -0
  633. scistudio-0.3.4a32/frontend/src/components/LearningCenter.parts/TutorialList.tsx +81 -0
  634. scistudio-0.3.4a32/frontend/src/components/LearningCenter.parts/TutorialProblemBanner.tsx +50 -0
  635. scistudio-0.3.4a32/frontend/src/components/LearningCenter.parts/WorkImportOffer.tsx +268 -0
  636. scistudio-0.3.4a32/frontend/src/components/LearningCenter.parts/__tests__/ActiveStep.test.tsx +663 -0
  637. scistudio-0.3.4a32/frontend/src/components/LearningCenter.parts/__tests__/DialogueSurface.test.tsx +425 -0
  638. scistudio-0.3.4a32/frontend/src/components/LearningCenter.parts/__tests__/DocMarkdown.test.tsx +131 -0
  639. scistudio-0.3.4a32/frontend/src/components/LearningCenter.parts/__tests__/DocsBrowser.test.tsx +232 -0
  640. scistudio-0.3.4a32/frontend/src/components/LearningCenter.parts/__tests__/PageMarkdown.test.tsx +57 -0
  641. scistudio-0.3.4a32/frontend/src/components/LearningCenter.parts/__tests__/ReadingSurface.test.tsx +330 -0
  642. scistudio-0.3.4a32/frontend/src/components/LearningCenter.parts/__tests__/beatText.test.ts +165 -0
  643. scistudio-0.3.4a32/frontend/src/components/LearningCenter.parts/__tests__/docsNav.test.ts +186 -0
  644. scistudio-0.3.4a32/frontend/src/components/LearningCenter.parts/__tests__/mio.test.ts +93 -0
  645. scistudio-0.3.4a32/frontend/src/components/LearningCenter.parts/__tests__/placeCard.test.ts +194 -0
  646. scistudio-0.3.4a32/frontend/src/components/LearningCenter.parts/__tests__/placeDialogue.test.ts +102 -0
  647. scistudio-0.3.4a32/frontend/src/components/LearningCenter.parts/__tests__/prefill.test.ts +74 -0
  648. scistudio-0.3.4a32/frontend/src/components/LearningCenter.parts/__tests__/readingCards.test.ts +215 -0
  649. scistudio-0.3.4a32/frontend/src/components/LearningCenter.parts/__tests__/stepFlow.test.ts +120 -0
  650. scistudio-0.3.4a32/frontend/src/components/LearningCenter.parts/__tests__/useHighlightRect.test.tsx +202 -0
  651. scistudio-0.3.4a32/frontend/src/components/LearningCenter.parts/__tests__/useTypewriter.test.ts +272 -0
  652. scistudio-0.3.4a32/frontend/src/components/LearningCenter.parts/beatText.ts +81 -0
  653. scistudio-0.3.4a32/frontend/src/components/LearningCenter.parts/docsNav.ts +152 -0
  654. scistudio-0.3.4a32/frontend/src/components/LearningCenter.parts/mio.ts +239 -0
  655. scistudio-0.3.4a32/frontend/src/components/LearningCenter.parts/placeCard.ts +180 -0
  656. scistudio-0.3.4a32/frontend/src/components/LearningCenter.parts/placeDialogue.ts +157 -0
  657. scistudio-0.3.4a32/frontend/src/components/LearningCenter.parts/prefill.ts +42 -0
  658. scistudio-0.3.4a32/frontend/src/components/LearningCenter.parts/readingCards.ts +128 -0
  659. scistudio-0.3.4a32/frontend/src/components/LearningCenter.parts/stepFlow.ts +92 -0
  660. scistudio-0.3.4a32/frontend/src/components/LearningCenter.parts/targets.ts +334 -0
  661. scistudio-0.3.4a32/frontend/src/components/LearningCenter.parts/useHighlightRect.ts +144 -0
  662. scistudio-0.3.4a32/frontend/src/components/LearningCenter.parts/useTypewriter.ts +135 -0
  663. scistudio-0.3.4a32/frontend/src/components/LearningCenter.tsx +484 -0
  664. scistudio-0.3.4a32/frontend/src/components/Lineage/BlockExecutionCard.tsx +314 -0
  665. scistudio-0.3.4a32/frontend/src/components/Lineage/LineageTab.tsx +299 -0
  666. scistudio-0.3.4a32/frontend/src/components/Lineage/MethodsExportDialog.tsx +334 -0
  667. scistudio-0.3.4a32/frontend/src/components/Lineage/RestoreDialog.parts/PreflightReport.tsx +109 -0
  668. scistudio-0.3.4a32/frontend/src/components/Lineage/RestoreDialog.parts/useRestorePreflight.ts +69 -0
  669. scistudio-0.3.4a32/frontend/src/components/Lineage/RestoreDialog.tsx +166 -0
  670. scistudio-0.3.4a32/frontend/src/components/Lineage/RunDetail.parts/PartialRerunBanner.tsx +59 -0
  671. scistudio-0.3.4a32/frontend/src/components/Lineage/RunDetail.parts/RunDetailHeader.tsx +92 -0
  672. scistudio-0.3.4a32/frontend/src/components/Lineage/RunDetail.parts/format.ts +36 -0
  673. scistudio-0.3.4a32/frontend/src/components/Lineage/RunDetail.parts/restore.tsx +124 -0
  674. scistudio-0.3.4a32/frontend/src/components/Lineage/RunDetail.tsx +194 -0
  675. scistudio-0.3.4a32/frontend/src/components/Lineage/RunsList.tsx +380 -0
  676. scistudio-0.3.4a32/frontend/src/components/Lineage/__tests__/LineageTab.test.tsx +118 -0
  677. scistudio-0.3.4a32/frontend/src/components/Lineage/__tests__/RestoreDialog.test.tsx +221 -0
  678. scistudio-0.3.4a32/frontend/src/components/Lineage/__tests__/RunDetail.restore.test.tsx +164 -0
  679. scistudio-0.3.4a32/frontend/src/components/Lineage/__tests__/RunDetail.test.tsx +289 -0
  680. scistudio-0.3.4a32/frontend/src/components/Lineage/__tests__/RunsList.test.tsx +163 -0
  681. scistudio-0.3.4a32/frontend/src/components/OpenAsDialog.parts/request.ts +60 -0
  682. scistudio-0.3.4a32/frontend/src/components/OpenAsDialog.tsx +140 -0
  683. scistudio-0.3.4a32/frontend/src/components/PackageManagerDialog.test.tsx +171 -0
  684. scistudio-0.3.4a32/frontend/src/components/PackageManagerDialog.tsx +321 -0
  685. scistudio-0.3.4a32/frontend/src/components/PairEditorModal.tsx +200 -0
  686. scistudio-0.3.4a32/frontend/src/components/PortEditor/CapabilityDropdown.tsx +315 -0
  687. scistudio-0.3.4a32/frontend/src/components/PortEditorTable.capabilityDirection.test.tsx +72 -0
  688. scistudio-0.3.4a32/frontend/src/components/PortEditorTable.test.tsx +289 -0
  689. scistudio-0.3.4a32/frontend/src/components/PortEditorTable.tsx +265 -0
  690. scistudio-0.3.4a32/frontend/src/components/PreviewerPalette.parts/PreviewerCard.tsx +155 -0
  691. scistudio-0.3.4a32/frontend/src/components/PreviewerPalette.parts/previewerModel.test.ts +173 -0
  692. scistudio-0.3.4a32/frontend/src/components/PreviewerPalette.parts/previewerModel.ts +162 -0
  693. scistudio-0.3.4a32/frontend/src/components/PreviewerPalette.tsx +234 -0
  694. scistudio-0.3.4a32/frontend/src/components/ProjectDialog.parts/ProjectFormFields.tsx +95 -0
  695. scistudio-0.3.4a32/frontend/src/components/ProjectDialog.parts/RecentProjectsList.tsx +96 -0
  696. scistudio-0.3.4a32/frontend/src/components/ProjectDialog.test.tsx +61 -0
  697. scistudio-0.3.4a32/frontend/src/components/ProjectDialog.tsx +146 -0
  698. scistudio-0.3.4a32/frontend/src/components/ProjectTree.parts/ContextMenu.tsx +68 -0
  699. scistudio-0.3.4a32/frontend/src/components/ProjectTree.parts/types.ts +17 -0
  700. scistudio-0.3.4a32/frontend/src/components/ProjectTree.parts/useTreeNodes.ts +164 -0
  701. scistudio-0.3.4a32/frontend/src/components/ProjectTree.tsx +269 -0
  702. scistudio-0.3.4a32/frontend/src/components/PromptDialog.test.tsx +65 -0
  703. scistudio-0.3.4a32/frontend/src/components/PromptDialog.tsx +125 -0
  704. scistudio-0.3.4a32/frontend/src/components/TabBar.tsx +92 -0
  705. scistudio-0.3.4a32/frontend/src/components/Toolbar.parts/FileOperationsGroup.tsx +173 -0
  706. scistudio-0.3.4a32/frontend/src/components/Toolbar.parts/ProjectHeader.tsx +93 -0
  707. scistudio-0.3.4a32/frontend/src/components/Toolbar.parts/ProjectsDropdown.tsx +80 -0
  708. scistudio-0.3.4a32/frontend/src/components/Toolbar.parts/ToolbarButton.tsx +62 -0
  709. scistudio-0.3.4a32/frontend/src/components/Toolbar.parts/WorkflowGroups.tsx +110 -0
  710. scistudio-0.3.4a32/frontend/src/components/Toolbar.test.tsx +250 -0
  711. scistudio-0.3.4a32/frontend/src/components/Toolbar.tsx +330 -0
  712. scistudio-0.3.4a32/frontend/src/components/TypePalette.parts/TypeDetailPopover.tsx +145 -0
  713. scistudio-0.3.4a32/frontend/src/components/TypePalette.parts/TypeRow.tsx +124 -0
  714. scistudio-0.3.4a32/frontend/src/components/TypePalette.parts/__tests__/fixtures.ts +24 -0
  715. scistudio-0.3.4a32/frontend/src/components/TypePalette.parts/__tests__/typeModel.test.ts +331 -0
  716. scistudio-0.3.4a32/frontend/src/components/TypePalette.parts/typeModel.ts +337 -0
  717. scistudio-0.3.4a32/frontend/src/components/TypePalette.tsx +331 -0
  718. scistudio-0.3.4a32/frontend/src/components/TypedEdge.tsx +58 -0
  719. scistudio-0.3.4a32/frontend/src/components/WelcomeScreen.test.tsx +72 -0
  720. scistudio-0.3.4a32/frontend/src/components/WelcomeScreen.tsx +114 -0
  721. scistudio-0.3.4a32/frontend/src/components/WorkflowCanvas.parts/CanvasReadabilityControls.tsx +120 -0
  722. scistudio-0.3.4a32/frontend/src/components/WorkflowCanvas.parts/WorkflowMiniMap.tsx +34 -0
  723. scistudio-0.3.4a32/frontend/src/components/WorkflowCanvas.parts/__tests__/applyFocus.test.ts +101 -0
  724. scistudio-0.3.4a32/frontend/src/components/WorkflowCanvas.parts/__tests__/autoLayout.test.ts +186 -0
  725. scistudio-0.3.4a32/frontend/src/components/WorkflowCanvas.parts/__tests__/dropPosition.test.ts +94 -0
  726. scistudio-0.3.4a32/frontend/src/components/WorkflowCanvas.parts/__tests__/focusMode.test.ts +127 -0
  727. scistudio-0.3.4a32/frontend/src/components/WorkflowCanvas.parts/__tests__/layoutConstants.test.ts +19 -0
  728. scistudio-0.3.4a32/frontend/src/components/WorkflowCanvas.parts/__tests__/subworkflowConnect.test.ts +69 -0
  729. scistudio-0.3.4a32/frontend/src/components/WorkflowCanvas.parts/__tests__/subworkflowRouting.test.ts +85 -0
  730. scistudio-0.3.4a32/frontend/src/components/WorkflowCanvas.parts/__tests__/subworkflowRunView.test.ts +96 -0
  731. scistudio-0.3.4a32/frontend/src/components/WorkflowCanvas.parts/__tests__/unresolvedBlockNode.test.ts +198 -0
  732. scistudio-0.3.4a32/frontend/src/components/WorkflowCanvas.parts/applyFocus.ts +56 -0
  733. scistudio-0.3.4a32/frontend/src/components/WorkflowCanvas.parts/autoLayout.ts +177 -0
  734. scistudio-0.3.4a32/frontend/src/components/WorkflowCanvas.parts/flowNodeBuilder.ts +428 -0
  735. scistudio-0.3.4a32/frontend/src/components/WorkflowCanvas.parts/focusMode.ts +178 -0
  736. scistudio-0.3.4a32/frontend/src/components/WorkflowCanvas.parts/layoutConstants.ts +43 -0
  737. scistudio-0.3.4a32/frontend/src/components/WorkflowCanvas.parts/subworkflowRunView.ts +122 -0
  738. scistudio-0.3.4a32/frontend/src/components/WorkflowCanvas.parts/useCanvasHandlers.ts +265 -0
  739. scistudio-0.3.4a32/frontend/src/components/WorkflowCanvas.parts/useFlowCallbacks.ts +47 -0
  740. scistudio-0.3.4a32/frontend/src/components/WorkflowCanvas.parts/useFlowNodes.ts +243 -0
  741. scistudio-0.3.4a32/frontend/src/components/WorkflowCanvas.tsx +465 -0
  742. scistudio-0.3.4a32/frontend/src/components/WorkflowConflictDialog.test.tsx +77 -0
  743. scistudio-0.3.4a32/frontend/src/components/WorkflowConflictDialog.tsx +87 -0
  744. scistudio-0.3.4a32/frontend/src/components/WorkflowEditor/LossySaveWarning.tsx +185 -0
  745. scistudio-0.3.4a32/frontend/src/components/WorkflowPanel.test.tsx +159 -0
  746. scistudio-0.3.4a32/frontend/src/components/WorkflowPanel.tsx +128 -0
  747. scistudio-0.3.4a32/frontend/src/components/__tests__/BringInMyWorkDialog.harness.tsx +197 -0
  748. scistudio-0.3.4a32/frontend/src/components/__tests__/BringInMyWorkDialog.test.tsx +1003 -0
  749. scistudio-0.3.4a32/frontend/src/components/__tests__/BringInMyWorkDialogPaging.test.tsx +584 -0
  750. scistudio-0.3.4a32/frontend/src/components/__tests__/BringInMyWorkToolbarEntry.test.tsx +92 -0
  751. scistudio-0.3.4a32/frontend/src/components/__tests__/CodeEditor.test.tsx +383 -0
  752. scistudio-0.3.4a32/frontend/src/components/__tests__/LearningCenter.test.tsx +655 -0
  753. scistudio-0.3.4a32/frontend/src/components/__tests__/OpenAsDialog.test.tsx +230 -0
  754. scistudio-0.3.4a32/frontend/src/components/__tests__/PreviewerPalette.test.tsx +400 -0
  755. scistudio-0.3.4a32/frontend/src/components/__tests__/ProjectTree.test.tsx +390 -0
  756. scistudio-0.3.4a32/frontend/src/components/__tests__/TypePalette.test.tsx +394 -0
  757. scistudio-0.3.4a32/frontend/src/components/__tests__/WorkImportOffer.test.tsx +549 -0
  758. scistudio-0.3.4a32/frontend/src/components/__tests__/edgePortColorParity.test.tsx +244 -0
  759. scistudio-0.3.4a32/frontend/src/components/__tests__/tutorialAutoAdvance.test.tsx +318 -0
  760. scistudio-0.3.4a32/frontend/src/components/__tests__/tutorialProjectOpens.test.tsx +460 -0
  761. scistudio-0.3.4a32/frontend/src/components/__tests__/tutorialTargets.test.tsx +738 -0
  762. scistudio-0.3.4a32/frontend/src/components/__tests__/typeColorSource.test.tsx +243 -0
  763. scistudio-0.3.4a32/frontend/src/components/__tests__/workImport.test.ts +355 -0
  764. scistudio-0.3.4a32/frontend/src/components/interactiveModals.designSystem.test.tsx +65 -0
  765. scistudio-0.3.4a32/frontend/src/components/nodes/AnnotationNode.test.tsx +70 -0
  766. scistudio-0.3.4a32/frontend/src/components/nodes/AnnotationNode.tsx +111 -0
  767. scistudio-0.3.4a32/frontend/src/components/nodes/BlockNode.parts/AddPortDialog.tsx +131 -0
  768. scistudio-0.3.4a32/frontend/src/components/nodes/BlockNode.parts/FileBrowserModal.tsx +290 -0
  769. scistudio-0.3.4a32/frontend/src/components/nodes/BlockNode.parts/NodeActionToolbar.tsx +83 -0
  770. scistudio-0.3.4a32/frontend/src/components/nodes/BlockNode.parts/NodeStatusSurface.tsx +275 -0
  771. scistudio-0.3.4a32/frontend/src/components/nodes/BlockNode.parts/PortHandles.tsx +386 -0
  772. scistudio-0.3.4a32/frontend/src/components/nodes/BlockNode.parts/categoryVisuals.test.ts +114 -0
  773. scistudio-0.3.4a32/frontend/src/components/nodes/BlockNode.parts/categoryVisuals.ts +252 -0
  774. scistudio-0.3.4a32/frontend/src/components/nodes/BlockNode.parts/nodeDetailAnchor.test.ts +48 -0
  775. scistudio-0.3.4a32/frontend/src/components/nodes/BlockNode.parts/nodeDetailAnchor.ts +64 -0
  776. scistudio-0.3.4a32/frontend/src/components/nodes/BlockNode.parts/nodeGeometry.ts +66 -0
  777. scistudio-0.3.4a32/frontend/src/components/nodes/BlockNode.test.tsx +39 -0
  778. scistudio-0.3.4a32/frontend/src/components/nodes/BlockNode.tsx +304 -0
  779. scistudio-0.3.4a32/frontend/src/components/nodes/SubWorkflowNode.tsx +181 -0
  780. scistudio-0.3.4a32/frontend/src/components/nodes/__tests__/AddPortDialog.test.tsx +125 -0
  781. scistudio-0.3.4a32/frontend/src/components/nodes/__tests__/BlockNode/actionToolbar.test.tsx +69 -0
  782. scistudio-0.3.4a32/frontend/src/components/nodes/__tests__/BlockNode/compactNode.test.tsx +203 -0
  783. scistudio-0.3.4a32/frontend/src/components/nodes/__tests__/BlockNode/hoverDetail.test.tsx +112 -0
  784. scistudio-0.3.4a32/frontend/src/components/nodes/__tests__/BlockNode/ports.test.tsx +282 -0
  785. scistudio-0.3.4a32/frontend/src/components/nodes/__tests__/BlockNode/statusSurface.test.tsx +257 -0
  786. scistudio-0.3.4a32/frontend/src/components/nodes/__tests__/BlockNode/test-utils.tsx +200 -0
  787. scistudio-0.3.4a32/frontend/src/components/nodes/__tests__/BlockNode/unresolvedNode.test.tsx +117 -0
  788. scistudio-0.3.4a32/frontend/src/components/nodes/__tests__/SubWorkflowNode.test.tsx +180 -0
  789. scistudio-0.3.4a32/frontend/src/components/palette/DetailPopover.tsx +77 -0
  790. scistudio-0.3.4a32/frontend/src/components/palette/FilterChips.tsx +55 -0
  791. scistudio-0.3.4a32/frontend/src/components/palette/PaletteTile.tsx +108 -0
  792. scistudio-0.3.4a32/frontend/src/components/palette/__tests__/sections.test.ts +148 -0
  793. scistudio-0.3.4a32/frontend/src/components/palette/__tests__/useHoverPopover.test.tsx +168 -0
  794. scistudio-0.3.4a32/frontend/src/components/palette/hoverPopover.ts +156 -0
  795. scistudio-0.3.4a32/frontend/src/components/palette/sections.ts +136 -0
  796. scistudio-0.3.4a32/frontend/src/components/palette/tips/PaletteTipCard.tsx +115 -0
  797. scistudio-0.3.4a32/frontend/src/components/palette/tips/__tests__/PaletteTipCard.test.tsx +154 -0
  798. scistudio-0.3.4a32/frontend/src/components/palette/tips/__tests__/tipPool.test.ts +50 -0
  799. scistudio-0.3.4a32/frontend/src/components/palette/tips/__tests__/useTipRotation.test.ts +106 -0
  800. scistudio-0.3.4a32/frontend/src/components/palette/tips/tipPool.ts +458 -0
  801. scistudio-0.3.4a32/frontend/src/components/palette/tips/useTipRotation.ts +79 -0
  802. scistudio-0.3.4a32/frontend/src/components/promotion/PromoteToLibraryAction.tsx +81 -0
  803. scistudio-0.3.4a32/frontend/src/components/promotion/UserLibraryDialogs.tsx +435 -0
  804. scistudio-0.3.4a32/frontend/src/components/promotion/__tests__/cascade.test.ts +102 -0
  805. scistudio-0.3.4a32/frontend/src/components/promotion/__tests__/dialogs.test.tsx +169 -0
  806. scistudio-0.3.4a32/frontend/src/components/promotion/__tests__/entryPoints.test.tsx +339 -0
  807. scistudio-0.3.4a32/frontend/src/components/promotion/__tests__/fixtures.ts +52 -0
  808. scistudio-0.3.4a32/frontend/src/components/promotion/__tests__/promotable.test.ts +144 -0
  809. scistudio-0.3.4a32/frontend/src/components/promotion/__tests__/promoteToUserLibrary.test.ts +441 -0
  810. scistudio-0.3.4a32/frontend/src/components/promotion/__tests__/pythonImports.test.ts +92 -0
  811. scistudio-0.3.4a32/frontend/src/components/promotion/__tests__/revealInLibrary.test.tsx +183 -0
  812. scistudio-0.3.4a32/frontend/src/components/promotion/__tests__/runPromotion.test.ts +122 -0
  813. scistudio-0.3.4a32/frontend/src/components/promotion/cascade.ts +146 -0
  814. scistudio-0.3.4a32/frontend/src/components/promotion/dialogChannel.ts +160 -0
  815. scistudio-0.3.4a32/frontend/src/components/promotion/promotable.ts +178 -0
  816. scistudio-0.3.4a32/frontend/src/components/promotion/promoteToUserLibrary.ts +456 -0
  817. scistudio-0.3.4a32/frontend/src/components/promotion/promotionIo.ts +108 -0
  818. scistudio-0.3.4a32/frontend/src/components/promotion/pythonImports.ts +237 -0
  819. scistudio-0.3.4a32/frontend/src/components/promotion/revealInLibrary.ts +95 -0
  820. scistudio-0.3.4a32/frontend/src/components/promotion/runPromotion.ts +55 -0
  821. scistudio-0.3.4a32/frontend/src/components/promotion/useEditorPromotable.ts +27 -0
  822. scistudio-0.3.4a32/frontend/src/components/ui/button.tsx +54 -0
  823. scistudio-0.3.4a32/frontend/src/components/ui/dropdown-menu.tsx +77 -0
  824. scistudio-0.3.4a32/frontend/src/components/ui/resizable.tsx +42 -0
  825. scistudio-0.3.4a32/frontend/src/components/ui/separator.tsx +24 -0
  826. scistudio-0.3.4a32/frontend/src/components/ui/tabs.tsx +53 -0
  827. scistudio-0.3.4a32/frontend/src/components/ui/tooltip.tsx +30 -0
  828. scistudio-0.3.4a32/frontend/src/config/__tests__/typeColorMap.test.ts +300 -0
  829. scistudio-0.3.4a32/frontend/src/config/typeColorMap.ts +362 -0
  830. scistudio-0.3.4a32/frontend/src/hooks/__tests__/tutorialCanvasFit.test.ts +77 -0
  831. scistudio-0.3.4a32/frontend/src/hooks/__tests__/useElapsedMs.test.tsx +72 -0
  832. scistudio-0.3.4a32/frontend/src/hooks/__tests__/useReloadFlash.test.ts +58 -0
  833. scistudio-0.3.4a32/frontend/src/hooks/__tests__/useWebSocket.versionVector.test.ts +538 -0
  834. scistudio-0.3.4a32/frontend/src/hooks/connectionState.ts +38 -0
  835. scistudio-0.3.4a32/frontend/src/hooks/useElapsedMs.ts +43 -0
  836. scistudio-0.3.4a32/frontend/src/hooks/usePackageUpdates.ts +47 -0
  837. scistudio-0.3.4a32/frontend/src/hooks/useRealtime.test.tsx +99 -0
  838. scistudio-0.3.4a32/frontend/src/hooks/useReconnect.test.tsx +255 -0
  839. scistudio-0.3.4a32/frontend/src/hooks/useReloadFlash.ts +37 -0
  840. scistudio-0.3.4a32/frontend/src/hooks/useSSE.ts +98 -0
  841. scistudio-0.3.4a32/frontend/src/hooks/useWebSocket.parts/dispatchEvent.ts +108 -0
  842. scistudio-0.3.4a32/frontend/src/hooks/useWebSocket.parts/handleBlockPty.ts +120 -0
  843. scistudio-0.3.4a32/frontend/src/hooks/useWebSocket.parts/handleFileChanged.ts +184 -0
  844. scistudio-0.3.4a32/frontend/src/hooks/useWebSocket.parts/handleInteractivePrompt.test.ts +71 -0
  845. scistudio-0.3.4a32/frontend/src/hooks/useWebSocket.parts/handleLifecycle.ts +82 -0
  846. scistudio-0.3.4a32/frontend/src/hooks/useWebSocket.parts/handleWorkflowChanged.ts +266 -0
  847. scistudio-0.3.4a32/frontend/src/hooks/useWebSocket.parts/helpers.ts +65 -0
  848. scistudio-0.3.4a32/frontend/src/hooks/useWebSocket.test.ts +490 -0
  849. scistudio-0.3.4a32/frontend/src/hooks/useWebSocket.ts +200 -0
  850. scistudio-0.3.4a32/frontend/src/index.css +134 -0
  851. scistudio-0.3.4a32/frontend/src/lib/__tests__/logger.test.ts +152 -0
  852. scistudio-0.3.4a32/frontend/src/lib/__tests__/userLibrary.test.ts +122 -0
  853. scistudio-0.3.4a32/frontend/src/lib/api/__tests__/agentAvailability.test.ts +197 -0
  854. scistudio-0.3.4a32/frontend/src/lib/api/__tests__/api-surface.test.ts +212 -0
  855. scistudio-0.3.4a32/frontend/src/lib/api/__tests__/filesystem.test.ts +56 -0
  856. scistudio-0.3.4a32/frontend/src/lib/api/__tests__/plotPreview.test.ts +213 -0
  857. scistudio-0.3.4a32/frontend/src/lib/api/__tests__/timeout.test.ts +124 -0
  858. scistudio-0.3.4a32/frontend/src/lib/api/agentAvailability.ts +110 -0
  859. scistudio-0.3.4a32/frontend/src/lib/api/ai.ts +40 -0
  860. scistudio-0.3.4a32/frontend/src/lib/api/base-path.test.ts +178 -0
  861. scistudio-0.3.4a32/frontend/src/lib/api/base-path.ts +102 -0
  862. scistudio-0.3.4a32/frontend/src/lib/api/blocks.ts +49 -0
  863. scistudio-0.3.4a32/frontend/src/lib/api/code.ts +94 -0
  864. scistudio-0.3.4a32/frontend/src/lib/api/core.ts +192 -0
  865. scistudio-0.3.4a32/frontend/src/lib/api/data.ts +297 -0
  866. scistudio-0.3.4a32/frontend/src/lib/api/filesystem.ts +47 -0
  867. scistudio-0.3.4a32/frontend/src/lib/api/git.ts +110 -0
  868. scistudio-0.3.4a32/frontend/src/lib/api/learningCenter.ts +466 -0
  869. scistudio-0.3.4a32/frontend/src/lib/api/lineage.ts +263 -0
  870. scistudio-0.3.4a32/frontend/src/lib/api/packages.ts +39 -0
  871. scistudio-0.3.4a32/frontend/src/lib/api/projects.ts +51 -0
  872. scistudio-0.3.4a32/frontend/src/lib/api/userDocs.ts +71 -0
  873. scistudio-0.3.4a32/frontend/src/lib/api/userLibrary.ts +71 -0
  874. scistudio-0.3.4a32/frontend/src/lib/api/version.ts +92 -0
  875. scistudio-0.3.4a32/frontend/src/lib/api/workImport.ts +214 -0
  876. scistudio-0.3.4a32/frontend/src/lib/api/workflows.ts +140 -0
  877. scistudio-0.3.4a32/frontend/src/lib/api.ts +74 -0
  878. scistudio-0.3.4a32/frontend/src/lib/capabilities.test.ts +119 -0
  879. scistudio-0.3.4a32/frontend/src/lib/capabilities.ts +105 -0
  880. scistudio-0.3.4a32/frontend/src/lib/chooseSubworkflowFile.test.ts +108 -0
  881. scistudio-0.3.4a32/frontend/src/lib/chooseSubworkflowFile.ts +73 -0
  882. scistudio-0.3.4a32/frontend/src/lib/fileExistence.test.ts +72 -0
  883. scistudio-0.3.4a32/frontend/src/lib/fileExistence.ts +54 -0
  884. scistudio-0.3.4a32/frontend/src/lib/interactiveMemory.test.ts +30 -0
  885. scistudio-0.3.4a32/frontend/src/lib/interactiveMemory.ts +37 -0
  886. scistudio-0.3.4a32/frontend/src/lib/logger.ts +257 -0
  887. scistudio-0.3.4a32/frontend/src/lib/openDataFile.ts +75 -0
  888. scistudio-0.3.4a32/frontend/src/lib/plotTargetLabel.test.ts +104 -0
  889. scistudio-0.3.4a32/frontend/src/lib/plotTargetLabel.ts +88 -0
  890. scistudio-0.3.4a32/frontend/src/lib/utils.ts +6 -0
  891. scistudio-0.3.4a32/frontend/src/main.tsx +31 -0
  892. scistudio-0.3.4a32/frontend/src/store/__tests__/blockSchemaEviction.test.ts +75 -0
  893. scistudio-0.3.4a32/frontend/src/store/__tests__/gitLogRetryStorm.test.ts +149 -0
  894. scistudio-0.3.4a32/frontend/src/store/__tests__/gitSlice.test.ts +405 -0
  895. scistudio-0.3.4a32/frontend/src/store/__tests__/lineageSlice.test.ts +205 -0
  896. scistudio-0.3.4a32/frontend/src/store/__tests__/normalizeLoadedNodes.test.ts +67 -0
  897. scistudio-0.3.4a32/frontend/src/store/__tests__/previewerCatalogInvalidation.test.ts +194 -0
  898. scistudio-0.3.4a32/frontend/src/store/__tests__/tabHelpers.test.ts +10 -0
  899. scistudio-0.3.4a32/frontend/src/store/__tests__/tabSlice.versionVector.test.ts +201 -0
  900. scistudio-0.3.4a32/frontend/src/store/__tests__/tabState.test.ts +398 -0
  901. scistudio-0.3.4a32/frontend/src/store/__tests__/terminalTabsSlice.tutorialReplay.test.ts +93 -0
  902. scistudio-0.3.4a32/frontend/src/store/__tests__/terminalTabsSlice.workImport.test.ts +88 -0
  903. scistudio-0.3.4a32/frontend/src/store/__tests__/typeCatalogInvalidation.test.ts +161 -0
  904. scistudio-0.3.4a32/frontend/src/store/__tests__/userLibraryTab.test.ts +102 -0
  905. scistudio-0.3.4a32/frontend/src/store/__tests__/uxHotfix.test.ts +95 -0
  906. scistudio-0.3.4a32/frontend/src/store/__tests__/workflowSlice.conflict.test.ts +115 -0
  907. scistudio-0.3.4a32/frontend/src/store/__tests__/workflowSlice.layoutBatch.test.ts +140 -0
  908. scistudio-0.3.4a32/frontend/src/store/__tests__/workflowSlice.subworkflowRef.test.ts +82 -0
  909. scistudio-0.3.4a32/frontend/src/store/__tests__/workflowSlice.variadicPorts.test.ts +134 -0
  910. scistudio-0.3.4a32/frontend/src/store/__tests__/workflowSlice.versionVector.test.ts +114 -0
  911. scistudio-0.3.4a32/frontend/src/store/executionSlice.parts/eventReducer.test.ts +273 -0
  912. scistudio-0.3.4a32/frontend/src/store/executionSlice.parts/eventReducer.ts +173 -0
  913. scistudio-0.3.4a32/frontend/src/store/executionSlice.ts +82 -0
  914. scistudio-0.3.4a32/frontend/src/store/gitSlice.ts +413 -0
  915. scistudio-0.3.4a32/frontend/src/store/index.ts +205 -0
  916. scistudio-0.3.4a32/frontend/src/store/learningCenterSlice.ts +630 -0
  917. scistudio-0.3.4a32/frontend/src/store/lineageSlice.ts +308 -0
  918. scistudio-0.3.4a32/frontend/src/store/paletteSlice.ts +37 -0
  919. scistudio-0.3.4a32/frontend/src/store/previewSlice.ts +74 -0
  920. scistudio-0.3.4a32/frontend/src/store/previewerCatalogSlice.ts +35 -0
  921. scistudio-0.3.4a32/frontend/src/store/projectSlice.ts +36 -0
  922. scistudio-0.3.4a32/frontend/src/store/tabSlice.parts/fileTabActions.ts +607 -0
  923. scistudio-0.3.4a32/frontend/src/store/tabSlice.parts/previewTabActions.ts +61 -0
  924. scistudio-0.3.4a32/frontend/src/store/tabSlice.parts/tabHelpers.ts +149 -0
  925. scistudio-0.3.4a32/frontend/src/store/tabSlice.parts/workflowTabActions.ts +191 -0
  926. scistudio-0.3.4a32/frontend/src/store/tabSlice.test.ts +297 -0
  927. scistudio-0.3.4a32/frontend/src/store/tabSlice.ts +45 -0
  928. scistudio-0.3.4a32/frontend/src/store/terminalTabsSlice.ts +326 -0
  929. scistudio-0.3.4a32/frontend/src/store/types.ts +1203 -0
  930. scistudio-0.3.4a32/frontend/src/store/typesSlice.ts +35 -0
  931. scistudio-0.3.4a32/frontend/src/store/uiSlice.ts +123 -0
  932. scistudio-0.3.4a32/frontend/src/store/usePreviewerCatalog.ts +232 -0
  933. scistudio-0.3.4a32/frontend/src/store/useTypeCatalog.ts +190 -0
  934. scistudio-0.3.4a32/frontend/src/store/workflowSlice.parts/workflowEditActions.ts +295 -0
  935. scistudio-0.3.4a32/frontend/src/store/workflowSlice.parts/workflowHelpers.ts +107 -0
  936. scistudio-0.3.4a32/frontend/src/store/workflowSlice.parts/workflowVersionActions.ts +62 -0
  937. scistudio-0.3.4a32/frontend/src/store/workflowSlice.ts +143 -0
  938. scistudio-0.3.4a32/frontend/src/testUtils.ts +61 -0
  939. scistudio-0.3.4a32/frontend/src/types/api.ts +1121 -0
  940. scistudio-0.3.4a32/frontend/src/types/desktop.d.ts +35 -0
  941. scistudio-0.3.4a32/frontend/src/types/lineage.ts +134 -0
  942. scistudio-0.3.4a32/frontend/src/types/ui.ts +158 -0
  943. scistudio-0.3.4a32/frontend/src/utils/__fixtures__/README.md +45 -0
  944. scistudio-0.3.4a32/frontend/src/utils/__fixtures__/generate_portcompat_oracle.py +179 -0
  945. scistudio-0.3.4a32/frontend/src/utils/__fixtures__/portcompat.oracle.json +415 -0
  946. scistudio-0.3.4a32/frontend/src/utils/__tests__/computeEffectivePorts.test.ts +274 -0
  947. scistudio-0.3.4a32/frontend/src/utils/computeEffectivePorts.ts +104 -0
  948. scistudio-0.3.4a32/frontend/src/utils/portCompat.conformance.test.ts +56 -0
  949. scistudio-0.3.4a32/frontend/src/utils/portCompat.ts +57 -0
  950. scistudio-0.3.4a32/frontend/src/vite-env.d.ts +1 -0
  951. scistudio-0.3.4a32/frontend/src/webmcp/register.test.ts +290 -0
  952. scistudio-0.3.4a32/frontend/src/webmcp/register.ts +257 -0
  953. scistudio-0.3.4a32/frontend/src/webmcp/types.ts +68 -0
  954. scistudio-0.3.4a32/frontend/tailwind.config.ts +70 -0
  955. scistudio-0.3.4a32/frontend/tsconfig.json +25 -0
  956. scistudio-0.3.4a32/frontend/tsconfig.node.json +9 -0
  957. scistudio-0.3.4a32/frontend/vite.config.ts +42 -0
  958. scistudio-0.3.4a32/frontend/vitest.setup.ts +76 -0
  959. scistudio-0.3.4a32/mkdocs.site.yml +42 -0
  960. scistudio-0.3.4a32/mkdocs.yml +85 -0
  961. scistudio-0.3.4a32/pyproject.toml +528 -0
  962. scistudio-0.3.4a32/scripts/ai_review.py +158 -0
  963. scistudio-0.3.4a32/scripts/audit/check_package_contract_tables.py +819 -0
  964. scistudio-0.3.4a32/scripts/audit/generate_facts.py +88 -0
  965. scistudio-0.3.4a32/scripts/check_god_files.py +154 -0
  966. scistudio-0.3.4a32/scripts/deferral_scan.py +339 -0
  967. scistudio-0.3.4a32/scripts/docs/build_reference.py +480 -0
  968. scistudio-0.3.4a32/scripts/docs/build_site.py +117 -0
  969. scistudio-0.3.4a32/scripts/docs/griffe_sphinx_roles.py +81 -0
  970. scistudio-0.3.4a32/scripts/find_cycles.py +118 -0
  971. scistudio-0.3.4a32/scripts/hooks/check-agent-template.sh +59 -0
  972. scistudio-0.3.4a32/scripts/hooks/check-ci-after-pr.sh +36 -0
  973. scistudio-0.3.4a32/scripts/hooks/check-gate-before-pr.sh +133 -0
  974. scistudio-0.3.4a32/scripts/hooks/check-gate-before-push.sh +11 -0
  975. scistudio-0.3.4a32/scripts/hooks/check-worktree-write-guard.sh +27 -0
  976. scistudio-0.3.4a32/scripts/hooks/remind-checklist-discipline.sh +90 -0
  977. scistudio-0.3.4a32/scripts/ota_publish.py +791 -0
  978. scistudio-0.3.4a32/scripts/prompts/review_agent_prompt.md +14 -0
  979. scistudio-0.3.4a32/scripts/scistudio_pr_create.py +224 -0
  980. scistudio-0.3.4a32/scripts/templates/reinstall-notice.html +196 -0
  981. scistudio-0.3.4a32/scripts/verify_ome_propagation_e2e001.py +155 -0
  982. scistudio-0.3.4a32/scripts/version.py +152 -0
  983. scistudio-0.3.4a32/setup.cfg +4 -0
  984. scistudio-0.3.4a32/setup.py +129 -0
  985. scistudio-0.3.4a32/skills/scistudio/examples/basic-image-workflow.yaml +37 -0
  986. scistudio-0.3.4a32/src/imagecodecs/__init__.pyi +2 -0
  987. scistudio-0.3.4a32/src/scistudio/__init__.py +9 -0
  988. scistudio-0.3.4a32/src/scistudio/__main__.py +30 -0
  989. scistudio-0.3.4a32/src/scistudio/_agent_reference/README.md +20 -0
  990. scistudio-0.3.4a32/src/scistudio/_agent_reference/block-contract.md +174 -0
  991. scistudio-0.3.4a32/src/scistudio/_agent_reference/data-types.md +56 -0
  992. scistudio-0.3.4a32/src/scistudio/_agent_reference/package-discovery.md +46 -0
  993. scistudio-0.3.4a32/src/scistudio/_agent_reference/plot-contract.md +63 -0
  994. scistudio-0.3.4a32/src/scistudio/_agent_reference/public-api.md +72 -0
  995. scistudio-0.3.4a32/src/scistudio/_agent_reference/workflow-schema.md +76 -0
  996. scistudio-0.3.4a32/src/scistudio/_skills/scistudio/SKILL.md +151 -0
  997. scistudio-0.3.4a32/src/scistudio/_skills/scistudio/scistudio-build-workflow/SKILL.md +411 -0
  998. scistudio-0.3.4a32/src/scistudio/_skills/scistudio/scistudio-debug-run/SKILL.md +217 -0
  999. scistudio-0.3.4a32/src/scistudio/_skills/scistudio/scistudio-inspect-data/SKILL.md +172 -0
  1000. scistudio-0.3.4a32/src/scistudio/_skills/scistudio/scistudio-project-qa/SKILL.md +86 -0
  1001. scistudio-0.3.4a32/src/scistudio/_skills/scistudio/scistudio-write-block/SKILL.md +125 -0
  1002. scistudio-0.3.4a32/src/scistudio/_skills/scistudio/scistudio-write-plot/SKILL.md +210 -0
  1003. scistudio-0.3.4a32/src/scistudio/_user_guide/README.md +54 -0
  1004. scistudio-0.3.4a32/src/scistudio/_user_guide/ai-assistant.md +219 -0
  1005. scistudio-0.3.4a32/src/scistudio/_user_guide/api-reference/index.md +28 -0
  1006. scistudio-0.3.4a32/src/scistudio/_user_guide/api-reference/scistudio.api.app.md +60 -0
  1007. scistudio-0.3.4a32/src/scistudio/_user_guide/api-reference/scistudio.api.seam.md +199 -0
  1008. scistudio-0.3.4a32/src/scistudio/_user_guide/api-reference/scistudio.blocks.app.md +216 -0
  1009. scistudio-0.3.4a32/src/scistudio/_user_guide/api-reference/scistudio.blocks.base.md +332 -0
  1010. scistudio-0.3.4a32/src/scistudio/_user_guide/api-reference/scistudio.blocks.code.md +1302 -0
  1011. scistudio-0.3.4a32/src/scistudio/_user_guide/api-reference/scistudio.blocks.io.md +261 -0
  1012. scistudio-0.3.4a32/src/scistudio/_user_guide/api-reference/scistudio.blocks.process.md +53 -0
  1013. scistudio-0.3.4a32/src/scistudio/_user_guide/api-reference/scistudio.core.meta.md +96 -0
  1014. scistudio-0.3.4a32/src/scistudio/_user_guide/api-reference/scistudio.core.types.md +345 -0
  1015. scistudio-0.3.4a32/src/scistudio/_user_guide/api-reference/scistudio.previewers.data_access.md +178 -0
  1016. scistudio-0.3.4a32/src/scistudio/_user_guide/api-reference/scistudio.previewers.models.md +424 -0
  1017. scistudio-0.3.4a32/src/scistudio/_user_guide/api-reference/scistudio.tutorials.md +382 -0
  1018. scistudio-0.3.4a32/src/scistudio/_user_guide/built-in-blocks.md +131 -0
  1019. scistudio-0.3.4a32/src/scistudio/_user_guide/custom-types.md +123 -0
  1020. scistudio-0.3.4a32/src/scistudio/_user_guide/data-types.md +79 -0
  1021. scistudio-0.3.4a32/src/scistudio/_user_guide/examples/README.md +17 -0
  1022. scistudio-0.3.4a32/src/scistudio/_user_guide/examples/app-fiji/README.md +63 -0
  1023. scistudio-0.3.4a32/src/scistudio/_user_guide/examples/app-fiji/block.py +53 -0
  1024. scistudio-0.3.4a32/src/scistudio/_user_guide/examples/app-fiji/gaussian_blur.ijm +21 -0
  1025. scistudio-0.3.4a32/src/scistudio/_user_guide/examples/code-accucor-r/README.md +67 -0
  1026. scistudio-0.3.4a32/src/scistudio/_user_guide/examples/code-accucor-r/accucor.R +37 -0
  1027. scistudio-0.3.4a32/src/scistudio/_user_guide/examples/io-load-npy/README.md +58 -0
  1028. scistudio-0.3.4a32/src/scistudio/_user_guide/examples/io-load-npy/block.py +38 -0
  1029. scistudio-0.3.4a32/src/scistudio/_user_guide/examples/process-scale-array/README.md +53 -0
  1030. scistudio-0.3.4a32/src/scistudio/_user_guide/examples/process-scale-array/block.py +55 -0
  1031. scistudio-0.3.4a32/src/scistudio/_user_guide/getting-started.md +92 -0
  1032. scistudio-0.3.4a32/src/scistudio/_user_guide/history-and-branches.md +124 -0
  1033. scistudio-0.3.4a32/src/scistudio/_user_guide/how-scistudio-works.md +103 -0
  1034. scistudio-0.3.4a32/src/scistudio/_user_guide/using-the-gui.md +110 -0
  1035. scistudio-0.3.4a32/src/scistudio/_user_guide/writing-blocks.md +197 -0
  1036. scistudio-0.3.4a32/src/scistudio/_user_guide/writing-plots.md +113 -0
  1037. scistudio-0.3.4a32/src/scistudio/_version.py +23 -0
  1038. scistudio-0.3.4a32/src/scistudio/agent_provisioning/__init__.py +25 -0
  1039. scistudio-0.3.4a32/src/scistudio/agent_provisioning/_orchestrate.py +229 -0
  1040. scistudio-0.3.4a32/src/scistudio/agent_provisioning/_refresh.py +123 -0
  1041. scistudio-0.3.4a32/src/scistudio/agent_provisioning/claude_agents_md.py +82 -0
  1042. scistudio-0.3.4a32/src/scistudio/agent_provisioning/codex_config.py +402 -0
  1043. scistudio-0.3.4a32/src/scistudio/agent_provisioning/docs.py +268 -0
  1044. scistudio-0.3.4a32/src/scistudio/agent_provisioning/hooks.py +562 -0
  1045. scistudio-0.3.4a32/src/scistudio/agent_provisioning/skills.py +180 -0
  1046. scistudio-0.3.4a32/src/scistudio/agent_provisioning/templates/claude_agents_md.md +158 -0
  1047. scistudio-0.3.4a32/src/scistudio/agent_provisioning/templates/codex_config.toml +18 -0
  1048. scistudio-0.3.4a32/src/scistudio/agent_provisioning/templates/hook_deny_scistudio_cli.py +77 -0
  1049. scistudio-0.3.4a32/src/scistudio/agent_provisioning/templates/hook_enforce_concrete_port_types.py +266 -0
  1050. scistudio-0.3.4a32/src/scistudio/agent_provisioning/templates/hook_enforce_list_blocks_before_block_write.py +137 -0
  1051. scistudio-0.3.4a32/src/scistudio/agent_provisioning/templates/hook_mark_list_blocks_called.py +86 -0
  1052. scistudio-0.3.4a32/src/scistudio/agent_provisioning/templates/hook_protect_data_dir.py +187 -0
  1053. scistudio-0.3.4a32/src/scistudio/agent_provisioning/templates/hook_protect_workflow_yaml.py +73 -0
  1054. scistudio-0.3.4a32/src/scistudio/agent_provisioning/templates/hook_remind_poll_status.py +71 -0
  1055. scistudio-0.3.4a32/src/scistudio/agent_provisioning/templates/legacy_content_hashes.json +142 -0
  1056. scistudio-0.3.4a32/src/scistudio/ai/__init__.py +9 -0
  1057. scistudio-0.3.4a32/src/scistudio/ai/agent/__init__.py +15 -0
  1058. scistudio-0.3.4a32/src/scistudio/ai/agent/availability.py +941 -0
  1059. scistudio-0.3.4a32/src/scistudio/ai/agent/mcp/__init__.py +76 -0
  1060. scistudio-0.3.4a32/src/scistudio/ai/agent/mcp/_context.py +342 -0
  1061. scistudio-0.3.4a32/src/scistudio/ai/agent/mcp/_reload.py +82 -0
  1062. scistudio-0.3.4a32/src/scistudio/ai/agent/mcp/runtime.py +356 -0
  1063. scistudio-0.3.4a32/src/scistudio/ai/agent/mcp/server.py +565 -0
  1064. scistudio-0.3.4a32/src/scistudio/ai/agent/mcp/tools_authoring.py +525 -0
  1065. scistudio-0.3.4a32/src/scistudio/ai/agent/mcp/tools_execution.py +1013 -0
  1066. scistudio-0.3.4a32/src/scistudio/ai/agent/mcp/tools_inspection/__init__.py +120 -0
  1067. scistudio-0.3.4a32/src/scistudio/ai/agent/mcp/tools_inspection/_helpers.py +45 -0
  1068. scistudio-0.3.4a32/src/scistudio/ai/agent/mcp/tools_inspection/_models.py +126 -0
  1069. scistudio-0.3.4a32/src/scistudio/ai/agent/mcp/tools_inspection/_preview.py +259 -0
  1070. scistudio-0.3.4a32/src/scistudio/ai/agent/mcp/tools_inspection/read.py +454 -0
  1071. scistudio-0.3.4a32/src/scistudio/ai/agent/mcp/tools_inspection/write.py +164 -0
  1072. scistudio-0.3.4a32/src/scistudio/ai/agent/mcp/tools_library.py +346 -0
  1073. scistudio-0.3.4a32/src/scistudio/ai/agent/mcp/tools_plot/__init__.py +61 -0
  1074. scistudio-0.3.4a32/src/scistudio/ai/agent/mcp/tools_plot/tools.py +296 -0
  1075. scistudio-0.3.4a32/src/scistudio/ai/agent/mcp/tools_qa.py +859 -0
  1076. scistudio-0.3.4a32/src/scistudio/ai/agent/mcp/tools_workflow/__init__.py +159 -0
  1077. scistudio-0.3.4a32/src/scistudio/ai/agent/mcp/tools_workflow/_errors.py +82 -0
  1078. scistudio-0.3.4a32/src/scistudio/ai/agent/mcp/tools_workflow/_helpers.py +291 -0
  1079. scistudio-0.3.4a32/src/scistudio/ai/agent/mcp/tools_workflow/_models.py +287 -0
  1080. scistudio-0.3.4a32/src/scistudio/ai/agent/mcp/tools_workflow/finish_ai_block.py +146 -0
  1081. scistudio-0.3.4a32/src/scistudio/ai/agent/mcp/tools_workflow/read.py +429 -0
  1082. scistudio-0.3.4a32/src/scistudio/ai/agent/mcp/tools_workflow/write.py +588 -0
  1083. scistudio-0.3.4a32/src/scistudio/ai/agent/mcp/tools_workspace.py +1638 -0
  1084. scistudio-0.3.4a32/src/scistudio/ai/agent/providers_registry.py +931 -0
  1085. scistudio-0.3.4a32/src/scistudio/ai/agent/system_prompt.py +380 -0
  1086. scistudio-0.3.4a32/src/scistudio/ai/agent/terminal.py +1022 -0
  1087. scistudio-0.3.4a32/src/scistudio/ai/work_import/__init__.py +48 -0
  1088. scistudio-0.3.4a32/src/scistudio/ai/work_import/brief.py +196 -0
  1089. scistudio-0.3.4a32/src/scistudio/ai/work_import/brief_template.md +390 -0
  1090. scistudio-0.3.4a32/src/scistudio/ai/work_import/context.py +136 -0
  1091. scistudio-0.3.4a32/src/scistudio/api/__init__.py +1 -0
  1092. scistudio-0.3.4a32/src/scistudio/api/_block_source.py +153 -0
  1093. scistudio-0.3.4a32/src/scistudio/api/_logging_middleware.py +60 -0
  1094. scistudio-0.3.4a32/src/scistudio/api/app.py +651 -0
  1095. scistudio-0.3.4a32/src/scistudio/api/deps.py +59 -0
  1096. scistudio-0.3.4a32/src/scistudio/api/file_contracts.py +22 -0
  1097. scistudio-0.3.4a32/src/scistudio/api/mcp_lifecycle.py +77 -0
  1098. scistudio-0.3.4a32/src/scistudio/api/project_layout.py +72 -0
  1099. scistudio-0.3.4a32/src/scistudio/api/routes/__init__.py +1 -0
  1100. scistudio-0.3.4a32/src/scistudio/api/routes/ai.py +284 -0
  1101. scistudio-0.3.4a32/src/scistudio/api/routes/ai_pty/__init__.py +136 -0
  1102. scistudio-0.3.4a32/src/scistudio/api/routes/ai_pty/_state.py +130 -0
  1103. scistudio-0.3.4a32/src/scistudio/api/routes/ai_pty/engine.py +395 -0
  1104. scistudio-0.3.4a32/src/scistudio/api/routes/ai_pty/internal_routes.py +160 -0
  1105. scistudio-0.3.4a32/src/scistudio/api/routes/ai_pty/replay.py +248 -0
  1106. scistudio-0.3.4a32/src/scistudio/api/routes/ai_pty/subscribers.py +65 -0
  1107. scistudio-0.3.4a32/src/scistudio/api/routes/ai_pty/validation.py +58 -0
  1108. scistudio-0.3.4a32/src/scistudio/api/routes/ai_pty/websocket.py +359 -0
  1109. scistudio-0.3.4a32/src/scistudio/api/routes/blocks.py +658 -0
  1110. scistudio-0.3.4a32/src/scistudio/api/routes/data.py +804 -0
  1111. scistudio-0.3.4a32/src/scistudio/api/routes/diagnostics.py +229 -0
  1112. scistudio-0.3.4a32/src/scistudio/api/routes/filesystem.py +791 -0
  1113. scistudio-0.3.4a32/src/scistudio/api/routes/git.py +826 -0
  1114. scistudio-0.3.4a32/src/scistudio/api/routes/lint.py +156 -0
  1115. scistudio-0.3.4a32/src/scistudio/api/routes/packages.py +302 -0
  1116. scistudio-0.3.4a32/src/scistudio/api/routes/plots.py +425 -0
  1117. scistudio-0.3.4a32/src/scistudio/api/routes/projects.py +449 -0
  1118. scistudio-0.3.4a32/src/scistudio/api/routes/runs.py +245 -0
  1119. scistudio-0.3.4a32/src/scistudio/api/routes/tutorials.py +1839 -0
  1120. scistudio-0.3.4a32/src/scistudio/api/routes/types.py +384 -0
  1121. scistudio-0.3.4a32/src/scistudio/api/routes/user_docs.py +330 -0
  1122. scistudio-0.3.4a32/src/scistudio/api/routes/user_library.py +558 -0
  1123. scistudio-0.3.4a32/src/scistudio/api/routes/webmcp.py +341 -0
  1124. scistudio-0.3.4a32/src/scistudio/api/routes/work_import.py +321 -0
  1125. scistudio-0.3.4a32/src/scistudio/api/routes/workflow_watcher.py +926 -0
  1126. scistudio-0.3.4a32/src/scistudio/api/routes/workflows.py +748 -0
  1127. scistudio-0.3.4a32/src/scistudio/api/runtime/__init__.py +836 -0
  1128. scistudio-0.3.4a32/src/scistudio/api/runtime/_data.py +411 -0
  1129. scistudio-0.3.4a32/src/scistudio/api/runtime/_file_writes.py +1051 -0
  1130. scistudio-0.3.4a32/src/scistudio/api/runtime/_helpers.py +98 -0
  1131. scistudio-0.3.4a32/src/scistudio/api/runtime/_preview_image.py +81 -0
  1132. scistudio-0.3.4a32/src/scistudio/api/runtime/_projects.py +720 -0
  1133. scistudio-0.3.4a32/src/scistudio/api/runtime/_runs.py +596 -0
  1134. scistudio-0.3.4a32/src/scistudio/api/runtime/_workflows.py +413 -0
  1135. scistudio-0.3.4a32/src/scistudio/api/runtime/models.py +87 -0
  1136. scistudio-0.3.4a32/src/scistudio/api/schemas.py +939 -0
  1137. scistudio-0.3.4a32/src/scistudio/api/seam.py +385 -0
  1138. scistudio-0.3.4a32/src/scistudio/api/spa.py +203 -0
  1139. scistudio-0.3.4a32/src/scistudio/api/sse.py +43 -0
  1140. scistudio-0.3.4a32/src/scistudio/api/static/assets/addon-fit-DsiWvdAE.js +1 -0
  1141. scistudio-0.3.4a32/src/scistudio/api/static/assets/addon-search-DOhs21rt.js +1 -0
  1142. scistudio-0.3.4a32/src/scistudio/api/static/assets/addon-web-links-BG-joD3z.js +1 -0
  1143. scistudio-0.3.4a32/src/scistudio/api/static/assets/angry-4BxFpznm.webp +0 -0
  1144. scistudio-0.3.4a32/src/scistudio/api/static/assets/angry-CIxoCmRA.webp +0 -0
  1145. scistudio-0.3.4a32/src/scistudio/api/static/assets/angry-DOZSr2eI.webp +0 -0
  1146. scistudio-0.3.4a32/src/scistudio/api/static/assets/angry-OJIlFFS_.webp +0 -0
  1147. scistudio-0.3.4a32/src/scistudio/api/static/assets/curious-BiSpegpO.webp +0 -0
  1148. scistudio-0.3.4a32/src/scistudio/api/static/assets/curious-CWpH9LG1.webp +0 -0
  1149. scistudio-0.3.4a32/src/scistudio/api/static/assets/dist-tAomAQqw.js +11 -0
  1150. scistudio-0.3.4a32/src/scistudio/api/static/assets/error-BleqAxM6.webp +0 -0
  1151. scistudio-0.3.4a32/src/scistudio/api/static/assets/error-D2k7zTYG.webp +0 -0
  1152. scistudio-0.3.4a32/src/scistudio/api/static/assets/error-bYFmQn_T.webp +0 -0
  1153. scistudio-0.3.4a32/src/scistudio/api/static/assets/error-w0JnDiYI.webp +0 -0
  1154. scistudio-0.3.4a32/src/scistudio/api/static/assets/explain-C9HJeaTR.webp +0 -0
  1155. scistudio-0.3.4a32/src/scistudio/api/static/assets/explain-CEudMkFj.webp +0 -0
  1156. scistudio-0.3.4a32/src/scistudio/api/static/assets/explain-CHctbWBX.webp +0 -0
  1157. scistudio-0.3.4a32/src/scistudio/api/static/assets/explain-Czwz4FFo.webp +0 -0
  1158. scistudio-0.3.4a32/src/scistudio/api/static/assets/focus-4LQkM2Fe.webp +0 -0
  1159. scistudio-0.3.4a32/src/scistudio/api/static/assets/focus-Bi9bL4u6.webp +0 -0
  1160. scistudio-0.3.4a32/src/scistudio/api/static/assets/focus-Co9Aqu82.webp +0 -0
  1161. scistudio-0.3.4a32/src/scistudio/api/static/assets/focus-UK1NAJgN.webp +0 -0
  1162. scistudio-0.3.4a32/src/scistudio/api/static/assets/idle-BQa5Gvps.webp +0 -0
  1163. scistudio-0.3.4a32/src/scistudio/api/static/assets/idle-CkZgInbl.webp +0 -0
  1164. scistudio-0.3.4a32/src/scistudio/api/static/assets/idle-DehWj1q5.webp +0 -0
  1165. scistudio-0.3.4a32/src/scistudio/api/static/assets/idle-DoYFJHYA.webp +0 -0
  1166. scistudio-0.3.4a32/src/scistudio/api/static/assets/index-BcmpQTCY.js +4170 -0
  1167. scistudio-0.3.4a32/src/scistudio/api/static/assets/index-D98odo3q.css +1 -0
  1168. scistudio-0.3.4a32/src/scistudio/api/static/assets/rolldown-runtime-aKtaBQYM.js +1 -0
  1169. scistudio-0.3.4a32/src/scistudio/api/static/assets/success-CPUABz1t.webp +0 -0
  1170. scistudio-0.3.4a32/src/scistudio/api/static/assets/success-Cc1xrM26.webp +0 -0
  1171. scistudio-0.3.4a32/src/scistudio/api/static/assets/success-CsQK1By4.webp +0 -0
  1172. scistudio-0.3.4a32/src/scistudio/api/static/assets/success-CsVsOvwx.webp +0 -0
  1173. scistudio-0.3.4a32/src/scistudio/api/static/assets/xterm-Bh7nDvRl.js +7 -0
  1174. scistudio-0.3.4a32/src/scistudio/api/static/index.html +14 -0
  1175. scistudio-0.3.4a32/src/scistudio/api/ws.py +363 -0
  1176. scistudio-0.3.4a32/src/scistudio/blocks/__init__.py +1 -0
  1177. scistudio-0.3.4a32/src/scistudio/blocks/_templates/__init__.py +11 -0
  1178. scistudio-0.3.4a32/src/scistudio/blocks/_templates/block_base_template.py +238 -0
  1179. scistudio-0.3.4a32/src/scistudio/blocks/ai/__init__.py +7 -0
  1180. scistudio-0.3.4a32/src/scistudio/blocks/ai/ai_block.py +849 -0
  1181. scistudio-0.3.4a32/src/scistudio/blocks/ai/completion.py +287 -0
  1182. scistudio-0.3.4a32/src/scistudio/blocks/ai/parsers.py +133 -0
  1183. scistudio-0.3.4a32/src/scistudio/blocks/ai/providers.py +264 -0
  1184. scistudio-0.3.4a32/src/scistudio/blocks/ai/run_dir.py +365 -0
  1185. scistudio-0.3.4a32/src/scistudio/blocks/app/__init__.py +36 -0
  1186. scistudio-0.3.4a32/src/scistudio/blocks/app/app_block.py +668 -0
  1187. scistudio-0.3.4a32/src/scistudio/blocks/app/bridge.py +546 -0
  1188. scistudio-0.3.4a32/src/scistudio/blocks/app/command_validator.py +74 -0
  1189. scistudio-0.3.4a32/src/scistudio/blocks/app/watcher.py +230 -0
  1190. scistudio-0.3.4a32/src/scistudio/blocks/base/__init__.py +41 -0
  1191. scistudio-0.3.4a32/src/scistudio/blocks/base/block.py +729 -0
  1192. scistudio-0.3.4a32/src/scistudio/blocks/base/config.py +62 -0
  1193. scistudio-0.3.4a32/src/scistudio/blocks/base/exceptions.py +21 -0
  1194. scistudio-0.3.4a32/src/scistudio/blocks/base/interactive.py +425 -0
  1195. scistudio-0.3.4a32/src/scistudio/blocks/base/package_info.py +73 -0
  1196. scistudio-0.3.4a32/src/scistudio/blocks/base/ports.py +251 -0
  1197. scistudio-0.3.4a32/src/scistudio/blocks/base/result.py +25 -0
  1198. scistudio-0.3.4a32/src/scistudio/blocks/base/state.py +63 -0
  1199. scistudio-0.3.4a32/src/scistudio/blocks/code/__init__.py +156 -0
  1200. scistudio-0.3.4a32/src/scistudio/blocks/code/_backends_registry.py +353 -0
  1201. scistudio-0.3.4a32/src/scistudio/blocks/code/backends/__init__.py +35 -0
  1202. scistudio-0.3.4a32/src/scistudio/blocks/code/backends/matlab.py +260 -0
  1203. scistudio-0.3.4a32/src/scistudio/blocks/code/backends/notebook.py +264 -0
  1204. scistudio-0.3.4a32/src/scistudio/blocks/code/backends/python.py +111 -0
  1205. scistudio-0.3.4a32/src/scistudio/blocks/code/backends/r_quarto.py +248 -0
  1206. scistudio-0.3.4a32/src/scistudio/blocks/code/backends/shell.py +208 -0
  1207. scistudio-0.3.4a32/src/scistudio/blocks/code/code_block.py +718 -0
  1208. scistudio-0.3.4a32/src/scistudio/blocks/code/config.py +339 -0
  1209. scistudio-0.3.4a32/src/scistudio/blocks/code/exchange.py +867 -0
  1210. scistudio-0.3.4a32/src/scistudio/blocks/code/interpreters.py +214 -0
  1211. scistudio-0.3.4a32/src/scistudio/blocks/code/introspect.py +172 -0
  1212. scistudio-0.3.4a32/src/scistudio/blocks/code/lazy_list.py +115 -0
  1213. scistudio-0.3.4a32/src/scistudio/blocks/code/provenance.py +243 -0
  1214. scistudio-0.3.4a32/src/scistudio/blocks/code/validation.py +382 -0
  1215. scistudio-0.3.4a32/src/scistudio/blocks/io/__init__.py +55 -0
  1216. scistudio-0.3.4a32/src/scistudio/blocks/io/_config_enrichment.py +97 -0
  1217. scistudio-0.3.4a32/src/scistudio/blocks/io/_unified_dispatch.py +447 -0
  1218. scistudio-0.3.4a32/src/scistudio/blocks/io/capabilities.py +381 -0
  1219. scistudio-0.3.4a32/src/scistudio/blocks/io/io_block.py +373 -0
  1220. scistudio-0.3.4a32/src/scistudio/blocks/io/loaders/__init__.py +14 -0
  1221. scistudio-0.3.4a32/src/scistudio/blocks/io/loaders/_capability.py +497 -0
  1222. scistudio-0.3.4a32/src/scistudio/blocks/io/loaders/_helpers.py +144 -0
  1223. scistudio-0.3.4a32/src/scistudio/blocks/io/loaders/load_data.py +927 -0
  1224. scistudio-0.3.4a32/src/scistudio/blocks/io/materialisation.py +455 -0
  1225. scistudio-0.3.4a32/src/scistudio/blocks/io/savers/__init__.py +14 -0
  1226. scistudio-0.3.4a32/src/scistudio/blocks/io/savers/_capability.py +678 -0
  1227. scistudio-0.3.4a32/src/scistudio/blocks/io/savers/_helpers.py +305 -0
  1228. scistudio-0.3.4a32/src/scistudio/blocks/io/savers/_streaming.py +114 -0
  1229. scistudio-0.3.4a32/src/scistudio/blocks/io/savers/save_data.py +1006 -0
  1230. scistudio-0.3.4a32/src/scistudio/blocks/io/simple_io.py +292 -0
  1231. scistudio-0.3.4a32/src/scistudio/blocks/process/__init__.py +7 -0
  1232. scistudio-0.3.4a32/src/scistudio/blocks/process/builtins/__init__.py +15 -0
  1233. scistudio-0.3.4a32/src/scistudio/blocks/process/builtins/data_router.py +220 -0
  1234. scistudio-0.3.4a32/src/scistudio/blocks/process/builtins/merge.py +130 -0
  1235. scistudio-0.3.4a32/src/scistudio/blocks/process/builtins/merge_collection.py +129 -0
  1236. scistudio-0.3.4a32/src/scistudio/blocks/process/builtins/pair_editor.py +226 -0
  1237. scistudio-0.3.4a32/src/scistudio/blocks/process/builtins/split.py +157 -0
  1238. scistudio-0.3.4a32/src/scistudio/blocks/process/process_block.py +253 -0
  1239. scistudio-0.3.4a32/src/scistudio/blocks/process/utils.py +26 -0
  1240. scistudio-0.3.4a32/src/scistudio/blocks/registry/__init__.py +845 -0
  1241. scistudio-0.3.4a32/src/scistudio/blocks/registry/_capability.py +634 -0
  1242. scistudio-0.3.4a32/src/scistudio/blocks/registry/_scan.py +632 -0
  1243. scistudio-0.3.4a32/src/scistudio/blocks/registry/_spec.py +415 -0
  1244. scistudio-0.3.4a32/src/scistudio/blocks/subworkflow/__init__.py +10 -0
  1245. scistudio-0.3.4a32/src/scistudio/blocks/subworkflow/subworkflow_block.py +185 -0
  1246. scistudio-0.3.4a32/src/scistudio/cli/__init__.py +1 -0
  1247. scistudio-0.3.4a32/src/scistudio/cli/_scaffold.py +126 -0
  1248. scistudio-0.3.4a32/src/scistudio/cli/install.py +1070 -0
  1249. scistudio-0.3.4a32/src/scistudio/cli/main.py +557 -0
  1250. scistudio-0.3.4a32/src/scistudio/cli/mcp_bridge.py +339 -0
  1251. scistudio-0.3.4a32/src/scistudio/cli/storage.py +136 -0
  1252. scistudio-0.3.4a32/src/scistudio/cli/templates/__init__.py +1 -0
  1253. scistudio-0.3.4a32/src/scistudio/cli/templates/block_package/README.md.tpl +53 -0
  1254. scistudio-0.3.4a32/src/scistudio/cli/templates/block_package/__init__.py.tpl +30 -0
  1255. scistudio-0.3.4a32/src/scistudio/cli/templates/block_package/blocks.py.tpl +70 -0
  1256. scistudio-0.3.4a32/src/scistudio/cli/templates/block_package/pyproject.toml.tpl +29 -0
  1257. scistudio-0.3.4a32/src/scistudio/cli/templates/block_package/test_block.py.tpl +51 -0
  1258. scistudio-0.3.4a32/src/scistudio/core/__init__.py +1 -0
  1259. scistudio-0.3.4a32/src/scistudio/core/dropins.py +993 -0
  1260. scistudio-0.3.4a32/src/scistudio/core/entry_points.py +504 -0
  1261. scistudio-0.3.4a32/src/scistudio/core/lineage/__init__.py +53 -0
  1262. scistudio-0.3.4a32/src/scistudio/core/lineage/environment.py +153 -0
  1263. scistudio-0.3.4a32/src/scistudio/core/lineage/methods_export.py +282 -0
  1264. scistudio-0.3.4a32/src/scistudio/core/lineage/record.py +143 -0
  1265. scistudio-0.3.4a32/src/scistudio/core/lineage/recorder.py +542 -0
  1266. scistudio-0.3.4a32/src/scistudio/core/lineage/restore_preflight.py +276 -0
  1267. scistudio-0.3.4a32/src/scistudio/core/lineage/retention.py +320 -0
  1268. scistudio-0.3.4a32/src/scistudio/core/lineage/run_context.py +68 -0
  1269. scistudio-0.3.4a32/src/scistudio/core/lineage/store.py +1203 -0
  1270. scistudio-0.3.4a32/src/scistudio/core/meta/__init__.py +29 -0
  1271. scistudio-0.3.4a32/src/scistudio/core/meta/_display_name.py +140 -0
  1272. scistudio-0.3.4a32/src/scistudio/core/meta/_with_meta.py +52 -0
  1273. scistudio-0.3.4a32/src/scistudio/core/meta/channel.py +47 -0
  1274. scistudio-0.3.4a32/src/scistudio/core/meta/framework.py +147 -0
  1275. scistudio-0.3.4a32/src/scistudio/core/metadata_store.py +441 -0
  1276. scistudio-0.3.4a32/src/scistudio/core/origins.py +250 -0
  1277. scistudio-0.3.4a32/src/scistudio/core/storage/__init__.py +25 -0
  1278. scistudio-0.3.4a32/src/scistudio/core/storage/arrow_backend.py +182 -0
  1279. scistudio-0.3.4a32/src/scistudio/core/storage/backend_router.py +152 -0
  1280. scistudio-0.3.4a32/src/scistudio/core/storage/base.py +109 -0
  1281. scistudio-0.3.4a32/src/scistudio/core/storage/composite_store.py +325 -0
  1282. scistudio-0.3.4a32/src/scistudio/core/storage/errors.py +138 -0
  1283. scistudio-0.3.4a32/src/scistudio/core/storage/filesystem.py +211 -0
  1284. scistudio-0.3.4a32/src/scistudio/core/storage/flush_context.py +26 -0
  1285. scistudio-0.3.4a32/src/scistudio/core/storage/ref.py +39 -0
  1286. scistudio-0.3.4a32/src/scistudio/core/storage/zarr_backend.py +205 -0
  1287. scistudio-0.3.4a32/src/scistudio/core/types/__init__.py +68 -0
  1288. scistudio-0.3.4a32/src/scistudio/core/types/_backend_defaults.py +56 -0
  1289. scistudio-0.3.4a32/src/scistudio/core/types/_templates/__init__.py +14 -0
  1290. scistudio-0.3.4a32/src/scistudio/core/types/_templates/type_base_template.py +128 -0
  1291. scistudio-0.3.4a32/src/scistudio/core/types/array.py +514 -0
  1292. scistudio-0.3.4a32/src/scistudio/core/types/artifact.py +164 -0
  1293. scistudio-0.3.4a32/src/scistudio/core/types/base.py +690 -0
  1294. scistudio-0.3.4a32/src/scistudio/core/types/collection.py +150 -0
  1295. scistudio-0.3.4a32/src/scistudio/core/types/composite.py +207 -0
  1296. scistudio-0.3.4a32/src/scistudio/core/types/dataframe.py +184 -0
  1297. scistudio-0.3.4a32/src/scistudio/core/types/registry.py +951 -0
  1298. scistudio-0.3.4a32/src/scistudio/core/types/serialization.py +382 -0
  1299. scistudio-0.3.4a32/src/scistudio/core/types/series.py +199 -0
  1300. scistudio-0.3.4a32/src/scistudio/core/types/text.py +155 -0
  1301. scistudio-0.3.4a32/src/scistudio/core/units.py +213 -0
  1302. scistudio-0.3.4a32/src/scistudio/core/versioning/__init__.py +45 -0
  1303. scistudio-0.3.4a32/src/scistudio/core/versioning/_branch_ops.py +198 -0
  1304. scistudio-0.3.4a32/src/scistudio/core/versioning/_commit_ops.py +114 -0
  1305. scistudio-0.3.4a32/src/scistudio/core/versioning/_history_ops.py +230 -0
  1306. scistudio-0.3.4a32/src/scistudio/core/versioning/_merge_ops.py +242 -0
  1307. scistudio-0.3.4a32/src/scistudio/core/versioning/_status_ops.py +123 -0
  1308. scistudio-0.3.4a32/src/scistudio/core/versioning/errors.py +36 -0
  1309. scistudio-0.3.4a32/src/scistudio/core/versioning/git_binary.py +204 -0
  1310. scistudio-0.3.4a32/src/scistudio/core/versioning/git_engine.py +251 -0
  1311. scistudio-0.3.4a32/src/scistudio/core/versioning/gitignore_template.py +78 -0
  1312. scistudio-0.3.4a32/src/scistudio/core/versioning/state.py +24 -0
  1313. scistudio-0.3.4a32/src/scistudio/core/versioning/status.py +42 -0
  1314. scistudio-0.3.4a32/src/scistudio/desktop/__init__.py +1 -0
  1315. scistudio-0.3.4a32/src/scistudio/desktop/package_installer.py +630 -0
  1316. scistudio-0.3.4a32/src/scistudio/desktop/package_manager.py +527 -0
  1317. scistudio-0.3.4a32/src/scistudio/desktop/package_ota.py +177 -0
  1318. scistudio-0.3.4a32/src/scistudio/desktop/parent_watchdog.py +98 -0
  1319. scistudio-0.3.4a32/src/scistudio/desktop/paths.py +592 -0
  1320. scistudio-0.3.4a32/src/scistudio/engine/__init__.py +2 -0
  1321. scistudio-0.3.4a32/src/scistudio/engine/checkpoint.py +381 -0
  1322. scistudio-0.3.4a32/src/scistudio/engine/dag.py +193 -0
  1323. scistudio-0.3.4a32/src/scistudio/engine/event_logger.py +129 -0
  1324. scistudio-0.3.4a32/src/scistudio/engine/events.py +146 -0
  1325. scistudio-0.3.4a32/src/scistudio/engine/lineage_recorder.py +22 -0
  1326. scistudio-0.3.4a32/src/scistudio/engine/materialisation.py +12 -0
  1327. scistudio-0.3.4a32/src/scistudio/engine/pty_control.py +335 -0
  1328. scistudio-0.3.4a32/src/scistudio/engine/resources.py +284 -0
  1329. scistudio-0.3.4a32/src/scistudio/engine/run_logging.py +110 -0
  1330. scistudio-0.3.4a32/src/scistudio/engine/runners/__init__.py +26 -0
  1331. scistudio-0.3.4a32/src/scistudio/engine/runners/base.py +90 -0
  1332. scistudio-0.3.4a32/src/scistudio/engine/runners/exit_info.py +32 -0
  1333. scistudio-0.3.4a32/src/scistudio/engine/runners/local.py +563 -0
  1334. scistudio-0.3.4a32/src/scistudio/engine/runners/platform.py +583 -0
  1335. scistudio-0.3.4a32/src/scistudio/engine/runners/process_handle.py +394 -0
  1336. scistudio-0.3.4a32/src/scistudio/engine/runners/terminal_state.py +38 -0
  1337. scistudio-0.3.4a32/src/scistudio/engine/runners/worker.py +683 -0
  1338. scistudio-0.3.4a32/src/scistudio/engine/scheduler/__init__.py +555 -0
  1339. scistudio-0.3.4a32/src/scistudio/engine/scheduler/_dispatch.py +743 -0
  1340. scistudio-0.3.4a32/src/scistudio/engine/scheduler/_events.py +333 -0
  1341. scistudio-0.3.4a32/src/scistudio/engine/scheduler/_helpers.py +68 -0
  1342. scistudio-0.3.4a32/src/scistudio/engine/scheduler/_lineage.py +378 -0
  1343. scistudio-0.3.4a32/src/scistudio/engine/scheduler/_rerun.py +169 -0
  1344. scistudio-0.3.4a32/src/scistudio/engine/scheduler/_state.py +73 -0
  1345. scistudio-0.3.4a32/src/scistudio/plot/__init__.py +109 -0
  1346. scistudio-0.3.4a32/src/scistudio/plot/_context.py +146 -0
  1347. scistudio-0.3.4a32/src/scistudio/plot/_harness.py +961 -0
  1348. scistudio-0.3.4a32/src/scistudio/plot/examples.py +145 -0
  1349. scistudio-0.3.4a32/src/scistudio/plot/models.py +576 -0
  1350. scistudio-0.3.4a32/src/scistudio/plot/relink.py +123 -0
  1351. scistudio-0.3.4a32/src/scistudio/plot/runtime.py +958 -0
  1352. scistudio-0.3.4a32/src/scistudio/plot/scaffold.py +388 -0
  1353. scistudio-0.3.4a32/src/scistudio/plot/targets.py +285 -0
  1354. scistudio-0.3.4a32/src/scistudio/plot/validation.py +411 -0
  1355. scistudio-0.3.4a32/src/scistudio/previewers/__init__.py +198 -0
  1356. scistudio-0.3.4a32/src/scistudio/previewers/_raster.py +101 -0
  1357. scistudio-0.3.4a32/src/scistudio/previewers/_table_cache.py +127 -0
  1358. scistudio-0.3.4a32/src/scistudio/previewers/assets.py +161 -0
  1359. scistudio-0.3.4a32/src/scistudio/previewers/choices.py +149 -0
  1360. scistudio-0.3.4a32/src/scistudio/previewers/data_access.py +1023 -0
  1361. scistudio-0.3.4a32/src/scistudio/previewers/fallbacks.py +688 -0
  1362. scistudio-0.3.4a32/src/scistudio/previewers/helpers.py +67 -0
  1363. scistudio-0.3.4a32/src/scistudio/previewers/models.py +895 -0
  1364. scistudio-0.3.4a32/src/scistudio/previewers/open_as.py +138 -0
  1365. scistudio-0.3.4a32/src/scistudio/previewers/project.py +233 -0
  1366. scistudio-0.3.4a32/src/scistudio/previewers/registry.py +350 -0
  1367. scistudio-0.3.4a32/src/scistudio/previewers/router.py +283 -0
  1368. scistudio-0.3.4a32/src/scistudio/previewers/session.py +838 -0
  1369. scistudio-0.3.4a32/src/scistudio/qa/__init__.py +5 -0
  1370. scistudio-0.3.4a32/src/scistudio/qa/audit/__init__.py +5 -0
  1371. scistudio-0.3.4a32/src/scistudio/qa/audit/_util.py +331 -0
  1372. scistudio-0.3.4a32/src/scistudio/qa/audit/architecture_drift.py +619 -0
  1373. scistudio-0.3.4a32/src/scistudio/qa/audit/closure.py +163 -0
  1374. scistudio-0.3.4a32/src/scistudio/qa/audit/developer_docs.py +207 -0
  1375. scistudio-0.3.4a32/src/scistudio/qa/audit/doc_drift.py +277 -0
  1376. scistudio-0.3.4a32/src/scistudio/qa/audit/fact_drift.py +73 -0
  1377. scistudio-0.3.4a32/src/scistudio/qa/audit/facts.py +203 -0
  1378. scistudio-0.3.4a32/src/scistudio/qa/audit/frontmatter_lint.py +343 -0
  1379. scistudio-0.3.4a32/src/scistudio/qa/audit/full_audit.py +337 -0
  1380. scistudio-0.3.4a32/src/scistudio/qa/audit/governed.py +87 -0
  1381. scistudio-0.3.4a32/src/scistudio/qa/audit/griffe_facts.py +158 -0
  1382. scistudio-0.3.4a32/src/scistudio/qa/audit/loaders.py +78 -0
  1383. scistudio-0.3.4a32/src/scistudio/qa/audit/planned_governance.py +92 -0
  1384. scistudio-0.3.4a32/src/scistudio/qa/audit/signature_contracts.py +441 -0
  1385. scistudio-0.3.4a32/src/scistudio/qa/audit/signature_drift.py +368 -0
  1386. scistudio-0.3.4a32/src/scistudio/qa/audit/vulture_audit.py +287 -0
  1387. scistudio-0.3.4a32/src/scistudio/qa/governance/__init__.py +37 -0
  1388. scistudio-0.3.4a32/src/scistudio/qa/governance/gate_record/__init__.py +100 -0
  1389. scistudio-0.3.4a32/src/scistudio/qa/governance/gate_record/__main__.py +15 -0
  1390. scistudio-0.3.4a32/src/scistudio/qa/governance/gate_record/checks.py +824 -0
  1391. scistudio-0.3.4a32/src/scistudio/qa/governance/gate_record/cli.py +215 -0
  1392. scistudio-0.3.4a32/src/scistudio/qa/governance/gate_record/evaluator.py +1343 -0
  1393. scistudio-0.3.4a32/src/scistudio/qa/governance/gate_record/guards/__init__.py +53 -0
  1394. scistudio-0.3.4a32/src/scistudio/qa/governance/gate_record/guards/_authorization.py +117 -0
  1395. scistudio-0.3.4a32/src/scistudio/qa/governance/gate_record/guards/_base.py +75 -0
  1396. scistudio-0.3.4a32/src/scistudio/qa/governance/gate_record/guards/_stub.py +36 -0
  1397. scistudio-0.3.4a32/src/scistudio/qa/governance/gate_record/guards/architecture_doc_guard.py +53 -0
  1398. scistudio-0.3.4a32/src/scistudio/qa/governance/gate_record/guards/core_change_guard.py +48 -0
  1399. scistudio-0.3.4a32/src/scistudio/qa/governance/gate_record/guards/docs_landing.py +72 -0
  1400. scistudio-0.3.4a32/src/scistudio/qa/governance/gate_record/guards/human_bypass_guard.py +176 -0
  1401. scistudio-0.3.4a32/src/scistudio/qa/governance/gate_record/guards/issue_link.py +95 -0
  1402. scistudio-0.3.4a32/src/scistudio/qa/governance/gate_record/guards/mod_guard.py +84 -0
  1403. scistudio-0.3.4a32/src/scistudio/qa/governance/gate_record/guards/persona_policy.py +150 -0
  1404. scistudio-0.3.4a32/src/scistudio/qa/governance/gate_record/guards/pr_merge_guard.py +70 -0
  1405. scistudio-0.3.4a32/src/scistudio/qa/governance/gate_record/guards/sentrux_gate.py +273 -0
  1406. scistudio-0.3.4a32/src/scistudio/qa/governance/gate_record/guards/test_engineer_scope_guard.py +109 -0
  1407. scistudio-0.3.4a32/src/scistudio/qa/governance/gate_record/guards/weakened_ci_check.py +247 -0
  1408. scistudio-0.3.4a32/src/scistudio/qa/governance/gate_record/instructions.py +135 -0
  1409. scistudio-0.3.4a32/src/scistudio/qa/governance/gate_record/io.py +593 -0
  1410. scistudio-0.3.4a32/src/scistudio/qa/governance/gate_record/labels.py +50 -0
  1411. scistudio-0.3.4a32/src/scistudio/qa/governance/gate_record/ledger.py +402 -0
  1412. scistudio-0.3.4a32/src/scistudio/qa/governance/gate_record/parity.py +531 -0
  1413. scistudio-0.3.4a32/src/scistudio/qa/governance/gate_record/surfaces.py +321 -0
  1414. scistudio-0.3.4a32/src/scistudio/qa/governance/gate_record/workflow.py +640 -0
  1415. scistudio-0.3.4a32/src/scistudio/qa/governance/worktree_write_guard.py +272 -0
  1416. scistudio-0.3.4a32/src/scistudio/qa/schemas/__init__.py +32 -0
  1417. scistudio-0.3.4a32/src/scistudio/qa/schemas/facts.py +69 -0
  1418. scistudio-0.3.4a32/src/scistudio/qa/schemas/frontmatter.py +212 -0
  1419. scistudio-0.3.4a32/src/scistudio/qa/schemas/maintainers.py +47 -0
  1420. scistudio-0.3.4a32/src/scistudio/qa/schemas/report.py +113 -0
  1421. scistudio-0.3.4a32/src/scistudio/qa/schemas/signatures.py +93 -0
  1422. scistudio-0.3.4a32/src/scistudio/qa/testing/__init__.py +1 -0
  1423. scistudio-0.3.4a32/src/scistudio/qa/testing/run_python_tests.py +83 -0
  1424. scistudio-0.3.4a32/src/scistudio/stability/__init__.py +151 -0
  1425. scistudio-0.3.4a32/src/scistudio/testing/__init__.py +23 -0
  1426. scistudio-0.3.4a32/src/scistudio/testing/harness.py +267 -0
  1427. scistudio-0.3.4a32/src/scistudio/tutorials/__init__.py +105 -0
  1428. scistudio-0.3.4a32/src/scistudio/tutorials/actions.py +977 -0
  1429. scistudio-0.3.4a32/src/scistudio/tutorials/conditions.py +1170 -0
  1430. scistudio-0.3.4a32/src/scistudio/tutorials/core/welcome-to-scistudio/assets/code/normalize_fluorescence.py +107 -0
  1431. scistudio-0.3.4a32/src/scistudio/tutorials/core/welcome-to-scistudio/assets/code/normalize_fluorescence_renamed.py +108 -0
  1432. scistudio-0.3.4a32/src/scistudio/tutorials/core/welcome-to-scistudio/assets/code/normalized_activity_render.py +57 -0
  1433. scistudio-0.3.4a32/src/scistudio/tutorials/core/welcome-to-scistudio/assets/data/cell_viability_fluorescence.csv +13 -0
  1434. scistudio-0.3.4a32/src/scistudio/tutorials/core/welcome-to-scistudio/tutorial.yaml +550 -0
  1435. scistudio-0.3.4a32/src/scistudio/tutorials/core/what-ai-can-do/assets/code/fit_ic50.py +221 -0
  1436. scistudio-0.3.4a32/src/scistudio/tutorials/core/what-ai-can-do/assets/code/ic50_curve_plot.yaml +19 -0
  1437. scistudio-0.3.4a32/src/scistudio/tutorials/core/what-ai-can-do/assets/code/ic50_curve_render.py +89 -0
  1438. scistudio-0.3.4a32/src/scistudio/tutorials/core/what-ai-can-do/assets/code/plate_raw_plot.yaml +18 -0
  1439. scistudio-0.3.4a32/src/scistudio/tutorials/core/what-ai-can-do/assets/code/plate_raw_render.py +88 -0
  1440. scistudio-0.3.4a32/src/scistudio/tutorials/core/what-ai-can-do/assets/code/qc_outlier_filter.py +142 -0
  1441. scistudio-0.3.4a32/src/scistudio/tutorials/core/what-ai-can-do/assets/code/qc_outlier_filter_broken.py +142 -0
  1442. scistudio-0.3.4a32/src/scistudio/tutorials/core/what-ai-can-do/assets/code/tutorial_ai_agent.py +143 -0
  1443. scistudio-0.3.4a32/src/scistudio/tutorials/core/what-ai-can-do/assets/data/drug_A-J_1mM_500uM_200uM_100uM_50uM_20uM_10uM_5uM_2uM_1uM_plus_VEH_BLANK.csv +97 -0
  1444. scistudio-0.3.4a32/src/scistudio/tutorials/core/what-ai-can-do/assets/replay/.gitattributes +6 -0
  1445. scistudio-0.3.4a32/src/scistudio/tutorials/core/what-ai-can-do/assets/replay/01-what-is-scistudio.txt +27 -0
  1446. scistudio-0.3.4a32/src/scistudio/tutorials/core/what-ai-can-do/assets/replay/02-list-blocks.txt +19 -0
  1447. scistudio-0.3.4a32/src/scistudio/tutorials/core/what-ai-can-do/assets/replay/03-see-the-plate.txt +29 -0
  1448. scistudio-0.3.4a32/src/scistudio/tutorials/core/what-ai-can-do/assets/replay/04-read-the-plate.txt +25 -0
  1449. scistudio-0.3.4a32/src/scistudio/tutorials/core/what-ai-can-do/assets/replay/05-qc-block.txt +21 -0
  1450. scistudio-0.3.4a32/src/scistudio/tutorials/core/what-ai-can-do/assets/replay/06-assemble.txt +20 -0
  1451. scistudio-0.3.4a32/src/scistudio/tutorials/core/what-ai-can-do/assets/replay/07-no-x-axis.txt +23 -0
  1452. scistudio-0.3.4a32/src/scistudio/tutorials/core/what-ai-can-do/assets/replay/08-ai-block.txt +19 -0
  1453. scistudio-0.3.4a32/src/scistudio/tutorials/core/what-ai-can-do/assets/replay/09-ai-block-run.txt +24 -0
  1454. scistudio-0.3.4a32/src/scistudio/tutorials/core/what-ai-can-do/assets/replay/10-the-curve.txt +23 -0
  1455. scistudio-0.3.4a32/src/scistudio/tutorials/core/what-ai-can-do/assets/replay/log/01-what-is-scistudio.txt +27 -0
  1456. scistudio-0.3.4a32/src/scistudio/tutorials/core/what-ai-can-do/assets/replay/log/02-list-blocks.txt +19 -0
  1457. scistudio-0.3.4a32/src/scistudio/tutorials/core/what-ai-can-do/assets/replay/log/04-read-the-plate.txt +25 -0
  1458. scistudio-0.3.4a32/src/scistudio/tutorials/core/what-ai-can-do/assets/replay/log/07-no-x-axis.txt +23 -0
  1459. scistudio-0.3.4a32/src/scistudio/tutorials/core/what-ai-can-do/assets/replay/log/09-ai-block-run.txt +24 -0
  1460. scistudio-0.3.4a32/src/scistudio/tutorials/core/what-ai-can-do/assets/workflows/load-only.yaml +27 -0
  1461. scistudio-0.3.4a32/src/scistudio/tutorials/core/what-ai-can-do/assets/workflows/main-with-ai.yaml +80 -0
  1462. scistudio-0.3.4a32/src/scistudio/tutorials/core/what-ai-can-do/assets/workflows/main.yaml +55 -0
  1463. scistudio-0.3.4a32/src/scistudio/tutorials/core/what-ai-can-do/tutorial.yaml +498 -0
  1464. scistudio-0.3.4a32/src/scistudio/tutorials/core/what-is-a-type/assets/code/cell_size_histogram/plot.yaml +17 -0
  1465. scistudio-0.3.4a32/src/scistudio/tutorials/core/what-is-a-type/assets/code/cell_size_histogram/render.py +38 -0
  1466. scistudio-0.3.4a32/src/scistudio/tutorials/core/what-is-a-type/assets/code/image.py +43 -0
  1467. scistudio-0.3.4a32/src/scistudio/tutorials/core/what-is-a-type/assets/code/image_preview.py +258 -0
  1468. scistudio-0.3.4a32/src/scistudio/tutorials/core/what-is-a-type/assets/code/load_tiff_image.py +137 -0
  1469. scistudio-0.3.4a32/src/scistudio/tutorials/core/what-is-a-type/assets/code/review_labels.py +232 -0
  1470. scistudio-0.3.4a32/src/scistudio/tutorials/core/what-is-a-type/assets/code/segment_cells.py +228 -0
  1471. scistudio-0.3.4a32/src/scistudio/tutorials/core/what-is-a-type/assets/data/cells_01.tif +0 -0
  1472. scistudio-0.3.4a32/src/scistudio/tutorials/core/what-is-a-type/assets/data/cells_02.tif +0 -0
  1473. scistudio-0.3.4a32/src/scistudio/tutorials/core/what-is-a-type/assets/panels/review_labels/panel.mjs +365 -0
  1474. scistudio-0.3.4a32/src/scistudio/tutorials/core/what-is-a-type/assets/workflows/load-and-segment.yaml +44 -0
  1475. scistudio-0.3.4a32/src/scistudio/tutorials/core/what-is-a-type/assets/workflows/with-review.yaml +70 -0
  1476. scistudio-0.3.4a32/src/scistudio/tutorials/core/what-is-a-type/sources/cells_01_source.png +0 -0
  1477. scistudio-0.3.4a32/src/scistudio/tutorials/core/what-is-a-type/sources/cells_02_source.png +0 -0
  1478. scistudio-0.3.4a32/src/scistudio/tutorials/core/what-is-a-type/tutorial.yaml +809 -0
  1479. scistudio-0.3.4a32/src/scistudio/tutorials/discovery.py +903 -0
  1480. scistudio-0.3.4a32/src/scistudio/tutorials/driver.py +972 -0
  1481. scistudio-0.3.4a32/src/scistudio/tutorials/manifest.py +1575 -0
  1482. scistudio-0.3.4a32/src/scistudio/tutorials/progress.py +359 -0
  1483. scistudio-0.3.4a32/src/scistudio/tutorials/projects.py +431 -0
  1484. scistudio-0.3.4a32/src/scistudio/tutorials/schema/tutorial.schema.json +400 -0
  1485. scistudio-0.3.4a32/src/scistudio/tutorials/session.py +1619 -0
  1486. scistudio-0.3.4a32/src/scistudio/utils/__init__.py +1 -0
  1487. scistudio-0.3.4a32/src/scistudio/utils/atomic_io.py +406 -0
  1488. scistudio-0.3.4a32/src/scistudio/utils/axis_iter.py +434 -0
  1489. scistudio-0.3.4a32/src/scistudio/utils/broadcast.py +130 -0
  1490. scistudio-0.3.4a32/src/scistudio/utils/constraints.py +255 -0
  1491. scistudio-0.3.4a32/src/scistudio/utils/event_logger.py +142 -0
  1492. scistudio-0.3.4a32/src/scistudio/utils/fs.py +100 -0
  1493. scistudio-0.3.4a32/src/scistudio/utils/hashing.py +66 -0
  1494. scistudio-0.3.4a32/src/scistudio/utils/log_setup.py +371 -0
  1495. scistudio-0.3.4a32/src/scistudio/utils/logging.py +76 -0
  1496. scistudio-0.3.4a32/src/scistudio/utils/wrapping.py +15 -0
  1497. scistudio-0.3.4a32/src/scistudio/version.py +226 -0
  1498. scistudio-0.3.4a32/src/scistudio/workflow/__init__.py +1 -0
  1499. scistudio-0.3.4a32/src/scistudio/workflow/definition.py +105 -0
  1500. scistudio-0.3.4a32/src/scistudio/workflow/flatten.py +334 -0
  1501. scistudio-0.3.4a32/src/scistudio/workflow/layout.py +19 -0
  1502. scistudio-0.3.4a32/src/scistudio/workflow/schema.py +180 -0
  1503. scistudio-0.3.4a32/src/scistudio/workflow/serializer.py +152 -0
  1504. scistudio-0.3.4a32/src/scistudio/workflow/subworkflow_ports.py +221 -0
  1505. scistudio-0.3.4a32/src/scistudio/workflow/validator.py +628 -0
  1506. scistudio-0.3.4a32/src/scistudio.egg-info/PKG-INFO +189 -0
  1507. scistudio-0.3.4a32/src/scistudio.egg-info/SOURCES.txt +2027 -0
  1508. scistudio-0.3.4a32/src/scistudio.egg-info/dependency_links.txt +1 -0
  1509. scistudio-0.3.4a32/src/scistudio.egg-info/entry_points.txt +2 -0
  1510. scistudio-0.3.4a32/src/scistudio.egg-info/requires.txt +50 -0
  1511. scistudio-0.3.4a32/src/scistudio.egg-info/top_level.txt +2 -0
  1512. scistudio-0.3.4a32/tests/README.md +52 -0
  1513. scistudio-0.3.4a32/tests/__init__.py +1 -0
  1514. scistudio-0.3.4a32/tests/adr052_contract/__init__.py +13 -0
  1515. scistudio-0.3.4a32/tests/adr052_contract/_spec_data.py +238 -0
  1516. scistudio-0.3.4a32/tests/adr052_contract/conftest.py +48 -0
  1517. scistudio-0.3.4a32/tests/adr052_contract/expected_surface.json +642 -0
  1518. scistudio-0.3.4a32/tests/adr052_contract/test_accessor_dataflow_guard.py +106 -0
  1519. scistudio-0.3.4a32/tests/adr052_contract/test_deprecations.py +72 -0
  1520. scistudio-0.3.4a32/tests/adr052_contract/test_ergonomic_accessors.py +90 -0
  1521. scistudio-0.3.4a32/tests/adr052_contract/test_no_internal_leak.py +67 -0
  1522. scistudio-0.3.4a32/tests/adr052_contract/test_plot_render_contract.py +254 -0
  1523. scistudio-0.3.4a32/tests/adr052_contract/test_reexports.py +60 -0
  1524. scistudio-0.3.4a32/tests/adr052_contract/test_signatures.py +136 -0
  1525. scistudio-0.3.4a32/tests/adr052_contract/test_stability_semantics.py +113 -0
  1526. scistudio-0.3.4a32/tests/adr052_contract/test_surface_inventory.py +99 -0
  1527. scistudio-0.3.4a32/tests/agent_provisioning/__init__.py +0 -0
  1528. scistudio-0.3.4a32/tests/agent_provisioning/conftest.py +24 -0
  1529. scistudio-0.3.4a32/tests/agent_provisioning/test_claude_agents_md.py +141 -0
  1530. scistudio-0.3.4a32/tests/agent_provisioning/test_codex_config.py +502 -0
  1531. scistudio-0.3.4a32/tests/agent_provisioning/test_docs.py +168 -0
  1532. scistudio-0.3.4a32/tests/agent_provisioning/test_hooks.py +1106 -0
  1533. scistudio-0.3.4a32/tests/agent_provisioning/test_lifecycle_integration.py +117 -0
  1534. scistudio-0.3.4a32/tests/agent_provisioning/test_orchestrate.py +117 -0
  1535. scistudio-0.3.4a32/tests/agent_provisioning/test_refresh.py +151 -0
  1536. scistudio-0.3.4a32/tests/agent_provisioning/test_skills.py +78 -0
  1537. scistudio-0.3.4a32/tests/ai/__init__.py +0 -0
  1538. scistudio-0.3.4a32/tests/ai/agent/__init__.py +0 -0
  1539. scistudio-0.3.4a32/tests/ai/agent/mcp/__init__.py +0 -0
  1540. scistudio-0.3.4a32/tests/ai/agent/mcp/test_tools_inspection_surface.py +224 -0
  1541. scistudio-0.3.4a32/tests/ai/agent/mcp/test_tools_workflow_surface.py +234 -0
  1542. scistudio-0.3.4a32/tests/ai/agent/mcp/test_validate_workflow_warning_prefix.py +87 -0
  1543. scistudio-0.3.4a32/tests/ai/agent/mcp/test_workflow_block_type_guard.py +185 -0
  1544. scistudio-0.3.4a32/tests/ai/test_finish_ai_block.py +217 -0
  1545. scistudio-0.3.4a32/tests/ai/test_finish_ai_block_skeleton.py +49 -0
  1546. scistudio-0.3.4a32/tests/ai/test_live_findings_1994.py +346 -0
  1547. scistudio-0.3.4a32/tests/ai/test_mcp_active_workflow_context.py +114 -0
  1548. scistudio-0.3.4a32/tests/ai/test_mcp_agent_context.py +226 -0
  1549. scistudio-0.3.4a32/tests/ai/test_mcp_execution_tools.py +868 -0
  1550. scistudio-0.3.4a32/tests/ai/test_mcp_fastmcp.py +693 -0
  1551. scistudio-0.3.4a32/tests/ai/test_mcp_server_skeleton.py +379 -0
  1552. scistudio-0.3.4a32/tests/ai/test_mcp_server_stop.py +162 -0
  1553. scistudio-0.3.4a32/tests/ai/test_mcp_tools_authoring.py +186 -0
  1554. scistudio-0.3.4a32/tests/ai/test_mcp_tools_disk_integration.py +605 -0
  1555. scistudio-0.3.4a32/tests/ai/test_mcp_tools_inspection.py +375 -0
  1556. scistudio-0.3.4a32/tests/ai/test_mcp_tools_library.py +528 -0
  1557. scistudio-0.3.4a32/tests/ai/test_mcp_tools_plot.py +1346 -0
  1558. scistudio-0.3.4a32/tests/ai/test_mcp_tools_qa.py +183 -0
  1559. scistudio-0.3.4a32/tests/ai/test_mcp_tools_workflow.py +668 -0
  1560. scistudio-0.3.4a32/tests/ai/test_mcp_workspace_tools.py +1211 -0
  1561. scistudio-0.3.4a32/tests/ai/test_parsers.py +152 -0
  1562. scistudio-0.3.4a32/tests/ai/test_provider_mcp_write_atomicity.py +403 -0
  1563. scistudio-0.3.4a32/tests/ai/test_providers.py +322 -0
  1564. scistudio-0.3.4a32/tests/ai/test_providers_registry.py +722 -0
  1565. scistudio-0.3.4a32/tests/ai/test_scaffold_template_regression.py +48 -0
  1566. scistudio-0.3.4a32/tests/ai/test_system_prompt.py +259 -0
  1567. scistudio-0.3.4a32/tests/ai/test_terminal.py +188 -0
  1568. scistudio-0.3.4a32/tests/ai/test_terminal_codex_overrides.py +55 -0
  1569. scistudio-0.3.4a32/tests/ai/test_terminal_extra_env.py +171 -0
  1570. scistudio-0.3.4a32/tests/ai/test_terminal_macos_smoke.py +99 -0
  1571. scistudio-0.3.4a32/tests/ai/test_windows_executable_resolution.py +427 -0
  1572. scistudio-0.3.4a32/tests/ai/test_work_import_brief.py +551 -0
  1573. scistudio-0.3.4a32/tests/api/__init__.py +0 -0
  1574. scistudio-0.3.4a32/tests/api/conftest.py +55 -0
  1575. scistudio-0.3.4a32/tests/api/fake_guard.py +69 -0
  1576. scistudio-0.3.4a32/tests/api/helpers.py +115 -0
  1577. scistudio-0.3.4a32/tests/api/public_surface.snapshot.json +700 -0
  1578. scistudio-0.3.4a32/tests/api/routes/__init__.py +0 -0
  1579. scistudio-0.3.4a32/tests/api/routes/ai_pty/__init__.py +0 -0
  1580. scistudio-0.3.4a32/tests/api/routes/ai_pty/test_engine.py +131 -0
  1581. scistudio-0.3.4a32/tests/api/routes/ai_pty/test_internal_routes.py +78 -0
  1582. scistudio-0.3.4a32/tests/api/routes/ai_pty/test_public_surface.py +291 -0
  1583. scistudio-0.3.4a32/tests/api/routes/ai_pty/test_subscribers.py +98 -0
  1584. scistudio-0.3.4a32/tests/api/routes/ai_pty/test_validation.py +44 -0
  1585. scistudio-0.3.4a32/tests/api/routes/ai_pty/test_websocket.py +61 -0
  1586. scistudio-0.3.4a32/tests/api/routes/test_workflow_watcher_fallback.py +168 -0
  1587. scistudio-0.3.4a32/tests/api/seam_contract.py +234 -0
  1588. scistudio-0.3.4a32/tests/api/test_accessor_dataflow_guard.py +114 -0
  1589. scistudio-0.3.4a32/tests/api/test_agent_availability.py +1192 -0
  1590. scistudio-0.3.4a32/tests/api/test_ai_active_context.py +66 -0
  1591. scistudio-0.3.4a32/tests/api/test_ai_pty.py +392 -0
  1592. scistudio-0.3.4a32/tests/api/test_ai_pty_audit_fixes.py +402 -0
  1593. scistudio-0.3.4a32/tests/api/test_ai_pty_engine_spawn.py +566 -0
  1594. scistudio-0.3.4a32/tests/api/test_api_docstrings_user_facing.py +51 -0
  1595. scistudio-0.3.4a32/tests/api/test_app.py +262 -0
  1596. scistudio-0.3.4a32/tests/api/test_block_origin_tiers.py +339 -0
  1597. scistudio-0.3.4a32/tests/api/test_blocks.py +641 -0
  1598. scistudio-0.3.4a32/tests/api/test_blocks_template.py +211 -0
  1599. scistudio-0.3.4a32/tests/api/test_blocks_template_skeleton.py +69 -0
  1600. scistudio-0.3.4a32/tests/api/test_data.py +364 -0
  1601. scistudio-0.3.4a32/tests/api/test_data_open_as.py +362 -0
  1602. scistudio-0.3.4a32/tests/api/test_data_register_path.py +112 -0
  1603. scistudio-0.3.4a32/tests/api/test_deps.py +26 -0
  1604. scistudio-0.3.4a32/tests/api/test_diagnostics_routes.py +119 -0
  1605. scistudio-0.3.4a32/tests/api/test_ergonomic_accessors.py +139 -0
  1606. scistudio-0.3.4a32/tests/api/test_file_endpoints.py +278 -0
  1607. scistudio-0.3.4a32/tests/api/test_file_endpoints_skeleton.py +66 -0
  1608. scistudio-0.3.4a32/tests/api/test_file_version_vector.py +158 -0
  1609. scistudio-0.3.4a32/tests/api/test_filesystem.py +550 -0
  1610. scistudio-0.3.4a32/tests/api/test_filesystem_browse.py +155 -0
  1611. scistudio-0.3.4a32/tests/api/test_filesystem_dialog.py +146 -0
  1612. scistudio-0.3.4a32/tests/api/test_git_endpoints.py +1080 -0
  1613. scistudio-0.3.4a32/tests/api/test_identity_seam.py +557 -0
  1614. scistudio-0.3.4a32/tests/api/test_interactive_panels.py +148 -0
  1615. scistudio-0.3.4a32/tests/api/test_known_project_registry.py +200 -0
  1616. scistudio-0.3.4a32/tests/api/test_legacy_endpoints_gone.py +49 -0
  1617. scistudio-0.3.4a32/tests/api/test_lineage_set_pending_git_commit.py +125 -0
  1618. scistudio-0.3.4a32/tests/api/test_lint_endpoint.py +116 -0
  1619. scistudio-0.3.4a32/tests/api/test_logging_middleware.py +83 -0
  1620. scistudio-0.3.4a32/tests/api/test_mcp_transport_publish.py +128 -0
  1621. scistudio-0.3.4a32/tests/api/test_native_dialog.py +270 -0
  1622. scistudio-0.3.4a32/tests/api/test_open_project_degraded_modes.py +132 -0
  1623. scistudio-0.3.4a32/tests/api/test_packages.py +316 -0
  1624. scistudio-0.3.4a32/tests/api/test_plot_preview_wiring.py +804 -0
  1625. scistudio-0.3.4a32/tests/api/test_plot_render_contract.py +308 -0
  1626. scistudio-0.3.4a32/tests/api/test_preview_plot_jobs.py +321 -0
  1627. scistudio-0.3.4a32/tests/api/test_previewer_choice_routes.py +253 -0
  1628. scistudio-0.3.4a32/tests/api/test_previewer_discovery.py +202 -0
  1629. scistudio-0.3.4a32/tests/api/test_previewers.py +838 -0
  1630. scistudio-0.3.4a32/tests/api/test_project_layout.py +108 -0
  1631. scistudio-0.3.4a32/tests/api/test_projects.py +302 -0
  1632. scistudio-0.3.4a32/tests/api/test_provider_discovery.py +442 -0
  1633. scistudio-0.3.4a32/tests/api/test_provider_discovery_agreement.py +228 -0
  1634. scistudio-0.3.4a32/tests/api/test_provider_propagation_chain.py +279 -0
  1635. scistudio-0.3.4a32/tests/api/test_provider_registry_extensibility.py +298 -0
  1636. scistudio-0.3.4a32/tests/api/test_public_surface.py +374 -0
  1637. scistudio-0.3.4a32/tests/api/test_registry_provisioning_parity.py +702 -0
  1638. scistudio-0.3.4a32/tests/api/test_registry_reload_symmetry.py +652 -0
  1639. scistudio-0.3.4a32/tests/api/test_reload_on_save.py +225 -0
  1640. scistudio-0.3.4a32/tests/api/test_root_path.py +540 -0
  1641. scistudio-0.3.4a32/tests/api/test_runs_routes.py +504 -0
  1642. scistudio-0.3.4a32/tests/api/test_runtime_active_workflow.py +65 -0
  1643. scistudio-0.3.4a32/tests/api/test_runtime_artifact_retention.py +66 -0
  1644. scistudio-0.3.4a32/tests/api/test_runtime_bounded_registries.py +184 -0
  1645. scistudio-0.3.4a32/tests/api/test_runtime_import_surface.py +150 -0
  1646. scistudio-0.3.4a32/tests/api/test_runtime_lineage_finalize_status.py +116 -0
  1647. scistudio-0.3.4a32/tests/api/test_runtime_package_repair.py +109 -0
  1648. scistudio-0.3.4a32/tests/api/test_runtime_rerun_parent_id.py +98 -0
  1649. scistudio-0.3.4a32/tests/api/test_runtime_subworkflow_flatten.py +241 -0
  1650. scistudio-0.3.4a32/tests/api/test_runtime_workflow_validation_gate.py +166 -0
  1651. scistudio-0.3.4a32/tests/api/test_spa_fallback.py +81 -0
  1652. scistudio-0.3.4a32/tests/api/test_spa_mount.py +165 -0
  1653. scistudio-0.3.4a32/tests/api/test_sse.py +54 -0
  1654. scistudio-0.3.4a32/tests/api/test_stability_decorators.py +132 -0
  1655. scistudio-0.3.4a32/tests/api/test_system_vertical.py +236 -0
  1656. scistudio-0.3.4a32/tests/api/test_tutorial_library_write.py +388 -0
  1657. scistudio-0.3.4a32/tests/api/test_tutorial_package_lifecycle.py +156 -0
  1658. scistudio-0.3.4a32/tests/api/test_tutorial_project_visibility.py +367 -0
  1659. scistudio-0.3.4a32/tests/api/test_tutorial_replay.py +431 -0
  1660. scistudio-0.3.4a32/tests/api/test_tutorial_routes.py +1422 -0
  1661. scistudio-0.3.4a32/tests/api/test_types_routes.py +732 -0
  1662. scistudio-0.3.4a32/tests/api/test_user_docs.py +241 -0
  1663. scistudio-0.3.4a32/tests/api/test_user_library_write.py +748 -0
  1664. scistudio-0.3.4a32/tests/api/test_webmcp.py +421 -0
  1665. scistudio-0.3.4a32/tests/api/test_work_import_session.py +1032 -0
  1666. scistudio-0.3.4a32/tests/api/test_workflow_changed_event_schema.py +45 -0
  1667. scistudio-0.3.4a32/tests/api/test_workflow_id_conflict.py +83 -0
  1668. scistudio-0.3.4a32/tests/api/test_workflow_management.py +109 -0
  1669. scistudio-0.3.4a32/tests/api/test_workflow_run_git.py +287 -0
  1670. scistudio-0.3.4a32/tests/api/test_workflow_version_vector.py +120 -0
  1671. scistudio-0.3.4a32/tests/api/test_workflow_watcher.py +519 -0
  1672. scistudio-0.3.4a32/tests/api/test_workflow_watcher_git.py +241 -0
  1673. scistudio-0.3.4a32/tests/api/test_workflow_watcher_macos.py +90 -0
  1674. scistudio-0.3.4a32/tests/api/test_workflows.py +471 -0
  1675. scistudio-0.3.4a32/tests/api/test_ws.py +151 -0
  1676. scistudio-0.3.4a32/tests/api/test_ws_git_events.py +71 -0
  1677. scistudio-0.3.4a32/tests/architecture/__init__.py +1 -0
  1678. scistudio-0.3.4a32/tests/architecture/test_adr_034_provider_single_source.py +459 -0
  1679. scistudio-0.3.4a32/tests/architecture/test_block_system.py +164 -0
  1680. scistudio-0.3.4a32/tests/architecture/test_layer_deps.py +211 -0
  1681. scistudio-0.3.4a32/tests/architecture/test_no_new_cycles.py +179 -0
  1682. scistudio-0.3.4a32/tests/architecture/test_packaging.py +63 -0
  1683. scistudio-0.3.4a32/tests/architecture/test_placement.py +260 -0
  1684. scistudio-0.3.4a32/tests/architecture/test_registries.py +159 -0
  1685. scistudio-0.3.4a32/tests/architecture/test_type_system.py +194 -0
  1686. scistudio-0.3.4a32/tests/blocks/__init__.py +1 -0
  1687. scistudio-0.3.4a32/tests/blocks/ai/__init__.py +0 -0
  1688. scistudio-0.3.4a32/tests/blocks/ai/conftest.py +221 -0
  1689. scistudio-0.3.4a32/tests/blocks/ai/test_ai_block_skeleton.py +683 -0
  1690. scistudio-0.3.4a32/tests/blocks/ai/test_completion_race.py +178 -0
  1691. scistudio-0.3.4a32/tests/blocks/ai/test_completion_skeleton.py +280 -0
  1692. scistudio-0.3.4a32/tests/blocks/ai/test_run_dir_skeleton.py +229 -0
  1693. scistudio-0.3.4a32/tests/blocks/app/__init__.py +1 -0
  1694. scistudio-0.3.4a32/tests/blocks/app/fixtures/headless_macro.ijm +39 -0
  1695. scistudio-0.3.4a32/tests/blocks/app/test_app_block_capabilities.py +158 -0
  1696. scistudio-0.3.4a32/tests/blocks/app/test_app_block_multi_item_input.py +286 -0
  1697. scistudio-0.3.4a32/tests/blocks/app/test_appblock_bin_outputs.py +232 -0
  1698. scistudio-0.3.4a32/tests/blocks/app/test_appblock_fiji_integration.py +257 -0
  1699. scistudio-0.3.4a32/tests/blocks/app/test_bridge_argv_override.py +97 -0
  1700. scistudio-0.3.4a32/tests/blocks/app/test_bridge_prepare_materialisation.py +203 -0
  1701. scistudio-0.3.4a32/tests/blocks/code/__init__.py +1 -0
  1702. scistudio-0.3.4a32/tests/blocks/code/test_alpha_codeblock_python.py +129 -0
  1703. scistudio-0.3.4a32/tests/blocks/code/test_alpha_codeblock_r.py +83 -0
  1704. scistudio-0.3.4a32/tests/blocks/code/test_alpha_findings_codeblock.py +62 -0
  1705. scistudio-0.3.4a32/tests/blocks/code/test_codeblock_backends.py +305 -0
  1706. scistudio-0.3.4a32/tests/blocks/code/test_codeblock_exchange.py +284 -0
  1707. scistudio-0.3.4a32/tests/blocks/code/test_codeblock_execution.py +348 -0
  1708. scistudio-0.3.4a32/tests/blocks/code/test_codeblock_interpreters.py +81 -0
  1709. scistudio-0.3.4a32/tests/blocks/code/test_codeblock_matlab.py +190 -0
  1710. scistudio-0.3.4a32/tests/blocks/code/test_codeblock_notebooks.py +263 -0
  1711. scistudio-0.3.4a32/tests/blocks/code/test_codeblock_provenance.py +98 -0
  1712. scistudio-0.3.4a32/tests/blocks/code/test_codeblock_python_integration.py +31 -0
  1713. scistudio-0.3.4a32/tests/blocks/code/test_codeblock_r_integration.py +29 -0
  1714. scistudio-0.3.4a32/tests/blocks/code/test_codeblock_r_quarto.py +220 -0
  1715. scistudio-0.3.4a32/tests/blocks/code/test_codeblock_shell.py +205 -0
  1716. scistudio-0.3.4a32/tests/blocks/code/test_codeblock_v2_config.py +73 -0
  1717. scistudio-0.3.4a32/tests/blocks/code/test_codeblock_validation.py +239 -0
  1718. scistudio-0.3.4a32/tests/blocks/io/__init__.py +1 -0
  1719. scistudio-0.3.4a32/tests/blocks/io/conftest.py +64 -0
  1720. scistudio-0.3.4a32/tests/blocks/io/test_alpha_findings.py +69 -0
  1721. scistudio-0.3.4a32/tests/blocks/io/test_config_enrichment.py +95 -0
  1722. scistudio-0.3.4a32/tests/blocks/io/test_format_capabilities.py +174 -0
  1723. scistudio-0.3.4a32/tests/blocks/io/test_io_block_abc.py +274 -0
  1724. scistudio-0.3.4a32/tests/blocks/io/test_io_coverage_matrix.py +339 -0
  1725. scistudio-0.3.4a32/tests/blocks/io/test_io_data_helpers_layout.py +257 -0
  1726. scistudio-0.3.4a32/tests/blocks/io/test_load_data.py +862 -0
  1727. scistudio-0.3.4a32/tests/blocks/io/test_load_data_capabilities.py +513 -0
  1728. scistudio-0.3.4a32/tests/blocks/io/test_loader_no_input_port.py +60 -0
  1729. scistudio-0.3.4a32/tests/blocks/io/test_multi_path_delegated_load.py +214 -0
  1730. scistudio-0.3.4a32/tests/blocks/io/test_save_data.py +1081 -0
  1731. scistudio-0.3.4a32/tests/blocks/io/test_save_data_capabilities.py +548 -0
  1732. scistudio-0.3.4a32/tests/blocks/io/test_save_data_durability.py +190 -0
  1733. scistudio-0.3.4a32/tests/blocks/io/test_simple_io.py +136 -0
  1734. scistudio-0.3.4a32/tests/blocks/io/test_unified_dispatch_effective_params.py +329 -0
  1735. scistudio-0.3.4a32/tests/blocks/io/test_xlsx_io.py +204 -0
  1736. scistudio-0.3.4a32/tests/blocks/process/__init__.py +0 -0
  1737. scistudio-0.3.4a32/tests/blocks/process/builtins/__init__.py +0 -0
  1738. scistudio-0.3.4a32/tests/blocks/test_app_block.py +1328 -0
  1739. scistudio-0.3.4a32/tests/blocks/test_auto_flush_composite.py +81 -0
  1740. scistudio-0.3.4a32/tests/blocks/test_block_base.py +652 -0
  1741. scistudio-0.3.4a32/tests/blocks/test_block_config.py +67 -0
  1742. scistudio-0.3.4a32/tests/blocks/test_block_config_schema.py +175 -0
  1743. scistudio-0.3.4a32/tests/blocks/test_block_registry_capabilities.py +352 -0
  1744. scistudio-0.3.4a32/tests/blocks/test_bridge_extended.py +168 -0
  1745. scistudio-0.3.4a32/tests/blocks/test_code_block.py +78 -0
  1746. scistudio-0.3.4a32/tests/blocks/test_collection_blocks.py +116 -0
  1747. scistudio-0.3.4a32/tests/blocks/test_data_router.py +264 -0
  1748. scistudio-0.3.4a32/tests/blocks/test_desktop_package_discovery.py +360 -0
  1749. scistudio-0.3.4a32/tests/blocks/test_dropin_type_import.py +1194 -0
  1750. scistudio-0.3.4a32/tests/blocks/test_dynamic_ports.py +355 -0
  1751. scistudio-0.3.4a32/tests/blocks/test_entry_point_isolation.py +119 -0
  1752. scistudio-0.3.4a32/tests/blocks/test_interactive_adversarial_registry.py +355 -0
  1753. scistudio-0.3.4a32/tests/blocks/test_interactive_mixin.py +247 -0
  1754. scistudio-0.3.4a32/tests/blocks/test_interactive_registry_validation.py +106 -0
  1755. scistudio-0.3.4a32/tests/blocks/test_introspect.py +188 -0
  1756. scistudio-0.3.4a32/tests/blocks/test_lazy_list.py +338 -0
  1757. scistudio-0.3.4a32/tests/blocks/test_merge_split_extended.py +71 -0
  1758. scistudio-0.3.4a32/tests/blocks/test_pair_editor.py +415 -0
  1759. scistudio-0.3.4a32/tests/blocks/test_port_subclass.py +194 -0
  1760. scistudio-0.3.4a32/tests/blocks/test_ports.py +360 -0
  1761. scistudio-0.3.4a32/tests/blocks/test_process_block.py +234 -0
  1762. scistudio-0.3.4a32/tests/blocks/test_process_block_lifecycle.py +337 -0
  1763. scistudio-0.3.4a32/tests/blocks/test_process_utils.py +41 -0
  1764. scistudio-0.3.4a32/tests/blocks/test_register_stub_removed.py +69 -0
  1765. scistudio-0.3.4a32/tests/blocks/test_registry.py +1000 -0
  1766. scistudio-0.3.4a32/tests/blocks/test_registry_package_layout.py +219 -0
  1767. scistudio-0.3.4a32/tests/blocks/test_registry_version_strict.py +79 -0
  1768. scistudio-0.3.4a32/tests/blocks/test_state_enums.py +46 -0
  1769. scistudio-0.3.4a32/tests/blocks/test_subworkflow.py +106 -0
  1770. scistudio-0.3.4a32/tests/blocks/test_tier1_dropin_subprocess.py +424 -0
  1771. scistudio-0.3.4a32/tests/cli/__init__.py +0 -0
  1772. scistudio-0.3.4a32/tests/cli/test_cli.py +273 -0
  1773. scistudio-0.3.4a32/tests/cli/test_dunder_main.py +35 -0
  1774. scistudio-0.3.4a32/tests/cli/test_init_git_init.py +58 -0
  1775. scistudio-0.3.4a32/tests/cli/test_install.py +621 -0
  1776. scistudio-0.3.4a32/tests/cli/test_mcp_bridge.py +328 -0
  1777. scistudio-0.3.4a32/tests/cli/test_new_block_package.py +257 -0
  1778. scistudio-0.3.4a32/tests/cli/test_storage_gc.py +157 -0
  1779. scistudio-0.3.4a32/tests/cli/test_validation_warning_prefix.py +58 -0
  1780. scistudio-0.3.4a32/tests/conftest.py +171 -0
  1781. scistudio-0.3.4a32/tests/contract/test_adr045_version_vector_contract.py +222 -0
  1782. scistudio-0.3.4a32/tests/contracts/openapi.json +8596 -0
  1783. scistudio-0.3.4a32/tests/contracts/openapi_snapshot.py +109 -0
  1784. scistudio-0.3.4a32/tests/contracts/test_block_schema_contract.py +170 -0
  1785. scistudio-0.3.4a32/tests/contracts/test_eventbus_lifecycle_contract.py +292 -0
  1786. scistudio-0.3.4a32/tests/contracts/test_io_capability_contract.py +267 -0
  1787. scistudio-0.3.4a32/tests/contracts/test_lineage_run_recipe_contract.py +288 -0
  1788. scistudio-0.3.4a32/tests/contracts/test_openapi_snapshot.py +92 -0
  1789. scistudio-0.3.4a32/tests/contracts/test_runtime_import_contract.py +398 -0
  1790. scistudio-0.3.4a32/tests/core/__init__.py +1 -0
  1791. scistudio-0.3.4a32/tests/core/test_array_axes.py +379 -0
  1792. scistudio-0.3.4a32/tests/core/test_backend_router.py +239 -0
  1793. scistudio-0.3.4a32/tests/core/test_base_class_reconstruction_hooks.py +658 -0
  1794. scistudio-0.3.4a32/tests/core/test_broadcast.py +202 -0
  1795. scistudio-0.3.4a32/tests/core/test_collection.py +290 -0
  1796. scistudio-0.3.4a32/tests/core/test_composite.py +216 -0
  1797. scistudio-0.3.4a32/tests/core/test_data_object_persistence.py +206 -0
  1798. scistudio-0.3.4a32/tests/core/test_dataobject_extended.py +192 -0
  1799. scistudio-0.3.4a32/tests/core/test_display_name.py +130 -0
  1800. scistudio-0.3.4a32/tests/core/test_flush_context.py +26 -0
  1801. scistudio-0.3.4a32/tests/core/test_framework_meta.py +316 -0
  1802. scistudio-0.3.4a32/tests/core/test_git_engine.py +1104 -0
  1803. scistudio-0.3.4a32/tests/core/test_hashing.py +110 -0
  1804. scistudio-0.3.4a32/tests/core/test_lineage.py +207 -0
  1805. scistudio-0.3.4a32/tests/core/test_lineage_extended.py +79 -0
  1806. scistudio-0.3.4a32/tests/core/test_lineage_retention.py +662 -0
  1807. scistudio-0.3.4a32/tests/core/test_lineage_store.py +120 -0
  1808. scistudio-0.3.4a32/tests/core/test_lineage_store_4table.py +206 -0
  1809. scistudio-0.3.4a32/tests/core/test_lineage_store_integrity.py +240 -0
  1810. scistudio-0.3.4a32/tests/core/test_meta_type_preservation_1607.py +50 -0
  1811. scistudio-0.3.4a32/tests/core/test_metadata_store.py +358 -0
  1812. scistudio-0.3.4a32/tests/core/test_methods_export.py +386 -0
  1813. scistudio-0.3.4a32/tests/core/test_other_base_classes_audit.py +491 -0
  1814. scistudio-0.3.4a32/tests/core/test_phase10_skeleton.py +84 -0
  1815. scistudio-0.3.4a32/tests/core/test_serialization_roundtrip.py +348 -0
  1816. scistudio-0.3.4a32/tests/core/test_storage.py +705 -0
  1817. scistudio-0.3.4a32/tests/core/test_storage_edge_cases.py +45 -0
  1818. scistudio-0.3.4a32/tests/core/test_storage_ref.py +30 -0
  1819. scistudio-0.3.4a32/tests/core/test_stratified_metadata.py +316 -0
  1820. scistudio-0.3.4a32/tests/core/test_transient_data.py +285 -0
  1821. scistudio-0.3.4a32/tests/core/test_type_colour.py +276 -0
  1822. scistudio-0.3.4a32/tests/core/test_type_registry_resolve_and_meta.py +311 -0
  1823. scistudio-0.3.4a32/tests/core/test_type_registry_scan_dirs.py +495 -0
  1824. scistudio-0.3.4a32/tests/core/test_types.py +808 -0
  1825. scistudio-0.3.4a32/tests/core/test_units.py +240 -0
  1826. scistudio-0.3.4a32/tests/core/versioning/__init__.py +1 -0
  1827. scistudio-0.3.4a32/tests/core/versioning/test_git_engine_package_layout.py +51 -0
  1828. scistudio-0.3.4a32/tests/desktop/test_package_installer.py +515 -0
  1829. scistudio-0.3.4a32/tests/desktop/test_package_manager.py +455 -0
  1830. scistudio-0.3.4a32/tests/desktop/test_package_ota.py +137 -0
  1831. scistudio-0.3.4a32/tests/desktop/test_parent_watchdog.py +88 -0
  1832. scistudio-0.3.4a32/tests/desktop/test_source_package_discovery.py +177 -0
  1833. scistudio-0.3.4a32/tests/desktop/test_terminal_post_rc.py +100 -0
  1834. scistudio-0.3.4a32/tests/docs/__init__.py +0 -0
  1835. scistudio-0.3.4a32/tests/docs/test_block_development_docs.py +288 -0
  1836. scistudio-0.3.4a32/tests/e2e/__init__.py +1 -0
  1837. scistudio-0.3.4a32/tests/e2e/adr-035/.gitignore +2 -0
  1838. scistudio-0.3.4a32/tests/e2e/adr-035/expected_metadata.csv +5 -0
  1839. scistudio-0.3.4a32/tests/e2e/adr-035/generate_fixtures.py +71 -0
  1840. scistudio-0.3.4a32/tests/e2e/conftest.py +65 -0
  1841. scistudio-0.3.4a32/tests/e2e/harness.py +320 -0
  1842. scistudio-0.3.4a32/tests/e2e/test_tutorial_workflows.py +277 -0
  1843. scistudio-0.3.4a32/tests/engine/__init__.py +1 -0
  1844. scistudio-0.3.4a32/tests/engine/test_checkpoint.py +524 -0
  1845. scistudio-0.3.4a32/tests/engine/test_checkpoint_durability.py +79 -0
  1846. scistudio-0.3.4a32/tests/engine/test_collection_wrap.py +222 -0
  1847. scistudio-0.3.4a32/tests/engine/test_dag.py +356 -0
  1848. scistudio-0.3.4a32/tests/engine/test_event_logger.py +189 -0
  1849. scistudio-0.3.4a32/tests/engine/test_events.py +254 -0
  1850. scistudio-0.3.4a32/tests/engine/test_gather_inputs.py +81 -0
  1851. scistudio-0.3.4a32/tests/engine/test_interactive_adversarial_e2e.py +463 -0
  1852. scistudio-0.3.4a32/tests/engine/test_interactive_adversarial_timing.py +571 -0
  1853. scistudio-0.3.4a32/tests/engine/test_interactive_cancellation.py +109 -0
  1854. scistudio-0.3.4a32/tests/engine/test_interactive_lineage.py +179 -0
  1855. scistudio-0.3.4a32/tests/engine/test_interactive_run_scoping.py +84 -0
  1856. scistudio-0.3.4a32/tests/engine/test_interactive_system_smoke.py +408 -0
  1857. scistudio-0.3.4a32/tests/engine/test_interactive_two_phase.py +128 -0
  1858. scistudio-0.3.4a32/tests/engine/test_lineage_data_objects_propagation.py +321 -0
  1859. scistudio-0.3.4a32/tests/engine/test_lineage_recorder.py +411 -0
  1860. scistudio-0.3.4a32/tests/engine/test_local_runner.py +825 -0
  1861. scistudio-0.3.4a32/tests/engine/test_materialisation.py +300 -0
  1862. scistudio-0.3.4a32/tests/engine/test_materialisation_capabilities.py +172 -0
  1863. scistudio-0.3.4a32/tests/engine/test_platform_ops.py +39 -0
  1864. scistudio-0.3.4a32/tests/engine/test_process_handle.py +674 -0
  1865. scistudio-0.3.4a32/tests/engine/test_pty_control.py +285 -0
  1866. scistudio-0.3.4a32/tests/engine/test_pty_control_skeleton.py +41 -0
  1867. scistudio-0.3.4a32/tests/engine/test_resource_manager_gpu_autodetect.py +319 -0
  1868. scistudio-0.3.4a32/tests/engine/test_resources.py +431 -0
  1869. scistudio-0.3.4a32/tests/engine/test_run_logging.py +73 -0
  1870. scistudio-0.3.4a32/tests/engine/test_scheduler.py +1279 -0
  1871. scistudio-0.3.4a32/tests/engine/test_scheduler_concurrency.py +507 -0
  1872. scistudio-0.3.4a32/tests/engine/test_scheduler_interactive.py +252 -0
  1873. scistudio-0.3.4a32/tests/engine/test_scheduler_package_layout.py +87 -0
  1874. scistudio-0.3.4a32/tests/engine/test_scheduler_rerun_cancel.py +282 -0
  1875. scistudio-0.3.4a32/tests/engine/test_scheduler_state_machine_contract.py +286 -0
  1876. scistudio-0.3.4a32/tests/engine/test_scheduler_terminal_data.py +249 -0
  1877. scistudio-0.3.4a32/tests/engine/test_single_value_collection_consumers.py +107 -0
  1878. scistudio-0.3.4a32/tests/engine/test_single_value_collection_contract.py +290 -0
  1879. scistudio-0.3.4a32/tests/engine/test_worker.py +564 -0
  1880. scistudio-0.3.4a32/tests/engine/test_worker_block_config.py +68 -0
  1881. scistudio-0.3.4a32/tests/engine/test_worker_reconstruction_scan_dirs.py +404 -0
  1882. scistudio-0.3.4a32/tests/engine/test_worker_typed_reconstruction.py +850 -0
  1883. scistudio-0.3.4a32/tests/fixtures/__init__.py +7 -0
  1884. scistudio-0.3.4a32/tests/fixtures/interactive_adversarial_blocks.py +303 -0
  1885. scistudio-0.3.4a32/tests/fixtures/interactive_blocks.py +209 -0
  1886. scistudio-0.3.4a32/tests/fixtures/noop_block.py +69 -0
  1887. scistudio-0.3.4a32/tests/fixtures/noop_io_block.py +75 -0
  1888. scistudio-0.3.4a32/tests/fixtures/scistudio-blocks-fixture/README.md +33 -0
  1889. scistudio-0.3.4a32/tests/fixtures/scistudio-blocks-fixture/pyproject.toml +37 -0
  1890. scistudio-0.3.4a32/tests/fixtures/scistudio-blocks-fixture/src/scistudio_blocks_fixture/__init__.py +71 -0
  1891. scistudio-0.3.4a32/tests/fixtures/scistudio-blocks-fixture/src/scistudio_blocks_fixture/io/__init__.py +8 -0
  1892. scistudio-0.3.4a32/tests/fixtures/scistudio-blocks-fixture/src/scistudio_blocks_fixture/io/load_image.py +121 -0
  1893. scistudio-0.3.4a32/tests/fixtures/scistudio-blocks-fixture/src/scistudio_blocks_fixture/io/save_data.py +121 -0
  1894. scistudio-0.3.4a32/tests/fixtures/scistudio-blocks-fixture/src/scistudio_blocks_fixture/previewers/__init__.py +147 -0
  1895. scistudio-0.3.4a32/tests/fixtures/scistudio-blocks-fixture/src/scistudio_blocks_fixture/previewers/assets/viewer.js +18 -0
  1896. scistudio-0.3.4a32/tests/fixtures/scistudio-blocks-fixture/src/scistudio_blocks_fixture/process_noop.py +37 -0
  1897. scistudio-0.3.4a32/tests/fixtures/scistudio-blocks-fixture/src/scistudio_blocks_fixture/types.py +105 -0
  1898. scistudio-0.3.4a32/tests/fixtures/scistudio-blocks-fixture/tests/test_fixture_sanity.py +32 -0
  1899. scistudio-0.3.4a32/tests/fixtures/test_images.py +26 -0
  1900. scistudio-0.3.4a32/tests/fixtures/test_noop_block.py +61 -0
  1901. scistudio-0.3.4a32/tests/helpers.py +47 -0
  1902. scistudio-0.3.4a32/tests/integration/__init__.py +1 -0
  1903. scistudio-0.3.4a32/tests/integration/conftest.py +51 -0
  1904. scistudio-0.3.4a32/tests/integration/test_block_sdk_e2e.py +636 -0
  1905. scistudio-0.3.4a32/tests/integration/test_cancel_scenario.py +313 -0
  1906. scistudio-0.3.4a32/tests/integration/test_multimodal_workflow.py +398 -0
  1907. scistudio-0.3.4a32/tests/integration/test_phase2_mcp_end_to_end.py +164 -0
  1908. scistudio-0.3.4a32/tests/integration/test_race_agent_write.py +87 -0
  1909. scistudio-0.3.4a32/tests/integration/test_race_autosave.py +49 -0
  1910. scistudio-0.3.4a32/tests/integration/test_race_external_editor.py +114 -0
  1911. scistudio-0.3.4a32/tests/integration/test_race_lineage_restore.py +148 -0
  1912. scistudio-0.3.4a32/tests/integration/test_race_multi_session.py +44 -0
  1913. scistudio-0.3.4a32/tests/integration/test_smoke_workflows.py +239 -0
  1914. scistudio-0.3.4a32/tests/integration/test_subworkflow_lineage.py +143 -0
  1915. scistudio-0.3.4a32/tests/packages/__init__.py +1 -0
  1916. scistudio-0.3.4a32/tests/packages/test_entry_point_symmetry.py +650 -0
  1917. scistudio-0.3.4a32/tests/packaging/test_desktop_mvp_resources.py +301 -0
  1918. scistudio-0.3.4a32/tests/packaging/test_desktop_runtime_build_auth.py +112 -0
  1919. scistudio-0.3.4a32/tests/packaging/test_license_alignment.py +76 -0
  1920. scistudio-0.3.4a32/tests/packaging/test_no_alpha_gate.py +55 -0
  1921. scistudio-0.3.4a32/tests/packaging/test_version_alignment.py +100 -0
  1922. scistudio-0.3.4a32/tests/packaging/test_wheel_skills.py +207 -0
  1923. scistudio-0.3.4a32/tests/packaging/test_wheel_spa.py +148 -0
  1924. scistudio-0.3.4a32/tests/previewers/__init__.py +1 -0
  1925. scistudio-0.3.4a32/tests/previewers/test_fallback_array.py +144 -0
  1926. scistudio-0.3.4a32/tests/previewers/test_preview_data_access.py +438 -0
  1927. scistudio-0.3.4a32/tests/previewers/test_preview_registry.py +206 -0
  1928. scistudio-0.3.4a32/tests/previewers/test_preview_routing.py +281 -0
  1929. scistudio-0.3.4a32/tests/previewers/test_preview_security.py +93 -0
  1930. scistudio-0.3.4a32/tests/previewers/test_preview_session_cache_key.py +78 -0
  1931. scistudio-0.3.4a32/tests/previewers/test_preview_session_exports.py +123 -0
  1932. scistudio-0.3.4a32/tests/previewers/test_preview_session_manifest.py +119 -0
  1933. scistudio-0.3.4a32/tests/previewers/test_preview_session_package_imports.py +131 -0
  1934. scistudio-0.3.4a32/tests/previewers/test_previewer_choice.py +303 -0
  1935. scistudio-0.3.4a32/tests/previewers/test_previewer_dropins.py +444 -0
  1936. scistudio-0.3.4a32/tests/previewers/test_table_cache_surface.py +61 -0
  1937. scistudio-0.3.4a32/tests/qa/conftest.py +34 -0
  1938. scistudio-0.3.4a32/tests/qa/governance/test_gate_record_package.py +316 -0
  1939. scistudio-0.3.4a32/tests/qa/test_architecture_drift.py +149 -0
  1940. scistudio-0.3.4a32/tests/qa/test_audit_closure.py +339 -0
  1941. scistudio-0.3.4a32/tests/qa/test_audit_doc_drift.py +453 -0
  1942. scistudio-0.3.4a32/tests/qa/test_audit_fact_drift.py +42 -0
  1943. scistudio-0.3.4a32/tests/qa/test_audit_frontmatter_lint.py +450 -0
  1944. scistudio-0.3.4a32/tests/qa/test_audit_full_audit.py +69 -0
  1945. scistudio-0.3.4a32/tests/qa/test_audit_signature_contracts.py +120 -0
  1946. scistudio-0.3.4a32/tests/qa/test_audit_signature_drift.py +132 -0
  1947. scistudio-0.3.4a32/tests/qa/test_audit_vulture.py +259 -0
  1948. scistudio-0.3.4a32/tests/qa/test_commit_msg_hook_wiring.py +49 -0
  1949. scistudio-0.3.4a32/tests/qa/test_gate_commit_checks.py +154 -0
  1950. scistudio-0.3.4a32/tests/qa/test_gate_evaluator.py +1444 -0
  1951. scistudio-0.3.4a32/tests/qa/test_gate_incremental_checks.py +448 -0
  1952. scistudio-0.3.4a32/tests/qa/test_gate_ledger.py +140 -0
  1953. scistudio-0.3.4a32/tests/qa/test_gate_parity_provision.py +306 -0
  1954. scistudio-0.3.4a32/tests/qa/test_gate_record.py +1158 -0
  1955. scistudio-0.3.4a32/tests/qa/test_gate_record_bugfixes.py +989 -0
  1956. scistudio-0.3.4a32/tests/qa/test_gate_record_ci.py +229 -0
  1957. scistudio-0.3.4a32/tests/qa/test_gate_record_hooks.py +384 -0
  1958. scistudio-0.3.4a32/tests/qa/test_generate_facts_cli.py +78 -0
  1959. scistudio-0.3.4a32/tests/qa/test_governance_paths.py +131 -0
  1960. scistudio-0.3.4a32/tests/qa/test_griffe_facts.py +60 -0
  1961. scistudio-0.3.4a32/tests/qa/test_guard_calculators.py +799 -0
  1962. scistudio-0.3.4a32/tests/qa/test_parity_venv_pins.py +93 -0
  1963. scistudio-0.3.4a32/tests/qa/test_schemas_maintainers.py +17 -0
  1964. scistudio-0.3.4a32/tests/qa/test_schemas_report.py +65 -0
  1965. scistudio-0.3.4a32/tests/qa/test_schemas_signatures.py +66 -0
  1966. scistudio-0.3.4a32/tests/qa/test_workflow_expressions.py +182 -0
  1967. scistudio-0.3.4a32/tests/qa/test_worktree_write_guard.py +133 -0
  1968. scistudio-0.3.4a32/tests/qa/testing/test_run_python_tests.py +109 -0
  1969. scistudio-0.3.4a32/tests/scripts/__init__.py +0 -0
  1970. scistudio-0.3.4a32/tests/scripts/test_deferral_scan.py +171 -0
  1971. scistudio-0.3.4a32/tests/scripts/test_ota_publish.py +956 -0
  1972. scistudio-0.3.4a32/tests/scripts/test_scistudio_pr_create.py +272 -0
  1973. scistudio-0.3.4a32/tests/stability/__init__.py +0 -0
  1974. scistudio-0.3.4a32/tests/stability/test_stability.py +142 -0
  1975. scistudio-0.3.4a32/tests/test_import_coverage.py +201 -0
  1976. scistudio-0.3.4a32/tests/test_logging_config.py +71 -0
  1977. scistudio-0.3.4a32/tests/test_version.py +93 -0
  1978. scistudio-0.3.4a32/tests/testing/__init__.py +0 -0
  1979. scistudio-0.3.4a32/tests/testing/test_harness.py +312 -0
  1980. scistudio-0.3.4a32/tests/tutorials/__init__.py +0 -0
  1981. scistudio-0.3.4a32/tests/tutorials/conftest.py +188 -0
  1982. scistudio-0.3.4a32/tests/tutorials/fixtures/driver-declared/tutorial.yaml +20 -0
  1983. scistudio-0.3.4a32/tests/tutorials/fixtures/full-vocabulary/assets/code/constants.py +1 -0
  1984. scistudio-0.3.4a32/tests/tutorials/fixtures/full-vocabulary/assets/data/sample.csv +3 -0
  1985. scistudio-0.3.4a32/tests/tutorials/fixtures/full-vocabulary/assets/pages/intro.md +1 -0
  1986. scistudio-0.3.4a32/tests/tutorials/fixtures/full-vocabulary/assets/replay/segment-one.txt +1 -0
  1987. scistudio-0.3.4a32/tests/tutorials/fixtures/full-vocabulary/assets/replay/segment-two.txt +1 -0
  1988. scistudio-0.3.4a32/tests/tutorials/fixtures/full-vocabulary/tutorial.yaml +231 -0
  1989. scistudio-0.3.4a32/tests/tutorials/fixtures/future-manifest-version/tutorial.yaml +21 -0
  1990. scistudio-0.3.4a32/tests/tutorials/fixtures/malformed-manifest/tutorial.yaml +18 -0
  1991. scistudio-0.3.4a32/tests/tutorials/fixtures/minimal-core/assets/data/cells.csv +2 -0
  1992. scistudio-0.3.4a32/tests/tutorials/fixtures/minimal-core/tutorial.yaml +26 -0
  1993. scistudio-0.3.4a32/tests/tutorials/fixtures/unmet-requirements/tutorial.yaml +23 -0
  1994. scistudio-0.3.4a32/tests/tutorials/test_actions.py +264 -0
  1995. scistudio-0.3.4a32/tests/tutorials/test_condition_events.py +513 -0
  1996. scistudio-0.3.4a32/tests/tutorials/test_conditions.py +959 -0
  1997. scistudio-0.3.4a32/tests/tutorials/test_core_tutorial_what_is_a_type.py +1540 -0
  1998. scistudio-0.3.4a32/tests/tutorials/test_core_tutorials.py +754 -0
  1999. scistudio-0.3.4a32/tests/tutorials/test_discovery_no_import.py +235 -0
  2000. scistudio-0.3.4a32/tests/tutorials/test_discovery_tiers.py +713 -0
  2001. scistudio-0.3.4a32/tests/tutorials/test_driver_parity.py +643 -0
  2002. scistudio-0.3.4a32/tests/tutorials/test_manifest_schema.py +1417 -0
  2003. scistudio-0.3.4a32/tests/tutorials/test_progress.py +347 -0
  2004. scistudio-0.3.4a32/tests/tutorials/test_public_authoring_surface.py +201 -0
  2005. scistudio-0.3.4a32/tests/tutorials/test_replay.py +576 -0
  2006. scistudio-0.3.4a32/tests/tutorials/test_scoped_library.py +383 -0
  2007. scistudio-0.3.4a32/tests/tutorials/test_session_back.py +337 -0
  2008. scistudio-0.3.4a32/tests/tutorials/test_session_lifecycle.py +1608 -0
  2009. scistudio-0.3.4a32/tests/tutorials/test_tier_asset_rules.py +308 -0
  2010. scistudio-0.3.4a32/tests/utils/__init__.py +0 -0
  2011. scistudio-0.3.4a32/tests/utils/test_atomic_io.py +343 -0
  2012. scistudio-0.3.4a32/tests/utils/test_axis_iter.py +425 -0
  2013. scistudio-0.3.4a32/tests/utils/test_constraints.py +334 -0
  2014. scistudio-0.3.4a32/tests/utils/test_fs.py +116 -0
  2015. scistudio-0.3.4a32/tests/utils/test_log_setup.py +169 -0
  2016. scistudio-0.3.4a32/tests/utils/test_logging.py +89 -0
  2017. scistudio-0.3.4a32/tests/workflow/__init__.py +0 -0
  2018. scistudio-0.3.4a32/tests/workflow/test_flatten_subworkflows.py +433 -0
  2019. scistudio-0.3.4a32/tests/workflow/test_io_boundary_validation.py +244 -0
  2020. scistudio-0.3.4a32/tests/workflow/test_path_portability.py +166 -0
  2021. scistudio-0.3.4a32/tests/workflow/test_serializer.py +172 -0
  2022. scistudio-0.3.4a32/tests/workflow/test_serializer_durability.py +62 -0
  2023. scistudio-0.3.4a32/tests/workflow/test_serializer_property.py +48 -0
  2024. scistudio-0.3.4a32/tests/workflow/test_subworkflow_ports.py +222 -0
  2025. scistudio-0.3.4a32/tests/workflow/test_subworkflow_yaml_roundtrip.py +103 -0
  2026. scistudio-0.3.4a32/tests/workflow/test_validator.py +864 -0
  2027. scistudio-0.3.4a32/tests/workflow/test_validator_codeblock_v2.py +278 -0
  2028. scistudio-0.3.4a32/tests/workflow/test_validator_dynamic_ports.py +232 -0
  2029. scistudio-0.3.4a32/vulture_allowlist.py +42 -0
@@ -0,0 +1,77 @@
1
+ # SciStudio AI Rules Index
2
+
3
+ This file is a pointer only. It is not an independent policy source.
4
+
5
+ - Use `AGENTS.md` for root repository policy.
6
+
7
+ - Use `docs/ai-developer/rules.md` for rules every AI persona must follow.
8
+
9
+ - Use `docs/ai-developer/rules.md#5-gate-cli-command-set` for the canonical
10
+ AI-facing gate record and local receipt commands.
11
+
12
+ - Use `docs/ai-developer/release-runbook.md` if you are cutting a desktop
13
+ release or publishing an OTA update. Two of its rules brick users when
14
+ broken: the installer must be downloadable before any mandatory manifest,
15
+ and it must carry a build number at or above the highest published patch.
16
+
17
+ - Use `docs/ai-developer/gate-cli-command-set.md` for the full consolidated
18
+ gate CLI reference (arguments, `--mode` family, exit codes, strictness tiers,
19
+ per-task-kind and per-persona profiles, and a soft-routing decision guide).
20
+
21
+ - Use `docs/ai-developer/specific_rules/gated-workflow.md` for AI-authored
22
+ gate workflow work.
23
+
24
+ - Use `docs/ai-developer/specific_rules/new-feature.md` if you are building a
25
+ new feature.
26
+
27
+ - Use `docs/ai-developer/specific_rules/bug-fix.md` if you are fixing a bug.
28
+
29
+ - Use `docs/ai-developer/specific_rules/hotfix.md` if the owner explicitly
30
+ authorizes hotfix mode.
31
+
32
+ - Use `docs/ai-developer/specific_rules/guided-work.md` if you are carrying out
33
+ owner-directed live implementation (task kind `guided`).
34
+
35
+ - Use `docs/ai-developer/specific_rules/docs-change.md` if you are changing
36
+ documentation only.
37
+
38
+ - Use `docs/ai-developer/specific_rules/agent-dispatch.md` if you are
39
+ dispatching or coordinating agents.
40
+
41
+ - Use `docs/ai-developer/specific_rules/document-standards.md` if you need the
42
+ ADR-042 document structure reference.
43
+
44
+ - Use `docs/ai-developer/personas/manager.md` if you are the manager persona.
45
+
46
+ - Use `docs/ai-developer/personas/implementer.md` if you are the implementer
47
+ persona.
48
+
49
+ - Use `docs/ai-developer/personas/adr-author.md` if you are the ADR author
50
+ persona.
51
+
52
+ - Use `docs/ai-developer/personas/audit-reviewer.md` if you are the audit
53
+ reviewer persona.
54
+
55
+ - Use `docs/ai-developer/personas/test-engineer.md` if you are the test
56
+ engineer persona.
57
+
58
+ - Use `docs/ai-developer/personas/live-implementer.md` if you are the
59
+ `live_implementer` persona carrying out a `guided` task kind.
60
+
61
+ - Use `docs/ai-developer/templates/agent-dispatch-checklist-template.md` if you
62
+ are creating a manager dispatch checklist.
63
+
64
+ - Use `docs/ai-developer/templates/agent-dispatch-prompt-template.md` if you
65
+ are dispatching non-audit work.
66
+
67
+ - Use `docs/ai-developer/templates/agent-dispatch-audit-with-context-prompt-template.md`
68
+ if you are dispatching an audit with issue, checklist, PR, and claimed-work
69
+ context.
70
+
71
+ - Use `docs/ai-developer/templates/agent-dispatch-audit-no-context-prompt-template.md`
72
+ if you are dispatching an audit without current task context.
73
+
74
+ - Use `docs/ai-developer/skills/scistudio-e2e-test/SKILL.md` if you are running
75
+ a live end-to-end SciStudio session from a scenario file under
76
+ `docs/ai-developer/e2e/`. Pair it with
77
+ `docs/ai-developer/e2e/template.md` and `docs/ai-developer/e2e/README.md`.
@@ -0,0 +1,19 @@
1
+ ---
2
+ name: adr-author
3
+ description: Use when acting as the SciStudio ADR author persona for ADRs, addenda, specs, governance text, document standards, schemas, and architecture-facing decisions.
4
+ ---
5
+
6
+ # SciStudio ADR Author Skill
7
+
8
+ This skill is a hard pointer only. It does not define independent policy.
9
+
10
+ Before doing ADR author work, load and follow:
11
+
12
+ - @AGENTS.md
13
+ - @docs/ai-developer/rules.md
14
+ - @docs/ai-developer/personas/adr-author.md
15
+ - @docs/ai-developer/specific_rules/docs-change.md
16
+ - @docs/ai-developer/specific_rules/document-standards.md
17
+ - @docs/ai-developer/specific_rules/gated-workflow.md
18
+
19
+ Do not continue as ADR author until the persona file and common rules are loaded.
@@ -0,0 +1,18 @@
1
+ ---
2
+ name: audit-reviewer
3
+ description: Use when acting as the SciStudio audit reviewer persona for reviews, audits, CI investigation, drift detection, conformance checks, and readiness assessment.
4
+ ---
5
+
6
+ # SciStudio Audit Reviewer Skill
7
+
8
+ This skill is a hard pointer only. It does not define independent policy.
9
+
10
+ Before doing audit reviewer work, load and follow:
11
+
12
+ - @AGENTS.md
13
+ - @docs/ai-developer/rules.md
14
+ - @docs/ai-developer/personas/audit-reviewer.md
15
+ - @docs/ai-developer/specific_rules/gated-workflow.md
16
+
17
+ Follow the audit context boundaries in the task instruction.
18
+ Do not continue as audit reviewer until the persona file and common rules are loaded.
@@ -0,0 +1,19 @@
1
+ ---
2
+ name: implementer
3
+ description: Use when acting as the SciStudio implementer persona for scoped code, tests, tool wiring, implementation-linked docs, and gate-record evidence.
4
+ ---
5
+
6
+ # SciStudio Implementer Skill
7
+
8
+ This skill is a hard pointer only. It does not define independent policy.
9
+
10
+ Before doing implementer work, load and follow:
11
+
12
+ - @AGENTS.md
13
+ - @docs/ai-developer/rules.md
14
+ - @docs/ai-developer/personas/implementer.md
15
+ - @docs/ai-developer/specific_rules/gated-workflow.md
16
+ - The matching task-specific rule under @docs/ai-developer/specific_rules/
17
+
18
+ When dispatched by a manager, also follow @docs/ai-developer/specific_rules/agent-dispatch.md.
19
+ Do not continue as implementer until the persona file and common rules are loaded.
@@ -0,0 +1,20 @@
1
+ ---
2
+ name: live-implementer
3
+ description: Use when acting as the SciStudio live implementer persona for owner-directed live implementation sessions under the guided task kind.
4
+ ---
5
+
6
+ # SciStudio Live Implementer Skill
7
+
8
+ This skill is a hard pointer only. It does not define independent policy.
9
+
10
+ Before doing live implementer work, load and follow:
11
+
12
+ - @AGENTS.md
13
+ - @docs/ai-developer/rules.md
14
+ - @docs/ai-developer/personas/live-implementer.md
15
+ - @docs/ai-developer/specific_rules/guided-work.md
16
+ - @docs/ai-developer/specific_rules/gated-workflow.md
17
+
18
+ The live_implementer persona is not the ordinary implementer. Do not inherit the
19
+ ordinary implementer workflow by implication.
20
+ Do not continue as live implementer until the persona file and common rules are loaded.
@@ -0,0 +1,20 @@
1
+ ---
2
+ name: manager
3
+ description: Use when acting as the SciStudio manager persona for planning, coordination, dispatch, hotfix ownership, integration testing, e2e testing, PR readiness, and durable status reporting.
4
+ ---
5
+
6
+ # SciStudio Manager Skill
7
+
8
+ This skill is a hard pointer only. It does not define independent policy.
9
+
10
+ Before doing manager work, load and follow:
11
+
12
+ - @AGENTS.md
13
+ - @docs/ai-developer/rules.md
14
+ - @docs/ai-developer/personas/manager.md
15
+ - @docs/ai-developer/specific_rules/gated-workflow.md
16
+ - @docs/ai-developer/specific_rules/agent-dispatch.md
17
+ - @docs/ai-developer/specific_rules/hotfix.md when hotfix mode is explicitly authorized
18
+
19
+ Use the templates under @docs/ai-developer/templates/ when dispatching agents.
20
+ Do not continue as manager until the persona file and common rules are loaded.
@@ -0,0 +1,26 @@
1
+ ---
2
+ name: scistudio-e2e-test
3
+ description: Use when running a live end-to-end SciStudio session — driving the GUI in Chrome via Chrome MCP, verifying a PR before merge, reproducing a hotfix bug live, or any time the user says "跑 e2e", "do an e2e", "verify in Chrome", "run e2e on PR #N", or hands you a path under docs/ai-developer/e2e/. Pairs a user-filled scenario file with a pass/fail verdict written back into the same file.
4
+ ---
5
+
6
+ # SciStudio E2E Test Skill
7
+
8
+ This skill is a hard pointer only. It does not define independent policy.
9
+
10
+ Before doing e2e work, load and follow:
11
+
12
+ - @AGENTS.md
13
+ - @docs/ai-developer/rules.md
14
+ - @docs/ai-developer/skills/scistudio-e2e-test/SKILL.md
15
+ - @docs/ai-developer/e2e/template.md (the scenario shape this skill expects)
16
+ - @docs/ai-developer/e2e/README.md (workflow + naming for scenario files)
17
+ - @docs/ai-developer/personas/manager.md when the e2e is part of a manager coordination
18
+ - @docs/ai-developer/specific_rules/hotfix.md when the e2e is a hotfix repro
19
+
20
+ The Chrome MCP recipes, dev-server lifecycle, screenshot recipes, and
21
+ final report template live alongside the canonical SKILL.md under
22
+ `docs/ai-developer/skills/scistudio-e2e-test/references/`. Read whichever
23
+ reference the current step needs.
24
+
25
+ Do not continue as the e2e tester until the canonical SKILL.md and the
26
+ scenario template are loaded.
@@ -0,0 +1,19 @@
1
+ ---
2
+ name: test-engineer
3
+ description: Use when acting as the SciStudio test_engineer persona for test architecture, test design, test additions, runtime validation, e2e evidence, and test-only artifacts.
4
+ ---
5
+
6
+ # SciStudio Test Engineer Skill
7
+
8
+ This skill is a hard pointer only. It does not define independent policy.
9
+
10
+ Before doing test-engineer work, load and follow:
11
+
12
+ - @AGENTS.md
13
+ - @docs/ai-developer/rules.md
14
+ - @docs/ai-developer/personas/test-engineer.md
15
+ - @docs/ai-developer/specific_rules/test-engineering.md
16
+ - @docs/ai-developer/specific_rules/gated-workflow.md
17
+
18
+ When dispatched by a manager, also follow @docs/ai-developer/specific_rules/agent-dispatch.md.
19
+ Do not continue as test engineer until the persona file and common rules are loaded.
@@ -0,0 +1,77 @@
1
+ # Claude Rules Index
2
+
3
+ This file is a pointer only. It is not an independent policy source.
4
+
5
+ - Use `AGENTS.md` for root repository policy.
6
+
7
+ - Use `docs/ai-developer/rules.md` for rules every AI persona must follow.
8
+
9
+ - Use `docs/ai-developer/rules.md#5-gate-cli-command-set` for the canonical
10
+ AI-facing gate record and local receipt commands.
11
+
12
+ - Use `docs/ai-developer/release-runbook.md` if you are cutting a desktop
13
+ release or publishing an OTA update. Two of its rules brick users when
14
+ broken: the installer must be downloadable before any mandatory manifest,
15
+ and it must carry a build number at or above the highest published patch.
16
+
17
+ - Use `docs/ai-developer/gate-cli-command-set.md` for the full consolidated
18
+ gate CLI reference (arguments, `--mode` family, exit codes, strictness tiers,
19
+ per-task-kind and per-persona profiles, and a soft-routing decision guide).
20
+
21
+ - Use `docs/ai-developer/specific_rules/gated-workflow.md` for AI-authored
22
+ gate workflow work.
23
+
24
+ - Use `docs/ai-developer/specific_rules/new-feature.md` if you are building a
25
+ new feature.
26
+
27
+ - Use `docs/ai-developer/specific_rules/bug-fix.md` if you are fixing a bug.
28
+
29
+ - Use `docs/ai-developer/specific_rules/hotfix.md` if the owner explicitly
30
+ authorizes hotfix mode.
31
+
32
+ - Use `docs/ai-developer/specific_rules/guided-work.md` if you are carrying out
33
+ owner-directed live implementation (task kind `guided`).
34
+
35
+ - Use `docs/ai-developer/specific_rules/docs-change.md` if you are changing
36
+ documentation only.
37
+
38
+ - Use `docs/ai-developer/specific_rules/agent-dispatch.md` if you are
39
+ dispatching or coordinating agents.
40
+
41
+ - Use `docs/ai-developer/specific_rules/document-standards.md` if you need the
42
+ ADR-042 document structure reference.
43
+
44
+ - Use `docs/ai-developer/personas/manager.md` if you are the manager persona.
45
+
46
+ - Use `docs/ai-developer/personas/implementer.md` if you are the implementer
47
+ persona.
48
+
49
+ - Use `docs/ai-developer/personas/adr-author.md` if you are the ADR author
50
+ persona.
51
+
52
+ - Use `docs/ai-developer/personas/audit-reviewer.md` if you are the audit
53
+ reviewer persona.
54
+
55
+ - Use `docs/ai-developer/personas/test-engineer.md` if you are the test
56
+ engineer persona.
57
+
58
+ - Use `docs/ai-developer/personas/live-implementer.md` if you are the
59
+ `live_implementer` persona carrying out a `guided` task kind.
60
+
61
+ - Use `docs/ai-developer/templates/agent-dispatch-checklist-template.md` if you
62
+ are creating a manager dispatch checklist.
63
+
64
+ - Use `docs/ai-developer/templates/agent-dispatch-prompt-template.md` if you
65
+ are dispatching non-audit work.
66
+
67
+ - Use `docs/ai-developer/templates/agent-dispatch-audit-with-context-prompt-template.md`
68
+ if you are dispatching an audit with issue, checklist, PR, and claimed-work
69
+ context.
70
+
71
+ - Use `docs/ai-developer/templates/agent-dispatch-audit-no-context-prompt-template.md`
72
+ if you are dispatching an audit without current task context.
73
+
74
+ - Use `docs/ai-developer/skills/scistudio-e2e-test/SKILL.md` if you are running
75
+ a live end-to-end SciStudio session from a scenario file under
76
+ `docs/ai-developer/e2e/`. Pair it with
77
+ `docs/ai-developer/e2e/template.md` and `docs/ai-developer/e2e/README.md`.
@@ -0,0 +1,16 @@
1
+ {
2
+ "permissions": {
3
+ "allow": [
4
+ "Bash(pip --version)",
5
+ "Bash(git reset:*)",
6
+ "Bash(git rm:*)",
7
+ "Bash(git commit:*)",
8
+ "Bash(git branch:*)",
9
+ "Bash(git push:*)",
10
+ "Bash(gh pr:*)",
11
+ "Bash(gh run:*)",
12
+ "Bash(git pull:*)",
13
+ "Bash(git add:*)"
14
+ ]
15
+ }
16
+ }
@@ -0,0 +1,19 @@
1
+ ---
2
+ name: adr-author
3
+ description: Use when acting as the SciStudio ADR author persona for ADRs, addenda, specs, governance text, document standards, schemas, and architecture-facing decisions.
4
+ ---
5
+
6
+ # SciStudio ADR Author Skill
7
+
8
+ This skill is a hard pointer only. It does not define independent policy.
9
+
10
+ Before doing ADR author work, load and follow:
11
+
12
+ - @AGENTS.md
13
+ - @docs/ai-developer/rules.md
14
+ - @docs/ai-developer/personas/adr-author.md
15
+ - @docs/ai-developer/specific_rules/docs-change.md
16
+ - @docs/ai-developer/specific_rules/document-standards.md
17
+ - @docs/ai-developer/specific_rules/gated-workflow.md
18
+
19
+ Do not continue as ADR author until the persona file and common rules are loaded.
@@ -0,0 +1,18 @@
1
+ ---
2
+ name: audit-reviewer
3
+ description: Use when acting as the SciStudio audit reviewer persona for reviews, audits, CI investigation, drift detection, conformance checks, and readiness assessment.
4
+ ---
5
+
6
+ # SciStudio Audit Reviewer Skill
7
+
8
+ This skill is a hard pointer only. It does not define independent policy.
9
+
10
+ Before doing audit reviewer work, load and follow:
11
+
12
+ - @AGENTS.md
13
+ - @docs/ai-developer/rules.md
14
+ - @docs/ai-developer/personas/audit-reviewer.md
15
+ - @docs/ai-developer/specific_rules/gated-workflow.md
16
+
17
+ Follow the audit context boundaries in the task instruction.
18
+ Do not continue as audit reviewer until the persona file and common rules are loaded.
@@ -0,0 +1,19 @@
1
+ ---
2
+ name: implementer
3
+ description: Use when acting as the SciStudio implementer persona for scoped code, tests, tool wiring, implementation-linked docs, and gate-record evidence.
4
+ ---
5
+
6
+ # SciStudio Implementer Skill
7
+
8
+ This skill is a hard pointer only. It does not define independent policy.
9
+
10
+ Before doing implementer work, load and follow:
11
+
12
+ - @AGENTS.md
13
+ - @docs/ai-developer/rules.md
14
+ - @docs/ai-developer/personas/implementer.md
15
+ - @docs/ai-developer/specific_rules/gated-workflow.md
16
+ - The matching task-specific rule under @docs/ai-developer/specific_rules/
17
+
18
+ When dispatched by a manager, also follow @docs/ai-developer/specific_rules/agent-dispatch.md.
19
+ Do not continue as implementer until the persona file and common rules are loaded.
@@ -0,0 +1,20 @@
1
+ ---
2
+ name: live-implementer
3
+ description: Use when acting as the SciStudio live implementer persona for owner-directed live implementation sessions under the guided task kind.
4
+ ---
5
+
6
+ # SciStudio Live Implementer Skill
7
+
8
+ This skill is a hard pointer only. It does not define independent policy.
9
+
10
+ Before doing live implementer work, load and follow:
11
+
12
+ - @AGENTS.md
13
+ - @docs/ai-developer/rules.md
14
+ - @docs/ai-developer/personas/live-implementer.md
15
+ - @docs/ai-developer/specific_rules/guided-work.md
16
+ - @docs/ai-developer/specific_rules/gated-workflow.md
17
+
18
+ The live_implementer persona is not the ordinary implementer. Do not inherit the
19
+ ordinary implementer workflow by implication.
20
+ Do not continue as live implementer until the persona file and common rules are loaded.
@@ -0,0 +1,20 @@
1
+ ---
2
+ name: manager
3
+ description: Use when acting as the SciStudio manager persona for planning, coordination, dispatch, hotfix ownership, integration testing, e2e testing, PR readiness, and durable status reporting.
4
+ ---
5
+
6
+ # SciStudio Manager Skill
7
+
8
+ This skill is a hard pointer only. It does not define independent policy.
9
+
10
+ Before doing manager work, load and follow:
11
+
12
+ - @AGENTS.md
13
+ - @docs/ai-developer/rules.md
14
+ - @docs/ai-developer/personas/manager.md
15
+ - @docs/ai-developer/specific_rules/gated-workflow.md
16
+ - @docs/ai-developer/specific_rules/agent-dispatch.md
17
+ - @docs/ai-developer/specific_rules/hotfix.md when hotfix mode is explicitly authorized
18
+
19
+ Use the templates under @docs/ai-developer/templates/ when dispatching agents.
20
+ Do not continue as manager until the persona file and common rules are loaded.
@@ -0,0 +1,26 @@
1
+ ---
2
+ name: scistudio-e2e-test
3
+ description: Use when running a live end-to-end SciStudio session — driving the GUI in Chrome via Chrome MCP, verifying a PR before merge, reproducing a hotfix bug live, or any time the user says "跑 e2e", "do an e2e", "verify in Chrome", "run e2e on PR #N", or hands you a path under docs/ai-developer/e2e/. Pairs a user-filled scenario file with a pass/fail verdict written back into the same file.
4
+ ---
5
+
6
+ # SciStudio E2E Test Skill
7
+
8
+ This skill is a hard pointer only. It does not define independent policy.
9
+
10
+ Before doing e2e work, load and follow:
11
+
12
+ - @AGENTS.md
13
+ - @docs/ai-developer/rules.md
14
+ - @docs/ai-developer/skills/scistudio-e2e-test/SKILL.md
15
+ - @docs/ai-developer/e2e/template.md (the scenario shape this skill expects)
16
+ - @docs/ai-developer/e2e/README.md (workflow + naming for scenario files)
17
+ - @docs/ai-developer/personas/manager.md when the e2e is part of a manager coordination
18
+ - @docs/ai-developer/specific_rules/hotfix.md when the e2e is a hotfix repro
19
+
20
+ The Chrome MCP recipes, dev-server lifecycle, screenshot recipes, and
21
+ final report template live alongside the canonical SKILL.md under
22
+ `docs/ai-developer/skills/scistudio-e2e-test/references/`. Read whichever
23
+ reference the current step needs.
24
+
25
+ Do not continue as the e2e tester until the canonical SKILL.md and the
26
+ scenario template are loaded.
@@ -0,0 +1,191 @@
1
+ ---
2
+ name: speckit-analyze
3
+ description: Perform a non-destructive cross-artifact consistency and quality analysis
4
+ across spec.md, plan.md, and tasks.md after task generation.
5
+ compatibility: Requires spec-kit project structure with .specify/ directory
6
+ metadata:
7
+ author: github-spec-kit
8
+ source: templates/commands/analyze.md
9
+ disable-model-invocation: true
10
+ ---
11
+
12
+ ## User Input
13
+
14
+ ```text
15
+ $ARGUMENTS
16
+ ```
17
+
18
+ You **MUST** consider the user input before proceeding (if not empty).
19
+
20
+ ## Goal
21
+
22
+ Identify inconsistencies, duplications, ambiguities, and underspecified items across the three core artifacts (`spec.md`, `plan.md`, `tasks.md`) before implementation. This command MUST run only after `/speckit.tasks` has successfully produced a complete `tasks.md`.
23
+
24
+ ## Operating Constraints
25
+
26
+ **STRICTLY READ-ONLY**: Do **not** modify any files. Output a structured analysis report. Offer an optional remediation plan (user must explicitly approve before any follow-up editing commands would be invoked manually).
27
+
28
+ **Constitution Authority**: The project constitution (`.specify/memory/constitution.md`) is **non-negotiable** within this analysis scope. Constitution conflicts are automatically CRITICAL and require adjustment of the spec, plan, or tasks—not dilution, reinterpretation, or silent ignoring of the principle. If a principle itself needs to change, that must occur in a separate, explicit constitution update outside `/speckit.analyze`.
29
+
30
+ ## Execution Steps
31
+
32
+ ### 1. Initialize Analysis Context
33
+
34
+ Run `.specify/scripts/powershell/check-prerequisites.ps1 -Json -RequireTasks -IncludeTasks` once from repo root and parse JSON for FEATURE_DIR and AVAILABLE_DOCS. Derive absolute paths:
35
+
36
+ - SPEC = FEATURE_DIR/spec.md
37
+ - PLAN = FEATURE_DIR/plan.md
38
+ - TASKS = FEATURE_DIR/tasks.md
39
+
40
+ Abort with an error message if any required file is missing (instruct the user to run missing prerequisite command).
41
+ For single quotes in args like "I'm Groot", use escape syntax: e.g 'I'\''m Groot' (or double-quote if possible: "I'm Groot").
42
+
43
+ ### 2. Load Artifacts (Progressive Disclosure)
44
+
45
+ Load only the minimal necessary context from each artifact:
46
+
47
+ **From spec.md:**
48
+
49
+ - Overview/Context
50
+ - Functional Requirements
51
+ - Success Criteria (measurable outcomes — e.g., performance, security, availability, user success, business impact)
52
+ - User Stories
53
+ - Edge Cases (if present)
54
+
55
+ **From plan.md:**
56
+
57
+ - Architecture/stack choices
58
+ - Data Model references
59
+ - Phases
60
+ - Technical constraints
61
+
62
+ **From tasks.md:**
63
+
64
+ - Task IDs
65
+ - Descriptions
66
+ - Phase grouping
67
+ - Parallel markers [P]
68
+ - Referenced file paths
69
+
70
+ **From constitution:**
71
+
72
+ - Load `.specify/memory/constitution.md` for principle validation
73
+
74
+ ### 3. Build Semantic Models
75
+
76
+ Create internal representations (do not include raw artifacts in output):
77
+
78
+ - **Requirements inventory**: For each Functional Requirement (FR-###) and Success Criterion (SC-###), record a stable key. Use the explicit FR-/SC- identifier as the primary key when present, and optionally also derive an imperative-phrase slug for readability (e.g., "User can upload file" → `user-can-upload-file`). Include only Success Criteria items that require buildable work (e.g., load-testing infrastructure, security audit tooling), and exclude post-launch outcome metrics and business KPIs (e.g., "Reduce support tickets by 50%").
79
+ - **User story/action inventory**: Discrete user actions with acceptance criteria
80
+ - **Task coverage mapping**: Map each task to one or more requirements or stories (inference by keyword / explicit reference patterns like IDs or key phrases)
81
+ - **Constitution rule set**: Extract principle names and MUST/SHOULD normative statements
82
+
83
+ ### 4. Detection Passes (Token-Efficient Analysis)
84
+
85
+ Focus on high-signal findings. Limit to 50 findings total; aggregate remainder in overflow summary.
86
+
87
+ #### A. Duplication Detection
88
+
89
+ - Identify near-duplicate requirements
90
+ - Mark lower-quality phrasing for consolidation
91
+
92
+ #### B. Ambiguity Detection
93
+
94
+ - Flag vague adjectives (fast, scalable, secure, intuitive, robust) lacking measurable criteria
95
+ - Flag unresolved placeholders (TODO, TKTK, ???, `<placeholder>`, etc.)
96
+
97
+ #### C. Underspecification
98
+
99
+ - Requirements with verbs but missing object or measurable outcome
100
+ - User stories missing acceptance criteria alignment
101
+ - Tasks referencing files or components not defined in spec/plan
102
+
103
+ #### D. Constitution Alignment
104
+
105
+ - Any requirement or plan element conflicting with a MUST principle
106
+ - Missing mandated sections or quality gates from constitution
107
+
108
+ #### E. Coverage Gaps
109
+
110
+ - Requirements with zero associated tasks
111
+ - Tasks with no mapped requirement/story
112
+ - Success Criteria requiring buildable work (performance, security, availability) not reflected in tasks
113
+
114
+ #### F. Inconsistency
115
+
116
+ - Terminology drift (same concept named differently across files)
117
+ - Data entities referenced in plan but absent in spec (or vice versa)
118
+ - Task ordering contradictions (e.g., integration tasks before foundational setup tasks without dependency note)
119
+ - Conflicting requirements (e.g., one requires Next.js while other specifies Vue)
120
+
121
+ ### 5. Severity Assignment
122
+
123
+ Use this heuristic to prioritize findings:
124
+
125
+ - **CRITICAL**: Violates constitution MUST, missing core spec artifact, or requirement with zero coverage that blocks baseline functionality
126
+ - **HIGH**: Duplicate or conflicting requirement, ambiguous security/performance attribute, untestable acceptance criterion
127
+ - **MEDIUM**: Terminology drift, missing non-functional task coverage, underspecified edge case
128
+ - **LOW**: Style/wording improvements, minor redundancy not affecting execution order
129
+
130
+ ### 6. Produce Compact Analysis Report
131
+
132
+ Output a Markdown report (no file writes) with the following structure:
133
+
134
+ ## Specification Analysis Report
135
+
136
+ | ID | Category | Severity | Location(s) | Summary | Recommendation |
137
+ |----|----------|----------|-------------|---------|----------------|
138
+ | A1 | Duplication | HIGH | spec.md:L120-134 | Two similar requirements ... | Merge phrasing; keep clearer version |
139
+
140
+ (Add one row per finding; generate stable IDs prefixed by category initial.)
141
+
142
+ **Coverage Summary Table:**
143
+
144
+ | Requirement Key | Has Task? | Task IDs | Notes |
145
+ |-----------------|-----------|----------|-------|
146
+
147
+ **Constitution Alignment Issues:** (if any)
148
+
149
+ **Unmapped Tasks:** (if any)
150
+
151
+ **Metrics:**
152
+
153
+ - Total Requirements
154
+ - Total Tasks
155
+ - Coverage % (requirements with >=1 task)
156
+ - Ambiguity Count
157
+ - Duplication Count
158
+ - Critical Issues Count
159
+
160
+ ### 7. Provide Next Actions
161
+
162
+ At end of report, output a concise Next Actions block:
163
+
164
+ - If CRITICAL issues exist: Recommend resolving before `/speckit.implement`
165
+ - If only LOW/MEDIUM: User may proceed, but provide improvement suggestions
166
+ - Provide explicit command suggestions: e.g., "Run /speckit.specify with refinement", "Run /speckit.plan to adjust architecture", "Manually edit tasks.md to add coverage for 'performance-metrics'"
167
+
168
+ ### 8. Offer Remediation
169
+
170
+ Ask the user: "Would you like me to suggest concrete remediation edits for the top N issues?" (Do NOT apply them automatically.)
171
+
172
+ ## Operating Principles
173
+
174
+ ### Context Efficiency
175
+
176
+ - **Minimal high-signal tokens**: Focus on actionable findings, not exhaustive documentation
177
+ - **Progressive disclosure**: Load artifacts incrementally; don't dump all content into analysis
178
+ - **Token-efficient output**: Limit findings table to 50 rows; summarize overflow
179
+ - **Deterministic results**: Rerunning without changes should produce consistent IDs and counts
180
+
181
+ ### Analysis Guidelines
182
+
183
+ - **NEVER modify files** (this is read-only analysis)
184
+ - **NEVER hallucinate missing sections** (if absent, report them accurately)
185
+ - **Prioritize constitution violations** (these are always CRITICAL)
186
+ - **Use examples over exhaustive rules** (cite specific instances, not generic patterns)
187
+ - **Report zero issues gracefully** (emit success report with coverage statistics)
188
+
189
+ ## Context
190
+
191
+ $ARGUMENTS