simjecture 0.2.2__tar.gz → 0.3.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (483) hide show
  1. {simjecture-0.2.2 → simjecture-0.3.1}/.gitignore +1 -0
  2. {simjecture-0.2.2 → simjecture-0.3.1}/CHANGELOG.md +20 -0
  3. {simjecture-0.2.2 → simjecture-0.3.1}/CITATION.cff +2 -2
  4. {simjecture-0.2.2 → simjecture-0.3.1}/PKG-INFO +59 -11
  5. {simjecture-0.2.2 → simjecture-0.3.1}/README.md +56 -10
  6. simjecture-0.3.1/THIRD_PARTY_NOTICES.md +31 -0
  7. simjecture-0.3.1/capabilities/atomec-1.4.0.json +28 -0
  8. simjecture-0.3.1/capabilities/flash-island-coalescence-resistive-mhd-4.8.json +42 -0
  9. simjecture-0.3.1/capabilities/m-aneos-1.0.json +34 -0
  10. simjecture-0.3.1/capabilities/optab-1.3.1.json +41 -0
  11. simjecture-0.3.1/capabilities/singularity-eos-1.12.1.json +29 -0
  12. {simjecture-0.2.2 → simjecture-0.3.1}/demos/README.md +10 -2
  13. simjecture-0.3.1/demos/resistive_mhd_island_coalescence/.gitignore +1 -0
  14. simjecture-0.3.1/demos/resistive_mhd_island_coalescence/README.md +197 -0
  15. simjecture-0.3.1/demos/resistive_mhd_island_coalescence/campaign_audit.json +64 -0
  16. simjecture-0.3.1/demos/resistive_mhd_island_coalescence/campaign_instruction.txt +5 -0
  17. simjecture-0.3.1/demos/resistive_mhd_island_coalescence/figures/README.md +20 -0
  18. simjecture-0.3.1/demos/resistive_mhd_island_coalescence/figures/island_coalescence_evolution.png +0 -0
  19. simjecture-0.3.1/demos/resistive_mhd_island_coalescence/figures/reconnection_layer_physics.png +0 -0
  20. simjecture-0.3.1/demos/resistive_mhd_island_coalescence/figures/reconnection_microphysics_profiles.png +0 -0
  21. simjecture-0.3.1/demos/resistive_mhd_island_coalescence/figures/scaling_law_discovery.png +0 -0
  22. simjecture-0.3.1/demos/resistive_mhd_island_coalescence/figures/simjecture_web_dashboard.png +0 -0
  23. simjecture-0.3.1/demos/resistive_mhd_island_coalescence/guided/anchor_validation.json +270 -0
  24. simjecture-0.3.1/demos/resistive_mhd_island_coalescence/guided/island_coalescence.py +412 -0
  25. simjecture-0.3.1/demos/resistive_mhd_island_coalescence/guided/operator_validation.json +36 -0
  26. simjecture-0.3.1/demos/resistive_mhd_island_coalescence/guided_commission.json +49 -0
  27. simjecture-0.3.1/demos/resistive_mhd_island_coalescence/hypothesis.txt +1 -0
  28. simjecture-0.3.1/demos/resistive_mhd_island_coalescence/literature_basis.md +39 -0
  29. simjecture-0.3.1/demos/resistive_mhd_island_coalescence/plot_results.py +490 -0
  30. {simjecture-0.2.2 → simjecture-0.3.1}/docs/concepts/architecture.md +23 -6
  31. {simjecture-0.2.2 → simjecture-0.3.1}/docs/concepts/evidence-and-claims.md +38 -8
  32. {simjecture-0.2.2 → simjecture-0.3.1}/docs/conf.py +1 -1
  33. {simjecture-0.2.2 → simjecture-0.3.1}/docs/getting-started/installation.md +42 -3
  34. {simjecture-0.2.2 → simjecture-0.3.1}/docs/how-to/add-a-capability.md +6 -0
  35. {simjecture-0.2.2 → simjecture-0.3.1}/docs/how-to/deepseek-harness.md +21 -8
  36. simjecture-0.3.1/docs/how-to/deploy-runtimes.md +153 -0
  37. {simjecture-0.2.2 → simjecture-0.3.1}/docs/how-to/guided-commissioning.md +7 -0
  38. {simjecture-0.2.2 → simjecture-0.3.1}/docs/index.md +2 -1
  39. {simjecture-0.2.2 → simjecture-0.3.1}/docs/reference/repository-map.md +1 -1
  40. {simjecture-0.2.2 → simjecture-0.3.1}/integrations/dsh/README.md +1 -1
  41. {simjecture-0.2.2 → simjecture-0.3.1}/integrations/dsh/adjudicator.js +79 -14
  42. {simjecture-0.2.2 → simjecture-0.3.1}/integrations/dsh/cordis.patch.yml +16 -4
  43. {simjecture-0.2.2 → simjecture-0.3.1}/integrations/dsh/job-waiter.js +42 -3
  44. {simjecture-0.2.2 → simjecture-0.3.1}/integrations/dsh/roles.js +525 -60
  45. {simjecture-0.2.2 → simjecture-0.3.1}/integrations/dsh/runner.js +15 -4
  46. {simjecture-0.2.2 → simjecture-0.3.1}/pyproject.toml +4 -1
  47. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/MVPGuidedCommissioningSpec.schema.json +12 -0
  48. simjecture-0.3.1/skills/eos/SKILL.md +136 -0
  49. simjecture-0.3.1/skills/eos/agents/openai.yaml +4 -0
  50. simjecture-0.3.1/skills/eos/examples/atomec_runtime_smoke.py +82 -0
  51. simjecture-0.3.1/skills/eos/examples/maneos_runtime_smoke.py +106 -0
  52. simjecture-0.3.1/skills/eos/examples/singularity_runtime_smoke.py +128 -0
  53. simjecture-0.3.1/skills/eos/manifest.json +12 -0
  54. simjecture-0.3.1/skills/eos/references/execution-output.md +88 -0
  55. simjecture-0.3.1/skills/eos/references/local-deployment.md +78 -0
  56. simjecture-0.3.1/skills/eos/scripts/bootstrap_atomec.sh +90 -0
  57. simjecture-0.3.1/skills/eos/scripts/bootstrap_maneos.sh +105 -0
  58. simjecture-0.3.1/skills/eos/scripts/bootstrap_singularity_eos.sh +102 -0
  59. simjecture-0.3.1/skills/eos/scripts/maneos_query.f90 +63 -0
  60. simjecture-0.3.1/skills/eos/scripts/singularity_query.cpp +88 -0
  61. simjecture-0.3.1/skills/flash-mhd/SKILL.md +91 -0
  62. simjecture-0.3.1/skills/flash-mhd/agents/openai.yaml +4 -0
  63. simjecture-0.3.1/skills/flash-mhd/examples/runtime_smoke.py +214 -0
  64. simjecture-0.3.1/skills/flash-mhd/manifest.json +10 -0
  65. simjecture-0.3.1/skills/flash-mhd/references/execution-output.md +82 -0
  66. simjecture-0.3.1/skills/flash-mhd/references/local-deployment.md +71 -0
  67. simjecture-0.3.1/skills/flash-mhd/references/model-validity.md +63 -0
  68. simjecture-0.3.1/skills/flash-mhd/references/private-install.md +101 -0
  69. simjecture-0.3.1/skills/flash-mhd/scripts/bootstrap_flash.sh +149 -0
  70. simjecture-0.3.1/skills/opacity/SKILL.md +107 -0
  71. simjecture-0.3.1/skills/opacity/agents/openai.yaml +4 -0
  72. simjecture-0.3.1/skills/opacity/examples/optab_runtime_smoke.py +168 -0
  73. simjecture-0.3.1/skills/opacity/manifest.json +10 -0
  74. simjecture-0.3.1/skills/opacity/references/execution-output.md +52 -0
  75. simjecture-0.3.1/skills/opacity/references/local-deployment.md +58 -0
  76. simjecture-0.3.1/skills/opacity/scripts/bootstrap_optab.sh +187 -0
  77. simjecture-0.3.1/skills/opacity/scripts/write_optab_preflight.py +87 -0
  78. {simjecture-0.2.2 → simjecture-0.3.1}/skills/warpx/SKILL.md +9 -0
  79. simjecture-0.3.1/skills/warpx/examples/openpmd_xz_reader.py +288 -0
  80. {simjecture-0.2.2 → simjecture-0.3.1}/skills/warpx/manifest.json +1 -1
  81. {simjecture-0.2.2 → simjecture-0.3.1}/skills/warpx/references/diagnostics.md +58 -0
  82. simjecture-0.3.1/skills/warpx/references/hybrid-pic.md +117 -0
  83. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/__init__.py +1 -1
  84. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/campaign_kernel.py +733 -116
  85. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/cli.py +61 -6
  86. simjecture-0.3.1/src/conjecture_solver/corrective_audit.py +145 -0
  87. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/deployment.py +410 -35
  88. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/kernel_worker.py +2 -2
  89. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/mcp_schemas.py +130 -23
  90. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/mcp_server.py +782 -47
  91. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/mvp_agent.py +1329 -265
  92. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/mvp_claims.py +324 -145
  93. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/mvp_guidance.py +13 -2
  94. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/mvp_launch.py +78 -12
  95. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/mvp_monitor.py +167 -59
  96. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/mvp_skills.py +59 -4
  97. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/tui/screens.py +15 -2
  98. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/web/application.py +1 -0
  99. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/web/static/app.js +23 -4
  100. {simjecture-0.2.2 → simjecture-0.3.1}/tests/test_campaign_jobs.py +57 -0
  101. {simjecture-0.2.2 → simjecture-0.3.1}/tests/test_campaign_kernel.py +542 -24
  102. simjecture-0.3.1/tests/test_corrective_audit.py +87 -0
  103. {simjecture-0.2.2 → simjecture-0.3.1}/tests/test_deployment.py +238 -1
  104. {simjecture-0.2.2 → simjecture-0.3.1}/tests/test_dsh_bundle.py +72 -2
  105. simjecture-0.3.1/tests/test_mcp_server.py +1321 -0
  106. {simjecture-0.2.2 → simjecture-0.3.1}/tests/test_mvp_agent.py +1237 -147
  107. simjecture-0.3.1/tests/test_mvp_claims.py +484 -0
  108. {simjecture-0.2.2 → simjecture-0.3.1}/tests/test_mvp_monitor.py +171 -6
  109. simjecture-0.3.1/tests/test_warpx_openpmd_xz.py +111 -0
  110. {simjecture-0.2.2 → simjecture-0.3.1}/tests/test_web.py +4 -2
  111. {simjecture-0.2.2 → simjecture-0.3.1}/uv.lock +58 -2
  112. simjecture-0.2.2/THIRD_PARTY_NOTICES.md +0 -16
  113. simjecture-0.2.2/docs/how-to/deploy-runtimes.md +0 -73
  114. simjecture-0.2.2/tests/test_mcp_server.py +0 -624
  115. simjecture-0.2.2/tests/test_mvp_claims.py +0 -83
  116. {simjecture-0.2.2 → simjecture-0.3.1}/.env.example +0 -0
  117. {simjecture-0.2.2 → simjecture-0.3.1}/.gitattributes +0 -0
  118. {simjecture-0.2.2 → simjecture-0.3.1}/.github/workflows/ci.yml +0 -0
  119. {simjecture-0.2.2 → simjecture-0.3.1}/.github/workflows/release.yml +0 -0
  120. {simjecture-0.2.2 → simjecture-0.3.1}/.readthedocs.yaml +0 -0
  121. {simjecture-0.2.2 → simjecture-0.3.1}/CONTRIBUTING.md +0 -0
  122. {simjecture-0.2.2 → simjecture-0.3.1}/LICENSE +0 -0
  123. {simjecture-0.2.2 → simjecture-0.3.1}/NOTICE +0 -0
  124. {simjecture-0.2.2 → simjecture-0.3.1}/SECURITY.md +0 -0
  125. {simjecture-0.2.2 → simjecture-0.3.1}/capabilities/warpx-cpu-26.07.json +0 -0
  126. {simjecture-0.2.2 → simjecture-0.3.1}/capabilities/warpx-cuda-openpmd-26.07.json +0 -0
  127. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/README.md +0 -0
  128. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/campaign_instruction.txt +0 -0
  129. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/guided/anchor_operator_validation.json +0 -0
  130. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/guided/gem_anchor_validation.json +0 -0
  131. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/guided/gem_collisionless.py +0 -0
  132. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/guided/prior_campaign_0002_audit_summary.json +0 -0
  133. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/guided/prior_campaign_0003_audit_summary.json +0 -0
  134. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/guided/prior_campaign_audit_summary.json +0 -0
  135. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/guided_commission.json +0 -0
  136. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/hypothesis.txt +0 -0
  137. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/plot_results.py +0 -0
  138. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/artifact_provenance.json +0 -0
  139. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/claim_summary.md +0 -0
  140. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/guided_commissioning.json +0 -0
  141. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/hypothesis_ledger.json +0 -0
  142. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/literature_searches.json +0 -0
  143. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/mvp_manifest.json +0 -0
  144. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/mvp_report.json +0 -0
  145. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/transcript.jsonl +0 -0
  146. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000012.py +0 -0
  147. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000013.py +0 -0
  148. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000019.py +0 -0
  149. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000020.py +0 -0
  150. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000026.py +0 -0
  151. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000027.py +0 -0
  152. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000032.py +0 -0
  153. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000033.py +0 -0
  154. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000037.py +0 -0
  155. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000041.py +0 -0
  156. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000042.py +0 -0
  157. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000043.py +0 -0
  158. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000049.py +0 -0
  159. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/workspace/analyze_ensemble.py +0 -0
  160. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/workspace/campaign/analyze_manifest.json +0 -0
  161. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/workspace/campaign/commission_summary.json +0 -0
  162. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/workspace/campaign/ensemble_result.json +0 -0
  163. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/workspace/campaign/run_p16_t1_s20260902/diagnostic_overview.svg +0 -0
  164. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/workspace/campaign/run_p16_t1_s20260902/final_fields.npz +0 -0
  165. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/workspace/campaign/run_p16_t1_s20260902/warpx_used_inputs +0 -0
  166. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/workspace/campaign/run_p16_t20_s20260902/diagnostic_overview.svg +0 -0
  167. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/workspace/campaign/run_p16_t20_s20260902/final_fields.npz +0 -0
  168. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/workspace/campaign/run_p16_t20_s20260902/warpx_used_inputs +0 -0
  169. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/workspace/campaign/summaries/p16_t1_s20260902_summary.json +0 -0
  170. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/workspace/campaign/summaries/p16_t1_s20260903_summary.json +0 -0
  171. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/workspace/campaign/summaries/p16_t1_s20260904_summary.json +0 -0
  172. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/workspace/campaign/summaries/p16_t20_s20260902_summary.json +0 -0
  173. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/workspace/campaign/summaries/p16_t20_s20260903_summary.json +0 -0
  174. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/workspace/campaign/summaries/p16_t20_s20260904_summary.json +0 -0
  175. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/workspace/campaign/summaries/p8_t1_s20260902_summary.json +0 -0
  176. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/workspace/campaign/summaries/p8_t1_s20260903_summary.json +0 -0
  177. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/workspace/campaign/summaries/p8_t1_s20260904_summary.json +0 -0
  178. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/workspace/campaign/summaries/p8_t20_s20260902_summary.json +0 -0
  179. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/workspace/campaign/summaries/p8_t20_s20260903_summary.json +0 -0
  180. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/workspace/campaign/summaries/p8_t20_s20260904_summary.json +0 -0
  181. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/workspace/design_pin.json +0 -0
  182. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/workspace/energy_reader.py +0 -0
  183. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/workspace/fallback_solver_plan.json +0 -0
  184. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/workspace/fixtures/commission_manifest.json +0 -0
  185. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/workspace/fixtures/commission_output.json +0 -0
  186. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/workspace/fixtures/commission_output_wb.json +0 -0
  187. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/workspace/fixtures/inp/p16_t1_s20260902_summary.json +0 -0
  188. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/workspace/fixtures/inp/p16_t1_s20260903_summary.json +0 -0
  189. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/workspace/fixtures/inp/p16_t1_s20260904_summary.json +0 -0
  190. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/workspace/fixtures/inp/p16_t20_s20260902_summary.json +0 -0
  191. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/workspace/fixtures/inp/p16_t20_s20260903_summary.json +0 -0
  192. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/workspace/fixtures/inp/p16_t20_s20260904_summary.json +0 -0
  193. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/workspace/fixtures/inp/p8_t1_s20260902_summary.json +0 -0
  194. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/workspace/fixtures/inp/p8_t1_s20260903_summary.json +0 -0
  195. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/workspace/fixtures/inp/p8_t1_s20260904_summary.json +0 -0
  196. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/workspace/fixtures/inp/p8_t20_s20260902_summary.json +0 -0
  197. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/workspace/fixtures/inp/p8_t20_s20260903_summary.json +0 -0
  198. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/workspace/fixtures/inp/p8_t20_s20260904_summary.json +0 -0
  199. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/workspace/gen_fixtures.py +0 -0
  200. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/workspace/guided/anchor_operator_validation.json +0 -0
  201. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/workspace/guided/gem_anchor_validation.json +0 -0
  202. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/workspace/guided/gem_collisionless.py +0 -0
  203. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/workspace/guided/prior_campaign_0002_audit_summary.json +0 -0
  204. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/workspace/guided/prior_campaign_0003_audit_summary.json +0 -0
  205. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/record/workspace/guided/prior_campaign_audit_summary.json +0 -0
  206. {simjecture-0.2.2 → simjecture-0.3.1}/demos/collisionless_gem_reconnection/verify_record.py +0 -0
  207. {simjecture-0.2.2 → simjecture-0.3.1}/demos/gray_scott_counterexample/README.md +0 -0
  208. {simjecture-0.2.2 → simjecture-0.3.1}/demos/gray_scott_counterexample/capture_tui.py +0 -0
  209. {simjecture-0.2.2 → simjecture-0.3.1}/demos/gray_scott_counterexample/hypothesis.txt +0 -0
  210. {simjecture-0.2.2 → simjecture-0.3.1}/demos/gray_scott_counterexample/plot_results.py +0 -0
  211. {simjecture-0.2.2 → simjecture-0.3.1}/demos/gray_scott_counterexample/record/README.md +0 -0
  212. {simjecture-0.2.2 → simjecture-0.3.1}/demos/gray_scott_counterexample/record/artifact_provenance.json +0 -0
  213. {simjecture-0.2.2 → simjecture-0.3.1}/demos/gray_scott_counterexample/record/claim_summary.md +0 -0
  214. {simjecture-0.2.2 → simjecture-0.3.1}/demos/gray_scott_counterexample/record/hypothesis_ledger.json +0 -0
  215. {simjecture-0.2.2 → simjecture-0.3.1}/demos/gray_scott_counterexample/record/mvp_manifest.json +0 -0
  216. {simjecture-0.2.2 → simjecture-0.3.1}/demos/gray_scott_counterexample/record/mvp_report.json +0 -0
  217. {simjecture-0.2.2 → simjecture-0.3.1}/demos/gray_scott_counterexample/record/transcript.jsonl +0 -0
  218. {simjecture-0.2.2 → simjecture-0.3.1}/demos/gray_scott_counterexample/record/workspace/analyze_results.py +0 -0
  219. {simjecture-0.2.2 → simjecture-0.3.1}/demos/gray_scott_counterexample/record/workspace/calc_growth.py +0 -0
  220. {simjecture-0.2.2 → simjecture-0.3.1}/demos/gray_scott_counterexample/record/workspace/linear_stability.py +0 -0
  221. {simjecture-0.2.2 → simjecture-0.3.1}/demos/gray_scott_counterexample/record/workspace/mode_analysis.py +0 -0
  222. {simjecture-0.2.2 → simjecture-0.3.1}/demos/gray_scott_counterexample/record/workspace/mode_analysis_results.json +0 -0
  223. {simjecture-0.2.2 → simjecture-0.3.1}/demos/gray_scott_counterexample/record/workspace/pick_regime.py +0 -0
  224. {simjecture-0.2.2 → simjecture-0.3.1}/demos/gray_scott_counterexample/record/workspace/regime_candidates.json +0 -0
  225. {simjecture-0.2.2 → simjecture-0.3.1}/demos/gray_scott_counterexample/record/workspace/result_s1.npz +0 -0
  226. {simjecture-0.2.2 → simjecture-0.3.1}/demos/gray_scott_counterexample/record/workspace/result_s10.npz +0 -0
  227. {simjecture-0.2.2 → simjecture-0.3.1}/demos/gray_scott_counterexample/record/workspace/result_s10_dt025.npz +0 -0
  228. {simjecture-0.2.2 → simjecture-0.3.1}/demos/gray_scott_counterexample/record/workspace/result_s1_dt025.npz +0 -0
  229. {simjecture-0.2.2 → simjecture-0.3.1}/demos/gray_scott_counterexample/record/workspace/root_pattern_results.json +0 -0
  230. {simjecture-0.2.2 → simjecture-0.3.1}/demos/gray_scott_counterexample/record/workspace/root_s10_dt0p025.npz +0 -0
  231. {simjecture-0.2.2 → simjecture-0.3.1}/demos/gray_scott_counterexample/record/workspace/root_s10_dt0p05.npz +0 -0
  232. {simjecture-0.2.2 → simjecture-0.3.1}/demos/gray_scott_counterexample/record/workspace/root_s1_dt0p025.npz +0 -0
  233. {simjecture-0.2.2 → simjecture-0.3.1}/demos/gray_scott_counterexample/record/workspace/root_s1_dt0p05.npz +0 -0
  234. {simjecture-0.2.2 → simjecture-0.3.1}/demos/gray_scott_counterexample/record/workspace/simulate_gs.py +0 -0
  235. {simjecture-0.2.2 → simjecture-0.3.1}/demos/gray_scott_counterexample/record/workspace/simulate_gs_dt025.py +0 -0
  236. {simjecture-0.2.2 → simjecture-0.3.1}/demos/gray_scott_counterexample/record/workspace/simulate_gs_root.py +0 -0
  237. {simjecture-0.2.2 → simjecture-0.3.1}/demos/gray_scott_counterexample/record/workspace/simulation_results.json +0 -0
  238. {simjecture-0.2.2 → simjecture-0.3.1}/demos/gray_scott_counterexample/record/workspace/simulation_results_dt025.json +0 -0
  239. {simjecture-0.2.2 → simjecture-0.3.1}/demos/gray_scott_counterexample/record/workspace/turing_diagnostic.py +0 -0
  240. {simjecture-0.2.2 → simjecture-0.3.1}/demos/gray_scott_counterexample/reproduce.py +0 -0
  241. {simjecture-0.2.2 → simjecture-0.3.1}/demos/gray_scott_counterexample/verify_record.py +0 -0
  242. {simjecture-0.2.2 → simjecture-0.3.1}/docs/_static/demos/gem-ensemble-result.png +0 -0
  243. {simjecture-0.2.2 → simjecture-0.3.1}/docs/_static/demos/gem-reconnection-fields.png +0 -0
  244. {simjecture-0.2.2 → simjecture-0.3.1}/docs/_static/demos/gray-scott-completed-tui.svg +0 -0
  245. {simjecture-0.2.2 → simjecture-0.3.1}/docs/_static/demos/gray-scott-result.png +0 -0
  246. {simjecture-0.2.2 → simjecture-0.3.1}/docs/demos/collisionless-gem.md +0 -0
  247. {simjecture-0.2.2 → simjecture-0.3.1}/docs/demos/gray-scott.md +0 -0
  248. {simjecture-0.2.2 → simjecture-0.3.1}/docs/development/documentation.md +0 -0
  249. {simjecture-0.2.2 → simjecture-0.3.1}/docs/development/releasing.md +0 -0
  250. {simjecture-0.2.2 → simjecture-0.3.1}/docs/getting-started/first-run.md +0 -0
  251. {simjecture-0.2.2 → simjecture-0.3.1}/docs/getting-started/terminal-ui.md +0 -0
  252. {simjecture-0.2.2 → simjecture-0.3.1}/docs/getting-started/web-interface.md +0 -0
  253. {simjecture-0.2.2 → simjecture-0.3.1}/docs/reference/cli.md +0 -0
  254. {simjecture-0.2.2 → simjecture-0.3.1}/docs/requirements.txt +0 -0
  255. {simjecture-0.2.2 → simjecture-0.3.1}/docs/research/limitations.md +0 -0
  256. {simjecture-0.2.2 → simjecture-0.3.1}/docs/research/next-steps.md +0 -0
  257. {simjecture-0.2.2 → simjecture-0.3.1}/docs/research/run-0004.md +0 -0
  258. {simjecture-0.2.2 → simjecture-0.3.1}/docs/research/status.md +0 -0
  259. {simjecture-0.2.2 → simjecture-0.3.1}/environments/warpx-cpu.yml +0 -0
  260. {simjecture-0.2.2 → simjecture-0.3.1}/integrations/dsh/context-elider.js +0 -0
  261. {simjecture-0.2.2 → simjecture-0.3.1}/integrations/dsh/package.json +0 -0
  262. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/AIStrategyDraft.schema.json +0 -0
  263. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/ActionExecution.schema.json +0 -0
  264. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/ActionFailureRecord.schema.json +0 -0
  265. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/AttemptRecord.schema.json +0 -0
  266. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/BlindedSearchReport.schema.json +0 -0
  267. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/BlindedSearchRequest.schema.json +0 -0
  268. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/CampaignAction.schema.json +0 -0
  269. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/CampaignActionGraph.schema.json +0 -0
  270. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/CampaignActionState.schema.json +0 -0
  271. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/CampaignBudget.schema.json +0 -0
  272. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/CampaignCheckpoint.schema.json +0 -0
  273. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/CampaignState.schema.json +0 -0
  274. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/CandidateEvaluation.schema.json +0 -0
  275. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/CandidateResult.schema.json +0 -0
  276. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/CapabilityManifest.schema.json +0 -0
  277. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/Claim.schema.json +0 -0
  278. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/CollisionalityIntervention.schema.json +0 -0
  279. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/ControlDirective.schema.json +0 -0
  280. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/DecisionRecord.schema.json +0 -0
  281. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/DiscoveryPackage.schema.json +0 -0
  282. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/DispatchAttempt.schema.json +0 -0
  283. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/DomainDiagnosisSummary.schema.json +0 -0
  284. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/DomainEvolutionSummary.schema.json +0 -0
  285. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/DomainPluginMetadata.schema.json +0 -0
  286. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/DomainRunSummary.schema.json +0 -0
  287. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/DomainTemplateSummary.schema.json +0 -0
  288. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/ExperimentSpec.schema.json +0 -0
  289. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/ExternalReceipt.schema.json +0 -0
  290. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/FreshSeedIntervention.schema.json +0 -0
  291. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/HumanIntervention.schema.json +0 -0
  292. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/HypothesisNode.schema.json +0 -0
  293. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/KineticSufficiencyDiscoveryPackage.schema.json +0 -0
  294. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/KineticSufficiencyHypothesisInput.schema.json +0 -0
  295. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/KineticSufficiencyResult.schema.json +0 -0
  296. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/KineticSufficiencySolveResult.schema.json +0 -0
  297. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/LifecycleEvent.schema.json +0 -0
  298. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/MatchedPairFormalPredicate.schema.json +0 -0
  299. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/ModelCallProvenance.schema.json +0 -0
  300. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/MultiActionCampaignReport.schema.json +0 -0
  301. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/NormalizedResult.schema.json +0 -0
  302. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/NumericalAssessment.schema.json +0 -0
  303. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/NumericalDiagnostics.schema.json +0 -0
  304. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/NumericalGate.schema.json +0 -0
  305. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/ObservablePrediction.schema.json +0 -0
  306. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/OutboxIntent.schema.json +0 -0
  307. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/PICCaseResult.schema.json +0 -0
  308. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/PICConfig.schema.json +0 -0
  309. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/PICConfirmationAttempt.schema.json +0 -0
  310. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/PICConfirmationDesign.schema.json +0 -0
  311. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/PICConfirmationReport.schema.json +0 -0
  312. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/PICMixtureCaseResult.schema.json +0 -0
  313. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/PICNumericalConfig.schema.json +0 -0
  314. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/PICSufficiencyResult.schema.json +0 -0
  315. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/ParameterSpace.schema.json +0 -0
  316. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/ParticleStatisticsIntervention.schema.json +0 -0
  317. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/ProposalDraft.schema.json +0 -0
  318. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/ProposalRecord.schema.json +0 -0
  319. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/ProposalRequest.schema.json +0 -0
  320. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/ProposalValidation.schema.json +0 -0
  321. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/ProposedToolCall.schema.json +0 -0
  322. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/QualifiedWarpXCampaignPackage.schema.json +0 -0
  323. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/QualifiedWarpXInstrument.schema.json +0 -0
  324. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/ReferenceQualification.schema.json +0 -0
  325. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/ResearchBudget.schema.json +0 -0
  326. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/ResearchCampaignReport.schema.json +0 -0
  327. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/ResearchConclusion.schema.json +0 -0
  328. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/ResearchDecision.schema.json +0 -0
  329. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/ResearchEvidencePolicy.schema.json +0 -0
  330. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/ResearchHypothesis.schema.json +0 -0
  331. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/ResearchObservation.schema.json +0 -0
  332. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/ResearchProblemContract.schema.json +0 -0
  333. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/ResearchRelation.schema.json +0 -0
  334. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/ResearchToolManifest.schema.json +0 -0
  335. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/ResearchToolResult.schema.json +0 -0
  336. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/RunEvidence.schema.json +0 -0
  337. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/RunPlan.schema.json +0 -0
  338. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/SearchStrategy.schema.json +0 -0
  339. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/SheetThicknessIntervention.schema.json +0 -0
  340. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/SubprocessResearchToolConfig.schema.json +0 -0
  341. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/SymmetricMixtureCandidate.schema.json +0 -0
  342. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/WarpXCalibrationPoint.schema.json +0 -0
  343. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/WarpXCaseSummary.schema.json +0 -0
  344. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/WarpXCompiledCase.schema.json +0 -0
  345. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/WarpXConfirmationAttempt.schema.json +0 -0
  346. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/WarpXConfirmationDesign.schema.json +0 -0
  347. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/WarpXConfirmationFailure.schema.json +0 -0
  348. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/WarpXConfirmationReport.schema.json +0 -0
  349. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/WarpXConfirmationResolution.schema.json +0 -0
  350. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/WarpXExecutionProfile.schema.json +0 -0
  351. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/WarpXNumericalConfig.schema.json +0 -0
  352. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/WarpXPairSummary.schema.json +0 -0
  353. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/WarpXPhysicalConfig.schema.json +0 -0
  354. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/WarpXPhysicsQualificationRecord.schema.json +0 -0
  355. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/WarpXQualificationRecord.schema.json +0 -0
  356. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/WarpXQualifiedScope.schema.json +0 -0
  357. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/mvp/MVPAgentAction.schema.json +0 -0
  358. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/mvp/MVPAgentReport.schema.json +0 -0
  359. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/mvp/MVPClaim.schema.json +0 -0
  360. {simjecture-0.2.2 → simjecture-0.3.1}/schemas/mvp/MVPClaimLedger.schema.json +0 -0
  361. {simjecture-0.2.2 → simjecture-0.3.1}/scripts/postprocess_warpx_case.py +0 -0
  362. {simjecture-0.2.2 → simjecture-0.3.1}/scripts/probe_provider.py +0 -0
  363. {simjecture-0.2.2 → simjecture-0.3.1}/scripts/propose_hypothesis.py +0 -0
  364. {simjecture-0.2.2 → simjecture-0.3.1}/scripts/propose_search_strategy.py +0 -0
  365. {simjecture-0.2.2 → simjecture-0.3.1}/scripts/qualify_warpx.py +0 -0
  366. {simjecture-0.2.2 → simjecture-0.3.1}/scripts/qualify_warpx_physics.py +0 -0
  367. {simjecture-0.2.2 → simjecture-0.3.1}/scripts/run_admitted_proposal.py +0 -0
  368. {simjecture-0.2.2 → simjecture-0.3.1}/scripts/run_blinded_search.py +0 -0
  369. {simjecture-0.2.2 → simjecture-0.3.1}/scripts/run_qualified_warpx_campaign.py +0 -0
  370. {simjecture-0.2.2 → simjecture-0.3.1}/scripts/run_warpx_confirmation.py +0 -0
  371. {simjecture-0.2.2 → simjecture-0.3.1}/scripts/run_warpx_pair.py +0 -0
  372. {simjecture-0.2.2 → simjecture-0.3.1}/skills/python-experiment/SKILL.md +0 -0
  373. {simjecture-0.2.2 → simjecture-0.3.1}/skills/python-experiment/manifest.json +0 -0
  374. {simjecture-0.2.2 → simjecture-0.3.1}/skills/scientific-markdown/SKILL.md +0 -0
  375. {simjecture-0.2.2 → simjecture-0.3.1}/skills/scientific-markdown/agents/openai.yaml +0 -0
  376. {simjecture-0.2.2 → simjecture-0.3.1}/skills/scientific-markdown/manifest.json +0 -0
  377. {simjecture-0.2.2 → simjecture-0.3.1}/skills/warpx/agents/openai.yaml +0 -0
  378. {simjecture-0.2.2 → simjecture-0.3.1}/skills/warpx/examples/implicit_em_smoke.py +0 -0
  379. {simjecture-0.2.2 → simjecture-0.3.1}/skills/warpx/examples/minimal_smoke.py +0 -0
  380. {simjecture-0.2.2 → simjecture-0.3.1}/skills/warpx/examples/openpmd_field_smoke.py +0 -0
  381. {simjecture-0.2.2 → simjecture-0.3.1}/skills/warpx/references/2d-xz-commissioning.md +0 -0
  382. {simjecture-0.2.2 → simjecture-0.3.1}/skills/warpx/references/cpu-launch-tuning.md +0 -0
  383. {simjecture-0.2.2 → simjecture-0.3.1}/skills/warpx/references/gpu-launch-tuning.md +0 -0
  384. {simjecture-0.2.2 → simjecture-0.3.1}/skills/warpx/references/local-cuda-deployment.md +0 -0
  385. {simjecture-0.2.2 → simjecture-0.3.1}/skills/warpx/references/numerical-risks.md +0 -0
  386. {simjecture-0.2.2 → simjecture-0.3.1}/skills/warpx/references/picmi-interface.md +0 -0
  387. {simjecture-0.2.2 → simjecture-0.3.1}/skills/warpx/references/resource-scaling.md +0 -0
  388. {simjecture-0.2.2 → simjecture-0.3.1}/skills/warpx/references/time-integration.md +0 -0
  389. {simjecture-0.2.2 → simjecture-0.3.1}/skills/warpx/scripts/benchmark_cpu_threads.py +0 -0
  390. {simjecture-0.2.2 → simjecture-0.3.1}/skills/warpx/scripts/benchmark_gpu.py +0 -0
  391. {simjecture-0.2.2 → simjecture-0.3.1}/skills/warpx/scripts/bootstrap_local_cuda.sh +0 -0
  392. {simjecture-0.2.2 → simjecture-0.3.1}/skills/warpx/scripts/probe_local_cuda.py +0 -0
  393. {simjecture-0.2.2 → simjecture-0.3.1}/skills/warpx/scripts/reduced_energy_budget.py +0 -0
  394. {simjecture-0.2.2 → simjecture-0.3.1}/skills/warpx/scripts/run_local_cuda.sh +0 -0
  395. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/__main__.py +0 -0
  396. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/action_handlers.py +0 -0
  397. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/adapters/__init__.py +0 -0
  398. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/adapters/base.py +0 -0
  399. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/adapters/fake.py +0 -0
  400. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/adapters/pic.py +0 -0
  401. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/adapters/warpx.py +0 -0
  402. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/autonomous_research.py +0 -0
  403. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/benchmarks/__init__.py +0 -0
  404. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/benchmarks/electrostatic_pic.py +0 -0
  405. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/benchmarks/kinetic_sufficiency.py +0 -0
  406. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/campaign.py +0 -0
  407. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/campaign_jobs.py +0 -0
  408. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/confirmation.py +0 -0
  409. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/control.py +0 -0
  410. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/discovery.py +0 -0
  411. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/domains/__init__.py +0 -0
  412. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/domains/base.py +0 -0
  413. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/domains/kinetic_sufficiency.py +0 -0
  414. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/dsh_engine.py +0 -0
  415. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/ledger.py +0 -0
  416. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/lifecycle.py +0 -0
  417. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/literature.py +0 -0
  418. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/llm.py +0 -0
  419. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/models.py +0 -0
  420. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/mvp_control.py +0 -0
  421. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/orchestration.py +0 -0
  422. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/outbox.py +0 -0
  423. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/parameters.py +0 -0
  424. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/presentation.py +0 -0
  425. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/proposals.py +0 -0
  426. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/research_tools.py +0 -0
  427. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/schema_export.py +0 -0
  428. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/search.py +0 -0
  429. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/semantics.py +0 -0
  430. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/tui/__init__.py +0 -0
  431. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/tui/app.py +0 -0
  432. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/tui/claim_views.py +0 -0
  433. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/warpx_analysis.py +0 -0
  434. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/warpx_campaign.py +0 -0
  435. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/warpx_confirmation.py +0 -0
  436. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/web/__init__.py +0 -0
  437. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/web/server.py +0 -0
  438. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/web/static/index.html +0 -0
  439. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/web/static/markdown.js +0 -0
  440. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/web/static/styles.css +0 -0
  441. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/web/static/vendor/LICENSE.dagre.txt +0 -0
  442. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/web/static/vendor/LICENSE.dompurify.txt +0 -0
  443. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/web/static/vendor/LICENSE.katex.txt +0 -0
  444. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/web/static/vendor/LICENSE.marked.txt +0 -0
  445. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/web/static/vendor/README.md +0 -0
  446. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/web/static/vendor/dagre-2.0.0.min.js +0 -0
  447. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/web/static/vendor/dompurify-3.4.14.min.js +0 -0
  448. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/web/static/vendor/katex-0.18.4.min.js +0 -0
  449. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/web/static/vendor/katex-auto-render-0.18.4.min.js +0 -0
  450. {simjecture-0.2.2 → simjecture-0.3.1}/src/conjecture_solver/web/static/vendor/marked-18.0.10.umd.js +0 -0
  451. {simjecture-0.2.2 → simjecture-0.3.1}/tests/__init__.py +0 -0
  452. {simjecture-0.2.2 → simjecture-0.3.1}/tests/fixtures/fake_warpx_runner.py +0 -0
  453. {simjecture-0.2.2 → simjecture-0.3.1}/tests/test_adapter.py +0 -0
  454. {simjecture-0.2.2 → simjecture-0.3.1}/tests/test_autonomous_research.py +0 -0
  455. {simjecture-0.2.2 → simjecture-0.3.1}/tests/test_benchmark.py +0 -0
  456. {simjecture-0.2.2 → simjecture-0.3.1}/tests/test_campaign.py +0 -0
  457. {simjecture-0.2.2 → simjecture-0.3.1}/tests/test_control.py +0 -0
  458. {simjecture-0.2.2 → simjecture-0.3.1}/tests/test_domain_plugins.py +0 -0
  459. {simjecture-0.2.2 → simjecture-0.3.1}/tests/test_dsh_engine.py +0 -0
  460. {simjecture-0.2.2 → simjecture-0.3.1}/tests/test_ledger.py +0 -0
  461. {simjecture-0.2.2 → simjecture-0.3.1}/tests/test_lifecycle.py +0 -0
  462. {simjecture-0.2.2 → simjecture-0.3.1}/tests/test_literature.py +0 -0
  463. {simjecture-0.2.2 → simjecture-0.3.1}/tests/test_llm.py +0 -0
  464. {simjecture-0.2.2 → simjecture-0.3.1}/tests/test_models.py +0 -0
  465. {simjecture-0.2.2 → simjecture-0.3.1}/tests/test_mvp_control.py +0 -0
  466. {simjecture-0.2.2 → simjecture-0.3.1}/tests/test_mvp_pause.py +0 -0
  467. {simjecture-0.2.2 → simjecture-0.3.1}/tests/test_mvp_status_watch.py +0 -0
  468. {simjecture-0.2.2 → simjecture-0.3.1}/tests/test_orchestration.py +0 -0
  469. {simjecture-0.2.2 → simjecture-0.3.1}/tests/test_outbox.py +0 -0
  470. {simjecture-0.2.2 → simjecture-0.3.1}/tests/test_parameters.py +0 -0
  471. {simjecture-0.2.2 → simjecture-0.3.1}/tests/test_pic.py +0 -0
  472. {simjecture-0.2.2 → simjecture-0.3.1}/tests/test_proposals.py +0 -0
  473. {simjecture-0.2.2 → simjecture-0.3.1}/tests/test_recorded_demo.py +0 -0
  474. {simjecture-0.2.2 → simjecture-0.3.1}/tests/test_schema_export.py +0 -0
  475. {simjecture-0.2.2 → simjecture-0.3.1}/tests/test_search.py +0 -0
  476. {simjecture-0.2.2 → simjecture-0.3.1}/tests/test_semantics.py +0 -0
  477. {simjecture-0.2.2 → simjecture-0.3.1}/tests/test_tui.py +0 -0
  478. {simjecture-0.2.2 → simjecture-0.3.1}/tests/test_tui_claim_views.py +0 -0
  479. {simjecture-0.2.2 → simjecture-0.3.1}/tests/test_warpx.py +0 -0
  480. {simjecture-0.2.2 → simjecture-0.3.1}/tests/test_warpx_analysis.py +0 -0
  481. {simjecture-0.2.2 → simjecture-0.3.1}/tests/test_warpx_campaign.py +0 -0
  482. {simjecture-0.2.2 → simjecture-0.3.1}/tests/test_warpx_qualification.py +0 -0
  483. {simjecture-0.2.2 → simjecture-0.3.1}/tests/test_warpx_reduced_energy.py +0 -0
