plexora 0.0.33__tar.gz → 0.0.35__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 (1449) hide show
  1. {plexora-0.0.33/plexora.egg-info → plexora-0.0.35}/PKG-INFO +2 -2
  2. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/core/project.py +69 -0
  3. {plexora-0.0.33 → plexora-0.0.35/plexora.egg-info}/PKG-INFO +2 -2
  4. {plexora-0.0.33 → plexora-0.0.35}/plexora.egg-info/requires.txt +1 -1
  5. {plexora-0.0.33 → plexora-0.0.35}/plexora_intelligence/__init__.py +109 -14
  6. {plexora-0.0.33 → plexora-0.0.35}/plexora_intelligence/guest.json +91 -0
  7. {plexora-0.0.33 → plexora-0.0.35}/pyproject.toml +7 -3
  8. {plexora-0.0.33 → plexora-0.0.35}/tests/test_bridge_mcp.py +16 -0
  9. plexora-0.0.35/tests/test_intelligence_registration.py +316 -0
  10. {plexora-0.0.33 → plexora-0.0.35}/tests/test_project_bind.py +100 -1
  11. plexora-0.0.33/tests/test_intelligence_registration.py +0 -156
  12. {plexora-0.0.33 → plexora-0.0.35}/LICENSE +0 -0
  13. {plexora-0.0.33 → plexora-0.0.35}/MANIFEST.in +0 -0
  14. {plexora-0.0.33 → plexora-0.0.35}/README.md +0 -0
  15. {plexora-0.0.33 → plexora-0.0.35}/plexora/__init__.py +0 -0
  16. {plexora-0.0.33 → plexora-0.0.35}/plexora/__main__.py +0 -0
  17. {plexora-0.0.33 → plexora-0.0.35}/plexora/_guard.py +0 -0
  18. {plexora-0.0.33 → plexora-0.0.35}/plexora/_lifetime.py +0 -0
  19. {plexora-0.0.33 → plexora-0.0.35}/plexora/_logging.py +0 -0
  20. {plexora-0.0.33 → plexora-0.0.35}/plexora/_resources.py +0 -0
  21. {plexora-0.0.33 → plexora-0.0.35}/plexora/_subprocess.py +0 -0
  22. {plexora-0.0.33 → plexora-0.0.35}/plexora/_transient_locks.py +0 -0
  23. {plexora-0.0.33 → plexora-0.0.35}/plexora/_url.py +0 -0
  24. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/__init__.py +0 -0
  25. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/artifacts.py +0 -0
  26. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/attach.py +0 -0
  27. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/audit.py +0 -0
  28. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/bridge_provider.py +0 -0
  29. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/bridge_roles.py +0 -0
  30. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/bridge_wire.py +0 -0
  31. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/cell_exclusions.py +0 -0
  32. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/cell_explain.py +0 -0
  33. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/cell_gallery.py +0 -0
  34. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/coordinates.py +0 -0
  35. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/core/__init__.py +0 -0
  36. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/core/bridge.py +0 -0
  37. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/core/cells.py +0 -0
  38. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/core/image.py +0 -0
  39. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/core/jobs.py +0 -0
  40. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/core/operations.py +0 -0
  41. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/core/scene.py +0 -0
  42. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/core/selection.py +0 -0
  43. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/core/surface.py +0 -0
  44. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/core/table.py +0 -0
  45. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/core/viewer.py +0 -0
  46. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/core/visual.py +0 -0
  47. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/core/volume.py +0 -0
  48. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/core/volume_analysis.py +0 -0
  49. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/errors.py +0 -0
  50. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/evidence/__init__.py +0 -0
  51. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/evidence/calibration.py +0 -0
  52. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/evidence/cell_window.py +0 -0
  53. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/evidence/collage.py +0 -0
  54. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/evidence/crops.py +0 -0
  55. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/evidence/density_plot.py +0 -0
  56. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/evidence/display_contrast.py +0 -0
  57. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/evidence/display_grid.py +0 -0
  58. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/evidence/image_cells.py +0 -0
  59. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/evidence/image_qc.py +0 -0
  60. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/evidence/sheet_layout.py +0 -0
  61. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/expression.py +0 -0
  62. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/gate_panel.py +0 -0
  63. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/gate_rule.py +0 -0
  64. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/gate_sampling.py +0 -0
  65. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/jobs.py +0 -0
  66. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/limits.py +0 -0
  67. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/plots.py +0 -0
  68. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/policy.py +0 -0
  69. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/presets.py +0 -0
  70. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/receipts.py +0 -0
  71. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/registry.py +0 -0
  72. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/render.py +0 -0
  73. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/render_spec.py +0 -0
  74. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/report.py +0 -0
  75. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/revision.py +0 -0
  76. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/scene_models.py +0 -0
  77. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/schemas.py +0 -0
  78. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/sections.py +0 -0
  79. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/session.py +0 -0
  80. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/sessions/__init__.py +0 -0
  81. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/sessions/budget.py +0 -0
  82. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/sessions/control.py +0 -0
  83. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/sessions/engine.py +0 -0
  84. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/sessions/events.py +0 -0
  85. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/sessions/memo.py +0 -0
  86. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/sessions/mirror.py +0 -0
  87. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/sessions/store.py +0 -0
  88. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/sessions/tools.py +0 -0
  89. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/tasks.py +0 -0
  90. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/tokens.py +0 -0
  91. {plexora-0.0.33 → plexora-0.0.35}/plexora/agent/viewer.py +0 -0
  92. {plexora-0.0.33 → plexora-0.0.35}/plexora/ai/__init__.py +0 -0
  93. {plexora-0.0.33 → plexora-0.0.35}/plexora/ai/audit.py +0 -0
  94. {plexora-0.0.33 → plexora-0.0.35}/plexora/ai/bench.py +0 -0
  95. {plexora-0.0.33 → plexora-0.0.35}/plexora/ai/bench_data.py +0 -0
  96. {plexora-0.0.33 → plexora-0.0.35}/plexora/ai/bench_experience.py +0 -0
  97. {plexora-0.0.33 → plexora-0.0.35}/plexora/ai/bench_qc.py +0 -0
  98. {plexora-0.0.33 → plexora-0.0.35}/plexora/ai/context.py +0 -0
  99. {plexora-0.0.33 → plexora-0.0.35}/plexora/ai/delegation.py +0 -0
  100. {plexora-0.0.33 → plexora-0.0.35}/plexora/ai/harness/__init__.py +0 -0
  101. {plexora-0.0.33 → plexora-0.0.35}/plexora/ai/harness/backend.py +0 -0
  102. {plexora-0.0.33 → plexora-0.0.35}/plexora/ai/harness/cache_plan.py +0 -0
  103. {plexora-0.0.33 → plexora-0.0.35}/plexora/ai/harness/capabilities.py +0 -0
  104. {plexora-0.0.33 → plexora-0.0.35}/plexora/ai/harness/chat_capabilities.py +0 -0
  105. {plexora-0.0.33 → plexora-0.0.35}/plexora/ai/harness/cli.py +0 -0
  106. {plexora-0.0.33 → plexora-0.0.35}/plexora/ai/harness/conversations.py +0 -0
  107. {plexora-0.0.33 → plexora-0.0.35}/plexora/ai/harness/decision.py +0 -0
  108. {plexora-0.0.33 → plexora-0.0.35}/plexora/ai/harness/expression.py +0 -0
  109. {plexora-0.0.33 → plexora-0.0.35}/plexora/ai/harness/gateway.py +0 -0
  110. {plexora-0.0.33 → plexora-0.0.35}/plexora/ai/harness/prefix.py +0 -0
  111. {plexora-0.0.33 → plexora-0.0.35}/plexora/ai/harness/route_bench.py +0 -0
  112. {plexora-0.0.33 → plexora-0.0.35}/plexora/ai/harness/schema.py +0 -0
  113. {plexora-0.0.33 → plexora-0.0.35}/plexora/ai/harness/toolcache.py +0 -0
  114. {plexora-0.0.33 → plexora-0.0.35}/plexora/ai/harness/trace.py +0 -0
  115. {plexora-0.0.33 → plexora-0.0.35}/plexora/ai/knowledge/biology.yaml +0 -0
  116. {plexora-0.0.33 → plexora-0.0.35}/plexora/ai/knowledge/markers.yaml +0 -0
  117. {plexora-0.0.33 → plexora-0.0.35}/plexora/ai/models_config.py +0 -0
  118. {plexora-0.0.33 → plexora-0.0.35}/plexora/ai/qc_scenes.py +0 -0
  119. {plexora-0.0.33 → plexora-0.0.35}/plexora/ai/setup.py +0 -0
  120. {plexora-0.0.33 → plexora-0.0.35}/plexora/ai/skill_manifest.yaml +0 -0
  121. {plexora-0.0.33 → plexora-0.0.35}/plexora/ai/skills/analysis-handoff/SKILL.md +0 -0
  122. {plexora-0.0.33 → plexora-0.0.35}/plexora/ai/skills/dataset-triage/SKILL.md +0 -0
  123. {plexora-0.0.33 → plexora-0.0.35}/plexora/ai/skills/gate-image/SKILL.md +0 -0
  124. {plexora-0.0.33 → plexora-0.0.35}/plexora/ai/skills/gate-packets/SKILL.md +0 -0
  125. {plexora-0.0.33 → plexora-0.0.35}/plexora/ai/skills/gate-review/SKILL.md +0 -0
  126. {plexora-0.0.33 → plexora-0.0.35}/plexora/ai/skills/gating/dataset.md +0 -0
  127. {plexora-0.0.33 → plexora-0.0.35}/plexora/ai/skills/gating/decisions.md +0 -0
  128. {plexora-0.0.33 → plexora-0.0.35}/plexora/ai/skills/gating/qc-cells.md +0 -0
  129. {plexora-0.0.33 → plexora-0.0.35}/plexora/ai/skills/gating/setup.md +0 -0
  130. {plexora-0.0.33 → plexora-0.0.35}/plexora/ai/skills/gating/visual-gating.md +0 -0
  131. {plexora-0.0.33 → plexora-0.0.35}/plexora/ai/skills/marker-qc/SKILL.md +0 -0
  132. {plexora-0.0.33 → plexora-0.0.35}/plexora/ai/skills/qc-checks/SKILL.md +0 -0
  133. {plexora-0.0.33 → plexora-0.0.35}/plexora/ai/skills/qc-image/SKILL.md +0 -0
  134. {plexora-0.0.33 → plexora-0.0.35}/plexora/ai/skills/qc-packets/SKILL.md +0 -0
  135. {plexora-0.0.33 → plexora-0.0.35}/plexora/ai/skills/qc-visual-artifacts/SKILL.md +0 -0
  136. {plexora-0.0.33 → plexora-0.0.35}/plexora/ai/skills/review-objects/SKILL.md +0 -0
  137. {plexora-0.0.33 → plexora-0.0.35}/plexora/ai/skills/review-qc/SKILL.md +0 -0
  138. {plexora-0.0.33 → plexora-0.0.35}/plexora/ai/skills/surface-rendering/SKILL.md +0 -0
  139. {plexora-0.0.33 → plexora-0.0.35}/plexora/ai/skills/video-storyboard/SKILL.md +0 -0
  140. {plexora-0.0.33 → plexora-0.0.35}/plexora/ai/skills/visual-inspection/SKILL.md +0 -0
  141. {plexora-0.0.33 → plexora-0.0.35}/plexora/ai/skills/volume-triage/SKILL.md +0 -0
  142. {plexora-0.0.33 → plexora-0.0.35}/plexora/ai/skills.py +0 -0
  143. {plexora-0.0.33 → plexora-0.0.35}/plexora/ai/tasks.py +0 -0
  144. {plexora-0.0.33 → plexora-0.0.35}/plexora/ai/tasks.yaml +0 -0
  145. {plexora-0.0.33 → plexora-0.0.35}/plexora/ai/vocabulary.py +0 -0
  146. {plexora-0.0.33 → plexora-0.0.35}/plexora/api/__init__.py +0 -0
  147. {plexora-0.0.33 → plexora-0.0.35}/plexora/api/dataset.py +0 -0
  148. {plexora-0.0.33 → plexora-0.0.35}/plexora/api/features.py +0 -0
  149. {plexora-0.0.33 → plexora-0.0.35}/plexora/api/http.py +0 -0
  150. {plexora-0.0.33 → plexora-0.0.35}/plexora/api/plugin.py +0 -0
  151. {plexora-0.0.33 → plexora-0.0.35}/plexora/api/representation.py +0 -0
  152. {plexora-0.0.33 → plexora-0.0.35}/plexora/api/store.py +0 -0
  153. {plexora-0.0.33 → plexora-0.0.35}/plexora/askpass.py +0 -0
  154. {plexora-0.0.33 → plexora-0.0.35}/plexora/cli.py +0 -0
  155. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/dist/124_bundle.js +0 -0
  156. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/dist/248_bundle.js +0 -0
  157. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/dist/248_bundle.js.LICENSE.txt +0 -0
  158. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/dist/354_bundle.js +0 -0
  159. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/dist/354_bundle.js.LICENSE.txt +0 -0
  160. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/dist/418_bundle.js +0 -0
  161. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/dist/418_bundle.js.LICENSE.txt +0 -0
  162. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/dist/693b935cb1f907814be9c6199a68c217.svg +0 -0
  163. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/dist/713c134ff47cd328a5b711526f151082.svg +0 -0
  164. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/dist/770_bundle.js +0 -0
  165. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/dist/908_bundle.js +0 -0
  166. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/dist/908_bundle.js.LICENSE.txt +0 -0
  167. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/dist/ff743f408972e0e96ca9153ed5ae4c83.svg +0 -0
  168. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/dist/vendor_bundle.js +0 -0
  169. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/dist/vendor_bundle.js.LICENSE.txt +0 -0
  170. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/dist/vendors-node_modules_canvg_lib_index_es_js_bundle.js +0 -0
  171. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/dist/vendors-node_modules_dompurify_dist_purify_es_mjs_bundle.js +0 -0
  172. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/dist/vendors-node_modules_html2canvas_dist_html2canvas_js_bundle.js +0 -0
  173. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/external/openseadragon-bin-2.4.0/LICENSE.txt +0 -0
  174. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/external/openseadragon-bin-2.4.0/canvas-overlay-hd.js +0 -0
  175. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/external/openseadragon-bin-2.4.0/changelog.txt +0 -0
  176. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/.gitattributes +0 -0
  177. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/LICENSE.txt +0 -0
  178. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/Photoshop/Toolbar.png +0 -0
  179. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/Photoshop/fullpage.psd +0 -0
  180. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/Photoshop/home.psd +0 -0
  181. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/Photoshop/next.psd +0 -0
  182. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/Photoshop/previous.psd +0 -0
  183. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/Photoshop/rotateleft.psd +0 -0
  184. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/Photoshop/rotateright.psd +0 -0
  185. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/Photoshop/zoom.psd +0 -0
  186. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/README.md +0 -0
  187. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/fullpage_grouphover.png +0 -0
  188. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/fullpage_hover.png +0 -0
  189. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/fullpage_pressed.png +0 -0
  190. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/fullpage_rest.png +0 -0
  191. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/home_grouphover.png +0 -0
  192. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/home_hover.png +0 -0
  193. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/home_pressed.png +0 -0
  194. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/home_rest.png +0 -0
  195. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/next_grouphover.png +0 -0
  196. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/next_hover.png +0 -0
  197. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/next_pressed.png +0 -0
  198. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/next_rest.png +0 -0
  199. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/previous_grouphover.png +0 -0
  200. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/previous_hover.png +0 -0
  201. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/previous_pressed.png +0 -0
  202. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/previous_rest.png +0 -0
  203. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/rotateleft_grouphover.png +0 -0
  204. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/rotateleft_hover.png +0 -0
  205. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/rotateleft_pressed.png +0 -0
  206. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/rotateleft_rest.png +0 -0
  207. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/rotateright_grouphover.png +0 -0
  208. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/rotateright_hover.png +0 -0
  209. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/rotateright_pressed.png +0 -0
  210. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/rotateright_rest.png +0 -0
  211. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/zoomin_grouphover.png +0 -0
  212. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/zoomin_hover.png +0 -0
  213. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/zoomin_pressed.png +0 -0
  214. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/zoomin_rest.png +0 -0
  215. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/zoomout_grouphover.png +0 -0
  216. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/zoomout_hover.png +0 -0
  217. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/zoomout_pressed.png +0 -0
  218. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/zoomout_rest.png +0 -0
  219. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-scalebar.js +0 -0
  220. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/external/thinking-orbs-0.3.2/LICENSE +0 -0
  221. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/external/thinking-orbs-0.3.2/README-plexora.txt +0 -0
  222. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/external/thinking-orbs-0.3.2/orbs.js +0 -0
  223. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/css/agentPanel.css +0 -0
  224. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/css/chatPanel.css +0 -0
  225. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/css/explorer.css +0 -0
  226. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/css/import.css +0 -0
  227. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/css/main.css +0 -0
  228. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/css/openProject.css +0 -0
  229. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/css/quickView.css +0 -0
  230. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/css/settings.css +0 -0
  231. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/css/tokens.css +0 -0
  232. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/css/viewer.css +0 -0
  233. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/img/apple-touch-icon.png +0 -0
  234. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/img/favicon.ico +0 -0
  235. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/img/logo.ai +0 -0
  236. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/img/logo.svg +0 -0
  237. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/img/logo_with_text.ai +0 -0
  238. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/img/logo_with_text.svg +0 -0
  239. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/main.js +0 -0
  240. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/pluginRegistry.js +0 -0
  241. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/agentBridge.js +0 -0
  242. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/appRouter.js +0 -0
  243. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/appStatus.js +0 -0
  244. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/bookmarks.js +0 -0
  245. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/browsePicker.js +0 -0
  246. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/canvasHint.js +0 -0
  247. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/canvasLayout.js +0 -0
  248. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/carryOver.js +0 -0
  249. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/channelFade.js +0 -0
  250. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/connectionModal.js +0 -0
  251. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/dataLayer.js +0 -0
  252. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/dataLocation.js +0 -0
  253. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/datasetContext.js +0 -0
  254. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/desktopBridge.js +0 -0
  255. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/displayCurve.js +0 -0
  256. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/drawToolbar.js +0 -0
  257. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/dropRouter.js +0 -0
  258. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/errors.js +0 -0
  259. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/explorer/explorerCrumbs.js +0 -0
  260. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/explorer/explorerListing.js +0 -0
  261. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/explorer/explorerSidebar.js +0 -0
  262. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/explorer/explorerTypes.js +0 -0
  263. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/explorer/fileExplorer.js +0 -0
  264. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/explorer/floatingWindow.js +0 -0
  265. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/failureMessage.js +0 -0
  266. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/fileLocation.js +0 -0
  267. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/glRenderer.js +0 -0
  268. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/inspectGeometry.js +0 -0
  269. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/inspectState.js +0 -0
  270. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/keyboardShortcuts.js +0 -0
  271. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/launchContext.js +0 -0
  272. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/logTerminal.js +0 -0
  273. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/maskSurfaces.js +0 -0
  274. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/numericData.js +0 -0
  275. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/orbDriver.js +0 -0
  276. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/pageBoot.js +0 -0
  277. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/passVariablesToFrontend.js +0 -0
  278. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/perfProbe.js +0 -0
  279. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/performanceTelemetry.js +0 -0
  280. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/placePicker.js +0 -0
  281. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/pointerDrag.js +0 -0
  282. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/proFeature.js +0 -0
  283. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/remoteGlobe.js +0 -0
  284. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/remoteState.js +0 -0
  285. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/renderClipboard.js +0 -0
  286. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/resourceRouting.js +0 -0
  287. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/resourceStatus.js +0 -0
  288. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/segmentService.js +0 -0
  289. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/sessionExpiry.js +0 -0
  290. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/simpleEventHandler.js +0 -0
  291. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/surfaceLayers.js +0 -0
  292. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/telemetry.js +0 -0
  293. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/toast.js +0 -0
  294. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/tooltip.js +0 -0
  295. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/viewControls.js +0 -0
  296. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/viewHistory.js +0 -0
  297. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/viewRaster.js +0 -0
  298. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/viewSnapshot.js +0 -0
  299. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/viewState.js +0 -0
  300. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/viewTransform.js +0 -0
  301. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/viewerLoader.js +0 -0
  302. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/viewerPrefs.js +0 -0
  303. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/viewerScene.js +0 -0
  304. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/services/volumeWindows.js +0 -0
  305. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/vendor.js +0 -0
  306. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/agentPanel.js +0 -0
  307. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/areaTool.js +0 -0
  308. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/backButton.js +0 -0
  309. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/bookmarkTray.js +0 -0
  310. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/brightfieldAdjust.js +0 -0
  311. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/cardList.js +0 -0
  312. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/channelList.js +0 -0
  313. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/channelNamesUpload.js +0 -0
  314. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/chatPanel.js +0 -0
  315. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/colorSwatchPicker.js +0 -0
  316. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/columnClassifier.js +0 -0
  317. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/confirmDialog.js +0 -0
  318. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/coordinateField.js +0 -0
  319. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/dataSourceField.js +0 -0
  320. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/datasetBuilder.js +0 -0
  321. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/datasetNav.js +0 -0
  322. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/datasetPicker.js +0 -0
  323. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/datasetStrip.js +0 -0
  324. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/depthSettings.js +0 -0
  325. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/depthStrip.js +0 -0
  326. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/depthTools.js +0 -0
  327. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/fileSourceRow.js +0 -0
  328. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/geneGroupModal.js +0 -0
  329. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/geneList.js +0 -0
  330. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/glInit.js +0 -0
  331. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/gradientRange.js +0 -0
  332. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/helpMenu.js +0 -0
  333. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/imageViewer.js +0 -0
  334. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/importHelp.js +0 -0
  335. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/importSample.js +0 -0
  336. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/jobProgress.js +0 -0
  337. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/jobWait.js +0 -0
  338. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/labelGpu.js +0 -0
  339. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/labelTile.js +0 -0
  340. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/layerChannelPanel.js +0 -0
  341. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/layerManager.js +0 -0
  342. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/layerSections.js +0 -0
  343. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/layerStack.js +0 -0
  344. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/loadProgress.js +0 -0
  345. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/locators.js +0 -0
  346. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/machineChip.js +0 -0
  347. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/maskSurfaceWait.js +0 -0
  348. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/miniMap.js +0 -0
  349. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/navbarControls.js +0 -0
  350. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/openProjectPage.js +0 -0
  351. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/orientationGizmo.js +0 -0
  352. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/panCursor.js +0 -0
  353. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/paneStatus.js +0 -0
  354. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/planeMotion.js +0 -0
  355. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/pluginHelp.js +0 -0
  356. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/popoverMenu.js +0 -0
  357. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/popoverPortal.js +0 -0
  358. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/projectEdit.js +0 -0
  359. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/quickViewLanding.js +0 -0
  360. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/rainbow.js +0 -0
  361. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/requirementsModal.js +0 -0
  362. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/rgbImageViewer.js +0 -0
  363. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/scaleCalibration.js +0 -0
  364. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/searchableSelect.js +0 -0
  365. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/sectionCells.js +0 -0
  366. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/sectionPanes.js +0 -0
  367. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/segmentationWait.js +0 -0
  368. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/settingsPage.js +0 -0
  369. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/slider.js +0 -0
  370. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/surfaceCard.js +0 -0
  371. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/surfaceInspect.js +0 -0
  372. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/surfaceObjects.js +0 -0
  373. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/surfaceRenderer.js +0 -0
  374. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/surfaceStudio.js +0 -0
  375. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/tableProgress.js +0 -0
  376. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/tileColorize.js +0 -0
  377. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/tileDecode.js +0 -0
  378. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/tileFetch.js +0 -0
  379. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/toolLoader.js +0 -0
  380. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/updateDialog.js +0 -0
  381. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/viewTransformTools.js +0 -0
  382. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/viewerControls.js +0 -0
  383. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/viewerErrorState.js +0 -0
  384. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/viewerManager.js +0 -0
  385. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/viewerSidebar.js +0 -0
  386. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/volumeAtlas.js +0 -0
  387. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/volumeCamera.js +0 -0
  388. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/volumeDock.js +0 -0
  389. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/volumeHandles.js +0 -0
  390. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/views/volumeRenderer.js +0 -0
  391. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/js/workers/tileDecoder.js +0 -0
  392. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/shaders/frag.glsl +0 -0
  393. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/shaders/label.frag.glsl +0 -0
  394. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/src/shaders/vert.glsl +0 -0
  395. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/templates/_fragment.html +0 -0
  396. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/templates/_scale_calibration.html +0 -0
  397. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/templates/_scale_calibration_float.html +0 -0
  398. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/templates/base.html +0 -0
  399. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/templates/index.html +0 -0
  400. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/templates/open_project.html +0 -0
  401. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/templates/project_edit.html +0 -0
  402. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/templates/settings.html +0 -0
  403. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/templates/tools/depth_panel.html +0 -0
  404. {plexora-0.0.33 → plexora-0.0.35}/plexora/client/templates/tools/rotate_panel.html +0 -0
  405. {plexora-0.0.33 → plexora-0.0.35}/plexora/connect.py +0 -0
  406. {plexora-0.0.33 → plexora-0.0.35}/plexora/datasets.py +0 -0
  407. {plexora-0.0.33 → plexora-0.0.35}/plexora/datasource.py +0 -0
  408. {plexora-0.0.33 → plexora-0.0.35}/plexora/gcloud.py +0 -0
  409. {plexora-0.0.33 → plexora-0.0.35}/plexora/jupyter.py +0 -0
  410. {plexora-0.0.33 → plexora-0.0.35}/plexora/licensing/__init__.py +0 -0
  411. {plexora-0.0.33 → plexora-0.0.35}/plexora/licensing/cli.py +0 -0
  412. {plexora-0.0.33 → plexora-0.0.35}/plexora/licensing/guards.py +0 -0
  413. {plexora-0.0.33 → plexora-0.0.35}/plexora/licensing/manifest.py +0 -0
  414. {plexora-0.0.33 → plexora-0.0.35}/plexora/licensing/tokens.py +0 -0
  415. {plexora-0.0.33 → plexora-0.0.35}/plexora/links.py +0 -0
  416. {plexora-0.0.33 → plexora-0.0.35}/plexora/mcp/__init__.py +0 -0
  417. {plexora-0.0.33 → plexora-0.0.35}/plexora/mcp/auth.py +0 -0
  418. {plexora-0.0.33 → plexora-0.0.35}/plexora/mcp/profiles.py +0 -0
  419. {plexora-0.0.33 → plexora-0.0.35}/plexora/mcp/prompts.py +0 -0
  420. {plexora-0.0.33 → plexora-0.0.35}/plexora/mcp/resources.py +0 -0
  421. {plexora-0.0.33 → plexora-0.0.35}/plexora/mcp/resources_gating.py +0 -0
  422. {plexora-0.0.33 → plexora-0.0.35}/plexora/mcp/resources_scene.py +0 -0
  423. {plexora-0.0.33 → plexora-0.0.35}/plexora/mcp/resources_visual.py +0 -0
  424. {plexora-0.0.33 → plexora-0.0.35}/plexora/mcp/serialize.py +0 -0
  425. {plexora-0.0.33 → plexora-0.0.35}/plexora/mcp/server.py +0 -0
  426. {plexora-0.0.33 → plexora-0.0.35}/plexora/mcp/smoke.py +0 -0
  427. {plexora-0.0.33 → plexora-0.0.35}/plexora/mcp/tools.py +0 -0
  428. {plexora-0.0.33 → plexora-0.0.35}/plexora/memory.py +0 -0
  429. {plexora-0.0.33 → plexora-0.0.35}/plexora/nodes.py +0 -0
  430. {plexora-0.0.33 → plexora-0.0.35}/plexora/notebook_env.py +0 -0
  431. {plexora-0.0.33 → plexora-0.0.35}/plexora/paths.py +0 -0
  432. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/__init__.py +0 -0
  433. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/cell_explorer/__init__.py +0 -0
  434. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/cell_explorer/server/__init__.py +0 -0
  435. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/cell_explorer/server/routes.py +0 -0
  436. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/cell_explorer/server/state.py +0 -0
  437. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/cell_explorer/server/values.py +0 -0
  438. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/cell_explorer/server/variables.py +0 -0
  439. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/cell_explorer/static/cellExplorerAnalysisBridge.js +0 -0
  440. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/cell_explorer/static/cellExplorerApi.js +0 -0
  441. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/cell_explorer/static/cellExplorerColors.js +0 -0
  442. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/cell_explorer/static/cellExplorerContinuous.js +0 -0
  443. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/cell_explorer/static/cellExplorerFigureBridge.js +0 -0
  444. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/cell_explorer/static/cellExplorerLegend.js +0 -0
  445. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/cell_explorer/static/cellExplorerRoiBridge.js +0 -0
  446. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/cell_explorer/static/cellExplorerSidebarController.js +0 -0
  447. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/cell_explorer/static/cellExplorerState.js +0 -0
  448. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/cell_explorer/static/cell_explorer.css +0 -0
  449. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/cell_explorer/templates/cell_explorer/panel.html +0 -0
  450. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/figure_builder/__init__.py +0 -0
  451. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/figure_builder/server/__init__.py +0 -0
  452. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/figure_builder/server/captures.py +0 -0
  453. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/figure_builder/server/compose.py +0 -0
  454. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/figure_builder/server/export.py +0 -0
  455. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/figure_builder/server/export_jobs.py +0 -0
  456. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/figure_builder/server/operations.py +0 -0
  457. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/figure_builder/server/pixels.py +0 -0
  458. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/figure_builder/server/provenance.py +0 -0
  459. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/figure_builder/server/render.py +0 -0
  460. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/figure_builder/server/repository.py +0 -0
  461. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/figure_builder/server/routes.py +0 -0
  462. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/figure_builder/server/schema.py +0 -0
  463. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/figure_builder/server/shapegeom.py +0 -0
  464. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/figure_builder/server/sources.py +0 -0
  465. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/figure_builder/server/strokegeom.py +0 -0
  466. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/figure_builder/server/textmetrics.py +0 -0
  467. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/figure_builder/static/figureActions.js +0 -0
  468. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/figure_builder/static/figureBookmarkStore.js +0 -0
  469. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/figure_builder/static/figureBuilderApi.js +0 -0
  470. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/figure_builder/static/figureCanvas.js +0 -0
  471. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/figure_builder/static/figureCaptureBin.js +0 -0
  472. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/figure_builder/static/figureCaptureBinGrid.js +0 -0
  473. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/figure_builder/static/figureCaptureBoxes.js +0 -0
  474. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/figure_builder/static/figureCaptureDock.js +0 -0
  475. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/figure_builder/static/figureCaptureTool.js +0 -0
  476. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/figure_builder/static/figureChoiceField.js +0 -0
  477. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/figure_builder/static/figureColorField.js +0 -0
  478. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/figure_builder/static/figureConfirm.js +0 -0
  479. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/figure_builder/static/figureContextBar.js +0 -0
  480. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/figure_builder/static/figureContextMenu.js +0 -0
  481. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/figure_builder/static/figureDestinationPicker.js +0 -0
  482. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/figure_builder/static/figureDocumentState.js +0 -0
  483. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/figure_builder/static/figureExportUi.js +0 -0
  484. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/figure_builder/static/figureImagePanel.js +0 -0
  485. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/figure_builder/static/figureLibrary.js +0 -0
  486. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/figure_builder/static/figureLineDefs.js +0 -0
  487. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/figure_builder/static/figureLinePanel.js +0 -0
  488. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/figure_builder/static/figurePanelCompositor.js +0 -0
  489. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/figure_builder/static/figurePointEditor.js +0 -0
  490. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/figure_builder/static/figureQuickEdit.js +0 -0
  491. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/figure_builder/static/figureRichText.js +0 -0
  492. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/figure_builder/static/figureSceneSnapshot.js +0 -0
  493. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/figure_builder/static/figureSchema.js +0 -0
  494. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/figure_builder/static/figureShapeDefs.js +0 -0
  495. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/figure_builder/static/figureShapeDrawing.js +0 -0
  496. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/figure_builder/static/figureShapeGeometry.js +0 -0
  497. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/figure_builder/static/figureShapePanel.js +0 -0
  498. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/figure_builder/static/figureSidebarController.js +0 -0
  499. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/figure_builder/static/figureStrokeGeometry.js +0 -0
  500. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/figure_builder/static/figureTextEditor.js +0 -0
  501. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/figure_builder/static/figureTextPanel.js +0 -0
  502. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/figure_builder/static/figureThumbnail.js +0 -0
  503. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/figure_builder/static/figureViewOptions.js +0 -0
  504. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/figure_builder/static/figureWorkspace.js +0 -0
  505. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/figure_builder/static/figure_builder.css +0 -0
  506. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/figure_builder/templates/figure_builder/captures.html +0 -0
  507. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/figure_builder/templates/figure_builder/library.html +0 -0
  508. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/figure_builder/templates/figure_builder/workspace.html +0 -0
  509. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/figure_builder/templates/figure_builder/workspace_body.html +0 -0
  510. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/__init__.py +0 -0
  511. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/capabilities.py +0 -0
  512. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/capabilities_autogate.py +0 -0
  513. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/capabilities_classifier.py +0 -0
  514. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/capabilities_session.py +0 -0
  515. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/__init__.py +0 -0
  516. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/anndata_gates.py +0 -0
  517. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/autogate/__init__.py +0 -0
  518. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/autogate/absence.py +0 -0
  519. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/autogate/answers.py +0 -0
  520. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/autogate/biology.py +0 -0
  521. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/autogate/bivariate.py +0 -0
  522. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/autogate/bulk.py +0 -0
  523. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/autogate/candidates.py +0 -0
  524. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/autogate/cellcalls.py +0 -0
  525. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/autogate/cells.py +0 -0
  526. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/autogate/context.py +0 -0
  527. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/autogate/engine.py +0 -0
  528. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/autogate/events.py +0 -0
  529. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/autogate/hierarchy.py +0 -0
  530. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/autogate/hypotheses/__init__.py +0 -0
  531. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/autogate/hypotheses/calibration.py +0 -0
  532. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/autogate/hypotheses/candidates.py +0 -0
  533. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/autogate/hypotheses/classifier_check.py +0 -0
  534. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/autogate/hypotheses/controller.py +0 -0
  535. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/autogate/hypotheses/evidence.py +0 -0
  536. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/autogate/hypotheses/panel.py +0 -0
  537. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/autogate/kernels.py +0 -0
  538. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/autogate/lattice.py +0 -0
  539. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/autogate/memo.py +0 -0
  540. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/autogate/mirror_script.py +0 -0
  541. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/autogate/packets.py +0 -0
  542. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/autogate/partners.py +0 -0
  543. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/autogate/pixel_estimate.py +0 -0
  544. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/autogate/profile.py +0 -0
  545. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/autogate/provenance.py +0 -0
  546. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/autogate/qc_cells.py +0 -0
  547. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/autogate/reference.py +0 -0
  548. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/autogate/regression.py +0 -0
  549. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/autogate/replan.py +0 -0
  550. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/autogate/report.py +0 -0
  551. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/autogate/sampler.py +0 -0
  552. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/autogate/schemas.py +0 -0
  553. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/autogate/scoring.py +0 -0
  554. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/autogate/sheet.py +0 -0
  555. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/autogate/tableops.py +0 -0
  556. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/autogate/transfer.py +0 -0
  557. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/autogate/transitions.py +0 -0
  558. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/autogate/verdicts.py +0 -0
  559. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/autogate/views.py +0 -0
  560. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/classifier/__init__.py +0 -0
  561. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/classifier/autopick.py +0 -0
  562. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/classifier/calls.py +0 -0
  563. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/classifier/export.py +0 -0
  564. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/classifier/features.py +0 -0
  565. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/classifier/geometry.py +0 -0
  566. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/classifier/learner.py +0 -0
  567. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/classifier/panel.py +0 -0
  568. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/classifier/rules.py +0 -0
  569. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/classifier/runs.py +0 -0
  570. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/classifier/signal.py +0 -0
  571. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/classifier/source_write.py +0 -0
  572. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/classifier/store.py +0 -0
  573. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/database.py +0 -0
  574. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/experience.py +0 -0
  575. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/mixture.py +0 -0
  576. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/model.py +0 -0
  577. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/provenance.py +0 -0
  578. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/routes.py +0 -0
  579. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/server/tableops.py +0 -0
  580. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/static/csvGatingList.js +0 -0
  581. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/static/gating.css +0 -0
  582. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/static/gatingAgentBridge.js +0 -0
  583. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/static/gatingAgentShow.js +0 -0
  584. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/static/gatingApi.js +0 -0
  585. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/static/gatingClassifier.js +0 -0
  586. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/static/gatingPlanes.js +0 -0
  587. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/static/gatingSidebarController.js +0 -0
  588. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/templates/gating/legacy.html +0 -0
  589. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/gating/templates/gating/panel.html +0 -0
  590. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/__init__.py +0 -0
  591. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/capabilities.py +0 -0
  592. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/capabilities_checks.py +0 -0
  593. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/capabilities_objects.py +0 -0
  594. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/capabilities_segment.py +0 -0
  595. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/capabilities_session.py +0 -0
  596. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/capabilities_stack.py +0 -0
  597. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/capabilities_visual.py +0 -0
  598. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/mcp.py +0 -0
  599. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/server/__init__.py +0 -0
  600. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/server/answers.py +0 -0
  601. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/server/artifacts.py +0 -0
  602. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/server/background.py +0 -0
  603. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/server/blur.py +0 -0
  604. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/server/bulk.py +0 -0
  605. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/server/candidates.py +0 -0
  606. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/server/cells/__init__.py +0 -0
  607. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/server/cells/areas.py +0 -0
  608. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/server/cells/calls.py +0 -0
  609. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/server/cells/channel_findings.py +0 -0
  610. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/server/cells/columns.py +0 -0
  611. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/server/cells/inputs.py +0 -0
  612. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/server/check_candidates.py +0 -0
  613. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/server/checks_bulk.py +0 -0
  614. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/server/checks_result.py +0 -0
  615. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/server/class_rules.py +0 -0
  616. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/server/consolidate.py +0 -0
  617. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/server/cycles.py +0 -0
  618. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/server/detectors/__init__.py +0 -0
  619. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/server/detectors/base.py +0 -0
  620. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/server/detectors/classical.py +0 -0
  621. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/server/digest.py +0 -0
  622. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/server/dna_retention.py +0 -0
  623. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/server/engine.py +0 -0
  624. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/server/events.py +0 -0
  625. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/server/exclusions.py +0 -0
  626. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/server/export.py +0 -0
  627. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/server/finalize.py +0 -0
  628. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/server/frames.py +0 -0
  629. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/server/mirror_script.py +0 -0
  630. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/server/nuclei_trace.py +0 -0
  631. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/server/overview.py +0 -0
  632. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/server/packets.py +0 -0
  633. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/server/plane.py +0 -0
  634. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/server/polygons.py +0 -0
  635. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/server/propagate.py +0 -0
  636. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/server/provenance.py +0 -0
  637. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/server/refine.py +0 -0
  638. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/server/refine_sam.py +0 -0
  639. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/server/region_write.py +0 -0
  640. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/server/registration.py +0 -0
  641. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/server/report.py +0 -0
  642. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/server/results.py +0 -0
  643. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/server/roi_link.py +0 -0
  644. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/server/routes.py +0 -0
  645. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/server/scan.py +0 -0
  646. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/server/schemas.py +0 -0
  647. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/server/score_fields.py +0 -0
  648. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/server/score_review.py +0 -0
  649. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/server/segqc/__init__.py +0 -0
  650. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/server/segqc/analysis.py +0 -0
  651. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/server/segqc/kernels.py +0 -0
  652. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/server/segqc/run.py +0 -0
  653. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/server/sheets.py +0 -0
  654. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/server/source_write.py +0 -0
  655. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/server/spatialdata_write.py +0 -0
  656. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/server/strictness.py +0 -0
  657. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/server/tableops.py +0 -0
  658. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/server/tissue.py +0 -0
  659. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/server/transitions.py +0 -0
  660. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/server/viewer_data.py +0 -0
  661. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/static/qc.css +0 -0
  662. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/static/qcAgentBridge.js +0 -0
  663. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/static/qcApi.js +0 -0
  664. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/static/qcArtifacts.js +0 -0
  665. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/static/qcBlur.js +0 -0
  666. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/static/qcDraw.js +0 -0
  667. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/static/qcHover.js +0 -0
  668. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/static/qcLayers.js +0 -0
  669. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/static/qcRegistration.js +0 -0
  670. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/static/qcSegmentation.js +0 -0
  671. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/static/qcSidebarController.js +0 -0
  672. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/static/qcStack.js +0 -0
  673. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/static/qcTree.js +0 -0
  674. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/qc/templates/qc/panel.html +0 -0
  675. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/roi/__init__.py +0 -0
  676. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/roi/capabilities.py +0 -0
  677. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/roi/server/__init__.py +0 -0
  678. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/roi/server/adapters.py +0 -0
  679. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/roi/server/geojson.py +0 -0
  680. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/roi/server/geometry.py +0 -0
  681. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/roi/server/mapping.py +0 -0
  682. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/roi/server/operations.py +0 -0
  683. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/roi/server/repository.py +0 -0
  684. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/roi/server/routes.py +0 -0
  685. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/roi/server/schema.py +0 -0
  686. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/roi/server/service.py +0 -0
  687. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/roi/server/tableops.py +0 -0
  688. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/roi/static/roi.css +0 -0
  689. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/roi/static/roiAgentBridge.js +0 -0
  690. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/roi/static/roiApi.js +0 -0
  691. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/roi/static/roiFigureBridge.js +0 -0
  692. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/roi/static/roiGeometry.js +0 -0
  693. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/roi/static/roiRenderer.js +0 -0
  694. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/roi/static/roiSidebarController.js +0 -0
  695. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/roi/static/roiState.js +0 -0
  696. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/roi/static/roiTools.js +0 -0
  697. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/roi/static/roiTree.js +0 -0
  698. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/roi/templates/roi/panel.html +0 -0
  699. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/segmentation/__init__.py +0 -0
  700. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/segmentation/capabilities.py +0 -0
  701. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/segmentation/server/__init__.py +0 -0
  702. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/segmentation/server/cellpose3d.py +0 -0
  703. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/segmentation/server/routes.py +0 -0
  704. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/segmentation/server/run.py +0 -0
  705. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/segmentation/static/segmentation3d.css +0 -0
  706. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/segmentation/static/segmentation3d.js +0 -0
  707. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/segmentation/templates/segmentation/panel.html +0 -0
  708. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/transcripts/__init__.py +0 -0
  709. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/transcripts/server/__init__.py +0 -0
  710. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/transcripts/server/routes.py +0 -0
  711. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/transcripts/server/xenium.py +0 -0
  712. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/transcripts/static/transcriptLayer.js +0 -0
  713. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/transcripts/static/transcriptPoints.js +0 -0
  714. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/transcripts/static/transcripts.css +0 -0
  715. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/transcripts/static/transcriptsApi.js +0 -0
  716. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/transcripts/static/transcriptsSidebarController.js +0 -0
  717. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/transcripts/templates/transcripts/panel.html +0 -0
  718. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/video_studio/__init__.py +0 -0
  719. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/video_studio/capabilities.py +0 -0
  720. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/video_studio/server/encode_jobs.py +0 -0
  721. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/video_studio/server/encoders.py +0 -0
  722. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/video_studio/server/facts.py +0 -0
  723. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/video_studio/server/manifest.py +0 -0
  724. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/video_studio/server/operations.py +0 -0
  725. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/video_studio/server/presets.py +0 -0
  726. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/video_studio/server/repository.py +0 -0
  727. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/video_studio/server/routes.py +0 -0
  728. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/video_studio/server/schema.py +0 -0
  729. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/video_studio/server/writers.py +0 -0
  730. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/video_studio/static/vendor/LICENSE-mediabunny +0 -0
  731. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/video_studio/static/vendor/README.md +0 -0
  732. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/video_studio/static/vendor/mediabunny-1.60.0.mjs +0 -0
  733. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/video_studio/static/videoAgentBridge.js +0 -0
  734. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/video_studio/static/videoAnimation.js +0 -0
  735. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/video_studio/static/videoArcLength.js +0 -0
  736. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/video_studio/static/videoCamera2d.js +0 -0
  737. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/video_studio/static/videoCamera3d.js +0 -0
  738. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/video_studio/static/videoComposite.js +0 -0
  739. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/video_studio/static/videoEasing.js +0 -0
  740. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/video_studio/static/videoEncodeWorker.js +0 -0
  741. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/video_studio/static/videoEncoders.js +0 -0
  742. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/video_studio/static/videoExportLoop.js +0 -0
  743. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/video_studio/static/videoExportUi.js +0 -0
  744. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/video_studio/static/videoFigureBridge.js +0 -0
  745. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/video_studio/static/videoHistory.js +0 -0
  746. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/video_studio/static/videoInterp.js +0 -0
  747. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/video_studio/static/videoOverlays.js +0 -0
  748. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/video_studio/static/videoParamFields.js +0 -0
  749. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/video_studio/static/videoPathEditor.js +0 -0
  750. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/video_studio/static/videoPrefetch.js +0 -0
  751. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/video_studio/static/videoPreview.js +0 -0
  752. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/video_studio/static/videoProjectApi.js +0 -0
  753. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/video_studio/static/videoReadiness.js +0 -0
  754. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/video_studio/static/videoRecorder.js +0 -0
  755. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/video_studio/static/videoRenderCoordinator.js +0 -0
  756. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/video_studio/static/videoRenderCover.js +0 -0
  757. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/video_studio/static/videoSceneState.js +0 -0
  758. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/video_studio/static/videoSchema.js +0 -0
  759. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/video_studio/static/videoStage.js +0 -0
  760. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/video_studio/static/videoStudioBar.js +0 -0
  761. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/video_studio/static/videoStudioSidebarController.js +0 -0
  762. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/video_studio/static/videoTimeline.js +0 -0
  763. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/video_studio/static/videoTracking.js +0 -0
  764. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/video_studio/static/videoViewerState.js +0 -0
  765. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/video_studio/static/video_studio.css +0 -0
  766. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/visium_hd/__init__.py +0 -0
  767. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/visium_hd/server/__init__.py +0 -0
  768. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/visium_hd/server/routes.py +0 -0
  769. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/visium_hd/server/spots.py +0 -0
  770. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/visium_hd/server/tenx.py +0 -0
  771. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/visium_hd/static/binLayer.js +0 -0
  772. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/visium_hd/static/spotLayer.js +0 -0
  773. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/visium_hd/static/visiumHdApi.js +0 -0
  774. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/visium_hd/static/visiumHdSidebarController.js +0 -0
  775. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/visium_hd/static/visium_hd.css +0 -0
  776. {plexora-0.0.33 → plexora-0.0.35}/plexora/plugins/visium_hd/templates/visium_hd/panel.html +0 -0
  777. {plexora-0.0.33 → plexora-0.0.35}/plexora/proxy.py +0 -0
  778. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/core_tools.py +0 -0
  779. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/models/adapters/__init__.py +0 -0
  780. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/models/adapters/anndata_adapter.py +0 -0
  781. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/models/adapters/base.py +0 -0
  782. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/models/adapters/classify.py +0 -0
  783. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/models/adapters/csv_adapter.py +0 -0
  784. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/models/adapters/flat_table.py +0 -0
  785. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/models/adapters/inspection.py +0 -0
  786. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/models/adapters/memory_adapter.py +0 -0
  787. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/models/adapters/spatialdata_adapter.py +0 -0
  788. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/models/bin_tiles.py +0 -0
  789. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/models/centroid_tiles.py +0 -0
  790. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/models/consistency.py +0 -0
  791. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/models/data_migration.py +0 -0
  792. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/models/data_model.py +0 -0
  793. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/models/database_model.py +0 -0
  794. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/models/dataset_answers.py +0 -0
  795. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/models/dataset_build.py +0 -0
  796. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/models/dataset_events.py +0 -0
  797. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/models/dataset_plan.py +0 -0
  798. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/models/dataset_scan.py +0 -0
  799. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/models/datasets.py +0 -0
  800. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/models/drop_plan.py +0 -0
  801. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/models/import_proposal.py +0 -0
  802. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/models/import_sample.py +0 -0
  803. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/models/layer_jobs.py +0 -0
  804. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/models/layer_sources.py +0 -0
  805. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/models/manifest.py +0 -0
  806. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/models/nodes.py +0 -0
  807. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/models/project.py +0 -0
  808. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/models/recipes.py +0 -0
  809. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/models/remote_sessions.py +0 -0
  810. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/models/remote_sources.py +0 -0
  811. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/models/remotes.py +0 -0
  812. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/models/secret_store.py +0 -0
  813. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/models/server_records.py +0 -0
  814. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/models/table_correction.py +0 -0
  815. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/models/transcript_tiles.py +0 -0
  816. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/models/viewer_sessions.py +0 -0
  817. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/models/views.py +0 -0
  818. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/node/api.py +0 -0
  819. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/node/app.py +0 -0
  820. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/node/resources.py +0 -0
  821. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/plugins.py +0 -0
  822. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/providers/__init__.py +0 -0
  823. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/providers/base.py +0 -0
  824. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/providers/http.py +0 -0
  825. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/providers/local.py +0 -0
  826. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/providers/memory.py +0 -0
  827. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/providers/node.py +0 -0
  828. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/providers/operations.py +0 -0
  829. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/providers/remote.py +0 -0
  830. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/providers/wire.py +0 -0
  831. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/routes/agent_routes.py +0 -0
  832. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/routes/ai_chat_routes.py +0 -0
  833. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/routes/ai_routes.py +0 -0
  834. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/routes/browse_routes.py +0 -0
  835. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/routes/data_routes.py +0 -0
  836. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/routes/dataset_routes.py +0 -0
  837. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/routes/dataset_scan_routes.py +0 -0
  838. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/routes/desktop_routes.py +0 -0
  839. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/routes/drop_routes.py +0 -0
  840. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/routes/gcloud_routes.py +0 -0
  841. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/routes/import_routes.py +0 -0
  842. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/routes/license_routes.py +0 -0
  843. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/routes/page_routes.py +0 -0
  844. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/routes/project_routes.py +0 -0
  845. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/routes/segment_routes.py +0 -0
  846. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/routes/settings_routes.py +0 -0
  847. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/routes/surface_routes.py +0 -0
  848. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/routes/system_routes.py +0 -0
  849. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/routes/telemetry_routes.py +0 -0
  850. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/routes/tool_routes.py +0 -0
  851. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/routes/transfer_routes.py +0 -0
  852. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/routes/update_routes.py +0 -0
  853. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/routes/volume_routes.py +0 -0
  854. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/surface/__init__.py +0 -0
  855. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/surface/contacts.py +0 -0
  856. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/surface/export.py +0 -0
  857. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/surface/importers.py +0 -0
  858. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/surface/isosurface.py +0 -0
  859. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/surface/labels.py +0 -0
  860. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/surface/levels.py +0 -0
  861. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/surface/marching.py +0 -0
  862. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/surface/mesh.py +0 -0
  863. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/surface/nets.py +0 -0
  864. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/surface/preview.py +0 -0
  865. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/surface/refine.py +0 -0
  866. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/surface/sections.py +0 -0
  867. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/surface/store.py +0 -0
  868. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/surface/suggest.py +0 -0
  869. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/tile_batch.py +0 -0
  870. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/utils/addHEColumns.py +0 -0
  871. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/utils/boundary_mask.py +0 -0
  872. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/utils/brightfield.py +0 -0
  873. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/utils/cell_features.py +0 -0
  874. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/utils/channel_file.py +0 -0
  875. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/utils/colormaps.py +0 -0
  876. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/utils/dataset_marks.py +0 -0
  877. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/utils/dicom_wsi.py +0 -0
  878. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/utils/dir_listing.py +0 -0
  879. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/utils/dir_search.py +0 -0
  880. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/utils/display_curve.py +0 -0
  881. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/utils/fast_png.py +0 -0
  882. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/utils/file_transfer.py +0 -0
  883. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/utils/fs_places.py +0 -0
  884. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/utils/fullConversion.py +0 -0
  885. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/utils/gene_groups.py +0 -0
  886. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/utils/head_cache.py +0 -0
  887. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/utils/host_policy.py +0 -0
  888. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/utils/image_pyramid.py +0 -0
  889. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/utils/jit.py +0 -0
  890. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/utils/label_kernels.py +0 -0
  891. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/utils/label_overlay.py +0 -0
  892. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/utils/layer_composite.py +0 -0
  893. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/utils/mask_polygon.py +0 -0
  894. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/utils/memory_pyramid.py +0 -0
  895. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/utils/native_dialog.py +0 -0
  896. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/utils/ngff_transform.py +0 -0
  897. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/utils/ome_zarr.py +0 -0
  898. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/utils/pixel_scale.py +0 -0
  899. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/utils/remote_image.py +0 -0
  900. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/utils/remote_store.py +0 -0
  901. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/utils/safe_pickle.py +0 -0
  902. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/utils/segmentation_pyramid.py +0 -0
  903. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/utils/sftp.py +0 -0
  904. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/utils/smallestenclosingcircle.py +0 -0
  905. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/utils/source_image.py +0 -0
  906. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/utils/spatial_index.py +0 -0
  907. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/utils/spatial_scene.py +0 -0
  908. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/utils/tenx_matrix.py +0 -0
  909. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/utils/tiff_region.py +0 -0
  910. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/utils/tiff_series.py +0 -0
  911. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/utils/tiffsurgeon.py +0 -0
  912. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/utils/xenium_cells.py +0 -0
  913. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/utils/xenium_focus.py +0 -0
  914. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/volume/__init__.py +0 -0
  915. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/volume/axes.py +0 -0
  916. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/volume/brick_serve.py +0 -0
  917. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/volume/bricks.py +0 -0
  918. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/volume/chunk_cache.py +0 -0
  919. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/volume/labels.py +0 -0
  920. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/volume/measure.py +0 -0
  921. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/volume/model.py +0 -0
  922. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/volume/objects.py +0 -0
  923. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/volume/pin.py +0 -0
  924. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/volume/plane_view.py +0 -0
  925. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/volume/planes.py +0 -0
  926. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/volume/prefetch.py +0 -0
  927. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/volume/provenance.py +0 -0
  928. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/volume/qc3d.py +0 -0
  929. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/volume/reduce.py +0 -0
  930. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/volume/section_cells.py +0 -0
  931. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/volume/serve.py +0 -0
  932. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/volume/sources/__init__.py +0 -0
  933. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/volume/sources/dicom.py +0 -0
  934. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/volume/sources/ims.py +0 -0
  935. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/volume/sources/ims_index.py +0 -0
  936. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/volume/sources/memory.py +0 -0
  937. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/volume/sources/ngff.py +0 -0
  938. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/volume/sources/tiff.py +0 -0
  939. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/volume/tracking.py +0 -0
  940. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/volume/viewspec.py +0 -0
  941. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/volume/windows.py +0 -0
  942. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/volume/zprofile.py +0 -0
  943. {plexora-0.0.33 → plexora-0.0.35}/plexora/server/warmup.py +0 -0
  944. {plexora-0.0.33 → plexora-0.0.35}/plexora/server_cli.py +0 -0
  945. {plexora-0.0.33 → plexora-0.0.35}/plexora/telemetry/__init__.py +0 -0
  946. {plexora-0.0.33 → plexora-0.0.35}/plexora/telemetry/agent_hooks.py +0 -0
  947. {plexora-0.0.33 → plexora-0.0.35}/plexora/telemetry/batch.py +0 -0
  948. {plexora-0.0.33 → plexora-0.0.35}/plexora/telemetry/cli.py +0 -0
  949. {plexora-0.0.33 → plexora-0.0.35}/plexora/telemetry/client.py +0 -0
  950. {plexora-0.0.33 → plexora-0.0.35}/plexora/telemetry/config.py +0 -0
  951. {plexora-0.0.33 → plexora-0.0.35}/plexora/telemetry/dataset.py +0 -0
  952. {plexora-0.0.33 → plexora-0.0.35}/plexora/telemetry/environment.py +0 -0
  953. {plexora-0.0.33 → plexora-0.0.35}/plexora/telemetry/flask_hooks.py +0 -0
  954. {plexora-0.0.33 → plexora-0.0.35}/plexora/telemetry/identity.py +0 -0
  955. {plexora-0.0.33 → plexora-0.0.35}/plexora/telemetry/node_hooks.py +0 -0
  956. {plexora-0.0.33 → plexora-0.0.35}/plexora/telemetry/performance.py +0 -0
  957. {plexora-0.0.33 → plexora-0.0.35}/plexora/telemetry/queue.py +0 -0
  958. {plexora-0.0.33 → plexora-0.0.35}/plexora/telemetry/redact.py +0 -0
  959. {plexora-0.0.33 → plexora-0.0.35}/plexora/telemetry/report.py +0 -0
  960. {plexora-0.0.33 → plexora-0.0.35}/plexora/telemetry/sample.py +0 -0
  961. {plexora-0.0.33 → plexora-0.0.35}/plexora/telemetry/schema.py +0 -0
  962. {plexora-0.0.33 → plexora-0.0.35}/plexora/telemetry/uploader.py +0 -0
  963. {plexora-0.0.33 → plexora-0.0.35}/plexora/test.py +0 -0
  964. {plexora-0.0.33 → plexora-0.0.35}/plexora/updates.py +0 -0
  965. {plexora-0.0.33 → plexora-0.0.35}/plexora/vision/__init__.py +0 -0
  966. {plexora-0.0.33 → plexora-0.0.35}/plexora/vision/cli.py +0 -0
  967. {plexora-0.0.33 → plexora-0.0.35}/plexora/vision/model_files.py +0 -0
  968. {plexora-0.0.33 → plexora-0.0.35}/plexora/vision/propagate.py +0 -0
  969. {plexora-0.0.33 → plexora-0.0.35}/plexora/vision/sam.py +0 -0
  970. {plexora-0.0.33 → plexora-0.0.35}/plexora/vision/sam_backend.py +0 -0
  971. {plexora-0.0.33 → plexora-0.0.35}/plexora/vision/sam_video.py +0 -0
  972. {plexora-0.0.33 → plexora-0.0.35}/plexora/vision/sam_weights.py +0 -0
  973. {plexora-0.0.33 → plexora-0.0.35}/plexora/vision/segment.py +0 -0
  974. {plexora-0.0.33 → plexora-0.0.35}/plexora.egg-info/SOURCES.txt +0 -0
  975. {plexora-0.0.33 → plexora-0.0.35}/plexora.egg-info/dependency_links.txt +0 -0
  976. {plexora-0.0.33 → plexora-0.0.35}/plexora.egg-info/entry_points.txt +0 -0
  977. {plexora-0.0.33 → plexora-0.0.35}/plexora.egg-info/top_level.txt +0 -0
  978. {plexora-0.0.33 → plexora-0.0.35}/setup.cfg +0 -0
  979. {plexora-0.0.33 → plexora-0.0.35}/tests/test_agent_architecture.py +0 -0
  980. {plexora-0.0.33 → plexora-0.0.35}/tests/test_agent_artifacts.py +0 -0
  981. {plexora-0.0.33 → plexora-0.0.35}/tests/test_agent_cell_gallery.py +0 -0
  982. {plexora-0.0.33 → plexora-0.0.35}/tests/test_agent_client_probes.py +0 -0
  983. {plexora-0.0.33 → plexora-0.0.35}/tests/test_agent_explain_cell.py +0 -0
  984. {plexora-0.0.33 → plexora-0.0.35}/tests/test_agent_future_modality.py +0 -0
  985. {plexora-0.0.33 → plexora-0.0.35}/tests/test_agent_gate_panel.py +0 -0
  986. {plexora-0.0.33 → plexora-0.0.35}/tests/test_agent_gate_sampling.py +0 -0
  987. {plexora-0.0.33 → plexora-0.0.35}/tests/test_agent_gating.py +0 -0
  988. {plexora-0.0.33 → plexora-0.0.35}/tests/test_agent_gating_dataset.py +0 -0
  989. {plexora-0.0.33 → plexora-0.0.35}/tests/test_agent_http_capabilities.py +0 -0
  990. {plexora-0.0.33 → plexora-0.0.35}/tests/test_agent_jobs.py +0 -0
  991. {plexora-0.0.33 → plexora-0.0.35}/tests/test_agent_policy_scopes.py +0 -0
  992. {plexora-0.0.33 → plexora-0.0.35}/tests/test_agent_registry.py +0 -0
  993. {plexora-0.0.33 → plexora-0.0.35}/tests/test_agent_render.py +0 -0
  994. {plexora-0.0.33 → plexora-0.0.35}/tests/test_agent_render_formats.py +0 -0
  995. {plexora-0.0.33 → plexora-0.0.35}/tests/test_agent_render_layers.py +0 -0
  996. {plexora-0.0.33 → plexora-0.0.35}/tests/test_agent_render_node.py +0 -0
  997. {plexora-0.0.33 → plexora-0.0.35}/tests/test_agent_report.py +0 -0
  998. {plexora-0.0.33 → plexora-0.0.35}/tests/test_agent_roi.py +0 -0
  999. {plexora-0.0.33 → plexora-0.0.35}/tests/test_agent_routes_guard.py +0 -0
  1000. {plexora-0.0.33 → plexora-0.0.35}/tests/test_agent_scene.py +0 -0
  1001. {plexora-0.0.33 → plexora-0.0.35}/tests/test_agent_scope.py +0 -0
  1002. {plexora-0.0.33 → plexora-0.0.35}/tests/test_agent_session.py +0 -0
  1003. {plexora-0.0.33 → plexora-0.0.35}/tests/test_agent_undo.py +0 -0
  1004. {plexora-0.0.33 → plexora-0.0.35}/tests/test_agent_vertical_slice.py +0 -0
  1005. {plexora-0.0.33 → plexora-0.0.35}/tests/test_agent_viewer_api.py +0 -0
  1006. {plexora-0.0.33 → plexora-0.0.35}/tests/test_agent_viewer_routes.py +0 -0
  1007. {plexora-0.0.33 → plexora-0.0.35}/tests/test_agent_volume.py +0 -0
  1008. {plexora-0.0.33 → plexora-0.0.35}/tests/test_ai_bench.py +0 -0
  1009. {plexora-0.0.33 → plexora-0.0.35}/tests/test_ai_chat.py +0 -0
  1010. {plexora-0.0.33 → plexora-0.0.35}/tests/test_ai_chat_panel.py +0 -0
  1011. {plexora-0.0.33 → plexora-0.0.35}/tests/test_ai_context.py +0 -0
  1012. {plexora-0.0.33 → plexora-0.0.35}/tests/test_ai_harness.py +0 -0
  1013. {plexora-0.0.33 → plexora-0.0.35}/tests/test_ai_harness_qc.py +0 -0
  1014. {plexora-0.0.33 → plexora-0.0.35}/tests/test_ai_models_mcp.py +0 -0
  1015. {plexora-0.0.33 → plexora-0.0.35}/tests/test_ai_parallel_markers.py +0 -0
  1016. {plexora-0.0.33 → plexora-0.0.35}/tests/test_ai_route_bench.py +0 -0
  1017. {plexora-0.0.33 → plexora-0.0.35}/tests/test_ai_routes.py +0 -0
  1018. {plexora-0.0.33 → plexora-0.0.35}/tests/test_ai_setup.py +0 -0
  1019. {plexora-0.0.33 → plexora-0.0.35}/tests/test_ai_skills.py +0 -0
  1020. {plexora-0.0.33 → plexora-0.0.35}/tests/test_ai_tasks.py +0 -0
  1021. {plexora-0.0.33 → plexora-0.0.35}/tests/test_ai_token.py +0 -0
  1022. {plexora-0.0.33 → plexora-0.0.35}/tests/test_anndata_adapter.py +0 -0
  1023. {plexora-0.0.33 → plexora-0.0.35}/tests/test_api_dataset.py +0 -0
  1024. {plexora-0.0.33 → plexora-0.0.35}/tests/test_api_store.py +0 -0
  1025. {plexora-0.0.33 → plexora-0.0.35}/tests/test_app_router.py +0 -0
  1026. {plexora-0.0.33 → plexora-0.0.35}/tests/test_app_shell.py +0 -0
  1027. {plexora-0.0.33 → plexora-0.0.35}/tests/test_auth_token.py +0 -0
  1028. {plexora-0.0.33 → plexora-0.0.35}/tests/test_autogate_units.py +0 -0
  1029. {plexora-0.0.33 → plexora-0.0.35}/tests/test_bench_remote.py +0 -0
  1030. {plexora-0.0.33 → plexora-0.0.35}/tests/test_bench_run_arms.py +0 -0
  1031. {plexora-0.0.33 → plexora-0.0.35}/tests/test_bin_tiles.py +0 -0
  1032. {plexora-0.0.33 → plexora-0.0.35}/tests/test_blank_frame.py +0 -0
  1033. {plexora-0.0.33 → plexora-0.0.35}/tests/test_bookmarks.py +0 -0
  1034. {plexora-0.0.33 → plexora-0.0.35}/tests/test_boundary_mask.py +0 -0
  1035. {plexora-0.0.33 → plexora-0.0.35}/tests/test_bridge_approval.py +0 -0
  1036. {plexora-0.0.33 → plexora-0.0.35}/tests/test_bridge_handoff.py +0 -0
  1037. {plexora-0.0.33 → plexora-0.0.35}/tests/test_brightfield_detection.py +0 -0
  1038. {plexora-0.0.33 → plexora-0.0.35}/tests/test_brightfield_pipeline.py +0 -0
  1039. {plexora-0.0.33 → plexora-0.0.35}/tests/test_brightfield_reader.py +0 -0
  1040. {plexora-0.0.33 → plexora-0.0.35}/tests/test_brightfield_routes.py +0 -0
  1041. {plexora-0.0.33 → plexora-0.0.35}/tests/test_browse_routes.py +0 -0
  1042. {plexora-0.0.33 → plexora-0.0.35}/tests/test_browser_guard.py +0 -0
  1043. {plexora-0.0.33 → plexora-0.0.35}/tests/test_canvas_hint_js.py +0 -0
  1044. {plexora-0.0.33 → plexora-0.0.35}/tests/test_carry_over.py +0 -0
  1045. {plexora-0.0.33 → plexora-0.0.35}/tests/test_cell_color_layer.py +0 -0
  1046. {plexora-0.0.33 → plexora-0.0.35}/tests/test_cell_features.py +0 -0
  1047. {plexora-0.0.33 → plexora-0.0.35}/tests/test_cell_mode_control.py +0 -0
  1048. {plexora-0.0.33 → plexora-0.0.35}/tests/test_centroid_tiles.py +0 -0
  1049. {plexora-0.0.33 → plexora-0.0.35}/tests/test_channel_auto_revert.py +0 -0
  1050. {plexora-0.0.33 → plexora-0.0.35}/tests/test_channel_fade_client.py +0 -0
  1051. {plexora-0.0.33 → plexora-0.0.35}/tests/test_channel_names_modal.py +0 -0
  1052. {plexora-0.0.33 → plexora-0.0.35}/tests/test_channel_names_sidecar.py +0 -0
  1053. {plexora-0.0.33 → plexora-0.0.35}/tests/test_channel_names_upload.py +0 -0
  1054. {plexora-0.0.33 → plexora-0.0.35}/tests/test_channel_overview.py +0 -0
  1055. {plexora-0.0.33 → plexora-0.0.35}/tests/test_channel_rename_state.py +0 -0
  1056. {plexora-0.0.33 → plexora-0.0.35}/tests/test_channel_row_position.py +0 -0
  1057. {plexora-0.0.33 → plexora-0.0.35}/tests/test_classify_columns.py +0 -0
  1058. {plexora-0.0.33 → plexora-0.0.35}/tests/test_cli.py +0 -0
  1059. {plexora-0.0.33 → plexora-0.0.35}/tests/test_colormaps.py +0 -0
  1060. {plexora-0.0.33 → plexora-0.0.35}/tests/test_column_classifier_css.py +0 -0
  1061. {plexora-0.0.33 → plexora-0.0.35}/tests/test_config_store.py +0 -0
  1062. {plexora-0.0.33 → plexora-0.0.35}/tests/test_connect.py +0 -0
  1063. {plexora-0.0.33 → plexora-0.0.35}/tests/test_connection_modal.py +0 -0
  1064. {plexora-0.0.33 → plexora-0.0.35}/tests/test_consistency.py +0 -0
  1065. {plexora-0.0.33 → plexora-0.0.35}/tests/test_contrast_observations.py +0 -0
  1066. {plexora-0.0.33 → plexora-0.0.35}/tests/test_core_tools.py +0 -0
  1067. {plexora-0.0.33 → plexora-0.0.35}/tests/test_csv_adapter.py +0 -0
  1068. {plexora-0.0.33 → plexora-0.0.35}/tests/test_csv_xyz.py +0 -0
  1069. {plexora-0.0.33 → plexora-0.0.35}/tests/test_data_location.py +0 -0
  1070. {plexora-0.0.33 → plexora-0.0.35}/tests/test_database_model.py +0 -0
  1071. {plexora-0.0.33 → plexora-0.0.35}/tests/test_datalayer_requests.py +0 -0
  1072. {plexora-0.0.33 → plexora-0.0.35}/tests/test_dataset_answers.py +0 -0
  1073. {plexora-0.0.33 → plexora-0.0.35}/tests/test_dataset_build.py +0 -0
  1074. {plexora-0.0.33 → plexora-0.0.35}/tests/test_dataset_builder_js.py +0 -0
  1075. {plexora-0.0.33 → plexora-0.0.35}/tests/test_dataset_changed.py +0 -0
  1076. {plexora-0.0.33 → plexora-0.0.35}/tests/test_dataset_nav.py +0 -0
  1077. {plexora-0.0.33 → plexora-0.0.35}/tests/test_dataset_plan.py +0 -0
  1078. {plexora-0.0.33 → plexora-0.0.35}/tests/test_dataset_remote.py +0 -0
  1079. {plexora-0.0.33 → plexora-0.0.35}/tests/test_dataset_routes.py +0 -0
  1080. {plexora-0.0.33 → plexora-0.0.35}/tests/test_dataset_scan.py +0 -0
  1081. {plexora-0.0.33 → plexora-0.0.35}/tests/test_dataset_scan_routes.py +0 -0
  1082. {plexora-0.0.33 → plexora-0.0.35}/tests/test_dataset_strip.py +0 -0
  1083. {plexora-0.0.33 → plexora-0.0.35}/tests/test_dataset_web.py +0 -0
  1084. {plexora-0.0.33 → plexora-0.0.35}/tests/test_datasets_api.py +0 -0
  1085. {plexora-0.0.33 → plexora-0.0.35}/tests/test_datasets_api_on_a_node.py +0 -0
  1086. {plexora-0.0.33 → plexora-0.0.35}/tests/test_datasets_registry.py +0 -0
  1087. {plexora-0.0.33 → plexora-0.0.35}/tests/test_derive_anndata_channel_names.py +0 -0
  1088. {plexora-0.0.33 → plexora-0.0.35}/tests/test_desktop_bridge.py +0 -0
  1089. {plexora-0.0.33 → plexora-0.0.35}/tests/test_desktop_cli.py +0 -0
  1090. {plexora-0.0.33 → plexora-0.0.35}/tests/test_desktop_menu.py +0 -0
  1091. {plexora-0.0.33 → plexora-0.0.35}/tests/test_desktop_process.py +0 -0
  1092. {plexora-0.0.33 → plexora-0.0.35}/tests/test_desktop_routes.py +0 -0
  1093. {plexora-0.0.33 → plexora-0.0.35}/tests/test_detect_data_type.py +0 -0
  1094. {plexora-0.0.33 → plexora-0.0.35}/tests/test_dicom_assembly.py +0 -0
  1095. {plexora-0.0.33 → plexora-0.0.35}/tests/test_dicom_detection.py +0 -0
  1096. {plexora-0.0.33 → plexora-0.0.35}/tests/test_dicom_pyramid.py +0 -0
  1097. {plexora-0.0.33 → plexora-0.0.35}/tests/test_dicom_registration.py +0 -0
  1098. {plexora-0.0.33 → plexora-0.0.35}/tests/test_dicom_routes.py +0 -0
  1099. {plexora-0.0.33 → plexora-0.0.35}/tests/test_dir_listing.py +0 -0
  1100. {plexora-0.0.33 → plexora-0.0.35}/tests/test_dir_search.py +0 -0
  1101. {plexora-0.0.33 → plexora-0.0.35}/tests/test_display_curve.py +0 -0
  1102. {plexora-0.0.33 → plexora-0.0.35}/tests/test_docs_coverage.py +0 -0
  1103. {plexora-0.0.33 → plexora-0.0.35}/tests/test_docs_docstrings.py +0 -0
  1104. {plexora-0.0.33 → plexora-0.0.35}/tests/test_docs_envvars.py +0 -0
  1105. {plexora-0.0.33 → plexora-0.0.35}/tests/test_docs_examples.py +0 -0
  1106. {plexora-0.0.33 → plexora-0.0.35}/tests/test_docs_freshness.py +0 -0
  1107. {plexora-0.0.33 → plexora-0.0.35}/tests/test_docs_links.py +0 -0
  1108. {plexora-0.0.33 → plexora-0.0.35}/tests/test_docs_signatures.py +0 -0
  1109. {plexora-0.0.33 → plexora-0.0.35}/tests/test_draw_toolbar_js.py +0 -0
  1110. {plexora-0.0.33 → plexora-0.0.35}/tests/test_drop_plan.py +0 -0
  1111. {plexora-0.0.33 → plexora-0.0.35}/tests/test_drop_router.py +0 -0
  1112. {plexora-0.0.33 → plexora-0.0.35}/tests/test_file_explorer.py +0 -0
  1113. {plexora-0.0.33 → plexora-0.0.35}/tests/test_file_location.py +0 -0
  1114. {plexora-0.0.33 → plexora-0.0.35}/tests/test_file_transfer_node.py +0 -0
  1115. {plexora-0.0.33 → plexora-0.0.35}/tests/test_files_server.py +0 -0
  1116. {plexora-0.0.33 → plexora-0.0.35}/tests/test_fs_places.py +0 -0
  1117. {plexora-0.0.33 → plexora-0.0.35}/tests/test_gate_not_called_js.py +0 -0
  1118. {plexora-0.0.33 → plexora-0.0.35}/tests/test_gating_3d.py +0 -0
  1119. {plexora-0.0.33 → plexora-0.0.35}/tests/test_gating_candidates.py +0 -0
  1120. {plexora-0.0.33 → plexora-0.0.35}/tests/test_gating_channel_match.py +0 -0
  1121. {plexora-0.0.33 → plexora-0.0.35}/tests/test_gating_classifier_layer.py +0 -0
  1122. {plexora-0.0.33 → plexora-0.0.35}/tests/test_gating_delta.py +0 -0
  1123. {plexora-0.0.33 → plexora-0.0.35}/tests/test_gating_experience.py +0 -0
  1124. {plexora-0.0.33 → plexora-0.0.35}/tests/test_gating_hierarchy.py +0 -0
  1125. {plexora-0.0.33 → plexora-0.0.35}/tests/test_gating_hypotheses.py +0 -0
  1126. {plexora-0.0.33 → plexora-0.0.35}/tests/test_gating_limits.py +0 -0
  1127. {plexora-0.0.33 → plexora-0.0.35}/tests/test_gating_log_layer.py +0 -0
  1128. {plexora-0.0.33 → plexora-0.0.35}/tests/test_gating_panel_replay.py +0 -0
  1129. {plexora-0.0.33 → plexora-0.0.35}/tests/test_gating_planes_js.py +0 -0
  1130. {plexora-0.0.33 → plexora-0.0.35}/tests/test_gating_qc_exclusion.py +0 -0
  1131. {plexora-0.0.33 → plexora-0.0.35}/tests/test_gating_replan.py +0 -0
  1132. {plexora-0.0.33 → plexora-0.0.35}/tests/test_gating_session.py +0 -0
  1133. {plexora-0.0.33 → plexora-0.0.35}/tests/test_gating_split_views.py +0 -0
  1134. {plexora-0.0.33 → plexora-0.0.35}/tests/test_gating_tiles.py +0 -0
  1135. {plexora-0.0.33 → plexora-0.0.35}/tests/test_gcloud.py +0 -0
  1136. {plexora-0.0.33 → plexora-0.0.35}/tests/test_hd_default.py +0 -0
  1137. {plexora-0.0.33 → plexora-0.0.35}/tests/test_hd_slider_domain.py +0 -0
  1138. {plexora-0.0.33 → plexora-0.0.35}/tests/test_head_cache.py +0 -0
  1139. {plexora-0.0.33 → plexora-0.0.35}/tests/test_home_landing.py +0 -0
  1140. {plexora-0.0.33 → plexora-0.0.35}/tests/test_host_policy.py +0 -0
  1141. {plexora-0.0.33 → plexora-0.0.35}/tests/test_icon_names.py +0 -0
  1142. {plexora-0.0.33 → plexora-0.0.35}/tests/test_image_cells.py +0 -0
  1143. {plexora-0.0.33 → plexora-0.0.35}/tests/test_image_pyramid.py +0 -0
  1144. {plexora-0.0.33 → plexora-0.0.35}/tests/test_image_status.py +0 -0
  1145. {plexora-0.0.33 → plexora-0.0.35}/tests/test_import_costs_nothing.py +0 -0
  1146. {plexora-0.0.33 → plexora-0.0.35}/tests/test_import_dialog.py +0 -0
  1147. {plexora-0.0.33 → plexora-0.0.35}/tests/test_import_entry_points.py +0 -0
  1148. {plexora-0.0.33 → plexora-0.0.35}/tests/test_import_from_a_node.py +0 -0
  1149. {plexora-0.0.33 → plexora-0.0.35}/tests/test_import_help.py +0 -0
  1150. {plexora-0.0.33 → plexora-0.0.35}/tests/test_import_progressive.py +0 -0
  1151. {plexora-0.0.33 → plexora-0.0.35}/tests/test_import_proposal.py +0 -0
  1152. {plexora-0.0.33 → plexora-0.0.35}/tests/test_import_roles.py +0 -0
  1153. {plexora-0.0.33 → plexora-0.0.35}/tests/test_import_routes_json_errors.py +0 -0
  1154. {plexora-0.0.33 → plexora-0.0.35}/tests/test_import_sample_association.py +0 -0
  1155. {plexora-0.0.33 → plexora-0.0.35}/tests/test_import_sample_routes.py +0 -0
  1156. {plexora-0.0.33 → plexora-0.0.35}/tests/test_ims_index.py +0 -0
  1157. {plexora-0.0.33 → plexora-0.0.35}/tests/test_ims_masks.py +0 -0
  1158. {plexora-0.0.33 → plexora-0.0.35}/tests/test_jupyter_viewer.py +0 -0
  1159. {plexora-0.0.33 → plexora-0.0.35}/tests/test_label_gpu.py +0 -0
  1160. {plexora-0.0.33 → plexora-0.0.35}/tests/test_label_gpu_parity.py +0 -0
  1161. {plexora-0.0.33 → plexora-0.0.35}/tests/test_label_outlines.py +0 -0
  1162. {plexora-0.0.33 → plexora-0.0.35}/tests/test_label_overlay.py +0 -0
  1163. {plexora-0.0.33 → plexora-0.0.35}/tests/test_label_region.py +0 -0
  1164. {plexora-0.0.33 → plexora-0.0.35}/tests/test_label_tile_lifecycle.py +0 -0
  1165. {plexora-0.0.33 → plexora-0.0.35}/tests/test_launch_context.py +0 -0
  1166. {plexora-0.0.33 → plexora-0.0.35}/tests/test_launch_state.py +0 -0
  1167. {plexora-0.0.33 → plexora-0.0.35}/tests/test_layer_channel_panel.py +0 -0
  1168. {plexora-0.0.33 → plexora-0.0.35}/tests/test_layer_draw.py +0 -0
  1169. {plexora-0.0.33 → plexora-0.0.35}/tests/test_layer_jobs.py +0 -0
  1170. {plexora-0.0.33 → plexora-0.0.35}/tests/test_layer_manager.py +0 -0
  1171. {plexora-0.0.33 → plexora-0.0.35}/tests/test_layer_sources.py +0 -0
  1172. {plexora-0.0.33 → plexora-0.0.35}/tests/test_layer_spec.py +0 -0
  1173. {plexora-0.0.33 → plexora-0.0.35}/tests/test_layer_state.py +0 -0
  1174. {plexora-0.0.33 → plexora-0.0.35}/tests/test_layer_transform.py +0 -0
  1175. {plexora-0.0.33 → plexora-0.0.35}/tests/test_layer_visibility.py +0 -0
  1176. {plexora-0.0.33 → plexora-0.0.35}/tests/test_license_js.py +0 -0
  1177. {plexora-0.0.33 → plexora-0.0.35}/tests/test_license_routes.py +0 -0
  1178. {plexora-0.0.33 → plexora-0.0.35}/tests/test_license_transcriptomics.py +0 -0
  1179. {plexora-0.0.33 → plexora-0.0.35}/tests/test_license_visibility.py +0 -0
  1180. {plexora-0.0.33 → plexora-0.0.35}/tests/test_license_volume.py +0 -0
  1181. {plexora-0.0.33 → plexora-0.0.35}/tests/test_licensing_cli.py +0 -0
  1182. {plexora-0.0.33 → plexora-0.0.35}/tests/test_licensing_enforcement.py +0 -0
  1183. {plexora-0.0.33 → plexora-0.0.35}/tests/test_licensing_hardening.py +0 -0
  1184. {plexora-0.0.33 → plexora-0.0.35}/tests/test_licensing_hpc.py +0 -0
  1185. {plexora-0.0.33 → plexora-0.0.35}/tests/test_licensing_manifest.py +0 -0
  1186. {plexora-0.0.33 → plexora-0.0.35}/tests/test_licensing_plugins.py +0 -0
  1187. {plexora-0.0.33 → plexora-0.0.35}/tests/test_lifetime.py +0 -0
  1188. {plexora-0.0.33 → plexora-0.0.35}/tests/test_load_progress.py +0 -0
  1189. {plexora-0.0.33 → plexora-0.0.35}/tests/test_logging.py +0 -0
  1190. {plexora-0.0.33 → plexora-0.0.35}/tests/test_machine_chip.py +0 -0
  1191. {plexora-0.0.33 → plexora-0.0.35}/tests/test_magic_select_wording.py +0 -0
  1192. {plexora-0.0.33 → plexora-0.0.35}/tests/test_manifest.py +0 -0
  1193. {plexora-0.0.33 → plexora-0.0.35}/tests/test_marker_split.py +0 -0
  1194. {plexora-0.0.33 → plexora-0.0.35}/tests/test_mask_formats.py +0 -0
  1195. {plexora-0.0.33 → plexora-0.0.35}/tests/test_mask_without_table.py +0 -0
  1196. {plexora-0.0.33 → plexora-0.0.35}/tests/test_mcp_gating.py +0 -0
  1197. {plexora-0.0.33 → plexora-0.0.35}/tests/test_mcp_http.py +0 -0
  1198. {plexora-0.0.33 → plexora-0.0.35}/tests/test_mcp_job_streaming.py +0 -0
  1199. {plexora-0.0.33 → plexora-0.0.35}/tests/test_mcp_link.py +0 -0
  1200. {plexora-0.0.33 → plexora-0.0.35}/tests/test_mcp_profiles.py +0 -0
  1201. {plexora-0.0.33 → plexora-0.0.35}/tests/test_mcp_qc.py +0 -0
  1202. {plexora-0.0.33 → plexora-0.0.35}/tests/test_mcp_server.py +0 -0
  1203. {plexora-0.0.33 → plexora-0.0.35}/tests/test_mcp_stdio.py +0 -0
  1204. {plexora-0.0.33 → plexora-0.0.35}/tests/test_memory_adapter.py +0 -0
  1205. {plexora-0.0.33 → plexora-0.0.35}/tests/test_memory_datasource.py +0 -0
  1206. {plexora-0.0.33 → plexora-0.0.35}/tests/test_memory_pyramid.py +0 -0
  1207. {plexora-0.0.33 → plexora-0.0.35}/tests/test_metadata_columns.py +0 -0
  1208. {plexora-0.0.33 → plexora-0.0.35}/tests/test_mini_map.py +0 -0
  1209. {plexora-0.0.33 → plexora-0.0.35}/tests/test_nan_tables.py +0 -0
  1210. {plexora-0.0.33 → plexora-0.0.35}/tests/test_nav_shortcuts.py +0 -0
  1211. {plexora-0.0.33 → plexora-0.0.35}/tests/test_nearest_cell.py +0 -0
  1212. {plexora-0.0.33 → plexora-0.0.35}/tests/test_nearest_cell_3d.py +0 -0
  1213. {plexora-0.0.33 → plexora-0.0.35}/tests/test_node_cell_features.py +0 -0
  1214. {plexora-0.0.33 → plexora-0.0.35}/tests/test_node_direct_routing.py +0 -0
  1215. {plexora-0.0.33 → plexora-0.0.35}/tests/test_node_disconnect.py +0 -0
  1216. {plexora-0.0.33 → plexora-0.0.35}/tests/test_node_dynamic.py +0 -0
  1217. {plexora-0.0.33 → plexora-0.0.35}/tests/test_node_image.py +0 -0
  1218. {plexora-0.0.33 → plexora-0.0.35}/tests/test_node_image_pyramid.py +0 -0
  1219. {plexora-0.0.33 → plexora-0.0.35}/tests/test_node_image_type.py +0 -0
  1220. {plexora-0.0.33 → plexora-0.0.35}/tests/test_node_label_volume.py +0 -0
  1221. {plexora-0.0.33 → plexora-0.0.35}/tests/test_node_mask_status.py +0 -0
  1222. {plexora-0.0.33 → plexora-0.0.35}/tests/test_node_new_formats.py +0 -0
  1223. {plexora-0.0.33 → plexora-0.0.35}/tests/test_node_plane_index.py +0 -0
  1224. {plexora-0.0.33 → plexora-0.0.35}/tests/test_node_reconnect.py +0 -0
  1225. {plexora-0.0.33 → plexora-0.0.35}/tests/test_node_routes.py +0 -0
  1226. {plexora-0.0.33 → plexora-0.0.35}/tests/test_node_surfaces.py +0 -0
  1227. {plexora-0.0.33 → plexora-0.0.35}/tests/test_node_table.py +0 -0
  1228. {plexora-0.0.33 → plexora-0.0.35}/tests/test_node_warm_and_cache.py +0 -0
  1229. {plexora-0.0.33 → plexora-0.0.35}/tests/test_notebook_env.py +0 -0
  1230. {plexora-0.0.33 → plexora-0.0.35}/tests/test_notebook_mode.py +0 -0
  1231. {plexora-0.0.33 → plexora-0.0.35}/tests/test_ome_zarr_reader.py +0 -0
  1232. {plexora-0.0.33 → plexora-0.0.35}/tests/test_open_project.py +0 -0
  1233. {plexora-0.0.33 → plexora-0.0.35}/tests/test_optional_segmentation.py +0 -0
  1234. {plexora-0.0.33 → plexora-0.0.35}/tests/test_page_assets.py +0 -0
  1235. {plexora-0.0.33 → plexora-0.0.35}/tests/test_page_routes.py +0 -0
  1236. {plexora-0.0.33 → plexora-0.0.35}/tests/test_parquet_tables.py +0 -0
  1237. {plexora-0.0.33 → plexora-0.0.35}/tests/test_path_drop.py +0 -0
  1238. {plexora-0.0.33 → plexora-0.0.35}/tests/test_paths.py +0 -0
  1239. {plexora-0.0.33 → plexora-0.0.35}/tests/test_physical_coordinates.py +0 -0
  1240. {plexora-0.0.33 → plexora-0.0.35}/tests/test_pixel_scale.py +0 -0
  1241. {plexora-0.0.33 → plexora-0.0.35}/tests/test_pixel_size.py +0 -0
  1242. {plexora-0.0.33 → plexora-0.0.35}/tests/test_plane_cells_route.py +0 -0
  1243. {plexora-0.0.33 → plexora-0.0.35}/tests/test_plane_index.py +0 -0
  1244. {plexora-0.0.33 → plexora-0.0.35}/tests/test_plugin_boundary.py +0 -0
  1245. {plexora-0.0.33 → plexora-0.0.35}/tests/test_plugin_css_boundary.py +0 -0
  1246. {plexora-0.0.33 → plexora-0.0.35}/tests/test_plugin_layers.py +0 -0
  1247. {plexora-0.0.33 → plexora-0.0.35}/tests/test_plugin_panel_standard.py +0 -0
  1248. {plexora-0.0.33 → plexora-0.0.35}/tests/test_plugins.py +0 -0
  1249. {plexora-0.0.33 → plexora-0.0.35}/tests/test_popover_menu.py +0 -0
  1250. {plexora-0.0.33 → plexora-0.0.35}/tests/test_popover_portal.py +0 -0
  1251. {plexora-0.0.33 → plexora-0.0.35}/tests/test_presets_nuclear.py +0 -0
  1252. {plexora-0.0.33 → plexora-0.0.35}/tests/test_prime_hot_code.py +0 -0
  1253. {plexora-0.0.33 → plexora-0.0.35}/tests/test_project_edit_routes.py +0 -0
  1254. {plexora-0.0.33 → plexora-0.0.35}/tests/test_project_layer_routes.py +0 -0
  1255. {plexora-0.0.33 → plexora-0.0.35}/tests/test_project_record.py +0 -0
  1256. {plexora-0.0.33 → plexora-0.0.35}/tests/test_project_title.py +0 -0
  1257. {plexora-0.0.33 → plexora-0.0.35}/tests/test_qc_artifacts_js.py +0 -0
  1258. {plexora-0.0.33 → plexora-0.0.35}/tests/test_qc_bench.py +0 -0
  1259. {plexora-0.0.33 → plexora-0.0.35}/tests/test_qc_blur_js.py +0 -0
  1260. {plexora-0.0.33 → plexora-0.0.35}/tests/test_qc_bulk_timing.py +0 -0
  1261. {plexora-0.0.33 → plexora-0.0.35}/tests/test_qc_candidate_noise.py +0 -0
  1262. {plexora-0.0.33 → plexora-0.0.35}/tests/test_qc_cell_rules.py +0 -0
  1263. {plexora-0.0.33 → plexora-0.0.35}/tests/test_qc_cells_derive.py +0 -0
  1264. {plexora-0.0.33 → plexora-0.0.35}/tests/test_qc_cells_exports.py +0 -0
  1265. {plexora-0.0.33 → plexora-0.0.35}/tests/test_qc_cells_frame.py +0 -0
  1266. {plexora-0.0.33 → plexora-0.0.35}/tests/test_qc_check_sampling.py +0 -0
  1267. {plexora-0.0.33 → plexora-0.0.35}/tests/test_qc_columns.py +0 -0
  1268. {plexora-0.0.33 → plexora-0.0.35}/tests/test_qc_consolidate.py +0 -0
  1269. {plexora-0.0.33 → plexora-0.0.35}/tests/test_qc_cycle_rule.py +0 -0
  1270. {plexora-0.0.33 → plexora-0.0.35}/tests/test_qc_delegated_run_fixes.py +0 -0
  1271. {plexora-0.0.33 → plexora-0.0.35}/tests/test_qc_detectors.py +0 -0
  1272. {plexora-0.0.33 → plexora-0.0.35}/tests/test_qc_digest.py +0 -0
  1273. {plexora-0.0.33 → plexora-0.0.35}/tests/test_qc_geojson_member.py +0 -0
  1274. {plexora-0.0.33 → plexora-0.0.35}/tests/test_qc_hover_js.py +0 -0
  1275. {plexora-0.0.33 → plexora-0.0.35}/tests/test_qc_live_run_fixes.py +0 -0
  1276. {plexora-0.0.33 → plexora-0.0.35}/tests/test_qc_magic_js.py +0 -0
  1277. {plexora-0.0.33 → plexora-0.0.35}/tests/test_qc_magic_select.py +0 -0
  1278. {plexora-0.0.33 → plexora-0.0.35}/tests/test_qc_mirror.py +0 -0
  1279. {plexora-0.0.33 → plexora-0.0.35}/tests/test_qc_payload_trim.py +0 -0
  1280. {plexora-0.0.33 → plexora-0.0.35}/tests/test_qc_picker_js.py +0 -0
  1281. {plexora-0.0.33 → plexora-0.0.35}/tests/test_qc_provenance.py +0 -0
  1282. {plexora-0.0.33 → plexora-0.0.35}/tests/test_qc_refine.py +0 -0
  1283. {plexora-0.0.33 → plexora-0.0.35}/tests/test_qc_refine_tool.py +0 -0
  1284. {plexora-0.0.33 → plexora-0.0.35}/tests/test_qc_registration.py +0 -0
  1285. {plexora-0.0.33 → plexora-0.0.35}/tests/test_qc_registration_js.py +0 -0
  1286. {plexora-0.0.33 → plexora-0.0.35}/tests/test_qc_registration_report.py +0 -0
  1287. {plexora-0.0.33 → plexora-0.0.35}/tests/test_qc_results.py +0 -0
  1288. {plexora-0.0.33 → plexora-0.0.35}/tests/test_qc_rework.py +0 -0
  1289. {plexora-0.0.33 → plexora-0.0.35}/tests/test_qc_scan.py +0 -0
  1290. {plexora-0.0.33 → plexora-0.0.35}/tests/test_qc_score_fields.py +0 -0
  1291. {plexora-0.0.33 → plexora-0.0.35}/tests/test_qc_segment_tool.py +0 -0
  1292. {plexora-0.0.33 → plexora-0.0.35}/tests/test_qc_session.py +0 -0
  1293. {plexora-0.0.33 → plexora-0.0.35}/tests/test_qc_session_checks.py +0 -0
  1294. {plexora-0.0.33 → plexora-0.0.35}/tests/test_qc_session_refine.py +0 -0
  1295. {plexora-0.0.33 → plexora-0.0.35}/tests/test_qc_stack.py +0 -0
  1296. {plexora-0.0.33 → plexora-0.0.35}/tests/test_qc_tool_surface.py +0 -0
  1297. {plexora-0.0.33 → plexora-0.0.35}/tests/test_qc_units.py +0 -0
  1298. {plexora-0.0.33 → plexora-0.0.35}/tests/test_qc_visual_session.py +0 -0
  1299. {plexora-0.0.33 → plexora-0.0.35}/tests/test_qc_visual_tools.py +0 -0
  1300. {plexora-0.0.33 → plexora-0.0.35}/tests/test_recipes.py +0 -0
  1301. {plexora-0.0.33 → plexora-0.0.35}/tests/test_reconnect.py +0 -0
  1302. {plexora-0.0.33 → plexora-0.0.35}/tests/test_refresh_dataset.py +0 -0
  1303. {plexora-0.0.33 → plexora-0.0.35}/tests/test_register_anndata_datasource.py +0 -0
  1304. {plexora-0.0.33 → plexora-0.0.35}/tests/test_register_image_datasource.py +0 -0
  1305. {plexora-0.0.33 → plexora-0.0.35}/tests/test_register_zarr_image_datasource.py +0 -0
  1306. {plexora-0.0.33 → plexora-0.0.35}/tests/test_release_script.py +0 -0
  1307. {plexora-0.0.33 → plexora-0.0.35}/tests/test_remote_chunk_cache.py +0 -0
  1308. {plexora-0.0.33 → plexora-0.0.35}/tests/test_remote_connect.py +0 -0
  1309. {plexora-0.0.33 → plexora-0.0.35}/tests/test_remote_dicom.py +0 -0
  1310. {plexora-0.0.33 → plexora-0.0.35}/tests/test_remote_discovery.py +0 -0
  1311. {plexora-0.0.33 → plexora-0.0.35}/tests/test_remote_file.py +0 -0
  1312. {plexora-0.0.33 → plexora-0.0.35}/tests/test_remote_globe.py +0 -0
  1313. {plexora-0.0.33 → plexora-0.0.35}/tests/test_remote_health.py +0 -0
  1314. {plexora-0.0.33 → plexora-0.0.35}/tests/test_remote_image_provider.py +0 -0
  1315. {plexora-0.0.33 → plexora-0.0.35}/tests/test_remote_image_status.py +0 -0
  1316. {plexora-0.0.33 → plexora-0.0.35}/tests/test_remote_ims.py +0 -0
  1317. {plexora-0.0.33 → plexora-0.0.35}/tests/test_remote_jobs.py +0 -0
  1318. {plexora-0.0.33 → plexora-0.0.35}/tests/test_remote_labels.py +0 -0
  1319. {plexora-0.0.33 → plexora-0.0.35}/tests/test_remote_locator.py +0 -0
  1320. {plexora-0.0.33 → plexora-0.0.35}/tests/test_remote_picture.py +0 -0
  1321. {plexora-0.0.33 → plexora-0.0.35}/tests/test_remote_state.py +0 -0
  1322. {plexora-0.0.33 → plexora-0.0.35}/tests/test_remote_tables.py +0 -0
  1323. {plexora-0.0.33 → plexora-0.0.35}/tests/test_remote_tiff.py +0 -0
  1324. {plexora-0.0.33 → plexora-0.0.35}/tests/test_rename_channels.py +0 -0
  1325. {plexora-0.0.33 → plexora-0.0.35}/tests/test_rename_channels_json.py +0 -0
  1326. {plexora-0.0.33 → plexora-0.0.35}/tests/test_render_clipboard.py +0 -0
  1327. {plexora-0.0.33 → plexora-0.0.35}/tests/test_requirements_routes.py +0 -0
  1328. {plexora-0.0.33 → plexora-0.0.35}/tests/test_resource_status_notice.py +0 -0
  1329. {plexora-0.0.33 → plexora-0.0.35}/tests/test_roi_cell_regions.py +0 -0
  1330. {plexora-0.0.33 → plexora-0.0.35}/tests/test_roi_magic_js.py +0 -0
  1331. {plexora-0.0.33 → plexora-0.0.35}/tests/test_safe_pickle.py +0 -0
  1332. {plexora-0.0.33 → plexora-0.0.35}/tests/test_scimappro_plugin.py +0 -0
  1333. {plexora-0.0.33 → plexora-0.0.35}/tests/test_secret_store.py +0 -0
  1334. {plexora-0.0.33 → plexora-0.0.35}/tests/test_section_cells.py +0 -0
  1335. {plexora-0.0.33 → plexora-0.0.35}/tests/test_security_headers.py +0 -0
  1336. {plexora-0.0.33 → plexora-0.0.35}/tests/test_segment_service_js.py +0 -0
  1337. {plexora-0.0.33 → plexora-0.0.35}/tests/test_segmentation_3d.py +0 -0
  1338. {plexora-0.0.33 → plexora-0.0.35}/tests/test_segmentation_mapping.py +0 -0
  1339. {plexora-0.0.33 → plexora-0.0.35}/tests/test_segmentation_mode_routes.py +0 -0
  1340. {plexora-0.0.33 → plexora-0.0.35}/tests/test_segmentation_pyramid.py +0 -0
  1341. {plexora-0.0.33 → plexora-0.0.35}/tests/test_segmentation_wait.py +0 -0
  1342. {plexora-0.0.33 → plexora-0.0.35}/tests/test_selection.py +0 -0
  1343. {plexora-0.0.33 → plexora-0.0.35}/tests/test_server_records.py +0 -0
  1344. {plexora-0.0.33 → plexora-0.0.35}/tests/test_session_expiry.py +0 -0
  1345. {plexora-0.0.33 → plexora-0.0.35}/tests/test_session_mirror.py +0 -0
  1346. {plexora-0.0.33 → plexora-0.0.35}/tests/test_session_walltime.py +0 -0
  1347. {plexora-0.0.33 → plexora-0.0.35}/tests/test_settings_page.py +0 -0
  1348. {plexora-0.0.33 → plexora-0.0.35}/tests/test_settings_remotes_page.py +0 -0
  1349. {plexora-0.0.33 → plexora-0.0.35}/tests/test_settings_telemetry_page.py +0 -0
  1350. {plexora-0.0.33 → plexora-0.0.35}/tests/test_settings_webdata_page.py +0 -0
  1351. {plexora-0.0.33 → plexora-0.0.35}/tests/test_sftp.py +0 -0
  1352. {plexora-0.0.33 → plexora-0.0.35}/tests/test_shared_roots.py +0 -0
  1353. {plexora-0.0.33 → plexora-0.0.35}/tests/test_sidebar_scoping.py +0 -0
  1354. {plexora-0.0.33 → plexora-0.0.35}/tests/test_single_image_import.py +0 -0
  1355. {plexora-0.0.33 → plexora-0.0.35}/tests/test_slider.py +0 -0
  1356. {plexora-0.0.33 → plexora-0.0.35}/tests/test_slider_css.py +0 -0
  1357. {plexora-0.0.33 → plexora-0.0.35}/tests/test_source_image_core.py +0 -0
  1358. {plexora-0.0.33 → plexora-0.0.35}/tests/test_spatial_index.py +0 -0
  1359. {plexora-0.0.33 → plexora-0.0.35}/tests/test_spatial_scene.py +0 -0
  1360. {plexora-0.0.33 → plexora-0.0.35}/tests/test_spatialdata_adapter.py +0 -0
  1361. {plexora-0.0.33 → plexora-0.0.35}/tests/test_spatialdata_image_import.py +0 -0
  1362. {plexora-0.0.33 → plexora-0.0.35}/tests/test_stack_contrast_client.py +0 -0
  1363. {plexora-0.0.33 → plexora-0.0.35}/tests/test_staged_progress.py +0 -0
  1364. {plexora-0.0.33 → plexora-0.0.35}/tests/test_subprocess_flags.py +0 -0
  1365. {plexora-0.0.33 → plexora-0.0.35}/tests/test_surface_agent.py +0 -0
  1366. {plexora-0.0.33 → plexora-0.0.35}/tests/test_surface_engine.py +0 -0
  1367. {plexora-0.0.33 → plexora-0.0.35}/tests/test_surface_layer.py +0 -0
  1368. {plexora-0.0.33 → plexora-0.0.35}/tests/test_surface_perf.py +0 -0
  1369. {plexora-0.0.33 → plexora-0.0.35}/tests/test_surface_phase2.py +0 -0
  1370. {plexora-0.0.33 → plexora-0.0.35}/tests/test_table_correction.py +0 -0
  1371. {plexora-0.0.33 → plexora-0.0.35}/tests/test_table_progress.py +0 -0
  1372. {plexora-0.0.33 → plexora-0.0.35}/tests/test_telemetry_agent.py +0 -0
  1373. {plexora-0.0.33 → plexora-0.0.35}/tests/test_telemetry_cli.py +0 -0
  1374. {plexora-0.0.33 → plexora-0.0.35}/tests/test_telemetry_client.py +0 -0
  1375. {plexora-0.0.33 → plexora-0.0.35}/tests/test_telemetry_config.py +0 -0
  1376. {plexora-0.0.33 → plexora-0.0.35}/tests/test_telemetry_dataset.py +0 -0
  1377. {plexora-0.0.33 → plexora-0.0.35}/tests/test_telemetry_hooks.py +0 -0
  1378. {plexora-0.0.33 → plexora-0.0.35}/tests/test_telemetry_hooks_cost.py +0 -0
  1379. {plexora-0.0.33 → plexora-0.0.35}/tests/test_telemetry_js.py +0 -0
  1380. {plexora-0.0.33 → plexora-0.0.35}/tests/test_telemetry_node.py +0 -0
  1381. {plexora-0.0.33 → plexora-0.0.35}/tests/test_telemetry_privacy.py +0 -0
  1382. {plexora-0.0.33 → plexora-0.0.35}/tests/test_telemetry_queue.py +0 -0
  1383. {plexora-0.0.33 → plexora-0.0.35}/tests/test_telemetry_routes.py +0 -0
  1384. {plexora-0.0.33 → plexora-0.0.35}/tests/test_telemetry_schema.py +0 -0
  1385. {plexora-0.0.33 → plexora-0.0.35}/tests/test_telemetry_tiles.py +0 -0
  1386. {plexora-0.0.33 → plexora-0.0.35}/tests/test_telemetry_uploader.py +0 -0
  1387. {plexora-0.0.33 → plexora-0.0.35}/tests/test_tenx_matrix.py +0 -0
  1388. {plexora-0.0.33 → plexora-0.0.35}/tests/test_thumbnail_rgb.py +0 -0
  1389. {plexora-0.0.33 → plexora-0.0.35}/tests/test_tiff_hyperstack.py +0 -0
  1390. {plexora-0.0.33 → plexora-0.0.35}/tests/test_tiff_region.py +0 -0
  1391. {plexora-0.0.33 → plexora-0.0.35}/tests/test_tile_batch.py +0 -0
  1392. {plexora-0.0.33 → plexora-0.0.35}/tests/test_tile_colorize.py +0 -0
  1393. {plexora-0.0.33 → plexora-0.0.35}/tests/test_tile_url.py +0 -0
  1394. {plexora-0.0.33 → plexora-0.0.35}/tests/test_toast.py +0 -0
  1395. {plexora-0.0.33 → plexora-0.0.35}/tests/test_tool_assets.py +0 -0
  1396. {plexora-0.0.33 → plexora-0.0.35}/tests/test_tool_cards.py +0 -0
  1397. {plexora-0.0.33 → plexora-0.0.35}/tests/test_tool_coexistence.py +0 -0
  1398. {plexora-0.0.33 → plexora-0.0.35}/tests/test_tool_switching.py +0 -0
  1399. {plexora-0.0.33 → plexora-0.0.35}/tests/test_tooltip.py +0 -0
  1400. {plexora-0.0.33 → plexora-0.0.35}/tests/test_transcript_cost.py +0 -0
  1401. {plexora-0.0.33 → plexora-0.0.35}/tests/test_transcript_tiles.py +0 -0
  1402. {plexora-0.0.33 → plexora-0.0.35}/tests/test_transfer_routes.py +0 -0
  1403. {plexora-0.0.33 → plexora-0.0.35}/tests/test_unreachable_node.py +0 -0
  1404. {plexora-0.0.33 → plexora-0.0.35}/tests/test_updates.py +0 -0
  1405. {plexora-0.0.33 → plexora-0.0.35}/tests/test_url_helpers.py +0 -0
  1406. {plexora-0.0.33 → plexora-0.0.35}/tests/test_view_menu.py +0 -0
  1407. {plexora-0.0.33 → plexora-0.0.35}/tests/test_view_snapshot_js.py +0 -0
  1408. {plexora-0.0.33 → plexora-0.0.35}/tests/test_view_state_client.py +0 -0
  1409. {plexora-0.0.33 → plexora-0.0.35}/tests/test_view_transform.py +0 -0
  1410. {plexora-0.0.33 → plexora-0.0.35}/tests/test_view_transform_routes.py +0 -0
  1411. {plexora-0.0.33 → plexora-0.0.35}/tests/test_viewer_3d_client.py +0 -0
  1412. {plexora-0.0.33 → plexora-0.0.35}/tests/test_viewer_color_by.py +0 -0
  1413. {plexora-0.0.33 → plexora-0.0.35}/tests/test_viewer_error_state.py +0 -0
  1414. {plexora-0.0.33 → plexora-0.0.35}/tests/test_viewer_loader.py +0 -0
  1415. {plexora-0.0.33 → plexora-0.0.35}/tests/test_viewer_sessions.py +0 -0
  1416. {plexora-0.0.33 → plexora-0.0.35}/tests/test_vision_first.py +0 -0
  1417. {plexora-0.0.33 → plexora-0.0.35}/tests/test_vision_sam.py +0 -0
  1418. {plexora-0.0.33 → plexora-0.0.35}/tests/test_vision_sam_real.py +0 -0
  1419. {plexora-0.0.33 → plexora-0.0.35}/tests/test_vision_segment.py +0 -0
  1420. {plexora-0.0.33 → plexora-0.0.35}/tests/test_visium_hd_import.py +0 -0
  1421. {plexora-0.0.33 → plexora-0.0.35}/tests/test_visium_import.py +0 -0
  1422. {plexora-0.0.33 → plexora-0.0.35}/tests/test_vocabulary_learned.py +0 -0
  1423. {plexora-0.0.33 → plexora-0.0.35}/tests/test_volume_backend.py +0 -0
  1424. {plexora-0.0.33 → plexora-0.0.35}/tests/test_volume_bricks.py +0 -0
  1425. {plexora-0.0.33 → plexora-0.0.35}/tests/test_volume_bricks_serve.py +0 -0
  1426. {plexora-0.0.33 → plexora-0.0.35}/tests/test_volume_chunk_cache.py +0 -0
  1427. {plexora-0.0.33 → plexora-0.0.35}/tests/test_volume_core.py +0 -0
  1428. {plexora-0.0.33 → plexora-0.0.35}/tests/test_volume_deep_stacks.py +0 -0
  1429. {plexora-0.0.33 → plexora-0.0.35}/tests/test_volume_depth_levels.py +0 -0
  1430. {plexora-0.0.33 → plexora-0.0.35}/tests/test_volume_dicom.py +0 -0
  1431. {plexora-0.0.33 → plexora-0.0.35}/tests/test_volume_fluid_planes.py +0 -0
  1432. {plexora-0.0.33 → plexora-0.0.35}/tests/test_volume_labels.py +0 -0
  1433. {plexora-0.0.33 → plexora-0.0.35}/tests/test_volume_level_cache.py +0 -0
  1434. {plexora-0.0.33 → plexora-0.0.35}/tests/test_volume_magic.py +0 -0
  1435. {plexora-0.0.33 → plexora-0.0.35}/tests/test_volume_memory.py +0 -0
  1436. {plexora-0.0.33 → plexora-0.0.35}/tests/test_volume_objects_route.py +0 -0
  1437. {plexora-0.0.33 → plexora-0.0.35}/tests/test_volume_pin.py +0 -0
  1438. {plexora-0.0.33 → plexora-0.0.35}/tests/test_volume_plane_read_ahead.py +0 -0
  1439. {plexora-0.0.33 → plexora-0.0.35}/tests/test_volume_propagate.py +0 -0
  1440. {plexora-0.0.33 → plexora-0.0.35}/tests/test_volume_remote.py +0 -0
  1441. {plexora-0.0.33 → plexora-0.0.35}/tests/test_volume_routes.py +0 -0
  1442. {plexora-0.0.33 → plexora-0.0.35}/tests/test_volume_sections.py +0 -0
  1443. {plexora-0.0.33 → plexora-0.0.35}/tests/test_volume_time_series.py +0 -0
  1444. {plexora-0.0.33 → plexora-0.0.35}/tests/test_volume_window_provisional.py +0 -0
  1445. {plexora-0.0.33 → plexora-0.0.35}/tests/test_wide_features.py +0 -0
  1446. {plexora-0.0.33 → plexora-0.0.35}/tests/test_xenium_cells.py +0 -0
  1447. {plexora-0.0.33 → plexora-0.0.35}/tests/test_xenium_focus.py +0 -0
  1448. {plexora-0.0.33 → plexora-0.0.35}/tests/test_xss_sinks_js.py +0 -0
  1449. {plexora-0.0.33 → plexora-0.0.35}/tests/test_zarr_write_retry.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: plexora
