research-panel 3.1.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.
- research_panel-3.1.1/LICENSE +21 -0
- research_panel-3.1.1/PKG-INFO +507 -0
- research_panel-3.1.1/README.md +470 -0
- research_panel-3.1.1/packages/cli/research_cli/__init__.py +1 -0
- research_panel-3.1.1/packages/cli/research_cli/__main__.py +5 -0
- research_panel-3.1.1/packages/cli/research_cli/commands/__init__.py +8 -0
- research_panel-3.1.1/packages/cli/research_cli/commands/agents.py +684 -0
- research_panel-3.1.1/packages/cli/research_cli/commands/chat.py +157 -0
- research_panel-3.1.1/packages/cli/research_cli/commands/decide.py +77 -0
- research_panel-3.1.1/packages/cli/research_cli/commands/guide.py +588 -0
- research_panel-3.1.1/packages/cli/research_cli/commands/hpc.py +564 -0
- research_panel-3.1.1/packages/cli/research_cli/commands/plans.py +377 -0
- research_panel-3.1.1/packages/cli/research_cli/commands/project.py +589 -0
- research_panel-3.1.1/packages/cli/research_cli/commands/records.py +982 -0
- research_panel-3.1.1/packages/cli/research_cli/commands/skills.py +294 -0
- research_panel-3.1.1/packages/cli/research_cli/commands/supervisor.py +581 -0
- research_panel-3.1.1/packages/cli/research_cli/main.py +143 -0
- research_panel-3.1.1/packages/cli/research_cli/output.py +237 -0
- research_panel-3.1.1/packages/cli/research_cli/tui/__init__.py +8 -0
- research_panel-3.1.1/packages/cli/research_cli/tui/app.py +508 -0
- research_panel-3.1.1/packages/cli/research_cli/tui/views.py +256 -0
- research_panel-3.1.1/packages/cli/research_cli/tui/widgets.py +183 -0
- research_panel-3.1.1/packages/core/research/__init__.py +253 -0
- research_panel-3.1.1/packages/core/research/_vendor/__init__.py +0 -0
- research_panel-3.1.1/packages/core/research/_vendor/yaml/LICENSE +20 -0
- research_panel-3.1.1/packages/core/research/_vendor/yaml/__init__.py +390 -0
- research_panel-3.1.1/packages/core/research/_vendor/yaml/composer.py +139 -0
- research_panel-3.1.1/packages/core/research/_vendor/yaml/constructor.py +748 -0
- research_panel-3.1.1/packages/core/research/_vendor/yaml/dumper.py +62 -0
- research_panel-3.1.1/packages/core/research/_vendor/yaml/emitter.py +1137 -0
- research_panel-3.1.1/packages/core/research/_vendor/yaml/error.py +75 -0
- research_panel-3.1.1/packages/core/research/_vendor/yaml/events.py +86 -0
- research_panel-3.1.1/packages/core/research/_vendor/yaml/loader.py +63 -0
- research_panel-3.1.1/packages/core/research/_vendor/yaml/nodes.py +49 -0
- research_panel-3.1.1/packages/core/research/_vendor/yaml/parser.py +589 -0
- research_panel-3.1.1/packages/core/research/_vendor/yaml/reader.py +185 -0
- research_panel-3.1.1/packages/core/research/_vendor/yaml/representer.py +389 -0
- research_panel-3.1.1/packages/core/research/_vendor/yaml/resolver.py +227 -0
- research_panel-3.1.1/packages/core/research/_vendor/yaml/scanner.py +1435 -0
- research_panel-3.1.1/packages/core/research/_vendor/yaml/serializer.py +111 -0
- research_panel-3.1.1/packages/core/research/_vendor/yaml/tokens.py +104 -0
- research_panel-3.1.1/packages/core/research/agents.py +459 -0
- research_panel-3.1.1/packages/core/research/agentsmd.py +176 -0
- research_panel-3.1.1/packages/core/research/api/__init__.py +157 -0
- research_panel-3.1.1/packages/core/research/api/agent_tools.py +183 -0
- research_panel-3.1.1/packages/core/research/api/agents.py +219 -0
- research_panel-3.1.1/packages/core/research/api/chat.py +357 -0
- research_panel-3.1.1/packages/core/research/api/decisions.py +45 -0
- research_panel-3.1.1/packages/core/research/api/guide.py +110 -0
- research_panel-3.1.1/packages/core/research/api/hpc.py +137 -0
- research_panel-3.1.1/packages/core/research/api/plans.py +364 -0
- research_panel-3.1.1/packages/core/research/api/records.py +289 -0
- research_panel-3.1.1/packages/core/research/api/runs.py +43 -0
- research_panel-3.1.1/packages/core/research/api/settings.py +142 -0
- research_panel-3.1.1/packages/core/research/approval.py +331 -0
- research_panel-3.1.1/packages/core/research/autopromote.py +432 -0
- research_panel-3.1.1/packages/core/research/backends/__init__.py +18 -0
- research_panel-3.1.1/packages/core/research/backends/base.py +44 -0
- research_panel-3.1.1/packages/core/research/backends/local.py +61 -0
- research_panel-3.1.1/packages/core/research/backends/slurm.py +136 -0
- research_panel-3.1.1/packages/core/research/bootstrap.py +224 -0
- research_panel-3.1.1/packages/core/research/chat/__init__.py +119 -0
- research_panel-3.1.1/packages/core/research/chat/actions.py +63 -0
- research_panel-3.1.1/packages/core/research/chat/alerts.py +117 -0
- research_panel-3.1.1/packages/core/research/chat/commands.py +353 -0
- research_panel-3.1.1/packages/core/research/chat/digest.py +22 -0
- research_panel-3.1.1/packages/core/research/chat/discord_bot.py +728 -0
- research_panel-3.1.1/packages/core/research/chat/gateway.py +402 -0
- research_panel-3.1.1/packages/core/research/chat/manage.py +91 -0
- research_panel-3.1.1/packages/core/research/chat/pairing.py +141 -0
- research_panel-3.1.1/packages/core/research/chat/telegram.py +297 -0
- research_panel-3.1.1/packages/core/research/checks.py +319 -0
- research_panel-3.1.1/packages/core/research/compare.py +69 -0
- research_panel-3.1.1/packages/core/research/configfile.py +577 -0
- research_panel-3.1.1/packages/core/research/context.py +613 -0
- research_panel-3.1.1/packages/core/research/control.py +144 -0
- research_panel-3.1.1/packages/core/research/daemonlib.py +67 -0
- research_panel-3.1.1/packages/core/research/decisions.py +351 -0
- research_panel-3.1.1/packages/core/research/doctor.py +342 -0
- research_panel-3.1.1/packages/core/research/durability.py +203 -0
- research_panel-3.1.1/packages/core/research/envcheck.py +115 -0
- research_panel-3.1.1/packages/core/research/evidence.py +488 -0
- research_panel-3.1.1/packages/core/research/execution.py +235 -0
- research_panel-3.1.1/packages/core/research/expcheck.py +79 -0
- research_panel-3.1.1/packages/core/research/fullreport.py +1044 -0
- research_panel-3.1.1/packages/core/research/gitinfo.py +91 -0
- research_panel-3.1.1/packages/core/research/governance.py +94 -0
- research_panel-3.1.1/packages/core/research/guide.py +530 -0
- research_panel-3.1.1/packages/core/research/guide_quarto.py +770 -0
- research_panel-3.1.1/packages/core/research/guide_review.py +159 -0
- research_panel-3.1.1/packages/core/research/harness.py +53 -0
- research_panel-3.1.1/packages/core/research/hooks.py +294 -0
- research_panel-3.1.1/packages/core/research/hpc/__init__.py +0 -0
- research_panel-3.1.1/packages/core/research/hpc/bundle.py +708 -0
- research_panel-3.1.1/packages/core/research/hpc/config.py +267 -0
- research_panel-3.1.1/packages/core/research/hpc/datasets.py +470 -0
- research_panel-3.1.1/packages/core/research/hpc/remote.py +806 -0
- research_panel-3.1.1/packages/core/research/hpc/results.py +382 -0
- research_panel-3.1.1/packages/core/research/hpc/transport.py +225 -0
- research_panel-3.1.1/packages/core/research/initproject.py +403 -0
- research_panel-3.1.1/packages/core/research/intervene.py +503 -0
- research_panel-3.1.1/packages/core/research/investigator.py +203 -0
- research_panel-3.1.1/packages/core/research/isolation.py +504 -0
- research_panel-3.1.1/packages/core/research/localbin.py +173 -0
- research_panel-3.1.1/packages/core/research/machine.py +53 -0
- research_panel-3.1.1/packages/core/research/mcp.py +326 -0
- research_panel-3.1.1/packages/core/research/mirrors.py +121 -0
- research_panel-3.1.1/packages/core/research/notify.py +340 -0
- research_panel-3.1.1/packages/core/research/orchestrate.py +672 -0
- research_panel-3.1.1/packages/core/research/packs.py +317 -0
- research_panel-3.1.1/packages/core/research/plans.py +554 -0
- research_panel-3.1.1/packages/core/research/planspec.py +732 -0
- research_panel-3.1.1/packages/core/research/processes.py +49 -0
- research_panel-3.1.1/packages/core/research/promotion.py +441 -0
- research_panel-3.1.1/packages/core/research/provenance.py +713 -0
- research_panel-3.1.1/packages/core/research/providers/__init__.py +228 -0
- research_panel-3.1.1/packages/core/research/providers/agy.py +92 -0
- research_panel-3.1.1/packages/core/research/providers/base.py +97 -0
- research_panel-3.1.1/packages/core/research/providers/claude.py +87 -0
- research_panel-3.1.1/packages/core/research/providers/codex.py +108 -0
- research_panel-3.1.1/packages/core/research/providers/custom.py +28 -0
- research_panel-3.1.1/packages/core/research/providers/limits.py +199 -0
- research_panel-3.1.1/packages/core/research/providers/opencode.py +267 -0
- research_panel-3.1.1/packages/core/research/registry.py +879 -0
- research_panel-3.1.1/packages/core/research/report.py +409 -0
- research_panel-3.1.1/packages/core/research/rpc.py +107 -0
- research_panel-3.1.1/packages/core/research/runner.py +194 -0
- research_panel-3.1.1/packages/core/research/runs.py +822 -0
- research_panel-3.1.1/packages/core/research/sandbox.py +178 -0
- research_panel-3.1.1/packages/core/research/schema.py +374 -0
- research_panel-3.1.1/packages/core/research/search.py +77 -0
- research_panel-3.1.1/packages/core/research/selfupdate.py +144 -0
- research_panel-3.1.1/packages/core/research/services.py +692 -0
- research_panel-3.1.1/packages/core/research/setup_agents.py +202 -0
- research_panel-3.1.1/packages/core/research/skills.py +532 -0
- research_panel-3.1.1/packages/core/research/store.py +911 -0
- research_panel-3.1.1/packages/core/research/strategy.py +377 -0
- research_panel-3.1.1/packages/core/research/supervisor.py +2053 -0
- research_panel-3.1.1/packages/core/research/supervisord.py +10 -0
- research_panel-3.1.1/packages/core/research/task_spec.py +73 -0
- research_panel-3.1.1/packages/core/research/taskprompt.py +145 -0
- research_panel-3.1.1/packages/core/research/templates/AGENTS.block.md +111 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/cirq/LICENSE +21 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/cirq/SKILL.md +378 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/cirq/SOURCE.yaml +9 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/cirq/references/building.md +333 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/cirq/references/experiments.md +215 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/cirq/references/hardware.md +272 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/cirq/references/noise.md +234 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/cirq/references/review.md +61 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/cirq/references/simulation.md +176 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/cirq/references/transformation.md +150 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/citation-management/LICENSE +21 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/citation-management/SKILL.md +359 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/citation-management/SOURCE.yaml +9 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/dask/LICENSE +21 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/dask/SKILL.md +493 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/dask/SOURCE.yaml +9 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/experimental-design/LICENSE +21 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/experimental-design/SKILL.md +286 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/experimental-design/SOURCE.yaml +9 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/experimental-design/references/design_types.md +137 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/experimental-design/references/factorial_and_doe.md +156 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/experimental-design/references/randomization_and_blocking.md +133 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/experimental-design/references/sequential_and_adaptive.md +109 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/experimental-design/scripts/doe_designs.py +227 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/experimental-design/scripts/randomization.py +228 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/exploratory-data-analysis/LICENSE +21 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/exploratory-data-analysis/SKILL.md +311 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/exploratory-data-analysis/SOURCE.yaml +9 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/frontend-design/LICENSE +177 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/frontend-design/LICENSE.txt +177 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/frontend-design/SKILL.md +71 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/frontend-design/SOURCE.yaml +9 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/hypothesis-generation/LICENSE +21 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/hypothesis-generation/SKILL.md +290 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/hypothesis-generation/SOURCE.yaml +9 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/literature-review/LICENSE +21 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/literature-review/SKILL.md +229 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/literature-review/SOURCE.yaml +9 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/matplotlib/LICENSE +21 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/matplotlib/SKILL.md +435 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/matplotlib/SOURCE.yaml +9 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/peer-review/LICENSE +21 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/peer-review/SKILL.md +317 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/peer-review/SOURCE.yaml +9 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/pennylane/LICENSE +21 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/pennylane/SKILL.md +141 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/pennylane/SOURCE.yaml +9 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/pennylane/references/advanced_features.md +187 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/pennylane/references/devices_backends.md +172 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/pennylane/references/getting_started.md +112 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/pennylane/references/optimization.md +165 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/pennylane/references/quantum_chemistry.md +154 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/pennylane/references/quantum_circuits.md +135 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/pennylane/references/quantum_ml.md +147 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/ponytail/LICENSE +21 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/ponytail/SKILL.md +52 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/ponytail/SOURCE.yaml +9 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/ponytail-review/LICENSE +21 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/ponytail-review/SKILL.md +101 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/ponytail-review/SOURCE.yaml +9 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/pydicom/LICENSE +21 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/pydicom/SKILL.md +428 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/pydicom/SOURCE.yaml +9 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/pytorch-lightning/LICENSE +21 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/pytorch-lightning/SKILL.md +208 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/pytorch-lightning/SOURCE.yaml +9 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/pytorch-lightning/references/best_practices.md +87 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/pytorch-lightning/references/callbacks.md +117 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/pytorch-lightning/references/data_module.md +98 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/pytorch-lightning/references/distributed_training.md +148 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/pytorch-lightning/references/lightning_module.md +126 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/pytorch-lightning/references/logging.md +144 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/pytorch-lightning/references/trainer.md +90 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/pytorch-lightning/scripts/quick_trainer_setup.py +483 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/pytorch-lightning/scripts/template_datamodule.py +170 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/pytorch-lightning/scripts/template_lightning_module.py +220 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/qiskit/LICENSE +21 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/qiskit/SKILL.md +283 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/qiskit/SOURCE.yaml +9 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/receiving-code-review/LICENSE +21 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/receiving-code-review/SKILL.md +205 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/receiving-code-review/SOURCE.yaml +9 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/reproducibility-statement/LICENSE +24 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/reproducibility-statement/SKILL.md +97 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/reproducibility-statement/SOURCE.yaml +9 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/requesting-code-review/LICENSE +21 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/requesting-code-review/SKILL.md +95 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/requesting-code-review/SOURCE.yaml +9 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/requesting-code-review/code-reviewer.md +198 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/scientific-critical-thinking/LICENSE +21 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/scientific-critical-thinking/SKILL.md +235 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/scientific-critical-thinking/SOURCE.yaml +9 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/scientific-visualization-kdense/LICENSE +21 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/scientific-visualization-kdense/SKILL.md +307 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/scientific-visualization-kdense/SOURCE.yaml +9 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/scientific-writing/LICENSE +21 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/scientific-writing/SKILL.md +381 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/scientific-writing/SOURCE.yaml +9 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/scikit-learn/LICENSE +21 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/scikit-learn/SKILL.md +346 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/scikit-learn/SOURCE.yaml +9 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/shap/LICENSE +21 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/shap/SKILL.md +315 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/shap/SOURCE.yaml +9 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/simpy/LICENSE +21 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/simpy/SKILL.md +314 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/simpy/SOURCE.yaml +9 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/statistical-analysis/LICENSE +21 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/statistical-analysis/SKILL.md +453 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/statistical-analysis/SOURCE.yaml +9 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/statistical-power/LICENSE +21 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/statistical-power/SKILL.md +225 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/statistical-power/SOURCE.yaml +9 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/statistical-power/references/closed_form_recipes.md +200 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/statistical-power/references/effect_sizes.md +134 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/statistical-power/references/simulation_based_power.md +144 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/statistical-power/scripts/power.py +453 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/statistical-power/scripts/simulate_power.py +314 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/sympy/LICENSE +21 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/sympy/SKILL.md +408 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/sympy/SOURCE.yaml +9 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/sympy/references/advanced-topics.md +651 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/sympy/references/code-generation-printing.md +632 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/sympy/references/core-capabilities.md +376 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/sympy/references/core_capabilities.md +195 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/sympy/references/matrices-linear-algebra.md +531 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/sympy/references/physics-mechanics.md +630 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/sympy/references/review.md +88 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/systematic-debugging/CREATION-LOG.md +119 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/systematic-debugging/LICENSE +21 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/systematic-debugging/SKILL.md +283 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/systematic-debugging/SOURCE.yaml +9 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/systematic-debugging/condition-based-waiting-example.ts +158 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/systematic-debugging/condition-based-waiting.md +115 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/systematic-debugging/defense-in-depth.md +122 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/systematic-debugging/find-polluter.sh +72 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/systematic-debugging/root-cause-tracing.md +169 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/systematic-debugging/test-academic.md +14 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/systematic-debugging/test-pressure-1.md +58 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/systematic-debugging/test-pressure-2.md +68 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/systematic-debugging/test-pressure-3.md +69 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/verification-before-completion/LICENSE +21 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/verification-before-completion/SKILL.md +120 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/verification-before-completion/SOURCE.yaml +9 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/webapp-testing/LICENSE +202 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/webapp-testing/LICENSE.txt +202 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/webapp-testing/SKILL.md +96 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/webapp-testing/SOURCE.yaml +9 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/webapp-testing/examples/console_logging.py +35 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/webapp-testing/examples/element_discovery.py +40 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/webapp-testing/examples/static_html_automation.py +33 -0
- research_panel-3.1.1/packages/core/research/templates/catalog/webapp-testing/scripts/with_server.py +106 -0
- research_panel-3.1.1/packages/core/research/templates/catalog.yaml +853 -0
- research_panel-3.1.1/packages/core/research/templates/claude-agents/research-haiku.md +8 -0
- research_panel-3.1.1/packages/core/research/templates/claude-agents/research-opus.md +8 -0
- research_panel-3.1.1/packages/core/research/templates/claude-agents/research-sonnet.md +8 -0
- research_panel-3.1.1/packages/core/research/templates/packs.yaml +122 -0
- research_panel-3.1.1/packages/core/research/templates/prompts/resume-session.md +3 -0
- research_panel-3.1.1/packages/core/research/templates/prompts/synthesize.md +3 -0
- research_panel-3.1.1/packages/core/research/templates/skills/clean-dataset/SKILL.md +13 -0
- research_panel-3.1.1/packages/core/research/templates/skills/engineering-loop/SKILL.md +31 -0
- research_panel-3.1.1/packages/core/research/templates/skills/failure-triage/SKILL.md +30 -0
- research_panel-3.1.1/packages/core/research/templates/skills/hpc-setup/SKILL.md +147 -0
- research_panel-3.1.1/packages/core/research/templates/skills/hypothesis-design/SKILL.md +24 -0
- research_panel-3.1.1/packages/core/research/templates/skills/independent-review/SKILL.md +23 -0
- research_panel-3.1.1/packages/core/research/templates/skills/literature-evidence/SKILL.md +19 -0
- research_panel-3.1.1/packages/core/research/templates/skills/parameter-tuning/SKILL.md +18 -0
- research_panel-3.1.1/packages/core/research/templates/skills/promote-validated-work/SKILL.md +19 -0
- research_panel-3.1.1/packages/core/research/templates/skills/reproduce-paper/SKILL.md +30 -0
- research_panel-3.1.1/packages/core/research/templates/skills/reproducibility-audit/SKILL.md +19 -0
- research_panel-3.1.1/packages/core/research/templates/skills/research-context/SKILL.md +20 -0
- research_panel-3.1.1/packages/core/research/templates/skills/run-experiment/SKILL.md +24 -0
- research_panel-3.1.1/packages/core/research/templates/skills/scientific-briefing/SKILL.md +47 -0
- research_panel-3.1.1/packages/core/research/templates/skills/scientific-handoff/SKILL.md +24 -0
- research_panel-3.1.1/packages/core/research/templates/skills/scientific-visualization/SKILL.md +22 -0
- research_panel-3.1.1/packages/core/research/templates/skills/synthesize-experiment/SKILL.md +29 -0
- research_panel-3.1.1/packages/core/research/templates/skills/uncertainty-analysis/SKILL.md +20 -0
- research_panel-3.1.1/packages/core/research/templates/skills/validation-oracles/SKILL.md +24 -0
- research_panel-3.1.1/packages/core/research/templates/templates/experiment-brief.md +10 -0
- research_panel-3.1.1/packages/core/research/templates/templates/note.md +6 -0
- research_panel-3.1.1/packages/core/research/totp.py +51 -0
- research_panel-3.1.1/packages/core/research/usage.py +134 -0
- research_panel-3.1.1/packages/core/research/util.py +215 -0
- research_panel-3.1.1/packages/core/research/verification.py +314 -0
- research_panel-3.1.1/packages/core/research/views.py +407 -0
- research_panel-3.1.1/packages/core/research/workspace.py +616 -0
- research_panel-3.1.1/packages/core/research/yamlio.py +72 -0
- research_panel-3.1.1/pyproject.toml +70 -0
- research_panel-3.1.1/research_panel.egg-info/PKG-INFO +507 -0
- research_panel-3.1.1/research_panel.egg-info/SOURCES.txt +335 -0
- research_panel-3.1.1/research_panel.egg-info/dependency_links.txt +1 -0
- research_panel-3.1.1/research_panel.egg-info/entry_points.txt +2 -0
- research_panel-3.1.1/research_panel.egg-info/requires.txt +14 -0
- research_panel-3.1.1/research_panel.egg-info/top_level.txt +2 -0
- research_panel-3.1.1/setup.cfg +4 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Yubraj Bhandari
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,507 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: research-panel
|
|
3
|
+
Version: 3.1.1
|
|
4
|
+
Summary: ResearchOS: a CLI, terminal UI and supervisor for autonomous research with coding agents (Claude Code, Codex, Antigravity, opencode): plans, experiments, approvals, results.
|
|
5
|
+
Author: yubrajbhandari923
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/yubrajbhandari923/research-vscode
|
|
8
|
+
Project-URL: Documentation, https://github.com/yubrajbhandari923/research-vscode/blob/main/docs/QUICKSTART.md
|
|
9
|
+
Project-URL: Repository, https://github.com/yubrajbhandari923/research-vscode
|
|
10
|
+
Project-URL: Issues, https://github.com/yubrajbhandari923/research-vscode/issues
|
|
11
|
+
Project-URL: Changelog, https://github.com/yubrajbhandari923/research-vscode/blob/main/CHANGELOG.md
|
|
12
|
+
Keywords: research,experiments,reproducibility,agents,claude-code,codex,opencode,supervisor,tui,cli,slurm,hpc
|
|
13
|
+
Classifier: Development Status :: 4 - Beta
|
|
14
|
+
Classifier: Environment :: Console
|
|
15
|
+
Classifier: Intended Audience :: Science/Research
|
|
16
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
17
|
+
Classifier: Operating System :: MacOS
|
|
18
|
+
Classifier: Operating System :: POSIX
|
|
19
|
+
Classifier: Programming Language :: Python :: 3
|
|
20
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
24
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
25
|
+
Classifier: Topic :: Scientific/Engineering
|
|
26
|
+
Requires-Python: >=3.8
|
|
27
|
+
Description-Content-Type: text/markdown
|
|
28
|
+
License-File: LICENSE
|
|
29
|
+
Provides-Extra: dev
|
|
30
|
+
Requires-Dist: pytest>=7; extra == "dev"
|
|
31
|
+
Requires-Dist: pytest-xdist>=3; extra == "dev"
|
|
32
|
+
Provides-Extra: tui
|
|
33
|
+
Requires-Dist: textual>=0.80; python_full_version >= "3.8.1" and extra == "tui"
|
|
34
|
+
Provides-Extra: discord
|
|
35
|
+
Requires-Dist: discord.py<3,>=2.4; python_version >= "3.10" and extra == "discord"
|
|
36
|
+
Dynamic: license-file
|
|
37
|
+
|
|
38
|
+
# Research OS
|
|
39
|
+
|
|
40
|
+
Project-local research memory for computational science. The `research` CLI is the product; a terminal UI, a VS Code extension,
|
|
41
|
+
a Python API and an MCP server are interfaces to the same `.research/` directory.
|
|
42
|
+
It preserves what you intended, what was implemented, what experiments showed, what you learned,
|
|
43
|
+
and what should happen next.
|
|
44
|
+
|
|
45
|
+
**Version 3.1.1.** Project format 2. v1 projects are not upgraded or migrated (see [Recovery](#recovery)).
|
|
46
|
+
|
|
47
|
+

|
|
48
|
+
|
|
49
|
+
Two related lifecycles keep scientific conclusions separate from completed work:
|
|
50
|
+
|
|
51
|
+
```text
|
|
52
|
+
Question → Experiment → Runs → Metrics / Artifacts → Synthesis → Findings → Decisions → Checkpoint
|
|
53
|
+
Plan → Tasks → Agent delegation → Implementation → Verification → Completion
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Research OS is local and provider-independent. Canonical records are text files; SQLite provides
|
|
57
|
+
an index. It supports local runs, Remote SSH, SLURM and portable HPC bundles. It does not replace
|
|
58
|
+
scientific notebooks, validate scientific truth, or autonomously schedule your research. Optional job isolation
|
|
59
|
+
restricts what a *job* can touch; it does not sandbox *agents* (agent boundaries are advisory). There is no required cloud service.
|
|
60
|
+
|
|
61
|
+
> [Getting started](https://github.com/yubrajbhandari923/research-vscode/blob/main/docs/QUICKSTART.md) · [Guide](https://github.com/yubrajbhandari923/research-vscode/blob/main/docs/GUIDE.md) · [Skills, hooks and MCP](https://github.com/yubrajbhandari923/research-vscode/blob/main/docs/AGENT_TOOLS.md) · [Governance](https://github.com/yubrajbhandari923/research-vscode/blob/main/docs/GOVERNANCE.md) ·
|
|
62
|
+
> [Supervisor](https://github.com/yubrajbhandari923/research-vscode/blob/main/docs/SUPERVISOR.md) · [Chat](https://github.com/yubrajbhandari923/research-vscode/blob/main/docs/CHAT.md) · [Troubleshooting](https://github.com/yubrajbhandari923/research-vscode/blob/main/docs/TROUBLESHOOTING.md) · [Changelog](https://github.com/yubrajbhandari923/research-vscode/blob/main/CHANGELOG.md).
|
|
63
|
+
|
|
64
|
+
## Quick start (5 minutes)
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
# 1. Install the CLI from PyPI, in its own isolated environment ([tui] adds the terminal UI)
|
|
68
|
+
uv tool install "research-panel[tui]" # or: pipx install "research-panel[tui]"
|
|
69
|
+
research version
|
|
70
|
+
|
|
71
|
+
# 2. Create a project (a preview; add --apply to create it)
|
|
72
|
+
research init sparse-ct --layout ledger --name "Sparse CT" --goal "What you are trying to find out" --agents claude
|
|
73
|
+
research init sparse-ct --layout ledger --name "Sparse CT" --goal "What you are trying to find out" --agents claude --apply
|
|
74
|
+
cd sparse-ct/main && research doctor
|
|
75
|
+
|
|
76
|
+
# 3. Set up an agent and a model strategy (you install and sign in to the agent's own CLI)
|
|
77
|
+
research agent setup claude --apply
|
|
78
|
+
research strategy use balanced_first
|
|
79
|
+
|
|
80
|
+
# 4. Run a plan: validate, apply, start the supervisor
|
|
81
|
+
research plan yaml template -o plans/research.yaml # edit it, or use the example in the guide
|
|
82
|
+
research plan yaml validate plans/research.yaml
|
|
83
|
+
research plan yaml apply plans/research.yaml
|
|
84
|
+
research plan run PLAN-001
|
|
85
|
+
|
|
86
|
+
# 5. Watch and steer
|
|
87
|
+
research tui # needs the [tui] extra
|
|
88
|
+
research plan status PLAN-001
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Prefer VS Code? Install the `.vsix` from the same release, open an empty folder and run **Research: Initialize Project**.
|
|
92
|
+
The step-by-step guide, with a worked example, is [docs/QUICKSTART.md](https://github.com/yubrajbhandari923/research-vscode/blob/main/docs/QUICKSTART.md).
|
|
93
|
+
|
|
94
|
+
## Feature tour
|
|
95
|
+
|
|
96
|
+
| You want to | Look at |
|
|
97
|
+
|---|---|
|
|
98
|
+
| Install, update, match the extension and CLI versions | [Install](#install), [Getting started](https://github.com/yubrajbhandari923/research-vscode/blob/main/docs/QUICKSTART.md#1-install) |
|
|
99
|
+
| Let agents run a plan while you sleep, with checks and retries | [Supervisor](https://github.com/yubrajbhandari923/research-vscode/blob/main/docs/SUPERVISOR.md), [Plans, tasks and agents](#plans-tasks-and-agents) |
|
|
100
|
+
| Choose which model does which work (fast, balanced, deep) | [Providers and strategies](https://github.com/yubrajbhandari923/research-vscode/blob/main/docs/PROVIDERS.md), [Model allocation](#model-allocation-and-contracts) |
|
|
101
|
+
| Watch from a terminal or a panel | [`research tui`](https://github.com/yubrajbhandari923/research-vscode/blob/main/docs/QUICKSTART.md#5-watching-and-steering), [Control Center](#control-center) |
|
|
102
|
+
| Answer questions and steer from Telegram or Discord | [Chat](https://github.com/yubrajbhandari923/research-vscode/blob/main/docs/CHAT.md) |
|
|
103
|
+
| Keep scientific decisions in human hands | [Governance and the approval PIN](https://github.com/yubrajbhandari923/research-vscode/blob/main/docs/GOVERNANCE.md) |
|
|
104
|
+
| Survive provider usage limits unattended | [Usage limits](https://github.com/yubrajbhandari923/research-vscode/blob/main/docs/QUICKSTART.md#8-usage-limits) |
|
|
105
|
+
| Tell the story of your results | [Scientist Guide](https://github.com/yubrajbhandari923/research-vscode/blob/main/docs/GUIDE.md) |
|
|
106
|
+
| Give agents skills, hooks and MCP tools | [Skills, hooks and MCP](https://github.com/yubrajbhandari923/research-vscode/blob/main/docs/AGENT_TOOLS.md) |
|
|
107
|
+
| Fix a problem | [Troubleshooting](https://github.com/yubrajbhandari923/research-vscode/blob/main/docs/TROUBLESHOOTING.md) |
|
|
108
|
+
|
|
109
|
+
The project layout is `main/` (your code, GitHub's root), `ledger/` (research records) and `experiments/` (one worktree each). Initialization links the shipped
|
|
110
|
+
skills for your agents, registers the MCP server, approves nine starter hooks and creates the Scientist Guide. Nothing is pushed.
|
|
111
|
+
|
|
112
|
+
## Control Center
|
|
113
|
+
|
|
114
|
+
`Research: Open Control Center` opens one panel with seven areas:
|
|
115
|
+
|
|
116
|
+
| Area | What it is for |
|
|
117
|
+
|---|---|
|
|
118
|
+
| **Home** | Project goal, current focus, items that need you (syntheses, reviews, blocked tasks, promotions), active experiments, running jobs, recent findings and activity |
|
|
119
|
+
| **Work** | Plans and tasks, experiment branches (git worktrees), jobs, promotion candidates with their gates, optional job isolation |
|
|
120
|
+
| **Research** | **Reports** (write the project report or the complete export, open them), experiments with run progress and latest result, findings, questions, decisions |
|
|
121
|
+
| **Plans** | YAML plans run by the persistent supervisor: phases, attempts, approvals, proposals |
|
|
122
|
+
| **Guide** | The Scientist Guide: important results, chapters and their owners, what an agent may write, references, publishing, Quarto, build and preview |
|
|
123
|
+
| **Agents** | Providers (Claude Code, Codex, Antigravity), and **Skills, hooks and MCP**: what is loaded, one-click fixes |
|
|
124
|
+
| **Settings** | Every configurable setting with `?` help, its origin (default, machine or project file), file and key; **the Research OS version**; project health |
|
|
125
|
+
|
|
126
|
+
| Guide | Research and reports |
|
|
127
|
+
|---|---|
|
|
128
|
+
|  |  |
|
|
129
|
+
|
|
130
|
+
| Skills, hooks and MCP | Plans |
|
|
131
|
+
|---|---|
|
|
132
|
+
|  |  |
|
|
133
|
+
|
|
134
|
+
| Home | Work | Settings |
|
|
135
|
+
|---|---|---|
|
|
136
|
+
|  |  |  |
|
|
137
|
+
|
|
138
|
+
Light-theme versions of every screen are in [`docs/screens/control-center-v2/`](https://github.com/yubrajbhandari923/research-vscode/tree/main/docs/screens/control-center-v2/) (`*-light.png`), and the Guide page after a build is `guide-built-*.png`.
|
|
139
|
+
First run in an empty folder opens a short setup wizard; **New experiment** is a guided form that never runs anything.
|
|
140
|
+
|
|
141
|
+
## The Scientist Guide
|
|
142
|
+
|
|
143
|
+
`research report` records **everything**; the guide is the **short story you tell**. It is a [Quarto](https://quarto.org) book in
|
|
144
|
+
`docs/scientist-guide/` on the main branch that builds to a website (and a PDF), with your own theme, citations and notes:
|
|
145
|
+
|
|
146
|
+
- **Important results are logged for you.** A finding an independent review marks supported (or that you star) gets a short entry with its claim and plot in *Key results*. No agent is involved and entries are never rewritten.
|
|
147
|
+
- **An agent drafts only when you ask**, within limits you set (words per section, sections, figures); `research guide draft check` reports any overrun. You edit, add context, cite, and approve.
|
|
148
|
+
- **References from day one:** `references.bib`, `research guide cite add --bibtex …`, `[@key]` in the text; a cited key that is missing is an error.
|
|
149
|
+
- **Publish on every push:** `.github/workflows/publish-guide.yml` deploys the scientific edition with GitHub Pages (one-time: Settings → Pages → Source: GitHub Actions).
|
|
150
|
+
- **Two editions, one text:** the website is clean prose; the researcher edition adds an evidence panel per chapter. Claims and figures carry provenance; review and approval are separate steps.
|
|
151
|
+
|
|
152
|
+
Quarto is needed only to build ([install or update it](https://github.com/yubrajbhandari923/research-vscode/blob/main/docs/GUIDE.md#updating-quarto)). Full guide: [docs/GUIDE.md](https://github.com/yubrajbhandari923/research-vscode/blob/main/docs/GUIDE.md).
|
|
153
|
+
|
|
154
|
+
## Skills, hooks and MCP
|
|
155
|
+
|
|
156
|
+
Skills tell an agent *how* to work, hooks are programs *you approve* that check its work, and the MCP server lets it read and write the
|
|
157
|
+
records instead of guessing. Every new project is equipped out of the box:
|
|
158
|
+
|
|
159
|
+
- **Skills:** the *Core Research* pack (hypothesis design, validation oracles, failure triage, reproducibility audit, uncertainty analysis, literature evidence, scientific visualization, independent review, promotion of validated work, plus curated debugging, review and experimental-design skills), and any of eight field packs you pick in the wizard: Scientific Python, Machine Learning, Physics/Numerical, Medical Imaging, Quantum Computing, HPC, Frontend, Scientific Writing. Third-party skills (Ponytail, Superpowers, K-Dense, Anthropic, Kalaris) are curated, attributed copies with pinned commits and licenses ([THIRD_PARTY_NOTICES.md](https://github.com/yubrajbhandari923/research-vscode/blob/main/THIRD_PARTY_NOTICES.md)); Trail of Bits and Vercel skills, whose licenses do not allow bundling, are install-from-source. A skill reaches an agent's brief only when the task type or role matches.
|
|
160
|
+
- **Hooks:** nine cheap starter checks (syntax, whitespace, git integrity, secrets scan, task scope, frozen tests, experiment configuration, numeric invariants, artifact integrity), approved by you; project-aware extras (lint, format, pytest, tsc) are detected and offered, never automatic.
|
|
161
|
+
- **MCP:** registered for each enabled agent.
|
|
162
|
+
|
|
163
|
+
Agents → **Skills, hooks and MCP** has a searchable catalog with one-click install, packs, per-skill activation, enable/disable, hook approval and test results, and updates; `research skills …` and `research hook …` do the same, and `skills.packs` in the machine config sets the default for every new project. [docs/AGENT_TOOLS.md](https://github.com/yubrajbhandari923/research-vscode/blob/main/docs/AGENT_TOOLS.md).
|
|
164
|
+
|
|
165
|
+
## Install
|
|
166
|
+
|
|
167
|
+
Research OS is a command-line tool first. The CLI and terminal UI are on [PyPI](https://pypi.org/project/research-panel/) as
|
|
168
|
+
`research-panel`; the optional VS Code extension (`research-panel-X.Y.Z.vsix`) is on the
|
|
169
|
+
[GitHub releases page](https://github.com/yubrajbhandari923/research-vscode/releases/latest), next to the same wheel, an sdist and `SHA256SUMS`.
|
|
170
|
+
The core needs Python 3.8 or newer; Node is only needed to build from source.
|
|
171
|
+
|
|
172
|
+
```bash
|
|
173
|
+
# 1. the CLI, in its own isolated environment (uv or pipx); add the terminal UI with the tui extra
|
|
174
|
+
uv tool install "research-panel[tui]"
|
|
175
|
+
# or: pipx install "research-panel[tui]"
|
|
176
|
+
research version
|
|
177
|
+
research tui
|
|
178
|
+
|
|
179
|
+
# 2. optional VS Code extension (the CLI from step 1 must be installed)
|
|
180
|
+
code --install-extension research-panel-X.Y.Z.vsix
|
|
181
|
+
|
|
182
|
+
# update later
|
|
183
|
+
uv tool upgrade research-panel # or: pipx upgrade research-panel, or: research self-update
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
Or in VS Code: Extensions → `…` → **Install from VSIX…**. Install the extension on the workspace host when using Remote SSH, and the CLI there too.
|
|
187
|
+
|
|
188
|
+
**Update.** `research self-update` downloads the newest release wheel, checks it against `SHA256SUMS`, and reinstalls with the tool that installed it
|
|
189
|
+
(`uv tool`, pipx or pip). `--check` only reports, `--version X.Y.Z` pins, `--from-file WHEEL` installs offline, and a major (breaking) upgrade needs `--major`.
|
|
190
|
+
On any failure the existing install is untouched.
|
|
191
|
+
|
|
192
|
+
**The extension is a thin client.** It runs the installed `research` (the `research.cliPath` setting, then `PATH`, `~/.local/bin` and pipx's bin directory) and
|
|
193
|
+
bundles no Python. It needs a core with the same major version and a minor at least what it declares; on a mismatch the status bar warns and
|
|
194
|
+
**Research: Show Version Info** names the command to run. `research version --json` reports what is installed.
|
|
195
|
+
|
|
196
|
+
**Agents.** Each initialized project gets `.research/bin/research`, a generated machine-local launcher agents can run without `PATH`; refresh it with
|
|
197
|
+
`research bin install --force` after an upgrade, a new machine or moving the project.
|
|
198
|
+
|
|
199
|
+
**Supervisor after a reboot or upgrade.** Opening a project in VS Code starts the supervisor only when a plan is running or Telegram is enabled; otherwise run `research supervisor start`, and after an upgrade `research supervisor restart` (`research self-update` also restarts known supervisors).
|
|
200
|
+
|
|
201
|
+
To build from a clone:
|
|
202
|
+
|
|
203
|
+
```bash
|
|
204
|
+
python3 -m venv .venv
|
|
205
|
+
source .venv/bin/activate
|
|
206
|
+
python -m pip install -e '.[dev]' build
|
|
207
|
+
npm install
|
|
208
|
+
npm test
|
|
209
|
+
npm run package # VSIX, wheel and sdist in dist/
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
Activate the environment before `npm test`: it invokes `python3` from PATH.
|
|
213
|
+
|
|
214
|
+
## Start a research project
|
|
215
|
+
|
|
216
|
+
```bash
|
|
217
|
+
cd my-project
|
|
218
|
+
research init --goal "Measure how step size affects convergence"
|
|
219
|
+
research question create "Which step size converges reliably?"
|
|
220
|
+
research experiment create "step-size study" -q Q-001 \
|
|
221
|
+
--hypothesis "An intermediate step size converges fastest" \
|
|
222
|
+
--param 'alpha=[0.1,0.5,1.0]' --metric final_error --planned-runs 3 \
|
|
223
|
+
--stop "Three runs, then synthesize"
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
Initialization writes `.research/`, a managed block in `AGENTS.md`, and the project-local CLI.
|
|
227
|
+
It preserves text outside the managed block. Default skills and templates live inside `.research/`.
|
|
228
|
+
|
|
229
|
+
Register an experiment before executing its runs. With your own `sim.py`:
|
|
230
|
+
|
|
231
|
+
```bash
|
|
232
|
+
research run exec EXP-001 --param alpha=0.1 -- python sim.py --alpha 0.1
|
|
233
|
+
research run exec EXP-001 --param alpha=0.5 -- python sim.py --alpha 0.5
|
|
234
|
+
research run exec EXP-001 --param alpha=1.0 --detach -- python sim.py --alpha 1.0
|
|
235
|
+
research run logs RUN-0001 --tail 20
|
|
236
|
+
research experiment show EXP-001
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
Inside a registered run, the Python API attaches records to the current run:
|
|
240
|
+
|
|
241
|
+
```python
|
|
242
|
+
import research
|
|
243
|
+
|
|
244
|
+
research.log_metric("final_error", 0.002)
|
|
245
|
+
research.register_artifact("outputs/curve.png", description="Convergence curve")
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
Logs, parameters, command, timing, exit state and available git metadata are recorded. Artifacts
|
|
249
|
+
are references, not backup copies. Detached runs survive the initiating CLI; reconciliation reads
|
|
250
|
+
the runner's status files. A disappeared process without a recorded outcome becomes `unknown`.
|
|
251
|
+
|
|
252
|
+
For an executable example, use a **new** destination:
|
|
253
|
+
|
|
254
|
+
```bash
|
|
255
|
+
bash examples/alpha-sweep/run_demo.sh /tmp/my-research-demo
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
The demo refuses an existing destination. It must never erase a research directory to start over.
|
|
259
|
+
|
|
260
|
+
## Synthesize, decide and resume
|
|
261
|
+
|
|
262
|
+
After examining actual results, record the interpretation explicitly:
|
|
263
|
+
|
|
264
|
+
```bash
|
|
265
|
+
research experiment synthesize EXP-001 \
|
|
266
|
+
--happened "Describe the completed runs and their measured results" \
|
|
267
|
+
--interpretation "Explain what the evidence supports and what it does not" \
|
|
268
|
+
--next "Describe the next discriminating experiment"
|
|
269
|
+
research finding create "A conclusion supported by the observed results" \
|
|
270
|
+
--supports EXP-001 RUN-0001 --confidence medium --limitations "Single seed"
|
|
271
|
+
research finding create "A direction that failed" --kind failure --supports RUN-0003
|
|
272
|
+
research decision create "The next research decision" --findings F-001
|
|
273
|
+
research checkpoint create --problem "Remaining uncertainty" --next "Next experiment"
|
|
274
|
+
research status --full
|
|
275
|
+
research current
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
These are templates for your observations, not conclusions to copy without evidence. A synthesis
|
|
279
|
+
does not automatically create a finding. Agent findings remain preliminary until reviewed by an
|
|
280
|
+
independent actor or role. Failed directions remain discoverable. Superseding records preserves
|
|
281
|
+
historical context.
|
|
282
|
+
|
|
283
|
+
`research evidence` binds numerical claims to recorded metrics or supported calculations.
|
|
284
|
+
Numerical consistency is distinct from scientific validity: software cannot establish that the
|
|
285
|
+
experiment, metric or interpretation is appropriate. The **Scientist Guide** is the curated counterpart of `research report`: a Quarto book on the main branch
|
|
286
|
+
(`docs/scientist-guide/`) with your key results, citations (`references.bib`) and a theme, published as a website on every push.
|
|
287
|
+
Important results are logged into it automatically, an agent writes a short first draft only when you ask (within word, section
|
|
288
|
+
and figure limits you set), and you finish it. Claims and figures carry provenance; review and approval are separate steps
|
|
289
|
+
(`docs/GUIDE.md`).
|
|
290
|
+
|
|
291
|
+
In VS Code, open **Research Home** with `Ctrl/Cmd+Alt+R`. Questions, experiments, findings,
|
|
292
|
+
decisions, checkpoints and plans also have sidebar views. Experiment pages expose runs, logs,
|
|
293
|
+
metrics and artifacts. The CLI remains available for interfaces without a dedicated UI.
|
|
294
|
+
|
|
295
|
+
## Plans, tasks and agents
|
|
296
|
+
|
|
297
|
+
```bash
|
|
298
|
+
research plan create "Implement and validate the next experiment"
|
|
299
|
+
research task create PLAN-001 "Implement the simulator" --check 'cmd:python -m pytest -q'
|
|
300
|
+
research task next
|
|
301
|
+
research task context T-001
|
|
302
|
+
research task start T-001
|
|
303
|
+
research task verify T-001
|
|
304
|
+
research task done T-001 --result "Implementation and validation summary"
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
Tasks can carry dependencies, acceptance criteria, file or metric checks, and progress notes.
|
|
308
|
+
Dependency cycles introduced by task updates are rejected. Claims are serialized in SQLite;
|
|
309
|
+
another actor's claim requires an explicit takeover. Starting a task with unmet dependencies
|
|
310
|
+
still warns. Plans do not complete automatically.
|
|
311
|
+
|
|
312
|
+
Completion checks apply to `task done`, task status updates, `mark` and creating a task already `done`; all
|
|
313
|
+
of them run the same verification (`orchestrate.verify_work`): frozen-test integrity, a consistent task
|
|
314
|
+
specification, file boundaries, approved hooks and task checks. The result is *passed*, *blocked* (a check failed,
|
|
315
|
+
a required hook is unapproved, or the specification conflicts) or *unverified* (nothing deterministic ran). A task with
|
|
316
|
+
no verifier can still be completed administratively, and that is recorded as such; it is never reported as verified.
|
|
317
|
+
`research task verify` exits non-zero unless the result is *passed*. Passing checks never make a finding
|
|
318
|
+
scientifically supported; that needs the separate independent review. Failed checks block agents;
|
|
319
|
+
humans receive warnings and an audit event unless `agent_policy.enforce_for_humans` is enabled. Frozen-test integrity
|
|
320
|
+
blocks completion independently. Roles are self-declared conventions, not authenticated identities.
|
|
321
|
+
Hand-edited files and direct Python internals are outside the CLI policy boundary.
|
|
322
|
+
|
|
323
|
+
```bash
|
|
324
|
+
research agent dispatch planner --objective "Design the next experiment"
|
|
325
|
+
research task dispatch T-001
|
|
326
|
+
research agent dispatch verifier F-001
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
`research task context T-001` (also the MCP `task_context` tool, the RPC call behind the editor, and the start of every
|
|
330
|
+
dispatch brief) prints one *effective task specification*: objective, inputs, constraints, permitted files, expected
|
|
331
|
+
outputs, acceptance criteria, checks, frozen tests and hooks needing approval, each with its source. If the task record and
|
|
332
|
+
its orchestration contract disagree, both values are shown as a conflict and dispatch and completion are blocked until
|
|
333
|
+
someone reconciles them; nothing is silently overridden.
|
|
334
|
+
|
|
335
|
+
Dispatch prepares a brief and, for tasks, a single-use launch command. The active strategy chooses the model by
|
|
336
|
+
default; `--profile`/`--agent-model` are explicit overrides (task pin, then strategy, is the order below them). Every
|
|
337
|
+
task dispatch path (plain, routed, orchestrated, editor, MCP) applies the same specification, dependency,
|
|
338
|
+
frozen-test and preflight checks. Launching the command takes a per-task lock held for the provider's lifetime, so
|
|
339
|
+
two processes cannot run the same task; a second launch exits with code 3. Execution records under
|
|
340
|
+
`.research/orchestration/executions/` distinguish *prepared*, *launched*, *running*, *completed*, *failed* and
|
|
341
|
+
*unknown* (the launcher was interrupted and the provider's fate is unobserved). A launcher killed outright (SIGKILL) cannot update its record, which then stays *running*; the lock, not the record, is the authority on whether the task is still being executed. Preparing or sending a command to a
|
|
342
|
+
terminal is not evidence that an agent ran. Missing provider executables, credentials
|
|
343
|
+
or model access must be resolved in that provider's environment. No third-party skill is installed
|
|
344
|
+
merely by selecting a strategy.
|
|
345
|
+
|
|
346
|
+
### Model allocation and contracts
|
|
347
|
+
|
|
348
|
+
```bash
|
|
349
|
+
research strategy list
|
|
350
|
+
research strategy use balanced_first
|
|
351
|
+
research strategy validate
|
|
352
|
+
research orchestrate --help
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
Built-in strategies map task classes to configured model profiles:
|
|
356
|
+
|
|
357
|
+
| Strategy | Allocation intent |
|
|
358
|
+
|---|---|
|
|
359
|
+
| `balanced_first` | Balanced model coordinates, fast model implements checkable work, deep model only for scientific synthesis (preferred for new projects) |
|
|
360
|
+
| `deep_first` | Deep model plans and interprets, balanced translates to contracts and tests, fast implements |
|
|
361
|
+
| `fast_max` | Maximise verified fast-model execution; balanced orchestrates and is the escalation target; deep only on request |
|
|
362
|
+
| `balanced_heavy` | Balanced model coordinates and implements, fast only for mechanical work, deep for milestone synthesis |
|
|
363
|
+
|
|
364
|
+
The older names `sonnet_first`, `opus_first`, `haiku_max` and `sonnet_heavy` are accepted as aliases of these.
|
|
365
|
+
|
|
366
|
+
Custom strategies can extend a built-in. Profile model identifiers are configuration, not evidence
|
|
367
|
+
of provider availability. Per-dispatch overrides take precedence over task pins, then strategy
|
|
368
|
+
routing. Task pins apply to implementer dispatches; verifier routing retains its independence rule.
|
|
369
|
+
Without an active strategy, legacy tier configuration remains supported for existing projects.
|
|
370
|
+
|
|
371
|
+
Contracts persist objective, context, outputs, allowed files, constraints and verification guidance.
|
|
372
|
+
Use `research orchestrate contract --help` for fields. `research orchestrate freeze` records acceptance
|
|
373
|
+
file hashes; changing an existing hash requires `correct-test` and a reason. Re-freezing does not
|
|
374
|
+
silently accept changed tests. `orchestrate verify` checks integrity, file boundaries, task checks
|
|
375
|
+
and hooks; missing verification is not success. Retries and escalations are bounded by the chosen
|
|
376
|
+
strategy, but Research OS does not supply an unattended scheduler.
|
|
377
|
+
|
|
378
|
+
Agents should recover context through `AGENTS.md → research current → research task context → search/show`.
|
|
379
|
+
Project agents may propose skills and hooks; this does not authorize modifying Research OS itself.
|
|
380
|
+
|
|
381
|
+
## Configuration, skills and hooks
|
|
382
|
+
|
|
383
|
+
Configuration precedence is **built-in defaults ← machine file ← project file**. The machine file
|
|
384
|
+
is normally `~/.config/research-os/config.yaml`; project overrides live in `.research/config.yaml`.
|
|
385
|
+
Sparse files inherit missing values. Use `research config check` for diagnostics. Supported edits
|
|
386
|
+
preserve comments; converting legacy flow-style YAML may require a backed-up migration.
|
|
387
|
+
|
|
388
|
+
The project harness references instructions, skills, focused context and checks. Harness `checks`
|
|
389
|
+
are guidance in briefs; executable automatic checks belong in task checks or approved hooks.
|
|
390
|
+
|
|
391
|
+
- **Skills** are instructions and supporting files, imported into `.research/skills/` with provenance.
|
|
392
|
+
Use `research skills list`, `show`, `add`, `update` and `link`. Removed/replaced skills are backed up
|
|
393
|
+
in `.research/cache/removed-skills/`; user-owned agent-directory entries are preserved.
|
|
394
|
+
- **Tools** are callable CLI, RPC or MCP operations. MCP covers a subset of the CLI.
|
|
395
|
+
- **Hooks** are shell commands at `preflight`, `post_implementation`, `pre_experiment` or
|
|
396
|
+
`post_experiment`. They require explicit human approval.
|
|
397
|
+
|
|
398
|
+
```bash
|
|
399
|
+
research hook add tests --stage post_implementation --command 'python -m pytest -q'
|
|
400
|
+
research hook list
|
|
401
|
+
research hook approve tests
|
|
402
|
+
research hook run --stage post_implementation
|
|
403
|
+
```
|
|
404
|
+
|
|
405
|
+
Approval binds the command, stage and effective timeout. Relevant changes invalidate it. An enabled,
|
|
406
|
+
required, unapproved hook blocks its gate; disabled hooks are skipped. Advisory failures remain
|
|
407
|
+
visible without blocking an otherwise successful verifier. A skipped hook never counts as a pass.
|
|
408
|
+
`post_experiment` runs through `research experiment check`, not automatically when a run exits.
|
|
409
|
+
Hook and check commands execute with the user's filesystem permissions. Approve only trusted code.
|
|
410
|
+
|
|
411
|
+
## MCP and HPC
|
|
412
|
+
|
|
413
|
+
```bash
|
|
414
|
+
research mcp install
|
|
415
|
+
research mcp serve
|
|
416
|
+
```
|
|
417
|
+
|
|
418
|
+
The stdio MCP server exposes registered tools with schemas and structured errors. It does not expose
|
|
419
|
+
every feature: strategy, orchestration, hooks, evidence, tuning and guide workflows use CLI/RPC.
|
|
420
|
+
Re-run installation after moving a project if a client registration contains its old absolute path.
|
|
421
|
+
See [MCP details](https://github.com/yubrajbhandari923/research-vscode/blob/main/docs/spec/09-interfaces.md#mcp-server) and `research mcp --help`.
|
|
422
|
+
|
|
423
|
+
For SLURM on the workspace host, use `research run submit --help`. Remote HPC profiles specify SSH
|
|
424
|
+
aliases, approved storage roots and resources:
|
|
425
|
+
|
|
426
|
+
```bash
|
|
427
|
+
research hpc config --example
|
|
428
|
+
research hpc doctor
|
|
429
|
+
research hpc --help
|
|
430
|
+
```
|
|
431
|
+
|
|
432
|
+
Configure and inspect a profile before submission. SSH credentials stay in OpenSSH configuration.
|
|
433
|
+
Compute-node jobs write per-run files, never the project SQLite index. Portable bundles support
|
|
434
|
+
separate execution and result import; remote sync reconciles outcomes. Offline tests simulate
|
|
435
|
+
clusters and execute portable bundles locally; they do not establish compatibility with every
|
|
436
|
+
site's SLURM accounting, filesystem or scheduler policy. [HPC specification](https://github.com/yubrajbhandari923/research-vscode/blob/main/docs/spec/06-execution.md#hpc-execution).
|
|
437
|
+
|
|
438
|
+
## Recovery
|
|
439
|
+
|
|
440
|
+
Back up the complete `.research/` directory and referenced artifacts. Run logs are gitignored by
|
|
441
|
+
default, so committing metadata alone does not back up logs or external datasets.
|
|
442
|
+
|
|
443
|
+
```bash
|
|
444
|
+
research doctor # project health; --fix ID applies the few safe generated-file repairs
|
|
445
|
+
research config check # diagnose the configuration files
|
|
446
|
+
research rebuild # rebuild the index from canonical records
|
|
447
|
+
```
|
|
448
|
+
|
|
449
|
+
Every mutation runs under a project write lock (`.research/.write.lock`) with an undo journal
|
|
450
|
+
(`.research/.transaction.json`). If a process dies mid-operation, the next open rolls the canonical files back and
|
|
451
|
+
rebuilds the index, so a half-finished operation is discarded as a whole; an unreadable or unsafe journal is preserved and
|
|
452
|
+
reported instead. This protects against process crashes and concurrent supported writers. It does not protect against
|
|
453
|
+
hand edits made during a write, filesystems whose `fsync`/`flock` are unreliable (some network mounts), or power loss on
|
|
454
|
+
hardware that acknowledges writes it has not persisted.
|
|
455
|
+
|
|
456
|
+
Rebuild backs up a readable index, imports canonical records transactionally and preserves canonical
|
|
457
|
+
file bytes. Duplicate IDs and malformed canonical records stop recovery rather than silently dropping
|
|
458
|
+
records. Resolve duplicate IDs **and their references**; renaming a filename alone does not change a
|
|
459
|
+
front-matter ID. Incomplete JSONL tails are not ingested and block further appends until repaired.
|
|
460
|
+
|
|
461
|
+
For an unreadable/corrupt index, stop clients and back up `.research/` first. Move `research.db` to a
|
|
462
|
+
safe backup location, then reopen the project to reconstruct it. Do not discard canonical files or
|
|
463
|
+
SQLite journal files blindly.
|
|
464
|
+
|
|
465
|
+
| Symptom | Next action |
|
|
466
|
+
|---|---|
|
|
467
|
+
| "… is a Research OS v1 project" | It is a v1 project and was not touched; see "Starting a v2 project in a v1 folder" below |
|
|
468
|
+
| CLI missing | Install it (see Install), use `.research/bin/research`, or run `research bin install`; more in [Troubleshooting](https://github.com/yubrajbhandari923/research-vscode/blob/main/docs/TROUBLESHOOTING.md) |
|
|
469
|
+
| Python fails to start in VS Code | Check Output → Research and `research.cliPath` (run `research version --json`) |
|
|
470
|
+
| Run budget blocks an agent | Review failures and synthesize before launching more runs |
|
|
471
|
+
| Required hook blocks work | Inspect its exact command, then have a human approve or deliberately disable it |
|
|
472
|
+
| Malformed Markdown, JSONL or YAML | Preserve the file, repair the reported record, then retry |
|
|
473
|
+
| Task ledger is corrupt | Restore/repair it; do not reset frozen tests or attempt history |
|
|
474
|
+
| Index locked | Stop competing clients and retry; do not delete an active database |
|
|
475
|
+
| Newer schema refused | Install a newer release; do not lower the stored schema version |
|
|
476
|
+
|
|
477
|
+
### Starting a v2 project in a v1 folder
|
|
478
|
+
|
|
479
|
+
A folder with a `.research/config.yaml` but no `.research/format.json` is a v1 project. The CLI and extension refuse it and change nothing, so Research OS 1.x
|
|
480
|
+
can still read it. To start fresh in the same folder:
|
|
481
|
+
|
|
482
|
+
```bash
|
|
483
|
+
mv .research .research-v1-archive # keeps every old record, untouched
|
|
484
|
+
research init --goal "What you are trying to find out"
|
|
485
|
+
```
|
|
486
|
+
|
|
487
|
+
Re-register what still matters with `research question create`, `research finding create` and `research decision create`; old runs, metrics and artifacts are not imported.
|
|
488
|
+
|
|
489
|
+
## Documentation
|
|
490
|
+
|
|
491
|
+
[Getting started](https://github.com/yubrajbhandari923/research-vscode/blob/main/docs/QUICKSTART.md) · [Troubleshooting](https://github.com/yubrajbhandari923/research-vscode/blob/main/docs/TROUBLESHOOTING.md) · [Chat](https://github.com/yubrajbhandari923/research-vscode/blob/main/docs/CHAT.md) · [Configuration](https://github.com/yubrajbhandari923/research-vscode/blob/main/docs/CONFIGURATION.md) ·
|
|
492
|
+
[Technical specification](https://github.com/yubrajbhandari923/research-vscode/blob/main/docs/SPEC.md) · [Scientist Guide](https://github.com/yubrajbhandari923/research-vscode/blob/main/docs/GUIDE.md) · [Skills, hooks and MCP](https://github.com/yubrajbhandari923/research-vscode/blob/main/docs/AGENT_TOOLS.md) ·
|
|
493
|
+
[Providers](https://github.com/yubrajbhandari923/research-vscode/blob/main/docs/PROVIDERS.md) · [Supervisor](https://github.com/yubrajbhandari923/research-vscode/blob/main/docs/SUPERVISOR.md) · [Setup](https://github.com/yubrajbhandari923/research-vscode/blob/main/docs/SETUP.md) ·
|
|
494
|
+
[Changelog](https://github.com/yubrajbhandari923/research-vscode/blob/main/CHANGELOG.md).
|
|
495
|
+
|
|
496
|
+
## Development
|
|
497
|
+
|
|
498
|
+
`npm test` runs Python tests, TypeScript checking and Node RPC-client tests; `npm run test:webview` runs the Control Center
|
|
499
|
+
interaction tests against the real core in jsdom. `npm run build` bundles the extension; `npm run package` produces the VSIX,
|
|
500
|
+
wheel and (when a build frontend is available) source distribution. `bash scripts/clean_install_test.sh` installs the wheel
|
|
501
|
+
offline in a fresh environment and verifies relocation/rebuild.
|
|
502
|
+
|
|
503
|
+
Authoritative source lives under `packages/core`, `packages/cli` and `packages/vscode-extension/src`
|
|
504
|
+
(webview assets in `media`). Extension `dist`, codicons and root `dist/` are generated.
|
|
505
|
+
|
|
506
|
+
Unverified (nothing in the test suite covers them): the extension inside every VS Code configuration (Remote SSH, high-contrast themes, screen readers),
|
|
507
|
+
Windows, and real Apptainer/GPU isolation.
|