@@ -17,3 +17,4 @@ dist/
17
17
  *.sqlite3-wal
18
18
  artifacts/
19
19
  data/
20
+ .private/
@@ -4,6 +4,26 @@ This project follows semantic versioning. Dates use ISO 8601.
4
4
 
5
5
  ## Unreleased
6
6
 
7
+ ## 0.3.1 — 2026-08-30
8
+
9
+ - Added equation-of-state capabilities for atoMEC, Singularity-EOS, and M-ANEOS, with a shared `eos` skill that records each code's model limits.
10
+ - Added an Optab opacity-table capability and `opacity` skill. Optab is documented as an abundance-consuming table generator, not an EOS solver.
11
+ - Added `simjecture install` bootstraps for the EOS and opacity profiles, matching the WarpX CPU provisioning path.
12
+ - FLASH install accepts an operator-owned `--repository` Git remote. Simjecture never ships a FLASH URL; a Git-ignored overlay can store local setup defaults.
13
+
14
+ ## 0.3.0 — 2026-08-27
15
+
16
+ - Added FLASH 4.8 2D compressible resistive-MHD application capability, commissioning protocol, and rank/timing calibrations.
17
+ - Added sealed directory inputs in execution sandbox with recursive deterministic manifest hashing and read-only container mounting.
18
+ - Clarified child claim evidence lineage and stale scientific execution binding protections.
19
+ - Added a FLASH 2D Resistive-MHD island-coalescence demonstration with figures
20
+ generated from the guided HDF5 anchor, a real Web UI capture, and an
21
+ explicitly labelled campaign audit. The root interval is falsified; the
22
+ repair branch remains open because its evidence lineage did not close.
23
+ - Added the `flash-demo` optional dependency for HDF5-backed figure
24
+ regeneration.
25
+ - Enhanced Web UI test suite with proxy isolation.
26
+
7
27
  ## 0.2.2 — 2026-08-24