3
- Version: 0.0.33
3
+ Version: 0.0.35
4
4
  Summary: OpenSeadragon-based cellular image viewing and analysis tool.
5
5
  Author-email: BioCognia <support@biocognia.com>
6
6
  License-Expression: LicenseRef-Plexora-EULA-1.0
@@ -15,7 +15,7 @@ License-File: LICENSE
15
15
  Requires-Dist: aiohttp>=3.14.4
16
16
  Requires-Dist: anndata>=0.10
17
17
  Requires-Dist: biocognia<0.2,>=0.1.2
18
- Requires-Dist: biocognia-intelligence<0.3,>=0.2.1
18
+ Requires-Dist: biocognia-intelligence<0.4,>=0.2.1
19
19
  Requires-Dist: Flask>=3.1
20
20
  Requires-Dist: fsspec>=2024.12
21
21
  Requires-Dist: h5py>=3.16.0
@@ -679,6 +679,67 @@ def _record_depth_roles(name, roles):
679
679
  record.patch(dataset=spec).with_confirmed(tuple(f"role:{key}" for key in named)).save()
680
680
 
681
681
 
682
+ # -- which project shows this image (another application's import) ---------------
683
+
684
+
685
+ class ImportInput(AgentModel):
686
+ image: str = Field(description="Path to the image on this machine (OME-TIFF, TIFF, "
687
+ "OME-Zarr, a whole-slide file).")
688
+ mask: str | None = Field(None, description="Its segmentation mask (a label image), for "
689
+ "a new project.")
690
+ table: str | None = Field(None, description="Its cell table (CSV, Parquet, .h5ad, a "
691
+ "SpatialData store), for a new project.")
692
+ name: str | None = Field(None, description="The new project's name; default from the "
693
+ "image's filename.")
694
+ dataset: str | None = Field(None, description="Put the new project in this dataset.")
695
+
696
+
697
+ def import_image(call, inp):
698
+ """The project that shows this image, made from it when there is none.
699
+
700
+ What another application calls when a person adds an image to its
701
+ workspace (Biocognia Intelligence, through `plexora_intelligence`). A
702
+ project already showing this file -- matched on the file, however its path
703
+ is spelled, as quick view matches it -- is answered as it is, its mask and
704
+ table left alone. Otherwise one is made from the image, with the mask and
705
+ table when they are given (`datasets.create_project`). The image is read
706
+ where it lies, never copied; what is written is Plexora's project
707
+ registry, and for a large TIFF with no reduced-resolution levels the
708
+ one-time pyramidized copy every import makes of it.
709
+ """
710
+ import os
711
+ from pathlib import Path
712
+
713
+ from plexora import datasets, get_config
714
+ from plexora.agent.receipts import make_receipt
715
+ from plexora.datasource import _find_existing_datasource_for_image
716
+
717
+ # Absolute, so the project never depends on this process's working folder.
718
+ image = Path(os.path.abspath(Path(inp.image).expanduser()))
719
+ if not image.exists():
720
+ raise AgentError("invalid_input", f"no image at {inp.image}",
721
+ detail={"image": str(image)})
722
+ if not os.access(image, os.R_OK):
723
+ raise AgentError("invalid_input", f"{inp.image} cannot be read by Plexora",
724
+ detail={"image": str(image)})
725
+ found = _find_existing_datasource_for_image(image, get_config())
726
+ if found:
727
+ call.project_name = found
728
+ return {"project": found, "created": False, "image": str(image)}
729
+ try:
730
+ name = datasets.create_project(str(image), name=inp.name, segmentation=inp.mask,
731
+ data=inp.table, exist_ok=False, dataset=inp.dataset)
732
+ except ValueError as exc:
733
+ raise AgentError("invalid_input", str(exc), detail={"image": str(image)}) from None
734
+ call.project_name = name
735
+ receipt = make_receipt(
736
+ call, changed=True, before=None,
737
+ after={"project": name, "image": str(image), "mask": inp.mask, "table": inp.table},
738
+ persistent_state="config", reversible=False)
739
+ return {"project": name, "created": True, "image": str(image),
740
+ "receipt": receipt.model_dump(mode="json")}
741
+
742
+
682
743
  def capabilities():
