stat-agent 2.0.0__tar.gz → 2.0.1__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.
- {stat_agent-2.0.0/src/stat_agent.egg-info → stat_agent-2.0.1}/PKG-INFO +6 -4
- {stat_agent-2.0.0 → stat_agent-2.0.1}/README.md +2 -1
- {stat_agent-2.0.0 → stat_agent-2.0.1}/pyproject.toml +4 -3
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/__init__.py +1 -1
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/agent/nodes/selection.py +29 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1/src/stat_agent.egg-info}/PKG-INFO +6 -4
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent.egg-info/requires.txt +3 -1
- {stat_agent-2.0.0 → stat_agent-2.0.1}/LICENSE +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/setup.cfg +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/_compat.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/agent/__init__.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/agent/ablation.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/agent/agent.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/agent/graph.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/agent/llm_backend.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/agent/loop.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/agent/nodes/__init__.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/agent/nodes/common.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/agent/nodes/execution.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/agent/nodes/finishing.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/agent/nodes/planning.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/agent/policy.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/agent/state.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/cli/__init__.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/cli/chat.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/cli/main.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/cli/session_cmd.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/config.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/core/__init__.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/core/colors.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/core/data_slice.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/core/lock.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/core/roi_manager.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/core/session.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/core/view.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/events/__init__.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/events/catalogue.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/events/emit.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/events/encoding.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/extras/__init__.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/extras/deepagents_driver.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/extras/research.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/io/__init__.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/io/dataset.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/io/session_store.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/ledger/__init__.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/ledger/mutator.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/ledger/provenance.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/llm/__init__.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/llm/calllog.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/llm/client.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/llm/fake.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/llm/models.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/llm/structured.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/llm/usage.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/logging/__init__.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/logging/notebook.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/logging/report.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/memory/__init__.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/memory/context.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/memory/state.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/prompts/__init__.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/prompts/analyzer.v1.md +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/prompts/analyzer.v2.md +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/prompts/generator_system.v1.md +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/prompts/generator_system.v2.md +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/prompts/generator_user.v1.md +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/prompts/generator_user.v2.md +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/prompts/matcher.v1.md +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/prompts/matcher.v2.md +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/prompts/method_card.v1.md +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/prompts/planner.v1.md +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/prompts/planner.v2.md +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/prompts/reflector.v1.md +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/prompts/skill_author.v1.md +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/prompts/summarizer.v1.md +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/prompts/verifier.v1.md +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/roles/__init__.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/roles/analyzer.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/roles/base.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/roles/generator.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/roles/matcher.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/roles/method_card.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/roles/planner.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/roles/reflector.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/roles/summarizer.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/roles/verifier.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/runtime/__init__.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/runtime/artifacts.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/runtime/executor.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/runtime/plots.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/runtime/safety.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/runtime/snapshot.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/__init__.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/alignment-STalign/SKILL.md +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/alignment-STalign/STalign/STalign.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/alignment-STalign/STalign/__init__.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/alignment-STalign/STalign/curve_annotator.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/alignment-STalign/STalign/point_annotator.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/annotation-tangram/SKILL.md +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/author.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/cell-communication-CellPhoneDB/SKILL.md +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/cell-communication-LIANA/SKILL.md +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/celltype-annotation-GPT/SKILL.md +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/celltype-annotation-GPT/celltype_fast/__init__.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/celltype-annotation-GPT/celltype_fast/annotation_clustering.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/celltype-annotation-scANVI/SKILL.md +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/celltype-annotation-scANVI/celltype_scvi/__init__.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/celltype-annotation-scANVI/celltype_scvi/annotation_scvi.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/celltype-deconvolution-RCTD/SKILL.md +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/celltype-deconvolution-RCTD/deconv_rctd/RCTD.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/celltype-deconvolution-RCTD/deconv_rctd/__init__.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/celltype-deconvolution-RCTD/deconv_rctd/data_utils.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/cli.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/deconvolution-cell2location/SKILL.md +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/deconvolution-flashdeconv/SKILL.md +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/differential-expression/SKILL.md +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/enrichment-ora-ssgsea/SKILL.md +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/filter.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/integration-Harmony/SKILL.md +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/integration-bbknn/SKILL.md +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/integration-scanorama/SKILL.md +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/lint.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/loader.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/niche-detection-Harmonics/SKILL.md +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/niche-detection-Harmonics/niche_analysis_lib/__init__.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/niche-detection-Harmonics/niche_analysis_lib/hypo_test.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/niche-detection-Harmonics/niche_analysis_lib/model.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/niche-detection-Harmonics/niche_analysis_lib/utils.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/pathway-GO-enrichment/SKILL.md +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/pathway-enrichment-compare/SKILL.md +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/pathway-ssgsea/SKILL.md +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/registration-paste/SKILL.md +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/registry.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/schema.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/spatial-domain-GraphST/SKILL.md +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/spatial-domain-STAGATE/SKILL.md +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/spatial-domain-SpaGCN/SKILL.md +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/spatial-statistics-squidpy/SKILL.md +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/spatial-stats-neighborhood-enrichment/SKILL.md +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/svg-SpatialDE/SKILL.md +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/trajectory-palantir-dpt/SKILL.md +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/web/__init__.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/web/__main__.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/web/errors.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/web/events.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/web/render.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/web/routes/__init__.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/web/routes/common.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/web/routes/data.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/web/routes/misc.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/web/routes/rois.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/web/routes/session.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/web/routes/turns.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/web/schemas.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/web/server.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/web/state.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/web/static/css/style.css +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/web/static/js/app.js +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/web/templates/index.html +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/web/turns.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent.egg-info/SOURCES.txt +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent.egg-info/dependency_links.txt +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent.egg-info/entry_points.txt +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent.egg-info/top_level.txt +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_bench/__init__.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_bench/cli.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_bench/corrupt.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_bench/judge.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_bench/replay.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_bench/result.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_bench/runner.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_bench/score/__init__.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_bench/score/sse.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_bench/session_bench/__init__.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_bench/session_bench/runner.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_bench/session_bench/verifiers.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_bench/suite.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_bench/suites/sessionbench/CO-1_correction.yaml +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_bench/suites/sessionbench/CR-1_cross_turn_reference.yaml +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_bench/suites/sessionbench/OR-1_out_of_registry.yaml +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_bench/suites/sessionbench/RE-1_recovery.yaml +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_bench/summarize.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_bench/systems/__init__.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_bench/systems/base.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_bench/systems/stat.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_bench/trace/__init__.py +0 -0
- {stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_bench/trace/parse.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: stat-agent
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.1
|
|
4
4
|
Summary: STAT: Spatial Transcriptomics Analytical agenT - AI-powered, provenance-aware spatial omics analysis
|
|
5
5
|
Author-email: Yihang Chen <ychenlp@connect.ust.hk>
|
|
6
6
|
License-Expression: BSD-3-Clause
|
|
@@ -11,7 +11,6 @@ Classifier: Development Status :: 3 - Alpha
|
|
|
11
11
|
Classifier: Intended Audience :: Science/Research
|
|
12
12
|
Classifier: Programming Language :: Python :: 3
|
|
13
13
|
Classifier: Programming Language :: Python :: 3.11
|
|
14
|
-
Classifier: Programming Language :: Python :: 3.12
|
|
15
14
|
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
|
|
16
15
|
Requires-Python: >=3.11
|
|
17
16
|
Description-Content-Type: text/markdown
|
|
@@ -21,6 +20,8 @@ Requires-Dist: pandas>=2.0
|
|
|
21
20
|
Requires-Dist: anndata>=0.10
|
|
22
21
|
Requires-Dist: scipy>=1.10
|
|
23
22
|
Requires-Dist: scanpy>=1.10
|
|
23
|
+
Requires-Dist: igraph<1.0,>=0.10
|
|
24
|
+
Requires-Dist: leidenalg<0.12,>=0.10
|
|
24
25
|
Requires-Dist: geopandas>=0.14
|
|
25
26
|
Requires-Dist: shapely>=2.0
|
|
26
27
|
Requires-Dist: pillow>=9.0
|
|
@@ -66,6 +67,7 @@ Requires-Dist: harmonypy>=0.0.9; extra == "skills"
|
|
|
66
67
|
Requires-Dist: bbknn>=1.5.0; extra == "skills"
|
|
67
68
|
Requires-Dist: scanorama>=1.7.0; extra == "skills"
|
|
68
69
|
Requires-Dist: scvi-tools<2.0,>=1.0; extra == "skills"
|
|
70
|
+
Requires-Dist: pyro-ppl<1.9.2,>=1.8; extra == "skills"
|
|
69
71
|
Requires-Dist: tangram-sc>=1.0.0; extra == "skills"
|
|
70
72
|
Requires-Dist: qpsolvers[osqp]>=4.0; extra == "skills"
|
|
71
73
|
Requires-Dist: ray>=2.0; extra == "skills"
|
|
@@ -75,7 +77,6 @@ Requires-Dist: palantir>=1.0.0; extra == "skills"
|
|
|
75
77
|
Requires-Dist: NaiveDE>=0.1; extra == "skills"
|
|
76
78
|
Requires-Dist: SpatialDE>=1.1; extra == "skills"
|
|
77
79
|
Requires-Dist: scikit-misc>=0.5; extra == "skills"
|
|
78
|
-
Requires-Dist: igraph<1.0,>=0.9; extra == "skills"
|
|
79
80
|
Requires-Dist: torch>=2.0; extra == "skills"
|
|
80
81
|
Requires-Dist: SpaGCN>=1.2.5; extra == "skills"
|
|
81
82
|
Requires-Dist: GraphST>=1.1.0; extra == "skills"
|
|
@@ -115,9 +116,10 @@ interactive tissue viewer.
|
|
|
115
116
|
|
|
116
117
|
## Installation
|
|
117
118
|
|
|
118
|
-
Python 3.11
|
|
119
|
+
Python 3.11, for example in a conda environment:
|
|
119
120
|
|
|
120
121
|
```bash
|
|
122
|
+
conda create -n stat python=3.11 && conda activate stat
|
|
121
123
|
pip install stat-agent
|
|
122
124
|
pip install "git+https://github.com/chenyhvvvv/STAT-agent.git" # or the latest main from GitHub
|
|
123
125
|
```
|
|
@@ -28,9 +28,10 @@ interactive tissue viewer.
|
|
|
28
28
|
|
|
29
29
|
## Installation
|
|
30
30
|
|
|
31
|
-
Python 3.11
|
|
31
|
+
Python 3.11, for example in a conda environment:
|
|
32
32
|
|
|
33
33
|
```bash
|
|
34
|
+
conda create -n stat python=3.11 && conda activate stat
|
|
34
35
|
pip install stat-agent
|
|
35
36
|
pip install "git+https://github.com/chenyhvvvv/STAT-agent.git" # or the latest main from GitHub
|
|
36
37
|
```
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "stat-agent"
|
|
7
|
-
version = "2.0.
|
|
7
|
+
version = "2.0.1"
|
|
8
8
|
description = "STAT: Spatial Transcriptomics Analytical agenT - AI-powered, provenance-aware spatial omics analysis"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.11"
|
|
@@ -16,7 +16,6 @@ classifiers = [
|
|
|
16
16
|
"Intended Audience :: Science/Research",
|
|
17
17
|
"Programming Language :: Python :: 3",
|
|
18
18
|
"Programming Language :: Python :: 3.11",
|
|
19
|
-
"Programming Language :: Python :: 3.12",
|
|
20
19
|
"Topic :: Scientific/Engineering :: Bio-Informatics",
|
|
21
20
|
]
|
|
22
21
|
|
|
@@ -27,6 +26,8 @@ dependencies = [
|
|
|
27
26
|
"anndata>=0.10",
|
|
28
27
|
"scipy>=1.10",
|
|
29
28
|
"scanpy>=1.10",
|
|
29
|
+
"igraph>=0.10,<1.0", # scanpy's Leiden clustering (leidenalg 0.12 needs igraph 1.x)
|
|
30
|
+
"leidenalg>=0.10,<0.12",
|
|
30
31
|
"geopandas>=0.14",
|
|
31
32
|
"shapely>=2.0",
|
|
32
33
|
"pillow>=9.0",
|
|
@@ -75,6 +76,7 @@ skills = [
|
|
|
75
76
|
"bbknn>=1.5.0",
|
|
76
77
|
"scanorama>=1.7.0",
|
|
77
78
|
"scvi-tools>=1.0,<2.0",
|
|
79
|
+
"pyro-ppl>=1.8,<1.9.2", # 1.9.2 removed deep_getattr, which cell2location imports
|
|
78
80
|
"tangram-sc>=1.0.0",
|
|
79
81
|
"qpsolvers[osqp]>=4.0",
|
|
80
82
|
"ray>=2.0",
|
|
@@ -84,7 +86,6 @@ skills = [
|
|
|
84
86
|
"NaiveDE>=0.1",
|
|
85
87
|
"SpatialDE>=1.1",
|
|
86
88
|
"scikit-misc>=0.5",
|
|
87
|
-
"igraph>=0.9,<1.0",
|
|
88
89
|
"torch>=2.0",
|
|
89
90
|
"SpaGCN>=1.2.5",
|
|
90
91
|
"GraphST>=1.1.0",
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
+
import importlib.metadata
|
|
6
|
+
import importlib.util
|
|
5
7
|
import re
|
|
6
8
|
from typing import Any
|
|
7
9
|
|
|
@@ -193,6 +195,23 @@ async def synthesize_card_node(state: TurnState, runtime: LGRuntime[Context]):
|
|
|
193
195
|
return Command(update={"current": current}, goto="verify")
|
|
194
196
|
|
|
195
197
|
|
|
198
|
+
def _missing_packages(contract: SkillFrontmatter) -> list[str]:
|
|
199
|
+
"""The skill's declared python packages that are installed neither as a module nor as a distribution."""
|
|
200
|
+
importlib.invalidate_caches() # a package installed while STAT runs counts on the next request
|
|
201
|
+
missing = []
|
|
202
|
+
for name in contract.dependencies.python:
|
|
203
|
+
try:
|
|
204
|
+
if importlib.util.find_spec(name) is not None:
|
|
205
|
+
continue
|
|
206
|
+
except (ImportError, ValueError):
|
|
207
|
+
pass
|
|
208
|
+
try:
|
|
209
|
+
importlib.metadata.distribution(name)
|
|
210
|
+
except importlib.metadata.PackageNotFoundError:
|
|
211
|
+
missing.append(name)
|
|
212
|
+
return missing
|
|
213
|
+
|
|
214
|
+
|
|
196
215
|
def _file_free_alternative(ctx: Context, current: dict, contract: SkillFrontmatter) -> str | None:
|
|
197
216
|
"""A compatible, enabled skill that produces everything the declined skill would, without needing a file."""
|
|
198
217
|
wanted = {a.id for a in contract.produces}
|
|
@@ -218,6 +237,16 @@ async def verify_node(state: TurnState, runtime: LGRuntime[Context]):
|
|
|
218
237
|
step = step.model_copy(update={"refined_query": step.refined_query + current["switch_note"]})
|
|
219
238
|
contract = _contract(ctx, current)
|
|
220
239
|
slug = current.get("skill") or (contract.slug if contract else None)
|
|
240
|
+
missing = _missing_packages(contract) if current.get("skill") else []
|
|
241
|
+
if missing:
|
|
242
|
+
# the code would only fail on the import: say what to install instead of running it
|
|
243
|
+
advice = (
|
|
244
|
+
f"{ctx.registry.get(slug).name} needs {', '.join(missing)}, which {'is' if len(missing) == 1 else 'are'} not installed in STAT's Python environment. "
|
|
245
|
+
'Install the analysis packages with `pip install "stat-agent[skills]"` (the skill\'s SKILL.md lists any it does not cover), then ask again.'
|
|
246
|
+
)
|
|
247
|
+
ctx.emit(AdviceEvent(message=advice, skill=slug, step_id=current["step_id"], unmet=missing))
|
|
248
|
+
current.update(status="blocked", mode="advice", advice=advice, unmet=missing)
|
|
249
|
+
return Command(update={"current": current}, goto="block_step")
|
|
221
250
|
if contract is None or not ctx.ablation.verifier:
|
|
222
251
|
current["complete_query"] = step.refined_query
|
|
223
252
|
ctx.emit(VerifyComplete(step_id=current["step_id"], skill=slug, verdicts=[], decided_by="bypass", complete_query=step.refined_query))
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: stat-agent
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.1
|
|
4
4
|
Summary: STAT: Spatial Transcriptomics Analytical agenT - AI-powered, provenance-aware spatial omics analysis
|
|
5
5
|
Author-email: Yihang Chen <ychenlp@connect.ust.hk>
|
|
6
6
|
License-Expression: BSD-3-Clause
|
|
@@ -11,7 +11,6 @@ Classifier: Development Status :: 3 - Alpha
|
|
|
11
11
|
Classifier: Intended Audience :: Science/Research
|
|
12
12
|
Classifier: Programming Language :: Python :: 3
|
|
13
13
|
Classifier: Programming Language :: Python :: 3.11
|
|
14
|
-
Classifier: Programming Language :: Python :: 3.12
|
|
15
14
|
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
|
|
16
15
|
Requires-Python: >=3.11
|
|
17
16
|
Description-Content-Type: text/markdown
|
|
@@ -21,6 +20,8 @@ Requires-Dist: pandas>=2.0
|
|
|
21
20
|
Requires-Dist: anndata>=0.10
|
|
22
21
|
Requires-Dist: scipy>=1.10
|
|
23
22
|
Requires-Dist: scanpy>=1.10
|
|
23
|
+
Requires-Dist: igraph<1.0,>=0.10
|
|
24
|
+
Requires-Dist: leidenalg<0.12,>=0.10
|
|
24
25
|
Requires-Dist: geopandas>=0.14
|
|
25
26
|
Requires-Dist: shapely>=2.0
|
|
26
27
|
Requires-Dist: pillow>=9.0
|
|
@@ -66,6 +67,7 @@ Requires-Dist: harmonypy>=0.0.9; extra == "skills"
|
|
|
66
67
|
Requires-Dist: bbknn>=1.5.0; extra == "skills"
|
|
67
68
|
Requires-Dist: scanorama>=1.7.0; extra == "skills"
|
|
68
69
|
Requires-Dist: scvi-tools<2.0,>=1.0; extra == "skills"
|
|
70
|
+
Requires-Dist: pyro-ppl<1.9.2,>=1.8; extra == "skills"
|
|
69
71
|
Requires-Dist: tangram-sc>=1.0.0; extra == "skills"
|
|
70
72
|
Requires-Dist: qpsolvers[osqp]>=4.0; extra == "skills"
|
|
71
73
|
Requires-Dist: ray>=2.0; extra == "skills"
|
|
@@ -75,7 +77,6 @@ Requires-Dist: palantir>=1.0.0; extra == "skills"
|
|
|
75
77
|
Requires-Dist: NaiveDE>=0.1; extra == "skills"
|
|
76
78
|
Requires-Dist: SpatialDE>=1.1; extra == "skills"
|
|
77
79
|
Requires-Dist: scikit-misc>=0.5; extra == "skills"
|
|
78
|
-
Requires-Dist: igraph<1.0,>=0.9; extra == "skills"
|
|
79
80
|
Requires-Dist: torch>=2.0; extra == "skills"
|
|
80
81
|
Requires-Dist: SpaGCN>=1.2.5; extra == "skills"
|
|
81
82
|
Requires-Dist: GraphST>=1.1.0; extra == "skills"
|
|
@@ -115,9 +116,10 @@ interactive tissue viewer.
|
|
|
115
116
|
|
|
116
117
|
## Installation
|
|
117
118
|
|
|
118
|
-
Python 3.11
|
|
119
|
+
Python 3.11, for example in a conda environment:
|
|
119
120
|
|
|
120
121
|
```bash
|
|
122
|
+
conda create -n stat python=3.11 && conda activate stat
|
|
121
123
|
pip install stat-agent
|
|
122
124
|
pip install "git+https://github.com/chenyhvvvv/STAT-agent.git" # or the latest main from GitHub
|
|
123
125
|
```
|
|
@@ -3,6 +3,8 @@ pandas>=2.0
|
|
|
3
3
|
anndata>=0.10
|
|
4
4
|
scipy>=1.10
|
|
5
5
|
scanpy>=1.10
|
|
6
|
+
igraph<1.0,>=0.10
|
|
7
|
+
leidenalg<0.12,>=0.10
|
|
6
8
|
geopandas>=0.14
|
|
7
9
|
shapely>=2.0
|
|
8
10
|
pillow>=9.0
|
|
@@ -53,6 +55,7 @@ harmonypy>=0.0.9
|
|
|
53
55
|
bbknn>=1.5.0
|
|
54
56
|
scanorama>=1.7.0
|
|
55
57
|
scvi-tools<2.0,>=1.0
|
|
58
|
+
pyro-ppl<1.9.2,>=1.8
|
|
56
59
|
tangram-sc>=1.0.0
|
|
57
60
|
qpsolvers[osqp]>=4.0
|
|
58
61
|
ray>=2.0
|
|
@@ -62,7 +65,6 @@ palantir>=1.0.0
|
|
|
62
65
|
NaiveDE>=0.1
|
|
63
66
|
SpatialDE>=1.1
|
|
64
67
|
scikit-misc>=0.5
|
|
65
|
-
igraph<1.0,>=0.9
|
|
66
68
|
torch>=2.0
|
|
67
69
|
SpaGCN>=1.2.5
|
|
68
70
|
GraphST>=1.1.0
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/alignment-STalign/STalign/STalign.py
RENAMED
|
File without changes
|
{stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/alignment-STalign/STalign/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/cell-communication-CellPhoneDB/SKILL.md
RENAMED
|
File without changes
|
{stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/cell-communication-LIANA/SKILL.md
RENAMED
|
File without changes
|
{stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/celltype-annotation-GPT/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/celltype-annotation-scANVI/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/celltype-deconvolution-RCTD/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/deconvolution-cell2location/SKILL.md
RENAMED
|
File without changes
|
{stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/deconvolution-flashdeconv/SKILL.md
RENAMED
|
File without changes
|
{stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/differential-expression/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/niche-detection-Harmonics/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/pathway-enrichment-compare/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/spatial-statistics-squidpy/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_agent/skills/trajectory-palantir-dpt/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_bench/suites/sessionbench/CO-1_correction.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{stat_agent-2.0.0 → stat_agent-2.0.1}/src/stat_bench/suites/sessionbench/OR-1_out_of_registry.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|