simjecture 0.3.2__tar.gz → 0.4.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {simjecture-0.3.2 → simjecture-0.4.0}/.github/workflows/ci.yml +10 -1
- {simjecture-0.3.2 → simjecture-0.4.0}/.github/workflows/release.yml +10 -1
- {simjecture-0.3.2 → simjecture-0.4.0}/.gitignore +2 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/CHANGELOG.md +24 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/CITATION.cff +2 -2
- {simjecture-0.3.2 → simjecture-0.4.0}/PKG-INFO +6 -5
- {simjecture-0.3.2 → simjecture-0.4.0}/README.md +4 -4
- {simjecture-0.3.2 → simjecture-0.4.0}/docs/conf.py +1 -1
- {simjecture-0.3.2 → simjecture-0.4.0}/docs/how-to/deepseek-harness.md +91 -21
- simjecture-0.4.0/docs/how-to/dsh-upgrade-assessment.md +73 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/docs/how-to/simote-agent-roles.md +10 -3
- {simjecture-0.3.2 → simjecture-0.4.0}/docs/index.md +2 -1
- {simjecture-0.3.2 → simjecture-0.4.0}/integrations/dsh/README.md +35 -19
- {simjecture-0.3.2 → simjecture-0.4.0}/integrations/dsh/adjudicator.js +9 -22
- {simjecture-0.3.2 → simjecture-0.4.0}/integrations/dsh/context-elider.js +3 -3
- {simjecture-0.3.2 → simjecture-0.4.0}/integrations/dsh/cordis.patch.yml +16 -67
- {simjecture-0.3.2 → simjecture-0.4.0}/integrations/dsh/job-waiter.js +2 -2
- simjecture-0.4.0/integrations/dsh/package-lock.json +8976 -0
- simjecture-0.4.0/integrations/dsh/package.json +48 -0
- simjecture-0.4.0/integrations/dsh/research-tools.js +19 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/integrations/dsh/roles.js +33 -13
- {simjecture-0.3.2 → simjecture-0.4.0}/integrations/dsh/runner.js +29 -10
- simjecture-0.4.0/integrations/dsh/tests/jobs.test.js +77 -0
- simjecture-0.4.0/integrations/dsh/tests/profile-model.js +31 -0
- simjecture-0.4.0/integrations/dsh/tests/profile.test.js +75 -0
- simjecture-0.4.0/integrations/dsh/tests/roles.test.js +141 -0
- simjecture-0.4.0/integrations/dsh/tests/runtime.js +61 -0
- simjecture-0.4.0/integrations/dsh/tests/session.test.js +114 -0
- simjecture-0.4.0/packaging/launch/INSTALL.md +49 -0
- simjecture-0.4.0/packaging/launch/launch.sh +12 -0
- simjecture-0.4.0/packaging/launch/setup.sh +17 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/pyproject.toml +11 -2
- simjecture-0.4.0/scripts/build_launch_package.py +64 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/__init__.py +1 -1
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/campaign_kernel.py +6 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/mcp_schemas.py +7 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/mcp_server.py +20 -2
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/role_assignments.py +4 -1
- simjecture-0.4.0/src/conjecture_solver/workspace_images.py +47 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/tests/test_dsh_bundle.py +12 -36
- {simjecture-0.3.2 → simjecture-0.4.0}/tests/test_dsh_engine.py +1 -1
- {simjecture-0.3.2 → simjecture-0.4.0}/tests/test_mcp_server.py +2 -1
- simjecture-0.4.0/tests/test_workspace_images.py +51 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/uv.lock +3 -1
- simjecture-0.3.2/integrations/dsh/package.json +0 -40
- {simjecture-0.3.2 → simjecture-0.4.0}/.env.example +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/.gitattributes +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/.readthedocs.yaml +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/CONTRIBUTING.md +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/LICENSE +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/NOTICE +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/SECURITY.md +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/THIRD_PARTY_NOTICES.md +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/capabilities/atomec-1.4.0.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/capabilities/flash-island-coalescence-resistive-mhd-4.8.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/capabilities/m-aneos-1.0.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/capabilities/optab-1.3.1.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/capabilities/singularity-eos-1.12.1.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/capabilities/warpx-cpu-26.07.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/capabilities/warpx-cuda-openpmd-26.07.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/README.md +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/agent_roles_validation/README.md +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/agent_roles_validation/record/artifact_provenance.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/agent_roles_validation/record/hypothesis_ledger.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/agent_roles_validation/record/mvp_manifest.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/agent_roles_validation/record/mvp_report.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/agent_roles_validation/record/workspace/artifacts/commission_binary64_ops.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/agent_roles_validation/record/workspace/artifacts/commission_series_round_002.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/agent_roles_validation/record/workspace/artifacts/commission_series_round_003.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/agent_roles_validation/record/workspace/artifacts/euler_bound_002_prospective.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/agent_roles_validation/record/workspace/artifacts/euler_ten_step_error.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/agent_roles_validation/record/workspace/scripts/commission_binary64_ops.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/agent_roles_validation/record/workspace/scripts/commission_series_round_002.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/agent_roles_validation/record/workspace/scripts/commission_series_round_003.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/agent_roles_validation/record/workspace/scripts/euler_bound_002_prospective.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/agent_roles_validation/record/workspace/scripts/euler_ten_step_error.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/agent_roles_validation/sha256.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/agent_roles_validation/validation.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/agent_roles_validation/verify_record.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/README.md +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/campaign_instruction.txt +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/guided/anchor_operator_validation.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/guided/gem_anchor_validation.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/guided/gem_collisionless.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/guided/prior_campaign_0002_audit_summary.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/guided/prior_campaign_0003_audit_summary.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/guided/prior_campaign_audit_summary.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/guided_commission.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/hypothesis.txt +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/plot_results.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/artifact_provenance.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/claim_summary.md +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/guided_commissioning.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/hypothesis_ledger.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/literature_searches.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/mvp_manifest.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/mvp_report.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/transcript.jsonl +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000012.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000013.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000019.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000020.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000026.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000027.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000032.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000033.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000037.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000041.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000042.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000043.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000049.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/workspace/analyze_ensemble.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/analyze_manifest.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/commission_summary.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/ensemble_result.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/run_p16_t1_s20260902/diagnostic_overview.svg +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/run_p16_t1_s20260902/final_fields.npz +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/run_p16_t1_s20260902/warpx_used_inputs +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/run_p16_t20_s20260902/diagnostic_overview.svg +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/run_p16_t20_s20260902/final_fields.npz +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/run_p16_t20_s20260902/warpx_used_inputs +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/summaries/p16_t1_s20260902_summary.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/summaries/p16_t1_s20260903_summary.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/summaries/p16_t1_s20260904_summary.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/summaries/p16_t20_s20260902_summary.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/summaries/p16_t20_s20260903_summary.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/summaries/p16_t20_s20260904_summary.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/summaries/p8_t1_s20260902_summary.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/summaries/p8_t1_s20260903_summary.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/summaries/p8_t1_s20260904_summary.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/summaries/p8_t20_s20260902_summary.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/summaries/p8_t20_s20260903_summary.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/summaries/p8_t20_s20260904_summary.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/workspace/design_pin.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/workspace/energy_reader.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/workspace/fallback_solver_plan.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/workspace/fixtures/commission_manifest.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/workspace/fixtures/commission_output.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/workspace/fixtures/commission_output_wb.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/workspace/fixtures/inp/p16_t1_s20260902_summary.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/workspace/fixtures/inp/p16_t1_s20260903_summary.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/workspace/fixtures/inp/p16_t1_s20260904_summary.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/workspace/fixtures/inp/p16_t20_s20260902_summary.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/workspace/fixtures/inp/p16_t20_s20260903_summary.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/workspace/fixtures/inp/p16_t20_s20260904_summary.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/workspace/fixtures/inp/p8_t1_s20260902_summary.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/workspace/fixtures/inp/p8_t1_s20260903_summary.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/workspace/fixtures/inp/p8_t1_s20260904_summary.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/workspace/fixtures/inp/p8_t20_s20260902_summary.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/workspace/fixtures/inp/p8_t20_s20260903_summary.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/workspace/fixtures/inp/p8_t20_s20260904_summary.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/workspace/gen_fixtures.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/workspace/guided/anchor_operator_validation.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/workspace/guided/gem_anchor_validation.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/workspace/guided/gem_collisionless.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/workspace/guided/prior_campaign_0002_audit_summary.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/workspace/guided/prior_campaign_0003_audit_summary.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/record/workspace/guided/prior_campaign_audit_summary.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/collisionless_gem_reconnection/verify_record.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/gray_scott_counterexample/README.md +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/gray_scott_counterexample/capture_tui.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/gray_scott_counterexample/hypothesis.txt +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/gray_scott_counterexample/plot_results.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/gray_scott_counterexample/record/README.md +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/gray_scott_counterexample/record/artifact_provenance.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/gray_scott_counterexample/record/claim_summary.md +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/gray_scott_counterexample/record/hypothesis_ledger.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/gray_scott_counterexample/record/mvp_manifest.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/gray_scott_counterexample/record/mvp_report.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/gray_scott_counterexample/record/transcript.jsonl +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/gray_scott_counterexample/record/workspace/analyze_results.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/gray_scott_counterexample/record/workspace/calc_growth.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/gray_scott_counterexample/record/workspace/linear_stability.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/gray_scott_counterexample/record/workspace/mode_analysis.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/gray_scott_counterexample/record/workspace/mode_analysis_results.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/gray_scott_counterexample/record/workspace/pick_regime.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/gray_scott_counterexample/record/workspace/regime_candidates.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/gray_scott_counterexample/record/workspace/result_s1.npz +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/gray_scott_counterexample/record/workspace/result_s10.npz +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/gray_scott_counterexample/record/workspace/result_s10_dt025.npz +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/gray_scott_counterexample/record/workspace/result_s1_dt025.npz +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/gray_scott_counterexample/record/workspace/root_pattern_results.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/gray_scott_counterexample/record/workspace/root_s10_dt0p025.npz +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/gray_scott_counterexample/record/workspace/root_s10_dt0p05.npz +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/gray_scott_counterexample/record/workspace/root_s1_dt0p025.npz +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/gray_scott_counterexample/record/workspace/root_s1_dt0p05.npz +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/gray_scott_counterexample/record/workspace/simulate_gs.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/gray_scott_counterexample/record/workspace/simulate_gs_dt025.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/gray_scott_counterexample/record/workspace/simulate_gs_root.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/gray_scott_counterexample/record/workspace/simulation_results.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/gray_scott_counterexample/record/workspace/simulation_results_dt025.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/gray_scott_counterexample/record/workspace/turing_diagnostic.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/gray_scott_counterexample/reproduce.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/gray_scott_counterexample/verify_record.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/resistive_mhd_island_coalescence/.gitignore +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/resistive_mhd_island_coalescence/README.md +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/resistive_mhd_island_coalescence/campaign_audit.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/resistive_mhd_island_coalescence/campaign_instruction.txt +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/resistive_mhd_island_coalescence/figures/README.md +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/resistive_mhd_island_coalescence/figures/island_coalescence_evolution.png +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/resistive_mhd_island_coalescence/figures/reconnection_layer_physics.png +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/resistive_mhd_island_coalescence/figures/reconnection_microphysics_profiles.png +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/resistive_mhd_island_coalescence/figures/scaling_law_discovery.png +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/resistive_mhd_island_coalescence/figures/simjecture_web_dashboard.png +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/resistive_mhd_island_coalescence/guided/anchor_validation.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/resistive_mhd_island_coalescence/guided/island_coalescence.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/resistive_mhd_island_coalescence/guided/operator_validation.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/resistive_mhd_island_coalescence/guided_commission.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/resistive_mhd_island_coalescence/hypothesis.txt +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/resistive_mhd_island_coalescence/literature_basis.md +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/demos/resistive_mhd_island_coalescence/plot_results.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/docs/_static/demos/gem-ensemble-result.png +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/docs/_static/demos/gem-reconnection-fields.png +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/docs/_static/demos/gray-scott-completed-tui.svg +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/docs/_static/demos/gray-scott-result.png +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/docs/concepts/architecture.md +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/docs/concepts/evidence-and-claims.md +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/docs/demos/collisionless-gem.md +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/docs/demos/gray-scott.md +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/docs/development/documentation.md +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/docs/development/releasing.md +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/docs/getting-started/first-run.md +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/docs/getting-started/installation.md +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/docs/getting-started/terminal-ui.md +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/docs/getting-started/web-interface.md +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/docs/how-to/add-a-capability.md +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/docs/how-to/deploy-runtimes.md +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/docs/how-to/guided-commissioning.md +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/docs/reference/cli.md +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/docs/reference/repository-map.md +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/docs/requirements.txt +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/docs/research/limitations.md +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/docs/research/next-steps.md +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/docs/research/run-0004.md +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/docs/research/status.md +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/environments/warpx-cpu.yml +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/AIStrategyDraft.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/ActionExecution.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/ActionFailureRecord.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/AttemptRecord.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/BlindedSearchReport.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/BlindedSearchRequest.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/CampaignAction.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/CampaignActionGraph.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/CampaignActionState.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/CampaignBudget.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/CampaignCheckpoint.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/CampaignState.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/CandidateEvaluation.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/CandidateResult.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/CapabilityManifest.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/Claim.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/CollisionalityIntervention.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/ControlDirective.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/DecisionRecord.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/DiscoveryPackage.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/DispatchAttempt.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/DomainDiagnosisSummary.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/DomainEvolutionSummary.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/DomainPluginMetadata.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/DomainRunSummary.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/DomainTemplateSummary.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/ExperimentSpec.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/ExternalReceipt.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/FreshSeedIntervention.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/HumanIntervention.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/HypothesisNode.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/KineticSufficiencyDiscoveryPackage.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/KineticSufficiencyHypothesisInput.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/KineticSufficiencyResult.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/KineticSufficiencySolveResult.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/LifecycleEvent.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/MVPGuidedCommissioningSpec.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/MatchedPairFormalPredicate.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/ModelCallProvenance.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/MultiActionCampaignReport.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/NormalizedResult.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/NumericalAssessment.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/NumericalDiagnostics.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/NumericalGate.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/ObservablePrediction.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/OutboxIntent.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/PICCaseResult.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/PICConfig.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/PICConfirmationAttempt.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/PICConfirmationDesign.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/PICConfirmationReport.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/PICMixtureCaseResult.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/PICNumericalConfig.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/PICSufficiencyResult.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/ParameterSpace.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/ParticleStatisticsIntervention.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/ProposalDraft.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/ProposalRecord.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/ProposalRequest.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/ProposalValidation.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/ProposedToolCall.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/QualifiedWarpXCampaignPackage.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/QualifiedWarpXInstrument.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/ReferenceQualification.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/ResearchBudget.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/ResearchCampaignReport.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/ResearchConclusion.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/ResearchDecision.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/ResearchEvidencePolicy.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/ResearchHypothesis.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/ResearchObservation.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/ResearchProblemContract.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/ResearchRelation.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/ResearchToolManifest.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/ResearchToolResult.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/RunEvidence.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/RunPlan.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/SearchStrategy.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/SheetThicknessIntervention.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/SubprocessResearchToolConfig.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/SymmetricMixtureCandidate.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/WarpXCalibrationPoint.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/WarpXCaseSummary.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/WarpXCompiledCase.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/WarpXConfirmationAttempt.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/WarpXConfirmationDesign.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/WarpXConfirmationFailure.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/WarpXConfirmationReport.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/WarpXConfirmationResolution.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/WarpXExecutionProfile.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/WarpXNumericalConfig.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/WarpXPairSummary.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/WarpXPhysicalConfig.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/WarpXPhysicsQualificationRecord.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/WarpXQualificationRecord.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/WarpXQualifiedScope.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/mvp/MVPAgentAction.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/mvp/MVPAgentReport.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/mvp/MVPClaim.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/schemas/mvp/MVPClaimLedger.schema.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/scripts/postprocess_warpx_case.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/scripts/probe_provider.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/scripts/propose_hypothesis.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/scripts/propose_search_strategy.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/scripts/qualify_warpx.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/scripts/qualify_warpx_physics.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/scripts/run_admitted_proposal.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/scripts/run_blinded_search.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/scripts/run_qualified_warpx_campaign.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/scripts/run_warpx_confirmation.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/scripts/run_warpx_pair.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/skills/eos/SKILL.md +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/skills/eos/agents/openai.yaml +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/skills/eos/examples/atomec_runtime_smoke.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/skills/eos/examples/maneos_runtime_smoke.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/skills/eos/examples/singularity_runtime_smoke.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/skills/eos/manifest.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/skills/eos/references/execution-output.md +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/skills/eos/references/local-deployment.md +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/skills/eos/scripts/bootstrap_atomec.sh +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/skills/eos/scripts/bootstrap_maneos.sh +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/skills/eos/scripts/bootstrap_singularity_eos.sh +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/skills/eos/scripts/maneos_query.f90 +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/skills/eos/scripts/singularity_query.cpp +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/skills/flash-mhd/SKILL.md +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/skills/flash-mhd/agents/openai.yaml +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/skills/flash-mhd/examples/runtime_smoke.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/skills/flash-mhd/manifest.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/skills/flash-mhd/references/execution-output.md +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/skills/flash-mhd/references/local-deployment.md +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/skills/flash-mhd/references/model-validity.md +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/skills/flash-mhd/references/private-install.md +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/skills/flash-mhd/scripts/bootstrap_flash.sh +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/skills/opacity/SKILL.md +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/skills/opacity/agents/openai.yaml +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/skills/opacity/examples/optab_runtime_smoke.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/skills/opacity/manifest.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/skills/opacity/references/execution-output.md +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/skills/opacity/references/local-deployment.md +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/skills/opacity/scripts/bootstrap_optab.sh +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/skills/opacity/scripts/write_optab_preflight.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/skills/python-experiment/SKILL.md +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/skills/python-experiment/manifest.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/skills/scientific-markdown/SKILL.md +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/skills/scientific-markdown/agents/openai.yaml +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/skills/scientific-markdown/manifest.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/skills/warpx/SKILL.md +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/skills/warpx/agents/openai.yaml +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/skills/warpx/examples/implicit_em_smoke.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/skills/warpx/examples/minimal_smoke.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/skills/warpx/examples/openpmd_field_smoke.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/skills/warpx/examples/openpmd_xz_reader.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/skills/warpx/manifest.json +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/skills/warpx/references/2d-xz-commissioning.md +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/skills/warpx/references/cpu-launch-tuning.md +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/skills/warpx/references/diagnostics.md +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/skills/warpx/references/gpu-launch-tuning.md +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/skills/warpx/references/hybrid-pic.md +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/skills/warpx/references/local-cuda-deployment.md +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/skills/warpx/references/numerical-risks.md +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/skills/warpx/references/picmi-interface.md +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/skills/warpx/references/resource-scaling.md +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/skills/warpx/references/time-integration.md +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/skills/warpx/scripts/benchmark_cpu_threads.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/skills/warpx/scripts/benchmark_gpu.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/skills/warpx/scripts/bootstrap_local_cuda.sh +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/skills/warpx/scripts/probe_local_cuda.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/skills/warpx/scripts/reduced_energy_budget.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/skills/warpx/scripts/run_local_cuda.sh +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/__main__.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/action_handlers.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/adapters/__init__.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/adapters/base.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/adapters/fake.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/adapters/pic.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/adapters/warpx.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/autonomous_research.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/benchmarks/__init__.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/benchmarks/electrostatic_pic.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/benchmarks/kinetic_sufficiency.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/campaign.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/campaign_jobs.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/cli.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/confirmation.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/control.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/corrective_audit.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/deployment.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/discovery.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/domains/__init__.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/domains/base.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/domains/kinetic_sufficiency.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/dsh_engine.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/kernel_worker.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/ledger.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/lifecycle.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/literature.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/llm.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/models.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/mvp_agent.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/mvp_claims.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/mvp_control.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/mvp_guidance.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/mvp_launch.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/mvp_monitor.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/mvp_skills.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/oneshot.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/orchestration.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/outbox.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/parameters.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/presentation.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/proposals.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/research_tools.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/schema_export.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/search.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/semantics.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/tui/__init__.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/tui/app.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/tui/claim_views.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/tui/screens.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/warpx_analysis.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/warpx_campaign.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/warpx_confirmation.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/web/__init__.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/web/application.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/web/server.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/web/static/app.js +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/web/static/index.html +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/web/static/markdown.js +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/web/static/styles.css +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/web/static/vendor/LICENSE.dagre.txt +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/web/static/vendor/LICENSE.dompurify.txt +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/web/static/vendor/LICENSE.katex.txt +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/web/static/vendor/LICENSE.marked.txt +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/web/static/vendor/README.md +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/web/static/vendor/dagre-2.0.0.min.js +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/web/static/vendor/dompurify-3.4.14.min.js +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/web/static/vendor/katex-0.18.4.min.js +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/web/static/vendor/katex-auto-render-0.18.4.min.js +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/src/conjecture_solver/web/static/vendor/marked-18.0.10.umd.js +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/tests/__init__.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/tests/fixtures/fake_warpx_runner.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/tests/test_adapter.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/tests/test_autonomous_research.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/tests/test_benchmark.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/tests/test_campaign.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/tests/test_campaign_jobs.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/tests/test_campaign_kernel.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/tests/test_control.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/tests/test_corrective_audit.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/tests/test_deployment.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/tests/test_domain_plugins.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/tests/test_ledger.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/tests/test_lifecycle.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/tests/test_literature.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/tests/test_llm.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/tests/test_models.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/tests/test_mvp_agent.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/tests/test_mvp_claims.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/tests/test_mvp_control.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/tests/test_mvp_monitor.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/tests/test_mvp_pause.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/tests/test_mvp_status_watch.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/tests/test_oneshot.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/tests/test_orchestration.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/tests/test_outbox.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/tests/test_parameters.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/tests/test_pic.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/tests/test_proposals.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/tests/test_recorded_demo.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/tests/test_role_assignments.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/tests/test_schema_export.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/tests/test_search.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/tests/test_semantics.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/tests/test_tui.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/tests/test_tui_claim_views.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/tests/test_warpx.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/tests/test_warpx_analysis.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/tests/test_warpx_campaign.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/tests/test_warpx_openpmd_xz.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/tests/test_warpx_qualification.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/tests/test_warpx_reduced_energy.py +0 -0
- {simjecture-0.3.2 → simjecture-0.4.0}/tests/test_web.py +0 -0
|
@@ -50,7 +50,16 @@ jobs:
|
|
|
50
50
|
- name: Install uv
|
|
51
51
|
run: python -m pip install uv
|
|
52
52
|
- name: Install locked environment
|
|
53
|
-
run: uv sync --frozen --extra tui
|
|
53
|
+
run: uv sync --frozen --extra tui --extra dsh
|
|
54
|
+
- uses: actions/setup-node@v4
|
|
55
|
+
with:
|
|
56
|
+
node-version: "22.23.1"
|
|
57
|
+
cache: npm
|
|
58
|
+
cache-dependency-path: integrations/dsh/package-lock.json
|
|
59
|
+
- name: Install pinned DSH test runtime
|
|
60
|
+
run: npm ci --prefix integrations/dsh
|
|
61
|
+
- name: Test DSH adapter and real MCP profile
|
|
62
|
+
run: SIMJECTURE_MCP_EXECUTABLE="$PWD/.venv/bin/simjecture-mcp" npm test --prefix integrations/dsh
|
|
54
63
|
- name: Lint
|
|
55
64
|
run: uv run ruff check .
|
|
56
65
|
- name: Test
|
|
@@ -40,7 +40,16 @@ jobs:
|
|
|
40
40
|
--ro-bind /lib64 /lib64 \
|
|
41
41
|
/usr/bin/true
|
|
42
42
|
- name: Install locked test environment
|
|
43
|
-
run: uv sync --frozen --extra tui
|
|
43
|
+
run: uv sync --frozen --extra tui --extra dsh
|
|
44
|
+
- uses: actions/setup-node@v4
|
|
45
|
+
with:
|
|
46
|
+
node-version: "22.23.1"
|
|
47
|
+
cache: npm
|
|
48
|
+
cache-dependency-path: integrations/dsh/package-lock.json
|
|
49
|
+
- name: Install pinned DSH test runtime
|
|
50
|
+
run: npm ci --prefix integrations/dsh
|
|
51
|
+
- name: Test DSH adapter and real MCP profile
|
|
52
|
+
run: SIMJECTURE_MCP_EXECUTABLE="$PWD/.venv/bin/simjecture-mcp" npm test --prefix integrations/dsh
|
|
44
53
|
- name: Lint release source
|
|
45
54
|
run: uv run ruff check .
|
|
46
55
|
- name: Test release source
|
|
@@ -4,6 +4,30 @@ This project follows semantic versioning. Dates use ISO 8601.
|
|
|
4
4
|
|
|
5
5
|
## Unreleased
|
|
6
6
|
|
|
7
|
+
## 0.4.0 — 2026-09-20
|
|
8
|
+
|
|
9
|
+
- Updated the bundled DSH integration to the tested `0.1.5-rc.2` runtime,
|
|
10
|
+
including current session, tool-call, prompt and structured-output APIs.
|
|
11
|
+
The Python release and DSH bundle now share version `0.4.0`.
|
|
12
|
+
- Enabled native web search, page retrieval, shell, filesystem, skills,
|
|
13
|
+
workflows and configured plugins for research agents. Scientific calls retain
|
|
14
|
+
role restrictions; independent judges retain their frozen-case isolation.
|
|
15
|
+
- Separated the native research workspace from authoritative campaign files.
|
|
16
|
+
Upgrades start a fresh `.research-v1` conversation, reconcile existing kernel
|
|
17
|
+
state, and preserve older conversations. Built-in DSH file/shell policies
|
|
18
|
+
protect records; arbitrary installed plugins remain trusted process code.
|
|
19
|
+
- Added `read_workspace_image` for bounded PNG, JPEG and WebP image inspection
|
|
20
|
+
through MCP, with dimensions and content hashes. Inspection is not evidence
|
|
21
|
+
acceptance and requires a vision-capable model.
|
|
22
|
+
- Extended the Simote scientific tool catalog for image reads. Matching Simote
|
|
23
|
+
changes add AGY workers and judges; Simote remains a separate optional app.
|
|
24
|
+
- Added real-runtime DSH tests for role isolation, context pruning, V2/V3 log
|
|
25
|
+
migration, durable-job recovery and complete CLI/MCP pause/resume behavior.
|
|
26
|
+
- Verified native search, fetch, file writing and image inspection with real
|
|
27
|
+
DeepSeek API calls on non-simulation research tasks.
|
|
28
|
+
- Added a Linux launch bundle containing the wheel, source distribution,
|
|
29
|
+
matching DSH profile, setup/launch scripts and SHA-256 checksums.
|
|
30
|
+
|
|
7
31
|
## 0.3.2 — 2026-09-09
|
|
8
32
|
|
|
9
33
|
- Added `simjecture-call`, a one-shot JSON transport for trusted supervisors,
|
|
@@ -2,8 +2,8 @@ cff-version: 1.2.0
|
|
|
2
2
|
message: "If you use this software, please cite the exact software version and Git commit."
|
|
3
3
|
title: "Simjecture"
|
|
4
4
|
type: software
|
|
5
|
-
version: 0.
|
|
6
|
-
date-released: 2026-09-
|
|
5
|
+
version: 0.4.0
|
|
6
|
+
date-released: 2026-09-20
|
|
7
7
|
abstract: >-
|
|
8
8
|
An evidence-governed runtime for autonomous computational experimentation and
|
|
9
9
|
falsification over hypothesis trees.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: simjecture
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.4.0
|
|
4
4
|
Summary: Evidence-governed autonomous experimentation and falsification for computational science
|
|
5
5
|
Project-URL: Homepage, https://github.com/tomzhu0225/simjecture
|
|
6
6
|
Project-URL: Documentation, https://github.com/tomzhu0225/simjecture/tree/main/docs
|
|
@@ -24,6 +24,7 @@ Requires-Dist: httpx<1,>=0.27
|
|
|
24
24
|
Requires-Dist: matplotlib<4,>=3.8
|
|
25
25
|
Requires-Dist: numpy<3,>=1.26
|
|
26
26
|
Requires-Dist: pandas<4,>=2.2
|
|
27
|
+
Requires-Dist: pillow<13,>=10
|
|
27
28
|
Requires-Dist: pydantic<3,>=2.9
|
|
28
29
|
Requires-Dist: scipy<2,>=1.12
|
|
29
30
|
Provides-Extra: dsh
|
|
@@ -49,7 +50,7 @@ writes its own experiments and diagnostics, and searches deliberately for the
|
|
|
49
50
|
simplest result that survives independent verification. The harness controls
|
|
50
51
|
what may count as evidence.
|
|
51
52
|
|
|
52
|
-
> **Research preview:** version 0.
|
|
53
|
+
> **Research preview:** version 0.4 extends the infrastructure with a
|
|
53
54
|
> license-safe FLASH resistive-MHD capability and an explicitly bounded
|
|
54
55
|
> island-coalescence audit. It does not claim to solve arbitrary
|
|
55
56
|
> scientific prose, establish truth about nature from one simulator, or replace
|
|
@@ -289,11 +290,11 @@ the human-first projection.
|
|
|
289
290
|
|
|
290
291
|
## DeepSeek Harness integration
|
|
291
292
|
|
|
292
|
-
The v0.
|
|
293
|
+
The v0.4.0 integration moves the model-facing research loop to DeepSeek Harness
|
|
293
294
|
without moving scientific authority out of Simjecture. DSH owns the provider,
|
|
294
295
|
conversation, retry policy, compaction, and resumable session. A native MCP
|
|
295
|
-
boundary implements
|
|
296
|
-
sees
|
|
296
|
+
boundary implements 23 typed endpoints. A compact persistent Lead Scientist
|
|
297
|
+
sees eight scientific coordination/inspection tools plus native research tools and delegates claim work to fresh, scoped
|
|
297
298
|
Falsifier/Experimenter, Blocker Resolver, and Repair Scientist sessions. A separate fresh,
|
|
298
299
|
tool-free Judge reviews surviving claims. The Python campaign kernel continues to own hypotheses,
|
|
299
300
|
evidence contracts, commissioning, skills, simulation capabilities, sandboxing,
|
|
@@ -13,7 +13,7 @@ writes its own experiments and diagnostics, and searches deliberately for the
|
|
|
13
13
|
simplest result that survives independent verification. The harness controls
|
|
14
14
|
what may count as evidence.
|
|
15
15
|
|
|
16
|
-
> **Research preview:** version 0.
|
|
16
|
+
> **Research preview:** version 0.4 extends the infrastructure with a
|
|
17
17
|
> license-safe FLASH resistive-MHD capability and an explicitly bounded
|
|
18
18
|
> island-coalescence audit. It does not claim to solve arbitrary
|
|
19
19
|
> scientific prose, establish truth about nature from one simulator, or replace
|
|
@@ -253,11 +253,11 @@ the human-first projection.
|
|
|
253
253
|
|
|
254
254
|
## DeepSeek Harness integration
|
|
255
255
|
|
|
256
|
-
The v0.
|
|
256
|
+
The v0.4.0 integration moves the model-facing research loop to DeepSeek Harness
|
|
257
257
|
without moving scientific authority out of Simjecture. DSH owns the provider,
|
|
258
258
|
conversation, retry policy, compaction, and resumable session. A native MCP
|
|
259
|
-
boundary implements
|
|
260
|
-
sees
|
|
259
|
+
boundary implements 23 typed endpoints. A compact persistent Lead Scientist
|
|
260
|
+
sees eight scientific coordination/inspection tools plus native research tools and delegates claim work to fresh, scoped
|
|
261
261
|
Falsifier/Experimenter, Blocker Resolver, and Repair Scientist sessions. A separate fresh,
|
|
262
262
|
tool-free Judge reviews surviving claims. The Python campaign kernel continues to own hypotheses,
|
|
263
263
|
evidence contracts, commissioning, skills, simulation capabilities, sandboxing,
|
|
@@ -1,16 +1,21 @@
|
|
|
1
1
|
# Run a Simjecture campaign under DSH
|
|
2
2
|
|
|
3
3
|
The DSH integration is a native-tool profile plus a small resumable driver for
|
|
4
|
-
a durable Simjecture campaign. Version 0.
|
|
4
|
+
a durable Simjecture campaign. Version 0.4.0 uses a persistent Lead Scientist
|
|
5
5
|
and fresh, claim-scoped Falsifier, Repair Scientist, and tool-free Judge
|
|
6
6
|
sessions. Fresh workers see bounded kernel state rather than inherited chat.
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
7
|
+
Native web search, page fetch, shell, filesystem, skills, workflows and configured
|
|
8
|
+
plugins remain available to research agents. Only authoritative Simjecture tools
|
|
9
|
+
are filtered by scientific role. The Python MCP process governs campaign state,
|
|
10
|
+
contracts, evidence acceptance, and tracked experiments. Its image endpoint
|
|
11
|
+
returns bounded PNG/JPEG/WebP pixels for vision-capable models.
|
|
12
|
+
|
|
13
|
+
The profile uses DSH's `workspace-write` file policy around a separate research
|
|
14
|
+
directory and approval `never` (no prompts; escalation requests are rejected).
|
|
15
|
+
Experiment execution retains Simjecture's separate Bubblewrap sandbox.
|
|
16
|
+
|
|
17
|
+
For the upstream version review and migration requirements, see the
|
|
18
|
+
[DSH upgrade assessment](dsh-upgrade-assessment.md).
|
|
14
19
|
|
|
15
20
|
## Provision the two runtimes
|
|
16
21
|
|
|
@@ -59,8 +64,8 @@ resulting local bundle into the isolated harness profile:
|
|
|
59
64
|
```bash
|
|
60
65
|
SIMJECTURE_DSH_PROFILE="$(simjecture dsh-profile)"
|
|
61
66
|
npm pack "$SIMJECTURE_DSH_PROFILE" --pack-destination /tmp
|
|
62
|
-
dsh plugin --profile simjecture add @deepseek-ai/dsh-headless@0.1.
|
|
63
|
-
dsh plugin --profile simjecture add /tmp/simjecture-dsh-bundle-0.
|
|
67
|
+
dsh plugin --profile simjecture add @deepseek-ai/dsh-headless@0.1.5-rc.2
|
|
68
|
+
dsh plugin --profile simjecture add /tmp/simjecture-dsh-bundle-0.4.0.tgz
|
|
64
69
|
```
|
|
65
70
|
|
|
66
71
|
For a checkout-only development install, use the directory directly when the
|
|
@@ -71,11 +76,13 @@ dsh plugin --profile simjecture add "$PWD/integrations/dsh"
|
|
|
71
76
|
```
|
|
72
77
|
|
|
73
78
|
The bundle pins the tested DSH prerelease and MCP-client prerelease in its
|
|
74
|
-
`package.json`.
|
|
75
|
-
|
|
79
|
+
`package.json`. The source bundle includes a `package-lock.json` for `npm ci` and runtime tests.
|
|
80
|
+
Keep the separate lockfile produced by the DSH plugin manager with the
|
|
81
|
+
deployment artifact; `npm pack` does not create a lockfile. Do not widen the pins.
|
|
76
82
|
|
|
77
|
-
DSH `0.1.
|
|
78
|
-
|
|
83
|
+
DSH `0.1.5-rc.2` requires Node.js `^22.19.0` or `>=24.0.0`. Install the DSH CLI
|
|
84
|
+
at that exact version (`npm install -g @deepseek-ai/dsh@0.1.5-rc.2`)
|
|
85
|
+
and verify that `dsh` is on `PATH`
|
|
79
86
|
before installing this isolated profile.
|
|
80
87
|
|
|
81
88
|
## Inspect the resolved configuration
|
|
@@ -91,8 +98,8 @@ Confirm that the native MCP client is named `simjecture`, starts
|
|
|
91
98
|
`simjecture-mcp`, carries the `SIMJECTURE_*` environment, and has
|
|
92
99
|
`failOnStartupError: true`. Also confirm `approval.policy: never`, the
|
|
93
100
|
`simjecture` permission preset (`workspace-write` plus `never`), and that the
|
|
94
|
-
|
|
95
|
-
|
|
101
|
+
native research tools remain enabled. A startup or handshake failure must stop
|
|
102
|
+
the profile before its first model request.
|
|
96
103
|
|
|
97
104
|
Completed large execution and workspace-write exchanges stay fully visible for
|
|
98
105
|
one model request. At a later step the profile may replace the balanced exchange
|
|
@@ -138,11 +145,12 @@ simjecture-mcp --workspace "$SIMJECTURE_WORKSPACE" \
|
|
|
138
145
|
|
|
139
146
|
That command speaks MCP over stdio and expects an MCP client; it is not a
|
|
140
147
|
human-facing REPL. Use DSH's initialize/list-tools/call-tool trace to verify the
|
|
141
|
-
|
|
142
|
-
tools
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
148
|
+
23 explicit MCP endpoints before submitting work. The lead has eight scientific
|
|
149
|
+
coordination/inspection tools alongside native research tools. Workers receive
|
|
150
|
+
role-specific scientific subsets and claim guards, while retaining native tools.
|
|
151
|
+
Native delegated children inherit their parent's scientific restrictions. The
|
|
152
|
+
independent judge sees only its frozen case and DSH's structured-output handoff;
|
|
153
|
+
raw judge prepare/commit operations remain private to the composite.
|
|
146
154
|
|
|
147
155
|
`observation_sufficient=true` means that a linked artifact satisfies its
|
|
148
156
|
selected prospective contract; it is not a researcher-issued support verdict.
|
|
@@ -191,3 +199,65 @@ a `repairs` child; an honestly complete blocker may close as
|
|
|
191
199
|
the immutable hand-off artifact. If later review finds an error, append a
|
|
192
200
|
corrective audit record rather than editing the original ledger, transcript, or
|
|
193
201
|
report.
|
|
202
|
+
|
|
203
|
+
## Upgrade an existing deployment
|
|
204
|
+
|
|
205
|
+
Stop its campaign supervisor and back up the entire campaign directory, including
|
|
206
|
+
`operator_input/dsh_sessions`, before upgrading the CLI and isolated profile.
|
|
207
|
+
Install DSH `0.1.5-rc.2`, replace the headless bundle with the matching version,
|
|
208
|
+
and install Simjecture's `0.4.0` profile using the commands above. Inspect
|
|
209
|
+
`--dump-config` before resuming. Do not mix the `0.1.6` alpha packages into this
|
|
210
|
+
profile. Provider/model selection stays in your DSH configuration.
|
|
211
|
+
|
|
212
|
+
DSH publishes a new V3 session generation when opening an older supported log
|
|
213
|
+
for writing; it retains the older generation. A rollback must use the complete
|
|
214
|
+
pre-upgrade campaign backup and the matching older runtime/profile. Do not point
|
|
215
|
+
an older DSH runtime at a campaign that has continued under the newer version.
|
|
216
|
+
|
|
217
|
+
To reproduce adapter validation from this checkout:
|
|
218
|
+
|
|
219
|
+
```bash
|
|
220
|
+
uv sync --extra dsh
|
|
221
|
+
npm ci --prefix integrations/dsh
|
|
222
|
+
SIMJECTURE_MCP_EXECUTABLE="$PWD/.venv/bin/simjecture-mcp" npm test --prefix integrations/dsh
|
|
223
|
+
uv run pytest -q tests/test_dsh_bundle.py tests/test_dsh_engine.py
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
The JavaScript tests use the pinned real DSH agent loop, tools, child runtime,
|
|
227
|
+
and persistence, with a deterministic model adapter. The CLI test also starts
|
|
228
|
+
the real Python MCP server and exercises snapshot, finalization refusal,
|
|
229
|
+
pause/resume, and mandatory-startup failure. It skips when the Python executable
|
|
230
|
+
is unavailable. These tests make no paid model requests and run no scientific
|
|
231
|
+
simulation. The test profile uses filesystem polling to avoid host inotify
|
|
232
|
+
limits; this is a test setting, not a change to deployed profiles.
|
|
233
|
+
|
|
234
|
+
## Research workspace and record boundary
|
|
235
|
+
|
|
236
|
+
The runner creates a native research directory outside `SIMJECTURE_WORKSPACE`.
|
|
237
|
+
Its default is the sibling `.simjecture-research/<session-id>` directory;
|
|
238
|
+
`SIMJECTURE_DSH_RESEARCH_ROOT` can select another directory. Overlapping research
|
|
239
|
+
and campaign roots are rejected. Native DSH file and shell tools may write in
|
|
240
|
+
this research directory; they cannot directly overwrite campaign files under
|
|
241
|
+
the configured file policy. Network tools remain enabled. Copy experiment source
|
|
242
|
+
into the scientific workspace using `write_workspace_file` before submitting a
|
|
243
|
+
contracted run. Native notes and calculations do not automatically become evidence.
|
|
244
|
+
|
|
245
|
+
Bundle 0.4.0 uses the deterministic `<launch-session-id>.research-v1` DSH identity.
|
|
246
|
+
This deliberately avoids resuming pre-0.4.0 sessions whose immutable working
|
|
247
|
+
directory was the campaign itself. On first upgrade, the researcher starts a
|
|
248
|
+
fresh conversation and reconciles the existing kernel snapshot; previous logs
|
|
249
|
+
are retained. Later pause/resume uses the new stable identity normally.
|
|
250
|
+
|
|
251
|
+
This is a boundary for DSH's enforcing built-in tools, not an OS security boundary
|
|
252
|
+
around arbitrary plugin code. Installed extensions are trusted code with the
|
|
253
|
+
DSH process's authority; upstream 0.1.5 workflow workers likewise are not a
|
|
254
|
+
security sandbox. Deploy the scientific service under a separate account or on
|
|
255
|
+
another host if protection against hostile extensions is required. This profile
|
|
256
|
+
does not install that account/service separation.
|
|
257
|
+
|
|
258
|
+
`read_workspace_image(path)` accepts campaign-relative PNG, JPEG, and WebP files
|
|
259
|
+
up to 4 MiB and 16 megapixels. MCP clients receive actual image content plus
|
|
260
|
+
path, dimensions, byte count and SHA-256 metadata. A vision-capable model is
|
|
261
|
+
required to interpret the pixels. Image reading is non-mutating and does not
|
|
262
|
+
promote an artifact to scientific evidence. The independent judge still receives
|
|
263
|
+
only its frozen adjudication packet, not unrestricted browsing or image tools.
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# DSH upgrade assessment — 2026-09-20
|
|
2
|
+
|
|
3
|
+
Migration implemented: Simjecture profile `0.2.3` pins DSH `0.1.5-rc.2`.
|
|
4
|
+
The scientific CampaignKernel and its evidence contract remain unchanged.
|
|
5
|
+
The adapter changes and validation described below replace the earlier
|
|
6
|
+
recommendation to retain `0.1.1-rc.2` pending compatibility work.
|
|
7
|
+
|
|
8
|
+
The official npm registry currently tags `0.1.5-rc.2` as `latest` and `next`,
|
|
9
|
+
and `0.1.6-alpha.2` as `alpha`. These are all prereleases. The recommended first
|
|
10
|
+
migration target is the default-channel `0.1.5-rc.2`, keeping the alpha work
|
|
11
|
+
separate. Versions were checked with `npm view @deepseek-ai/dsh dist-tags --json`.
|
|
12
|
+
|
|
13
|
+
## Compatibility findings addressed
|
|
14
|
+
|
|
15
|
+
The audit inspected upstream tag `dsh-v0.1.5-rc.2`, commit
|
|
16
|
+
`fb2c4b9e698e30edb738bca4cf0618587db7d203`.
|
|
17
|
+
|
|
18
|
+
| Boundary | Previous adapter | Upstream target | Migration requirement |
|
|
19
|
+
| --- | --- | --- | --- |
|
|
20
|
+
| Session history | `runner.js` and `context-elider.js` read `session.events` | `Session` exposes `snapshotEvents()` and `eventAt()` instead | Migrate history access and exercise resume, summarization, and pruning against real DSH |
|
|
21
|
+
| Surface replacement | `context-elider.js` writes `{ op: 'replace', start, end }` | `SurfaceOp` requires `startSeq` and `endSeq` | Update replacement events and test balanced tool exchanges and preserved original history |
|
|
22
|
+
| Durable sessions | Existing campaign-local DSH logs | Target includes session-format V3 and V2-to-V3 migration | Test upgrade on copies of old logs, including restart and failed migration; retain originals for rollback |
|
|
23
|
+
| Profile composition | Pinned headless profile, disabled generic tools, seven lead tools and scoped workers | Plugin composition and runtime have evolved | Inspect resolved configuration and actual tool catalogs; test mandatory MCP startup failure and every role restriction |
|
|
24
|
+
|
|
25
|
+
Primary source files:
|
|
26
|
+
|
|
27
|
+
- [Session history implementation](https://github.com/deepseek-ai/deepseek-harness/blob/dsh-v0.1.5-rc.2/packages/core/session/src/index.ts)
|
|
28
|
+
- [Surface event types](https://github.com/deepseek-ai/deepseek-harness/blob/dsh-v0.1.5-rc.2/packages/core/session/src/types.ts)
|
|
29
|
+
- [V2-to-V3 migration](https://github.com/deepseek-ai/deepseek-harness/blob/dsh-v0.1.5-rc.2/packages/session/session-format-v2-to-v3/src/migration.ts)
|
|
30
|
+
- [Official releases](https://github.com/deepseek-ai/deepseek-harness/releases)
|
|
31
|
+
|
|
32
|
+
The `0.1.6` release notes additionally describe headless stdin/session/JSON-event
|
|
33
|
+
support, MCP SDK v2, asynchronous agent initialization, deprecation of synchronous
|
|
34
|
+
history readers, and changes to plugin loading. Those features may eventually
|
|
35
|
+
simplify our custom driver, but do not by themselves replace its campaign budget,
|
|
36
|
+
control-file, activity projection, and reconciliation responsibilities. An alpha
|
|
37
|
+
migration should use its asynchronous history API rather than adopting a newly
|
|
38
|
+
deprecated synchronous interface.
|
|
39
|
+
|
|
40
|
+
## Why the scientific kernel does not need to change
|
|
41
|
+
|
|
42
|
+
DSH owns model requests, retries, conversation history, compaction, and child
|
|
43
|
+
sessions. CampaignKernel owns contracts, claim disposition, evidence provenance,
|
|
44
|
+
sandboxing, durable simulation jobs, and the deterministic finish gate. The
|
|
45
|
+
confirmed upstream breaks are in the JavaScript adapter's DSH APIs, not the
|
|
46
|
+
scientific MCP contract. No kernel schema migration is justified by these changes.
|
|
47
|
+
|
|
48
|
+
The version-change acceptance criteria require a real-runtime adapter smoke test in addition
|
|
49
|
+
to the existing bundle tests: fresh campaign, each scoped role, tool-free judge,
|
|
50
|
+
context pruning, pause/resume on migrated logs, interrupted durable job recovery,
|
|
51
|
+
and finalization only through the kernel gate. Existing source-string/fake tests
|
|
52
|
+
alone cannot qualify a DSH version change. Install and test an isolated profile;
|
|
53
|
+
do not migrate active campaign logs in place during evaluation.
|
|
54
|
+
|
|
55
|
+
## Completed validation
|
|
56
|
+
|
|
57
|
+
The adapter now uses `snapshotEvents()` / `eventAt()`, V3 surface replacement
|
|
58
|
+
fields, the renamed `ToolCallId` export, and `personaPrefix`. Removed profile
|
|
59
|
+
rows no longer produce missing-entry warnings. Claim guards attach at
|
|
60
|
+
`agent/created`, before a child receives its first prompt. The Blocker Resolver
|
|
61
|
+
allows DSH's schema-validated `structured_output` handoff. The Judge uses the
|
|
62
|
+
supported schema subset and explicitly rejects inconsistent decision/disposition
|
|
63
|
+
pairs before calling the kernel.
|
|
64
|
+
|
|
65
|
+
The checked-in Node tests run real DSH services with deterministic model output.
|
|
66
|
+
They cover original-history preservation, V2-to-V3 migration, fresh/resumed lead
|
|
67
|
+
sessions, each worker's first-call mutation guard, independent judge tools and
|
|
68
|
+
usage, and job reconciliation without model polling or resubmission. A complete
|
|
69
|
+
CLI/profile/Python-MCP test verifies the exact lead tool catalog, immutable
|
|
70
|
+
snapshot access, rejection of premature finalization, pause/resume, and no model
|
|
71
|
+
request after mandatory MCP startup failure. No paid-provider or long-running
|
|
72
|
+
scientific campaign was used for qualification. Production profiles and existing
|
|
73
|
+
campaign logs were not modified during this work.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Scientific roles with Simote agent sessions
|
|
2
2
|
|
|
3
|
-
Simote can run Codex and
|
|
3
|
+
Simote can run Codex, Grok, and AGY (Antigravity) CLI agents as claim-scoped Simjecture workers.
|
|
4
4
|
Simjecture remains the authority for evidence, claim disposition, jobs, budgets,
|
|
5
5
|
and campaign finalization. The native API runner and DSH profile remain available.
|
|
6
6
|
|
|
@@ -18,7 +18,7 @@ and role launches; existing assigned work can finish and records are preserved.
|
|
|
18
18
|
## Run a shared campaign
|
|
19
19
|
|
|
20
20
|
1. Configure a campaign-owner bot and one or more worker bots in the same Simote
|
|
21
|
-
team section, using the same named SSH compute machine. Select Codex or
|
|
21
|
+
team section, using the same named SSH compute machine. Select Codex, Grok, or AGY
|
|
22
22
|
agent engines for the workers, with their existing local logins.
|
|
23
23
|
2. Ask the owner to use `simjecture_open_campaign`. The owner keeps the campaign
|
|
24
24
|
under its workspace. Scientific worker tasks share that campaign; they do not
|
|
@@ -49,7 +49,7 @@ and role launches; existing assigned work can finish and records are preserved.
|
|
|
49
49
|
5. For independent review, the owner or assigned lead calls
|
|
50
50
|
`simjecture_adjudicate` with `campaign_id`, `judge_bot_id`, `operation_id`,
|
|
51
51
|
`claim_id`, `contract_version`, and `case_for_sufficiency`. The selected
|
|
52
|
-
Codex/Grok instance receives a fresh session, empty working directory, no
|
|
52
|
+
Codex/Grok/AGY instance receives a fresh session, empty working directory, no
|
|
53
53
|
conversation history or Simote integrations, and only the frozen case.
|
|
54
54
|
Tool activity invalidates the review. Only a successful text-only response
|
|
55
55
|
reaches Simjecture's existing verdict validation and scientific gates.
|
|
@@ -64,6 +64,13 @@ and the final report. You can create or attach a campaign, assign workers,
|
|
|
64
64
|
request independent review, cancel jobs, and finalize through the same kernel
|
|
65
65
|
gates. The existing Simjecture web dashboard is also available.
|
|
66
66
|
|
|
67
|
+
AGY workers require the instance's full-auto setting, because its headless CLI
|
|
68
|
+
cannot approve MCP calls interactively. Simote mounts named scientific MCP tools
|
|
69
|
+
for each turn and removes them before a tool-free judge starts. AGY uses a global
|
|
70
|
+
MCP configuration, so Simote serializes AGY child lifetimes to prevent one task
|
|
71
|
+
from receiving another task's credentials. User-configured MCP entries remain
|
|
72
|
+
preserved; any observed judge tool use rejects the review, as for other engines.
|
|
73
|
+
|
|
67
74
|
## Recovery and boundaries
|
|
68
75
|
|
|
69
76
|
Campaign creation first probes Bubblewrap namespace support. A GPU container
|
|
@@ -6,7 +6,7 @@ It accepts a natural-language hypothesis, lets an agent commission and use
|
|
|
6
6
|
computational instruments, and preserves an independently inspectable path from
|
|
7
7
|
proposal to claim disposition.
|
|
8
8
|
|
|
9
|
-
This documentation describes version 0.
|
|
9
|
+
This documentation describes version 0.4.0, a research preview. The project
|
|
10
10
|
began in computational plasma physics. The same evidence harness is now ready
|
|
11
11
|
to extend to other simulation-gated fields. The software has completed real
|
|
12
12
|
autonomous CPU and CUDA campaigns, but it does not claim unrestricted
|
|
@@ -75,6 +75,7 @@ how-to/guided-commissioning
|
|
|
75
75
|
how-to/add-a-capability
|
|
76
76
|
how-to/deploy-runtimes
|
|
77
77
|
how-to/deepseek-harness
|
|
78
|
+
how-to/dsh-upgrade-assessment
|
|
78
79
|
how-to/simote-agent-roles
|
|
79
80
|
```
|
|
80
81
|
|
|
@@ -7,7 +7,7 @@ final response. Simjecture remains authoritative for the hypothesis DAG,
|
|
|
7
7
|
evidence contracts, commissioning, provenance, sandbox, and durable simulation
|
|
8
8
|
jobs.
|
|
9
9
|
|
|
10
|
-
Version 0.
|
|
10
|
+
Version 0.4.0 targets DSH 0.1.5-rc.2 and separates scientific work into four scopes:
|
|
11
11
|
|
|
12
12
|
- a persistent, compact **Lead Scientist** reads durable state and delegates;
|
|
13
13
|
- a fresh **Falsifier/Experimenter** commissions and tests exactly one open
|
|
@@ -52,26 +52,24 @@ the hypothesis file must exactly match the immutable root stored there.
|
|
|
52
52
|
|
|
53
53
|
## Pack and install an isolated profile
|
|
54
54
|
|
|
55
|
-
The integration is pinned to DSH `0.1.
|
|
55
|
+
The integration is pinned to DSH `0.1.5-rc.2`. `simjecture dsh-profile` resolves
|
|
56
56
|
the same bundle from either a source checkout or an installed wheel. Pack it
|
|
57
57
|
outside the repository or remove the generated tarball after installation:
|
|
58
58
|
|
|
59
59
|
```bash
|
|
60
60
|
SIMJECTURE_DSH_PROFILE="$(simjecture dsh-profile)"
|
|
61
61
|
npm pack "$SIMJECTURE_DSH_PROFILE" --pack-destination /tmp
|
|
62
|
-
dsh plugin --profile simjecture add @deepseek-ai/dsh-headless@0.1.
|
|
63
|
-
dsh plugin --profile simjecture add /tmp/simjecture-dsh-bundle-0.
|
|
62
|
+
dsh plugin --profile simjecture add @deepseek-ai/dsh-headless@0.1.5-rc.2
|
|
63
|
+
dsh plugin --profile simjecture add /tmp/simjecture-dsh-bundle-0.4.0.tgz
|
|
64
64
|
```
|
|
65
65
|
|
|
66
|
-
The dedicated profile
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
by CampaignKernel and executed in its sandbox. Provider/model choice is still a
|
|
74
|
-
DSH setting and is not hard-coded by this bundle.
|
|
66
|
+
The dedicated profile composes DSH's native research tools with Simjecture's
|
|
67
|
+
scientific tools. Web, shell, files, skills, workflows, and configured plugins
|
|
68
|
+
remain available. Role restrictions apply to scientific calls, and ordinary
|
|
69
|
+
native file/shell operations are confined to a separate research workspace.
|
|
70
|
+
Approval `never` disables prompts and rejects privilege escalation. Experiment
|
|
71
|
+
execution and evidence acceptance remain governed by CampaignKernel.
|
|
72
|
+
Provider/model choice remains a DSH setting.
|
|
75
73
|
|
|
76
74
|
Two context policies are included. Completed large tool exchanges remain
|
|
77
75
|
verbatim for one model request and may then be replaced on the model-facing
|
|
@@ -90,7 +88,7 @@ dsh --profile simjecture --dump-config
|
|
|
90
88
|
|
|
91
89
|
The dump must show `mode: native`, `approval.policy: never`, the matching
|
|
92
90
|
`simjecture` permission preset, `mcp-simjecture`, the explicit `SIMJECTURE_*`
|
|
93
|
-
environment, and
|
|
91
|
+
environment, and native research tools as enabled. Missing workspace or hypothesis
|
|
94
92
|
variables fail profile activation.
|
|
95
93
|
|
|
96
94
|
After installation, let Simjecture create the immutable launch contract and
|
|
@@ -107,10 +105,9 @@ log beside the campaign, and reopens the same session on **Resume**.
|
|
|
107
105
|
|
|
108
106
|
The MCP child exposes no generic shell and no unguarded `finish` tool. Its
|
|
109
107
|
`finalize_campaign` endpoint can write a report only after CampaignKernel's
|
|
110
|
-
scientific finish gate passes.
|
|
111
|
-
role
|
|
112
|
-
|
|
113
|
-
to the adjudication composite.
|
|
108
|
+
scientific finish gate passes. Research roles retain native tools alongside
|
|
109
|
+
role-scoped scientific operations, including image inspection. The two raw
|
|
110
|
+
judge prepare/commit endpoints remain private to the adjudication composite.
|
|
114
111
|
|
|
115
112
|
Capability jobs, including configured WarpX capabilities, still return a
|
|
116
113
|
durable job ID immediately at the kernel boundary. The DSH waiter performs the
|
|
@@ -125,7 +122,7 @@ invalid receipt remains `outcome_unknown` and cannot become evidence.
|
|
|
125
122
|
|
|
126
123
|
`simjecture-mcp` speaks MCP over standard input/output and is not a human REPL.
|
|
127
124
|
Use an MCP client to perform initialize, list-tools, and call-tool. A healthy
|
|
128
|
-
server advertises
|
|
125
|
+
server advertises 23 explicit endpoints. The persistent lead sees eight scientific tools plus native research tools;
|
|
129
126
|
the fresh role composites expose narrower task-specific subsets, while raw
|
|
130
127
|
judge operations stay private. A direct MCP client must still reconcile a job
|
|
131
128
|
with `job_status`; the DSH profile performs that wait automatically.
|
|
@@ -135,3 +132,22 @@ its selected contract; it does not declare scientific support. The Falsifier
|
|
|
135
132
|
can make that bounded statement, but only the fresh Judge can authorize support.
|
|
136
133
|
Adjudication is rejected before a Judge is started when no qualifying link could
|
|
137
134
|
pass the kernel's deterministic closure gate.
|
|
135
|
+
|
|
136
|
+
## Adapter validation
|
|
137
|
+
|
|
138
|
+
From the checkout, run `npm ci --prefix integrations/dsh` and
|
|
139
|
+
`npm test --prefix integrations/dsh`. Tests exercise the real pinned DSH runtime
|
|
140
|
+
with a deterministic model adapter, including V2-to-V3 history migration,
|
|
141
|
+
pruning, role isolation, and durable-job reconciliation. The full CLI/MCP test
|
|
142
|
+
requires the repository's Python environment with the `dsh` extra; set
|
|
143
|
+
`SIMJECTURE_MCP_EXECUTABLE` to its `simjecture-mcp` executable if needed.
|
|
144
|
+
Back up campaigns before upgrading an existing deployment and retain matching
|
|
145
|
+
CLI/headless/profile versions for rollback.
|
|
146
|
+
|
|
147
|
+
Native research files live outside campaign records (`SIMJECTURE_DSH_RESEARCH_ROOT`
|
|
148
|
+
can override the default sibling directory). Version 0.4.0 starts a new
|
|
149
|
+
`.research-v1` conversation when upgrading from older campaign-root sessions;
|
|
150
|
+
existing scientific state is reconciled and old logs remain available. DSH's
|
|
151
|
+
built-in file/shell policies protect records from ordinary native writes.
|
|
152
|
+
Installed plugins remain trusted process code; separate-account isolation against
|
|
153
|
+
hostile extensions is not provided by this profile.
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
import { appendFileSync } from 'node:fs'
|
|
11
|
-
import {
|
|
11
|
+
import { ToolCallId } from '@deepseek-ai/dsh-llm'
|
|
12
12
|
|
|
13
13
|
export const name = 'simjecture-adjudicator'
|
|
14
14
|
export const inject = ['agentDefaultModel', 'subagents', 'tools']
|
|
@@ -40,25 +40,6 @@ const VERDICT_SCHEMA = {
|
|
|
40
40
|
evidence_gaps: { type: 'array', items: { type: 'string' } },
|
|
41
41
|
next_test: { oneOf: [{ type: 'string' }, { type: 'null' }] },
|
|
42
42
|
},
|
|
43
|
-
oneOf: [
|
|
44
|
-
{
|
|
45
|
-
properties: {
|
|
46
|
-
decision: { type: 'string', enum: ['sufficient'] },
|
|
47
|
-
scientific_disposition: {
|
|
48
|
-
type: 'string',
|
|
49
|
-
enum: ['supported', 'falsified', 'instrument_limited', 'unresolved'],
|
|
50
|
-
},
|
|
51
|
-
},
|
|
52
|
-
required: ['decision', 'scientific_disposition'],
|
|
53
|
-
},
|
|
54
|
-
{
|
|
55
|
-
properties: {
|
|
56
|
-
decision: { type: 'string', enum: ['insufficient'] },
|
|
57
|
-
scientific_disposition: { type: 'null' },
|
|
58
|
-
},
|
|
59
|
-
required: ['decision', 'scientific_disposition'],
|
|
60
|
-
},
|
|
61
|
-
],
|
|
62
43
|
required: [
|
|
63
44
|
'claim_id',
|
|
64
45
|
'contract_version',
|
|
@@ -135,7 +116,7 @@ function errorText(result) {
|
|
|
135
116
|
|
|
136
117
|
async function internalMcpCall(ctx, exec, suffix, name, args) {
|
|
137
118
|
const result = await ctx.tools.execute({
|
|
138
|
-
callId:
|
|
119
|
+
callId: ToolCallId(`${String(exec.callId)}:simjecture:${suffix}`),
|
|
139
120
|
rootCallId: exec.rootCallId,
|
|
140
121
|
name,
|
|
141
122
|
arguments: args,
|
|
@@ -159,7 +140,7 @@ async function internalMcpCall(ctx, exec, suffix, name, args) {
|
|
|
159
140
|
|
|
160
141
|
function usageFrom(run) {
|
|
161
142
|
const totals = {}
|
|
162
|
-
for (const event of run.localAgent?.session
|
|
143
|
+
for (const event of run.localAgent?.session.snapshotEvents() ?? []) {
|
|
163
144
|
if (event.type !== 'assistant/message' || event.data.usage === undefined) continue
|
|
164
145
|
for (const [key, value] of Object.entries(event.data.usage)) {
|
|
165
146
|
if (typeof value === 'number' && Number.isFinite(value)) {
|
|
@@ -289,6 +270,12 @@ export function apply(ctx) {
|
|
|
289
270
|
)
|
|
290
271
|
}
|
|
291
272
|
|
|
273
|
+
// DSH's structured-output subset disallows type + oneOf at the same
|
|
274
|
+
// schema node. Preserve the cross-field invariant before kernel commit.
|
|
275
|
+
const verdict = result.structured
|
|
276
|
+
if ((verdict.decision === 'insufficient') !== (verdict.scientific_disposition === null)) {
|
|
277
|
+
throw new Error('independent judge returned an inconsistent decision and scientific disposition')
|
|
278
|
+
}
|
|
292
279
|
const selection = ctx.agentDefaultModel.currentSelection()
|
|
293
280
|
const recorded = await internalMcpCall(
|
|
294
281
|
ctx,
|