683
744
  return [
684
745
  Capability(
@@ -759,6 +820,14 @@ def capabilities():
759
820
  permission="reversible_write", input_model=BindInput, handler=bind_project,
760
821
  writes=("project",), persistent=True, reversible=False,
761
822
  tags=("project", "bind", "bridge", "handoff")),
823
+ Capability(
824
+ name="project.import", tool_name="import_image", owner="core",
825
+ purpose="The project that shows an image file on this machine, made from it (with "
826
+ "its mask and cell table, when given) when there is none yet: the image is "
827
+ "read where it lies, and a project already showing it is answered as it is.",
828
+ permission="reversible_write", input_model=ImportInput, handler=import_image,
829
+ writes=("project",), persistent=True, reversible=False,
830
+ tags=("project", "import", "image", "bridge", "handoff")),
762
831
  Capability(
763
832
  name="resource.status", tool_name="get_resource_status", owner="core",
764
833
  purpose="Where a project's image, mask and table are (this machine or a data "
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: plexora
3
- Version: 0.0.33
3
+ Version: 0.0.35
4
4
  Summary: OpenSeadragon-based cellular image viewing and analysis tool.
5
5
  Author-email: BioCognia <support@biocognia.com>
6
6
  License-Expression: LicenseRef-Plexora-EULA-1.0
@@ -15,7 +15,7 @@ License-File: LICENSE
15
15
  Requires-Dist: aiohttp>=3.14.4
16
16
  Requires-Dist: anndata>=0.10
17
17
  Requires-Dist: biocognia<0.2,>=0.1.2
18
- Requires-Dist: biocognia-intelligence<0.3,>=0.2.1
18
+ Requires-Dist: biocognia-intelligence<0.4,>=0.2.1
19
19
  Requires-Dist: Flask>=3.1
20
20
  Requires-Dist: fsspec>=2024.12
21
21
  Requires-Dist: h5py>=3.16.0
@@ -1,7 +1,7 @@
1
1
  aiohttp>=3.14.4
2
2
  anndata>=0.10
3
3
  biocognia<0.2,>=0.1.2
4
- biocognia-intelligence<0.3,>=0.2.1
4
+ biocognia-intelligence<0.4,>=0.2.1
5
5
  Flask>=3.1
6
6
  fsspec>=2024.12
7
7
  h5py>=3.16.0
@@ -3,24 +3,43 @@
3
3
  `biocognia_intelligence/registry.py`).
4
4
 
5
5
  Standard library only, so `biocognia list` names Plexora without importing
6
- it; each method imports what it needs. Plexora joins as a guest: no workspace
7
- belongs to it yet, and in a workspace another product holds (SCIMAP Pro's),
8
- the conversation may call the tools listed in `GUEST_TOOLS` as
9
- `plexora.<tool>`. Each call reaches Plexora over spatialbridge -- the copy
10
- already running, else one started for it (`plexora mcp serve --origin
11
- bridge`) -- and Plexora checks it as it checks any bridge call: its licence,
12
- its policy, and never a source-file write or a delete.
6
+ it; each method imports what it needs. Plexora holds no workspace of its own
7
+ (`home()` is None and its one role is guest), and takes part in the app's
8
+ workspaces three ways.
9
+
10
+ - Its tools. In a workspace's conversation the app may call the tools listed
11
+ in `GUEST_TOOLS` as `plexora.<tool>`. Each call reaches Plexora over
12
+ spatialbridge -- the copy already running, else one started for it
13
+ (`plexora mcp serve --origin bridge`) -- and Plexora checks it as it checks
14
+ any bridge call: its licence, its policy, and never a source-file write or
15
+ a delete.
16
+ - Its licence pays (`pay()`). A workspace's conversation may be paid for by
17
+ Plexora: each model call goes through Plexora's own gateway client, on this
18
+ device's Plexora licence, as Plexora's task (`plexora.chat.turn`). Plexora
19
+ pays for the conversation only -- its `chat` module -- so the app refuses a
20
+ plan's call before sending it rather than letting the gateway answer 403.
21
+ Without Plexora's AI on this device every call is refused with the
22
+ sentence `ai()` gives, and the licence is asked again at the next call.
23
+ - Its images. An app that can hand a file to a product (0.3.1 on) asks
24
+ `imports(path)`: for an image Plexora opens, by name alone, it names the
25
+ guest tool that takes it -- `import_image`, which answers with the project
26
+ that shows that file, made from it where there is none, the image read
27
+ where it lies -- and its arguments. `classify(path)` still labels the image
28
+ as Plexora's, with no action, for an app that cannot.
13
29
 
14
30
  What a conversation is offered is `guest.json`, written from the capability
15
31
  registry by `tools/intelligence_manifest.py`, so the catalogue never depends
16
32
  on whether Plexora is running. Its Pro tools (AI gating and QC) carry their
17
33
  entitlement, and the app offers them only where `grants()` -- this device's
18
- Plexora licence, read without a network call -- covers it. Plexora's own AI
19
- -- its chat panel, `plexora ai`, its MCP server -- is untouched by any of this.
34
+ Plexora licence, read without a network call -- covers it. Plexora's own chat
35
+ panel, `plexora ai` and its MCP server work as they did; paying for the app's
36
+ conversation is a second use of the same licence and gateway.
20
37
  """
21
38
 
22
39
  from __future__ import annotations
23
40
 
41
+ import os
42
+ import re
24
43
  import sys
25
44
 
26
45
  #: The Plexora tools a conversation in another product's workspace may call:
@@ -31,9 +50,9 @@ import sys
31
50
  #: the home's own hand-offs drive (the viewer, gates and regions coming back)
32
51
  #: is the home's. `tools/intelligence_manifest.py` checks all of it.
33
52
  GUEST_TOOLS = (
34
- # What a project is.
53
+ # What a project is, and the one an image file the person names becomes.
35
54
  "list_projects", "inspect_project", "list_channels", "list_markers", "get_marker_distribution",
36
- "detect_nuclear_channels", "count_cells_in_roi",
55
+ "detect_nuclear_channels", "count_cells_in_roi", "import_image",
37
56
  # Gates, judged against the marker's distribution.
38
57
  "get_gate", "suggest_auto_gate", "get_gate_distribution", "get_gated_summary", "get_gate_provenance",
39
58
  "set_gate", "adjust_gate", "reset_gates",
@@ -58,7 +77,9 @@ GUEST_TOOLS = (
58
77
  #: What the conversation is told about Plexora (the prefix, beside the catalogue).
59
78
  RULES = ("Plexora is the image viewer and its analyses of the pixels. Its tools take a `project` (an image "
60
79
  "with its mask and cell table): plexora.list_projects names those it knows, and a dataset it does "
61
- "not know yet is handed to it by this workspace's own hand-off first. Gating: "
80
+ "not know yet is handed to it by this workspace's own hand-off first. An image file the person "
81
+ "names becomes one through plexora.import_image, which answers with the project that already "
82
+ "shows that file when there is one. Gating: "
62
83
  "plexora.suggest_auto_gate proposes a gate from the marker's distribution, plexora.set_gate stores "
63
84
  "it, plexora.get_gated_summary counts what a gate calls positive. Quality control: "
64
85
  "plexora.run_basic_qc on an image nobody has checked, then plexora.get_qc_results. "
@@ -83,6 +104,29 @@ CODES = {
83
104
  "ambiguous_view": "invalid_input",
84
105
  }
85
106
 
107
+ #: Why Plexora's AI is off on this device: `ai()`'s reason, and what a call
108
+ #: Plexora would pay for is refused with.
109
+ NO_AI = "Plexora's AI needs Plexora Pro; `plexora license status` says what this device has"
110
+
111
+ #: What Plexora's licence pays for in a workspace: the conversation (its chat
112
+ #: module), never SCIMAP Pro's plans.
113
+ PAID_MODULES = ("chat",)
114
+
115
+ #: The images Plexora opens, by the end of their name, longest first so
116
+ #: `.ome.tif` is not read as `.tif`: the format each is. Not a plain `.zarr`:
117
+ #: by its name it may as well be an AnnData or SpatialData store (SCIMAP Pro's).
118
+ IMAGES = ((".ome.tiff", "ome-tiff"), (".ome.tif", "ome-tiff"), (".ome.zarr", "ome-zarr"),
119
+ (".qptiff", "qptiff"), (".tiff", "tiff"), (".tif", "tiff"))
120
+
121
+ #: What the app shows beside an image Plexora opens.
122
+ IMAGE_LABEL = "Image · open it in Plexora"
123
+
124
+ #: What the app shows beside an image it may hand to Plexora (`imports`).
125
+ IMPORT_LABEL = "Image · Plexora"
126
+
127
+ #: The guest tool an image is handed to Plexora through.
128
+ IMPORT_TOOL = "import_image"
129
+
86
130
 
87
131
  class _Guest:
88
132
  """Plexora's tools, as a guest in another product's workspace."""
@@ -132,8 +176,59 @@ class _Plexora:
132
176
 
133
177
  if licensing.allows("ai:chat"):
134
178
  return {"ok": True, "reason": None}
135
- return {"ok": False, "reason": "Plexora's AI needs Plexora Pro; `plexora license status` says what this "
136
- "device has"}
179
+ return {"ok": False, "reason": NO_AI}
180
+
181
+ def pay(self) -> dict:
182
+ """What the app needs for Plexora to pay for a workspace's
183
+ conversation: a factory for the gateway client each model call goes
184
+ through, and the modules it serves (the chat only)."""
185
+ return {"gateway_factory": self._gateway, "modules": PAID_MODULES}
186
+
187
+ def _gateway(self):
188
+ """Plexora's gateway client when this device's licence allows its AI,
189
+ else one that refuses every call with `ai()`'s reason. Decided at each
190
+ call, so a device activated while the app runs pays from the next one.
191
+
192
+ The app hands it requests carrying SCIMAP Pro's task names too
193
+ (`chat.researcher`); `tasks.wire_id` sends a task Plexora's registry
194
+ does not name as `plexora.<module>.<task>`, which the gateway serves
195
+ at Plexora's default."""
196
+ state = self.ai()
197
+ if not state["ok"]:
198
+ from spatialagents.gateway import RefusingGateway
199
+
200
+ return RefusingGateway(state["reason"])
201
+ from plexora.ai.harness.gateway import GatewayClient
202
+
203
+ return GatewayClient()
204
+
205
+ def classify(self, path) -> dict | None:
206
+ """An image Plexora opens, by its name alone (no file is read):
207
+ `{format, label, action, product}`, with no action in this release;
208
+ None for anything else, a cell table included."""
209
+ name = re.split(r"[\\/]", os.fspath(path).rstrip("\\/"))[-1].lower()
210
+ for suffix, kind in IMAGES:
211
+ if name.endswith(suffix):
212
+ return {"format": kind, "label": IMAGE_LABEL, "action": None, "product": self.id}
213
+ return None
214
+
215
+ @property
216
+ def page(self) -> dict:
217
+ """What the app's home screen lists among what it opens: the images
218
+ Plexora takes (`imports`), files and the OME-Zarr folder."""
219
+ return {"formats": {"files": [suffix for suffix, _ in IMAGES if not suffix.endswith(".zarr")],
220
+ "folders": [suffix for suffix, _ in IMAGES if suffix.endswith(".zarr")]}}
221
+
222
+ def imports(self, path) -> dict | None:
223
+ """How the app hands an image Plexora opens to Plexora: `{format,
224
+ label, tool, arguments}`, the guest tool (`import_image`) and what to
225
+ call it with; None for anything `classify` does not name an image.
226
+ By name alone, as `classify`: the tool is what reads the file."""
227
+ found = self.classify(path)
228
+ if found is None:
229
+ return None
230
+ return {"format": found["format"], "label": IMPORT_LABEL, "tool": IMPORT_TOOL,
231
+ "arguments": {"image": os.fspath(path)}}
137
232
 
138
233
  def licensing(self):
139
234
  from plexora.licensing import LICENSING
@@ -469,6 +469,97 @@
469
469
  "viewer_required": false
470
470
  }
471
471
  },