8
28
 
9
29
  - Fixed a process-lifecycle race where the supervisor that launched a short
@@ -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.2.2
6
- date-released: 2026-08-24
5
+ version: 0.3.1
6
+ date-released: 2026-08-30
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.2.2
3
+ Version: 0.3.1
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
@@ -28,6 +28,8 @@ Requires-Dist: pydantic<3,>=2.9
28
28
  Requires-Dist: scipy<2,>=1.12
29
29
  Provides-Extra: dsh
30
30
  Requires-Dist: mcp<3,>=2; extra == 'dsh'
31
+ Provides-Extra: flash-demo
32
+ Requires-Dist: h5py<4,>=3.10; extra == 'flash-demo'
31
33
  Provides-Extra: tui
32
34
  Requires-Dist: textual<9,>=2.0; extra == 'tui'
33
35
  Description-Content-Type: text/markdown
@@ -47,16 +49,18 @@ writes its own experiments and diagnostics, and searches deliberately for the
47
49
  simplest result that survives independent verification. The harness controls
48
50
  what may count as evidence.
49
51
 
50
- > **Research preview:** version 0.1 validates the infrastructure and records real
51
- > autonomous simulation campaigns. It does not claim to solve arbitrary
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
52
55
  > scientific prose, establish truth about nature from one simulator, or replace
