plexora 0.0.28__tar.gz → 0.0.29__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 (1717) hide show
  1. plexora-0.0.29/LICENSE +377 -0
  2. plexora-0.0.29/PKG-INFO +241 -0
  3. plexora-0.0.29/README.md +162 -0
  4. plexora-0.0.29/plexora/__init__.py +520 -0
  5. plexora-0.0.29/plexora/agent/bridge_provider.py +460 -0
  6. plexora-0.0.29/plexora/agent/core/__init__.py +26 -0
  7. plexora-0.0.29/plexora/agent/core/surface.py +565 -0
  8. plexora-0.0.29/plexora/agent/core/viewer.py +748 -0
  9. plexora-0.0.29/plexora/agent/core/volume.py +877 -0
  10. plexora-0.0.29/plexora/agent/errors.py +147 -0
  11. plexora-0.0.29/plexora/agent/evidence/collage.py +636 -0
  12. plexora-0.0.29/plexora/agent/policy.py +345 -0
  13. plexora-0.0.29/plexora/agent/registry.py +447 -0
  14. plexora-0.0.29/plexora/agent/tokens.py +169 -0
  15. plexora-0.0.29/plexora/ai/bench.py +1287 -0
  16. plexora-0.0.29/plexora/ai/bench_data.py +458 -0
  17. plexora-0.0.29/plexora/ai/bench_qc.py +809 -0
  18. plexora-0.0.29/plexora/ai/delegation.py +293 -0
  19. plexora-0.0.29/plexora/ai/harness/prefix.py +155 -0
  20. plexora-0.0.29/plexora/ai/knowledge/markers.yaml +553 -0
  21. plexora-0.0.29/plexora/ai/qc_scenes.py +367 -0
  22. plexora-0.0.29/plexora/ai/setup.py +486 -0
  23. plexora-0.0.29/plexora/ai/skill_manifest.yaml +207 -0
  24. plexora-0.0.29/plexora/ai/skills/analysis-handoff/SKILL.md +108 -0
  25. plexora-0.0.29/plexora/ai/skills/dataset-triage/SKILL.md +82 -0
  26. plexora-0.0.29/plexora/ai/skills/gate-image/SKILL.md +91 -0
  27. plexora-0.0.29/plexora/ai/skills/gate-packets/SKILL.md +62 -0
  28. plexora-0.0.29/plexora/ai/skills/gate-review/SKILL.md +176 -0
  29. plexora-0.0.29/plexora/ai/skills/gating/dataset.md +109 -0
  30. plexora-0.0.29/plexora/ai/skills/gating/decisions.md +85 -0
  31. plexora-0.0.29/plexora/ai/skills/gating/qc-cells.md +37 -0
  32. plexora-0.0.29/plexora/ai/skills/gating/setup.md +80 -0
  33. plexora-0.0.29/plexora/ai/skills/gating/visual-gating.md +113 -0
  34. plexora-0.0.29/plexora/ai/skills/marker-qc/SKILL.md +67 -0
  35. plexora-0.0.29/plexora/ai/skills/qc-checks/SKILL.md +203 -0
  36. plexora-0.0.29/plexora/ai/skills/qc-image/SKILL.md +368 -0
  37. plexora-0.0.29/plexora/ai/skills/qc-packets/SKILL.md +75 -0
  38. plexora-0.0.29/plexora/ai/skills/qc-visual-artifacts/SKILL.md +167 -0
  39. plexora-0.0.29/plexora/ai/skills/review-objects/SKILL.md +82 -0
  40. plexora-0.0.29/plexora/ai/skills/review-qc/SKILL.md +131 -0
  41. plexora-0.0.29/plexora/ai/skills/surface-rendering/SKILL.md +113 -0
  42. plexora-0.0.29/plexora/ai/skills/video-storyboard/SKILL.md +96 -0
  43. plexora-0.0.29/plexora/ai/skills/visual-inspection/SKILL.md +80 -0
  44. plexora-0.0.29/plexora/ai/skills/volume-triage/SKILL.md +128 -0
  45. plexora-0.0.29/plexora/ai/skills.py +508 -0
  46. plexora-0.0.29/plexora/ai/tasks.yaml +192 -0
  47. plexora-0.0.29/plexora/api/plugin.py +1022 -0
  48. plexora-0.0.29/plexora/client/src/css/explorer.css +1451 -0
  49. plexora-0.0.29/plexora/client/src/css/main.css +10005 -0
  50. plexora-0.0.29/plexora/client/src/css/quickView.css +1436 -0
  51. plexora-0.0.29/plexora/client/src/css/settings.css +1538 -0
  52. plexora-0.0.29/plexora/client/src/css/tokens.css +65 -0
  53. plexora-0.0.29/plexora/client/src/css/viewer.css +6898 -0
  54. plexora-0.0.29/plexora/client/src/js/main.js +2481 -0
  55. plexora-0.0.29/plexora/client/src/js/services/agentBridge.js +2582 -0
  56. plexora-0.0.29/plexora/client/src/js/services/bookmarks.js +383 -0
  57. plexora-0.0.29/plexora/client/src/js/services/browsePicker.js +816 -0
  58. plexora-0.0.29/plexora/client/src/js/services/canvasLayout.js +814 -0
  59. plexora-0.0.29/plexora/client/src/js/services/connectionModal.js +3192 -0
  60. plexora-0.0.29/plexora/client/src/js/services/dataLocation.js +964 -0
  61. plexora-0.0.29/plexora/client/src/js/services/desktopBridge.js +446 -0
  62. plexora-0.0.29/plexora/client/src/js/services/explorer/explorerCrumbs.js +321 -0
  63. plexora-0.0.29/plexora/client/src/js/services/explorer/explorerListing.js +918 -0
  64. plexora-0.0.29/plexora/client/src/js/services/explorer/explorerSidebar.js +312 -0
  65. plexora-0.0.29/plexora/client/src/js/services/explorer/explorerTypes.js +442 -0
  66. plexora-0.0.29/plexora/client/src/js/services/explorer/fileExplorer.js +1609 -0
  67. plexora-0.0.29/plexora/client/src/js/services/explorer/floatingWindow.js +577 -0
  68. plexora-0.0.29/plexora/client/src/js/services/fileLocation.js +721 -0
  69. plexora-0.0.29/plexora/client/src/js/services/inspectGeometry.js +427 -0
  70. plexora-0.0.29/plexora/client/src/js/services/inspectState.js +376 -0
  71. plexora-0.0.29/plexora/client/src/js/services/maskSurfaces.js +455 -0
  72. plexora-0.0.29/plexora/client/src/js/services/placePicker.js +252 -0
  73. plexora-0.0.29/plexora/client/src/js/services/proFeature.js +174 -0
  74. plexora-0.0.29/plexora/client/src/js/services/remoteGlobe.js +757 -0
  75. plexora-0.0.29/plexora/client/src/js/services/remoteState.js +720 -0
  76. plexora-0.0.29/plexora/client/src/js/services/resourceStatus.js +583 -0
  77. plexora-0.0.29/plexora/client/src/js/services/surfaceLayers.js +717 -0
  78. plexora-0.0.29/plexora/client/src/js/services/tooltip.js +215 -0
  79. plexora-0.0.29/plexora/client/src/js/services/viewControls.js +479 -0
  80. plexora-0.0.29/plexora/client/src/js/services/viewHistory.js +197 -0
  81. plexora-0.0.29/plexora/client/src/js/services/viewRaster.js +138 -0
  82. plexora-0.0.29/plexora/client/src/js/services/viewState.js +1121 -0
  83. plexora-0.0.29/plexora/client/src/js/services/viewerPrefs.js +327 -0
  84. plexora-0.0.29/plexora/client/src/js/services/viewerScene.js +439 -0
  85. plexora-0.0.29/plexora/client/src/js/views/agentPanel.js +1977 -0
  86. plexora-0.0.29/plexora/client/src/js/views/areaTool.js +373 -0
  87. plexora-0.0.29/plexora/client/src/js/views/backButton.js +111 -0
  88. plexora-0.0.29/plexora/client/src/js/views/bookmarkTray.js +601 -0
  89. plexora-0.0.29/plexora/client/src/js/views/channelNamesUpload.js +932 -0
  90. plexora-0.0.29/plexora/client/src/js/views/datasetNav.js +332 -0
  91. plexora-0.0.29/plexora/client/src/js/views/depthSettings.js +724 -0
  92. plexora-0.0.29/plexora/client/src/js/views/depthStrip.js +791 -0
  93. plexora-0.0.29/plexora/client/src/js/views/depthTools.js +573 -0
  94. plexora-0.0.29/plexora/client/src/js/views/fileSourceRow.js +484 -0
  95. plexora-0.0.29/plexora/client/src/js/views/helpMenu.js +247 -0
  96. plexora-0.0.29/plexora/client/src/js/views/importHelp.js +625 -0
  97. plexora-0.0.29/plexora/client/src/js/views/importSample.js +3445 -0
  98. plexora-0.0.29/plexora/client/src/js/views/locators.js +102 -0
  99. plexora-0.0.29/plexora/client/src/js/views/miniMap.js +1274 -0
  100. plexora-0.0.29/plexora/client/src/js/views/orientationGizmo.js +224 -0
  101. plexora-0.0.29/plexora/client/src/js/views/quickViewLanding.js +924 -0
  102. plexora-0.0.29/plexora/client/src/js/views/sectionPanes.js +1845 -0
  103. plexora-0.0.29/plexora/client/src/js/views/settingsPage.js +2502 -0
  104. plexora-0.0.29/plexora/client/src/js/views/surfaceCard.js +344 -0
  105. plexora-0.0.29/plexora/client/src/js/views/surfaceInspect.js +236 -0
  106. plexora-0.0.29/plexora/client/src/js/views/surfaceRenderer.js +1334 -0
  107. plexora-0.0.29/plexora/client/src/js/views/surfaceStudio.js +782 -0
  108. plexora-0.0.29/plexora/client/src/js/views/toolLoader.js +1483 -0
  109. plexora-0.0.29/plexora/client/src/js/views/viewerControls.js +1230 -0
  110. plexora-0.0.29/plexora/client/src/js/views/volumeAtlas.js +922 -0
  111. plexora-0.0.29/plexora/client/src/js/views/volumeDock.js +622 -0
  112. plexora-0.0.29/plexora/client/src/js/views/volumeHandles.js +639 -0
  113. plexora-0.0.29/plexora/client/src/js/views/volumeRenderer.js +3792 -0
  114. plexora-0.0.29/plexora/client/templates/base.html +595 -0
  115. plexora-0.0.29/plexora/client/templates/index.html +831 -0
  116. plexora-0.0.29/plexora/client/templates/settings.html +803 -0
  117. plexora-0.0.29/plexora/connect.py +3380 -0
  118. plexora-0.0.29/plexora/datasource.py +1950 -0
  119. plexora-0.0.29/plexora/licensing/__init__.py +101 -0
  120. plexora-0.0.29/plexora/licensing/cli.py +381 -0
  121. plexora-0.0.29/plexora/licensing/guards.py +273 -0
  122. plexora-0.0.29/plexora/licensing/manifest.py +332 -0
  123. plexora-0.0.29/plexora/licensing/tokens.py +155 -0
  124. plexora-0.0.29/plexora/links.py +41 -0
  125. plexora-0.0.29/plexora/mcp/profiles.py +177 -0
  126. plexora-0.0.29/plexora/mcp/prompts.py +134 -0
  127. plexora-0.0.29/plexora/mcp/server.py +664 -0
  128. plexora-0.0.29/plexora/mcp/tools.py +212 -0
  129. plexora-0.0.29/plexora/memory.py +973 -0
  130. plexora-0.0.29/plexora/nodes.py +1381 -0
  131. plexora-0.0.29/plexora/paths.py +982 -0
  132. plexora-0.0.29/plexora/plugins/figure_builder/__init__.py +184 -0
  133. plexora-0.0.29/plexora/plugins/figure_builder/server/captures.py +581 -0
  134. plexora-0.0.29/plexora/plugins/figure_builder/server/export.py +1176 -0
  135. plexora-0.0.29/plexora/plugins/figure_builder/server/pixels.py +283 -0
  136. plexora-0.0.29/plexora/plugins/figure_builder/server/routes.py +799 -0
  137. plexora-0.0.29/plexora/plugins/figure_builder/server/sources.py +135 -0
  138. plexora-0.0.29/plexora/plugins/figure_builder/static/figureBookmarkStore.js +104 -0
  139. plexora-0.0.29/plexora/plugins/figure_builder/static/figureBuilderApi.js +416 -0
  140. plexora-0.0.29/plexora/plugins/figure_builder/static/figureCaptureBin.js +255 -0
  141. plexora-0.0.29/plexora/plugins/figure_builder/static/figureCaptureBinGrid.js +465 -0
  142. plexora-0.0.29/plexora/plugins/figure_builder/static/figureCaptureDock.js +837 -0
  143. plexora-0.0.29/plexora/plugins/figure_builder/static/figureCaptureTool.js +1146 -0
  144. plexora-0.0.29/plexora/plugins/figure_builder/static/figureQuickEdit.js +1441 -0
  145. plexora-0.0.29/plexora/plugins/figure_builder/static/figureSceneSnapshot.js +385 -0
  146. plexora-0.0.29/plexora/plugins/figure_builder/static/figureSidebarController.js +1248 -0
  147. plexora-0.0.29/plexora/plugins/figure_builder/static/figureWorkspace.js +2815 -0
  148. plexora-0.0.29/plexora/plugins/figure_builder/static/figure_builder.css +6253 -0
  149. plexora-0.0.29/plexora/plugins/figure_builder/templates/figure_builder/captures.html +45 -0
  150. plexora-0.0.29/plexora/plugins/figure_builder/templates/figure_builder/workspace.html +37 -0
  151. plexora-0.0.29/plexora/plugins/figure_builder/templates/figure_builder/workspace_body.html +577 -0
  152. plexora-0.0.29/plexora/plugins/gating/__init__.py +96 -0
  153. plexora-0.0.29/plexora/plugins/gating/capabilities_session.py +2457 -0
  154. plexora-0.0.29/plexora/plugins/gating/server/autogate/answers.py +266 -0
  155. plexora-0.0.29/plexora/plugins/gating/server/autogate/bulk.py +429 -0
  156. plexora-0.0.29/plexora/plugins/gating/server/autogate/context.py +367 -0
  157. plexora-0.0.29/plexora/plugins/gating/server/autogate/engine.py +1885 -0
  158. plexora-0.0.29/plexora/plugins/gating/server/autogate/hypotheses/__init__.py +771 -0
  159. plexora-0.0.29/plexora/plugins/gating/server/autogate/hypotheses/calibration.py +165 -0
  160. plexora-0.0.29/plexora/plugins/gating/server/autogate/hypotheses/candidates.py +109 -0
  161. plexora-0.0.29/plexora/plugins/gating/server/autogate/hypotheses/classifier_check.py +199 -0
  162. plexora-0.0.29/plexora/plugins/gating/server/autogate/hypotheses/controller.py +631 -0
  163. plexora-0.0.29/plexora/plugins/gating/server/autogate/hypotheses/evidence.py +593 -0
  164. plexora-0.0.29/plexora/plugins/gating/server/autogate/hypotheses/panel.py +153 -0
  165. plexora-0.0.29/plexora/plugins/gating/server/autogate/packets.py +1733 -0
  166. plexora-0.0.29/plexora/plugins/gating/server/autogate/provenance.py +15 -0
  167. plexora-0.0.29/plexora/plugins/gating/server/autogate/regression.py +163 -0
  168. plexora-0.0.29/plexora/plugins/gating/server/autogate/schemas.py +397 -0
  169. plexora-0.0.29/plexora/plugins/gating/server/autogate/tableops.py +207 -0
  170. plexora-0.0.29/plexora/plugins/gating/server/autogate/transfer.py +262 -0
  171. plexora-0.0.29/plexora/plugins/gating/server/autogate/transitions.py +1084 -0
  172. plexora-0.0.29/plexora/plugins/gating/server/autogate/views.py +186 -0
  173. plexora-0.0.29/plexora/plugins/gating/server/classifier/geometry.py +60 -0
  174. plexora-0.0.29/plexora/plugins/gating/server/mixture.py +105 -0
  175. plexora-0.0.29/plexora/plugins/gating/static/gating.css +1290 -0
  176. plexora-0.0.29/plexora/plugins/gating/static/gatingSidebarController.js +1959 -0
  177. plexora-0.0.29/plexora/plugins/gating/templates/gating/panel.html +313 -0
  178. plexora-0.0.29/plexora/plugins/qc/__init__.py +93 -0
  179. plexora-0.0.29/plexora/plugins/qc/capabilities.py +1512 -0
  180. plexora-0.0.29/plexora/plugins/qc/capabilities_checks.py +1650 -0
  181. plexora-0.0.29/plexora/plugins/qc/capabilities_segment.py +837 -0
  182. plexora-0.0.29/plexora/plugins/qc/capabilities_visual.py +156 -0
  183. plexora-0.0.29/plexora/plugins/qc/server/artifacts.py +2440 -0
  184. plexora-0.0.29/plexora/plugins/qc/server/region_write.py +202 -0
  185. plexora-0.0.29/plexora/plugins/qc/server/results.py +429 -0
  186. plexora-0.0.29/plexora/plugins/qc/server/routes.py +963 -0
  187. plexora-0.0.29/plexora/plugins/roi/__init__.py +118 -0
  188. plexora-0.0.29/plexora/plugins/roi/server/routes.py +483 -0
  189. plexora-0.0.29/plexora/plugins/roi/static/roiTools.js +1760 -0
  190. plexora-0.0.29/plexora/plugins/roi/static/roiTree.js +912 -0
  191. plexora-0.0.29/plexora/plugins/transcripts/__init__.py +113 -0
  192. plexora-0.0.29/plexora/plugins/video_studio/__init__.py +113 -0
  193. plexora-0.0.29/plexora/plugins/video_studio/capabilities.py +438 -0
  194. plexora-0.0.29/plexora/plugins/video_studio/static/videoSceneState.js +488 -0
  195. plexora-0.0.29/plexora/plugins/video_studio/static/videoTracking.js +100 -0
  196. plexora-0.0.29/plexora/plugins/video_studio/static/videoViewerState.js +193 -0
  197. plexora-0.0.29/plexora/plugins/visium_hd/__init__.py +73 -0
  198. plexora-0.0.29/plexora/server/models/data_migration.py +316 -0
  199. plexora-0.0.29/plexora/server/models/data_model.py +5855 -0
  200. plexora-0.0.29/plexora/server/models/import_proposal.py +4376 -0
  201. plexora-0.0.29/plexora/server/models/recipes.py +1241 -0
  202. plexora-0.0.29/plexora/server/models/remote_sessions.py +1409 -0
  203. plexora-0.0.29/plexora/server/models/remote_sources.py +636 -0
  204. plexora-0.0.29/plexora/server/models/remotes.py +441 -0
  205. plexora-0.0.29/plexora/server/node/api.py +3161 -0
  206. plexora-0.0.29/plexora/server/plugins.py +335 -0
  207. plexora-0.0.29/plexora/server/providers/base.py +435 -0
  208. plexora-0.0.29/plexora/server/providers/node.py +1345 -0
  209. plexora-0.0.29/plexora/server/providers/remote.py +286 -0
  210. plexora-0.0.29/plexora/server/providers/wire.py +138 -0
  211. plexora-0.0.29/plexora/server/routes/agent_routes.py +384 -0
  212. plexora-0.0.29/plexora/server/routes/ai_chat_routes.py +199 -0
  213. plexora-0.0.29/plexora/server/routes/browse_routes.py +792 -0
  214. plexora-0.0.29/plexora/server/routes/data_routes.py +1650 -0
  215. plexora-0.0.29/plexora/server/routes/desktop_routes.py +205 -0
  216. plexora-0.0.29/plexora/server/routes/import_routes.py +1158 -0
  217. plexora-0.0.29/plexora/server/routes/license_routes.py +238 -0
  218. plexora-0.0.29/plexora/server/routes/page_routes.py +706 -0
  219. plexora-0.0.29/plexora/server/routes/settings_routes.py +1419 -0
  220. plexora-0.0.29/plexora/server/routes/surface_routes.py +668 -0
  221. plexora-0.0.29/plexora/server/routes/tool_routes.py +578 -0
  222. plexora-0.0.29/plexora/server/routes/transfer_routes.py +259 -0
  223. plexora-0.0.29/plexora/server/routes/volume_routes.py +1303 -0
  224. plexora-0.0.29/plexora/server/utils/dataset_marks.py +192 -0
  225. plexora-0.0.29/plexora/server/utils/dir_listing.py +351 -0
  226. plexora-0.0.29/plexora/server/utils/dir_search.py +185 -0
  227. plexora-0.0.29/plexora/server/utils/fs_places.py +994 -0
  228. plexora-0.0.29/plexora/server/utils/remote_image.py +121 -0
  229. plexora-0.0.29/plexora/server/utils/remote_store.py +2668 -0
  230. plexora-0.0.29/plexora/server/utils/segmentation_pyramid.py +1468 -0
  231. plexora-0.0.29/plexora/server/utils/sftp.py +997 -0
  232. plexora-0.0.29/plexora/server/utils/tiff_region.py +521 -0
  233. plexora-0.0.29/plexora/server/volume/labels.py +523 -0
  234. plexora-0.0.29/plexora/server/volume/sources/__init__.py +96 -0
  235. plexora-0.0.29/plexora/server/volume/sources/ims.py +1191 -0
  236. plexora-0.0.29/plexora/server/volume/sources/ims_index.py +380 -0
  237. plexora-0.0.29/plexora/telemetry/client.py +636 -0
  238. plexora-0.0.29/plexora/telemetry/config.py +200 -0
  239. plexora-0.0.29/plexora/telemetry/schema.py +763 -0
  240. plexora-0.0.29/plexora/updates.py +572 -0
  241. plexora-0.0.29/plexora.egg-info/PKG-INFO +241 -0
  242. plexora-0.0.29/plexora.egg-info/SOURCES.txt +1391 -0
  243. plexora-0.0.29/plexora.egg-info/requires.txt +78 -0
  244. plexora-0.0.29/pyproject.toml +307 -0
  245. plexora-0.0.29/setup.cfg +4 -0
  246. plexora-0.0.29/tests/test_agent_cell_gallery.py +150 -0
  247. plexora-0.0.29/tests/test_agent_gate_panel.py +110 -0
  248. plexora-0.0.29/tests/test_agent_http_capabilities.py +247 -0
  249. plexora-0.0.29/tests/test_agent_report.py +113 -0
  250. plexora-0.0.29/tests/test_agent_scope.py +120 -0
  251. plexora-0.0.29/tests/test_agent_vertical_slice.py +103 -0
  252. plexora-0.0.29/tests/test_agent_viewer_api.py +484 -0
  253. plexora-0.0.29/tests/test_agent_volume.py +348 -0
  254. plexora-0.0.29/tests/test_ai_bench.py +40 -0
  255. plexora-0.0.29/tests/test_ai_chat.py +813 -0
  256. plexora-0.0.29/tests/test_ai_context.py +355 -0
  257. plexora-0.0.29/tests/test_ai_harness.py +973 -0
  258. plexora-0.0.29/tests/test_ai_harness_qc.py +246 -0
  259. plexora-0.0.29/tests/test_ai_models_mcp.py +303 -0
  260. plexora-0.0.29/tests/test_ai_parallel_markers.py +496 -0
  261. plexora-0.0.29/tests/test_ai_route_bench.py +153 -0
  262. plexora-0.0.29/tests/test_ai_routes.py +272 -0
  263. plexora-0.0.29/tests/test_ai_skills.py +167 -0
  264. plexora-0.0.29/tests/test_ai_tasks.py +111 -0
  265. plexora-0.0.29/tests/test_autogate_units.py +2023 -0
  266. plexora-0.0.29/tests/test_bench_run_arms.py +302 -0
  267. plexora-0.0.29/tests/test_bookmarks.py +65 -0
  268. plexora-0.0.29/tests/test_bridge_mcp.py +191 -0
  269. plexora-0.0.29/tests/test_browse_routes.py +1187 -0
  270. plexora-0.0.29/tests/test_cell_mode_control.py +466 -0
  271. plexora-0.0.29/tests/test_desktop_bridge.py +72 -0
  272. plexora-0.0.29/tests/test_desktop_menu.py +79 -0
  273. plexora-0.0.29/tests/test_dir_listing.py +399 -0
  274. plexora-0.0.29/tests/test_dir_search.py +172 -0
  275. plexora-0.0.29/tests/test_docs_links.py +66 -0
  276. plexora-0.0.29/tests/test_file_explorer.py +738 -0
  277. plexora-0.0.29/tests/test_file_location.py +232 -0
  278. plexora-0.0.29/tests/test_files_server.py +359 -0
  279. plexora-0.0.29/tests/test_fs_places.py +726 -0
  280. plexora-0.0.29/tests/test_gating_3d.py +38 -0
  281. plexora-0.0.29/tests/test_gating_candidates.py +408 -0
  282. plexora-0.0.29/tests/test_gating_channel_match.py +288 -0
  283. plexora-0.0.29/tests/test_gating_classifier_layer.py +444 -0
  284. plexora-0.0.29/tests/test_gating_delta.py +232 -0
  285. plexora-0.0.29/tests/test_gating_experience.py +114 -0
  286. plexora-0.0.29/tests/test_gating_hypotheses.py +1225 -0
  287. plexora-0.0.29/tests/test_gating_limits.py +483 -0
  288. plexora-0.0.29/tests/test_gating_panel_replay.py +138 -0
  289. plexora-0.0.29/tests/test_gating_session.py +1905 -0
  290. plexora-0.0.29/tests/test_gating_tiles.py +224 -0
  291. plexora-0.0.29/tests/test_hd_default.py +55 -0
  292. plexora-0.0.29/tests/test_home_landing.py +341 -0
  293. plexora-0.0.29/tests/test_import_dialog.py +526 -0
  294. plexora-0.0.29/tests/test_import_proposal.py +912 -0
  295. plexora-0.0.29/tests/test_import_sample_association.py +393 -0
  296. plexora-0.0.29/tests/test_import_sample_routes.py +433 -0
  297. plexora-0.0.29/tests/test_ims_index.py +266 -0
  298. plexora-0.0.29/tests/test_ims_masks.py +291 -0
  299. plexora-0.0.29/tests/test_license_js.py +76 -0
  300. plexora-0.0.29/tests/test_license_routes.py +231 -0
  301. plexora-0.0.29/tests/test_license_transcriptomics.py +328 -0
  302. plexora-0.0.29/tests/test_license_visibility.py +133 -0
  303. plexora-0.0.29/tests/test_license_volume.py +205 -0
  304. plexora-0.0.29/tests/test_licensing_cli.py +226 -0
  305. plexora-0.0.29/tests/test_licensing_enforcement.py +512 -0
  306. plexora-0.0.29/tests/test_licensing_hardening.py +423 -0
  307. plexora-0.0.29/tests/test_licensing_hpc.py +121 -0
  308. plexora-0.0.29/tests/test_licensing_manifest.py +163 -0
  309. plexora-0.0.29/tests/test_licensing_plugins.py +179 -0
  310. plexora-0.0.29/tests/test_mask_formats.py +378 -0
  311. plexora-0.0.29/tests/test_mcp_gating.py +114 -0
  312. plexora-0.0.29/tests/test_mcp_link.py +307 -0
  313. plexora-0.0.29/tests/test_mcp_qc.py +58 -0
  314. plexora-0.0.29/tests/test_mcp_server.py +137 -0
  315. plexora-0.0.29/tests/test_mini_map.py +494 -0
  316. plexora-0.0.29/tests/test_nearest_cell_3d.py +99 -0
  317. plexora-0.0.29/tests/test_node_dynamic.py +1165 -0
  318. plexora-0.0.29/tests/test_parquet_tables.py +449 -0
  319. plexora-0.0.29/tests/test_path_drop.py +81 -0
  320. plexora-0.0.29/tests/test_physical_coordinates.py +166 -0
  321. plexora-0.0.29/tests/test_plane_cells_route.py +126 -0
  322. plexora-0.0.29/tests/test_plugin_boundary.py +693 -0
  323. plexora-0.0.29/tests/test_plugins.py +665 -0
  324. plexora-0.0.29/tests/test_pricing_sync.py +363 -0
  325. plexora-0.0.29/tests/test_qc_bench.py +84 -0
  326. plexora-0.0.29/tests/test_qc_bulk_timing.py +140 -0
  327. plexora-0.0.29/tests/test_qc_check_sampling.py +514 -0
  328. plexora-0.0.29/tests/test_qc_consolidate.py +100 -0
  329. plexora-0.0.29/tests/test_qc_cycle_rule.py +128 -0
  330. plexora-0.0.29/tests/test_qc_mirror.py +130 -0
  331. plexora-0.0.29/tests/test_qc_payload_trim.py +437 -0
  332. plexora-0.0.29/tests/test_qc_refine_tool.py +121 -0
  333. plexora-0.0.29/tests/test_qc_registration_report.py +106 -0
  334. plexora-0.0.29/tests/test_qc_results.py +246 -0
  335. plexora-0.0.29/tests/test_qc_rework.py +726 -0
  336. plexora-0.0.29/tests/test_qc_segment_tool.py +182 -0
  337. plexora-0.0.29/tests/test_qc_session.py +690 -0
  338. plexora-0.0.29/tests/test_qc_session_checks.py +257 -0
  339. plexora-0.0.29/tests/test_qc_session_refine.py +199 -0
  340. plexora-0.0.29/tests/test_qc_stack.py +199 -0
  341. plexora-0.0.29/tests/test_qc_tool_surface.py +216 -0
  342. plexora-0.0.29/tests/test_qc_visual_session.py +176 -0
  343. plexora-0.0.29/tests/test_qc_visual_tools.py +444 -0
  344. plexora-0.0.29/tests/test_recipes.py +991 -0
  345. plexora-0.0.29/tests/test_remote_globe.py +292 -0
  346. plexora-0.0.29/tests/test_remote_ims.py +230 -0
  347. plexora-0.0.29/tests/test_roi_cell_regions.py +119 -0
  348. plexora-0.0.29/tests/test_segmentation_3d.py +151 -0
  349. plexora-0.0.29/tests/test_settings_webdata_page.py +149 -0
  350. plexora-0.0.29/tests/test_sftp.py +275 -0
  351. plexora-0.0.29/tests/test_surface_layer.py +330 -0
  352. plexora-0.0.29/tests/test_surface_phase2.py +212 -0
  353. plexora-0.0.29/tests/test_telemetry_uploader.py +236 -0
  354. plexora-0.0.29/tests/test_tooltip.py +68 -0
  355. plexora-0.0.29/tests/test_view_state_client.py +245 -0
  356. plexora-0.0.29/tests/test_viewer_3d_client.py +154 -0
  357. plexora-0.0.29/tests/test_vision_sam_real.py +112 -0
  358. plexora-0.0.29/tests/test_visium_hd_import.py +306 -0
  359. plexora-0.0.29/tests/test_visium_import.py +336 -0
  360. plexora-0.0.29/tests/test_vocabulary_learned.py +161 -0
  361. plexora-0.0.29/tests/test_volume_backend.py +769 -0
  362. plexora-0.0.29/tests/test_volume_chunk_cache.py +201 -0
  363. plexora-0.0.29/tests/test_volume_depth_levels.py +570 -0
  364. plexora-0.0.29/tests/test_volume_fluid_planes.py +392 -0
  365. plexora-0.0.29/tests/test_volume_objects_route.py +96 -0
  366. plexora-0.0.29/tests/test_volume_propagate.py +209 -0
  367. plexora-0.0.29/tests/test_volume_routes.py +516 -0
  368. plexora-0.0.29/tests/test_volume_time_series.py +224 -0
  369. plexora-0.0.28/LICENSE +0 -207
  370. plexora-0.0.28/PKG-INFO +0 -225
  371. plexora-0.0.28/README.md +0 -148
  372. plexora-0.0.28/plexora/__init__.py +0 -508
  373. plexora-0.0.28/plexora/agent/bridge_provider.py +0 -460
  374. plexora-0.0.28/plexora/agent/core/__init__.py +0 -26
  375. plexora-0.0.28/plexora/agent/core/surface.py +0 -565
  376. plexora-0.0.28/plexora/agent/core/viewer.py +0 -725
  377. plexora-0.0.28/plexora/agent/core/volume.py +0 -877
  378. plexora-0.0.28/plexora/agent/errors.py +0 -147
  379. plexora-0.0.28/plexora/agent/evidence/collage.py +0 -628
  380. plexora-0.0.28/plexora/agent/policy.py +0 -343
  381. plexora-0.0.28/plexora/agent/registry.py +0 -445
  382. plexora-0.0.28/plexora/agent/tokens.py +0 -169
  383. plexora-0.0.28/plexora/ai/bench.py +0 -1158
  384. plexora-0.0.28/plexora/ai/bench_data.py +0 -448
  385. plexora-0.0.28/plexora/ai/bench_qc.py +0 -809
  386. plexora-0.0.28/plexora/ai/delegation.py +0 -292
  387. plexora-0.0.28/plexora/ai/harness/prefix.py +0 -155
  388. plexora-0.0.28/plexora/ai/knowledge/markers.yaml +0 -549
  389. plexora-0.0.28/plexora/ai/qc_scenes.py +0 -275
  390. plexora-0.0.28/plexora/ai/setup.py +0 -485
  391. plexora-0.0.28/plexora/ai/skill_manifest.yaml +0 -178
  392. plexora-0.0.28/plexora/ai/skills/analysis-handoff/SKILL.md +0 -110
  393. plexora-0.0.28/plexora/ai/skills/dataset-triage/SKILL.md +0 -83
  394. plexora-0.0.28/plexora/ai/skills/diagnose-marker/SKILL.md +0 -102
  395. plexora-0.0.28/plexora/ai/skills/gate-dataset/SKILL.md +0 -119
  396. plexora-0.0.28/plexora/ai/skills/gate-image/SKILL.md +0 -227
  397. plexora-0.0.28/plexora/ai/skills/gate-packets/SKILL.md +0 -132
  398. plexora-0.0.28/plexora/ai/skills/marker-qc/SKILL.md +0 -68
  399. plexora-0.0.28/plexora/ai/skills/qc-checks/SKILL.md +0 -209
  400. plexora-0.0.28/plexora/ai/skills/qc-image/SKILL.md +0 -371
  401. plexora-0.0.28/plexora/ai/skills/qc-packets/SKILL.md +0 -75
  402. plexora-0.0.28/plexora/ai/skills/qc-visual-artifacts/SKILL.md +0 -168
  403. plexora-0.0.28/plexora/ai/skills/review-gating/SKILL.md +0 -113
  404. plexora-0.0.28/plexora/ai/skills/review-objects/SKILL.md +0 -82
  405. plexora-0.0.28/plexora/ai/skills/review-qc/SKILL.md +0 -138
  406. plexora-0.0.28/plexora/ai/skills/surface-rendering/SKILL.md +0 -115
  407. plexora-0.0.28/plexora/ai/skills/video-storyboard/SKILL.md +0 -97
  408. plexora-0.0.28/plexora/ai/skills/visual-gating/SKILL.md +0 -119
  409. plexora-0.0.28/plexora/ai/skills/visual-inspection/SKILL.md +0 -80
  410. plexora-0.0.28/plexora/ai/skills/volume-triage/SKILL.md +0 -131
  411. plexora-0.0.28/plexora/ai/skills.py +0 -309
  412. plexora-0.0.28/plexora/ai/tasks.yaml +0 -189
  413. plexora-0.0.28/plexora/api/plugin.py +0 -1014
  414. plexora-0.0.28/plexora/client/src/css/main.css +0 -10378
  415. plexora-0.0.28/plexora/client/src/css/quickView.css +0 -1412
  416. plexora-0.0.28/plexora/client/src/css/settings.css +0 -1514
  417. plexora-0.0.28/plexora/client/src/css/tokens.css +0 -73
  418. plexora-0.0.28/plexora/client/src/css/viewer.css +0 -6157
  419. plexora-0.0.28/plexora/client/src/js/main.js +0 -2427
  420. plexora-0.0.28/plexora/client/src/js/services/agentBridge.js +0 -2568
  421. plexora-0.0.28/plexora/client/src/js/services/browsePicker.js +0 -558
  422. plexora-0.0.28/plexora/client/src/js/services/canvasLayout.js +0 -442
  423. plexora-0.0.28/plexora/client/src/js/services/connectionModal.js +0 -3170
  424. plexora-0.0.28/plexora/client/src/js/services/dataLocation.js +0 -792
  425. plexora-0.0.28/plexora/client/src/js/services/desktopBridge.js +0 -385
  426. plexora-0.0.28/plexora/client/src/js/services/fileLocation.js +0 -721
  427. plexora-0.0.28/plexora/client/src/js/services/inspectGeometry.js +0 -350
  428. plexora-0.0.28/plexora/client/src/js/services/inspectState.js +0 -277
  429. plexora-0.0.28/plexora/client/src/js/services/maskSurfaces.js +0 -455
  430. plexora-0.0.28/plexora/client/src/js/services/paidFeature.js +0 -156
  431. plexora-0.0.28/plexora/client/src/js/services/pathPicker.js +0 -989
  432. plexora-0.0.28/plexora/client/src/js/services/placePicker.js +0 -244
  433. plexora-0.0.28/plexora/client/src/js/services/remoteGlobe.js +0 -752
  434. plexora-0.0.28/plexora/client/src/js/services/remoteState.js +0 -709
  435. plexora-0.0.28/plexora/client/src/js/services/resourceStatus.js +0 -577
  436. plexora-0.0.28/plexora/client/src/js/services/surfaceLayers.js +0 -698
  437. plexora-0.0.28/plexora/client/src/js/services/viewControls.js +0 -436
  438. plexora-0.0.28/plexora/client/src/js/services/viewState.js +0 -1015
  439. plexora-0.0.28/plexora/client/src/js/services/viewerPrefs.js +0 -301
  440. plexora-0.0.28/plexora/client/src/js/services/viewerScene.js +0 -414
  441. plexora-0.0.28/plexora/client/src/js/views/agentPanel.js +0 -1977
  442. plexora-0.0.28/plexora/client/src/js/views/channelNamesUpload.js +0 -929
  443. plexora-0.0.28/plexora/client/src/js/views/datasetNav.js +0 -329
  444. plexora-0.0.28/plexora/client/src/js/views/depthSettings.js +0 -701
  445. plexora-0.0.28/plexora/client/src/js/views/depthStrip.js +0 -751
  446. plexora-0.0.28/plexora/client/src/js/views/depthTools.js +0 -564
  447. plexora-0.0.28/plexora/client/src/js/views/fileSourceRow.js +0 -469
  448. plexora-0.0.28/plexora/client/src/js/views/helpMenu.js +0 -247
  449. plexora-0.0.28/plexora/client/src/js/views/importHelp.js +0 -625
  450. plexora-0.0.28/plexora/client/src/js/views/importSample.js +0 -3383
  451. plexora-0.0.28/plexora/client/src/js/views/locators.js +0 -76
  452. plexora-0.0.28/plexora/client/src/js/views/miniMap.js +0 -1084
  453. plexora-0.0.28/plexora/client/src/js/views/orientationGizmo.js +0 -147
  454. plexora-0.0.28/plexora/client/src/js/views/quickViewLanding.js +0 -875
  455. plexora-0.0.28/plexora/client/src/js/views/sectionPanes.js +0 -1790
  456. plexora-0.0.28/plexora/client/src/js/views/settingsPage.js +0 -2427
  457. plexora-0.0.28/plexora/client/src/js/views/surfaceCard.js +0 -344
  458. plexora-0.0.28/plexora/client/src/js/views/surfaceInspect.js +0 -236
  459. plexora-0.0.28/plexora/client/src/js/views/surfaceRenderer.js +0 -1340
  460. plexora-0.0.28/plexora/client/src/js/views/surfaceStudio.js +0 -782
  461. plexora-0.0.28/plexora/client/src/js/views/toolLoader.js +0 -1483
  462. plexora-0.0.28/plexora/client/src/js/views/viewerControls.js +0 -1230
  463. plexora-0.0.28/plexora/client/src/js/views/volumeAtlas.js +0 -834
  464. plexora-0.0.28/plexora/client/src/js/views/volumeDock.js +0 -585
  465. plexora-0.0.28/plexora/client/src/js/views/volumeHandles.js +0 -498
  466. plexora-0.0.28/plexora/client/src/js/views/volumeRenderer.js +0 -3066
  467. plexora-0.0.28/plexora/client/templates/base.html +0 -522
  468. plexora-0.0.28/plexora/client/templates/index.html +0 -813
  469. plexora-0.0.28/plexora/client/templates/settings.html +0 -796
  470. plexora-0.0.28/plexora/connect.py +0 -3184
  471. plexora-0.0.28/plexora/datasource.py +0 -1948
  472. plexora-0.0.28/plexora/licensing/__init__.py +0 -98
  473. plexora-0.0.28/plexora/licensing/cli.py +0 -370
  474. plexora-0.0.28/plexora/licensing/guards.py +0 -236
  475. plexora-0.0.28/plexora/licensing/manifest.py +0 -269
  476. plexora-0.0.28/plexora/licensing/tokens.py +0 -155
  477. plexora-0.0.28/plexora/links.py +0 -36
  478. plexora-0.0.28/plexora/mcp/profiles.py +0 -177
  479. plexora-0.0.28/plexora/mcp/prompts.py +0 -131
  480. plexora-0.0.28/plexora/mcp/server.py +0 -659
  481. plexora-0.0.28/plexora/mcp/tools.py +0 -201
  482. plexora-0.0.28/plexora/memory.py +0 -945
  483. plexora-0.0.28/plexora/nodes.py +0 -1269
  484. plexora-0.0.28/plexora/paths.py +0 -923
  485. plexora-0.0.28/plexora/plugins/figure_builder/__init__.py +0 -173
  486. plexora-0.0.28/plexora/plugins/figure_builder/server/captures.py +0 -482
  487. plexora-0.0.28/plexora/plugins/figure_builder/server/export.py +0 -1120
  488. plexora-0.0.28/plexora/plugins/figure_builder/server/pixels.py +0 -261
  489. plexora-0.0.28/plexora/plugins/figure_builder/server/routes.py +0 -754
  490. plexora-0.0.28/plexora/plugins/figure_builder/server/sources.py +0 -122
  491. plexora-0.0.28/plexora/plugins/figure_builder/static/figureBuilderApi.js +0 -337
  492. plexora-0.0.28/plexora/plugins/figure_builder/static/figureCaptureBin.js +0 -246
  493. plexora-0.0.28/plexora/plugins/figure_builder/static/figureCaptureBinGrid.js +0 -310
  494. plexora-0.0.28/plexora/plugins/figure_builder/static/figureCaptureDock.js +0 -617
  495. plexora-0.0.28/plexora/plugins/figure_builder/static/figureCaptureTool.js +0 -1214
  496. plexora-0.0.28/plexora/plugins/figure_builder/static/figureQuickEdit.js +0 -1004
  497. plexora-0.0.28/plexora/plugins/figure_builder/static/figureSceneSnapshot.js +0 -376
  498. plexora-0.0.28/plexora/plugins/figure_builder/static/figureSidebarController.js +0 -1260
  499. plexora-0.0.28/plexora/plugins/figure_builder/static/figureWorkspace.js +0 -2737
  500. plexora-0.0.28/plexora/plugins/figure_builder/static/figure_builder.css +0 -5990
  501. plexora-0.0.28/plexora/plugins/figure_builder/templates/figure_builder/captures.html +0 -45
  502. plexora-0.0.28/plexora/plugins/figure_builder/templates/figure_builder/workspace.html +0 -27
  503. plexora-0.0.28/plexora/plugins/figure_builder/templates/figure_builder/workspace_body.html +0 -558
  504. plexora-0.0.28/plexora/plugins/gating/__init__.py +0 -96
  505. plexora-0.0.28/plexora/plugins/gating/capabilities_session.py +0 -2381
  506. plexora-0.0.28/plexora/plugins/gating/server/autogate/answers.py +0 -244
  507. plexora-0.0.28/plexora/plugins/gating/server/autogate/bulk.py +0 -362
  508. plexora-0.0.28/plexora/plugins/gating/server/autogate/context.py +0 -364
  509. plexora-0.0.28/plexora/plugins/gating/server/autogate/engine.py +0 -1838
  510. plexora-0.0.28/plexora/plugins/gating/server/autogate/packets.py +0 -1643
  511. plexora-0.0.28/plexora/plugins/gating/server/autogate/provenance.py +0 -15
  512. plexora-0.0.28/plexora/plugins/gating/server/autogate/regression.py +0 -157
  513. plexora-0.0.28/plexora/plugins/gating/server/autogate/schemas.py +0 -359
  514. plexora-0.0.28/plexora/plugins/gating/server/autogate/tableops.py +0 -192
  515. plexora-0.0.28/plexora/plugins/gating/server/autogate/transfer.py +0 -259
  516. plexora-0.0.28/plexora/plugins/gating/server/autogate/transitions.py +0 -1069
  517. plexora-0.0.28/plexora/plugins/gating/server/autogate/views.py +0 -180
  518. plexora-0.0.28/plexora/plugins/gating/server/classifier/geometry.py +0 -60
  519. plexora-0.0.28/plexora/plugins/gating/server/mixture.py +0 -105
  520. plexora-0.0.28/plexora/plugins/gating/static/gating.css +0 -1157
  521. plexora-0.0.28/plexora/plugins/gating/static/gatingSidebarController.js +0 -1911
  522. plexora-0.0.28/plexora/plugins/gating/templates/gating/panel.html +0 -309
  523. plexora-0.0.28/plexora/plugins/qc/__init__.py +0 -93
  524. plexora-0.0.28/plexora/plugins/qc/capabilities.py +0 -1512
  525. plexora-0.0.28/plexora/plugins/qc/capabilities_checks.py +0 -1533
  526. plexora-0.0.28/plexora/plugins/qc/capabilities_segment.py +0 -837
  527. plexora-0.0.28/plexora/plugins/qc/capabilities_visual.py +0 -156
  528. plexora-0.0.28/plexora/plugins/qc/server/artifacts.py +0 -2266
  529. plexora-0.0.28/plexora/plugins/qc/server/region_write.py +0 -177
  530. plexora-0.0.28/plexora/plugins/qc/server/results.py +0 -424
  531. plexora-0.0.28/plexora/plugins/qc/server/routes.py +0 -963
  532. plexora-0.0.28/plexora/plugins/roi/__init__.py +0 -118
  533. plexora-0.0.28/plexora/plugins/roi/server/routes.py +0 -483
  534. plexora-0.0.28/plexora/plugins/roi/static/roiTools.js +0 -1760
  535. plexora-0.0.28/plexora/plugins/roi/static/roiTree.js +0 -912
  536. plexora-0.0.28/plexora/plugins/transcripts/__init__.py +0 -113
  537. plexora-0.0.28/plexora/plugins/video_studio/__init__.py +0 -113
  538. plexora-0.0.28/plexora/plugins/video_studio/capabilities.py +0 -437
  539. plexora-0.0.28/plexora/plugins/video_studio/static/videoSceneState.js +0 -479
  540. plexora-0.0.28/plexora/plugins/video_studio/static/videoTracking.js +0 -100
  541. plexora-0.0.28/plexora/plugins/video_studio/static/videoViewerState.js +0 -195
  542. plexora-0.0.28/plexora/plugins/visium_hd/__init__.py +0 -73
  543. plexora-0.0.28/plexora/server/models/data_migration.py +0 -313
  544. plexora-0.0.28/plexora/server/models/data_model.py +0 -5851
  545. plexora-0.0.28/plexora/server/models/import_proposal.py +0 -4298
  546. plexora-0.0.28/plexora/server/models/recipes.py +0 -1150
  547. plexora-0.0.28/plexora/server/models/remote_sessions.py +0 -1367
  548. plexora-0.0.28/plexora/server/models/remote_sources.py +0 -624
  549. plexora-0.0.28/plexora/server/models/remotes.py +0 -416
  550. plexora-0.0.28/plexora/server/node/api.py +0 -3020
  551. plexora-0.0.28/plexora/server/plugins.py +0 -326
  552. plexora-0.0.28/plexora/server/providers/base.py +0 -431
  553. plexora-0.0.28/plexora/server/providers/node.py +0 -1338
  554. plexora-0.0.28/plexora/server/providers/remote.py +0 -277
  555. plexora-0.0.28/plexora/server/providers/wire.py +0 -131
  556. plexora-0.0.28/plexora/server/routes/agent_routes.py +0 -384
  557. plexora-0.0.28/plexora/server/routes/ai_chat_routes.py +0 -199
  558. plexora-0.0.28/plexora/server/routes/browse_routes.py +0 -393
  559. plexora-0.0.28/plexora/server/routes/data_routes.py +0 -1611
  560. plexora-0.0.28/plexora/server/routes/desktop_routes.py +0 -205
  561. plexora-0.0.28/plexora/server/routes/import_routes.py +0 -1158
  562. plexora-0.0.28/plexora/server/routes/license_routes.py +0 -234
  563. plexora-0.0.28/plexora/server/routes/page_routes.py +0 -690
  564. plexora-0.0.28/plexora/server/routes/settings_routes.py +0 -1391
  565. plexora-0.0.28/plexora/server/routes/surface_routes.py +0 -668
  566. plexora-0.0.28/plexora/server/routes/tool_routes.py +0 -578
  567. plexora-0.0.28/plexora/server/routes/transfer_routes.py +0 -198
  568. plexora-0.0.28/plexora/server/routes/volume_routes.py +0 -1250
  569. plexora-0.0.28/plexora/server/utils/dir_listing.py +0 -144
  570. plexora-0.0.28/plexora/server/utils/remote_image.py +0 -112
  571. plexora-0.0.28/plexora/server/utils/remote_store.py +0 -2638
  572. plexora-0.0.28/plexora/server/utils/segmentation_pyramid.py +0 -1457
  573. plexora-0.0.28/plexora/server/utils/tiff_region.py +0 -488
  574. plexora-0.0.28/plexora/server/volume/labels.py +0 -507
  575. plexora-0.0.28/plexora/server/volume/sources/__init__.py +0 -94
  576. plexora-0.0.28/plexora/server/volume/sources/ims.py +0 -918
  577. plexora-0.0.28/plexora/telemetry/client.py +0 -636
  578. plexora-0.0.28/plexora/telemetry/config.py +0 -199
  579. plexora-0.0.28/plexora/telemetry/schema.py +0 -763
  580. plexora-0.0.28/plexora/updates.py +0 -571
  581. plexora-0.0.28/plexora.egg-info/PKG-INFO +0 -225
  582. plexora-0.0.28/plexora.egg-info/SOURCES.txt +0 -1347
  583. plexora-0.0.28/plexora.egg-info/requires.txt +0 -77
  584. plexora-0.0.28/pyproject.toml +0 -299
  585. plexora-0.0.28/setup.cfg +0 -4
  586. plexora-0.0.28/tests/test_agent_cell_gallery.py +0 -150
  587. plexora-0.0.28/tests/test_agent_gate_panel.py +0 -110
  588. plexora-0.0.28/tests/test_agent_http_capabilities.py +0 -247
  589. plexora-0.0.28/tests/test_agent_report.py +0 -113
  590. plexora-0.0.28/tests/test_agent_scope.py +0 -120
  591. plexora-0.0.28/tests/test_agent_vertical_slice.py +0 -103
  592. plexora-0.0.28/tests/test_agent_viewer_api.py +0 -456
  593. plexora-0.0.28/tests/test_agent_volume.py +0 -348
  594. plexora-0.0.28/tests/test_ai_bench.py +0 -40
  595. plexora-0.0.28/tests/test_ai_chat.py +0 -813
  596. plexora-0.0.28/tests/test_ai_context.py +0 -355
  597. plexora-0.0.28/tests/test_ai_harness.py +0 -972
  598. plexora-0.0.28/tests/test_ai_harness_qc.py +0 -246
  599. plexora-0.0.28/tests/test_ai_models_mcp.py +0 -302
  600. plexora-0.0.28/tests/test_ai_parallel_markers.py +0 -486
  601. plexora-0.0.28/tests/test_ai_route_bench.py +0 -153
  602. plexora-0.0.28/tests/test_ai_routes.py +0 -272
  603. plexora-0.0.28/tests/test_ai_skills.py +0 -102
  604. plexora-0.0.28/tests/test_ai_tasks.py +0 -104
  605. plexora-0.0.28/tests/test_autogate_units.py +0 -2010
  606. plexora-0.0.28/tests/test_bridge_mcp.py +0 -191
  607. plexora-0.0.28/tests/test_browse_routes.py +0 -710
  608. plexora-0.0.28/tests/test_cell_mode_control.py +0 -466
  609. plexora-0.0.28/tests/test_desktop_bridge.py +0 -67
  610. plexora-0.0.28/tests/test_docs_links.py +0 -57
  611. plexora-0.0.28/tests/test_file_location.py +0 -232
  612. plexora-0.0.28/tests/test_gating_3d.py +0 -38
  613. plexora-0.0.28/tests/test_gating_candidates.py +0 -338
  614. plexora-0.0.28/tests/test_gating_channel_match.py +0 -288
  615. plexora-0.0.28/tests/test_gating_classifier_layer.py +0 -444
  616. plexora-0.0.28/tests/test_gating_delta.py +0 -232
  617. plexora-0.0.28/tests/test_gating_experience.py +0 -114
  618. plexora-0.0.28/tests/test_gating_limits.py +0 -483
  619. plexora-0.0.28/tests/test_gating_session.py +0 -1887
  620. plexora-0.0.28/tests/test_gating_tiles.py +0 -224
  621. plexora-0.0.28/tests/test_hd_default.py +0 -47
  622. plexora-0.0.28/tests/test_home_landing.py +0 -328
  623. plexora-0.0.28/tests/test_import_dialog.py +0 -503
  624. plexora-0.0.28/tests/test_import_proposal.py +0 -912
  625. plexora-0.0.28/tests/test_import_sample_association.py +0 -393
  626. plexora-0.0.28/tests/test_import_sample_routes.py +0 -433
  627. plexora-0.0.28/tests/test_ims_masks.py +0 -291
  628. plexora-0.0.28/tests/test_license_js.py +0 -73
  629. plexora-0.0.28/tests/test_license_routes.py +0 -201
  630. plexora-0.0.28/tests/test_license_transcriptomics.py +0 -328
  631. plexora-0.0.28/tests/test_license_visibility.py +0 -133
  632. plexora-0.0.28/tests/test_license_volume.py +0 -205
  633. plexora-0.0.28/tests/test_licensing_cli.py +0 -208
  634. plexora-0.0.28/tests/test_licensing_enforcement.py +0 -474
  635. plexora-0.0.28/tests/test_licensing_hardening.py +0 -423
  636. plexora-0.0.28/tests/test_licensing_hpc.py +0 -121
  637. plexora-0.0.28/tests/test_licensing_manifest.py +0 -145
  638. plexora-0.0.28/tests/test_licensing_plugins.py +0 -178
  639. plexora-0.0.28/tests/test_mask_formats.py +0 -332
  640. plexora-0.0.28/tests/test_mcp_gating.py +0 -111
  641. plexora-0.0.28/tests/test_mcp_link.py +0 -307
  642. plexora-0.0.28/tests/test_mcp_qc.py +0 -58
  643. plexora-0.0.28/tests/test_mcp_server.py +0 -137
  644. plexora-0.0.28/tests/test_mini_map.py +0 -396
  645. plexora-0.0.28/tests/test_nearest_cell_3d.py +0 -99
  646. plexora-0.0.28/tests/test_node_dynamic.py +0 -923
  647. plexora-0.0.28/tests/test_parquet_tables.py +0 -449
  648. plexora-0.0.28/tests/test_path_picker.py +0 -549
  649. plexora-0.0.28/tests/test_physical_coordinates.py +0 -166
  650. plexora-0.0.28/tests/test_plane_cells_route.py +0 -126
  651. plexora-0.0.28/tests/test_plugin_boundary.py +0 -673
  652. plexora-0.0.28/tests/test_plugins.py +0 -637
  653. plexora-0.0.28/tests/test_qc_bench.py +0 -84
  654. plexora-0.0.28/tests/test_qc_bulk_timing.py +0 -140
  655. plexora-0.0.28/tests/test_qc_check_sampling.py +0 -514
  656. plexora-0.0.28/tests/test_qc_consolidate.py +0 -100
  657. plexora-0.0.28/tests/test_qc_mirror.py +0 -130
  658. plexora-0.0.28/tests/test_qc_payload_trim.py +0 -437
  659. plexora-0.0.28/tests/test_qc_refine_tool.py +0 -121
  660. plexora-0.0.28/tests/test_qc_registration_report.py +0 -106
  661. plexora-0.0.28/tests/test_qc_results.py +0 -246
  662. plexora-0.0.28/tests/test_qc_rework.py +0 -726
  663. plexora-0.0.28/tests/test_qc_segment_tool.py +0 -182
  664. plexora-0.0.28/tests/test_qc_session.py +0 -690
  665. plexora-0.0.28/tests/test_qc_session_checks.py +0 -257
  666. plexora-0.0.28/tests/test_qc_session_refine.py +0 -199
  667. plexora-0.0.28/tests/test_qc_stack.py +0 -199
  668. plexora-0.0.28/tests/test_qc_tool_surface.py +0 -216
  669. plexora-0.0.28/tests/test_qc_visual_session.py +0 -176
  670. plexora-0.0.28/tests/test_qc_visual_tools.py +0 -444
  671. plexora-0.0.28/tests/test_recipes.py +0 -986
  672. plexora-0.0.28/tests/test_remote_globe.py +0 -295
  673. plexora-0.0.28/tests/test_roi_cell_regions.py +0 -119
  674. plexora-0.0.28/tests/test_segmentation_3d.py +0 -151
  675. plexora-0.0.28/tests/test_settings_webdata_page.py +0 -123
  676. plexora-0.0.28/tests/test_surface_layer.py +0 -330
  677. plexora-0.0.28/tests/test_surface_phase2.py +0 -212
  678. plexora-0.0.28/tests/test_telemetry_uploader.py +0 -236
  679. plexora-0.0.28/tests/test_view_state_client.py +0 -202
  680. plexora-0.0.28/tests/test_viewer_3d_client.py +0 -153
  681. plexora-0.0.28/tests/test_vision_sam_real.py +0 -112
  682. plexora-0.0.28/tests/test_visium_hd_import.py +0 -306
  683. plexora-0.0.28/tests/test_visium_import.py +0 -336
  684. plexora-0.0.28/tests/test_vocabulary_learned.py +0 -153
  685. plexora-0.0.28/tests/test_volume_backend.py +0 -710
  686. plexora-0.0.28/tests/test_volume_chunk_cache.py +0 -122
  687. plexora-0.0.28/tests/test_volume_depth_levels.py +0 -551
  688. plexora-0.0.28/tests/test_volume_fluid_planes.py +0 -382
  689. plexora-0.0.28/tests/test_volume_objects_route.py +0 -96
  690. plexora-0.0.28/tests/test_volume_propagate.py +0 -209
  691. plexora-0.0.28/tests/test_volume_routes.py +0 -463
  692. plexora-0.0.28/tests/test_volume_time_series.py +0 -224
  693. {plexora-0.0.28 → plexora-0.0.29}/MANIFEST.in +0 -0
  694. {plexora-0.0.28 → plexora-0.0.29}/plexora/__main__.py +0 -0
  695. {plexora-0.0.28 → plexora-0.0.29}/plexora/_lifetime.py +0 -0
  696. {plexora-0.0.28 → plexora-0.0.29}/plexora/_logging.py +0 -0
  697. {plexora-0.0.28 → plexora-0.0.29}/plexora/_resources.py +0 -0
  698. {plexora-0.0.28 → plexora-0.0.29}/plexora/_subprocess.py +0 -0
  699. {plexora-0.0.28 → plexora-0.0.29}/plexora/_transient_locks.py +0 -0
  700. {plexora-0.0.28 → plexora-0.0.29}/plexora/_url.py +0 -0
  701. {plexora-0.0.28 → plexora-0.0.29}/plexora/agent/__init__.py +0 -0
  702. {plexora-0.0.28 → plexora-0.0.29}/plexora/agent/artifacts.py +0 -0
  703. {plexora-0.0.28 → plexora-0.0.29}/plexora/agent/attach.py +0 -0
  704. {plexora-0.0.28 → plexora-0.0.29}/plexora/agent/audit.py +0 -0
  705. {plexora-0.0.28 → plexora-0.0.29}/plexora/agent/bridge_roles.py +0 -0
  706. {plexora-0.0.28 → plexora-0.0.29}/plexora/agent/bridge_wire.py +0 -0
  707. {plexora-0.0.28 → plexora-0.0.29}/plexora/agent/cell_exclusions.py +0 -0
  708. {plexora-0.0.28 → plexora-0.0.29}/plexora/agent/cell_explain.py +0 -0
  709. {plexora-0.0.28 → plexora-0.0.29}/plexora/agent/cell_gallery.py +0 -0
  710. {plexora-0.0.28 → plexora-0.0.29}/plexora/agent/coordinates.py +0 -0
  711. {plexora-0.0.28 → plexora-0.0.29}/plexora/agent/core/bridge.py +0 -0
  712. {plexora-0.0.28 → plexora-0.0.29}/plexora/agent/core/cells.py +0 -0
  713. {plexora-0.0.28 → plexora-0.0.29}/plexora/agent/core/image.py +0 -0
  714. {plexora-0.0.28 → plexora-0.0.29}/plexora/agent/core/jobs.py +0 -0
  715. {plexora-0.0.28 → plexora-0.0.29}/plexora/agent/core/operations.py +0 -0
  716. {plexora-0.0.28 → plexora-0.0.29}/plexora/agent/core/project.py +0 -0
  717. {plexora-0.0.28 → plexora-0.0.29}/plexora/agent/core/scene.py +0 -0
  718. {plexora-0.0.28 → plexora-0.0.29}/plexora/agent/core/selection.py +0 -0
  719. {plexora-0.0.28 → plexora-0.0.29}/plexora/agent/core/table.py +0 -0
  720. {plexora-0.0.28 → plexora-0.0.29}/plexora/agent/core/visual.py +0 -0
  721. {plexora-0.0.28 → plexora-0.0.29}/plexora/agent/core/volume_analysis.py +0 -0
  722. {plexora-0.0.28 → plexora-0.0.29}/plexora/agent/evidence/__init__.py +0 -0
  723. {plexora-0.0.28 → plexora-0.0.29}/plexora/agent/evidence/calibration.py +0 -0
  724. {plexora-0.0.28 → plexora-0.0.29}/plexora/agent/evidence/cell_window.py +0 -0
  725. {plexora-0.0.28 → plexora-0.0.29}/plexora/agent/evidence/crops.py +0 -0
  726. {plexora-0.0.28 → plexora-0.0.29}/plexora/agent/evidence/density_plot.py +0 -0
  727. {plexora-0.0.28 → plexora-0.0.29}/plexora/agent/evidence/display_contrast.py +0 -0
  728. {plexora-0.0.28 → plexora-0.0.29}/plexora/agent/evidence/display_grid.py +0 -0
  729. {plexora-0.0.28 → plexora-0.0.29}/plexora/agent/evidence/image_qc.py +0 -0
  730. {plexora-0.0.28 → plexora-0.0.29}/plexora/agent/evidence/sheet_layout.py +0 -0
  731. {plexora-0.0.28 → plexora-0.0.29}/plexora/agent/expression.py +0 -0
  732. {plexora-0.0.28 → plexora-0.0.29}/plexora/agent/gate_panel.py +0 -0
  733. {plexora-0.0.28 → plexora-0.0.29}/plexora/agent/gate_rule.py +0 -0
  734. {plexora-0.0.28 → plexora-0.0.29}/plexora/agent/gate_sampling.py +0 -0
  735. {plexora-0.0.28 → plexora-0.0.29}/plexora/agent/jobs.py +0 -0
  736. {plexora-0.0.28 → plexora-0.0.29}/plexora/agent/limits.py +0 -0
  737. {plexora-0.0.28 → plexora-0.0.29}/plexora/agent/plots.py +0 -0
  738. {plexora-0.0.28 → plexora-0.0.29}/plexora/agent/presets.py +0 -0
  739. {plexora-0.0.28 → plexora-0.0.29}/plexora/agent/receipts.py +0 -0
  740. {plexora-0.0.28 → plexora-0.0.29}/plexora/agent/render.py +0 -0
  741. {plexora-0.0.28 → plexora-0.0.29}/plexora/agent/render_spec.py +0 -0
  742. {plexora-0.0.28 → plexora-0.0.29}/plexora/agent/report.py +0 -0
  743. {plexora-0.0.28 → plexora-0.0.29}/plexora/agent/revision.py +0 -0
  744. {plexora-0.0.28 → plexora-0.0.29}/plexora/agent/scene_models.py +0 -0
  745. {plexora-0.0.28 → plexora-0.0.29}/plexora/agent/schemas.py +0 -0
  746. {plexora-0.0.28 → plexora-0.0.29}/plexora/agent/sections.py +0 -0
  747. {plexora-0.0.28 → plexora-0.0.29}/plexora/agent/session.py +0 -0
  748. {plexora-0.0.28 → plexora-0.0.29}/plexora/agent/sessions/__init__.py +0 -0
  749. {plexora-0.0.28 → plexora-0.0.29}/plexora/agent/sessions/budget.py +0 -0
  750. {plexora-0.0.28 → plexora-0.0.29}/plexora/agent/sessions/control.py +0 -0
  751. {plexora-0.0.28 → plexora-0.0.29}/plexora/agent/sessions/engine.py +0 -0
  752. {plexora-0.0.28 → plexora-0.0.29}/plexora/agent/sessions/events.py +0 -0
  753. {plexora-0.0.28 → plexora-0.0.29}/plexora/agent/sessions/memo.py +0 -0
  754. {plexora-0.0.28 → plexora-0.0.29}/plexora/agent/sessions/mirror.py +0 -0
  755. {plexora-0.0.28 → plexora-0.0.29}/plexora/agent/sessions/store.py +0 -0
  756. {plexora-0.0.28 → plexora-0.0.29}/plexora/agent/sessions/tools.py +0 -0
  757. {plexora-0.0.28 → plexora-0.0.29}/plexora/agent/tasks.py +0 -0
  758. {plexora-0.0.28 → plexora-0.0.29}/plexora/agent/viewer.py +0 -0
  759. {plexora-0.0.28 → plexora-0.0.29}/plexora/ai/__init__.py +0 -0
  760. {plexora-0.0.28 → plexora-0.0.29}/plexora/ai/audit.py +0 -0
  761. {plexora-0.0.28 → plexora-0.0.29}/plexora/ai/bench_experience.py +0 -0
  762. {plexora-0.0.28 → plexora-0.0.29}/plexora/ai/context.py +0 -0
  763. {plexora-0.0.28 → plexora-0.0.29}/plexora/ai/harness/__init__.py +0 -0
  764. {plexora-0.0.28 → plexora-0.0.29}/plexora/ai/harness/backend.py +0 -0
  765. {plexora-0.0.28 → plexora-0.0.29}/plexora/ai/harness/cache_plan.py +0 -0
  766. {plexora-0.0.28 → plexora-0.0.29}/plexora/ai/harness/capabilities.py +0 -0
  767. {plexora-0.0.28 → plexora-0.0.29}/plexora/ai/harness/chat_capabilities.py +0 -0
  768. {plexora-0.0.28 → plexora-0.0.29}/plexora/ai/harness/cli.py +0 -0
  769. {plexora-0.0.28 → plexora-0.0.29}/plexora/ai/harness/conversations.py +0 -0
  770. {plexora-0.0.28 → plexora-0.0.29}/plexora/ai/harness/decision.py +0 -0
  771. {plexora-0.0.28 → plexora-0.0.29}/plexora/ai/harness/expression.py +0 -0
  772. {plexora-0.0.28 → plexora-0.0.29}/plexora/ai/harness/gateway.py +0 -0
  773. {plexora-0.0.28 → plexora-0.0.29}/plexora/ai/harness/route_bench.py +0 -0
  774. {plexora-0.0.28 → plexora-0.0.29}/plexora/ai/harness/schema.py +0 -0
  775. {plexora-0.0.28 → plexora-0.0.29}/plexora/ai/harness/toolcache.py +0 -0
  776. {plexora-0.0.28 → plexora-0.0.29}/plexora/ai/harness/trace.py +0 -0
  777. {plexora-0.0.28 → plexora-0.0.29}/plexora/ai/knowledge/biology.yaml +0 -0
  778. {plexora-0.0.28 → plexora-0.0.29}/plexora/ai/models_config.py +0 -0
  779. {plexora-0.0.28 → plexora-0.0.29}/plexora/ai/tasks.py +0 -0
  780. {plexora-0.0.28 → plexora-0.0.29}/plexora/ai/vocabulary.py +0 -0
  781. {plexora-0.0.28 → plexora-0.0.29}/plexora/api/__init__.py +0 -0
  782. {plexora-0.0.28 → plexora-0.0.29}/plexora/api/dataset.py +0 -0
  783. {plexora-0.0.28 → plexora-0.0.29}/plexora/api/features.py +0 -0
  784. {plexora-0.0.28 → plexora-0.0.29}/plexora/api/http.py +0 -0
  785. {plexora-0.0.28 → plexora-0.0.29}/plexora/api/representation.py +0 -0
  786. {plexora-0.0.28 → plexora-0.0.29}/plexora/api/store.py +0 -0
  787. {plexora-0.0.28 → plexora-0.0.29}/plexora/askpass.py +0 -0
  788. {plexora-0.0.28 → plexora-0.0.29}/plexora/cli.py +0 -0
  789. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/dist/124_bundle.js +0 -0
  790. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/dist/248_bundle.js +0 -0
  791. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/dist/248_bundle.js.LICENSE.txt +0 -0
  792. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/dist/354_bundle.js +0 -0
  793. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/dist/354_bundle.js.LICENSE.txt +0 -0
  794. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/dist/418_bundle.js +0 -0
  795. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/dist/418_bundle.js.LICENSE.txt +0 -0
  796. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/dist/693b935cb1f907814be9c6199a68c217.svg +0 -0
  797. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/dist/713c134ff47cd328a5b711526f151082.svg +0 -0
  798. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/dist/770_bundle.js +0 -0
  799. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/dist/908_bundle.js +0 -0
  800. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/dist/908_bundle.js.LICENSE.txt +0 -0
  801. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/dist/ff743f408972e0e96ca9153ed5ae4c83.svg +0 -0
  802. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/dist/vendor_bundle.js +0 -0
  803. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/dist/vendor_bundle.js.LICENSE.txt +0 -0
  804. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/dist/vendors-node_modules_canvg_lib_index_es_js_bundle.js +0 -0
  805. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/dist/vendors-node_modules_dompurify_dist_purify_es_mjs_bundle.js +0 -0
  806. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/dist/vendors-node_modules_html2canvas_dist_html2canvas_js_bundle.js +0 -0
  807. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/external/openseadragon-bin-2.4.0/LICENSE.txt +0 -0
  808. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/external/openseadragon-bin-2.4.0/canvas-overlay-hd.js +0 -0
  809. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/external/openseadragon-bin-2.4.0/changelog.txt +0 -0
  810. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/.gitattributes +0 -0
  811. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/LICENSE.txt +0 -0
  812. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/Photoshop/Toolbar.png +0 -0
  813. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/Photoshop/fullpage.psd +0 -0
  814. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/Photoshop/home.psd +0 -0
  815. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/Photoshop/next.psd +0 -0
  816. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/Photoshop/previous.psd +0 -0
  817. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/Photoshop/rotateleft.psd +0 -0
  818. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/Photoshop/rotateright.psd +0 -0
  819. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/Photoshop/zoom.psd +0 -0
  820. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/README.md +0 -0
  821. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/fullpage_grouphover.png +0 -0
  822. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/fullpage_hover.png +0 -0
  823. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/fullpage_pressed.png +0 -0
  824. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/fullpage_rest.png +0 -0
  825. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/home_grouphover.png +0 -0
  826. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/home_hover.png +0 -0
  827. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/home_pressed.png +0 -0
  828. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/home_rest.png +0 -0
  829. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/next_grouphover.png +0 -0
  830. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/next_hover.png +0 -0
  831. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/next_pressed.png +0 -0
  832. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/next_rest.png +0 -0
  833. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/previous_grouphover.png +0 -0
  834. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/previous_hover.png +0 -0
  835. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/previous_pressed.png +0 -0
  836. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/previous_rest.png +0 -0
  837. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/rotateleft_grouphover.png +0 -0
  838. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/rotateleft_hover.png +0 -0
  839. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/rotateleft_pressed.png +0 -0
  840. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/rotateleft_rest.png +0 -0
  841. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/rotateright_grouphover.png +0 -0
  842. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/rotateright_hover.png +0 -0
  843. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/rotateright_pressed.png +0 -0
  844. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/rotateright_rest.png +0 -0
  845. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/zoomin_grouphover.png +0 -0
  846. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/zoomin_hover.png +0 -0
  847. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/zoomin_pressed.png +0 -0
  848. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/zoomin_rest.png +0 -0
  849. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/zoomout_grouphover.png +0 -0
  850. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/zoomout_hover.png +0 -0
  851. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/zoomout_pressed.png +0 -0
  852. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/zoomout_rest.png +0 -0
  853. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-scalebar.js +0 -0
  854. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/external/thinking-orbs-0.3.2/LICENSE +0 -0
  855. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/external/thinking-orbs-0.3.2/README-plexora.txt +0 -0
  856. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/external/thinking-orbs-0.3.2/orbs.js +0 -0
  857. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/css/agentPanel.css +0 -0
  858. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/css/chatPanel.css +0 -0
  859. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/css/import.css +0 -0
  860. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/css/openProject.css +0 -0
  861. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/img/apple-touch-icon.png +0 -0
  862. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/img/favicon.ico +0 -0
  863. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/img/logo.ai +0 -0
  864. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/img/logo.svg +0 -0
  865. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/img/logo_with_text.ai +0 -0
  866. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/img/logo_with_text.svg +0 -0
  867. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/pluginRegistry.js +0 -0
  868. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/services/appRouter.js +0 -0
  869. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/services/appStatus.js +0 -0
  870. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/services/canvasHint.js +0 -0
  871. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/services/carryOver.js +0 -0
  872. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/services/channelFade.js +0 -0
  873. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/services/dataLayer.js +0 -0
  874. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/services/datasetContext.js +0 -0
  875. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/services/displayCurve.js +0 -0
  876. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/services/errors.js +0 -0
  877. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/services/failureMessage.js +0 -0
  878. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/services/glRenderer.js +0 -0
  879. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/services/keyboardShortcuts.js +0 -0
  880. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/services/launchContext.js +0 -0
  881. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/services/logTerminal.js +0 -0
  882. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/services/magicToolbar.js +0 -0
  883. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/services/numericData.js +0 -0
  884. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/services/orbDriver.js +0 -0
  885. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/services/pageBoot.js +0 -0
  886. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/services/passVariablesToFrontend.js +0 -0
  887. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/services/perfProbe.js +0 -0
  888. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/services/performanceTelemetry.js +0 -0
  889. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/services/pointerDrag.js +0 -0
  890. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/services/renderClipboard.js +0 -0
  891. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/services/resourceRouting.js +0 -0
  892. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/services/segmentService.js +0 -0
  893. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/services/sessionExpiry.js +0 -0
  894. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/services/simpleEventHandler.js +0 -0
  895. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/services/telemetry.js +0 -0
  896. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/services/toast.js +0 -0
  897. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/services/viewSnapshot.js +0 -0
  898. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/services/viewTransform.js +0 -0
  899. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/services/viewerLoader.js +0 -0
  900. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/services/volumeWindows.js +0 -0
  901. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/vendor.js +0 -0
  902. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/views/brightfieldAdjust.js +0 -0
  903. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/views/cardList.js +0 -0
  904. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/views/channelList.js +0 -0
  905. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/views/chatPanel.js +0 -0
  906. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/views/colorSwatchPicker.js +0 -0
  907. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/views/columnClassifier.js +0 -0
  908. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/views/confirmDialog.js +0 -0
  909. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/views/coordinateField.js +0 -0
  910. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/views/dataSourceField.js +0 -0
  911. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/views/datasetPicker.js +0 -0
  912. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/views/datasetStrip.js +0 -0
  913. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/views/geneGroupModal.js +0 -0
  914. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/views/geneList.js +0 -0
  915. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/views/glInit.js +0 -0
  916. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/views/gradientRange.js +0 -0
  917. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/views/imageViewer.js +0 -0
  918. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/views/jobProgress.js +0 -0
  919. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/views/jobWait.js +0 -0
  920. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/views/labelGpu.js +0 -0
  921. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/views/labelTile.js +0 -0
  922. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/views/layerChannelPanel.js +0 -0
  923. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/views/layerManager.js +0 -0
  924. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/views/layerSections.js +0 -0
  925. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/views/layerStack.js +0 -0
  926. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/views/loadProgress.js +0 -0
  927. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/views/maskSurfaceWait.js +0 -0
  928. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/views/navbarControls.js +0 -0
  929. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/views/openProjectPage.js +0 -0
  930. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/views/panCursor.js +0 -0
  931. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/views/paneStatus.js +0 -0
  932. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/views/planeMotion.js +0 -0
  933. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/views/pluginHelp.js +0 -0
  934. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/views/popoverMenu.js +0 -0
  935. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/views/popoverPortal.js +0 -0
  936. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/views/projectEdit.js +0 -0
  937. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/views/rainbow.js +0 -0
  938. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/views/requirementsModal.js +0 -0
  939. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/views/rgbImageViewer.js +0 -0
  940. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/views/scaleCalibration.js +0 -0
  941. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/views/searchableSelect.js +0 -0
  942. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/views/sectionCells.js +0 -0
  943. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/views/segmentationWait.js +0 -0
  944. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/views/slider.js +0 -0
  945. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/views/surfaceObjects.js +0 -0
  946. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/views/tableProgress.js +0 -0
  947. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/views/tileColorize.js +0 -0
  948. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/views/tileDecode.js +0 -0
  949. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/views/tileFetch.js +0 -0
  950. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/views/updateDialog.js +0 -0
  951. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/views/viewTransformTools.js +0 -0
  952. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/views/viewerErrorState.js +0 -0
  953. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/views/viewerManager.js +0 -0
  954. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/views/viewerSidebar.js +0 -0
  955. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/views/volumeCamera.js +0 -0
  956. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/js/workers/tileDecoder.js +0 -0
  957. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/shaders/frag.glsl +0 -0
  958. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/shaders/label.frag.glsl +0 -0
  959. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/src/shaders/vert.glsl +0 -0
  960. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/templates/_fragment.html +0 -0
  961. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/templates/_scale_calibration.html +0 -0
  962. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/templates/_scale_calibration_float.html +0 -0
  963. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/templates/open_project.html +0 -0
  964. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/templates/project_edit.html +0 -0
  965. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/templates/tools/depth_panel.html +0 -0
  966. {plexora-0.0.28 → plexora-0.0.29}/plexora/client/templates/tools/rotate_panel.html +0 -0
  967. {plexora-0.0.28 → plexora-0.0.29}/plexora/datasets.py +0 -0
  968. {plexora-0.0.28 → plexora-0.0.29}/plexora/gcloud.py +0 -0
  969. {plexora-0.0.28 → plexora-0.0.29}/plexora/jupyter.py +0 -0
  970. {plexora-0.0.28 → plexora-0.0.29}/plexora/mcp/__init__.py +0 -0
  971. {plexora-0.0.28 → plexora-0.0.29}/plexora/mcp/auth.py +0 -0
  972. {plexora-0.0.28 → plexora-0.0.29}/plexora/mcp/resources.py +0 -0
  973. {plexora-0.0.28 → plexora-0.0.29}/plexora/mcp/resources_gating.py +0 -0
  974. {plexora-0.0.28 → plexora-0.0.29}/plexora/mcp/resources_scene.py +0 -0
  975. {plexora-0.0.28 → plexora-0.0.29}/plexora/mcp/resources_visual.py +0 -0
  976. {plexora-0.0.28 → plexora-0.0.29}/plexora/mcp/serialize.py +0 -0
  977. {plexora-0.0.28 → plexora-0.0.29}/plexora/mcp/smoke.py +0 -0
  978. {plexora-0.0.28 → plexora-0.0.29}/plexora/notebook_env.py +0 -0
  979. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/__init__.py +0 -0
  980. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/cell_explorer/__init__.py +0 -0
  981. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/cell_explorer/server/__init__.py +0 -0
  982. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/cell_explorer/server/routes.py +0 -0
  983. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/cell_explorer/server/state.py +0 -0
  984. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/cell_explorer/server/values.py +0 -0
  985. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/cell_explorer/server/variables.py +0 -0
  986. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/cell_explorer/static/cellExplorerAnalysisBridge.js +0 -0
  987. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/cell_explorer/static/cellExplorerApi.js +0 -0
  988. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/cell_explorer/static/cellExplorerColors.js +0 -0
  989. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/cell_explorer/static/cellExplorerContinuous.js +0 -0
  990. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/cell_explorer/static/cellExplorerFigureBridge.js +0 -0
  991. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/cell_explorer/static/cellExplorerLegend.js +0 -0
  992. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/cell_explorer/static/cellExplorerRoiBridge.js +0 -0
  993. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/cell_explorer/static/cellExplorerSidebarController.js +0 -0
  994. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/cell_explorer/static/cellExplorerState.js +0 -0
  995. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/cell_explorer/static/cell_explorer.css +0 -0
  996. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/cell_explorer/templates/cell_explorer/panel.html +0 -0
  997. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/figure_builder/server/__init__.py +0 -0
  998. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/figure_builder/server/compose.py +0 -0
  999. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/figure_builder/server/export_jobs.py +0 -0
  1000. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/figure_builder/server/operations.py +0 -0
  1001. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/figure_builder/server/provenance.py +0 -0
  1002. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/figure_builder/server/render.py +0 -0
  1003. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/figure_builder/server/repository.py +0 -0
  1004. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/figure_builder/server/schema.py +0 -0
  1005. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/figure_builder/server/shapegeom.py +0 -0
  1006. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/figure_builder/server/strokegeom.py +0 -0
  1007. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/figure_builder/server/textmetrics.py +0 -0
  1008. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/figure_builder/static/figureActions.js +0 -0
  1009. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/figure_builder/static/figureCanvas.js +0 -0
  1010. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/figure_builder/static/figureCaptureBoxes.js +0 -0
  1011. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/figure_builder/static/figureChoiceField.js +0 -0
  1012. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/figure_builder/static/figureColorField.js +0 -0
  1013. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/figure_builder/static/figureConfirm.js +0 -0
  1014. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/figure_builder/static/figureContextBar.js +0 -0
  1015. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/figure_builder/static/figureContextMenu.js +0 -0
  1016. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/figure_builder/static/figureDestinationPicker.js +0 -0
  1017. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/figure_builder/static/figureDocumentState.js +0 -0
  1018. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/figure_builder/static/figureExportUi.js +0 -0
  1019. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/figure_builder/static/figureImagePanel.js +0 -0
  1020. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/figure_builder/static/figureLibrary.js +0 -0
  1021. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/figure_builder/static/figureLineDefs.js +0 -0
  1022. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/figure_builder/static/figureLinePanel.js +0 -0
  1023. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/figure_builder/static/figurePanelCompositor.js +0 -0
  1024. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/figure_builder/static/figurePointEditor.js +0 -0
  1025. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/figure_builder/static/figureRichText.js +0 -0
  1026. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/figure_builder/static/figureSchema.js +0 -0
  1027. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/figure_builder/static/figureShapeDefs.js +0 -0
  1028. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/figure_builder/static/figureShapeDrawing.js +0 -0
  1029. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/figure_builder/static/figureShapeGeometry.js +0 -0
  1030. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/figure_builder/static/figureShapePanel.js +0 -0
  1031. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/figure_builder/static/figureStrokeGeometry.js +0 -0
  1032. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/figure_builder/static/figureTextEditor.js +0 -0
  1033. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/figure_builder/static/figureTextPanel.js +0 -0
  1034. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/figure_builder/static/figureThumbnail.js +0 -0
  1035. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/figure_builder/static/figureViewOptions.js +0 -0
  1036. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/figure_builder/templates/figure_builder/library.html +0 -0
  1037. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/gating/capabilities.py +0 -0
  1038. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/gating/capabilities_autogate.py +0 -0
  1039. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/gating/capabilities_classifier.py +0 -0
  1040. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/gating/server/__init__.py +0 -0
  1041. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/gating/server/anndata_gates.py +0 -0
  1042. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/gating/server/autogate/__init__.py +0 -0
  1043. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/gating/server/autogate/absence.py +0 -0
  1044. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/gating/server/autogate/biology.py +0 -0
  1045. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/gating/server/autogate/bivariate.py +0 -0
  1046. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/gating/server/autogate/candidates.py +0 -0
  1047. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/gating/server/autogate/cellcalls.py +0 -0
  1048. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/gating/server/autogate/cells.py +0 -0
  1049. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/gating/server/autogate/events.py +0 -0
  1050. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/gating/server/autogate/hierarchy.py +0 -0
  1051. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/gating/server/autogate/kernels.py +0 -0
  1052. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/gating/server/autogate/lattice.py +0 -0
  1053. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/gating/server/autogate/memo.py +0 -0
  1054. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/gating/server/autogate/mirror_script.py +0 -0
  1055. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/gating/server/autogate/partners.py +0 -0
  1056. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/gating/server/autogate/pixel_estimate.py +0 -0
  1057. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/gating/server/autogate/profile.py +0 -0
  1058. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/gating/server/autogate/qc_cells.py +0 -0
  1059. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/gating/server/autogate/reference.py +0 -0
  1060. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/gating/server/autogate/replan.py +0 -0
  1061. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/gating/server/autogate/report.py +0 -0
  1062. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/gating/server/autogate/sampler.py +0 -0
  1063. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/gating/server/autogate/scoring.py +0 -0
  1064. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/gating/server/autogate/sheet.py +0 -0
  1065. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/gating/server/autogate/verdicts.py +0 -0
  1066. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/gating/server/classifier/__init__.py +0 -0
  1067. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/gating/server/classifier/autopick.py +0 -0
  1068. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/gating/server/classifier/calls.py +0 -0
  1069. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/gating/server/classifier/export.py +0 -0
  1070. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/gating/server/classifier/features.py +0 -0
  1071. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/gating/server/classifier/learner.py +0 -0
  1072. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/gating/server/classifier/panel.py +0 -0
  1073. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/gating/server/classifier/rules.py +0 -0
  1074. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/gating/server/classifier/runs.py +0 -0
  1075. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/gating/server/classifier/signal.py +0 -0
  1076. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/gating/server/classifier/source_write.py +0 -0
  1077. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/gating/server/classifier/store.py +0 -0
  1078. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/gating/server/database.py +0 -0
  1079. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/gating/server/experience.py +0 -0
  1080. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/gating/server/model.py +0 -0
  1081. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/gating/server/provenance.py +0 -0
  1082. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/gating/server/routes.py +0 -0
  1083. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/gating/server/tableops.py +0 -0
  1084. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/gating/static/csvGatingList.js +0 -0
  1085. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/gating/static/gatingAgentBridge.js +0 -0
  1086. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/gating/static/gatingApi.js +0 -0
  1087. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/gating/static/gatingClassifier.js +0 -0
  1088. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/gating/static/gatingPlanes.js +0 -0
  1089. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/gating/templates/gating/legacy.html +0 -0
  1090. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/capabilities_objects.py +0 -0
  1091. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/capabilities_session.py +0 -0
  1092. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/capabilities_stack.py +0 -0
  1093. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/mcp.py +0 -0
  1094. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/server/__init__.py +0 -0
  1095. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/server/answers.py +0 -0
  1096. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/server/background.py +0 -0
  1097. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/server/blur.py +0 -0
  1098. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/server/bulk.py +0 -0
  1099. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/server/candidates.py +0 -0
  1100. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/server/cells/__init__.py +0 -0
  1101. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/server/cells/calls.py +0 -0
  1102. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/server/cells/channel_findings.py +0 -0
  1103. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/server/check_candidates.py +0 -0
  1104. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/server/checks_bulk.py +0 -0
  1105. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/server/checks_result.py +0 -0
  1106. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/server/class_rules.py +0 -0
  1107. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/server/consolidate.py +0 -0
  1108. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/server/cycles.py +0 -0
  1109. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/server/detectors/__init__.py +0 -0
  1110. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/server/detectors/base.py +0 -0
  1111. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/server/detectors/classical.py +0 -0
  1112. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/server/digest.py +0 -0
  1113. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/server/dna_retention.py +0 -0
  1114. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/server/engine.py +0 -0
  1115. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/server/events.py +0 -0
  1116. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/server/exclusions.py +0 -0
  1117. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/server/export.py +0 -0
  1118. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/server/finalize.py +0 -0
  1119. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/server/frames.py +0 -0
  1120. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/server/mirror_script.py +0 -0
  1121. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/server/nuclei_trace.py +0 -0
  1122. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/server/overview.py +0 -0
  1123. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/server/packets.py +0 -0
  1124. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/server/plane.py +0 -0
  1125. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/server/polygons.py +0 -0
  1126. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/server/propagate.py +0 -0
  1127. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/server/provenance.py +0 -0
  1128. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/server/refine.py +0 -0
  1129. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/server/refine_sam.py +0 -0
  1130. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/server/registration.py +0 -0
  1131. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/server/report.py +0 -0
  1132. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/server/roi_link.py +0 -0
  1133. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/server/scan.py +0 -0
  1134. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/server/schemas.py +0 -0
  1135. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/server/score_fields.py +0 -0
  1136. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/server/score_review.py +0 -0
  1137. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/server/segqc/__init__.py +0 -0
  1138. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/server/segqc/analysis.py +0 -0
  1139. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/server/segqc/kernels.py +0 -0
  1140. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/server/segqc/run.py +0 -0
  1141. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/server/sheets.py +0 -0
  1142. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/server/source_write.py +0 -0
  1143. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/server/strictness.py +0 -0
  1144. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/server/tissue.py +0 -0
  1145. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/server/transitions.py +0 -0
  1146. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/server/viewer_data.py +0 -0
  1147. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/static/qc.css +0 -0
  1148. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/static/qcAgentBridge.js +0 -0
  1149. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/static/qcApi.js +0 -0
  1150. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/static/qcArtifacts.js +0 -0
  1151. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/static/qcBlur.js +0 -0
  1152. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/static/qcDraw.js +0 -0
  1153. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/static/qcHover.js +0 -0
  1154. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/static/qcLayers.js +0 -0
  1155. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/static/qcRegistration.js +0 -0
  1156. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/static/qcSegmentation.js +0 -0
  1157. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/static/qcSidebarController.js +0 -0
  1158. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/static/qcStack.js +0 -0
  1159. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/static/qcTree.js +0 -0
  1160. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/qc/templates/qc/panel.html +0 -0
  1161. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/roi/capabilities.py +0 -0
  1162. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/roi/server/__init__.py +0 -0
  1163. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/roi/server/adapters.py +0 -0
  1164. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/roi/server/geojson.py +0 -0
  1165. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/roi/server/geometry.py +0 -0
  1166. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/roi/server/mapping.py +0 -0
  1167. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/roi/server/operations.py +0 -0
  1168. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/roi/server/repository.py +0 -0
  1169. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/roi/server/schema.py +0 -0
  1170. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/roi/server/service.py +0 -0
  1171. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/roi/server/tableops.py +0 -0
  1172. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/roi/static/roi.css +0 -0
  1173. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/roi/static/roiAgentBridge.js +0 -0
  1174. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/roi/static/roiApi.js +0 -0
  1175. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/roi/static/roiFigureBridge.js +0 -0
  1176. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/roi/static/roiGeometry.js +0 -0
  1177. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/roi/static/roiRenderer.js +0 -0
  1178. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/roi/static/roiSidebarController.js +0 -0
  1179. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/roi/static/roiState.js +0 -0
  1180. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/roi/templates/roi/panel.html +0 -0
  1181. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/segmentation/__init__.py +0 -0
  1182. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/segmentation/capabilities.py +0 -0
  1183. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/segmentation/server/__init__.py +0 -0
  1184. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/segmentation/server/cellpose3d.py +0 -0
  1185. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/segmentation/server/routes.py +0 -0
  1186. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/segmentation/server/run.py +0 -0
  1187. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/segmentation/static/segmentation3d.css +0 -0
  1188. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/segmentation/static/segmentation3d.js +0 -0
  1189. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/segmentation/templates/segmentation/panel.html +0 -0
  1190. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/transcripts/server/__init__.py +0 -0
  1191. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/transcripts/server/routes.py +0 -0
  1192. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/transcripts/server/xenium.py +0 -0
  1193. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/transcripts/static/transcriptLayer.js +0 -0
  1194. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/transcripts/static/transcriptPoints.js +0 -0
  1195. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/transcripts/static/transcripts.css +0 -0
  1196. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/transcripts/static/transcriptsApi.js +0 -0
  1197. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/transcripts/static/transcriptsSidebarController.js +0 -0
  1198. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/transcripts/templates/transcripts/panel.html +0 -0
  1199. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/video_studio/server/encode_jobs.py +0 -0
  1200. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/video_studio/server/encoders.py +0 -0
  1201. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/video_studio/server/facts.py +0 -0
  1202. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/video_studio/server/manifest.py +0 -0
  1203. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/video_studio/server/operations.py +0 -0
  1204. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/video_studio/server/presets.py +0 -0
  1205. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/video_studio/server/repository.py +0 -0
  1206. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/video_studio/server/routes.py +0 -0
  1207. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/video_studio/server/schema.py +0 -0
  1208. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/video_studio/server/writers.py +0 -0
  1209. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/video_studio/static/vendor/LICENSE-mediabunny +0 -0
  1210. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/video_studio/static/vendor/README.md +0 -0
  1211. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/video_studio/static/vendor/mediabunny-1.60.0.mjs +0 -0
  1212. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/video_studio/static/videoAgentBridge.js +0 -0
  1213. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/video_studio/static/videoAnimation.js +0 -0
  1214. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/video_studio/static/videoArcLength.js +0 -0
  1215. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/video_studio/static/videoCamera2d.js +0 -0
  1216. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/video_studio/static/videoCamera3d.js +0 -0
  1217. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/video_studio/static/videoComposite.js +0 -0
  1218. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/video_studio/static/videoEasing.js +0 -0
  1219. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/video_studio/static/videoEncodeWorker.js +0 -0
  1220. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/video_studio/static/videoEncoders.js +0 -0
  1221. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/video_studio/static/videoExportLoop.js +0 -0
  1222. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/video_studio/static/videoExportUi.js +0 -0
  1223. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/video_studio/static/videoFigureBridge.js +0 -0
  1224. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/video_studio/static/videoHistory.js +0 -0
  1225. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/video_studio/static/videoInterp.js +0 -0
  1226. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/video_studio/static/videoOverlays.js +0 -0
  1227. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/video_studio/static/videoParamFields.js +0 -0
  1228. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/video_studio/static/videoPathEditor.js +0 -0
  1229. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/video_studio/static/videoPrefetch.js +0 -0
  1230. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/video_studio/static/videoPreview.js +0 -0
  1231. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/video_studio/static/videoProjectApi.js +0 -0
  1232. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/video_studio/static/videoReadiness.js +0 -0
  1233. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/video_studio/static/videoRecorder.js +0 -0
  1234. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/video_studio/static/videoRenderCoordinator.js +0 -0
  1235. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/video_studio/static/videoRenderCover.js +0 -0
  1236. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/video_studio/static/videoSchema.js +0 -0
  1237. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/video_studio/static/videoStage.js +0 -0
  1238. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/video_studio/static/videoStudioBar.js +0 -0
  1239. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/video_studio/static/videoStudioSidebarController.js +0 -0
  1240. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/video_studio/static/videoTimeline.js +0 -0
  1241. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/video_studio/static/video_studio.css +0 -0
  1242. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/visium_hd/server/__init__.py +0 -0
  1243. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/visium_hd/server/routes.py +0 -0
  1244. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/visium_hd/server/spots.py +0 -0
  1245. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/visium_hd/server/tenx.py +0 -0
  1246. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/visium_hd/static/binLayer.js +0 -0
  1247. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/visium_hd/static/spotLayer.js +0 -0
  1248. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/visium_hd/static/visiumHdApi.js +0 -0
  1249. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/visium_hd/static/visiumHdSidebarController.js +0 -0
  1250. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/visium_hd/static/visium_hd.css +0 -0
  1251. {plexora-0.0.28 → plexora-0.0.29}/plexora/plugins/visium_hd/templates/visium_hd/panel.html +0 -0
  1252. {plexora-0.0.28 → plexora-0.0.29}/plexora/proxy.py +0 -0
  1253. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/core_tools.py +0 -0
  1254. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/models/adapters/__init__.py +0 -0
  1255. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/models/adapters/anndata_adapter.py +0 -0
  1256. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/models/adapters/base.py +0 -0
  1257. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/models/adapters/classify.py +0 -0
  1258. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/models/adapters/csv_adapter.py +0 -0
  1259. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/models/adapters/flat_table.py +0 -0
  1260. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/models/adapters/inspection.py +0 -0
  1261. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/models/adapters/memory_adapter.py +0 -0
  1262. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/models/adapters/spatialdata_adapter.py +0 -0
  1263. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/models/bin_tiles.py +0 -0
  1264. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/models/centroid_tiles.py +0 -0
  1265. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/models/consistency.py +0 -0
  1266. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/models/database_model.py +0 -0
  1267. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/models/dataset_events.py +0 -0
  1268. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/models/datasets.py +0 -0
  1269. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/models/import_sample.py +0 -0
  1270. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/models/layer_jobs.py +0 -0
  1271. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/models/layer_sources.py +0 -0
  1272. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/models/manifest.py +0 -0
  1273. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/models/nodes.py +0 -0
  1274. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/models/project.py +0 -0
  1275. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/models/secret_store.py +0 -0
  1276. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/models/server_records.py +0 -0
  1277. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/models/table_correction.py +0 -0
  1278. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/models/transcript_tiles.py +0 -0
  1279. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/models/viewer_sessions.py +0 -0
  1280. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/models/views.py +0 -0
  1281. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/node/app.py +0 -0
  1282. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/node/resources.py +0 -0
  1283. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/providers/__init__.py +0 -0
  1284. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/providers/http.py +0 -0
  1285. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/providers/local.py +0 -0
  1286. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/providers/memory.py +0 -0
  1287. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/providers/operations.py +0 -0
  1288. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/routes/ai_routes.py +0 -0
  1289. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/routes/dataset_routes.py +0 -0
  1290. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/routes/gcloud_routes.py +0 -0
  1291. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/routes/project_routes.py +0 -0
  1292. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/routes/segment_routes.py +0 -0
  1293. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/routes/system_routes.py +0 -0
  1294. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/routes/telemetry_routes.py +0 -0
  1295. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/routes/update_routes.py +0 -0
  1296. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/surface/__init__.py +0 -0
  1297. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/surface/contacts.py +0 -0
  1298. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/surface/export.py +0 -0
  1299. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/surface/importers.py +0 -0
  1300. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/surface/isosurface.py +0 -0
  1301. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/surface/labels.py +0 -0
  1302. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/surface/levels.py +0 -0
  1303. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/surface/marching.py +0 -0
  1304. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/surface/mesh.py +0 -0
  1305. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/surface/nets.py +0 -0
  1306. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/surface/preview.py +0 -0
  1307. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/surface/refine.py +0 -0
  1308. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/surface/sections.py +0 -0
  1309. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/surface/store.py +0 -0
  1310. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/surface/suggest.py +0 -0
  1311. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/tile_batch.py +0 -0
  1312. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/utils/addHEColumns.py +0 -0
  1313. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/utils/boundary_mask.py +0 -0
  1314. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/utils/brightfield.py +0 -0
  1315. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/utils/cell_features.py +0 -0
  1316. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/utils/channel_file.py +0 -0
  1317. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/utils/colormaps.py +0 -0
  1318. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/utils/dicom_wsi.py +0 -0
  1319. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/utils/display_curve.py +0 -0
  1320. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/utils/fast_png.py +0 -0
  1321. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/utils/file_transfer.py +0 -0
  1322. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/utils/fullConversion.py +0 -0
  1323. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/utils/gene_groups.py +0 -0
  1324. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/utils/image_pyramid.py +0 -0
  1325. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/utils/jit.py +0 -0
  1326. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/utils/label_kernels.py +0 -0
  1327. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/utils/label_overlay.py +0 -0
  1328. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/utils/layer_composite.py +0 -0
  1329. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/utils/mask_polygon.py +0 -0
  1330. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/utils/memory_pyramid.py +0 -0
  1331. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/utils/native_dialog.py +0 -0
  1332. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/utils/ngff_transform.py +0 -0
  1333. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/utils/ome_zarr.py +0 -0
  1334. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/utils/pixel_scale.py +0 -0
  1335. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/utils/smallestenclosingcircle.py +0 -0
  1336. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/utils/source_image.py +0 -0
  1337. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/utils/spatial_index.py +0 -0
  1338. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/utils/spatial_scene.py +0 -0
  1339. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/utils/tenx_matrix.py +0 -0
  1340. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/utils/tiff_series.py +0 -0
  1341. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/utils/tiffsurgeon.py +0 -0
  1342. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/utils/xenium_cells.py +0 -0
  1343. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/utils/xenium_focus.py +0 -0
  1344. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/volume/__init__.py +0 -0
  1345. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/volume/axes.py +0 -0
  1346. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/volume/brick_serve.py +0 -0
  1347. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/volume/bricks.py +0 -0
  1348. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/volume/chunk_cache.py +0 -0
  1349. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/volume/measure.py +0 -0
  1350. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/volume/model.py +0 -0
  1351. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/volume/objects.py +0 -0
  1352. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/volume/pin.py +0 -0
  1353. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/volume/plane_view.py +0 -0
  1354. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/volume/planes.py +0 -0
  1355. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/volume/prefetch.py +0 -0
  1356. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/volume/provenance.py +0 -0
  1357. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/volume/qc3d.py +0 -0
  1358. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/volume/reduce.py +0 -0
  1359. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/volume/section_cells.py +0 -0
  1360. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/volume/serve.py +0 -0
  1361. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/volume/sources/dicom.py +0 -0
  1362. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/volume/sources/memory.py +0 -0
  1363. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/volume/sources/ngff.py +0 -0
  1364. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/volume/sources/tiff.py +0 -0
  1365. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/volume/tracking.py +0 -0
  1366. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/volume/viewspec.py +0 -0
  1367. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/volume/windows.py +0 -0
  1368. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/volume/zprofile.py +0 -0
  1369. {plexora-0.0.28 → plexora-0.0.29}/plexora/server/warmup.py +0 -0
  1370. {plexora-0.0.28 → plexora-0.0.29}/plexora/server_cli.py +0 -0
  1371. {plexora-0.0.28 → plexora-0.0.29}/plexora/telemetry/__init__.py +0 -0
  1372. {plexora-0.0.28 → plexora-0.0.29}/plexora/telemetry/agent_hooks.py +0 -0
  1373. {plexora-0.0.28 → plexora-0.0.29}/plexora/telemetry/batch.py +0 -0
  1374. {plexora-0.0.28 → plexora-0.0.29}/plexora/telemetry/cli.py +0 -0
  1375. {plexora-0.0.28 → plexora-0.0.29}/plexora/telemetry/dataset.py +0 -0
  1376. {plexora-0.0.28 → plexora-0.0.29}/plexora/telemetry/environment.py +0 -0
  1377. {plexora-0.0.28 → plexora-0.0.29}/plexora/telemetry/flask_hooks.py +0 -0
  1378. {plexora-0.0.28 → plexora-0.0.29}/plexora/telemetry/identity.py +0 -0
  1379. {plexora-0.0.28 → plexora-0.0.29}/plexora/telemetry/node_hooks.py +0 -0
  1380. {plexora-0.0.28 → plexora-0.0.29}/plexora/telemetry/performance.py +0 -0
  1381. {plexora-0.0.28 → plexora-0.0.29}/plexora/telemetry/queue.py +0 -0
  1382. {plexora-0.0.28 → plexora-0.0.29}/plexora/telemetry/redact.py +0 -0
  1383. {plexora-0.0.28 → plexora-0.0.29}/plexora/telemetry/report.py +0 -0
  1384. {plexora-0.0.28 → plexora-0.0.29}/plexora/telemetry/sample.py +0 -0
  1385. {plexora-0.0.28 → plexora-0.0.29}/plexora/telemetry/uploader.py +0 -0
  1386. {plexora-0.0.28 → plexora-0.0.29}/plexora/test.py +0 -0
  1387. {plexora-0.0.28 → plexora-0.0.29}/plexora/vision/__init__.py +0 -0
  1388. {plexora-0.0.28 → plexora-0.0.29}/plexora/vision/cli.py +0 -0
  1389. {plexora-0.0.28 → plexora-0.0.29}/plexora/vision/model_files.py +0 -0
  1390. {plexora-0.0.28 → plexora-0.0.29}/plexora/vision/propagate.py +0 -0
  1391. {plexora-0.0.28 → plexora-0.0.29}/plexora/vision/sam.py +0 -0
  1392. {plexora-0.0.28 → plexora-0.0.29}/plexora/vision/sam_backend.py +0 -0
  1393. {plexora-0.0.28 → plexora-0.0.29}/plexora/vision/sam_video.py +0 -0
  1394. {plexora-0.0.28 → plexora-0.0.29}/plexora/vision/sam_weights.py +0 -0
  1395. {plexora-0.0.28 → plexora-0.0.29}/plexora/vision/segment.py +0 -0
  1396. {plexora-0.0.28 → plexora-0.0.29}/plexora.egg-info/dependency_links.txt +0 -0
  1397. {plexora-0.0.28 → plexora-0.0.29}/plexora.egg-info/entry_points.txt +0 -0
  1398. {plexora-0.0.28 → plexora-0.0.29}/plexora.egg-info/top_level.txt +0 -0
  1399. {plexora-0.0.28 → plexora-0.0.29}/tests/test_agent_architecture.py +0 -0
  1400. {plexora-0.0.28 → plexora-0.0.29}/tests/test_agent_artifacts.py +0 -0
  1401. {plexora-0.0.28 → plexora-0.0.29}/tests/test_agent_client_probes.py +0 -0
  1402. {plexora-0.0.28 → plexora-0.0.29}/tests/test_agent_explain_cell.py +0 -0
  1403. {plexora-0.0.28 → plexora-0.0.29}/tests/test_agent_future_modality.py +0 -0
  1404. {plexora-0.0.28 → plexora-0.0.29}/tests/test_agent_gate_sampling.py +0 -0
  1405. {plexora-0.0.28 → plexora-0.0.29}/tests/test_agent_gating.py +0 -0
  1406. {plexora-0.0.28 → plexora-0.0.29}/tests/test_agent_gating_dataset.py +0 -0
  1407. {plexora-0.0.28 → plexora-0.0.29}/tests/test_agent_jobs.py +0 -0
  1408. {plexora-0.0.28 → plexora-0.0.29}/tests/test_agent_policy_scopes.py +0 -0
  1409. {plexora-0.0.28 → plexora-0.0.29}/tests/test_agent_registry.py +0 -0
  1410. {plexora-0.0.28 → plexora-0.0.29}/tests/test_agent_render.py +0 -0
  1411. {plexora-0.0.28 → plexora-0.0.29}/tests/test_agent_render_formats.py +0 -0
  1412. {plexora-0.0.28 → plexora-0.0.29}/tests/test_agent_render_layers.py +0 -0
  1413. {plexora-0.0.28 → plexora-0.0.29}/tests/test_agent_render_node.py +0 -0
  1414. {plexora-0.0.28 → plexora-0.0.29}/tests/test_agent_roi.py +0 -0
  1415. {plexora-0.0.28 → plexora-0.0.29}/tests/test_agent_routes_guard.py +0 -0
  1416. {plexora-0.0.28 → plexora-0.0.29}/tests/test_agent_scene.py +0 -0
  1417. {plexora-0.0.28 → plexora-0.0.29}/tests/test_agent_session.py +0 -0
  1418. {plexora-0.0.28 → plexora-0.0.29}/tests/test_agent_undo.py +0 -0
  1419. {plexora-0.0.28 → plexora-0.0.29}/tests/test_agent_viewer_routes.py +0 -0
  1420. {plexora-0.0.28 → plexora-0.0.29}/tests/test_ai_chat_panel.py +0 -0
  1421. {plexora-0.0.28 → plexora-0.0.29}/tests/test_ai_setup.py +0 -0
  1422. {plexora-0.0.28 → plexora-0.0.29}/tests/test_ai_token.py +0 -0
  1423. {plexora-0.0.28 → plexora-0.0.29}/tests/test_anndata_adapter.py +0 -0
  1424. {plexora-0.0.28 → plexora-0.0.29}/tests/test_api_dataset.py +0 -0
  1425. {plexora-0.0.28 → plexora-0.0.29}/tests/test_api_store.py +0 -0
  1426. {plexora-0.0.28 → plexora-0.0.29}/tests/test_app_router.py +0 -0
  1427. {plexora-0.0.28 → plexora-0.0.29}/tests/test_app_shell.py +0 -0
  1428. {plexora-0.0.28 → plexora-0.0.29}/tests/test_auth_token.py +0 -0
  1429. {plexora-0.0.28 → plexora-0.0.29}/tests/test_bin_tiles.py +0 -0
  1430. {plexora-0.0.28 → plexora-0.0.29}/tests/test_blank_frame.py +0 -0
  1431. {plexora-0.0.28 → plexora-0.0.29}/tests/test_boundary_mask.py +0 -0
  1432. {plexora-0.0.28 → plexora-0.0.29}/tests/test_bridge_handoff.py +0 -0
  1433. {plexora-0.0.28 → plexora-0.0.29}/tests/test_brightfield_detection.py +0 -0
  1434. {plexora-0.0.28 → plexora-0.0.29}/tests/test_brightfield_pipeline.py +0 -0
  1435. {plexora-0.0.28 → plexora-0.0.29}/tests/test_brightfield_reader.py +0 -0
  1436. {plexora-0.0.28 → plexora-0.0.29}/tests/test_brightfield_routes.py +0 -0
  1437. {plexora-0.0.28 → plexora-0.0.29}/tests/test_canvas_hint_js.py +0 -0
  1438. {plexora-0.0.28 → plexora-0.0.29}/tests/test_carry_over.py +0 -0
  1439. {plexora-0.0.28 → plexora-0.0.29}/tests/test_cell_color_layer.py +0 -0
  1440. {plexora-0.0.28 → plexora-0.0.29}/tests/test_cell_features.py +0 -0
  1441. {plexora-0.0.28 → plexora-0.0.29}/tests/test_centroid_tiles.py +0 -0
  1442. {plexora-0.0.28 → plexora-0.0.29}/tests/test_channel_auto_revert.py +0 -0
  1443. {plexora-0.0.28 → plexora-0.0.29}/tests/test_channel_fade_client.py +0 -0
  1444. {plexora-0.0.28 → plexora-0.0.29}/tests/test_channel_names_modal.py +0 -0
  1445. {plexora-0.0.28 → plexora-0.0.29}/tests/test_channel_names_sidecar.py +0 -0
  1446. {plexora-0.0.28 → plexora-0.0.29}/tests/test_channel_names_upload.py +0 -0
  1447. {plexora-0.0.28 → plexora-0.0.29}/tests/test_channel_overview.py +0 -0
  1448. {plexora-0.0.28 → plexora-0.0.29}/tests/test_channel_rename_state.py +0 -0
  1449. {plexora-0.0.28 → plexora-0.0.29}/tests/test_classify_columns.py +0 -0
  1450. {plexora-0.0.28 → plexora-0.0.29}/tests/test_cli.py +0 -0
  1451. {plexora-0.0.28 → plexora-0.0.29}/tests/test_colormaps.py +0 -0
  1452. {plexora-0.0.28 → plexora-0.0.29}/tests/test_column_classifier_css.py +0 -0
  1453. {plexora-0.0.28 → plexora-0.0.29}/tests/test_config_store.py +0 -0
  1454. {plexora-0.0.28 → plexora-0.0.29}/tests/test_connect.py +0 -0
  1455. {plexora-0.0.28 → plexora-0.0.29}/tests/test_connection_modal.py +0 -0
  1456. {plexora-0.0.28 → plexora-0.0.29}/tests/test_consistency.py +0 -0
  1457. {plexora-0.0.28 → plexora-0.0.29}/tests/test_core_tools.py +0 -0
  1458. {plexora-0.0.28 → plexora-0.0.29}/tests/test_csv_adapter.py +0 -0
  1459. {plexora-0.0.28 → plexora-0.0.29}/tests/test_csv_xyz.py +0 -0
  1460. {plexora-0.0.28 → plexora-0.0.29}/tests/test_data_location.py +0 -0
  1461. {plexora-0.0.28 → plexora-0.0.29}/tests/test_database_model.py +0 -0
  1462. {plexora-0.0.28 → plexora-0.0.29}/tests/test_datalayer_requests.py +0 -0
  1463. {plexora-0.0.28 → plexora-0.0.29}/tests/test_dataset_changed.py +0 -0
  1464. {plexora-0.0.28 → plexora-0.0.29}/tests/test_dataset_nav.py +0 -0
  1465. {plexora-0.0.28 → plexora-0.0.29}/tests/test_dataset_routes.py +0 -0
  1466. {plexora-0.0.28 → plexora-0.0.29}/tests/test_dataset_strip.py +0 -0
  1467. {plexora-0.0.28 → plexora-0.0.29}/tests/test_datasets_api.py +0 -0
  1468. {plexora-0.0.28 → plexora-0.0.29}/tests/test_datasets_api_on_a_node.py +0 -0
  1469. {plexora-0.0.28 → plexora-0.0.29}/tests/test_datasets_registry.py +0 -0
  1470. {plexora-0.0.28 → plexora-0.0.29}/tests/test_derive_anndata_channel_names.py +0 -0
  1471. {plexora-0.0.28 → plexora-0.0.29}/tests/test_desktop_cli.py +0 -0
  1472. {plexora-0.0.28 → plexora-0.0.29}/tests/test_desktop_process.py +0 -0
  1473. {plexora-0.0.28 → plexora-0.0.29}/tests/test_desktop_routes.py +0 -0
  1474. {plexora-0.0.28 → plexora-0.0.29}/tests/test_detect_data_type.py +0 -0
  1475. {plexora-0.0.28 → plexora-0.0.29}/tests/test_dicom_assembly.py +0 -0
  1476. {plexora-0.0.28 → plexora-0.0.29}/tests/test_dicom_detection.py +0 -0
  1477. {plexora-0.0.28 → plexora-0.0.29}/tests/test_dicom_pyramid.py +0 -0
  1478. {plexora-0.0.28 → plexora-0.0.29}/tests/test_dicom_registration.py +0 -0
  1479. {plexora-0.0.28 → plexora-0.0.29}/tests/test_dicom_routes.py +0 -0
  1480. {plexora-0.0.28 → plexora-0.0.29}/tests/test_display_curve.py +0 -0
  1481. {plexora-0.0.28 → plexora-0.0.29}/tests/test_docs_coverage.py +0 -0
  1482. {plexora-0.0.28 → plexora-0.0.29}/tests/test_docs_docstrings.py +0 -0
  1483. {plexora-0.0.28 → plexora-0.0.29}/tests/test_docs_envvars.py +0 -0
  1484. {plexora-0.0.28 → plexora-0.0.29}/tests/test_docs_examples.py +0 -0
  1485. {plexora-0.0.28 → plexora-0.0.29}/tests/test_docs_freshness.py +0 -0
  1486. {plexora-0.0.28 → plexora-0.0.29}/tests/test_docs_signatures.py +0 -0
  1487. {plexora-0.0.28 → plexora-0.0.29}/tests/test_file_transfer_node.py +0 -0
  1488. {plexora-0.0.28 → plexora-0.0.29}/tests/test_gate_not_called_js.py +0 -0
  1489. {plexora-0.0.28 → plexora-0.0.29}/tests/test_gating_hierarchy.py +0 -0
  1490. {plexora-0.0.28 → plexora-0.0.29}/tests/test_gating_planes_js.py +0 -0
  1491. {plexora-0.0.28 → plexora-0.0.29}/tests/test_gating_qc_exclusion.py +0 -0
  1492. {plexora-0.0.28 → plexora-0.0.29}/tests/test_gating_replan.py +0 -0
  1493. {plexora-0.0.28 → plexora-0.0.29}/tests/test_gcloud.py +0 -0
  1494. {plexora-0.0.28 → plexora-0.0.29}/tests/test_hd_slider_domain.py +0 -0
  1495. {plexora-0.0.28 → plexora-0.0.29}/tests/test_icon_names.py +0 -0
  1496. {plexora-0.0.28 → plexora-0.0.29}/tests/test_image_pyramid.py +0 -0
  1497. {plexora-0.0.28 → plexora-0.0.29}/tests/test_image_status.py +0 -0
  1498. {plexora-0.0.28 → plexora-0.0.29}/tests/test_import_costs_nothing.py +0 -0
  1499. {plexora-0.0.28 → plexora-0.0.29}/tests/test_import_entry_points.py +0 -0
  1500. {plexora-0.0.28 → plexora-0.0.29}/tests/test_import_from_a_node.py +0 -0
  1501. {plexora-0.0.28 → plexora-0.0.29}/tests/test_import_help.py +0 -0
  1502. {plexora-0.0.28 → plexora-0.0.29}/tests/test_import_progressive.py +0 -0
  1503. {plexora-0.0.28 → plexora-0.0.29}/tests/test_import_roles.py +0 -0
  1504. {plexora-0.0.28 → plexora-0.0.29}/tests/test_import_routes_json_errors.py +0 -0
  1505. {plexora-0.0.28 → plexora-0.0.29}/tests/test_jupyter_viewer.py +0 -0
  1506. {plexora-0.0.28 → plexora-0.0.29}/tests/test_label_gpu.py +0 -0
  1507. {plexora-0.0.28 → plexora-0.0.29}/tests/test_label_gpu_parity.py +0 -0
  1508. {plexora-0.0.28 → plexora-0.0.29}/tests/test_label_outlines.py +0 -0
  1509. {plexora-0.0.28 → plexora-0.0.29}/tests/test_label_overlay.py +0 -0
  1510. {plexora-0.0.28 → plexora-0.0.29}/tests/test_label_region.py +0 -0
  1511. {plexora-0.0.28 → plexora-0.0.29}/tests/test_label_tile_lifecycle.py +0 -0
  1512. {plexora-0.0.28 → plexora-0.0.29}/tests/test_launch_context.py +0 -0
  1513. {plexora-0.0.28 → plexora-0.0.29}/tests/test_launch_state.py +0 -0
  1514. {plexora-0.0.28 → plexora-0.0.29}/tests/test_layer_channel_panel.py +0 -0
  1515. {plexora-0.0.28 → plexora-0.0.29}/tests/test_layer_draw.py +0 -0
  1516. {plexora-0.0.28 → plexora-0.0.29}/tests/test_layer_jobs.py +0 -0
  1517. {plexora-0.0.28 → plexora-0.0.29}/tests/test_layer_manager.py +0 -0
  1518. {plexora-0.0.28 → plexora-0.0.29}/tests/test_layer_sources.py +0 -0
  1519. {plexora-0.0.28 → plexora-0.0.29}/tests/test_layer_spec.py +0 -0
  1520. {plexora-0.0.28 → plexora-0.0.29}/tests/test_layer_state.py +0 -0
  1521. {plexora-0.0.28 → plexora-0.0.29}/tests/test_layer_transform.py +0 -0
  1522. {plexora-0.0.28 → plexora-0.0.29}/tests/test_layer_visibility.py +0 -0
  1523. {plexora-0.0.28 → plexora-0.0.29}/tests/test_lifetime.py +0 -0
  1524. {plexora-0.0.28 → plexora-0.0.29}/tests/test_load_progress.py +0 -0
  1525. {plexora-0.0.28 → plexora-0.0.29}/tests/test_logging.py +0 -0
  1526. {plexora-0.0.28 → plexora-0.0.29}/tests/test_magic_select_wording.py +0 -0
  1527. {plexora-0.0.28 → plexora-0.0.29}/tests/test_magic_toolbar_js.py +0 -0
  1528. {plexora-0.0.28 → plexora-0.0.29}/tests/test_manifest.py +0 -0
  1529. {plexora-0.0.28 → plexora-0.0.29}/tests/test_marker_split.py +0 -0
  1530. {plexora-0.0.28 → plexora-0.0.29}/tests/test_mask_without_table.py +0 -0
  1531. {plexora-0.0.28 → plexora-0.0.29}/tests/test_mcp_http.py +0 -0
  1532. {plexora-0.0.28 → plexora-0.0.29}/tests/test_mcp_profiles.py +0 -0
  1533. {plexora-0.0.28 → plexora-0.0.29}/tests/test_mcp_stdio.py +0 -0
  1534. {plexora-0.0.28 → plexora-0.0.29}/tests/test_memory_adapter.py +0 -0
  1535. {plexora-0.0.28 → plexora-0.0.29}/tests/test_memory_datasource.py +0 -0
  1536. {plexora-0.0.28 → plexora-0.0.29}/tests/test_memory_pyramid.py +0 -0
  1537. {plexora-0.0.28 → plexora-0.0.29}/tests/test_metadata_columns.py +0 -0
  1538. {plexora-0.0.28 → plexora-0.0.29}/tests/test_nan_tables.py +0 -0
  1539. {plexora-0.0.28 → plexora-0.0.29}/tests/test_nav_shortcuts.py +0 -0
  1540. {plexora-0.0.28 → plexora-0.0.29}/tests/test_nearest_cell.py +0 -0
  1541. {plexora-0.0.28 → plexora-0.0.29}/tests/test_node_cell_features.py +0 -0
  1542. {plexora-0.0.28 → plexora-0.0.29}/tests/test_node_direct_routing.py +0 -0
  1543. {plexora-0.0.28 → plexora-0.0.29}/tests/test_node_disconnect.py +0 -0
  1544. {plexora-0.0.28 → plexora-0.0.29}/tests/test_node_image.py +0 -0
  1545. {plexora-0.0.28 → plexora-0.0.29}/tests/test_node_image_pyramid.py +0 -0
  1546. {plexora-0.0.28 → plexora-0.0.29}/tests/test_node_image_type.py +0 -0
  1547. {plexora-0.0.28 → plexora-0.0.29}/tests/test_node_label_volume.py +0 -0
  1548. {plexora-0.0.28 → plexora-0.0.29}/tests/test_node_mask_status.py +0 -0
  1549. {plexora-0.0.28 → plexora-0.0.29}/tests/test_node_new_formats.py +0 -0
  1550. {plexora-0.0.28 → plexora-0.0.29}/tests/test_node_plane_index.py +0 -0
  1551. {plexora-0.0.28 → plexora-0.0.29}/tests/test_node_reconnect.py +0 -0
  1552. {plexora-0.0.28 → plexora-0.0.29}/tests/test_node_routes.py +0 -0
  1553. {plexora-0.0.28 → plexora-0.0.29}/tests/test_node_surfaces.py +0 -0
  1554. {plexora-0.0.28 → plexora-0.0.29}/tests/test_node_table.py +0 -0
  1555. {plexora-0.0.28 → plexora-0.0.29}/tests/test_node_warm_and_cache.py +0 -0
  1556. {plexora-0.0.28 → plexora-0.0.29}/tests/test_notebook_env.py +0 -0
  1557. {plexora-0.0.28 → plexora-0.0.29}/tests/test_notebook_mode.py +0 -0
  1558. {plexora-0.0.28 → plexora-0.0.29}/tests/test_ome_zarr_reader.py +0 -0
  1559. {plexora-0.0.28 → plexora-0.0.29}/tests/test_open_project.py +0 -0
  1560. {plexora-0.0.28 → plexora-0.0.29}/tests/test_optional_segmentation.py +0 -0
  1561. {plexora-0.0.28 → plexora-0.0.29}/tests/test_page_assets.py +0 -0
  1562. {plexora-0.0.28 → plexora-0.0.29}/tests/test_page_routes.py +0 -0
  1563. {plexora-0.0.28 → plexora-0.0.29}/tests/test_paths.py +0 -0
  1564. {plexora-0.0.28 → plexora-0.0.29}/tests/test_pixel_scale.py +0 -0
  1565. {plexora-0.0.28 → plexora-0.0.29}/tests/test_pixel_size.py +0 -0
  1566. {plexora-0.0.28 → plexora-0.0.29}/tests/test_plane_index.py +0 -0
  1567. {plexora-0.0.28 → plexora-0.0.29}/tests/test_plugin_css_boundary.py +0 -0
  1568. {plexora-0.0.28 → plexora-0.0.29}/tests/test_plugin_layers.py +0 -0
  1569. {plexora-0.0.28 → plexora-0.0.29}/tests/test_popover_menu.py +0 -0
  1570. {plexora-0.0.28 → plexora-0.0.29}/tests/test_popover_portal.py +0 -0
  1571. {plexora-0.0.28 → plexora-0.0.29}/tests/test_presets_nuclear.py +0 -0
  1572. {plexora-0.0.28 → plexora-0.0.29}/tests/test_prime_hot_code.py +0 -0
  1573. {plexora-0.0.28 → plexora-0.0.29}/tests/test_project_bind.py +0 -0
  1574. {plexora-0.0.28 → plexora-0.0.29}/tests/test_project_edit_routes.py +0 -0
  1575. {plexora-0.0.28 → plexora-0.0.29}/tests/test_project_layer_routes.py +0 -0
  1576. {plexora-0.0.28 → plexora-0.0.29}/tests/test_project_record.py +0 -0
  1577. {plexora-0.0.28 → plexora-0.0.29}/tests/test_project_title.py +0 -0
  1578. {plexora-0.0.28 → plexora-0.0.29}/tests/test_qc_artifacts_js.py +0 -0
  1579. {plexora-0.0.28 → plexora-0.0.29}/tests/test_qc_blur_js.py +0 -0
  1580. {plexora-0.0.28 → plexora-0.0.29}/tests/test_qc_candidate_noise.py +0 -0
  1581. {plexora-0.0.28 → plexora-0.0.29}/tests/test_qc_cell_rules.py +0 -0
  1582. {plexora-0.0.28 → plexora-0.0.29}/tests/test_qc_cells_frame.py +0 -0
  1583. {plexora-0.0.28 → plexora-0.0.29}/tests/test_qc_delegated_run_fixes.py +0 -0
  1584. {plexora-0.0.28 → plexora-0.0.29}/tests/test_qc_detectors.py +0 -0
  1585. {plexora-0.0.28 → plexora-0.0.29}/tests/test_qc_digest.py +0 -0
  1586. {plexora-0.0.28 → plexora-0.0.29}/tests/test_qc_geojson_member.py +0 -0
  1587. {plexora-0.0.28 → plexora-0.0.29}/tests/test_qc_hover_js.py +0 -0
  1588. {plexora-0.0.28 → plexora-0.0.29}/tests/test_qc_live_run_fixes.py +0 -0
  1589. {plexora-0.0.28 → plexora-0.0.29}/tests/test_qc_magic_js.py +0 -0
  1590. {plexora-0.0.28 → plexora-0.0.29}/tests/test_qc_magic_select.py +0 -0
  1591. {plexora-0.0.28 → plexora-0.0.29}/tests/test_qc_picker_js.py +0 -0
  1592. {plexora-0.0.28 → plexora-0.0.29}/tests/test_qc_provenance.py +0 -0
  1593. {plexora-0.0.28 → plexora-0.0.29}/tests/test_qc_refine.py +0 -0
  1594. {plexora-0.0.28 → plexora-0.0.29}/tests/test_qc_registration.py +0 -0
  1595. {plexora-0.0.28 → plexora-0.0.29}/tests/test_qc_registration_js.py +0 -0
  1596. {plexora-0.0.28 → plexora-0.0.29}/tests/test_qc_scan.py +0 -0
  1597. {plexora-0.0.28 → plexora-0.0.29}/tests/test_qc_score_fields.py +0 -0
  1598. {plexora-0.0.28 → plexora-0.0.29}/tests/test_qc_units.py +0 -0
  1599. {plexora-0.0.28 → plexora-0.0.29}/tests/test_reconnect.py +0 -0
  1600. {plexora-0.0.28 → plexora-0.0.29}/tests/test_refresh_dataset.py +0 -0
  1601. {plexora-0.0.28 → plexora-0.0.29}/tests/test_register_anndata_datasource.py +0 -0
  1602. {plexora-0.0.28 → plexora-0.0.29}/tests/test_register_image_datasource.py +0 -0
  1603. {plexora-0.0.28 → plexora-0.0.29}/tests/test_register_zarr_image_datasource.py +0 -0
  1604. {plexora-0.0.28 → plexora-0.0.29}/tests/test_release_script.py +0 -0
  1605. {plexora-0.0.28 → plexora-0.0.29}/tests/test_remote_chunk_cache.py +0 -0
  1606. {plexora-0.0.28 → plexora-0.0.29}/tests/test_remote_connect.py +0 -0
  1607. {plexora-0.0.28 → plexora-0.0.29}/tests/test_remote_dicom.py +0 -0
  1608. {plexora-0.0.28 → plexora-0.0.29}/tests/test_remote_discovery.py +0 -0
  1609. {plexora-0.0.28 → plexora-0.0.29}/tests/test_remote_file.py +0 -0
  1610. {plexora-0.0.28 → plexora-0.0.29}/tests/test_remote_health.py +0 -0
  1611. {plexora-0.0.28 → plexora-0.0.29}/tests/test_remote_image_provider.py +0 -0
  1612. {plexora-0.0.28 → plexora-0.0.29}/tests/test_remote_image_status.py +0 -0
  1613. {plexora-0.0.28 → plexora-0.0.29}/tests/test_remote_jobs.py +0 -0
  1614. {plexora-0.0.28 → plexora-0.0.29}/tests/test_remote_labels.py +0 -0
  1615. {plexora-0.0.28 → plexora-0.0.29}/tests/test_remote_locator.py +0 -0
  1616. {plexora-0.0.28 → plexora-0.0.29}/tests/test_remote_picture.py +0 -0
  1617. {plexora-0.0.28 → plexora-0.0.29}/tests/test_remote_state.py +0 -0
  1618. {plexora-0.0.28 → plexora-0.0.29}/tests/test_remote_tables.py +0 -0
  1619. {plexora-0.0.28 → plexora-0.0.29}/tests/test_remote_tiff.py +0 -0
  1620. {plexora-0.0.28 → plexora-0.0.29}/tests/test_rename_channels.py +0 -0
  1621. {plexora-0.0.28 → plexora-0.0.29}/tests/test_rename_channels_json.py +0 -0
  1622. {plexora-0.0.28 → plexora-0.0.29}/tests/test_render_clipboard.py +0 -0
  1623. {plexora-0.0.28 → plexora-0.0.29}/tests/test_requirements_routes.py +0 -0
  1624. {plexora-0.0.28 → plexora-0.0.29}/tests/test_resource_status_notice.py +0 -0
  1625. {plexora-0.0.28 → plexora-0.0.29}/tests/test_roi_magic_js.py +0 -0
  1626. {plexora-0.0.28 → plexora-0.0.29}/tests/test_scimappro_plugin.py +0 -0
  1627. {plexora-0.0.28 → plexora-0.0.29}/tests/test_section_cells.py +0 -0
  1628. {plexora-0.0.28 → plexora-0.0.29}/tests/test_segment_service_js.py +0 -0
  1629. {plexora-0.0.28 → plexora-0.0.29}/tests/test_segmentation_mapping.py +0 -0
  1630. {plexora-0.0.28 → plexora-0.0.29}/tests/test_segmentation_mode_routes.py +0 -0
  1631. {plexora-0.0.28 → plexora-0.0.29}/tests/test_segmentation_pyramid.py +0 -0
  1632. {plexora-0.0.28 → plexora-0.0.29}/tests/test_segmentation_wait.py +0 -0
  1633. {plexora-0.0.28 → plexora-0.0.29}/tests/test_selection.py +0 -0
  1634. {plexora-0.0.28 → plexora-0.0.29}/tests/test_server_records.py +0 -0
  1635. {plexora-0.0.28 → plexora-0.0.29}/tests/test_session_expiry.py +0 -0
  1636. {plexora-0.0.28 → plexora-0.0.29}/tests/test_session_mirror.py +0 -0
  1637. {plexora-0.0.28 → plexora-0.0.29}/tests/test_session_walltime.py +0 -0
  1638. {plexora-0.0.28 → plexora-0.0.29}/tests/test_settings_page.py +0 -0
  1639. {plexora-0.0.28 → plexora-0.0.29}/tests/test_settings_remotes_page.py +0 -0
  1640. {plexora-0.0.28 → plexora-0.0.29}/tests/test_shared_roots.py +0 -0
  1641. {plexora-0.0.28 → plexora-0.0.29}/tests/test_sidebar_scoping.py +0 -0
  1642. {plexora-0.0.28 → plexora-0.0.29}/tests/test_single_image_import.py +0 -0
  1643. {plexora-0.0.28 → plexora-0.0.29}/tests/test_slider.py +0 -0
  1644. {plexora-0.0.28 → plexora-0.0.29}/tests/test_slider_css.py +0 -0
  1645. {plexora-0.0.28 → plexora-0.0.29}/tests/test_source_image_core.py +0 -0
  1646. {plexora-0.0.28 → plexora-0.0.29}/tests/test_spatial_index.py +0 -0
  1647. {plexora-0.0.28 → plexora-0.0.29}/tests/test_spatial_scene.py +0 -0
  1648. {plexora-0.0.28 → plexora-0.0.29}/tests/test_spatialdata_adapter.py +0 -0
  1649. {plexora-0.0.28 → plexora-0.0.29}/tests/test_spatialdata_image_import.py +0 -0
  1650. {plexora-0.0.28 → plexora-0.0.29}/tests/test_stack_contrast_client.py +0 -0
  1651. {plexora-0.0.28 → plexora-0.0.29}/tests/test_staged_progress.py +0 -0
  1652. {plexora-0.0.28 → plexora-0.0.29}/tests/test_subprocess_flags.py +0 -0
  1653. {plexora-0.0.28 → plexora-0.0.29}/tests/test_surface_agent.py +0 -0
  1654. {plexora-0.0.28 → plexora-0.0.29}/tests/test_surface_engine.py +0 -0
  1655. {plexora-0.0.28 → plexora-0.0.29}/tests/test_surface_perf.py +0 -0
  1656. {plexora-0.0.28 → plexora-0.0.29}/tests/test_table_correction.py +0 -0
  1657. {plexora-0.0.28 → plexora-0.0.29}/tests/test_table_progress.py +0 -0
  1658. {plexora-0.0.28 → plexora-0.0.29}/tests/test_telemetry_agent.py +0 -0
  1659. {plexora-0.0.28 → plexora-0.0.29}/tests/test_telemetry_cli.py +0 -0
  1660. {plexora-0.0.28 → plexora-0.0.29}/tests/test_telemetry_client.py +0 -0
  1661. {plexora-0.0.28 → plexora-0.0.29}/tests/test_telemetry_config.py +0 -0
  1662. {plexora-0.0.28 → plexora-0.0.29}/tests/test_telemetry_dataset.py +0 -0
  1663. {plexora-0.0.28 → plexora-0.0.29}/tests/test_telemetry_hooks.py +0 -0
  1664. {plexora-0.0.28 → plexora-0.0.29}/tests/test_telemetry_hooks_cost.py +0 -0
  1665. {plexora-0.0.28 → plexora-0.0.29}/tests/test_telemetry_js.py +0 -0
  1666. {plexora-0.0.28 → plexora-0.0.29}/tests/test_telemetry_node.py +0 -0
  1667. {plexora-0.0.28 → plexora-0.0.29}/tests/test_telemetry_privacy.py +0 -0
  1668. {plexora-0.0.28 → plexora-0.0.29}/tests/test_telemetry_queue.py +0 -0
  1669. {plexora-0.0.28 → plexora-0.0.29}/tests/test_telemetry_routes.py +0 -0
  1670. {plexora-0.0.28 → plexora-0.0.29}/tests/test_telemetry_schema.py +0 -0
  1671. {plexora-0.0.28 → plexora-0.0.29}/tests/test_telemetry_tiles.py +0 -0
  1672. {plexora-0.0.28 → plexora-0.0.29}/tests/test_tenx_matrix.py +0 -0
  1673. {plexora-0.0.28 → plexora-0.0.29}/tests/test_thumbnail_rgb.py +0 -0
  1674. {plexora-0.0.28 → plexora-0.0.29}/tests/test_tiff_hyperstack.py +0 -0
  1675. {plexora-0.0.28 → plexora-0.0.29}/tests/test_tiff_region.py +0 -0
  1676. {plexora-0.0.28 → plexora-0.0.29}/tests/test_tile_batch.py +0 -0
  1677. {plexora-0.0.28 → plexora-0.0.29}/tests/test_tile_colorize.py +0 -0
  1678. {plexora-0.0.28 → plexora-0.0.29}/tests/test_tile_url.py +0 -0
  1679. {plexora-0.0.28 → plexora-0.0.29}/tests/test_toast.py +0 -0
  1680. {plexora-0.0.28 → plexora-0.0.29}/tests/test_tool_assets.py +0 -0
  1681. {plexora-0.0.28 → plexora-0.0.29}/tests/test_tool_cards.py +0 -0
  1682. {plexora-0.0.28 → plexora-0.0.29}/tests/test_tool_coexistence.py +0 -0
  1683. {plexora-0.0.28 → plexora-0.0.29}/tests/test_tool_switching.py +0 -0
  1684. {plexora-0.0.28 → plexora-0.0.29}/tests/test_transcript_cost.py +0 -0
  1685. {plexora-0.0.28 → plexora-0.0.29}/tests/test_transcript_tiles.py +0 -0
  1686. {plexora-0.0.28 → plexora-0.0.29}/tests/test_transfer_routes.py +0 -0
  1687. {plexora-0.0.28 → plexora-0.0.29}/tests/test_unreachable_node.py +0 -0
  1688. {plexora-0.0.28 → plexora-0.0.29}/tests/test_updates.py +0 -0
  1689. {plexora-0.0.28 → plexora-0.0.29}/tests/test_url_helpers.py +0 -0
  1690. {plexora-0.0.28 → plexora-0.0.29}/tests/test_view_menu.py +0 -0
  1691. {plexora-0.0.28 → plexora-0.0.29}/tests/test_view_snapshot_js.py +0 -0
  1692. {plexora-0.0.28 → plexora-0.0.29}/tests/test_view_transform.py +0 -0
  1693. {plexora-0.0.28 → plexora-0.0.29}/tests/test_view_transform_routes.py +0 -0
  1694. {plexora-0.0.28 → plexora-0.0.29}/tests/test_viewer_color_by.py +0 -0
  1695. {plexora-0.0.28 → plexora-0.0.29}/tests/test_viewer_error_state.py +0 -0
  1696. {plexora-0.0.28 → plexora-0.0.29}/tests/test_viewer_loader.py +0 -0
  1697. {plexora-0.0.28 → plexora-0.0.29}/tests/test_viewer_sessions.py +0 -0
  1698. {plexora-0.0.28 → plexora-0.0.29}/tests/test_vision_sam.py +0 -0
  1699. {plexora-0.0.28 → plexora-0.0.29}/tests/test_vision_segment.py +0 -0
  1700. {plexora-0.0.28 → plexora-0.0.29}/tests/test_volume_bricks.py +0 -0
  1701. {plexora-0.0.28 → plexora-0.0.29}/tests/test_volume_bricks_serve.py +0 -0
  1702. {plexora-0.0.28 → plexora-0.0.29}/tests/test_volume_core.py +0 -0
  1703. {plexora-0.0.28 → plexora-0.0.29}/tests/test_volume_deep_stacks.py +0 -0
  1704. {plexora-0.0.28 → plexora-0.0.29}/tests/test_volume_dicom.py +0 -0
  1705. {plexora-0.0.28 → plexora-0.0.29}/tests/test_volume_labels.py +0 -0
  1706. {plexora-0.0.28 → plexora-0.0.29}/tests/test_volume_level_cache.py +0 -0
  1707. {plexora-0.0.28 → plexora-0.0.29}/tests/test_volume_magic.py +0 -0
  1708. {plexora-0.0.28 → plexora-0.0.29}/tests/test_volume_memory.py +0 -0
  1709. {plexora-0.0.28 → plexora-0.0.29}/tests/test_volume_pin.py +0 -0
  1710. {plexora-0.0.28 → plexora-0.0.29}/tests/test_volume_plane_read_ahead.py +0 -0
  1711. {plexora-0.0.28 → plexora-0.0.29}/tests/test_volume_remote.py +0 -0
  1712. {plexora-0.0.28 → plexora-0.0.29}/tests/test_volume_sections.py +0 -0
  1713. {plexora-0.0.28 → plexora-0.0.29}/tests/test_volume_window_provisional.py +0 -0
  1714. {plexora-0.0.28 → plexora-0.0.29}/tests/test_wide_features.py +0 -0
  1715. {plexora-0.0.28 → plexora-0.0.29}/tests/test_xenium_cells.py +0 -0
  1716. {plexora-0.0.28 → plexora-0.0.29}/tests/test_xenium_focus.py +0 -0
  1717. {plexora-0.0.28 → plexora-0.0.29}/tests/test_zarr_write_retry.py +0 -0
