integrate-ui 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- integrate_ui-0.1.0/.claude/agents/core-dev.md +34 -0
- integrate_ui-0.1.0/.claude/agents/desktop-dev.md +34 -0
- integrate_ui-0.1.0/.claude/agents/docs-writer.md +34 -0
- integrate_ui-0.1.0/.claude/agents/parity-scout.md +34 -0
- integrate_ui-0.1.0/.claude/agents/qa.md +34 -0
- integrate_ui-0.1.0/.claude/agents/reviewer.md +34 -0
- integrate_ui-0.1.0/.claude/agents/ux-architect.md +34 -0
- integrate_ui-0.1.0/.claude/agents/viz-dev.md +34 -0
- integrate_ui-0.1.0/.claude/agents/web-dev.md +34 -0
- integrate_ui-0.1.0/.claude/commands/new-feature.md +35 -0
- integrate_ui-0.1.0/.claude/commands/parity-scan.md +23 -0
- integrate_ui-0.1.0/.github/agent-ownership.yml +67 -0
- integrate_ui-0.1.0/.github/workflows/ci.yml +263 -0
- integrate_ui-0.1.0/.github/workflows/parity-weekly.yml +124 -0
- integrate_ui-0.1.0/.gitignore +11 -0
- integrate_ui-0.1.0/.python-version +1 -0
- integrate_ui-0.1.0/AGENT.md +131 -0
- integrate_ui-0.1.0/CLAUDE.md +1 -0
- integrate_ui-0.1.0/DAUGAARD_POST_XLS_EM_BH_N10001_iN2__6266_5431_profile_M1XLS_EM_BH.png +0 -0
- integrate_ui-0.1.0/DAUGAARD_POST_XLS_EM_BH_N10001_iN2__6266_5431_profile_M2XLS_EM_BH.png +0 -0
- integrate_ui-0.1.0/LICENSE +21 -0
- integrate_ui-0.1.0/PKG-INFO +266 -0
- integrate_ui-0.1.0/README.md +245 -0
- integrate_ui-0.1.0/docs/PLAN.md +311 -0
- integrate_ui-0.1.0/docs/ROADMAP.md +154 -0
- integrate_ui-0.1.0/docs/STATUS.md +271 -0
- integrate_ui-0.1.0/docs/decisions/ADR-0001-architecture.md +58 -0
- integrate_ui-0.1.0/docs/decisions/ADR-0002-library-pin.md +80 -0
- integrate_ui-0.1.0/docs/decisions/ADR-0003-agent-definitions.md +117 -0
- integrate_ui-0.1.0/docs/decisions/ADR-0004-desktop-shell.md +185 -0
- integrate_ui-0.1.0/docs/decisions/ADR-0005-rendering-stack.md +442 -0
- integrate_ui-0.1.0/docs/decisions/ADR-0006-forms.md +182 -0
- integrate_ui-0.1.0/docs/decisions/ADR-0007-array-transfer.md +272 -0
- integrate_ui-0.1.0/docs/decisions/ADR-0008-agent-md-sync-at-phase-0-exit.md +206 -0
- integrate_ui-0.1.0/docs/decisions/ADR-0009-local-server-token-and-project-root.md +345 -0
- integrate_ui-0.1.0/docs/decisions/ADR-0010-writing-results-into-the-project.md +57 -0
- integrate_ui-0.1.0/docs/decisions/ADR-0011-3d-voronoi-view-vtkjs.md +84 -0
- integrate_ui-0.1.0/docs/decisions/ADR-0012-native-pyvista-3d-viewer.md +36 -0
- integrate_ui-0.1.0/docs/decisions/ADR-0013-library-error-detail-on-failed-jobs.md +33 -0
- integrate_ui-0.1.0/docs/decisions/TEMPLATE.md +17 -0
- integrate_ui-0.1.0/docs/design/data-browser.md +218 -0
- integrate_ui-0.1.0/docs/design/explore-profile.md +212 -0
- integrate_ui-0.1.0/docs/design/tokens.json +61 -0
- integrate_ui-0.1.0/docs/design/view-3d.md +366 -0
- integrate_ui-0.1.0/docs/parity/PARITY.md +168 -0
- integrate_ui-0.1.0/docs/parity/UPSTREAM.md +29 -0
- integrate_ui-0.1.0/docs/parity/api_snapshot.json +1697 -0
- integrate_ui-0.1.0/docs/parity/upstream-requests.md +300 -0
- integrate_ui-0.1.0/docs/superpowers/plans/2026-10-18-phase0-bootstrap.md +298 -0
- integrate_ui-0.1.0/docs/superpowers/plans/2026-10-20-hardening-part-3.md +55 -0
- integrate_ui-0.1.0/docs/superpowers/plans/2026-10-20-local-server-hardening.md +69 -0
- integrate_ui-0.1.0/docs/superpowers/plans/2026-10-20-project-open.md +62 -0
- integrate_ui-0.1.0/docs/superpowers/plans/2026-10-20-serve-built-ui.md +83 -0
- integrate_ui-0.1.0/docs/superpowers/plans/2026-10-20-token-and-project-root.md +96 -0
- integrate_ui-0.1.0/docs/superpowers/plans/2026-10-21-csp-and-docs.md +63 -0
- integrate_ui-0.1.0/docs/superpowers/plans/2026-10-21-decision-slice1.md +35 -0
- integrate_ui-0.1.0/docs/superpowers/plans/2026-10-21-explore-posterior.md +57 -0
- integrate_ui-0.1.0/docs/superpowers/plans/2026-10-21-h5-inspector.md +65 -0
- integrate_ui-0.1.0/docs/superpowers/plans/2026-10-21-web-project-view.md +66 -0
- integrate_ui-0.1.0/docs/superpowers/plans/2026-11-03-data-browser.md +168 -0
- integrate_ui-0.1.0/pypi_build_script +116 -0
- integrate_ui-0.1.0/pyproject.toml +62 -0
- integrate_ui-0.1.0/run_gui.sh +3 -0
- integrate_ui-0.1.0/spikes/s1-shell/.gitignore +3 -0
- integrate_ui-0.1.0/spikes/s1-shell/README.md +30 -0
- integrate_ui-0.1.0/spikes/s1-shell/bench.py +159 -0
- integrate_ui-0.1.0/spikes/s1-shell/launcher.py +365 -0
- integrate_ui-0.1.0/spikes/s1-shell/serve_ui.py +31 -0
- integrate_ui-0.1.0/spikes/s2-render/.gitignore +4 -0
- integrate_ui-0.1.0/spikes/s2-render/README.md +107 -0
- integrate_ui-0.1.0/spikes/s2-render/build.mjs +23 -0
- integrate_ui-0.1.0/spikes/s2-render/package-lock.json +934 -0
- integrate_ui-0.1.0/spikes/s2-render/package.json +16 -0
- integrate_ui-0.1.0/spikes/s2-render/results/bundle_sizes.json +14 -0
- integrate_ui-0.1.0/spikes/s2-render/results/gpu-diag-canvas2d-bitmap.json +1 -0
- integrate_ui-0.1.0/spikes/s2-render/results/gpu.json +1 -0
- integrate_ui-0.1.0/spikes/s2-render/results/swiftshader-4core.json +1 -0
- integrate_ui-0.1.0/spikes/s2-render/results/swiftshader-diag-canvas2d-bitmap.json +1 -0
- integrate_ui-0.1.0/spikes/s2-render/results/swiftshader-diag-canvas2d-wrf.json +1 -0
- integrate_ui-0.1.0/spikes/s2-render/results/swiftshader-diag-deck-nostroke.json +1 -0
- integrate_ui-0.1.0/spikes/s2-render/results/swiftshader-diag-webgl-instanced.json +1 -0
- integrate_ui-0.1.0/spikes/s2-render/results/swiftshader.json +1 -0
- integrate_ui-0.1.0/spikes/s2-render/run.mjs +180 -0
- integrate_ui-0.1.0/spikes/s2-render/src/common.js +230 -0
- integrate_ui-0.1.0/spikes/s2-render/src/entry_canvas2d.js +3 -0
- integrate_ui-0.1.0/spikes/s2-render/src/entry_deck.js +3 -0
- integrate_ui-0.1.0/spikes/s2-render/src/entry_webgl.js +3 -0
- integrate_ui-0.1.0/spikes/s2-render/src/measure.js +226 -0
- integrate_ui-0.1.0/spikes/s2-render/src/r_canvas2d.js +178 -0
- integrate_ui-0.1.0/spikes/s2-render/src/r_deck.js +157 -0
- integrate_ui-0.1.0/spikes/s2-render/src/r_webgl.js +289 -0
- integrate_ui-0.1.0/spikes/s3-forms/.gitignore +2 -0
- integrate_ui-0.1.0/spikes/s3-forms/README.md +18 -0
- integrate_ui-0.1.0/spikes/s3-forms/discoverability.py +70 -0
- integrate_ui-0.1.0/spikes/s3-forms/package-lock.json +1255 -0
- integrate_ui-0.1.0/spikes/s3-forms/package.json +19 -0
- integrate_ui-0.1.0/spikes/s3-forms/results.json +443 -0
- integrate_ui-0.1.0/spikes/s3-forms/run.mjs +204 -0
- integrate_ui-0.1.0/spikes/s3-forms/schemas/integrate_rejection.json +225 -0
- integrate_ui-0.1.0/spikes/s3-forms/schemas/plot_profile.json +199 -0
- integrate_ui-0.1.0/spikes/s3-forms/schemas/prior_model_layered.json +208 -0
- integrate_ui-0.1.0/spikes/s3-forms/specs.py +593 -0
- integrate_ui-0.1.0/spikes/s3-forms/src/custom.jsx +110 -0
- integrate_ui-0.1.0/spikes/s3-forms/src/entry-baseline.jsx +3 -0
- integrate_ui-0.1.0/spikes/s3-forms/src/entry-custom.jsx +8 -0
- integrate_ui-0.1.0/spikes/s3-forms/src/entry-rjsf.jsx +8 -0
- integrate_ui-0.1.0/spikes/s3-forms/src/rjsf.jsx +78 -0
- integrate_ui-0.1.0/spikes/s3-forms/src/rules.js +16 -0
- integrate_ui-0.1.0/spikes/s3-forms/src/test-entry.jsx +5 -0
- integrate_ui-0.1.0/spikes/s4-transfer/.gitignore +5 -0
- integrate_ui-0.1.0/spikes/s4-transfer/README.md +42 -0
- integrate_ui-0.1.0/spikes/s4-transfer/build.mjs +3 -0
- integrate_ui-0.1.0/spikes/s4-transfer/diag.mjs +17 -0
- integrate_ui-0.1.0/spikes/s4-transfer/diag2.mjs +18 -0
- integrate_ui-0.1.0/spikes/s4-transfer/ergonomics/client-check.ts +21 -0
- integrate_ui-0.1.0/spikes/s4-transfer/ergonomics/neg-check.ts +10 -0
- integrate_ui-0.1.0/spikes/s4-transfer/ergonomics/openapi-binary.json +40 -0
- integrate_ui-0.1.0/spikes/s4-transfer/ergonomics/schema.d.ts +120 -0
- integrate_ui-0.1.0/spikes/s4-transfer/package-lock.json +1003 -0
- integrate_ui-0.1.0/spikes/s4-transfer/package.json +18 -0
- integrate_ui-0.1.0/spikes/s4-transfer/results/diag.txt +12 -0
- integrate_ui-0.1.0/spikes/s4-transfer/results/diag2.txt +20 -0
- integrate_ui-0.1.0/spikes/s4-transfer/results/results.json +704 -0
- integrate_ui-0.1.0/spikes/s4-transfer/run.mjs +85 -0
- integrate_ui-0.1.0/spikes/s4-transfer/server.py +213 -0
- integrate_ui-0.1.0/spikes/s4-transfer/src/client.js +89 -0
- integrate_ui-0.1.0/spikes/s4-transfer/src/index.html +1 -0
- integrate_ui-0.1.0/src/backend/integrate_ui/__init__.py +9 -0
- integrate_ui-0.1.0/src/backend/integrate_ui/__main__.py +8 -0
- integrate_ui-0.1.0/src/backend/integrate_ui/adapter/__init__.py +1 -0
- integrate_ui-0.1.0/src/backend/integrate_ui/adapter/data_arrays.py +1308 -0
- integrate_ui-0.1.0/src/backend/integrate_ui/adapter/h5.py +516 -0
- integrate_ui-0.1.0/src/backend/integrate_ui/adapter/library.py +212 -0
- integrate_ui-0.1.0/src/backend/integrate_ui/adapter/library_calls.py +103 -0
- integrate_ui-0.1.0/src/backend/integrate_ui/adapter/post_arrays.py +2052 -0
- integrate_ui-0.1.0/src/backend/integrate_ui/adapter/query_job.py +533 -0
- integrate_ui-0.1.0/src/backend/integrate_ui/adapter/query_worker.py +400 -0
- integrate_ui-0.1.0/src/backend/integrate_ui/adapter/render.py +221 -0
- integrate_ui-0.1.0/src/backend/integrate_ui/adapter/render_worker.py +238 -0
- integrate_ui-0.1.0/src/backend/integrate_ui/adapter/results_io.py +317 -0
- integrate_ui-0.1.0/src/backend/integrate_ui/api/__init__.py +1 -0
- integrate_ui-0.1.0/src/backend/integrate_ui/api/app.py +168 -0
- integrate_ui-0.1.0/src/backend/integrate_ui/api/data.py +413 -0
- integrate_ui-0.1.0/src/backend/integrate_ui/api/decision.py +38 -0
- integrate_ui-0.1.0/src/backend/integrate_ui/api/docs_assets/swagger-initializer.js +23 -0
- integrate_ui-0.1.0/src/backend/integrate_ui/api/docs_page.py +60 -0
- integrate_ui-0.1.0/src/backend/integrate_ui/api/explore.py +469 -0
- integrate_ui-0.1.0/src/backend/integrate_ui/api/fs.py +100 -0
- integrate_ui-0.1.0/src/backend/integrate_ui/api/headers.py +80 -0
- integrate_ui-0.1.0/src/backend/integrate_ui/api/jobs.py +419 -0
- integrate_ui-0.1.0/src/backend/integrate_ui/api/project.py +294 -0
- integrate_ui-0.1.0/src/backend/integrate_ui/api/results.py +217 -0
- integrate_ui-0.1.0/src/backend/integrate_ui/api/schemas.py +37 -0
- integrate_ui-0.1.0/src/backend/integrate_ui/api/security.py +166 -0
- integrate_ui-0.1.0/src/backend/integrate_ui/api/web_ui.py +76 -0
- integrate_ui-0.1.0/src/backend/integrate_ui/cli.py +293 -0
- integrate_ui-0.1.0/src/backend/integrate_ui/jobs/__init__.py +1 -0
- integrate_ui-0.1.0/src/backend/integrate_ui/jobs/errors.py +17 -0
- integrate_ui-0.1.0/src/backend/integrate_ui/jobs/models.py +619 -0
- integrate_ui-0.1.0/src/backend/integrate_ui/jobs/record.py +326 -0
- integrate_ui-0.1.0/src/backend/integrate_ui/jobs/registry.py +657 -0
- integrate_ui-0.1.0/src/backend/integrate_ui/project/__init__.py +1 -0
- integrate_ui-0.1.0/src/backend/integrate_ui/project/browse.py +109 -0
- integrate_ui-0.1.0/src/backend/integrate_ui/project/manifest.py +228 -0
- integrate_ui-0.1.0/src/backend/integrate_ui/project/paths.py +189 -0
- integrate_ui-0.1.0/src/backend/integrate_ui/project/results.py +477 -0
- integrate_ui-0.1.0/src/backend/integrate_ui/project/results_models.py +180 -0
- integrate_ui-0.1.0/src/backend/integrate_ui/project/scan.py +170 -0
- integrate_ui-0.1.0/src/backend/integrate_ui/project/service.py +197 -0
- integrate_ui-0.1.0/src/backend/integrate_ui/project/text.py +17 -0
- integrate_ui-0.1.0/src/web/index.html +12 -0
- integrate_ui-0.1.0/src/web/openapi.json +8522 -0
- integrate_ui-0.1.0/src/web/package-lock.json +2874 -0
- integrate_ui-0.1.0/src/web/package.json +32 -0
- integrate_ui-0.1.0/src/web/src/App.test.tsx +77 -0
- integrate_ui-0.1.0/src/web/src/App.tsx +58 -0
- integrate_ui-0.1.0/src/web/src/api/client.ts +8 -0
- integrate_ui-0.1.0/src/web/src/api/generated/schema.d.ts +5775 -0
- integrate_ui-0.1.0/src/web/src/main.tsx +12 -0
- integrate_ui-0.1.0/src/web/src/project/DataBrowser.test.tsx +231 -0
- integrate_ui-0.1.0/src/web/src/project/DataBrowser.tsx +249 -0
- integrate_ui-0.1.0/src/web/src/project/DataRegionPanel.test.tsx +423 -0
- integrate_ui-0.1.0/src/web/src/project/DataRegionPanel.tsx +332 -0
- integrate_ui-0.1.0/src/web/src/project/ExplorePanel.test.tsx +863 -0
- integrate_ui-0.1.0/src/web/src/project/ExplorePanel.tsx +274 -0
- integrate_ui-0.1.0/src/web/src/project/ExploreSection.test.tsx +500 -0
- integrate_ui-0.1.0/src/web/src/project/ExploreSection.tsx +332 -0
- integrate_ui-0.1.0/src/web/src/project/FigureOptions.test.tsx +328 -0
- integrate_ui-0.1.0/src/web/src/project/FigureOptions.tsx +160 -0
- integrate_ui-0.1.0/src/web/src/project/FigureSection.tsx +42 -0
- integrate_ui-0.1.0/src/web/src/project/FileList.test.tsx +241 -0
- integrate_ui-0.1.0/src/web/src/project/FolderBrowser.tsx +119 -0
- integrate_ui-0.1.0/src/web/src/project/FolderChooser.test.tsx +318 -0
- integrate_ui-0.1.0/src/web/src/project/H5Browser.tsx +278 -0
- integrate_ui-0.1.0/src/web/src/project/H5Inspector.test.tsx +199 -0
- integrate_ui-0.1.0/src/web/src/project/H5Inspector.tsx +206 -0
- integrate_ui-0.1.0/src/web/src/project/JsonText.test.tsx +47 -0
- integrate_ui-0.1.0/src/web/src/project/JsonText.tsx +72 -0
- integrate_ui-0.1.0/src/web/src/project/OpenProjectForm.tsx +122 -0
- integrate_ui-0.1.0/src/web/src/project/PostTabs.test.tsx +83 -0
- integrate_ui-0.1.0/src/web/src/project/PostTabs.tsx +97 -0
- integrate_ui-0.1.0/src/web/src/project/ProjectView.test.tsx +413 -0
- integrate_ui-0.1.0/src/web/src/project/ProjectView.tsx +182 -0
- integrate_ui-0.1.0/src/web/src/project/Voronoi3dPanel.test.tsx +686 -0
- integrate_ui-0.1.0/src/web/src/project/Voronoi3dPanel.tsx +737 -0
- integrate_ui-0.1.0/src/web/src/project/Voronoi3dRail.tsx +185 -0
- integrate_ui-0.1.0/src/web/src/project/decision/Comparison.tsx +79 -0
- integrate_ui-0.1.0/src/web/src/project/decision/DecisionPanel.test.tsx +576 -0
- integrate_ui-0.1.0/src/web/src/project/decision/DecisionPanel.tsx +298 -0
- integrate_ui-0.1.0/src/web/src/project/decision/JobStatusView.tsx +182 -0
- integrate_ui-0.1.0/src/web/src/project/decision/QuestionFormView.tsx +242 -0
- integrate_ui-0.1.0/src/web/src/project/decision/exports.ts +33 -0
- integrate_ui-0.1.0/src/web/src/project/decision/fakeJobs.ts +97 -0
- integrate_ui-0.1.0/src/web/src/project/decision/question.test.ts +175 -0
- integrate_ui-0.1.0/src/web/src/project/decision/question.ts +233 -0
- integrate_ui-0.1.0/src/web/src/project/decision/useDecision.ts +387 -0
- integrate_ui-0.1.0/src/web/src/project/decision/useJobSlot.ts +285 -0
- integrate_ui-0.1.0/src/web/src/project/errors.test.ts +63 -0
- integrate_ui-0.1.0/src/web/src/project/errors.ts +101 -0
- integrate_ui-0.1.0/src/web/src/project/fileBrowserUi.ts +76 -0
- integrate_ui-0.1.0/src/web/src/project/format.test.ts +69 -0
- integrate_ui-0.1.0/src/web/src/project/format.ts +76 -0
- integrate_ui-0.1.0/src/web/src/project/noUnsafeHtml.test.ts +22 -0
- integrate_ui-0.1.0/src/web/src/project/profileCaption.test.ts +114 -0
- integrate_ui-0.1.0/src/web/src/project/profileCaption.ts +118 -0
- integrate_ui-0.1.0/src/web/src/project/recent.ts +64 -0
- integrate_ui-0.1.0/src/web/src/project/regionPanel.test.ts +227 -0
- integrate_ui-0.1.0/src/web/src/project/regionPanel.ts +272 -0
- integrate_ui-0.1.0/src/web/src/project/testBackend.ts +136 -0
- integrate_ui-0.1.0/src/web/src/project/useDataBrowser.ts +334 -0
- integrate_ui-0.1.0/src/web/src/project/useExplore.ts +355 -0
- integrate_ui-0.1.0/src/web/src/project/useFigure.test.tsx +229 -0
- integrate_ui-0.1.0/src/web/src/project/useFigure.ts +89 -0
- integrate_ui-0.1.0/src/web/src/project/useFolderBrowser.ts +112 -0
- integrate_ui-0.1.0/src/web/src/project/useProject.test.tsx +309 -0
- integrate_ui-0.1.0/src/web/src/project/useProject.ts +256 -0
- integrate_ui-0.1.0/src/web/src/project/useRegionData.ts +147 -0
- integrate_ui-0.1.0/src/web/src/project/useVoronoi3d.ts +339 -0
- integrate_ui-0.1.0/src/web/src/project/useVtuExport.ts +151 -0
- integrate_ui-0.1.0/src/web/src/project/voronoi3dForm.test.ts +262 -0
- integrate_ui-0.1.0/src/web/src/project/voronoi3dForm.ts +312 -0
- integrate_ui-0.1.0/src/web/src/styles/app.css +1178 -0
- integrate_ui-0.1.0/src/web/src/styles/tokens.css +71 -0
- integrate_ui-0.1.0/src/web/src/test/setup.ts +20 -0
- integrate_ui-0.1.0/src/web/src/ui/loading.test.tsx +83 -0
- integrate_ui-0.1.0/src/web/src/ui/loading.tsx +42 -0
- integrate_ui-0.1.0/src/web/src/viteConfig.test.ts +16 -0
- integrate_ui-0.1.0/src/web/src/viz/ClassLegend.tsx +23 -0
- integrate_ui-0.1.0/src/web/src/viz/Colorbar.test.tsx +35 -0
- integrate_ui-0.1.0/src/web/src/viz/Colorbar.tsx +106 -0
- integrate_ui-0.1.0/src/web/src/viz/DataPlot.tsx +244 -0
- integrate_ui-0.1.0/src/web/src/viz/MapView.test.tsx +312 -0
- integrate_ui-0.1.0/src/web/src/viz/MapView.tsx +1181 -0
- integrate_ui-0.1.0/src/web/src/viz/MapViewLine.test.tsx +242 -0
- integrate_ui-0.1.0/src/web/src/viz/MapViewOutline.test.tsx +202 -0
- integrate_ui-0.1.0/src/web/src/viz/MapViewProfile.test.tsx +360 -0
- integrate_ui-0.1.0/src/web/src/viz/MapViewRegion.test.tsx +276 -0
- integrate_ui-0.1.0/src/web/src/viz/RegionDataPlot.test.tsx +495 -0
- integrate_ui-0.1.0/src/web/src/viz/RegionDataPlot.tsx +199 -0
- integrate_ui-0.1.0/src/web/src/viz/RegionPanel.test.tsx +115 -0
- integrate_ui-0.1.0/src/web/src/viz/RegionPanel.tsx +203 -0
- integrate_ui-0.1.0/src/web/src/viz/SectionView.test.tsx +393 -0
- integrate_ui-0.1.0/src/web/src/viz/SectionView.tsx +482 -0
- integrate_ui-0.1.0/src/web/src/viz/SoundingView.test.tsx +340 -0
- integrate_ui-0.1.0/src/web/src/viz/SoundingView.tsx +737 -0
- integrate_ui-0.1.0/src/web/src/viz/arrays.test.ts +215 -0
- integrate_ui-0.1.0/src/web/src/viz/arrays.ts +1094 -0
- integrate_ui-0.1.0/src/web/src/viz/categorical.test.tsx +271 -0
- integrate_ui-0.1.0/src/web/src/viz/colorGolden.test.ts +28 -0
- integrate_ui-0.1.0/src/web/src/viz/colourSource.test.tsx +85 -0
- integrate_ui-0.1.0/src/web/src/viz/dataArrays.test.ts +198 -0
- integrate_ui-0.1.0/src/web/src/viz/dataArrays.ts +350 -0
- integrate_ui-0.1.0/src/web/src/viz/fixtures/classColours.json +22 -0
- integrate_ui-0.1.0/src/web/src/viz/fixtures/colorGolden.json +318 -0
- integrate_ui-0.1.0/src/web/src/viz/fixtures/colours.json +48 -0
- integrate_ui-0.1.0/src/web/src/viz/gridIndex.test.ts +105 -0
- integrate_ui-0.1.0/src/web/src/viz/gridIndex.ts +112 -0
- integrate_ui-0.1.0/src/web/src/viz/index.ts +135 -0
- integrate_ui-0.1.0/src/web/src/viz/jobResults.test.ts +211 -0
- integrate_ui-0.1.0/src/web/src/viz/lineSegments.test.ts +106 -0
- integrate_ui-0.1.0/src/web/src/viz/lineSegments.ts +85 -0
- integrate_ui-0.1.0/src/web/src/viz/lut.ts +138 -0
- integrate_ui-0.1.0/src/web/src/viz/profileArrays.test.ts +155 -0
- integrate_ui-0.1.0/src/web/src/viz/regionData.test.ts +299 -0
- integrate_ui-0.1.0/src/web/src/viz/regionData.ts +388 -0
- integrate_ui-0.1.0/src/web/src/viz/regionDataLayout.ts +496 -0
- integrate_ui-0.1.0/src/web/src/viz/regionSelect.test.ts +181 -0
- integrate_ui-0.1.0/src/web/src/viz/regionSelect.ts +287 -0
- integrate_ui-0.1.0/src/web/src/viz/regionStats.test.ts +95 -0
- integrate_ui-0.1.0/src/web/src/viz/regionStats.ts +185 -0
- integrate_ui-0.1.0/src/web/src/viz/sectionLayout.test.ts +232 -0
- integrate_ui-0.1.0/src/web/src/viz/sectionLayout.ts +377 -0
- integrate_ui-0.1.0/src/web/src/viz/selection.test.ts +230 -0
- integrate_ui-0.1.0/src/web/src/viz/selection.ts +185 -0
- integrate_ui-0.1.0/src/web/src/viz/sounding.test.ts +268 -0
- integrate_ui-0.1.0/src/web/src/viz/soundingLayout.test.ts +157 -0
- integrate_ui-0.1.0/src/web/src/viz/soundingLayout.ts +250 -0
- integrate_ui-0.1.0/src/web/src/viz/stepFocus.test.ts +98 -0
- integrate_ui-0.1.0/src/web/src/viz/stepFocus.ts +132 -0
- integrate_ui-0.1.0/src/web/src/viz/testUtils.ts +550 -0
- integrate_ui-0.1.0/src/web/src/viz/ticks.test.ts +35 -0
- integrate_ui-0.1.0/src/web/src/viz/ticks.ts +51 -0
- integrate_ui-0.1.0/src/web/src/viz/tokens.test.ts +21 -0
- integrate_ui-0.1.0/src/web/src/viz/tokens.ts +82 -0
- integrate_ui-0.1.0/src/web/src/viz/viewMath.test.ts +65 -0
- integrate_ui-0.1.0/src/web/src/viz/viewMath.ts +81 -0
- integrate_ui-0.1.0/src/web/src/viz/viz.css +407 -0
- integrate_ui-0.1.0/src/web/src/viz/voronoi3d/Voronoi3dView.test.tsx +29 -0
- integrate_ui-0.1.0/src/web/src/viz/voronoi3d/Voronoi3dView.tsx +176 -0
- integrate_ui-0.1.0/src/web/src/viz/voronoi3d/colour.test.ts +122 -0
- integrate_ui-0.1.0/src/web/src/viz/voronoi3d/colour.ts +162 -0
- integrate_ui-0.1.0/src/web/src/viz/voronoi3d/decode.test.ts +109 -0
- integrate_ui-0.1.0/src/web/src/viz/voronoi3d/decode.ts +193 -0
- integrate_ui-0.1.0/src/web/src/viz/voronoi3d/geometry.test.ts +174 -0
- integrate_ui-0.1.0/src/web/src/viz/voronoi3d/geometry.ts +442 -0
- integrate_ui-0.1.0/src/web/src/viz/voronoi3d/golden.test.ts +308 -0
- integrate_ui-0.1.0/src/web/src/viz/voronoi3d/navigation.ts +14 -0
- integrate_ui-0.1.0/src/web/src/viz/voronoi3d/slices.test.ts +122 -0
- integrate_ui-0.1.0/src/web/src/viz/voronoi3d/slices.ts +152 -0
- integrate_ui-0.1.0/src/web/src/viz/voronoi3d/testFixtures.ts +160 -0
- integrate_ui-0.1.0/src/web/src/viz/voronoi3d/types.ts +97 -0
- integrate_ui-0.1.0/src/web/src/viz/voronoi3d/vtkScene.ts +703 -0
- integrate_ui-0.1.0/src/web/src/viz/voronoi3d/webgl.ts +21 -0
- integrate_ui-0.1.0/src/web/src/viz/webglPoints.test.ts +134 -0
- integrate_ui-0.1.0/src/web/src/viz/webglPoints.ts +317 -0
- integrate_ui-0.1.0/src/web/tsconfig.json +19 -0
- integrate_ui-0.1.0/src/web/vite.config.ts +21 -0
- integrate_ui-0.1.0/tests/backend/conftest.py +200 -0
- integrate_ui-0.1.0/tests/backend/h5_fixtures.py +136 -0
- integrate_ui-0.1.0/tests/backend/test_adapter.py +373 -0
- integrate_ui-0.1.0/tests/backend/test_adapter_h5.py +621 -0
- integrate_ui-0.1.0/tests/backend/test_cli.py +707 -0
- integrate_ui-0.1.0/tests/backend/test_cli_default.py +153 -0
- integrate_ui-0.1.0/tests/backend/test_colour_scale_rule.py +177 -0
- integrate_ui-0.1.0/tests/backend/test_data_api.py +496 -0
- integrate_ui-0.1.0/tests/backend/test_data_region.py +475 -0
- integrate_ui-0.1.0/tests/backend/test_decisions_save.py +869 -0
- integrate_ui-0.1.0/tests/backend/test_docs.py +239 -0
- integrate_ui-0.1.0/tests/backend/test_explore_api.py +854 -0
- integrate_ui-0.1.0/tests/backend/test_explore_discrete.py +671 -0
- integrate_ui-0.1.0/tests/backend/test_explore_profile.py +463 -0
- integrate_ui-0.1.0/tests/backend/test_explore_sounding.py +945 -0
- integrate_ui-0.1.0/tests/backend/test_figure_api.py +750 -0
- integrate_ui-0.1.0/tests/backend/test_fs_api.py +301 -0
- integrate_ui-0.1.0/tests/backend/test_h5_api.py +347 -0
- integrate_ui-0.1.0/tests/backend/test_headers.py +265 -0
- integrate_ui-0.1.0/tests/backend/test_health.py +32 -0
- integrate_ui-0.1.0/tests/backend/test_jobs_decision.py +980 -0
- integrate_ui-0.1.0/tests/backend/test_jobs_query.py +984 -0
- integrate_ui-0.1.0/tests/backend/test_jobs_voronoi3d.py +620 -0
- integrate_ui-0.1.0/tests/backend/test_package.py +32 -0
- integrate_ui-0.1.0/tests/backend/test_project_api.py +469 -0
- integrate_ui-0.1.0/tests/backend/test_project_manifest.py +273 -0
- integrate_ui-0.1.0/tests/backend/test_project_paths.py +422 -0
- integrate_ui-0.1.0/tests/backend/test_project_service.py +433 -0
- integrate_ui-0.1.0/tests/backend/test_scan.py +400 -0
- integrate_ui-0.1.0/tests/backend/test_security.py +645 -0
- integrate_ui-0.1.0/tests/backend/test_web_ui.py +214 -0
- integrate_ui-0.1.0/tests/backend/test_wheel_bundle.py +166 -0
- integrate_ui-0.1.0/tests/conftest.py +26 -0
- integrate_ui-0.1.0/tests/golden/data_region/README.md +116 -0
- integrate_ui-0.1.0/tests/golden/data_region/make_region_reference.py +609 -0
- integrate_ui-0.1.0/tests/golden/data_region/region.golden.test.ts +224 -0
- integrate_ui-0.1.0/tests/golden/data_region/region_reference.json +1 -0
- integrate_ui-0.1.0/tests/golden/data_region/test_region_reference.py +329 -0
- integrate_ui-0.1.0/tests/golden/explore_profile/README.md +116 -0
- integrate_ui-0.1.0/tests/golden/explore_profile/make_profile_reference.py +594 -0
- integrate_ui-0.1.0/tests/golden/explore_profile/profile.golden.test.ts +232 -0
- integrate_ui-0.1.0/tests/golden/explore_profile/profile_reference.json +1 -0
- integrate_ui-0.1.0/tests/golden/explore_profile/test_profile_reference.py +289 -0
- integrate_ui-0.1.0/tests/golden/vitest.config.mjs +21 -0
- integrate_ui-0.1.0/tests/golden/voronoi3d/README.md +91 -0
- integrate_ui-0.1.0/tests/golden/voronoi3d/make_reference.py +340 -0
- integrate_ui-0.1.0/tests/golden/voronoi3d/reference.json +1 -0
- integrate_ui-0.1.0/tests/golden/voronoi3d/test_reference.py +136 -0
- integrate_ui-0.1.0/tests/tools/test_agents.py +373 -0
- integrate_ui-0.1.0/tests/tools/test_check_boundaries.py +335 -0
- integrate_ui-0.1.0/tests/tools/test_check_ownership.py +498 -0
- integrate_ui-0.1.0/tests/tools/test_gen_api.py +77 -0
- integrate_ui-0.1.0/tests/tools/test_gen_design.py +211 -0
- integrate_ui-0.1.0/tests/tools/test_parity_scan.py +895 -0
- integrate_ui-0.1.0/tests/tools/test_workflows.py +821 -0
- integrate_ui-0.1.0/tools/__init__.py +1 -0
- integrate_ui-0.1.0/tools/check_boundaries.py +180 -0
- integrate_ui-0.1.0/tools/check_ownership.py +151 -0
- integrate_ui-0.1.0/tools/gen_api.py +76 -0
- integrate_ui-0.1.0/tools/gen_design.py +127 -0
- integrate_ui-0.1.0/tools/hatch_build.py +41 -0
- integrate_ui-0.1.0/tools/parity_scan.py +425 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: core-dev
|
|
3
|
+
description: Use when work touches the Python backend, its API, projects and lineage, jobs, schemas, data services, tools or backend tests.
|
|
4
|
+
tools: Read, Grep, Glob, Write, Edit, Bash, WebFetch
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Role
|
|
8
|
+
|
|
9
|
+
You are `core-dev`, the Python agent. You build the backend in `src/backend/` (package `integrate_ui`): API, projects/lineage, jobs, schemas, data services. Computation comes from `integrate` and only `src/backend/integrate_ui/adapter/` imports it. Contract changes (`ModuleSpec` to JSON Schema to OpenAPI) are merged before UI work depends on them.
|
|
10
|
+
|
|
11
|
+
## Owns
|
|
12
|
+
|
|
13
|
+
`src/backend/**`, `tools/**` except `tools/parity_scan.py` and `tools/gen_design.py`, `tests/*.py`, `tests/backend/**`, `tests/tools/**` except the two script tests above, `pyproject.toml` (backend dependencies and packaging, co-owned with the orchestrator), and the generated contract files `src/web/openapi.json` and `src/web/src/api/generated/**`
|
|
14
|
+
|
|
15
|
+
## Must not
|
|
16
|
+
|
|
17
|
+
touch `src/desktop`, or anything else under `src/web`
|
|
18
|
+
|
|
19
|
+
## Before you start
|
|
20
|
+
|
|
21
|
+
- Read `AGENT.md` (the operating contract), `docs/STATUS.md` and `docs/PLAN.md`.
|
|
22
|
+
- Also read `docs/parity/UPSTREAM.md` (the pinned upstream version) and `docs/decisions/` (accepted decisions).
|
|
23
|
+
- Work on a branch `agent/core-dev/<topic>`, in its own git worktree next to the main checkout: `git worktree add ../integrate_ui-<topic> -b agent/core-dev/<topic>`. The library is a uv path source resolved from the project root, so the worktree must sit next to the `integrate_module` checkout (a sibling directory); anywhere else `uv sync` fails with "Distribution not found".
|
|
24
|
+
- Edit only the paths under Owns; cross-boundary needs go through an issue/handoff note.
|
|
25
|
+
|
|
26
|
+
## Report format
|
|
27
|
+
|
|
28
|
+
End every task with a 5-line report:
|
|
29
|
+
|
|
30
|
+
1. done
|
|
31
|
+
2. files touched
|
|
32
|
+
3. risks
|
|
33
|
+
4. open questions
|
|
34
|
+
5. next
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: desktop-dev
|
|
3
|
+
description: Use when work touches the desktop shell in src/desktop, including the sidecar, packaging, installers and native OS integration.
|
|
4
|
+
tools: Read, Grep, Glob, Write, Edit, Bash, WebFetch
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Role
|
|
8
|
+
|
|
9
|
+
You are `desktop-dev`. You build the native shell in `src/desktop/` around the same TypeScript UI as the web app, with the sidecar, packaging, installers and OS integration. No GPL code (GA-AEM) goes into distributed installers without an owner decision.
|
|
10
|
+
|
|
11
|
+
## Owns
|
|
12
|
+
|
|
13
|
+
`src/desktop/**` (shell, sidecar, packaging, installers, native integration)
|
|
14
|
+
|
|
15
|
+
## Must not
|
|
16
|
+
|
|
17
|
+
fork UI behavior from web
|
|
18
|
+
|
|
19
|
+
## Before you start
|
|
20
|
+
|
|
21
|
+
- Read `AGENT.md` (the operating contract), `docs/STATUS.md` and `docs/PLAN.md`.
|
|
22
|
+
- Also read `docs/decisions/` (accepted decisions).
|
|
23
|
+
- Work on a branch `agent/desktop-dev/<topic>`, in its own git worktree next to the main checkout: `git worktree add ../integrate_ui-<topic> -b agent/desktop-dev/<topic>`. The library is a uv path source resolved from the project root, so the worktree must sit next to the `integrate_module` checkout (a sibling directory); anywhere else `uv sync` fails with "Distribution not found".
|
|
24
|
+
- Edit only the paths under Owns; cross-boundary needs go through an issue/handoff note.
|
|
25
|
+
|
|
26
|
+
## Report format
|
|
27
|
+
|
|
28
|
+
End every task with a 5-line report:
|
|
29
|
+
|
|
30
|
+
1. done
|
|
31
|
+
2. files touched
|
|
32
|
+
3. risks
|
|
33
|
+
4. open questions
|
|
34
|
+
5. next
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: docs-writer
|
|
3
|
+
description: Use when the README or the user documentation under docs/user needs writing or updating.
|
|
4
|
+
tools: Read, Grep, Glob, Write, Edit, Bash
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Role
|
|
8
|
+
|
|
9
|
+
You are `docs-writer`. You write `README.md` and the user documentation in `docs/user/`, describing the behavior the product has today. You never change that behavior.
|
|
10
|
+
|
|
11
|
+
## Owns
|
|
12
|
+
|
|
13
|
+
`README.md`, `docs/user/**`
|
|
14
|
+
|
|
15
|
+
## Must not
|
|
16
|
+
|
|
17
|
+
change behavior
|
|
18
|
+
|
|
19
|
+
## Before you start
|
|
20
|
+
|
|
21
|
+
- Read `AGENT.md` (the operating contract), `docs/STATUS.md` and `docs/PLAN.md`.
|
|
22
|
+
- Also read `README.md` and `docs/decisions/` (accepted decisions).
|
|
23
|
+
- Work on a branch `agent/docs-writer/<topic>`, in its own git worktree next to the main checkout: `git worktree add ../integrate_ui-<topic> -b agent/docs-writer/<topic>`. The library is a uv path source resolved from the project root, so the worktree must sit next to the `integrate_module` checkout (a sibling directory); anywhere else `uv sync` fails with "Distribution not found".
|
|
24
|
+
- Edit only the paths under Owns; cross-boundary needs go through an issue/handoff note.
|
|
25
|
+
|
|
26
|
+
## Report format
|
|
27
|
+
|
|
28
|
+
End every task with a 5-line report:
|
|
29
|
+
|
|
30
|
+
1. done
|
|
31
|
+
2. files touched
|
|
32
|
+
3. risks
|
|
33
|
+
4. open questions
|
|
34
|
+
5. next
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: parity-scout
|
|
3
|
+
description: Use when the upstream integrate_module API changed or the parity ledger needs a scan, a diff or a gap issue.
|
|
4
|
+
tools: Read, Grep, Glob, Write, Edit, Bash
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Role
|
|
8
|
+
|
|
9
|
+
You are `parity-scout`. You run the parity loop (AGENT.md section 7): scan the upstream public API with `tools/parity_scan.py`, diff it against `docs/parity/api_snapshot.json`, keep the ledger `docs/parity/PARITY.md` current and draft one issue per gap. You also draft upstream requests (option registry, array accessors, cancel hooks), but you never edit upstream.
|
|
10
|
+
|
|
11
|
+
## Owns
|
|
12
|
+
|
|
13
|
+
`docs/parity/**`, `tools/parity_scan.py` with `tests/tools/test_parity_scan.py`, issues
|
|
14
|
+
|
|
15
|
+
## Must not
|
|
16
|
+
|
|
17
|
+
edit other code; edit upstream (drafts issues only)
|
|
18
|
+
|
|
19
|
+
## Before you start
|
|
20
|
+
|
|
21
|
+
- Read `AGENT.md` (the operating contract), `docs/STATUS.md` and `docs/PLAN.md`.
|
|
22
|
+
- Also read `docs/parity/UPSTREAM.md` (the pinned upstream version) and `docs/parity/PARITY.md` (the ledger).
|
|
23
|
+
- Work on a branch `agent/parity-scout/<topic>`, in its own git worktree next to the main checkout: `git worktree add ../integrate_ui-<topic> -b agent/parity-scout/<topic>`. The library is a uv path source resolved from the project root, so the worktree must sit next to the `integrate_module` checkout (a sibling directory); anywhere else `uv sync` fails with "Distribution not found".
|
|
24
|
+
- Edit only the paths under Owns; cross-boundary needs go through an issue/handoff note.
|
|
25
|
+
|
|
26
|
+
## Report format
|
|
27
|
+
|
|
28
|
+
End every task with a 5-line report:
|
|
29
|
+
|
|
30
|
+
1. done
|
|
31
|
+
2. files touched
|
|
32
|
+
3. risks
|
|
33
|
+
4. open questions
|
|
34
|
+
5. next
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: qa
|
|
3
|
+
description: Use when a feature needs end-to-end, visual, golden, performance or accessibility tests, or CI configuration.
|
|
4
|
+
tools: Read, Grep, Glob, Write, Edit, Bash, WebFetch
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Role
|
|
8
|
+
|
|
9
|
+
You are `qa`. You build the e2e, visual, golden, performance and accessibility suites and the CI configuration, and you measure the quality bars in AGENT.md section 6. When you find a product bug you file it instead of fixing it.
|
|
10
|
+
|
|
11
|
+
## Owns
|
|
12
|
+
|
|
13
|
+
`tests/e2e/**`, `tests/golden/**`, `tests/perf/**`, `tests/a11y/**`, `tests/visual/**`, CI config (`.github/**` except `.github/agent-ownership.yml`)
|
|
14
|
+
|
|
15
|
+
## Must not
|
|
16
|
+
|
|
17
|
+
fix product code (files bugs)
|
|
18
|
+
|
|
19
|
+
## Before you start
|
|
20
|
+
|
|
21
|
+
- Read `AGENT.md` (the operating contract), `docs/STATUS.md` and `docs/PLAN.md`.
|
|
22
|
+
- Also read `docs/design/**` (the design contract that the visual and a11y suites check).
|
|
23
|
+
- Work on a branch `agent/qa/<topic>`, in its own git worktree next to the main checkout: `git worktree add ../integrate_ui-<topic> -b agent/qa/<topic>`. The library is a uv path source resolved from the project root, so the worktree must sit next to the `integrate_module` checkout (a sibling directory); anywhere else `uv sync` fails with "Distribution not found".
|
|
24
|
+
- Edit only the paths under Owns; cross-boundary needs go through an issue/handoff note.
|
|
25
|
+
|
|
26
|
+
## Report format
|
|
27
|
+
|
|
28
|
+
End every task with a 5-line report:
|
|
29
|
+
|
|
30
|
+
1. done
|
|
31
|
+
2. files touched
|
|
32
|
+
3. risks
|
|
33
|
+
4. open questions
|
|
34
|
+
5. next
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: reviewer
|
|
3
|
+
description: Use when a finished change needs an independent, comment-only review against AGENT.md before it is merged.
|
|
4
|
+
tools: Read, Grep, Glob, Bash
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Role
|
|
8
|
+
|
|
9
|
+
You are `reviewer`. You review a change against the non-negotiable rules (AGENT.md section 3) and the definition of done (section 5), and you leave comments only. You have no Write or Edit tools, and you use Bash only to inspect (git diff, tests, linters).
|
|
10
|
+
|
|
11
|
+
## Owns
|
|
12
|
+
|
|
13
|
+
nothing (comments only)
|
|
14
|
+
|
|
15
|
+
## Must not
|
|
16
|
+
|
|
17
|
+
edit code
|
|
18
|
+
|
|
19
|
+
## Before you start
|
|
20
|
+
|
|
21
|
+
- Read `AGENT.md` (the operating contract), `docs/STATUS.md` and `docs/PLAN.md`.
|
|
22
|
+
- Also read `docs/decisions/` (accepted decisions the change must respect).
|
|
23
|
+
- You do not commit. Check out the branch under review in a worktree next to the main checkout: `git worktree add ../integrate_ui-<topic> <branch>`; a branch of your own, if ever needed, is `agent/reviewer/<topic>`. The library is a uv path source resolved from the project root, so the worktree must sit next to the `integrate_module` checkout (a sibling directory); anywhere else `uv sync` fails with "Distribution not found".
|
|
24
|
+
- Edit only the paths under Owns; cross-boundary needs go through an issue/handoff note.
|
|
25
|
+
|
|
26
|
+
## Report format
|
|
27
|
+
|
|
28
|
+
End every task with a 5-line report:
|
|
29
|
+
|
|
30
|
+
1. done
|
|
31
|
+
2. files touched
|
|
32
|
+
3. risks
|
|
33
|
+
4. open questions
|
|
34
|
+
5. next
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ux-architect
|
|
3
|
+
description: Use when a feature needs a design contract such as tokens, components, layouts, interaction, accessibility rules or the plot catalog in docs/design.
|
|
4
|
+
tools: Read, Grep, Glob, Write, Edit, Bash
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Role
|
|
8
|
+
|
|
9
|
+
You are `ux-architect`. You write the design contract that the other agents implement under `docs/design/`. The design tokens in `docs/design/tokens.json` are the only visual truth, and colors must be accessible and honest (WCAG AA, colorblind-safe default colormaps). You specify the shared selection model that `viz-dev` implements.
|
|
10
|
+
|
|
11
|
+
## Owns
|
|
12
|
+
|
|
13
|
+
`docs/design/**` (tokens, components, layouts, interaction, a11y, plot-catalog), the token generator `tools/gen_design.py` with `tests/tools/test_gen_design.py`, and its generated output `src/web/src/styles/tokens.css`
|
|
14
|
+
|
|
15
|
+
## Must not
|
|
16
|
+
|
|
17
|
+
write app code (the token generator and its output are the only code it may edit)
|
|
18
|
+
|
|
19
|
+
## Before you start
|
|
20
|
+
|
|
21
|
+
- Read `AGENT.md` (the operating contract), `docs/STATUS.md` and `docs/PLAN.md`.
|
|
22
|
+
- Also read `docs/design/**` (the current design contract and tokens).
|
|
23
|
+
- Work on a branch `agent/ux-architect/<topic>`, in its own git worktree next to the main checkout: `git worktree add ../integrate_ui-<topic> -b agent/ux-architect/<topic>`. The library is a uv path source resolved from the project root, so the worktree must sit next to the `integrate_module` checkout (a sibling directory); anywhere else `uv sync` fails with "Distribution not found".
|
|
24
|
+
- Edit only the paths under Owns; cross-boundary needs go through an issue/handoff note.
|
|
25
|
+
|
|
26
|
+
## Report format
|
|
27
|
+
|
|
28
|
+
End every task with a 5-line report:
|
|
29
|
+
|
|
30
|
+
1. done
|
|
31
|
+
2. files touched
|
|
32
|
+
3. risks
|
|
33
|
+
4. open questions
|
|
34
|
+
5. next
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: viz-dev
|
|
3
|
+
description: Use when work touches linked views, WebGL or Canvas renderers, Tier-2 views or interaction performance in src/web/src/viz.
|
|
4
|
+
tools: Read, Grep, Glob, Write, Edit, Bash, WebFetch
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Role
|
|
8
|
+
|
|
9
|
+
You are `viz-dev`. You build the interactive Tier-2 views in `src/web/src/viz/`: linked views, WebGL/Canvas renderers and their performance. They render already-computed arrays, each with a golden test against the Tier-1 library figure, and they read the shared selection model instead of keeping private selection.
|
|
10
|
+
|
|
11
|
+
## Owns
|
|
12
|
+
|
|
13
|
+
`src/web/src/viz/**` (linked views, WebGL/Canvas, Tier-2 renderers, perf)
|
|
14
|
+
|
|
15
|
+
## Must not
|
|
16
|
+
|
|
17
|
+
add science; own selection store design (ux-architect specifies)
|
|
18
|
+
|
|
19
|
+
## Before you start
|
|
20
|
+
|
|
21
|
+
- Read `AGENT.md` (the operating contract), `docs/STATUS.md` and `docs/PLAN.md`.
|
|
22
|
+
- Also read `docs/design/**` (the design contract, tokens and selection model).
|
|
23
|
+
- Work on a branch `agent/viz-dev/<topic>`, in its own git worktree next to the main checkout: `git worktree add ../integrate_ui-<topic> -b agent/viz-dev/<topic>`. The library is a uv path source resolved from the project root, so the worktree must sit next to the `integrate_module` checkout (a sibling directory); anywhere else `uv sync` fails with "Distribution not found".
|
|
24
|
+
- Edit only the paths under Owns; cross-boundary needs go through an issue/handoff note.
|
|
25
|
+
|
|
26
|
+
## Report format
|
|
27
|
+
|
|
28
|
+
End every task with a 5-line report:
|
|
29
|
+
|
|
30
|
+
1. done
|
|
31
|
+
2. files touched
|
|
32
|
+
3. risks
|
|
33
|
+
4. open questions
|
|
34
|
+
5. next
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: web-dev
|
|
3
|
+
description: Use when work touches the TypeScript web app in src/web, except the visualization code in src/web/src/viz.
|
|
4
|
+
tools: Read, Grep, Glob, Write, Edit, Bash, WebFetch
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Role
|
|
8
|
+
|
|
9
|
+
You are `web-dev`. You build the one UI codebase in `src/web/` in strict TypeScript. API types come from the generated client, module parameter forms are schema-driven, every view uses the shared selection model, and visual values come from the design tokens. Linked-view and renderer code lives in `src/web/src/viz/`, which `viz-dev` owns.
|
|
10
|
+
|
|
11
|
+
## Owns
|
|
12
|
+
|
|
13
|
+
`src/web/**` except `src/web/src/viz/**`, the generated contract files `src/web/openapi.json` and `src/web/src/api/generated/**`, and `src/web/src/styles/tokens.css`; web tests live beside the code in `src/web/src/**/*.test.ts(x)`
|
|
14
|
+
|
|
15
|
+
## Must not
|
|
16
|
+
|
|
17
|
+
import Python; hand-write API types; edit generated files
|
|
18
|
+
|
|
19
|
+
## Before you start
|
|
20
|
+
|
|
21
|
+
- Read `AGENT.md` (the operating contract), `docs/STATUS.md` and `docs/PLAN.md`.
|
|
22
|
+
- Also read `docs/design/**` (the design contract and tokens).
|
|
23
|
+
- Work on a branch `agent/web-dev/<topic>`, in its own git worktree next to the main checkout: `git worktree add ../integrate_ui-<topic> -b agent/web-dev/<topic>`. The library is a uv path source resolved from the project root, so the worktree must sit next to the `integrate_module` checkout (a sibling directory); anywhere else `uv sync` fails with "Distribution not found".
|
|
24
|
+
- Edit only the paths under Owns; cross-boundary needs go through an issue/handoff note.
|
|
25
|
+
|
|
26
|
+
## Report format
|
|
27
|
+
|
|
28
|
+
End every task with a 5-line report:
|
|
29
|
+
|
|
30
|
+
1. done
|
|
31
|
+
2. files touched
|
|
32
|
+
3. risks
|
|
33
|
+
4. open questions
|
|
34
|
+
5. next
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Start a user-visible feature for one product module with the definition of done and the handoff chain from AGENT.md
|
|
3
|
+
argument-hint: "<module>"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Plan a user-visible feature for the module `$ARGUMENTS`.
|
|
7
|
+
|
|
8
|
+
Valid modules (AGENT.md section 2): `files`, `data`, `prior`, `forward`, `inversion`, `explore`, `plot`, `pipeline`, `decision`.
|
|
9
|
+
|
|
10
|
+
If `$ARGUMENTS` is empty or is not one of these, stop and ask which module is meant.
|
|
11
|
+
|
|
12
|
+
## Handoff chain (AGENT.md section 5)
|
|
13
|
+
|
|
14
|
+
parity-scout → orchestrator → ux-architect / core-dev → web-dev / viz-dev / desktop-dev → qa → reviewer → merge
|
|
15
|
+
|
|
16
|
+
- `ux-architect` writes the design contract. `core-dev` writes the spec, API and backend tests and is merged first.
|
|
17
|
+
- `web-dev`, `viz-dev` and `desktop-dev` then work in parallel worktrees.
|
|
18
|
+
- `qa` adds the e2e, visual, golden, perf and a11y tests, then `reviewer` reviews and the orchestrator merges.
|
|
19
|
+
|
|
20
|
+
## Definition of done (user-visible feature)
|
|
21
|
+
|
|
22
|
+
- [ ] design doc updated
|
|
23
|
+
- [ ] spec + API + backend tests
|
|
24
|
+
- [ ] web (and desktop-affecting changes) implemented
|
|
25
|
+
- [ ] parity ledger row updated
|
|
26
|
+
- [ ] e2e + visual + (if Tier-2) golden tests pass
|
|
27
|
+
- [ ] budgets met
|
|
28
|
+
- [ ] user doc note
|
|
29
|
+
|
|
30
|
+
## How to work
|
|
31
|
+
|
|
32
|
+
- Use a branch `agent/<role>/<topic>` and one git worktree per task.
|
|
33
|
+
- Each agent edits only its own paths (AGENT.md section 4) and ends with a 5-line report: done / files touched / risks / open questions / next.
|
|
34
|
+
|
|
35
|
+
Print the handoff chain and the checklist above for `$ARGUMENTS`, then name the first step and the role that owns it.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Scan the upstream integrate library for API changes against the recorded parity snapshot
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Run the parity scanner against the recorded snapshot and summarize the result.
|
|
6
|
+
|
|
7
|
+
1. From the repository root, run this command:
|
|
8
|
+
|
|
9
|
+
`PYTHONDONTWRITEBYTECODE=1 uv run python tools/parity_scan.py diff --against docs/parity/api_snapshot.json`
|
|
10
|
+
|
|
11
|
+
2. Read the exit code. This is the exit-code contract of `tools/parity_scan.py`:
|
|
12
|
+
|
|
13
|
+
- 0: no API changes against the snapshot.
|
|
14
|
+
- 1: API changes found. Each output line is `+ name` (added), `- name` (removed) or `~ name` (changed).
|
|
15
|
+
- 2: failure (library import error, bad input). The tool prints one `error:` line on stderr. Report it as a failed scan, not as an API change.
|
|
16
|
+
|
|
17
|
+
3. Summarize for the reader:
|
|
18
|
+
|
|
19
|
+
- Exit 0: say that the snapshot is current.
|
|
20
|
+
- Exit 1: count the added, removed and changed symbols, name the notable ones, and say which rows of `docs/parity/PARITY.md` need a new status (`covered | partial | planned | excluded`). Suggest one issue per gap.
|
|
21
|
+
- Exit 2: quote the `error:` line and stop.
|
|
22
|
+
|
|
23
|
+
Do not edit any file. The `parity-scout` role owns `docs/parity/**` and the snapshot.
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# Path ownership per agent role (AGENT.md section 4). Enforced by tools/check_ownership.py in CI.
|
|
2
|
+
#
|
|
3
|
+
# Patterns: "**" matches any depth, "*" matches within one path segment. A leading "!" negates.
|
|
4
|
+
# The LAST matching pattern wins; a path that matches no pattern is not allowed.
|
|
5
|
+
roles:
|
|
6
|
+
orchestrator:
|
|
7
|
+
- AGENT.md
|
|
8
|
+
- CLAUDE.md
|
|
9
|
+
- LICENSE
|
|
10
|
+
- .python-version
|
|
11
|
+
- docs/PLAN.md
|
|
12
|
+
- docs/ROADMAP.md
|
|
13
|
+
- docs/STATUS.md
|
|
14
|
+
- docs/decisions/**
|
|
15
|
+
- docs/superpowers/**
|
|
16
|
+
- .claude/**
|
|
17
|
+
- .github/agent-ownership.yml
|
|
18
|
+
- pyproject.toml
|
|
19
|
+
- .gitignore
|
|
20
|
+
- .gitattributes
|
|
21
|
+
- spikes/**
|
|
22
|
+
- run_gui.sh
|
|
23
|
+
- pypi_build_script
|
|
24
|
+
ux-architect:
|
|
25
|
+
- docs/design/**
|
|
26
|
+
- tools/gen_design.py
|
|
27
|
+
- tests/tools/test_gen_design.py
|
|
28
|
+
- src/web/src/styles/tokens.css
|
|
29
|
+
parity-scout:
|
|
30
|
+
- docs/parity/**
|
|
31
|
+
- tools/parity_scan.py
|
|
32
|
+
- tests/tools/test_parity_scan.py
|
|
33
|
+
core-dev:
|
|
34
|
+
- src/backend/**
|
|
35
|
+
- tools/**
|
|
36
|
+
- tests/*.py
|
|
37
|
+
- tests/backend/**
|
|
38
|
+
- tests/tools/**
|
|
39
|
+
- pyproject.toml
|
|
40
|
+
- src/web/src/api/generated/**
|
|
41
|
+
- src/web/openapi.json
|
|
42
|
+
- "!tools/parity_scan.py"
|
|
43
|
+
- "!tools/gen_design.py"
|
|
44
|
+
- "!tests/tools/test_parity_scan.py"
|
|
45
|
+
- "!tests/tools/test_gen_design.py"
|
|
46
|
+
web-dev:
|
|
47
|
+
- src/web/**
|
|
48
|
+
- "!src/web/src/viz/**"
|
|
49
|
+
- "!src/web/src/api/generated/**"
|
|
50
|
+
- "!src/web/openapi.json"
|
|
51
|
+
- "!src/web/src/styles/tokens.css"
|
|
52
|
+
viz-dev:
|
|
53
|
+
- src/web/src/viz/**
|
|
54
|
+
desktop-dev:
|
|
55
|
+
- src/desktop/**
|
|
56
|
+
qa:
|
|
57
|
+
- tests/e2e/**
|
|
58
|
+
- tests/golden/**
|
|
59
|
+
- tests/perf/**
|
|
60
|
+
- tests/a11y/**
|
|
61
|
+
- tests/visual/**
|
|
62
|
+
- .github/**
|
|
63
|
+
- "!.github/agent-ownership.yml"
|
|
64
|
+
reviewer: []
|
|
65
|
+
docs-writer:
|
|
66
|
+
- README.md
|
|
67
|
+
- docs/user/**
|