simjecture 0.3.2__tar.gz → 0.5.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.
Files changed (576) hide show
  1. {simjecture-0.3.2 → simjecture-0.5.0}/.github/workflows/ci.yml +10 -1
  2. {simjecture-0.3.2 → simjecture-0.5.0}/.github/workflows/release.yml +10 -1
  3. {simjecture-0.3.2 → simjecture-0.5.0}/.gitignore +2 -0
  4. {simjecture-0.3.2 → simjecture-0.5.0}/CHANGELOG.md +40 -0
  5. {simjecture-0.3.2 → simjecture-0.5.0}/CITATION.cff +2 -2
  6. {simjecture-0.3.2 → simjecture-0.5.0}/PKG-INFO +25 -7
  7. {simjecture-0.3.2 → simjecture-0.5.0}/README.md +23 -6
  8. {simjecture-0.3.2 → simjecture-0.5.0}/docs/conf.py +1 -1
  9. simjecture-0.5.0/docs/getting-started/first-run.md +68 -0
  10. {simjecture-0.3.2 → simjecture-0.5.0}/docs/getting-started/installation.md +9 -1
  11. {simjecture-0.3.2 → simjecture-0.5.0}/docs/getting-started/web-interface.md +9 -1
  12. {simjecture-0.3.2 → simjecture-0.5.0}/docs/how-to/deepseek-harness.md +91 -21
  13. simjecture-0.5.0/docs/how-to/dsh-upgrade-assessment.md +73 -0
  14. simjecture-0.5.0/docs/how-to/research-service.md +138 -0
  15. simjecture-0.5.0/docs/how-to/simote-agent-roles.md +279 -0
  16. {simjecture-0.3.2 → simjecture-0.5.0}/docs/index.md +3 -1
  17. {simjecture-0.3.2 → simjecture-0.5.0}/docs/reference/cli.md +13 -0
  18. {simjecture-0.3.2 → simjecture-0.5.0}/integrations/dsh/README.md +35 -19
  19. {simjecture-0.3.2 → simjecture-0.5.0}/integrations/dsh/adjudicator.js +9 -22
  20. {simjecture-0.3.2 → simjecture-0.5.0}/integrations/dsh/context-elider.js +3 -3
  21. {simjecture-0.3.2 → simjecture-0.5.0}/integrations/dsh/cordis.patch.yml +20 -70
  22. {simjecture-0.3.2 → simjecture-0.5.0}/integrations/dsh/job-waiter.js +2 -2
  23. simjecture-0.5.0/integrations/dsh/package-lock.json +8976 -0
  24. simjecture-0.5.0/integrations/dsh/package.json +48 -0
  25. simjecture-0.5.0/integrations/dsh/research-tools.js +19 -0
  26. {simjecture-0.3.2 → simjecture-0.5.0}/integrations/dsh/roles.js +33 -13
  27. {simjecture-0.3.2 → simjecture-0.5.0}/integrations/dsh/runner.js +29 -10
  28. simjecture-0.5.0/integrations/dsh/tests/jobs.test.js +77 -0
  29. simjecture-0.5.0/integrations/dsh/tests/profile-model.js +31 -0
  30. simjecture-0.5.0/integrations/dsh/tests/profile.test.js +75 -0
  31. simjecture-0.5.0/integrations/dsh/tests/roles.test.js +141 -0
  32. simjecture-0.5.0/integrations/dsh/tests/runtime.js +61 -0
  33. simjecture-0.5.0/integrations/dsh/tests/session.test.js +114 -0
  34. simjecture-0.5.0/packaging/launch/INSTALL.md +66 -0
  35. simjecture-0.5.0/packaging/launch/launch.sh +12 -0
  36. simjecture-0.5.0/packaging/launch/setup.sh +23 -0
  37. {simjecture-0.3.2 → simjecture-0.5.0}/pyproject.toml +13 -2
  38. simjecture-0.5.0/research/evaluations/frontier-workflow/DESIGN.md +82 -0
  39. simjecture-0.5.0/research/evaluations/frontier-workflow/PLAIN-BASELINE-PLAN.md +25 -0
  40. simjecture-0.5.0/research/evaluations/frontier-workflow/PLAN.md +48 -0
  41. simjecture-0.5.0/research/evaluations/frontier-workflow/PROMPT-RESULTS.md +81 -0
  42. simjecture-0.5.0/research/evaluations/frontier-workflow/RESULTS.md +103 -0
  43. simjecture-0.5.0/research/evaluations/frontier-workflow/TOKEN-REPEAT-PLAN.md +25 -0
  44. simjecture-0.5.0/research/evaluations/frontier-workflow/TOKEN-RESULTS.md +35 -0
  45. simjecture-0.5.0/research/evaluations/frontier-workflow/accounted_codex_glm.py +11 -0
  46. simjecture-0.5.0/research/evaluations/frontier-workflow/client-probe-results.json +29 -0
  47. simjecture-0.5.0/research/evaluations/frontier-workflow/collect.py +188 -0
  48. simjecture-0.5.0/research/evaluations/frontier-workflow/original-recovered-token-usage.json +658 -0
  49. simjecture-0.5.0/research/evaluations/frontier-workflow/path-regression-results.json +57 -0
  50. simjecture-0.5.0/research/evaluations/frontier-workflow/pilot-results.json +828 -0
  51. simjecture-0.5.0/research/evaluations/frontier-workflow/plain-baseline-results.json +224 -0
  52. simjecture-0.5.0/research/evaluations/frontier-workflow/prompt-audit.json +288 -0
  53. simjecture-0.5.0/research/evaluations/frontier-workflow/run_pilot.py +218 -0
  54. simjecture-0.5.0/research/evaluations/frontier-workflow/token-repeat-provenance.json +50 -0
  55. simjecture-0.5.0/research/evaluations/frontier-workflow/token-repeat-results.json +781 -0
  56. simjecture-0.5.0/research/evaluations/frontier-workflow/token-repeat-usage.json +637 -0
  57. simjecture-0.5.0/research/evaluations/frontier-workflow/token_usage.py +191 -0
  58. simjecture-0.5.0/research/evaluations/minimal-default/DESIGN.md +69 -0
  59. simjecture-0.5.0/research/evaluations/minimal-default/RESULTS.md +101 -0
  60. simjecture-0.5.0/research/evaluations/minimal-default/export_results.py +70 -0
  61. simjecture-0.5.0/research/evaluations/minimal-default/measurements.json +271 -0
  62. simjecture-0.5.0/research/evaluations/release-0.5.0/RESULTS.md +114 -0
  63. simjecture-0.5.0/research/evaluations/release-0.5.0/export_results.py +87 -0
  64. simjecture-0.5.0/research/evaluations/release-0.5.0/measurements.json +362 -0
  65. simjecture-0.5.0/research/evaluations/research-service-v2/PLAN.md +59 -0
  66. simjecture-0.5.0/research/evaluations/research-service-v2/RESULTS.md +174 -0
  67. simjecture-0.5.0/research/evaluations/research-service-v2/assets/flash_case.py +158 -0
  68. simjecture-0.5.0/research/evaluations/research-service-v2/assets/plasma-hypothesis.txt +1 -0
  69. simjecture-0.5.0/research/evaluations/research-service-v2/assets/plasma-protocol.md +78 -0
  70. simjecture-0.5.0/research/evaluations/research-service-v2/evaluate_plasma.py +257 -0
  71. simjecture-0.5.0/research/evaluations/research-service-v2/export_results.py +99 -0
  72. simjecture-0.5.0/research/evaluations/research-service-v2/grade.py +305 -0
  73. simjecture-0.5.0/research/evaluations/research-service-v2/measurements.json +1466 -0
  74. simjecture-0.5.0/research/evaluations/research-service-v2/plasma_reference.py +173 -0
  75. simjecture-0.5.0/research/evaluations/research-service-v2/run_matrix.py +297 -0
  76. simjecture-0.5.0/scripts/build_launch_package.py +76 -0
  77. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/__init__.py +1 -1
  78. simjecture-0.5.0/src/conjecture_solver/agent_supervisor.py +915 -0
  79. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/campaign_kernel.py +53 -42
  80. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/cli.py +12 -1
  81. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/dsh_engine.py +46 -10
  82. simjecture-0.5.0/src/conjecture_solver/evidence_paths.py +34 -0
  83. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/mcp_schemas.py +7 -0
  84. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/mcp_server.py +20 -2
  85. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/mvp_agent.py +80 -41
  86. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/mvp_claims.py +11 -12
  87. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/mvp_launch.py +73 -90
  88. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/mvp_monitor.py +22 -11
  89. simjecture-0.5.0/src/conjecture_solver/research_client.py +133 -0
  90. simjecture-0.5.0/src/conjecture_solver/research_service.py +693 -0
  91. simjecture-0.5.0/src/conjecture_solver/research_supervisor.py +270 -0
  92. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/role_assignments.py +16 -4
  93. simjecture-0.5.0/src/conjecture_solver/scientific_review.py +203 -0
  94. simjecture-0.5.0/src/conjecture_solver/study.py +215 -0
  95. simjecture-0.5.0/src/conjecture_solver/study_launch.py +163 -0
  96. simjecture-0.5.0/src/conjecture_solver/study_status.py +391 -0
  97. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/tui/screens.py +72 -39
  98. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/web/application.py +103 -14
  99. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/web/static/app.js +48 -3
  100. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/web/static/index.html +24 -2
  101. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/web/static/styles.css +7 -0
  102. simjecture-0.5.0/src/conjecture_solver/workspace_images.py +47 -0
  103. simjecture-0.5.0/tests/test_agent_supervisor.py +318 -0
  104. {simjecture-0.3.2 → simjecture-0.5.0}/tests/test_campaign_kernel.py +20 -9
  105. {simjecture-0.3.2 → simjecture-0.5.0}/tests/test_dsh_bundle.py +12 -36
  106. {simjecture-0.3.2 → simjecture-0.5.0}/tests/test_dsh_engine.py +20 -1
  107. simjecture-0.5.0/tests/test_frontier_token_usage.py +106 -0
  108. simjecture-0.5.0/tests/test_frontier_workflow.py +132 -0
  109. {simjecture-0.3.2 → simjecture-0.5.0}/tests/test_mcp_server.py +2 -1
  110. {simjecture-0.3.2 → simjecture-0.5.0}/tests/test_mvp_agent.py +30 -32
  111. simjecture-0.5.0/tests/test_research_client.py +131 -0
  112. simjecture-0.5.0/tests/test_research_service.py +420 -0
  113. simjecture-0.5.0/tests/test_scientific_review.py +172 -0
  114. simjecture-0.5.0/tests/test_study.py +70 -0
  115. simjecture-0.5.0/tests/test_study_interface.py +288 -0
  116. {simjecture-0.3.2 → simjecture-0.5.0}/tests/test_tui.py +3 -1
  117. {simjecture-0.3.2 → simjecture-0.5.0}/tests/test_web.py +5 -1
  118. simjecture-0.5.0/tests/test_workspace_images.py +51 -0
  119. {simjecture-0.3.2 → simjecture-0.5.0}/uv.lock +3 -1
  120. simjecture-0.3.2/docs/getting-started/first-run.md +0 -76
  121. simjecture-0.3.2/docs/how-to/simote-agent-roles.md +0 -124
  122. simjecture-0.3.2/integrations/dsh/package.json +0 -40
  123. {simjecture-0.3.2 → simjecture-0.5.0}/.env.example +0 -0
  124. {simjecture-0.3.2 → simjecture-0.5.0}/.gitattributes +0 -0
  125. {simjecture-0.3.2 → simjecture-0.5.0}/.readthedocs.yaml +0 -0
  126. {simjecture-0.3.2 → simjecture-0.5.0}/CONTRIBUTING.md +0 -0
  127. {simjecture-0.3.2 → simjecture-0.5.0}/LICENSE +0 -0
  128. {simjecture-0.3.2 → simjecture-0.5.0}/NOTICE +0 -0
  129. {simjecture-0.3.2 → simjecture-0.5.0}/SECURITY.md +0 -0
  130. {simjecture-0.3.2 → simjecture-0.5.0}/THIRD_PARTY_NOTICES.md +0 -0
  131. {simjecture-0.3.2 → simjecture-0.5.0}/capabilities/atomec-1.4.0.json +0 -0
  132. {simjecture-0.3.2 → simjecture-0.5.0}/capabilities/flash-island-coalescence-resistive-mhd-4.8.json +0 -0
  133. {simjecture-0.3.2 → simjecture-0.5.0}/capabilities/m-aneos-1.0.json +0 -0
  134. {simjecture-0.3.2 → simjecture-0.5.0}/capabilities/optab-1.3.1.json +0 -0
  135. {simjecture-0.3.2 → simjecture-0.5.0}/capabilities/singularity-eos-1.12.1.json +0 -0
  136. {simjecture-0.3.2 → simjecture-0.5.0}/capabilities/warpx-cpu-26.07.json +0 -0
  137. {simjecture-0.3.2 → simjecture-0.5.0}/capabilities/warpx-cuda-openpmd-26.07.json +0 -0
  138. {simjecture-0.3.2 → simjecture-0.5.0}/demos/README.md +0 -0
  139. {simjecture-0.3.2 → simjecture-0.5.0}/demos/agent_roles_validation/README.md +0 -0
  140. {simjecture-0.3.2 → simjecture-0.5.0}/demos/agent_roles_validation/record/artifact_provenance.json +0 -0
  141. {simjecture-0.3.2 → simjecture-0.5.0}/demos/agent_roles_validation/record/hypothesis_ledger.json +0 -0
  142. {simjecture-0.3.2 → simjecture-0.5.0}/demos/agent_roles_validation/record/mvp_manifest.json +0 -0
  143. {simjecture-0.3.2 → simjecture-0.5.0}/demos/agent_roles_validation/record/mvp_report.json +0 -0
  144. {simjecture-0.3.2 → simjecture-0.5.0}/demos/agent_roles_validation/record/workspace/artifacts/commission_binary64_ops.json +0 -0
  145. {simjecture-0.3.2 → simjecture-0.5.0}/demos/agent_roles_validation/record/workspace/artifacts/commission_series_round_002.json +0 -0
  146. {simjecture-0.3.2 → simjecture-0.5.0}/demos/agent_roles_validation/record/workspace/artifacts/commission_series_round_003.json +0 -0
  147. {simjecture-0.3.2 → simjecture-0.5.0}/demos/agent_roles_validation/record/workspace/artifacts/euler_bound_002_prospective.json +0 -0
  148. {simjecture-0.3.2 → simjecture-0.5.0}/demos/agent_roles_validation/record/workspace/artifacts/euler_ten_step_error.json +0 -0
  149. {simjecture-0.3.2 → simjecture-0.5.0}/demos/agent_roles_validation/record/workspace/scripts/commission_binary64_ops.py +0 -0
  150. {simjecture-0.3.2 → simjecture-0.5.0}/demos/agent_roles_validation/record/workspace/scripts/commission_series_round_002.py +0 -0
  151. {simjecture-0.3.2 → simjecture-0.5.0}/demos/agent_roles_validation/record/workspace/scripts/commission_series_round_003.py +0 -0
  152. {simjecture-0.3.2 → simjecture-0.5.0}/demos/agent_roles_validation/record/workspace/scripts/euler_bound_002_prospective.py +0 -0
  153. {simjecture-0.3.2 → simjecture-0.5.0}/demos/agent_roles_validation/record/workspace/scripts/euler_ten_step_error.py +0 -0
  154. {simjecture-0.3.2 → simjecture-0.5.0}/demos/agent_roles_validation/sha256.json +0 -0
  155. {simjecture-0.3.2 → simjecture-0.5.0}/demos/agent_roles_validation/validation.json +0 -0
  156. {simjecture-0.3.2 → simjecture-0.5.0}/demos/agent_roles_validation/verify_record.py +0 -0
  157. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/README.md +0 -0
  158. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/campaign_instruction.txt +0 -0
  159. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/guided/anchor_operator_validation.json +0 -0
  160. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/guided/gem_anchor_validation.json +0 -0
  161. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/guided/gem_collisionless.py +0 -0
  162. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/guided/prior_campaign_0002_audit_summary.json +0 -0
  163. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/guided/prior_campaign_0003_audit_summary.json +0 -0
  164. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/guided/prior_campaign_audit_summary.json +0 -0
  165. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/guided_commission.json +0 -0
  166. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/hypothesis.txt +0 -0
  167. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/plot_results.py +0 -0
  168. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/artifact_provenance.json +0 -0
  169. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/claim_summary.md +0 -0
  170. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/guided_commissioning.json +0 -0
  171. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/hypothesis_ledger.json +0 -0
  172. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/literature_searches.json +0 -0
  173. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/mvp_manifest.json +0 -0
  174. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/mvp_report.json +0 -0
  175. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/transcript.jsonl +0 -0
  176. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000012.py +0 -0
  177. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000013.py +0 -0
  178. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000019.py +0 -0
  179. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000020.py +0 -0
  180. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000026.py +0 -0
  181. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000027.py +0 -0
  182. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000032.py +0 -0
  183. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000033.py +0 -0
  184. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000037.py +0 -0
  185. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000041.py +0 -0
  186. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000042.py +0 -0
  187. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000043.py +0 -0
  188. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000049.py +0 -0
  189. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/analyze_ensemble.py +0 -0
  190. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/analyze_manifest.json +0 -0
  191. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/commission_summary.json +0 -0
  192. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/ensemble_result.json +0 -0
  193. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/run_p16_t1_s20260902/diagnostic_overview.svg +0 -0
  194. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/run_p16_t1_s20260902/final_fields.npz +0 -0
  195. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/run_p16_t1_s20260902/warpx_used_inputs +0 -0
  196. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/run_p16_t20_s20260902/diagnostic_overview.svg +0 -0
  197. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/run_p16_t20_s20260902/final_fields.npz +0 -0
  198. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/run_p16_t20_s20260902/warpx_used_inputs +0 -0
  199. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/summaries/p16_t1_s20260902_summary.json +0 -0
  200. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/summaries/p16_t1_s20260903_summary.json +0 -0
  201. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/summaries/p16_t1_s20260904_summary.json +0 -0
  202. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/summaries/p16_t20_s20260902_summary.json +0 -0
  203. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/summaries/p16_t20_s20260903_summary.json +0 -0
  204. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/summaries/p16_t20_s20260904_summary.json +0 -0
  205. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/summaries/p8_t1_s20260902_summary.json +0 -0
  206. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/summaries/p8_t1_s20260903_summary.json +0 -0
  207. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/summaries/p8_t1_s20260904_summary.json +0 -0
  208. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/summaries/p8_t20_s20260902_summary.json +0 -0
  209. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/summaries/p8_t20_s20260903_summary.json +0 -0
  210. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/summaries/p8_t20_s20260904_summary.json +0 -0
  211. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/design_pin.json +0 -0
  212. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/energy_reader.py +0 -0
  213. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/fallback_solver_plan.json +0 -0
  214. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/fixtures/commission_manifest.json +0 -0
  215. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/fixtures/commission_output.json +0 -0
  216. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/fixtures/commission_output_wb.json +0 -0
  217. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/fixtures/inp/p16_t1_s20260902_summary.json +0 -0
  218. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/fixtures/inp/p16_t1_s20260903_summary.json +0 -0
  219. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/fixtures/inp/p16_t1_s20260904_summary.json +0 -0
  220. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/fixtures/inp/p16_t20_s20260902_summary.json +0 -0
  221. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/fixtures/inp/p16_t20_s20260903_summary.json +0 -0
  222. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/fixtures/inp/p16_t20_s20260904_summary.json +0 -0
  223. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/fixtures/inp/p8_t1_s20260902_summary.json +0 -0
  224. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/fixtures/inp/p8_t1_s20260903_summary.json +0 -0
  225. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/fixtures/inp/p8_t1_s20260904_summary.json +0 -0
  226. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/fixtures/inp/p8_t20_s20260902_summary.json +0 -0
  227. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/fixtures/inp/p8_t20_s20260903_summary.json +0 -0
  228. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/fixtures/inp/p8_t20_s20260904_summary.json +0 -0
  229. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/gen_fixtures.py +0 -0
  230. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/guided/anchor_operator_validation.json +0 -0
  231. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/guided/gem_anchor_validation.json +0 -0
  232. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/guided/gem_collisionless.py +0 -0
  233. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/guided/prior_campaign_0002_audit_summary.json +0 -0
  234. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/guided/prior_campaign_0003_audit_summary.json +0 -0
  235. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/guided/prior_campaign_audit_summary.json +0 -0
  236. {simjecture-0.3.2 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/verify_record.py +0 -0
  237. {simjecture-0.3.2 → simjecture-0.5.0}/demos/gray_scott_counterexample/README.md +0 -0
  238. {simjecture-0.3.2 → simjecture-0.5.0}/demos/gray_scott_counterexample/capture_tui.py +0 -0
  239. {simjecture-0.3.2 → simjecture-0.5.0}/demos/gray_scott_counterexample/hypothesis.txt +0 -0
  240. {simjecture-0.3.2 → simjecture-0.5.0}/demos/gray_scott_counterexample/plot_results.py +0 -0
  241. {simjecture-0.3.2 → simjecture-0.5.0}/demos/gray_scott_counterexample/record/README.md +0 -0
  242. {simjecture-0.3.2 → simjecture-0.5.0}/demos/gray_scott_counterexample/record/artifact_provenance.json +0 -0
  243. {simjecture-0.3.2 → simjecture-0.5.0}/demos/gray_scott_counterexample/record/claim_summary.md +0 -0
  244. {simjecture-0.3.2 → simjecture-0.5.0}/demos/gray_scott_counterexample/record/hypothesis_ledger.json +0 -0
  245. {simjecture-0.3.2 → simjecture-0.5.0}/demos/gray_scott_counterexample/record/mvp_manifest.json +0 -0
  246. {simjecture-0.3.2 → simjecture-0.5.0}/demos/gray_scott_counterexample/record/mvp_report.json +0 -0
  247. {simjecture-0.3.2 → simjecture-0.5.0}/demos/gray_scott_counterexample/record/transcript.jsonl +0 -0
  248. {simjecture-0.3.2 → simjecture-0.5.0}/demos/gray_scott_counterexample/record/workspace/analyze_results.py +0 -0
  249. {simjecture-0.3.2 → simjecture-0.5.0}/demos/gray_scott_counterexample/record/workspace/calc_growth.py +0 -0
  250. {simjecture-0.3.2 → simjecture-0.5.0}/demos/gray_scott_counterexample/record/workspace/linear_stability.py +0 -0
  251. {simjecture-0.3.2 → simjecture-0.5.0}/demos/gray_scott_counterexample/record/workspace/mode_analysis.py +0 -0
  252. {simjecture-0.3.2 → simjecture-0.5.0}/demos/gray_scott_counterexample/record/workspace/mode_analysis_results.json +0 -0
  253. {simjecture-0.3.2 → simjecture-0.5.0}/demos/gray_scott_counterexample/record/workspace/pick_regime.py +0 -0
  254. {simjecture-0.3.2 → simjecture-0.5.0}/demos/gray_scott_counterexample/record/workspace/regime_candidates.json +0 -0
  255. {simjecture-0.3.2 → simjecture-0.5.0}/demos/gray_scott_counterexample/record/workspace/result_s1.npz +0 -0
  256. {simjecture-0.3.2 → simjecture-0.5.0}/demos/gray_scott_counterexample/record/workspace/result_s10.npz +0 -0
  257. {simjecture-0.3.2 → simjecture-0.5.0}/demos/gray_scott_counterexample/record/workspace/result_s10_dt025.npz +0 -0
  258. {simjecture-0.3.2 → simjecture-0.5.0}/demos/gray_scott_counterexample/record/workspace/result_s1_dt025.npz +0 -0
  259. {simjecture-0.3.2 → simjecture-0.5.0}/demos/gray_scott_counterexample/record/workspace/root_pattern_results.json +0 -0
  260. {simjecture-0.3.2 → simjecture-0.5.0}/demos/gray_scott_counterexample/record/workspace/root_s10_dt0p025.npz +0 -0
  261. {simjecture-0.3.2 → simjecture-0.5.0}/demos/gray_scott_counterexample/record/workspace/root_s10_dt0p05.npz +0 -0
  262. {simjecture-0.3.2 → simjecture-0.5.0}/demos/gray_scott_counterexample/record/workspace/root_s1_dt0p025.npz +0 -0
  263. {simjecture-0.3.2 → simjecture-0.5.0}/demos/gray_scott_counterexample/record/workspace/root_s1_dt0p05.npz +0 -0
  264. {simjecture-0.3.2 → simjecture-0.5.0}/demos/gray_scott_counterexample/record/workspace/simulate_gs.py +0 -0
  265. {simjecture-0.3.2 → simjecture-0.5.0}/demos/gray_scott_counterexample/record/workspace/simulate_gs_dt025.py +0 -0
  266. {simjecture-0.3.2 → simjecture-0.5.0}/demos/gray_scott_counterexample/record/workspace/simulate_gs_root.py +0 -0
  267. {simjecture-0.3.2 → simjecture-0.5.0}/demos/gray_scott_counterexample/record/workspace/simulation_results.json +0 -0
  268. {simjecture-0.3.2 → simjecture-0.5.0}/demos/gray_scott_counterexample/record/workspace/simulation_results_dt025.json +0 -0
  269. {simjecture-0.3.2 → simjecture-0.5.0}/demos/gray_scott_counterexample/record/workspace/turing_diagnostic.py +0 -0
  270. {simjecture-0.3.2 → simjecture-0.5.0}/demos/gray_scott_counterexample/reproduce.py +0 -0
  271. {simjecture-0.3.2 → simjecture-0.5.0}/demos/gray_scott_counterexample/verify_record.py +0 -0
  272. {simjecture-0.3.2 → simjecture-0.5.0}/demos/resistive_mhd_island_coalescence/.gitignore +0 -0
  273. {simjecture-0.3.2 → simjecture-0.5.0}/demos/resistive_mhd_island_coalescence/README.md +0 -0
  274. {simjecture-0.3.2 → simjecture-0.5.0}/demos/resistive_mhd_island_coalescence/campaign_audit.json +0 -0
  275. {simjecture-0.3.2 → simjecture-0.5.0}/demos/resistive_mhd_island_coalescence/campaign_instruction.txt +0 -0
  276. {simjecture-0.3.2 → simjecture-0.5.0}/demos/resistive_mhd_island_coalescence/figures/README.md +0 -0
  277. {simjecture-0.3.2 → simjecture-0.5.0}/demos/resistive_mhd_island_coalescence/figures/island_coalescence_evolution.png +0 -0
  278. {simjecture-0.3.2 → simjecture-0.5.0}/demos/resistive_mhd_island_coalescence/figures/reconnection_layer_physics.png +0 -0
  279. {simjecture-0.3.2 → simjecture-0.5.0}/demos/resistive_mhd_island_coalescence/figures/reconnection_microphysics_profiles.png +0 -0
  280. {simjecture-0.3.2 → simjecture-0.5.0}/demos/resistive_mhd_island_coalescence/figures/scaling_law_discovery.png +0 -0
  281. {simjecture-0.3.2 → simjecture-0.5.0}/demos/resistive_mhd_island_coalescence/figures/simjecture_web_dashboard.png +0 -0
  282. {simjecture-0.3.2 → simjecture-0.5.0}/demos/resistive_mhd_island_coalescence/guided/anchor_validation.json +0 -0
  283. {simjecture-0.3.2 → simjecture-0.5.0}/demos/resistive_mhd_island_coalescence/guided/island_coalescence.py +0 -0
  284. {simjecture-0.3.2 → simjecture-0.5.0}/demos/resistive_mhd_island_coalescence/guided/operator_validation.json +0 -0
  285. {simjecture-0.3.2 → simjecture-0.5.0}/demos/resistive_mhd_island_coalescence/guided_commission.json +0 -0
  286. {simjecture-0.3.2 → simjecture-0.5.0}/demos/resistive_mhd_island_coalescence/hypothesis.txt +0 -0
  287. {simjecture-0.3.2 → simjecture-0.5.0}/demos/resistive_mhd_island_coalescence/literature_basis.md +0 -0
  288. {simjecture-0.3.2 → simjecture-0.5.0}/demos/resistive_mhd_island_coalescence/plot_results.py +0 -0
  289. {simjecture-0.3.2 → simjecture-0.5.0}/docs/_static/demos/gem-ensemble-result.png +0 -0
  290. {simjecture-0.3.2 → simjecture-0.5.0}/docs/_static/demos/gem-reconnection-fields.png +0 -0
  291. {simjecture-0.3.2 → simjecture-0.5.0}/docs/_static/demos/gray-scott-completed-tui.svg +0 -0
  292. {simjecture-0.3.2 → simjecture-0.5.0}/docs/_static/demos/gray-scott-result.png +0 -0
  293. {simjecture-0.3.2 → simjecture-0.5.0}/docs/concepts/architecture.md +0 -0
  294. {simjecture-0.3.2 → simjecture-0.5.0}/docs/concepts/evidence-and-claims.md +0 -0
  295. {simjecture-0.3.2 → simjecture-0.5.0}/docs/demos/collisionless-gem.md +0 -0
  296. {simjecture-0.3.2 → simjecture-0.5.0}/docs/demos/gray-scott.md +0 -0
  297. {simjecture-0.3.2 → simjecture-0.5.0}/docs/development/documentation.md +0 -0
  298. {simjecture-0.3.2 → simjecture-0.5.0}/docs/development/releasing.md +0 -0
  299. {simjecture-0.3.2 → simjecture-0.5.0}/docs/getting-started/terminal-ui.md +0 -0
  300. {simjecture-0.3.2 → simjecture-0.5.0}/docs/how-to/add-a-capability.md +0 -0
  301. {simjecture-0.3.2 → simjecture-0.5.0}/docs/how-to/deploy-runtimes.md +0 -0
  302. {simjecture-0.3.2 → simjecture-0.5.0}/docs/how-to/guided-commissioning.md +0 -0
  303. {simjecture-0.3.2 → simjecture-0.5.0}/docs/reference/repository-map.md +0 -0
  304. {simjecture-0.3.2 → simjecture-0.5.0}/docs/requirements.txt +0 -0
  305. {simjecture-0.3.2 → simjecture-0.5.0}/docs/research/limitations.md +0 -0
  306. {simjecture-0.3.2 → simjecture-0.5.0}/docs/research/next-steps.md +0 -0
  307. {simjecture-0.3.2 → simjecture-0.5.0}/docs/research/run-0004.md +0 -0
  308. {simjecture-0.3.2 → simjecture-0.5.0}/docs/research/status.md +0 -0
  309. {simjecture-0.3.2 → simjecture-0.5.0}/environments/warpx-cpu.yml +0 -0
  310. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/AIStrategyDraft.schema.json +0 -0
  311. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/ActionExecution.schema.json +0 -0
  312. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/ActionFailureRecord.schema.json +0 -0
  313. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/AttemptRecord.schema.json +0 -0
  314. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/BlindedSearchReport.schema.json +0 -0
  315. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/BlindedSearchRequest.schema.json +0 -0
  316. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/CampaignAction.schema.json +0 -0
  317. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/CampaignActionGraph.schema.json +0 -0
  318. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/CampaignActionState.schema.json +0 -0
  319. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/CampaignBudget.schema.json +0 -0
  320. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/CampaignCheckpoint.schema.json +0 -0
  321. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/CampaignState.schema.json +0 -0
  322. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/CandidateEvaluation.schema.json +0 -0
  323. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/CandidateResult.schema.json +0 -0
  324. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/CapabilityManifest.schema.json +0 -0
  325. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/Claim.schema.json +0 -0
  326. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/CollisionalityIntervention.schema.json +0 -0
  327. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/ControlDirective.schema.json +0 -0
  328. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/DecisionRecord.schema.json +0 -0
  329. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/DiscoveryPackage.schema.json +0 -0
  330. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/DispatchAttempt.schema.json +0 -0
  331. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/DomainDiagnosisSummary.schema.json +0 -0
  332. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/DomainEvolutionSummary.schema.json +0 -0
  333. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/DomainPluginMetadata.schema.json +0 -0
  334. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/DomainRunSummary.schema.json +0 -0
  335. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/DomainTemplateSummary.schema.json +0 -0
  336. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/ExperimentSpec.schema.json +0 -0
  337. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/ExternalReceipt.schema.json +0 -0
  338. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/FreshSeedIntervention.schema.json +0 -0
  339. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/HumanIntervention.schema.json +0 -0
  340. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/HypothesisNode.schema.json +0 -0
  341. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/KineticSufficiencyDiscoveryPackage.schema.json +0 -0
  342. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/KineticSufficiencyHypothesisInput.schema.json +0 -0
  343. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/KineticSufficiencyResult.schema.json +0 -0
  344. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/KineticSufficiencySolveResult.schema.json +0 -0
  345. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/LifecycleEvent.schema.json +0 -0
  346. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/MVPGuidedCommissioningSpec.schema.json +0 -0
  347. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/MatchedPairFormalPredicate.schema.json +0 -0
  348. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/ModelCallProvenance.schema.json +0 -0
  349. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/MultiActionCampaignReport.schema.json +0 -0
  350. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/NormalizedResult.schema.json +0 -0
  351. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/NumericalAssessment.schema.json +0 -0
  352. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/NumericalDiagnostics.schema.json +0 -0
  353. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/NumericalGate.schema.json +0 -0
  354. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/ObservablePrediction.schema.json +0 -0
  355. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/OutboxIntent.schema.json +0 -0
  356. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/PICCaseResult.schema.json +0 -0
  357. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/PICConfig.schema.json +0 -0
  358. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/PICConfirmationAttempt.schema.json +0 -0
  359. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/PICConfirmationDesign.schema.json +0 -0
  360. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/PICConfirmationReport.schema.json +0 -0
  361. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/PICMixtureCaseResult.schema.json +0 -0
  362. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/PICNumericalConfig.schema.json +0 -0
  363. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/PICSufficiencyResult.schema.json +0 -0
  364. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/ParameterSpace.schema.json +0 -0
  365. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/ParticleStatisticsIntervention.schema.json +0 -0
  366. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/ProposalDraft.schema.json +0 -0
  367. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/ProposalRecord.schema.json +0 -0
  368. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/ProposalRequest.schema.json +0 -0
  369. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/ProposalValidation.schema.json +0 -0
  370. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/ProposedToolCall.schema.json +0 -0
  371. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/QualifiedWarpXCampaignPackage.schema.json +0 -0
  372. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/QualifiedWarpXInstrument.schema.json +0 -0
  373. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/ReferenceQualification.schema.json +0 -0
  374. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/ResearchBudget.schema.json +0 -0
  375. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/ResearchCampaignReport.schema.json +0 -0
  376. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/ResearchConclusion.schema.json +0 -0
  377. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/ResearchDecision.schema.json +0 -0
  378. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/ResearchEvidencePolicy.schema.json +0 -0
  379. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/ResearchHypothesis.schema.json +0 -0
  380. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/ResearchObservation.schema.json +0 -0
  381. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/ResearchProblemContract.schema.json +0 -0
  382. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/ResearchRelation.schema.json +0 -0
  383. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/ResearchToolManifest.schema.json +0 -0
  384. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/ResearchToolResult.schema.json +0 -0
  385. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/RunEvidence.schema.json +0 -0
  386. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/RunPlan.schema.json +0 -0
  387. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/SearchStrategy.schema.json +0 -0
  388. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/SheetThicknessIntervention.schema.json +0 -0
  389. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/SubprocessResearchToolConfig.schema.json +0 -0
  390. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/SymmetricMixtureCandidate.schema.json +0 -0
  391. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/WarpXCalibrationPoint.schema.json +0 -0
  392. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/WarpXCaseSummary.schema.json +0 -0
  393. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/WarpXCompiledCase.schema.json +0 -0
  394. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/WarpXConfirmationAttempt.schema.json +0 -0
  395. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/WarpXConfirmationDesign.schema.json +0 -0
  396. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/WarpXConfirmationFailure.schema.json +0 -0
  397. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/WarpXConfirmationReport.schema.json +0 -0
  398. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/WarpXConfirmationResolution.schema.json +0 -0
  399. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/WarpXExecutionProfile.schema.json +0 -0
  400. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/WarpXNumericalConfig.schema.json +0 -0
  401. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/WarpXPairSummary.schema.json +0 -0
  402. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/WarpXPhysicalConfig.schema.json +0 -0
  403. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/WarpXPhysicsQualificationRecord.schema.json +0 -0
  404. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/WarpXQualificationRecord.schema.json +0 -0
  405. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/WarpXQualifiedScope.schema.json +0 -0
  406. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/mvp/MVPAgentAction.schema.json +0 -0
  407. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/mvp/MVPAgentReport.schema.json +0 -0
  408. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/mvp/MVPClaim.schema.json +0 -0
  409. {simjecture-0.3.2 → simjecture-0.5.0}/schemas/mvp/MVPClaimLedger.schema.json +0 -0
  410. {simjecture-0.3.2 → simjecture-0.5.0}/scripts/postprocess_warpx_case.py +0 -0
  411. {simjecture-0.3.2 → simjecture-0.5.0}/scripts/probe_provider.py +0 -0
  412. {simjecture-0.3.2 → simjecture-0.5.0}/scripts/propose_hypothesis.py +0 -0
  413. {simjecture-0.3.2 → simjecture-0.5.0}/scripts/propose_search_strategy.py +0 -0
  414. {simjecture-0.3.2 → simjecture-0.5.0}/scripts/qualify_warpx.py +0 -0
  415. {simjecture-0.3.2 → simjecture-0.5.0}/scripts/qualify_warpx_physics.py +0 -0
  416. {simjecture-0.3.2 → simjecture-0.5.0}/scripts/run_admitted_proposal.py +0 -0
  417. {simjecture-0.3.2 → simjecture-0.5.0}/scripts/run_blinded_search.py +0 -0
  418. {simjecture-0.3.2 → simjecture-0.5.0}/scripts/run_qualified_warpx_campaign.py +0 -0
  419. {simjecture-0.3.2 → simjecture-0.5.0}/scripts/run_warpx_confirmation.py +0 -0
  420. {simjecture-0.3.2 → simjecture-0.5.0}/scripts/run_warpx_pair.py +0 -0
  421. {simjecture-0.3.2 → simjecture-0.5.0}/skills/eos/SKILL.md +0 -0
  422. {simjecture-0.3.2 → simjecture-0.5.0}/skills/eos/agents/openai.yaml +0 -0
  423. {simjecture-0.3.2 → simjecture-0.5.0}/skills/eos/examples/atomec_runtime_smoke.py +0 -0
  424. {simjecture-0.3.2 → simjecture-0.5.0}/skills/eos/examples/maneos_runtime_smoke.py +0 -0
  425. {simjecture-0.3.2 → simjecture-0.5.0}/skills/eos/examples/singularity_runtime_smoke.py +0 -0
  426. {simjecture-0.3.2 → simjecture-0.5.0}/skills/eos/manifest.json +0 -0
  427. {simjecture-0.3.2 → simjecture-0.5.0}/skills/eos/references/execution-output.md +0 -0
  428. {simjecture-0.3.2 → simjecture-0.5.0}/skills/eos/references/local-deployment.md +0 -0
  429. {simjecture-0.3.2 → simjecture-0.5.0}/skills/eos/scripts/bootstrap_atomec.sh +0 -0
  430. {simjecture-0.3.2 → simjecture-0.5.0}/skills/eos/scripts/bootstrap_maneos.sh +0 -0
  431. {simjecture-0.3.2 → simjecture-0.5.0}/skills/eos/scripts/bootstrap_singularity_eos.sh +0 -0
  432. {simjecture-0.3.2 → simjecture-0.5.0}/skills/eos/scripts/maneos_query.f90 +0 -0
  433. {simjecture-0.3.2 → simjecture-0.5.0}/skills/eos/scripts/singularity_query.cpp +0 -0
  434. {simjecture-0.3.2 → simjecture-0.5.0}/skills/flash-mhd/SKILL.md +0 -0
  435. {simjecture-0.3.2 → simjecture-0.5.0}/skills/flash-mhd/agents/openai.yaml +0 -0
  436. {simjecture-0.3.2 → simjecture-0.5.0}/skills/flash-mhd/examples/runtime_smoke.py +0 -0
  437. {simjecture-0.3.2 → simjecture-0.5.0}/skills/flash-mhd/manifest.json +0 -0
  438. {simjecture-0.3.2 → simjecture-0.5.0}/skills/flash-mhd/references/execution-output.md +0 -0
  439. {simjecture-0.3.2 → simjecture-0.5.0}/skills/flash-mhd/references/local-deployment.md +0 -0
  440. {simjecture-0.3.2 → simjecture-0.5.0}/skills/flash-mhd/references/model-validity.md +0 -0
  441. {simjecture-0.3.2 → simjecture-0.5.0}/skills/flash-mhd/references/private-install.md +0 -0
  442. {simjecture-0.3.2 → simjecture-0.5.0}/skills/flash-mhd/scripts/bootstrap_flash.sh +0 -0
  443. {simjecture-0.3.2 → simjecture-0.5.0}/skills/opacity/SKILL.md +0 -0
  444. {simjecture-0.3.2 → simjecture-0.5.0}/skills/opacity/agents/openai.yaml +0 -0
  445. {simjecture-0.3.2 → simjecture-0.5.0}/skills/opacity/examples/optab_runtime_smoke.py +0 -0
  446. {simjecture-0.3.2 → simjecture-0.5.0}/skills/opacity/manifest.json +0 -0
  447. {simjecture-0.3.2 → simjecture-0.5.0}/skills/opacity/references/execution-output.md +0 -0
  448. {simjecture-0.3.2 → simjecture-0.5.0}/skills/opacity/references/local-deployment.md +0 -0
  449. {simjecture-0.3.2 → simjecture-0.5.0}/skills/opacity/scripts/bootstrap_optab.sh +0 -0
  450. {simjecture-0.3.2 → simjecture-0.5.0}/skills/opacity/scripts/write_optab_preflight.py +0 -0
  451. {simjecture-0.3.2 → simjecture-0.5.0}/skills/python-experiment/SKILL.md +0 -0
  452. {simjecture-0.3.2 → simjecture-0.5.0}/skills/python-experiment/manifest.json +0 -0
  453. {simjecture-0.3.2 → simjecture-0.5.0}/skills/scientific-markdown/SKILL.md +0 -0
  454. {simjecture-0.3.2 → simjecture-0.5.0}/skills/scientific-markdown/agents/openai.yaml +0 -0
  455. {simjecture-0.3.2 → simjecture-0.5.0}/skills/scientific-markdown/manifest.json +0 -0
  456. {simjecture-0.3.2 → simjecture-0.5.0}/skills/warpx/SKILL.md +0 -0
  457. {simjecture-0.3.2 → simjecture-0.5.0}/skills/warpx/agents/openai.yaml +0 -0
  458. {simjecture-0.3.2 → simjecture-0.5.0}/skills/warpx/examples/implicit_em_smoke.py +0 -0
  459. {simjecture-0.3.2 → simjecture-0.5.0}/skills/warpx/examples/minimal_smoke.py +0 -0
  460. {simjecture-0.3.2 → simjecture-0.5.0}/skills/warpx/examples/openpmd_field_smoke.py +0 -0
  461. {simjecture-0.3.2 → simjecture-0.5.0}/skills/warpx/examples/openpmd_xz_reader.py +0 -0
  462. {simjecture-0.3.2 → simjecture-0.5.0}/skills/warpx/manifest.json +0 -0
  463. {simjecture-0.3.2 → simjecture-0.5.0}/skills/warpx/references/2d-xz-commissioning.md +0 -0
  464. {simjecture-0.3.2 → simjecture-0.5.0}/skills/warpx/references/cpu-launch-tuning.md +0 -0
  465. {simjecture-0.3.2 → simjecture-0.5.0}/skills/warpx/references/diagnostics.md +0 -0
  466. {simjecture-0.3.2 → simjecture-0.5.0}/skills/warpx/references/gpu-launch-tuning.md +0 -0
  467. {simjecture-0.3.2 → simjecture-0.5.0}/skills/warpx/references/hybrid-pic.md +0 -0
  468. {simjecture-0.3.2 → simjecture-0.5.0}/skills/warpx/references/local-cuda-deployment.md +0 -0
  469. {simjecture-0.3.2 → simjecture-0.5.0}/skills/warpx/references/numerical-risks.md +0 -0
  470. {simjecture-0.3.2 → simjecture-0.5.0}/skills/warpx/references/picmi-interface.md +0 -0
  471. {simjecture-0.3.2 → simjecture-0.5.0}/skills/warpx/references/resource-scaling.md +0 -0
  472. {simjecture-0.3.2 → simjecture-0.5.0}/skills/warpx/references/time-integration.md +0 -0
  473. {simjecture-0.3.2 → simjecture-0.5.0}/skills/warpx/scripts/benchmark_cpu_threads.py +0 -0
  474. {simjecture-0.3.2 → simjecture-0.5.0}/skills/warpx/scripts/benchmark_gpu.py +0 -0
  475. {simjecture-0.3.2 → simjecture-0.5.0}/skills/warpx/scripts/bootstrap_local_cuda.sh +0 -0
  476. {simjecture-0.3.2 → simjecture-0.5.0}/skills/warpx/scripts/probe_local_cuda.py +0 -0
  477. {simjecture-0.3.2 → simjecture-0.5.0}/skills/warpx/scripts/reduced_energy_budget.py +0 -0
  478. {simjecture-0.3.2 → simjecture-0.5.0}/skills/warpx/scripts/run_local_cuda.sh +0 -0
  479. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/__main__.py +0 -0
  480. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/action_handlers.py +0 -0
  481. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/adapters/__init__.py +0 -0
  482. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/adapters/base.py +0 -0
  483. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/adapters/fake.py +0 -0
  484. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/adapters/pic.py +0 -0
  485. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/adapters/warpx.py +0 -0
  486. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/autonomous_research.py +0 -0
  487. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/benchmarks/__init__.py +0 -0
  488. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/benchmarks/electrostatic_pic.py +0 -0
  489. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/benchmarks/kinetic_sufficiency.py +0 -0
  490. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/campaign.py +0 -0
  491. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/campaign_jobs.py +0 -0
  492. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/confirmation.py +0 -0
  493. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/control.py +0 -0
  494. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/corrective_audit.py +0 -0
  495. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/deployment.py +0 -0
  496. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/discovery.py +0 -0
  497. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/domains/__init__.py +0 -0
  498. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/domains/base.py +0 -0
  499. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/domains/kinetic_sufficiency.py +0 -0
  500. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/kernel_worker.py +0 -0
  501. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/ledger.py +0 -0
  502. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/lifecycle.py +0 -0
  503. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/literature.py +0 -0
  504. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/llm.py +0 -0
  505. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/models.py +0 -0
  506. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/mvp_control.py +0 -0
  507. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/mvp_guidance.py +0 -0
  508. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/mvp_skills.py +0 -0
  509. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/oneshot.py +0 -0
  510. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/orchestration.py +0 -0
  511. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/outbox.py +0 -0
  512. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/parameters.py +0 -0
  513. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/presentation.py +0 -0
  514. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/proposals.py +0 -0
  515. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/research_tools.py +0 -0
  516. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/schema_export.py +0 -0
  517. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/search.py +0 -0
  518. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/semantics.py +0 -0
  519. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/tui/__init__.py +0 -0
  520. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/tui/app.py +0 -0
  521. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/tui/claim_views.py +0 -0
  522. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/warpx_analysis.py +0 -0
  523. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/warpx_campaign.py +0 -0
  524. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/warpx_confirmation.py +0 -0
  525. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/web/__init__.py +0 -0
  526. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/web/server.py +0 -0
  527. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/web/static/markdown.js +0 -0
  528. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/web/static/vendor/LICENSE.dagre.txt +0 -0
  529. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/web/static/vendor/LICENSE.dompurify.txt +0 -0
  530. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/web/static/vendor/LICENSE.katex.txt +0 -0
  531. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/web/static/vendor/LICENSE.marked.txt +0 -0
  532. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/web/static/vendor/README.md +0 -0
  533. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/web/static/vendor/dagre-2.0.0.min.js +0 -0
  534. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/web/static/vendor/dompurify-3.4.14.min.js +0 -0
  535. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/web/static/vendor/katex-0.18.4.min.js +0 -0
  536. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/web/static/vendor/katex-auto-render-0.18.4.min.js +0 -0
  537. {simjecture-0.3.2 → simjecture-0.5.0}/src/conjecture_solver/web/static/vendor/marked-18.0.10.umd.js +0 -0
  538. {simjecture-0.3.2 → simjecture-0.5.0}/tests/__init__.py +0 -0
  539. {simjecture-0.3.2 → simjecture-0.5.0}/tests/fixtures/fake_warpx_runner.py +0 -0
  540. {simjecture-0.3.2 → simjecture-0.5.0}/tests/test_adapter.py +0 -0
  541. {simjecture-0.3.2 → simjecture-0.5.0}/tests/test_autonomous_research.py +0 -0
  542. {simjecture-0.3.2 → simjecture-0.5.0}/tests/test_benchmark.py +0 -0
  543. {simjecture-0.3.2 → simjecture-0.5.0}/tests/test_campaign.py +0 -0
  544. {simjecture-0.3.2 → simjecture-0.5.0}/tests/test_campaign_jobs.py +0 -0
  545. {simjecture-0.3.2 → simjecture-0.5.0}/tests/test_control.py +0 -0
  546. {simjecture-0.3.2 → simjecture-0.5.0}/tests/test_corrective_audit.py +0 -0
  547. {simjecture-0.3.2 → simjecture-0.5.0}/tests/test_deployment.py +0 -0
  548. {simjecture-0.3.2 → simjecture-0.5.0}/tests/test_domain_plugins.py +0 -0
  549. {simjecture-0.3.2 → simjecture-0.5.0}/tests/test_ledger.py +0 -0
  550. {simjecture-0.3.2 → simjecture-0.5.0}/tests/test_lifecycle.py +0 -0
  551. {simjecture-0.3.2 → simjecture-0.5.0}/tests/test_literature.py +0 -0
  552. {simjecture-0.3.2 → simjecture-0.5.0}/tests/test_llm.py +0 -0
  553. {simjecture-0.3.2 → simjecture-0.5.0}/tests/test_models.py +0 -0
  554. {simjecture-0.3.2 → simjecture-0.5.0}/tests/test_mvp_claims.py +0 -0
  555. {simjecture-0.3.2 → simjecture-0.5.0}/tests/test_mvp_control.py +0 -0
  556. {simjecture-0.3.2 → simjecture-0.5.0}/tests/test_mvp_monitor.py +0 -0
  557. {simjecture-0.3.2 → simjecture-0.5.0}/tests/test_mvp_pause.py +0 -0
  558. {simjecture-0.3.2 → simjecture-0.5.0}/tests/test_mvp_status_watch.py +0 -0
  559. {simjecture-0.3.2 → simjecture-0.5.0}/tests/test_oneshot.py +0 -0
  560. {simjecture-0.3.2 → simjecture-0.5.0}/tests/test_orchestration.py +0 -0
  561. {simjecture-0.3.2 → simjecture-0.5.0}/tests/test_outbox.py +0 -0
  562. {simjecture-0.3.2 → simjecture-0.5.0}/tests/test_parameters.py +0 -0
  563. {simjecture-0.3.2 → simjecture-0.5.0}/tests/test_pic.py +0 -0
  564. {simjecture-0.3.2 → simjecture-0.5.0}/tests/test_proposals.py +0 -0
  565. {simjecture-0.3.2 → simjecture-0.5.0}/tests/test_recorded_demo.py +0 -0
  566. {simjecture-0.3.2 → simjecture-0.5.0}/tests/test_role_assignments.py +0 -0
  567. {simjecture-0.3.2 → simjecture-0.5.0}/tests/test_schema_export.py +0 -0
  568. {simjecture-0.3.2 → simjecture-0.5.0}/tests/test_search.py +0 -0
  569. {simjecture-0.3.2 → simjecture-0.5.0}/tests/test_semantics.py +0 -0
  570. {simjecture-0.3.2 → simjecture-0.5.0}/tests/test_tui_claim_views.py +0 -0
  571. {simjecture-0.3.2 → simjecture-0.5.0}/tests/test_warpx.py +0 -0
  572. {simjecture-0.3.2 → simjecture-0.5.0}/tests/test_warpx_analysis.py +0 -0
  573. {simjecture-0.3.2 → simjecture-0.5.0}/tests/test_warpx_campaign.py +0 -0
  574. {simjecture-0.3.2 → simjecture-0.5.0}/tests/test_warpx_openpmd_xz.py +0 -0
  575. {simjecture-0.3.2 → simjecture-0.5.0}/tests/test_warpx_qualification.py +0 -0
  576. {simjecture-0.3.2 → simjecture-0.5.0}/tests/test_warpx_reduced_energy.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
@@ -21,3 +21,5 @@ artifacts/
21
21
  !demos/agent_roles_validation/record/workspace/artifacts/*.json
22
22
  data/
23
23
  .private/
24
+
25
+ integrations/dsh/node_modules/
@@ -4,6 +4,46 @@ This project follows semantic versioning. Dates use ISO 8601.
4
4
 
5
5
  ## Unreleased
6
6
 
7
+ ## 0.5.0 — 2026-09-21
8
+
9
+ - Default new native-agent studies to minimal, with structured and frontier
10
+ selectable in the CLI, browser and TUI. Mode and backend are separate choices;
11
+ DSH/API remain explicitly labelled legacy routes. Existing records retain their mode.
12
+ - Preserve active counterexample search, minimal-change repair rationale,
13
+ branching hypothesis ancestry and fresh prospective validation in the smaller service.
14
+ - Add live terminal activity, job/review counts and remaining budget; project
15
+ minimal evidence and hypothesis trees into the browser and terminal interface.
16
+ - Preserve deadlines across pause/resume, surface provider failures as resumable
17
+ states, and verify numerical-worker identity before cancellation.
18
+ - Make the launch package usable with native agent logins without installing DSH;
19
+ retain an optional `setup.sh --with-dsh` path.
20
+ - Retain measured limitations: simple-task follow-ups completed faster but used
21
+ more tokens; the previous hard FLASH trial did not establish superiority to a plain agent.
22
+
23
+ ## 0.4.0 — 2026-09-20
24
+
25
+ - Updated the bundled DSH integration to the tested `0.1.5-rc.2` runtime,
26
+ including current session, tool-call, prompt and structured-output APIs.
27
+ The Python release and DSH bundle now share version `0.4.0`.
28
+ - Enabled native web search, page retrieval, shell, filesystem, skills,
29
+ workflows and configured plugins for research agents. Scientific calls retain
30
+ role restrictions; independent judges retain their frozen-case isolation.
31
+ - Separated the native research workspace from authoritative campaign files.
32
+ Upgrades start a fresh `.research-v1` conversation, reconcile existing kernel
33
+ state, and preserve older conversations. Built-in DSH file/shell policies
34
+ protect records; arbitrary installed plugins remain trusted process code.
35
+ - Added `read_workspace_image` for bounded PNG, JPEG and WebP image inspection
36
+ through MCP, with dimensions and content hashes. Inspection is not evidence
37
+ acceptance and requires a vision-capable model.
38
+ - Extended the Simote scientific tool catalog for image reads. Matching Simote
39
+ changes add AGY workers and judges; Simote remains a separate optional app.
40
+ - Added real-runtime DSH tests for role isolation, context pruning, V2/V3 log
41
+ migration, durable-job recovery and complete CLI/MCP pause/resume behavior.
42
+ - Verified native search, fetch, file writing and image inspection with real
43
+ DeepSeek API calls on non-simulation research tasks.
44
+ - Added a Linux launch bundle containing the wheel, source distribution,
45
+ matching DSH profile, setup/launch scripts and SHA-256 checksums.
46
+
7
47
  ## 0.3.2 — 2026-09-09
8
48
 
9
49
  - 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.3.2
6
- date-released: 2026-09-09
5
+ version: 0.5.0
6
+ date-released: 2026-09-21
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.2
3
+ Version: 0.5.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,9 +50,9 @@ 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.3 extends the infrastructure with a
53
- > license-safe FLASH resistive-MHD capability and an explicitly bounded
54
- > island-coalescence audit. It does not claim to solve arbitrary
53
+ > **Research preview:** version 0.5 defaults native-agent studies to minimal mode,
54
+ > adds live terminal progress and shared browser/TUI mode selection, and retains
55
+ > the license-safe FLASH capability and bounded scientific audits. It does not claim to solve arbitrary
55
56
  > scientific prose, establish truth about nature from one simulator, or replace
56
57
  > independent scientific review.
57
58
 
@@ -62,6 +63,23 @@ that have a sharp question and a checkable instrument. The 0.3 preview records
62
63
  both the origin domain and that generalization, and adds a fluid-MHD campaign
63
64
  whose unresolved repair state is preserved rather than hidden.
64
65
 
66
+ ## Start an agent-owned study
67
+
68
+ New native-agent studies default to **minimal**: the agent chooses its approach,
69
+ while Simjecture preserves evidence, counterexamples and hypothesis ancestry.
70
+
71
+ ```bash
72
+ simjecture study --campaign ./runs/my-study \
73
+ --hypothesis-file hypothesis.txt --instructions-file instructions.md \
74
+ --backend codex-glm --model glm-5.3 --wall-seconds 3600
75
+ ```
76
+
77
+ Use `--mode structured` or `--mode frontier` to select another workflow. Resuming
78
+ keeps the recorded mode and deadline. See [minimal-mode usage](docs/how-to/research-service.md)
79
+ for the scientific rules, backend choices and explicit legacy DSH/API routes.
80
+ The measured hard-task benchmark does not establish a completion advantage over
81
+ a plain agent; this default reflects the preferred agent-owned design.
82
+
65
83
  ## The core idea: AI low-hanging fruit
66
84
 
67
85
  Scientific problems are not uniformly difficult. A candidate may be buried in
@@ -289,11 +307,11 @@ the human-first projection.
289
307
 
290
308
  ## DeepSeek Harness integration
291
309
 
292
- The v0.2.2 integration moves the model-facing research loop to DeepSeek Harness
310
+ The v0.4.0 integration moves the model-facing research loop to DeepSeek Harness
293
311
  without moving scientific authority out of Simjecture. DSH owns the provider,
294
312
  conversation, retry policy, compaction, and resumable session. A native MCP
295
- boundary implements 22 typed endpoints. A compact persistent Lead Scientist
296
- sees seven coordination tools and delegates claim work to fresh, scoped
313
+ boundary implements 23 typed endpoints. A compact persistent Lead Scientist
314
+ sees eight scientific coordination/inspection tools plus native research tools and delegates claim work to fresh, scoped
297
315
  Falsifier/Experimenter, Blocker Resolver, and Repair Scientist sessions. A separate fresh,
298
316
  tool-free Judge reviews surviving claims. The Python campaign kernel continues to own hypotheses,
299
317
  evidence contracts, commissioning, skills, simulation capabilities, sandboxing,
@@ -13,9 +13,9 @@ 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.3 extends the infrastructure with a
17
- > license-safe FLASH resistive-MHD capability and an explicitly bounded
18
- > island-coalescence audit. It does not claim to solve arbitrary
16
+ > **Research preview:** version 0.5 defaults native-agent studies to minimal mode,
17
+ > adds live terminal progress and shared browser/TUI mode selection, and retains
18
+ > the license-safe FLASH capability and bounded scientific audits. It does not claim to solve arbitrary
19
19
  > scientific prose, establish truth about nature from one simulator, or replace
20
20
  > independent scientific review.
21
21
 
@@ -26,6 +26,23 @@ that have a sharp question and a checkable instrument. The 0.3 preview records
26
26
  both the origin domain and that generalization, and adds a fluid-MHD campaign
27
27
  whose unresolved repair state is preserved rather than hidden.
28
28
 
29
+ ## Start an agent-owned study
30
+
31
+ New native-agent studies default to **minimal**: the agent chooses its approach,
32
+ while Simjecture preserves evidence, counterexamples and hypothesis ancestry.
33
+
34
+ ```bash
35
+ simjecture study --campaign ./runs/my-study \
36
+ --hypothesis-file hypothesis.txt --instructions-file instructions.md \
37
+ --backend codex-glm --model glm-5.3 --wall-seconds 3600
38
+ ```
39
+
40
+ Use `--mode structured` or `--mode frontier` to select another workflow. Resuming
41
+ keeps the recorded mode and deadline. See [minimal-mode usage](docs/how-to/research-service.md)
42
+ for the scientific rules, backend choices and explicit legacy DSH/API routes.
43
+ The measured hard-task benchmark does not establish a completion advantage over
44
+ a plain agent; this default reflects the preferred agent-owned design.
45
+
29
46
  ## The core idea: AI low-hanging fruit
30
47
 
31
48
  Scientific problems are not uniformly difficult. A candidate may be buried in
@@ -253,11 +270,11 @@ the human-first projection.
253
270
 
254
271
  ## DeepSeek Harness integration
255
272
 
256
- The v0.2.2 integration moves the model-facing research loop to DeepSeek Harness
273
+ The v0.4.0 integration moves the model-facing research loop to DeepSeek Harness
257
274
  without moving scientific authority out of Simjecture. DSH owns the provider,
258
275
  conversation, retry policy, compaction, and resumable session. A native MCP
259
- boundary implements 22 typed endpoints. A compact persistent Lead Scientist
260
- sees seven coordination tools and delegates claim work to fresh, scoped
276
+ boundary implements 23 typed endpoints. A compact persistent Lead Scientist
277
+ sees eight scientific coordination/inspection tools plus native research tools and delegates claim work to fresh, scoped
261
278
  Falsifier/Experimenter, Blocker Resolver, and Repair Scientist sessions. A separate fresh,
262
279
  tool-free Judge reviews surviving claims. The Python campaign kernel continues to own hypotheses,
263
280
  evidence contracts, commissioning, skills, simulation capabilities, sandboxing,
@@ -3,7 +3,7 @@ from __future__ import annotations
3
3
  project = "Simjecture"
4
4
  author = "Bowen Zhu"
5
5
  copyright = "2026, Bowen Zhu and contributors"
6
- release = "0.3.0"
6
+ release = "0.5.0"
7
7
 
8
8
  extensions = [
9
9
  "myst_parser",
@@ -0,0 +1,68 @@
1
+ # First autonomous run
2
+
3
+ To explore the interface before supplying an API key, replay the committed
4
+ Gray–Scott record. This is read-only and starts neither a model call nor a
5
+ simulation:
6
+
7
+ ```bash
8
+ uv sync --frozen
9
+ uv run python demos/gray_scott_counterexample/verify_record.py
10
+ uv run simjecture web demos/gray_scott_counterexample/record --read-only
11
+ ```
12
+
13
+ See [Recorded Gray–Scott demo](../demos/gray-scott.md) for the scientific result
14
+ and the boundaries of that record.
15
+
16
+ To start a new study, install and log in to a supported native agent CLI
17
+ (Codex GLM, Codex, Grok or AGY), then open the browser:
18
+
19
+ ```bash
20
+ uv run simjecture web
21
+ ```
22
+
23
+ In **New hypothesis**, choose mode, backend and model separately. **Minimal** is
24
+ the default. It keeps the agent's native tools and planning freedom while recording
25
+ experiments, counterexample searches, hypothesis repairs and independent reviews.
26
+ Structured and frontier modes remain selectable. DSH and direct API routes are
27
+ explicit legacy choices and require their separate provider configuration.
28
+
29
+ For a terminal run, write a bounded statement in `hypothesis.txt` and its test
30
+ scope, resource constraints and acceptance criteria in `instructions.md`:
31
+
32
+ ```bash
33
+ uv run simjecture study --campaign artifacts/first-study \
34
+ --hypothesis-file hypothesis.txt --instructions-file instructions.md \
35
+ --backend codex-glm --model glm-5.3 --wall-seconds 3600
36
+ ```
37
+
38
+ The terminal shows current activity, elapsed/remaining time and experiment/review
39
+ counts. Use `--quiet` to suppress progress. Select `--mode structured` or
40
+ `--mode frontier` when starting a new directory. Existing mode, backend and wall
41
+ deadline are retained on resume.
42
+
43
+ Minimal records include `research.json`, immutable experiment snapshots,
44
+ prospective repair commitments, independent review receipts and a final
45
+ `research_report.json`. A clean agent exit is only a checkpoint. A supported root
46
+ or an accepted falsification followed by a supported repair completes the study;
47
+ uncertainty stays unresolved. Numerical convergence and physical validity remain
48
+ scientific obligations. See [minimal research](../how-to/research-service.md).
49
+
50
+ Inspect or control the same directory:
51
+
52
+ ```bash
53
+ uv run simjecture status artifacts/first-study
54
+ uv run simjecture watch artifacts/first-study
55
+ uv run simjecture web artifacts/first-study
56
+ uv run simjecture pause artifacts/first-study
57
+ uv run simjecture resume artifacts/first-study
58
+ ```
59
+
60
+ Pause stops the native agent at the supervisor boundary. Already recorded jobs
61
+ may finish within their existing limits; the wall deadline continues. Cancel or
62
+ deadline exhaustion terminates active recorded jobs. A provider outage pauses
63
+ with the evidence intact rather than inventing a scientific conclusion.
64
+
65
+ The optional [Terminal interface](terminal-ui.md) offers the same mode/backend
66
+ selection and a dashboard for SSH and headless machines. The legacy `simjecture
67
+ mvp` and [DSH](../how-to/deepseek-harness.md) entry points remain available; their
68
+ workbench/commissioning contracts are unchanged.
@@ -17,7 +17,15 @@ uv run simjecture install core
17
17
  uv run simjecture doctor --profile core
18
18
  ```
19
19
 
20
- ## Model credentials
20
+ ## Native agent login
21
+
22
+ New studies default to minimal mode. Install and log in with Codex GLM, Codex,
23
+ Grok or AGY independently, then choose that backend and model in the launcher.
24
+ Simjecture does not redistribute those CLIs or subscriptions. Native tools remain
25
+ available; numerical execution still uses the Bubblewrap sandbox. No DeepSeek
26
+ API key or DSH install is required for native-agent studies.
27
+
28
+ ## Legacy API credentials
21
29
 
22
30
  Credentials are process-local harness inputs. They are never mounted into the
23
31
  agent workspace.
@@ -2,10 +2,18 @@
2
2
 
3
3
  The local web interface is the primary human-facing view of a Simjecture
4
4
  campaign. It makes the scientific structure visible without replacing the
5
- durable record. `mvp_manifest.json`, `transcript.jsonl`,
5
+ durable record. New native studies default to minimal; mode, backend and model
6
+ are separate launch choices. Minimal reads `research.json`, experiment snapshots,
7
+ commitments and reviews. Legacy `mvp_manifest.json`, `transcript.jsonl`,
6
8
  `hypothesis_ledger.json`, `mvp_report.json`, and artifact provenance remain the
7
9
  sources of truth.
8
10
 
11
+ Minimal studies show actual agent activity instead of the fixed-stage role strip.
12
+ The header shows mode/backend/model and remaining budget. Long guidance and review
13
+ rationales fold away, with failed reviews expanded. Usage is pending/unavailable
14
+ when the backend has not supplied counters, never assumed to be zero. DSH/API
15
+ remain explicitly labelled legacy routes; incompatible combinations are disabled.
16
+
9
17
  ## Open a recorded campaign
10
18
 
11
19
  The browser interface is included in the core installation and has no Node.js
@@ -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.2.2 uses a persistent Lead Scientist
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
- The Python MCP process is the only scientific tool surface: it exposes campaign
8
- state, claims, evidence contracts, skills, literature metadata, workspace files,
9
- and bounded jobs. Generic shell, filesystem bypass, and unguarded `finish` tools are
10
- disabled by the profile wherever the host DSH version supports disabling them.
11
- The profile also sets DSH's approval policy to `never`: all remaining scientific
12
- side effects already cross the typed CampaignKernel policy and Bubblewrap
13
- boundary, so no second routine permission loop is inserted around MCP calls.
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.1-rc.2
63
- dsh plugin --profile simjecture add /tmp/simjecture-dsh-bundle-0.2.2.tgz
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`. Keep the lockfile produced by `npm pack`/the DSH plugin manager
75
- with the deployment artifact; do not silently widen either range.
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.1-rc.2` requires Node.js `^22.19.0` or `>=24.0.0`. Install the DSH CLI
78
- according to its upstream instructions and verify that `dsh` is on `PATH`
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
- generic tool rows are disabled. A startup or handshake failure should stop the
95
- scientific profile rather than silently fall back to a bypass tool.
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
- 22 explicit MCP endpoints before submitting work. The persistent lead sees seven
142
- tools: two durable reads, fresh falsification, blocker resolution, and repair
143
- delegation, independent adjudication, and guarded finalization. Each worker receives a narrower tool
144
- surface plus a claim-scoped argument guard. Raw judge prepare/commit operations
145
- are private to the adjudication composite.
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.