plexora-0.0.29/LICENSE ADDED
@@ -0,0 +1,377 @@
1
+ Plexora End User Licence Agreement
2
+ Version 1.0
3
+ SPDX-License-Identifier: LicenseRef-Plexora-EULA-1.0
4
+
5
+ Copyright (c) 2026 BioCognia. All rights reserved.
6
+
7
+ IMPORTANT: read this agreement before installing or using Plexora. By
8
+ installing, copying, or using the Software you agree to be bound by it. If you
9
+ do not agree, do not install or use the Software.
10
+
11
+ In short, for orientation only (the terms below are what govern):
12
+
13
+ - Plexora Free -- everything Plexora does without a licence -- may be used by
14
+ anyone, for any purpose, including commercial use, at no charge and with no
15
+ account.
16
+ - Plexora Pro is a paid subscription, per Seat and per term, bought for an
17
+ academic or a commercial Use Class at https://account.biocognia.com.
18
+ - Plugins are welcome: you may build and distribute them freely, and you own
19
+ what you write.
20
+ - You may not publish a modified copy or fork of Plexora itself.
21
+
22
+ --------------------------------------------------------------------------
23
+
24
+ 1. DEFINITIONS
25
+
26
+ "Software" means Plexora, including its source code, object code,
27
+ documentation, and bundled assets, as made available by the Licensor,
28
+ excluding Third-Party Components (Section 13).
29
+
30
+ "Licensor" ("we", "us") means BioCognia, 22 West Ave, Brockton, MA 02301,
31
+ USA.
32
+
33
+ "You" means the individual or legal entity exercising rights under this
34
+ agreement. If you are acting in the course of your employment or
35
+ engagement, "You" includes your employer or the entity engaging you.
36
+
37
+ "Free" means the Software used without a Licence Key: every feature that
38
+ runs without one.
39
+
40
+ "Licensed Features" means the features of the Software that run only under
41
+ a Licence Key that grants them: the features of Plexora Pro, and any
42
+ feature that is off by default and that the Licensor has enabled for your
43
+ Licence Key (Section 3).
44
+
45
+ "Licence Key" means a licence key, activation code, token, certificate, or
46
+ offline licence file issued through the Account Portal that enables
47
+ Licensed Features.
48
+
49
+ "Account Portal" means the BioCognia account platform at
50
+ https://account.biocognia.com, through which accounts, seats, devices and
51
+ purchases are managed.
52
+
53
+ "Subscription Term" means the period for which you have paid, as stated in
54
+ your order or in the Account Portal.
55
+
56
+ "Seat" means one named individual permitted to use Licensed Features under
57
+ your subscription.
58
+
59
+ "Use Class" means the class of use a subscription was bought for, academic
60
+ or commercial, as stated in your order.
61
+
62
+ "Noncommercial Purpose" means any use that is not a Commercial Use,
63
+ including academic research, classroom and educational use, personal
64
+ study, and use by a nonprofit research institute, public research
65
+ organization, charitable organization, or government body. Use by such
66
+ an organization is a Noncommercial Purpose regardless of the source of
67
+ its funding, including funding from a commercial entity, provided the
68
+ use itself is not a Commercial Use.
69
+
70
+ "Commercial Use" means use of the Software that is directed toward
71
+ commercial advantage or monetary compensation, including without
72
+ limitation: use by or on behalf of a for-profit entity in its business
73
+ operations; use to provide services to third parties for a fee; use to
74
+ develop, test, manufacture, validate, or support a product or service
75
+ that is sold or licensed for a fee; use in fee-for-service contract
76
+ research; and incorporating the Software or its output into a commercial
77
+ product or offering.
78
+
79
+ "Plugin" means software that extends the Software solely through the
80
+ Software's documented extension interfaces -- the `plexora.plugins`
81
+ entry point group and the public API exposed by the `plexora.api`
82
+ package -- and that does not include, embed, or require any modification
83
+ to the Software.
84
+
85
+ "Modified Version" means any copy of the Software in which any file has
86
+ been added, removed, altered, renamed, or replaced, and any work that is
87
+ a derivative work of the Software under copyright law. A Plugin is not
88
+ a Modified Version.
89
+
90
+ "Your Results" means data, figures, gates, regions, reports, and other
91
+ output you produce by running the Software on your own data.
92
+
93
+ 2. FREE: GRANT FOR ANY PURPOSE
94
+
95
+ Subject to your compliance with this agreement, we grant you a
96
+ worldwide, royalty-free, non-exclusive, non-transferable, non-
97
+ sublicensable licence to:
98
+
99
+ (a) install, run, and use the Software as Free for any purpose,
100
+ including Commercial Use;
101
+
102
+ (b) reproduce and distribute verbatim, unmodified copies of the
103
+ Software, provided that each copy retains this agreement in full and
104
+ all copyright and attribution notices; and
105
+
106
+ (c) make modifications to your own copy of the Software, solely for your
107
+ own internal use -- for example to fix a bug, resolve a
108
+ compatibility problem in your environment, or debug an issue --
109
+ subject to Sections 5 and 6, and never to enable Licensed Features
110
+ without a Licence Key that grants them.
111
+
112
+ Free needs no account, no Licence Key, and no network connection. No
113
+ fee may be charged for the Software itself under this grant. Recovery of
114
+ actual media or bandwidth costs for distributing a verbatim copy is
115
+ permitted. Which features run as Free may change between versions of the
116
+ Software.
117
+
118
+ 3. PRO: GRANT PER SEAT, TERM, AND USE CLASS
119
+
120
+ Subject to this agreement and to payment of the applicable fees, we grant
121
+ you a non-exclusive, non-transferable, non-sublicensable licence, during
122
+ the Subscription Term, to use the Licensed Features your Licence Key
123
+ grants:
124
+
125
+ (a) for the number of Seats you have purchased, each used by the one
126
+ named individual it is assigned to;
127
+
128
+ (b) on the number of devices per Seat stated in your plan or in the
129
+ Account Portal; and
130
+
131
+ (c) within the Use Class you purchased: a subscription bought for the
132
+ academic Use Class may be used for Noncommercial Purposes only; a
133
+ subscription bought for the commercial Use Class may be used for any
134
+ purpose, including Commercial Use.
135
+
136
+ Plexora Pro includes every Licensed Feature of the Software, Video Studio
137
+ among them, except the features that are off by default. A feature that
138
+ is off by default, such as External MCP access, is not part of Plexora Pro
139
+ or of a trial and is not sold; the Licensor may enable it for a Licence
140
+ Key, at its discretion, and once enabled it is used on the same terms as
141
+ Plexora Pro, for the Seats and the Subscription Term of that licence.
142
+
143
+ A trial licence grants Plexora Pro for the trial period stated when it
144
+ starts, to evaluate the Software, at no charge. It ends at the end of
145
+ that period and does not renew.
146
+
147
+ Everything else in the Software remains available to you as Free under
148
+ Section 2.
149
+
150
+ 4. ACADEMIC USE CLASS
151
+
152
+ The academic Use Class is available to individuals at accredited
153
+ universities, teaching hospitals, government research institutes, and
154
+ other non-profit research organisations, for research and teaching that
155
+ is a Noncommercial Purpose. It does not cover work performed for, or
156
+ funded as a service to, a for-profit entity. We may verify eligibility,
157
+ for example by institutional email domain, and may require the commercial
158
+ Use Class where the use is a Commercial Use.
159
+
160
+ 5. RESTRICTIONS
161
+
162
+ You may not:
163
+
164
+ (a) circumvent, disable, or interfere with the Software's licensing,
165
+ activation, or entitlement checks, or use a Licence Key you were not
166
+ issued;
167
+
168
+ (b) share a Licence Key or a Seat with anyone who is not the individual
169
+ that Seat is assigned to;
170
+
171
+ (c) make Licensed Features available to anyone who does not hold a Seat,
172
+ including through a hosted or network-accessible service;
173
+
174
+ (d) use a subscription bought for the academic Use Class for Commercial
175
+ Use; or
176
+
177
+ (e) remove or alter any proprietary notice in the Software.
178
+
179
+ 6. NO DISTRIBUTION OF MODIFIED VERSIONS
180
+
181
+ You may not distribute, publish, share, host, sell, sublicense, or
182
+ otherwise make available to any third party any Modified Version, in
183
+ source or object form, in whole or in part. This includes publishing a
184
+ public fork of the Software's repository, distributing patched builds or
185
+ container images, redistributing the Software under a different name,
186
+ and making a Modified Version available to third parties as a hosted or
187
+ network-accessible service.
188
+
189
+ Modifications you make under Section 2(c) must remain within your own
190
+ organization. You are encouraged, but not required, to submit them to
191
+ the Licensor for possible inclusion upstream.
192
+
193
+ Nothing in this Section restricts your distribution of Plugins, which is
194
+ governed by Section 7.
195
+
196
+ 7. PLUGINS
197
+
198
+ You may write, use, distribute, sell, and license Plugins without
199
+ restriction under this agreement, and without needing the Licensor's
200
+ permission.
201
+
202
+ You own the Plugins you write and may license them on any terms you
203
+ choose, including commercial terms. A Plugin is not a Modified Version
204
+ and is not subject to Section 6 or to any Use Class limitation in
205
+ Section 3, whether or not it is distributed together with the Software.
206
+ A Plugin that relies on Licensed Features may require its users to hold
207
+ their own Seat.
208
+
209
+ For the avoidance of doubt: linking to, importing, calling, subclassing,
210
+ or registering against the Software's documented extension interfaces
211
+ does not by itself make your Plugin a derivative work of the Software
212
+ for the purposes of this agreement.
213
+
214
+ Distributing the Software itself alongside your Plugin remains subject
215
+ to Section 2(b) -- the copy of the Software must be verbatim.
216
+
217
+ 8. YOUR RESULTS AND ATTRIBUTION
218
+
219
+ Your Results are yours. We claim no ownership of them. When a Licence Key
220
+ expires or is revoked, nothing you made with the Software is deleted or
221
+ locked, and it stays readable and exportable as Free.
222
+
223
+ Any copy of the Software you distribute, and any publication or
224
+ presentation reporting results obtained using the Software, must retain
225
+ or provide, as applicable, the copyright notice above and a reference to
226
+ this agreement. Academic users are asked to cite the Software in
227
+ accordance with the citation information provided with it.
228
+
229
+ 9. LICENCE ADMINISTRATION AND DATA
230
+
231
+ Free makes no licensing network call. Activating a Licence Key, and the
232
+ periodic renewal of an activated licence, send the Licence Key or
233
+ certificate, a hash that identifies the device, any name you give the
234
+ device, a coarse platform family, and the Software version. They never
235
+ send your data, file names, paths, or anything about what you are looking
236
+ at. We process this information to administer licences and to detect
237
+ licence sharing. Your account details are held by the Account Portal;
238
+ the Software itself never receives your password, email address, or
239
+ payment details. Setting BIOCOGNIA_OFFLINE=1 prevents every licensing
240
+ network call.
241
+
242
+ The Software's optional anonymous usage data is described in its
243
+ documentation, and can be switched off at any time with
244
+ "plexora telemetry off" or DO_NOT_TRACK=1.
245
+
246
+ 10. FEES AND RENEWAL
247
+
248
+ Fees are charged per Seat per Subscription Term for the Use Class you
249
+ purchased, at the price stated at the time of purchase, and are
250
+ non-refundable except as required by law or by our published refund
251
+ policy. Fees exclude taxes, which are charged as required in your
252
+ jurisdiction.
253
+
254
+ A subscription renews for successive terms, unless cancelled, at the
255
+ price per Seat at which it was bought. Seats added to a subscription
256
+ during a term are charged at that same price per Seat, prorated for the
257
+ rest of the term; a reduction in Seats is credited against the next
258
+ renewal and is not refunded. We may change the prices of new
259
+ subscriptions at any time; a price change never applies mid-term.
260
+
261
+ 11. TERM AND TERMINATION
262
+
263
+ Section 2 applies for as long as you comply with this agreement. Section
264
+ 3 applies for the Subscription Term and each renewal of it. You may
265
+ cancel a subscription at any time, effective at the end of the current
266
+ term.
267
+
268
+ When a subscription expires, Licensed Features may continue for a grace
269
+ period stated in your licence and then stop; the Software continues as
270
+ Free.
271
+
272
+ If you breach any term, your rights under this agreement terminate
273
+ automatically. If the breach is your first and you cure it in full, and
274
+ take reasonable steps to correct its effects, within 30 days of
275
+ receiving written notice from the Licensor, your rights are reinstated
276
+ as of the date of cure. We may revoke a Licence Key immediately in the
277
+ case of a chargeback, fraud, or a breach of Section 5(a) or 5(b).
278
+
279
+ On termination of your rights under Section 3 you must stop using
280
+ Licensed Features. On termination of your rights under Section 2 you
281
+ must cease all use of the Software and destroy all copies in your
282
+ possession or control. Sections 6, 8, 12, 13, 15, 16, and 17 survive
283
+ termination. Termination does not affect any licence you or anyone else
284
+ holds in a Plugin.
285
+
286
+ 12. RESERVATION OF RIGHTS; NO TRADEMARK LICENCE
287
+
288
+ All rights not expressly granted are reserved by the Licensor. This
289
+ agreement does not grant permission to use the trade names, trademarks,
290
+ service marks, product names, or logos of the Licensor, including the
291
+ name "Plexora", except as required for reasonable and customary
292
+ descriptive use in reproducing the notices required by this agreement.
293
+
294
+ This agreement grants no patent rights.
295
+
296
+ 13. THIRD-PARTY COMPONENTS
297
+
298
+ The Software is distributed with components authored by third parties
299
+ and licensed under their own terms. Those components remain governed
300
+ exclusively by their own licenses, which are unaffected by this
301
+ agreement; in particular, nothing in Section 6 restricts any right you
302
+ hold in a Third-Party Component under that component's own license.
303
+ Known Third-Party Components include:
304
+
305
+ - plexora/server/utils/smallestenclosingcircle.py -- Copyright (c) 2020
306
+ Project Nayuki, LGPL-3.0-or-later.
307
+ - the contents of plexora/client/external/ -- see the notices in that
308
+ directory.
309
+ - third-party Python and JavaScript dependencies installed alongside the
310
+ Software, each under its own license.
311
+
312
+ Where a Third-Party Component's license conflicts with a term of this
313
+ agreement as applied to that component, that component's license
314
+ controls for that component.
315
+
316
+ 14. FAIR USE AND MANDATORY RIGHTS
317
+
318
+ This agreement does not limit any right you have under applicable law
319
+ that cannot be limited by agreement, including fair use, fair dealing,
320
+ and any statutory right to decompile or modify the Software for
321
+ interoperability or error correction.
322
+
323
+ 15. NO WARRANTY
324
+
325
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
326
+ OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
327
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE, AND
328
+ NONINFRINGEMENT.
329
+
330
+ THE SOFTWARE IS A RESEARCH TOOL. IT IS NOT A MEDICAL DEVICE AND IS NOT
331
+ INTENDED, VALIDATED, OR APPROVED FOR CLINICAL DIAGNOSIS, TREATMENT, OR
332
+ ANY OTHER USE INVOLVING PATIENT CARE. YOU ARE RESPONSIBLE FOR VALIDATING
333
+ ANY RESULT BEFORE RELYING ON IT.
334
+
335
+ 16. LIMITATION OF LIABILITY
336
+
337
+ TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT SHALL THE LICENSOR
338
+ OR ANY CONTRIBUTOR BE LIABLE FOR ANY CLAIM, DAMAGES, OR OTHER LIABILITY,
339
+ WHETHER IN AN ACTION OF CONTRACT, TORT, OR OTHERWISE, ARISING FROM, OUT
340
+ OF, OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
341
+ THE SOFTWARE, INCLUDING ANY INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
342
+ CONSEQUENTIAL DAMAGES, OR ANY LOSS OF DATA, PROFITS, OR RESEARCH
343
+ RESULTS, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
344
+
345
+ OUR TOTAL AGGREGATE LIABILITY ARISING OUT OF OR RELATED TO THIS AGREEMENT
346
+ SHALL NOT EXCEED THE FEES YOU PAID IN THE TWELVE MONTHS PRECEDING THE
347
+ EVENT GIVING RISE TO THE CLAIM.
348
+
349
+ Nothing in this agreement excludes liability that cannot lawfully be
350
+ excluded.
351
+
352
+ 17. GENERAL
353
+
354
+ This agreement is the entire agreement between us regarding the Software
355
+ and supersedes any prior understanding. If any provision is held
356
+ unenforceable, that provision shall be enforced to the maximum extent
357
+ permissible and the remaining provisions shall remain in full force and
358
+ effect. Our failure to enforce a provision is not a waiver of it. You may
359
+ not assign this agreement without our written consent; a transfer of a
360
+ Seat or a subscription between individuals or entities may be arranged
361
+ through the Account Portal or by contacting us.
362
+
363
+ 18. LICENSOR AND CONTACT
364
+
365
+ Licensor: BioCognia, 22 West Ave, Brockton, MA 02301, USA
366
+ Governing law: the laws of the Commonwealth of Massachusetts, USA
367
+
368
+ Licensing: support@biocognia.com
369
+ Accounts: https://account.biocognia.com
370
+ Web: https://nirmallab.github.io/plexora/
371
+
372
+ --------------------------------------------------------------------------
373
+
374
+ Earlier versions: releases of Plexora made before this agreement was first
375
+ shipped were released under the Plexora Academic License 1.0. Those releases
376
+ remain available under that licence; this agreement governs the releases that
377
+ ship it.
@@ -0,0 +1,241 @@
1
+ Metadata-Version: 2.4
2
+ Name: plexora
3
+ Version: 0.0.29
4
+ Summary: OpenSeadragon-based cellular image viewing and analysis tool.
5
+ Author-email: BioCognia <support@biocognia.com>
6
+ License-Expression: LicenseRef-Plexora-EULA-1.0
7
+ Requires-Python: <3.14,>=3.12
8
+ Description-Content-Type: text/markdown
9
+ License-File: LICENSE
10
+ Requires-Dist: aiohttp>=3.9
11
+ Requires-Dist: anndata>=0.10
12
+ Requires-Dist: biocognia<0.2,>=0.1.1
13
+ Requires-Dist: Flask>=3.1
14
+ Requires-Dist: fsspec>=2024.12
15
+ Requires-Dist: h5py>=3.16.0
16
+ Requires-Dist: hdf5plugin>=5
17
+ Requires-Dist: imagecodecs
18
+ Requires-Dist: itsdangerous>=2.2
19
+ Requires-Dist: Jinja2>=3.1
20
+ Requires-Dist: numba>=0.61
21
+ Requires-Dist: numpy>=2.0
22
+ Requires-Dist: ome-types>=0.6.3
23
+ Requires-Dist: opencv-python-headless>=5.0.0.93
24
+ Requires-Dist: openpyxl>=3.1
25
+ Requires-Dist: onnxruntime<2,>=1.17
26
+ Requires-Dist: orjson>=3.11
27
+ Requires-Dist: pandas>=3.0.5
28
+ Requires-Dist: Pillow>=10.4
29
+ Requires-Dist: platformdirs>=4
30
+ Requires-Dist: polars>=1.43
31
+ Requires-Dist: pydantic<2.14,>=2.13
32
+ Requires-Dist: reportlab>=5.0.1
33
+ Requires-Dist: s3fs>=2024.12
34
+ Requires-Dist: scikit-image
35
+ Requires-Dist: scikit-learn>=1.9
36
+ Requires-Dist: scipy
37
+ Requires-Dist: shapely>=2.1.2
38
+ Requires-Dist: spatialdata>=0.8.0
39
+ Requires-Dist: spatialagents<0.2,>=0.1
40
+ Requires-Dist: threadpoolctl>=3.6.0
41
+ Requires-Dist: tifffile>=2026.7.31
42
+ Requires-Dist: urllib3>=2.0
43
+ Requires-Dist: waitress
44
+ Requires-Dist: Werkzeug>=3.1
45
+ Requires-Dist: zarr>=3
46
+ Provides-Extra: jupyter
47
+ Requires-Dist: ipython; extra == "jupyter"
48
+ Requires-Dist: jupyter-server-proxy; extra == "jupyter"
49
+ Provides-Extra: dev
50
+ Requires-Dist: pytest; extra == "dev"
51
+ Requires-Dist: pytest-randomly>=4.1.0; extra == "dev"
52
+ Provides-Extra: spatial
53
+ Requires-Dist: pyarrow>=14; extra == "spatial"
54
+ Provides-Extra: remote
55
+ Requires-Dist: gcsfs>=2024.12; extra == "remote"
56
+ Requires-Dist: adlfs>=2024.12; extra == "remote"
57
+ Requires-Dist: wsidicom>=0.35; extra == "remote"
58
+ Requires-Dist: pydicom>=3; extra == "remote"
59
+ Requires-Dist: universal-pathlib>=0.2; extra == "remote"
60
+ Provides-Extra: wsi
61
+ Requires-Dist: openslide-python>=1.3; extra == "wsi"
62
+ Requires-Dist: openslide-bin>=4.0; extra == "wsi"
63
+ Requires-Dist: wsidicom>=0.35; extra == "wsi"
64
+ Requires-Dist: pydicom>=3; extra == "wsi"
65
+ Provides-Extra: ai
66
+ Requires-Dist: mcp<3,>=2.2; extra == "ai"
67
+ Requires-Dist: pyyaml>=6; extra == "ai"
68
+ Provides-Extra: bridge
69
+ Requires-Dist: spatialbridge<0.2,>=0.1; extra == "bridge"
70
+ Provides-Extra: volume3d
71
+ Requires-Dist: torch>=2.5.1; extra == "volume3d"
72
+ Requires-Dist: sam2>=1.1; extra == "volume3d"
73
+ Provides-Extra: segment3d
74
+ Requires-Dist: cellpose>=4; extra == "segment3d"
75
+ Requires-Dist: torch>=2.5.1; extra == "segment3d"
76
+ Provides-Extra: video
77
+ Requires-Dist: imageio-ffmpeg>=0.5; extra == "video"
78
+ Dynamic: license-file
79
+
80
+ # Plexora
81
+
82
+ ![](./plexora/client/src/img/logo_with_text.svg)
83
+
84
+ Plexora is a viewer for multiplexed imaging and spatial transcriptomics. It
85
+ opens large images where they are, without converting or copying them, draws
86
+ segmentation masks and cell tables over them, and runs on a laptop, in a
87
+ notebook, on a remote workstation or on an HPC cluster.
88
+
89
+ **Documentation: https://nirmallab.github.io/plexora/**
90
+
91
+ ![The Plexora viewer showing a multiplexed tissue image](./website/public/screenshots/home/viewer.webp)
92
+
93
+ ## Install
94
+
95
+ ```bash
96
+ pip install plexora
97
+ plexora
98
+ ```
99
+
100
+ `plexora` starts the viewer and opens it in your browser. Python 3.12 or 3.13
101
+ is required. A desktop app for macOS, Windows and Linux is on the
102
+ [releases page](https://github.com/nirmallab/plexora/releases). See
103
+ [Installation](https://nirmallab.github.io/plexora/docs/getting-started/installation/).
104
+
105
+ ## Quick start
106
+
107
+ In the app, choose **File → Import Sample…** and pick an image, a folder of
108
+ files, or a Xenium or Visium run. From Python:
109
+
110
+ ```python
111
+ import plexora
112
+
113
+ name = plexora.import_sample("slide.ome.tif", "slide_mask.tif", "cells.csv", wait=True)
114
+ plexora.view(name) # in a notebook, shows the viewer inline
115
+ ```
116
+
117
+ More in the [quick start](https://nirmallab.github.io/plexora/docs/getting-started/quick-start/).
118
+
119
+ ## What it reads
120
+
121
+ - Multiplexed images: OME-TIFF, TIFF, QPTIFF, OME-Zarr (local, `https://` or `s3://`)
122
+ - Brightfield whole-slide images: SVS, NDPI, SCN, BIF, MRXS, DICOM
123
+ - 10x Genomics Xenium, Visium and Visium HD output folders
124
+ - SpatialData stores and AnnData tables; CSV, TSV and Parquet cell tables
125
+ - Segmentation masks (label images) and cell boundary polygons
126
+
127
+ The full list is in [Supported formats](https://nirmallab.github.io/plexora/docs/reference/supported-formats/).
128
+
129
+ ## Where to go next
130
+
131
+ | I want to | Read |
132
+ | --- | --- |
133
+ | Use the viewer and its tools | [Viewer](https://nirmallab.github.io/plexora/docs/viewer/navigation/), [Tools](https://nirmallab.github.io/plexora/docs/plugins/) |
134
+ | Script it from Python or a notebook | [Python](https://nirmallab.github.io/plexora/docs/python/), [Notebooks](https://nirmallab.github.io/plexora/docs/notebooks/) |
135
+ | Look at data on a remote machine or cluster | [Remote and HPC](https://nirmallab.github.io/plexora/docs/remote/) |
136
+ | Write a plugin | [Plugin development](https://nirmallab.github.io/plexora/docs/plugin-development/) |
137
+ | Look up a function or command | [Python API](https://nirmallab.github.io/plexora/docs/python-api/), [Command line](https://nirmallab.github.io/plexora/docs/cli/) |
138
+
139
+ ## Developing Plexora
140
+
141
+ ```bash
142
+ git clone https://github.com/nirmallab/plexora.git
143
+ cd plexora
144
+ pip install -e ".[dev]"
145
+ python -m pytest -q -p no:randomly
146
+ ```
147
+
148
+ See [Development setup](https://nirmallab.github.io/plexora/docs/contributing/development-setup/)
149
+ and, for the documentation site in `website/`, [CONTRIBUTING_DOCS.md](./CONTRIBUTING_DOCS.md).
150
+ Engineering notes live in [docs/internal/](./docs/internal/).
151
+
152
+ ## Usage data
153
+
154
+ Plexora can send **anonymous usage counts** -- which features and plugins are
155
+ used, how long tiles take to draw, which kinds of errors occur -- so we know
156
+ what to improve. It never sends file, project, marker or gene names, cell
157
+ data, coordinates, usernames, machine names, paths, prompts or anything typed
158
+ into a tool; every field it may send is on an allowlist
159
+ (`plexora/telemetry/schema.py`). Everything is queued on this machine first,
160
+ nothing in Plexora waits for it, and it works air-gapped exactly as before.
161
+
162
+ It is on by default and a notice says so the first time. Any one of these turns
163
+ it off:
164
+
165
+ ```bash
166
+ plexora telemetry off # or: Settings > Usage data
167
+ export DO_NOT_TRACK=1 # honoured everywhere
168
+ export PLEXORA_TELEMETRY=off
169
+ ```
170
+
171
+ `plexora telemetry preview` prints exactly what the next upload would contain,
172
+ and `plexora telemetry status` says which of the above is in force.
173
+ [docs/TELEMETRY.md](./docs/TELEMETRY.md) has the details.
174
+
175
+ ## Free and Pro
176
+
177
+ **Free** is everything described above: every image, table and modality, every
178
+ tool's manual features, remote, HPC and notebook viewing, and export. It needs no
179
+ account, no activation and no network, it never asks, and anyone may use it for
180
+ any purpose, commercial work included.
181
+
182
+ **Pro** adds Plexora AI (guided gating and QC sessions an agent runs with you,
183
+ the evidence and analysis tools it uses, and the chat), Plexora 3D (analysing
184
+ z-stacks and time series beyond viewing them), spatial transcriptomics
185
+ (Xenium, Visium and Visium HD) and Video Studio (videos made from the viewer).
186
+ A 30-day trial is everything in Pro. External MCP access, for an outside coding
187
+ agent, is off by default and not part of Pro; an administrator can turn it on
188
+ for a licence. Pro is a yearly subscription per seat, at an academic or a
189
+ commercial price, and both are bought online from the
190
+ [pricing page](https://nirmallab.github.io/plexora/pricing/): one seat is an
191
+ individual account, two or more make a team. Licences, devices and AI credits
192
+ are managed on the BioCognia platform, which Plexora shares with SCIMAP Pro: you
193
+ sign in at [account.biocognia.com](https://account.biocognia.com), never in
194
+ Plexora. In Settings > License, **Connect this device** shows a short code and
195
+ opens the page to approve it; or, from a terminal:
196
+
197
+ ```bash
198
+ plexora license status
199
+ plexora license activate # this computer: prints a code to approve in the browser
200
+ plexora license activate BIOC-XXXX-XXXX-XXXX-XXXX # with your licence key from the portal, no browser needed
201
+ plexora license activate --cluster --name O2 # a whole HPC cluster, once, from a login node
202
+ plexora license install lab.bioc # an offline licence file
203
+ plexora license trial # 30 days of Pro
204
+ ```
205
+
206
+ A licence check sends the licence certificate and a hash that identifies the
207
+ device. It never sends your data, file names, machine names or anything
208
+ about what you are looking at. When a licence ends, everything Free keeps
209
+ working, and every gate, ROI, figure and export you made, with or without AI,
210
+ stays yours and editable. AI model providers your agent uses bill you
211
+ separately. [docs/LICENSING.md](./docs/LICENSING.md) has the details.
212
+
213
+ ## License
214
+
215
+ Plexora is licensed by BioCognia under the **Plexora End User Licence Agreement
216
+ 1.0** (`LicenseRef-Plexora-EULA-1.0`, see [LICENSE](./LICENSE)). It is **not** an
217
+ open source license. In short:
218
+
219
+ | | |
220
+ |---|---|
221
+ | Plexora Free, for any purpose: research, teaching, personal or commercial | ✅ Free, no account or licence key |
222
+ | Plexora Pro for academic research and teaching | Per seat, per year, at the academic price |
223
+ | Plexora Pro for commercial use | Per seat, per year, at the commercial price |
224
+ | Redistributing Plexora unmodified, with the licence attached | ✅ Allowed |
225
+ | Patching your own copy to fix a bug or a compatibility problem | ✅ Allowed |
226
+ | Publishing a fork, a patched build, or a renamed version | ❌ Not allowed |
227
+
228
+ Prices, and Buy for either use class, are on the
229
+ [pricing page](https://nirmallab.github.io/plexora/pricing/); a subscription
230
+ renews at the price it was bought at.
231
+
232
+ **Plugins are a deliberate exception.** Anything you build against the documented
233
+ extension interfaces — the `plexora.plugins` entry point group and the `plexora.api`
234
+ package — is yours. You may distribute and sell your plugin under whatever license
235
+ you like, and you do not need our permission. Extending Plexora through the plugin
236
+ API is the supported way to change what it does; editing its source is not.
237
+
238
+ For licensing questions, contact support@biocognia.com.
239
+
240
+ Some bundled components carry their own licenses, which are unaffected by the above —
241
+ see section 13 of [LICENSE](./LICENSE).