53
56
  > independent scientific review.
54
57
 
55
58
  The project began as an autonomous conjecture-solving harness for computational
56
59
  plasma physics. The same claim ledger, sandbox, commissioning rules, and
57
60
  capability framework are now ready to extend to other simulation-gated fields
58
- that have a sharp question and a checkable instrument. Version 0.1 records
59
- both the origin domain and that generalization.
61
+ that have a sharp question and a checkable instrument. The 0.3 preview records
62
+ both the origin domain and that generalization, and adds a fluid-MHD campaign
63
+ whose unresolved repair state is preserved rather than hidden.
60
64
 
61
65
  ## The core idea: AI low-hanging fruit
62
66
 
@@ -288,9 +292,9 @@ the human-first projection.
288
292
  The v0.2.2 integration moves the model-facing research loop to DeepSeek Harness
289
293
  without moving scientific authority out of Simjecture. DSH owns the provider,
290
294
  conversation, retry policy, compaction, and resumable session. A native MCP
291
- boundary implements 21 typed endpoints. A compact persistent Lead Scientist
292
- sees six coordination tools and delegates claim work to fresh, scoped
293
- Falsifier/Experimenter and Repair Scientist sessions. A separate fresh,
295
+ boundary implements 22 typed endpoints. A compact persistent Lead Scientist
296
+ sees seven coordination tools and delegates claim work to fresh, scoped
297
+ Falsifier/Experimenter, Blocker Resolver, and Repair Scientist sessions. A separate fresh,
294
298
  tool-free Judge reviews surviving claims. The Python campaign kernel continues to own hypotheses,