472
+ {
473
+ "description": "The project that shows an image file on this machine, made from it (with its mask and cell table, when given) when there is none yet: the image is read where it lies, and a project already showing it is answered as it is. Changes Plexora's own state (reversible); returns a receipt.",
474
+ "descriptor": {
475
+ "entitlement": null,
476
+ "execution": "immediate",
477
+ "id": "plexora:project.import",
478
+ "input_schema": {
479
+ "additionalProperties": false,
480
+ "properties": {
481
+ "dataset": {
482
+ "anyOf": [
483
+ {
484
+ "type": "string"
485
+ },
486
+ {
487
+ "type": "null"
488
+ }
489
+ ],
490
+ "default": null,
491
+ "description": "Put the new project in this dataset.",
492
+ "title": "Dataset"
493
+ },
494
+ "image": {
495
+ "description": "Path to the image on this machine (OME-TIFF, TIFF, OME-Zarr, a whole-slide file).",
496
+ "title": "Image",
497
+ "type": "string"
498
+ },
499
+ "mask": {
500
+ "anyOf": [
501
+ {
502
+ "type": "string"
503
+ },
504
+ {
505
+ "type": "null"
506
+ }
507
+ ],
508
+ "default": null,
509
+ "description": "Its segmentation mask (a label image), for a new project.",
510
+ "title": "Mask"
511
+ },
512
+ "name": {
513
+ "anyOf": [
514
+ {
515
+ "type": "string"
516
+ },
517
+ {
518
+ "type": "null"
519
+ }
520
+ ],
521
+ "default": null,
522
+ "description": "The new project's name; default from the image's filename.",
523
+ "title": "Name"
524
+ },
525
+ "table": {
526
+ "anyOf": [
527
+ {
528
+ "type": "string"
529
+ },
530
+ {
531
+ "type": "null"
532
+ }
533
+ ],
534
+ "default": null,
535
+ "description": "Its cell table (CSV, Parquet, .h5ad, a SpatialData store), for a new project.",
536
+ "title": "Table"
537
+ }
538
+ },
539
+ "required": [
540
+ "image"
541
+ ],
542
+ "title": "ImportInput",
543
+ "type": "object"
544
+ },
545
+ "needs": [],
546
+ "permission": "reversible_write",
547
+ "produces": [],
548
+ "provider": "plexora",
549
+ "purpose": "The project that shows an image file on this machine, made from it (with its mask and cell table, when given) when there is none yet: the image is read where it lies, and a project already showing it is answered as it is.",
550
+ "roles": [],
551
+ "tags": [
552
+ "project",
553
+ "import",
554
+ "image",
555
+ "bridge",
556
+ "handoff"
557
+ ],
558
+ "tool_name": "import_image",
559
+ "version": "1",
560
+ "viewer_required": false
561
+ }
562
+ },
472
563
  {
473
564
  "description": "One marker's stored gate (lower/upper bound, whether it was ever narrowed from the full range) and how many cells it calls positive. Read-only.",
474
565
  "descriptor": {
@@ -6,7 +6,7 @@ build-backend = "setuptools.build_meta"
6
6
 
7
7
  [project]
8
8
  name = "plexora"
9
- version = "0.0.33"
9
+ version = "0.0.35"
10
10
  description = "OpenSeadragon-based cellular image viewing and analysis tool."
11
11
  readme = "README.md"
12
12
  authors = [{ name = "BioCognia", email = "support@biocognia.com" }]
@@ -54,8 +54,12 @@ dependencies = [
54
54
  # in a SCIMAP Pro workspace, its tools -- its Pro AI gating and QC on a Pro
55
55
  # licence -- join the conversation over the bridge. Stdlib-only at import;
56
56
  # it adds the MCP SDK through spatialbridge[mcp], which the ai extra
57
- # already brings.
58
- "biocognia-intelligence>=0.2.1,<0.3",
57
+ # already brings. 0.3 may also have Plexora's licence pay for a
58
+ # workspace's conversation (`pay()`) and label its images (`classify`);
59
+ # 0.2 ignores both. 0.3.1 hands Plexora an image a person adds to a
60
+ # workspace (`imports()`, the `import_image` guest tool); 0.3.0 only
61
+ # labels it.
62
+ "biocognia-intelligence>=0.2.1,<0.4",
59
63
  "Flask>=3.1",
60
64
  "fsspec>=2024.12",
61
65
  # Declared rather than leaned on transitively: gating reads and writes
@@ -88,6 +88,22 @@ def test_errors_come_back_in_the_protocols_shape(peer):
88
88
  assert invalid.value.code == "invalid_input"
89
89
 
90
90
 
91
+ def test_an_image_is_imported_over_mcp_as_biocognia_intelligence_hands_it(peer, tmp_path):
92
+ from spatialbridge.errors import BridgeError
93
+
94
+ from tests.agent_fixtures import blob_scene, write_image_pyramid
95
+
96
+ image = str(write_image_pyramid(tmp_path / "tonsil.ome.tif", blob_scene(size=256, grid=4, radius=12)[0]))
97
+ made = peer.invoke("import_image", {"image": image}, wait=False)
98
+ assert (made["project"], made["created"], made["image"]) == ("tonsil", True, image)
99
+ assert made["receipt"]["capability"] == "project.import"
100
+ again = peer.invoke("import_image", {"image": image}, wait=False)
101
+ assert (again["project"], again["created"]) == ("tonsil", False)
102
+ with pytest.raises(BridgeError) as missing:
103
+ peer.invoke("import_image", {"image": str(tmp_path / "gone.ome.tif")}, wait=False)
104
+ assert missing.value.code == "invalid_input" and "no image at" in str(missing.value)
105
+
106
+
91
107
  def test_a_bridge_origin_needs_no_mcp_grant(license_issuer):
92
108
  license_issuer.install() # Pro default: ["ai"], no mcp
93
109
  registry._reset_for_tests()