295
299
  evidence contracts, commissioning, skills, simulation capabilities, sandboxing,
296
300
  provenance, and guarded claim closure. Existing WarpX CPU/CUDA capabilities use
@@ -341,6 +345,7 @@ process state or charging stopped-process downtime.
341
345
  | Magnetic mirror and nonlinear Landau MVPs | Completed plasma research runs | Natural-language operation on origin-domain problems |
342
346
  | Gray–Scott MVP | Completed research run | Same harness on a non-plasma, agent-authored instrument |
343
347
  | [Collisionless GEM held-out campaign 0004](demos/collisionless_gem_reconnection/) | 12 fresh CUDA runs completed | Guided autonomous commissioning, execution, analysis, and guarded claim handling |
348
+ | [FLASH resistive-MHD island-coalescence audit](demos/resistive_mhd_island_coalescence/) | Root interval falsified; repair branch open | Actual guided FLASH fields, bounded root counterexample, and an honest unresolved child state |
344
349
 
345
350
  Run 0004 produced a finite-sample point-estimate falsification of its operational
346
351
  child claim, while its three-seed uncertainty interval still crossed the proposed
@@ -348,7 +353,7 @@ population threshold. The immutable root remained open. This is documented as a
348
353
  real autonomous run and an example of why machine provenance does not remove the
349
354
  need for independent scientific audit.
350
355
 
351
- Version 0.1 ships that harness. The next step is to use it: apply the same
356
+ The 0.3 preview ships that harness. The next step is to use it: apply the same
352
357
  claim ledger, sandbox, commissioning rules, and capability framework to more
353
358
  simulation-gated problems, and hunt independently confirmed new results — a
354
359
  compact law, a matched counterexample, or a scoped impossibility — in the
@@ -356,8 +361,10 @@ origin domain and beyond.
356
361
 
357
362
  ## Recorded autonomous demos
358
363
 
359
- The repository includes two inspectable release demonstrations rather than only
360
- descriptions of past runs.
364
+ The repository includes three inspectable release demonstrations rather than
365
+ only descriptions of past runs. Gray–Scott and GEM are portable recorded
366
+ campaigns; the FLASH demo is an operator-dependent anchor plus a clearly
367
+ labelled audit extract because its repair branch did not close.
361
368
 
362
369
  ### Gray–Scott finite-domain counterexample
363
370
 
@@ -394,6 +401,24 @@ summaries, hash-addressed provenance for 482 original artifacts, and
394
401
  representative final fields. See
395
402
  [`demos/collisionless_gem_reconnection/`](demos/collisionless_gem_reconnection/).
396
403
 
404
+ ### FLASH resistive-MHD island-coalescence audit
405
+
406
+ The FLASH demo starts from one natural-language Sweet–Parker-like scaling
407
+ hypothesis. Its actual guided anchor produces the HDF5 field states and
408
+ reconnection diagnostics used in the figures. A local six-hour autonomous
409
+ campaign falsified the specified root exponent interval (`p = -0.406453`,
410
+ 95% CI `[-0.423266, -0.389641]`), then ran out of budget while a repaired
411
+ child remained open. The high-resolution child output and analyzer lineage did
412
+ not satisfy the final closure-eligibility rules, so the repository does not
413
+ call that branch verified.
414
+
415
+ ![FLASH island-coalescence anchor](demos/resistive_mhd_island_coalescence/figures/island_coalescence_evolution.png)
416
+
417
+ See [`demos/resistive_mhd_island_coalescence/`](demos/resistive_mhd_island_coalescence/)
418
+ for the exact hypothesis, guided commissioning manifest, audit extract,
419
+ actual web capture, limitations, and figure-generation script. FLASH itself is
420
+ operator-supplied and is not redistributed.
421
+
397
422
  Every campaign also exposes the built-in
398
423
  [`scientific-markdown`](skills/scientific-markdown/SKILL.md) skill. It gives the
399
424
  agent a common notation for equations, code identifiers, contracts, evidence
@@ -422,6 +447,29 @@ revision before invoking the existing build and openPMD probe.
422
447
  See [`skills/warpx/SKILL.md`](skills/warpx/SKILL.md) and the deployment reference
423
448
  in [`skills/warpx/references/local-cuda-deployment.md`](skills/warpx/references/local-cuda-deployment.md).
424
449
 
450
+ ## Optional EOS and opacity capabilities
451
+
452
+ Equation-of-state and opacity-table generators are optional instruments, not
453
+ architectural dependencies. The installer clones and builds pinned upstream
454
+ revisions into Git-ignored runtimes, then runs a non-evidentiary health probe:
455
+
456
+ ```bash
457
+ uv run simjecture install atomec
458
+ uv run simjecture install singularity-eos
459
+ uv run simjecture install m-aneos
460
+ uv run simjecture install optab
461
+ ```
462
+
463
+ Repeating a command against a healthy runtime performs no installation. Use
464
+ `--dry-run` to inspect the bootstrap command and `--repair` to replace an
465
+ installer-managed prefix. The `eos` and `opacity` skills describe each code's
466
+ interface and validity limits; they do not choose a material or scientific
467
+ claim. An EOS evaluation is not an opacity table, and Optab consumes an
468
+ external abundance table rather than solving an equation of state.
469
+
470
+ See [`skills/eos/SKILL.md`](skills/eos/SKILL.md) and
471
+ [`skills/opacity/SKILL.md`](skills/opacity/SKILL.md).
472
+
425
473
  ## Documentation
426
474
 
427
475
  The curated documentation uses Sphinx, MyST Markdown, and the PyData Sphinx
@@ -13,16 +13,18 @@ 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.1 validates the infrastructure and records real
17
- > autonomous simulation campaigns. It does not claim to solve arbitrary
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
18
19
  > scientific prose, establish truth about nature from one simulator, or replace
19
20
  > independent scientific review.
20
21
 
21
22
  The project began as an autonomous conjecture-solving harness for computational
22
23
  plasma physics. The same claim ledger, sandbox, commissioning rules, and
23
24
  capability framework are now ready to extend to other simulation-gated fields
24
- that have a sharp question and a checkable instrument. Version 0.1 records
25
- both the origin domain and that generalization.
25
+ that have a sharp question and a checkable instrument. The 0.3 preview records
26
+ both the origin domain and that generalization, and adds a fluid-MHD campaign
27
+ whose unresolved repair state is preserved rather than hidden.
26
28
 
27
29
  ## The core idea: AI low-hanging fruit
28
30
 
@@ -254,9 +256,9 @@ the human-first projection.
254
256
  The v0.2.2 integration moves the model-facing research loop to DeepSeek Harness
255
257
  without moving scientific authority out of Simjecture. DSH owns the provider,
256
258
  conversation, retry policy, compaction, and resumable session. A native MCP
257
- boundary implements 21 typed endpoints. A compact persistent Lead Scientist
258
- sees six coordination tools and delegates claim work to fresh, scoped
259
- Falsifier/Experimenter and Repair Scientist sessions. A separate fresh,
259
+ boundary implements 22 typed endpoints. A compact persistent Lead Scientist
260
+ sees seven coordination tools and delegates claim work to fresh, scoped
261
+ Falsifier/Experimenter, Blocker Resolver, and Repair Scientist sessions. A separate fresh,
260
262
  tool-free Judge reviews surviving claims. The Python campaign kernel continues to own hypotheses,
261
263
  evidence contracts, commissioning, skills, simulation capabilities, sandboxing,
262
264
  provenance, and guarded claim closure. Existing WarpX CPU/CUDA capabilities use
@@ -307,6 +309,7 @@ process state or charging stopped-process downtime.
307
309
  | Magnetic mirror and nonlinear Landau MVPs | Completed plasma research runs | Natural-language operation on origin-domain problems |
308
310
  | Gray–Scott MVP | Completed research run | Same harness on a non-plasma, agent-authored instrument |
309
311
  | [Collisionless GEM held-out campaign 0004](demos/collisionless_gem_reconnection/) | 12 fresh CUDA runs completed | Guided autonomous commissioning, execution, analysis, and guarded claim handling |
312
+ | [FLASH resistive-MHD island-coalescence audit](demos/resistive_mhd_island_coalescence/) | Root interval falsified; repair branch open | Actual guided FLASH fields, bounded root counterexample, and an honest unresolved child state |
310
313
 
311
314
  Run 0004 produced a finite-sample point-estimate falsification of its operational
312
315
  child claim, while its three-seed uncertainty interval still crossed the proposed
@@ -314,7 +317,7 @@ population threshold. The immutable root remained open. This is documented as a
314
317
  real autonomous run and an example of why machine provenance does not remove the
315
318
  need for independent scientific audit.
316
319
 
317
- Version 0.1 ships that harness. The next step is to use it: apply the same
320
+ The 0.3 preview ships that harness. The next step is to use it: apply the same
318
321
  claim ledger, sandbox, commissioning rules, and capability framework to more
319
322
  simulation-gated problems, and hunt independently confirmed new results — a
320
323
  compact law, a matched counterexample, or a scoped impossibility — in the
@@ -322,8 +325,10 @@ origin domain and beyond.
322
325
 
323
326
  ## Recorded autonomous demos
324
327
 
325
- The repository includes two inspectable release demonstrations rather than only
326
- descriptions of past runs.
328
+ The repository includes three inspectable release demonstrations rather than
329
+ only descriptions of past runs. Gray–Scott and GEM are portable recorded
330
+ campaigns; the FLASH demo is an operator-dependent anchor plus a clearly
331
+ labelled audit extract because its repair branch did not close.
327
332
 
328
333
  ### Gray–Scott finite-domain counterexample
329
334
 
@@ -360,6 +365,24 @@ summaries, hash-addressed provenance for 482 original artifacts, and
360
365
  representative final fields. See
361
366
  [`demos/collisionless_gem_reconnection/`](demos/collisionless_gem_reconnection/).
362
367
 
368
+ ### FLASH resistive-MHD island-coalescence audit
369
+
370
+ The FLASH demo starts from one natural-language Sweet–Parker-like scaling
371
+ hypothesis. Its actual guided anchor produces the HDF5 field states and
372
+ reconnection diagnostics used in the figures. A local six-hour autonomous
373
+ campaign falsified the specified root exponent interval (`p = -0.406453`,
374
+ 95% CI `[-0.423266, -0.389641]`), then ran out of budget while a repaired
375
+ child remained open. The high-resolution child output and analyzer lineage did
376
+ not satisfy the final closure-eligibility rules, so the repository does not
377
+ call that branch verified.
378
+
379
+ ![FLASH island-coalescence anchor](demos/resistive_mhd_island_coalescence/figures/island_coalescence_evolution.png)
380
+
381
+ See [`demos/resistive_mhd_island_coalescence/`](demos/resistive_mhd_island_coalescence/)
382
+ for the exact hypothesis, guided commissioning manifest, audit extract,
383
+ actual web capture, limitations, and figure-generation script. FLASH itself is
384
+ operator-supplied and is not redistributed.
385
+
363
386
  Every campaign also exposes the built-in
364
387
  [`scientific-markdown`](skills/scientific-markdown/SKILL.md) skill. It gives the
365
388
  agent a common notation for equations, code identifiers, contracts, evidence
@@ -388,6 +411,29 @@ revision before invoking the existing build and openPMD probe.
388
411
  See [`skills/warpx/SKILL.md`](skills/warpx/SKILL.md) and the deployment reference
389
412
  in [`skills/warpx/references/local-cuda-deployment.md`](skills/warpx/references/local-cuda-deployment.md).
390
413
 
414
+ ## Optional EOS and opacity capabilities
415
+
416
+ Equation-of-state and opacity-table generators are optional instruments, not
417
+ architectural dependencies. The installer clones and builds pinned upstream
418
+ revisions into Git-ignored runtimes, then runs a non-evidentiary health probe:
419
+
420
+ ```bash
421
+ uv run simjecture install atomec
422
+ uv run simjecture install singularity-eos
423
+ uv run simjecture install m-aneos
424
+ uv run simjecture install optab
425
+ ```
426
+
427
+ Repeating a command against a healthy runtime performs no installation. Use
428
+ `--dry-run` to inspect the bootstrap command and `--repair` to replace an
429
+ installer-managed prefix. The `eos` and `opacity` skills describe each code's
430
+ interface and validity limits; they do not choose a material or scientific
431
+ claim. An EOS evaluation is not an opacity table, and Optab consumes an
432
+ external abundance table rather than solving an equation of state.
433
+
434
+ See [`skills/eos/SKILL.md`](skills/eos/SKILL.md) and
435
+ [`skills/opacity/SKILL.md`](skills/opacity/SKILL.md).
436
+
391
437
  ## Documentation
392
438
 
393
439
  The curated documentation uses Sphinx, MyST Markdown, and the PyData Sphinx
@@ -0,0 +1,31 @@
1
+ # Third-party notices
2
+
3
+ Simjecture depends on separately distributed open-source
4
+ packages, including HTTPX, NumPy, Pydantic, and SciPy. Their licenses are
5
+ reported by the installed Python distributions and are not replaced by this
6
+ repository's Apache-2.0 license.
7
+
8
+ WarpX is an optional external simulation capability. The repository contains
9
+ integration guidance and independently authored launch and diagnostic code; it
10
+ does not relicense WarpX, its binaries, or its dependencies. Consult the WarpX
11
+ distribution for its license and required notices.
12
+
13
+ FLASH is an optional, separately obtained simulation capability. FLASH is not
14
+ distributed by this repository. Its upstream terms restrict redistribution and
15
+ describe separate commercial-use requirements. Operators must obtain FLASH
16
+ from the [official code-request page](https://flash.rochester.edu/site/flashcode/coderequest.html),
17
+ review the current license, and keep acquired source, modified source, and built
18
+ binaries outside this source distribution. Simjecture's `flash-mhd` skill and
19
+ capability metadata do not relicense FLASH.
20
+
21
+ Optional equation-of-state and opacity packages (atoMEC, Singularity-EOS,
22
+ M-ANEOS, and Optab) are obtained under their upstream licenses. The
23
+ operator-triggered installer may clone and build pinned revisions into a
24
+ Git-ignored runtime; this repository still does not relicense those packages or
25
+ commit their source, binaries, or atomic databases. Consult each upstream
26
+ distribution for its license and required notices.
27
+
28
+ Model providers, literature services, and externally supplied guided
29
+ commissioning packages are services or inputs rather than sublicensed parts of
30
+ this source distribution. Run artifacts must retain the provenance and license
31
+ information supplied by their generators.
@@ -0,0 +1,28 @@
1
+ {
2
+ "environment": {
3
+ "MPLBACKEND": "Agg",
4
+ "OMP_NUM_THREADS": "1",
5
+ "PYTHONDONTWRITEBYTECODE": "1"
6
+ },
7
+ "executable": "bin/python",
8
+ "identity_files": [
9
+ "share/build-record.json"
10
+ ],
11
+ "manifest": {
12
+ "description": "Operator-supplied atoMEC 1.4 finite-temperature Kohn-Sham average-atom runtime",
13
+ "executable_kind": "python-atomec",
14
+ "name": "atomec-1.4.0",
15
+ "preflight_checks": [
16
+ "checks.completed",
17
+ "checks.import_succeeded",
18
+ "checks.energy_finite",
19
+ "checks.mean_ionization_in_range"
20
+ ],
21
+ "preflight_resource": "examples/atomec_runtime_smoke.py",
22
+ "preflight_result": "atomec_capability_smoke.json",
23
+ "schema_version": "0.1.0",
24
+ "skill": "eos",
25
+ "version": "1.4.0"
26
+ },
27
+ "runtime_root": "../.runtime/atomec-1.4.0"
28
+ }
@@ -0,0 +1,42 @@
1
+ {
2
+ "environment": {
3
+ "FLASH_EXECUTABLE": "/opt/acs-capabilities/flash-island-coalescence-resistive-mhd-4.8/bin/flash4",
4
+ "FLASH_MPI_LAUNCHER": "/usr/bin/orterun",
5
+ "FLASH_MPI_RANKS": "4",
6
+ "FLASH_PREFLIGHT_PARFILE": "/opt/acs-capabilities/flash-island-coalescence-resistive-mhd-4.8/share/preflight/flash.par",
7
+ "OMPI_MCA_btl": "self,vader",
8
+ "OMPI_MCA_pml": "ob1",
9
+ "OMP_NUM_THREADS": "1",
10
+ "PYTHONDONTWRITEBYTECODE": "1",
11
+ "PYTHONPATH": "/opt/acs-capabilities/flash-island-coalescence-resistive-mhd-4.8/lib/python3.12/site-packages"
12
+ },
13
+ "executable": "bin/flash-python",
14
+ "identity_files": [
15
+ "bin/flash4",
16
+ "share/build-record.json",
17
+ "share/preflight/flash.par"
18
+ ],
19
+ "manifest": {
20
+ "description": "Operator-supplied FLASH 4.8 MPI/HDF5 runtime compiled for a 2D compressible resistive-MHD island-coalescence application",
21
+ "executable_kind": "python-flash-application-mpi-hdf5",
22
+ "name": "flash-island-coalescence-resistive-mhd-4.8",
23
+ "preflight_checks": [
24
+ "checks.completed",
25
+ "checks.environment_valid",
26
+ "checks.executable_present",
27
+ "checks.mpi_launcher_present",
28
+ "checks.parameter_file_present",
29
+ "checks.parameter_file_copied",
30
+ "checks.process_completed",
31
+ "checks.return_code_zero",
32
+ "checks.hdf5_output_created",
33
+ "checks.hdf5_output_readable"
34
+ ],
35
+ "preflight_resource": "examples/runtime_smoke.py",
36
+ "preflight_result": "flash_mhd_capability_smoke.json",
37
+ "schema_version": "0.1.0",
38
+ "skill": "flash-mhd",
39
+ "version": "4.8.local.1"
40
+ },
41
+ "runtime_root": "../.runtime/flash-island-coalescence-resistive-mhd-4.8"
42
+ }
@@ -0,0 +1,34 @@
1
+ {
2
+ "environment": {
3
+ "MANEOS_PREFLIGHT_INPUT": "/opt/acs-capabilities/m-aneos-1.0/share/preflight/ANEOS.INPUT",
4
+ "MANEOS_QUERY": "/opt/acs-capabilities/m-aneos-1.0/bin/maneos-query",
5
+ "PYTHONDONTWRITEBYTECODE": "1"
6
+ },
7
+ "executable": "bin/python",
8
+ "identity_files": [
9
+ "bin/maneos-query",
10
+ "share/build-record.json",
11
+ "share/preflight/ANEOS.INPUT"
12
+ ],
13
+ "manifest": {
14
+ "description": "Operator-supplied M-ANEOS 1.0 total-material analytic EOS query runtime",
15
+ "executable_kind": "python-maneos-query",
16
+ "name": "m-aneos-1.0",
17
+ "preflight_checks": [
18
+ "checks.completed",
19
+ "checks.environment_valid",
20
+ "checks.executable_present",
21
+ "checks.input_present",
22
+ "checks.input_copied",
23
+ "checks.process_completed",
24
+ "checks.return_code_zero",
25
+ "checks.pressure_finite"
26
+ ],
27
+ "preflight_resource": "examples/maneos_runtime_smoke.py",
28
+ "preflight_result": "maneos_capability_smoke.json",
29
+ "schema_version": "0.1.0",
30
+ "skill": "eos",
31
+ "version": "1.0"
32
+ },
33
+ "runtime_root": "../.runtime/m-aneos-1.0"
34
+ }
@@ -0,0 +1,41 @@
1
+ {
2
+ "environment": {
3
+ "OMPI_MCA_btl": "self,vader",
4
+ "OMPI_MCA_pml": "ob1",
5
+ "OMP_NUM_THREADS": "1",
6
+ "OPTAB_EXECUTABLE": "/opt/acs-capabilities/optab-1.3.1/bin/optab",
7
+ "OPTAB_MPI_LAUNCHER": "/opt/acs-capabilities/optab-1.3.1/bin/mpi-launcher",
8
+ "OPTAB_MPI_RANKS": "1",
9
+ "OPTAB_PREFLIGHT_INPUT": "/opt/acs-capabilities/optab-1.3.1/share/preflight",
10
+ "PYTHONDONTWRITEBYTECODE": "1"
11
+ },
12
+ "executable": "bin/python",
13
+ "identity_files": [
14
+ "bin/optab",
15
+ "bin/mpi-launcher",
16
+ "share/build-record.json"
17
+ ],
18
+ "manifest": {
19
+ "description": "Operator-supplied Optab 1.3 MPI/HDF5 opacity-table generator",
20
+ "executable_kind": "python-optab-mpi-hdf5",
21
+ "name": "optab-1.3.1",
22
+ "preflight_checks": [
23
+ "checks.completed",
24
+ "checks.environment_valid",
25
+ "checks.executable_present",
26
+ "checks.mpi_launcher_present",
27
+ "checks.input_present",
28
+ "checks.input_copied",
29
+ "checks.process_completed",
30
+ "checks.return_code_zero",
31
+ "checks.hdf5_output_created",
32
+ "checks.hdf5_output_readable"
33
+ ],
34
+ "preflight_resource": "examples/optab_runtime_smoke.py",
35
+ "preflight_result": "optab_capability_smoke.json",
36
+ "schema_version": "0.1.0",
37
+ "skill": "opacity",
38
+ "version": "1.3.1"
39
+ },
40
+ "runtime_root": "../.runtime/optab-1.3.1"
41
+ }
@@ -0,0 +1,29 @@
1
+ {
2
+ "environment": {
3
+ "PYTHONDONTWRITEBYTECODE": "1",
4
+ "SINGULARITY_EOS_QUERY": "/opt/acs-capabilities/singularity-eos-1.12.1/bin/eos-query"
5
+ },
6
+ "executable": "bin/python",
7
+ "identity_files": [
8
+ "bin/eos-query",
9
+ "share/build-record.json"
10
+ ],
11
+ "manifest": {
12
+ "description": "Operator-supplied Singularity-EOS 1.12 query runtime for named analytic closures",
13
+ "executable_kind": "python-singularity-eos-query",
14
+ "name": "singularity-eos-1.12.1",
15
+ "preflight_checks": [
16
+ "checks.completed",
17
+ "checks.environment_valid",
18
+ "checks.evaluation_completed",
19
+ "checks.pressure_finite",
20
+ "checks.ideal_gas_pressure_matches_formula"
21
+ ],
22
+ "preflight_resource": "examples/singularity_runtime_smoke.py",
23
+ "preflight_result": "singularity_eos_capability_smoke.json",
24
+ "schema_version": "0.1.0",
25
+ "skill": "eos",
26
+ "version": "1.12.1"
27
+ },
28
+ "runtime_root": "../.runtime/singularity-eos-1.12.1"
29
+ }
@@ -1,9 +1,11 @@
1
1
  # Demonstrations
2
2
 
3
3
  Release demonstrations are recorded scientific runs, not hand-written examples
4
- that merely exercise an API. A recorded demo should include the exact natural-
4
+ that merely exercise an API. Portable recorded runs include the exact natural-
5
5
  language input, durable claim ledger, transcript, final report, generated
6
6
  programs, numerical outputs, provenance, and figures made from those outputs.
7
+ Operator-dependent demos state clearly which inputs are local and which claims
8
+ remain unresolved.
7
9
 
8
10
  ## Recorded autonomous runs
9
11
 
@@ -12,7 +14,13 @@ programs, numerical outputs, provenance, and figures made from those outputs.
12
14
  campaign instruction, the agent authored a reaction-diffusion solver and
13
15
  found a finite-domain counterexample in 23.8 minutes.
14
16
  - [`collisionless_gem_reconnection/`](collisionless_gem_reconnection/) is the
15
- primary plasma demo. From a validated non-evidentiary GEM starting instrument,
17
+ primary kinetic plasma demo. From a validated non-evidentiary GEM starting instrument,
16
18
  the agent designed and executed a held-out 12-run CUDA ensemble, falsified its
17
19
  operational child under a frozen rule, and correctly left the population root
18
20
  open.
21
+ - [`resistive_mhd_island_coalescence/`](resistive_mhd_island_coalescence/) is the
22
+ fluid-plasma MHD demo. It bundles an operator-validated, non-evidentiary
23
+ FLASH anchor and an audit extract from a six-hour autonomous campaign. The
24
+ campaign falsified the specified root interval ($p \approx -0.406$), while
25
+ its repair branch remains explicitly open because the final analyzer lineage
26
+ was not closure-eligible.
@@ -0,0 +1 @@
1
+ guided/anchor_run/