simjecture 0.2.2__tar.gz → 0.3.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 (454) hide show
  1. {simjecture-0.2.2 → simjecture-0.3.0}/CHANGELOG.md +13 -0
  2. {simjecture-0.2.2 → simjecture-0.3.0}/CITATION.cff +2 -2
  3. {simjecture-0.2.2 → simjecture-0.3.0}/PKG-INFO +36 -11
  4. {simjecture-0.2.2 → simjecture-0.3.0}/README.md +33 -10
  5. {simjecture-0.2.2 → simjecture-0.3.0}/THIRD_PARTY_NOTICES.md +8 -0
  6. simjecture-0.3.0/capabilities/flash-island-coalescence-resistive-mhd-4.8.json +42 -0
  7. {simjecture-0.2.2 → simjecture-0.3.0}/demos/README.md +10 -2
  8. simjecture-0.3.0/demos/resistive_mhd_island_coalescence/.gitignore +1 -0
  9. simjecture-0.3.0/demos/resistive_mhd_island_coalescence/README.md +174 -0
  10. simjecture-0.3.0/demos/resistive_mhd_island_coalescence/campaign_audit.json +64 -0
  11. simjecture-0.3.0/demos/resistive_mhd_island_coalescence/campaign_instruction.txt +5 -0
  12. simjecture-0.3.0/demos/resistive_mhd_island_coalescence/figures/README.md +20 -0
  13. simjecture-0.3.0/demos/resistive_mhd_island_coalescence/figures/island_coalescence_evolution.png +0 -0
  14. simjecture-0.3.0/demos/resistive_mhd_island_coalescence/figures/reconnection_layer_physics.png +0 -0
  15. simjecture-0.3.0/demos/resistive_mhd_island_coalescence/figures/reconnection_microphysics_profiles.png +0 -0
  16. simjecture-0.3.0/demos/resistive_mhd_island_coalescence/figures/scaling_law_discovery.png +0 -0
  17. simjecture-0.3.0/demos/resistive_mhd_island_coalescence/figures/simjecture_web_dashboard.png +0 -0
  18. simjecture-0.3.0/demos/resistive_mhd_island_coalescence/guided/anchor_validation.json +270 -0
  19. simjecture-0.3.0/demos/resistive_mhd_island_coalescence/guided/island_coalescence.py +412 -0
  20. simjecture-0.3.0/demos/resistive_mhd_island_coalescence/guided/operator_validation.json +36 -0
  21. simjecture-0.3.0/demos/resistive_mhd_island_coalescence/guided_commission.json +49 -0
  22. simjecture-0.3.0/demos/resistive_mhd_island_coalescence/hypothesis.txt +1 -0
  23. simjecture-0.3.0/demos/resistive_mhd_island_coalescence/literature_basis.md +39 -0
  24. simjecture-0.3.0/demos/resistive_mhd_island_coalescence/plot_results.py +490 -0
  25. {simjecture-0.2.2 → simjecture-0.3.0}/docs/concepts/architecture.md +23 -6
  26. {simjecture-0.2.2 → simjecture-0.3.0}/docs/concepts/evidence-and-claims.md +38 -8
  27. {simjecture-0.2.2 → simjecture-0.3.0}/docs/conf.py +1 -1
  28. {simjecture-0.2.2 → simjecture-0.3.0}/docs/getting-started/installation.md +22 -3
  29. {simjecture-0.2.2 → simjecture-0.3.0}/docs/how-to/add-a-capability.md +6 -0
  30. {simjecture-0.2.2 → simjecture-0.3.0}/docs/how-to/deepseek-harness.md +21 -8
  31. {simjecture-0.2.2 → simjecture-0.3.0}/docs/how-to/deploy-runtimes.md +27 -0
  32. {simjecture-0.2.2 → simjecture-0.3.0}/docs/how-to/guided-commissioning.md +7 -0
  33. {simjecture-0.2.2 → simjecture-0.3.0}/docs/reference/repository-map.md +1 -1
  34. {simjecture-0.2.2 → simjecture-0.3.0}/integrations/dsh/README.md +1 -1
  35. {simjecture-0.2.2 → simjecture-0.3.0}/integrations/dsh/adjudicator.js +79 -14
  36. {simjecture-0.2.2 → simjecture-0.3.0}/integrations/dsh/cordis.patch.yml +16 -4
  37. {simjecture-0.2.2 → simjecture-0.3.0}/integrations/dsh/job-waiter.js +42 -3
  38. {simjecture-0.2.2 → simjecture-0.3.0}/integrations/dsh/roles.js +525 -60
  39. {simjecture-0.2.2 → simjecture-0.3.0}/integrations/dsh/runner.js +15 -4
  40. {simjecture-0.2.2 → simjecture-0.3.0}/pyproject.toml +4 -1
  41. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/MVPGuidedCommissioningSpec.schema.json +12 -0
  42. simjecture-0.3.0/skills/flash-mhd/SKILL.md +89 -0
  43. simjecture-0.3.0/skills/flash-mhd/agents/openai.yaml +4 -0
  44. simjecture-0.3.0/skills/flash-mhd/examples/runtime_smoke.py +214 -0
  45. simjecture-0.3.0/skills/flash-mhd/manifest.json +10 -0
  46. simjecture-0.3.0/skills/flash-mhd/references/execution-output.md +82 -0
  47. simjecture-0.3.0/skills/flash-mhd/references/local-deployment.md +59 -0
  48. simjecture-0.3.0/skills/flash-mhd/references/model-validity.md +63 -0
  49. {simjecture-0.2.2 → simjecture-0.3.0}/skills/warpx/SKILL.md +9 -0
  50. simjecture-0.3.0/skills/warpx/examples/openpmd_xz_reader.py +288 -0
  51. {simjecture-0.2.2 → simjecture-0.3.0}/skills/warpx/manifest.json +1 -1
  52. {simjecture-0.2.2 → simjecture-0.3.0}/skills/warpx/references/diagnostics.md +58 -0
  53. simjecture-0.3.0/skills/warpx/references/hybrid-pic.md +117 -0
  54. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/__init__.py +1 -1
  55. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/campaign_kernel.py +733 -116
  56. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/cli.py +34 -3
  57. simjecture-0.3.0/src/conjecture_solver/corrective_audit.py +145 -0
  58. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/deployment.py +31 -5
  59. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/kernel_worker.py +2 -2
  60. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/mcp_schemas.py +130 -23
  61. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/mcp_server.py +782 -47
  62. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/mvp_agent.py +1329 -265
  63. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/mvp_claims.py +324 -145
  64. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/mvp_guidance.py +13 -2
  65. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/mvp_launch.py +78 -12
  66. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/mvp_monitor.py +167 -59
  67. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/mvp_skills.py +59 -4
  68. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/tui/screens.py +15 -2
  69. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/web/application.py +1 -0
  70. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/web/static/app.js +23 -4
  71. {simjecture-0.2.2 → simjecture-0.3.0}/tests/test_campaign_jobs.py +57 -0
  72. {simjecture-0.2.2 → simjecture-0.3.0}/tests/test_campaign_kernel.py +542 -24
  73. simjecture-0.3.0/tests/test_corrective_audit.py +87 -0
  74. {simjecture-0.2.2 → simjecture-0.3.0}/tests/test_deployment.py +31 -1
  75. {simjecture-0.2.2 → simjecture-0.3.0}/tests/test_dsh_bundle.py +72 -2
  76. simjecture-0.3.0/tests/test_mcp_server.py +1321 -0
  77. {simjecture-0.2.2 → simjecture-0.3.0}/tests/test_mvp_agent.py +1113 -147
  78. simjecture-0.3.0/tests/test_mvp_claims.py +484 -0
  79. {simjecture-0.2.2 → simjecture-0.3.0}/tests/test_mvp_monitor.py +171 -6
  80. simjecture-0.3.0/tests/test_warpx_openpmd_xz.py +111 -0
  81. {simjecture-0.2.2 → simjecture-0.3.0}/tests/test_web.py +4 -2
  82. {simjecture-0.2.2 → simjecture-0.3.0}/uv.lock +58 -2
  83. simjecture-0.2.2/tests/test_mcp_server.py +0 -624
  84. simjecture-0.2.2/tests/test_mvp_claims.py +0 -83
  85. {simjecture-0.2.2 → simjecture-0.3.0}/.env.example +0 -0
  86. {simjecture-0.2.2 → simjecture-0.3.0}/.gitattributes +0 -0
  87. {simjecture-0.2.2 → simjecture-0.3.0}/.github/workflows/ci.yml +0 -0
  88. {simjecture-0.2.2 → simjecture-0.3.0}/.github/workflows/release.yml +0 -0
  89. {simjecture-0.2.2 → simjecture-0.3.0}/.gitignore +0 -0
  90. {simjecture-0.2.2 → simjecture-0.3.0}/.readthedocs.yaml +0 -0
  91. {simjecture-0.2.2 → simjecture-0.3.0}/CONTRIBUTING.md +0 -0
  92. {simjecture-0.2.2 → simjecture-0.3.0}/LICENSE +0 -0
  93. {simjecture-0.2.2 → simjecture-0.3.0}/NOTICE +0 -0
  94. {simjecture-0.2.2 → simjecture-0.3.0}/SECURITY.md +0 -0
  95. {simjecture-0.2.2 → simjecture-0.3.0}/capabilities/warpx-cpu-26.07.json +0 -0
  96. {simjecture-0.2.2 → simjecture-0.3.0}/capabilities/warpx-cuda-openpmd-26.07.json +0 -0
  97. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/README.md +0 -0
  98. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/campaign_instruction.txt +0 -0
  99. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/guided/anchor_operator_validation.json +0 -0
  100. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/guided/gem_anchor_validation.json +0 -0
  101. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/guided/gem_collisionless.py +0 -0
  102. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/guided/prior_campaign_0002_audit_summary.json +0 -0
  103. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/guided/prior_campaign_0003_audit_summary.json +0 -0
  104. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/guided/prior_campaign_audit_summary.json +0 -0
  105. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/guided_commission.json +0 -0
  106. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/hypothesis.txt +0 -0
  107. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/plot_results.py +0 -0
  108. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/artifact_provenance.json +0 -0
  109. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/claim_summary.md +0 -0
  110. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/guided_commissioning.json +0 -0
  111. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/hypothesis_ledger.json +0 -0
  112. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/literature_searches.json +0 -0
  113. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/mvp_manifest.json +0 -0
  114. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/mvp_report.json +0 -0
  115. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/transcript.jsonl +0 -0
  116. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000012.py +0 -0
  117. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000013.py +0 -0
  118. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000019.py +0 -0
  119. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000020.py +0 -0
  120. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000026.py +0 -0
  121. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000027.py +0 -0
  122. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000032.py +0 -0
  123. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000033.py +0 -0
  124. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000037.py +0 -0
  125. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000041.py +0 -0
  126. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000042.py +0 -0
  127. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000043.py +0 -0
  128. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000049.py +0 -0
  129. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/workspace/analyze_ensemble.py +0 -0
  130. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/analyze_manifest.json +0 -0
  131. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/commission_summary.json +0 -0
  132. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/ensemble_result.json +0 -0
  133. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/run_p16_t1_s20260902/diagnostic_overview.svg +0 -0
  134. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/run_p16_t1_s20260902/final_fields.npz +0 -0
  135. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/run_p16_t1_s20260902/warpx_used_inputs +0 -0
  136. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/run_p16_t20_s20260902/diagnostic_overview.svg +0 -0
  137. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/run_p16_t20_s20260902/final_fields.npz +0 -0
  138. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/run_p16_t20_s20260902/warpx_used_inputs +0 -0
  139. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/summaries/p16_t1_s20260902_summary.json +0 -0
  140. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/summaries/p16_t1_s20260903_summary.json +0 -0
  141. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/summaries/p16_t1_s20260904_summary.json +0 -0
  142. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/summaries/p16_t20_s20260902_summary.json +0 -0
  143. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/summaries/p16_t20_s20260903_summary.json +0 -0
  144. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/summaries/p16_t20_s20260904_summary.json +0 -0
  145. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/summaries/p8_t1_s20260902_summary.json +0 -0
  146. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/summaries/p8_t1_s20260903_summary.json +0 -0
  147. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/summaries/p8_t1_s20260904_summary.json +0 -0
  148. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/summaries/p8_t20_s20260902_summary.json +0 -0
  149. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/summaries/p8_t20_s20260903_summary.json +0 -0
  150. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/summaries/p8_t20_s20260904_summary.json +0 -0
  151. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/workspace/design_pin.json +0 -0
  152. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/workspace/energy_reader.py +0 -0
  153. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/workspace/fallback_solver_plan.json +0 -0
  154. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/workspace/fixtures/commission_manifest.json +0 -0
  155. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/workspace/fixtures/commission_output.json +0 -0
  156. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/workspace/fixtures/commission_output_wb.json +0 -0
  157. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/workspace/fixtures/inp/p16_t1_s20260902_summary.json +0 -0
  158. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/workspace/fixtures/inp/p16_t1_s20260903_summary.json +0 -0
  159. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/workspace/fixtures/inp/p16_t1_s20260904_summary.json +0 -0
  160. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/workspace/fixtures/inp/p16_t20_s20260902_summary.json +0 -0
  161. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/workspace/fixtures/inp/p16_t20_s20260903_summary.json +0 -0
  162. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/workspace/fixtures/inp/p16_t20_s20260904_summary.json +0 -0
  163. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/workspace/fixtures/inp/p8_t1_s20260902_summary.json +0 -0
  164. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/workspace/fixtures/inp/p8_t1_s20260903_summary.json +0 -0
  165. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/workspace/fixtures/inp/p8_t1_s20260904_summary.json +0 -0
  166. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/workspace/fixtures/inp/p8_t20_s20260902_summary.json +0 -0
  167. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/workspace/fixtures/inp/p8_t20_s20260903_summary.json +0 -0
  168. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/workspace/fixtures/inp/p8_t20_s20260904_summary.json +0 -0
  169. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/workspace/gen_fixtures.py +0 -0
  170. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/workspace/guided/anchor_operator_validation.json +0 -0
  171. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/workspace/guided/gem_anchor_validation.json +0 -0
  172. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/workspace/guided/gem_collisionless.py +0 -0
  173. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/workspace/guided/prior_campaign_0002_audit_summary.json +0 -0
  174. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/workspace/guided/prior_campaign_0003_audit_summary.json +0 -0
  175. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/record/workspace/guided/prior_campaign_audit_summary.json +0 -0
  176. {simjecture-0.2.2 → simjecture-0.3.0}/demos/collisionless_gem_reconnection/verify_record.py +0 -0
  177. {simjecture-0.2.2 → simjecture-0.3.0}/demos/gray_scott_counterexample/README.md +0 -0
  178. {simjecture-0.2.2 → simjecture-0.3.0}/demos/gray_scott_counterexample/capture_tui.py +0 -0
  179. {simjecture-0.2.2 → simjecture-0.3.0}/demos/gray_scott_counterexample/hypothesis.txt +0 -0
  180. {simjecture-0.2.2 → simjecture-0.3.0}/demos/gray_scott_counterexample/plot_results.py +0 -0
  181. {simjecture-0.2.2 → simjecture-0.3.0}/demos/gray_scott_counterexample/record/README.md +0 -0
  182. {simjecture-0.2.2 → simjecture-0.3.0}/demos/gray_scott_counterexample/record/artifact_provenance.json +0 -0
  183. {simjecture-0.2.2 → simjecture-0.3.0}/demos/gray_scott_counterexample/record/claim_summary.md +0 -0
  184. {simjecture-0.2.2 → simjecture-0.3.0}/demos/gray_scott_counterexample/record/hypothesis_ledger.json +0 -0
  185. {simjecture-0.2.2 → simjecture-0.3.0}/demos/gray_scott_counterexample/record/mvp_manifest.json +0 -0
  186. {simjecture-0.2.2 → simjecture-0.3.0}/demos/gray_scott_counterexample/record/mvp_report.json +0 -0
  187. {simjecture-0.2.2 → simjecture-0.3.0}/demos/gray_scott_counterexample/record/transcript.jsonl +0 -0
  188. {simjecture-0.2.2 → simjecture-0.3.0}/demos/gray_scott_counterexample/record/workspace/analyze_results.py +0 -0
  189. {simjecture-0.2.2 → simjecture-0.3.0}/demos/gray_scott_counterexample/record/workspace/calc_growth.py +0 -0
  190. {simjecture-0.2.2 → simjecture-0.3.0}/demos/gray_scott_counterexample/record/workspace/linear_stability.py +0 -0
  191. {simjecture-0.2.2 → simjecture-0.3.0}/demos/gray_scott_counterexample/record/workspace/mode_analysis.py +0 -0
  192. {simjecture-0.2.2 → simjecture-0.3.0}/demos/gray_scott_counterexample/record/workspace/mode_analysis_results.json +0 -0
  193. {simjecture-0.2.2 → simjecture-0.3.0}/demos/gray_scott_counterexample/record/workspace/pick_regime.py +0 -0
  194. {simjecture-0.2.2 → simjecture-0.3.0}/demos/gray_scott_counterexample/record/workspace/regime_candidates.json +0 -0
  195. {simjecture-0.2.2 → simjecture-0.3.0}/demos/gray_scott_counterexample/record/workspace/result_s1.npz +0 -0
  196. {simjecture-0.2.2 → simjecture-0.3.0}/demos/gray_scott_counterexample/record/workspace/result_s10.npz +0 -0
  197. {simjecture-0.2.2 → simjecture-0.3.0}/demos/gray_scott_counterexample/record/workspace/result_s10_dt025.npz +0 -0
  198. {simjecture-0.2.2 → simjecture-0.3.0}/demos/gray_scott_counterexample/record/workspace/result_s1_dt025.npz +0 -0
  199. {simjecture-0.2.2 → simjecture-0.3.0}/demos/gray_scott_counterexample/record/workspace/root_pattern_results.json +0 -0
  200. {simjecture-0.2.2 → simjecture-0.3.0}/demos/gray_scott_counterexample/record/workspace/root_s10_dt0p025.npz +0 -0
  201. {simjecture-0.2.2 → simjecture-0.3.0}/demos/gray_scott_counterexample/record/workspace/root_s10_dt0p05.npz +0 -0
  202. {simjecture-0.2.2 → simjecture-0.3.0}/demos/gray_scott_counterexample/record/workspace/root_s1_dt0p025.npz +0 -0
  203. {simjecture-0.2.2 → simjecture-0.3.0}/demos/gray_scott_counterexample/record/workspace/root_s1_dt0p05.npz +0 -0
  204. {simjecture-0.2.2 → simjecture-0.3.0}/demos/gray_scott_counterexample/record/workspace/simulate_gs.py +0 -0
  205. {simjecture-0.2.2 → simjecture-0.3.0}/demos/gray_scott_counterexample/record/workspace/simulate_gs_dt025.py +0 -0
  206. {simjecture-0.2.2 → simjecture-0.3.0}/demos/gray_scott_counterexample/record/workspace/simulate_gs_root.py +0 -0
  207. {simjecture-0.2.2 → simjecture-0.3.0}/demos/gray_scott_counterexample/record/workspace/simulation_results.json +0 -0
  208. {simjecture-0.2.2 → simjecture-0.3.0}/demos/gray_scott_counterexample/record/workspace/simulation_results_dt025.json +0 -0
  209. {simjecture-0.2.2 → simjecture-0.3.0}/demos/gray_scott_counterexample/record/workspace/turing_diagnostic.py +0 -0
  210. {simjecture-0.2.2 → simjecture-0.3.0}/demos/gray_scott_counterexample/reproduce.py +0 -0
  211. {simjecture-0.2.2 → simjecture-0.3.0}/demos/gray_scott_counterexample/verify_record.py +0 -0
  212. {simjecture-0.2.2 → simjecture-0.3.0}/docs/_static/demos/gem-ensemble-result.png +0 -0
  213. {simjecture-0.2.2 → simjecture-0.3.0}/docs/_static/demos/gem-reconnection-fields.png +0 -0
  214. {simjecture-0.2.2 → simjecture-0.3.0}/docs/_static/demos/gray-scott-completed-tui.svg +0 -0
  215. {simjecture-0.2.2 → simjecture-0.3.0}/docs/_static/demos/gray-scott-result.png +0 -0
  216. {simjecture-0.2.2 → simjecture-0.3.0}/docs/demos/collisionless-gem.md +0 -0
  217. {simjecture-0.2.2 → simjecture-0.3.0}/docs/demos/gray-scott.md +0 -0
  218. {simjecture-0.2.2 → simjecture-0.3.0}/docs/development/documentation.md +0 -0
  219. {simjecture-0.2.2 → simjecture-0.3.0}/docs/development/releasing.md +0 -0
  220. {simjecture-0.2.2 → simjecture-0.3.0}/docs/getting-started/first-run.md +0 -0
  221. {simjecture-0.2.2 → simjecture-0.3.0}/docs/getting-started/terminal-ui.md +0 -0
  222. {simjecture-0.2.2 → simjecture-0.3.0}/docs/getting-started/web-interface.md +0 -0
  223. {simjecture-0.2.2 → simjecture-0.3.0}/docs/index.md +0 -0
  224. {simjecture-0.2.2 → simjecture-0.3.0}/docs/reference/cli.md +0 -0
  225. {simjecture-0.2.2 → simjecture-0.3.0}/docs/requirements.txt +0 -0
  226. {simjecture-0.2.2 → simjecture-0.3.0}/docs/research/limitations.md +0 -0
  227. {simjecture-0.2.2 → simjecture-0.3.0}/docs/research/next-steps.md +0 -0
  228. {simjecture-0.2.2 → simjecture-0.3.0}/docs/research/run-0004.md +0 -0
  229. {simjecture-0.2.2 → simjecture-0.3.0}/docs/research/status.md +0 -0
  230. {simjecture-0.2.2 → simjecture-0.3.0}/environments/warpx-cpu.yml +0 -0
  231. {simjecture-0.2.2 → simjecture-0.3.0}/integrations/dsh/context-elider.js +0 -0
  232. {simjecture-0.2.2 → simjecture-0.3.0}/integrations/dsh/package.json +0 -0
  233. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/AIStrategyDraft.schema.json +0 -0
  234. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/ActionExecution.schema.json +0 -0
  235. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/ActionFailureRecord.schema.json +0 -0
  236. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/AttemptRecord.schema.json +0 -0
  237. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/BlindedSearchReport.schema.json +0 -0
  238. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/BlindedSearchRequest.schema.json +0 -0
  239. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/CampaignAction.schema.json +0 -0
  240. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/CampaignActionGraph.schema.json +0 -0
  241. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/CampaignActionState.schema.json +0 -0
  242. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/CampaignBudget.schema.json +0 -0
  243. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/CampaignCheckpoint.schema.json +0 -0
  244. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/CampaignState.schema.json +0 -0
  245. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/CandidateEvaluation.schema.json +0 -0
  246. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/CandidateResult.schema.json +0 -0
  247. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/CapabilityManifest.schema.json +0 -0
  248. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/Claim.schema.json +0 -0
  249. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/CollisionalityIntervention.schema.json +0 -0
  250. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/ControlDirective.schema.json +0 -0
  251. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/DecisionRecord.schema.json +0 -0
  252. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/DiscoveryPackage.schema.json +0 -0
  253. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/DispatchAttempt.schema.json +0 -0
  254. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/DomainDiagnosisSummary.schema.json +0 -0
  255. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/DomainEvolutionSummary.schema.json +0 -0
  256. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/DomainPluginMetadata.schema.json +0 -0
  257. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/DomainRunSummary.schema.json +0 -0
  258. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/DomainTemplateSummary.schema.json +0 -0
  259. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/ExperimentSpec.schema.json +0 -0
  260. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/ExternalReceipt.schema.json +0 -0
  261. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/FreshSeedIntervention.schema.json +0 -0
  262. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/HumanIntervention.schema.json +0 -0
  263. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/HypothesisNode.schema.json +0 -0
  264. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/KineticSufficiencyDiscoveryPackage.schema.json +0 -0
  265. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/KineticSufficiencyHypothesisInput.schema.json +0 -0
  266. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/KineticSufficiencyResult.schema.json +0 -0
  267. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/KineticSufficiencySolveResult.schema.json +0 -0
  268. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/LifecycleEvent.schema.json +0 -0
  269. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/MatchedPairFormalPredicate.schema.json +0 -0
  270. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/ModelCallProvenance.schema.json +0 -0
  271. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/MultiActionCampaignReport.schema.json +0 -0
  272. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/NormalizedResult.schema.json +0 -0
  273. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/NumericalAssessment.schema.json +0 -0
  274. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/NumericalDiagnostics.schema.json +0 -0
  275. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/NumericalGate.schema.json +0 -0
  276. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/ObservablePrediction.schema.json +0 -0
  277. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/OutboxIntent.schema.json +0 -0
  278. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/PICCaseResult.schema.json +0 -0
  279. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/PICConfig.schema.json +0 -0
  280. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/PICConfirmationAttempt.schema.json +0 -0
  281. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/PICConfirmationDesign.schema.json +0 -0
  282. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/PICConfirmationReport.schema.json +0 -0
  283. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/PICMixtureCaseResult.schema.json +0 -0
  284. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/PICNumericalConfig.schema.json +0 -0
  285. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/PICSufficiencyResult.schema.json +0 -0
  286. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/ParameterSpace.schema.json +0 -0
  287. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/ParticleStatisticsIntervention.schema.json +0 -0
  288. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/ProposalDraft.schema.json +0 -0
  289. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/ProposalRecord.schema.json +0 -0
  290. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/ProposalRequest.schema.json +0 -0
  291. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/ProposalValidation.schema.json +0 -0
  292. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/ProposedToolCall.schema.json +0 -0
  293. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/QualifiedWarpXCampaignPackage.schema.json +0 -0
  294. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/QualifiedWarpXInstrument.schema.json +0 -0
  295. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/ReferenceQualification.schema.json +0 -0
  296. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/ResearchBudget.schema.json +0 -0
  297. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/ResearchCampaignReport.schema.json +0 -0
  298. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/ResearchConclusion.schema.json +0 -0
  299. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/ResearchDecision.schema.json +0 -0
  300. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/ResearchEvidencePolicy.schema.json +0 -0
  301. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/ResearchHypothesis.schema.json +0 -0
  302. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/ResearchObservation.schema.json +0 -0
  303. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/ResearchProblemContract.schema.json +0 -0
  304. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/ResearchRelation.schema.json +0 -0
  305. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/ResearchToolManifest.schema.json +0 -0
  306. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/ResearchToolResult.schema.json +0 -0
  307. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/RunEvidence.schema.json +0 -0
  308. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/RunPlan.schema.json +0 -0
  309. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/SearchStrategy.schema.json +0 -0
  310. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/SheetThicknessIntervention.schema.json +0 -0
  311. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/SubprocessResearchToolConfig.schema.json +0 -0
  312. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/SymmetricMixtureCandidate.schema.json +0 -0
  313. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/WarpXCalibrationPoint.schema.json +0 -0
  314. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/WarpXCaseSummary.schema.json +0 -0
  315. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/WarpXCompiledCase.schema.json +0 -0
  316. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/WarpXConfirmationAttempt.schema.json +0 -0
  317. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/WarpXConfirmationDesign.schema.json +0 -0
  318. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/WarpXConfirmationFailure.schema.json +0 -0
  319. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/WarpXConfirmationReport.schema.json +0 -0
  320. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/WarpXConfirmationResolution.schema.json +0 -0
  321. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/WarpXExecutionProfile.schema.json +0 -0
  322. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/WarpXNumericalConfig.schema.json +0 -0
  323. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/WarpXPairSummary.schema.json +0 -0
  324. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/WarpXPhysicalConfig.schema.json +0 -0
  325. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/WarpXPhysicsQualificationRecord.schema.json +0 -0
  326. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/WarpXQualificationRecord.schema.json +0 -0
  327. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/WarpXQualifiedScope.schema.json +0 -0
  328. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/mvp/MVPAgentAction.schema.json +0 -0
  329. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/mvp/MVPAgentReport.schema.json +0 -0
  330. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/mvp/MVPClaim.schema.json +0 -0
  331. {simjecture-0.2.2 → simjecture-0.3.0}/schemas/mvp/MVPClaimLedger.schema.json +0 -0
  332. {simjecture-0.2.2 → simjecture-0.3.0}/scripts/postprocess_warpx_case.py +0 -0
  333. {simjecture-0.2.2 → simjecture-0.3.0}/scripts/probe_provider.py +0 -0
  334. {simjecture-0.2.2 → simjecture-0.3.0}/scripts/propose_hypothesis.py +0 -0
  335. {simjecture-0.2.2 → simjecture-0.3.0}/scripts/propose_search_strategy.py +0 -0
  336. {simjecture-0.2.2 → simjecture-0.3.0}/scripts/qualify_warpx.py +0 -0
  337. {simjecture-0.2.2 → simjecture-0.3.0}/scripts/qualify_warpx_physics.py +0 -0
  338. {simjecture-0.2.2 → simjecture-0.3.0}/scripts/run_admitted_proposal.py +0 -0
  339. {simjecture-0.2.2 → simjecture-0.3.0}/scripts/run_blinded_search.py +0 -0
  340. {simjecture-0.2.2 → simjecture-0.3.0}/scripts/run_qualified_warpx_campaign.py +0 -0
  341. {simjecture-0.2.2 → simjecture-0.3.0}/scripts/run_warpx_confirmation.py +0 -0
  342. {simjecture-0.2.2 → simjecture-0.3.0}/scripts/run_warpx_pair.py +0 -0
  343. {simjecture-0.2.2 → simjecture-0.3.0}/skills/python-experiment/SKILL.md +0 -0
  344. {simjecture-0.2.2 → simjecture-0.3.0}/skills/python-experiment/manifest.json +0 -0
  345. {simjecture-0.2.2 → simjecture-0.3.0}/skills/scientific-markdown/SKILL.md +0 -0
  346. {simjecture-0.2.2 → simjecture-0.3.0}/skills/scientific-markdown/agents/openai.yaml +0 -0
  347. {simjecture-0.2.2 → simjecture-0.3.0}/skills/scientific-markdown/manifest.json +0 -0
  348. {simjecture-0.2.2 → simjecture-0.3.0}/skills/warpx/agents/openai.yaml +0 -0
  349. {simjecture-0.2.2 → simjecture-0.3.0}/skills/warpx/examples/implicit_em_smoke.py +0 -0
  350. {simjecture-0.2.2 → simjecture-0.3.0}/skills/warpx/examples/minimal_smoke.py +0 -0
  351. {simjecture-0.2.2 → simjecture-0.3.0}/skills/warpx/examples/openpmd_field_smoke.py +0 -0
  352. {simjecture-0.2.2 → simjecture-0.3.0}/skills/warpx/references/2d-xz-commissioning.md +0 -0
  353. {simjecture-0.2.2 → simjecture-0.3.0}/skills/warpx/references/cpu-launch-tuning.md +0 -0
  354. {simjecture-0.2.2 → simjecture-0.3.0}/skills/warpx/references/gpu-launch-tuning.md +0 -0
  355. {simjecture-0.2.2 → simjecture-0.3.0}/skills/warpx/references/local-cuda-deployment.md +0 -0
  356. {simjecture-0.2.2 → simjecture-0.3.0}/skills/warpx/references/numerical-risks.md +0 -0
  357. {simjecture-0.2.2 → simjecture-0.3.0}/skills/warpx/references/picmi-interface.md +0 -0
  358. {simjecture-0.2.2 → simjecture-0.3.0}/skills/warpx/references/resource-scaling.md +0 -0
  359. {simjecture-0.2.2 → simjecture-0.3.0}/skills/warpx/references/time-integration.md +0 -0
  360. {simjecture-0.2.2 → simjecture-0.3.0}/skills/warpx/scripts/benchmark_cpu_threads.py +0 -0
  361. {simjecture-0.2.2 → simjecture-0.3.0}/skills/warpx/scripts/benchmark_gpu.py +0 -0
  362. {simjecture-0.2.2 → simjecture-0.3.0}/skills/warpx/scripts/bootstrap_local_cuda.sh +0 -0
  363. {simjecture-0.2.2 → simjecture-0.3.0}/skills/warpx/scripts/probe_local_cuda.py +0 -0
  364. {simjecture-0.2.2 → simjecture-0.3.0}/skills/warpx/scripts/reduced_energy_budget.py +0 -0
  365. {simjecture-0.2.2 → simjecture-0.3.0}/skills/warpx/scripts/run_local_cuda.sh +0 -0
  366. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/__main__.py +0 -0
  367. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/action_handlers.py +0 -0
  368. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/adapters/__init__.py +0 -0
  369. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/adapters/base.py +0 -0
  370. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/adapters/fake.py +0 -0
  371. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/adapters/pic.py +0 -0
  372. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/adapters/warpx.py +0 -0
  373. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/autonomous_research.py +0 -0
  374. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/benchmarks/__init__.py +0 -0
  375. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/benchmarks/electrostatic_pic.py +0 -0
  376. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/benchmarks/kinetic_sufficiency.py +0 -0
  377. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/campaign.py +0 -0
  378. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/campaign_jobs.py +0 -0
  379. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/confirmation.py +0 -0
  380. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/control.py +0 -0
  381. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/discovery.py +0 -0
  382. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/domains/__init__.py +0 -0
  383. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/domains/base.py +0 -0
  384. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/domains/kinetic_sufficiency.py +0 -0
  385. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/dsh_engine.py +0 -0
  386. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/ledger.py +0 -0
  387. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/lifecycle.py +0 -0
  388. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/literature.py +0 -0
  389. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/llm.py +0 -0
  390. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/models.py +0 -0
  391. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/mvp_control.py +0 -0
  392. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/orchestration.py +0 -0
  393. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/outbox.py +0 -0
  394. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/parameters.py +0 -0
  395. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/presentation.py +0 -0
  396. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/proposals.py +0 -0
  397. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/research_tools.py +0 -0
  398. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/schema_export.py +0 -0
  399. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/search.py +0 -0
  400. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/semantics.py +0 -0
  401. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/tui/__init__.py +0 -0
  402. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/tui/app.py +0 -0
  403. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/tui/claim_views.py +0 -0
  404. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/warpx_analysis.py +0 -0
  405. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/warpx_campaign.py +0 -0
  406. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/warpx_confirmation.py +0 -0
  407. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/web/__init__.py +0 -0
  408. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/web/server.py +0 -0
  409. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/web/static/index.html +0 -0
  410. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/web/static/markdown.js +0 -0
  411. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/web/static/styles.css +0 -0
  412. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/web/static/vendor/LICENSE.dagre.txt +0 -0
  413. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/web/static/vendor/LICENSE.dompurify.txt +0 -0
  414. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/web/static/vendor/LICENSE.katex.txt +0 -0
  415. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/web/static/vendor/LICENSE.marked.txt +0 -0
  416. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/web/static/vendor/README.md +0 -0
  417. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/web/static/vendor/dagre-2.0.0.min.js +0 -0
  418. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/web/static/vendor/dompurify-3.4.14.min.js +0 -0
  419. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/web/static/vendor/katex-0.18.4.min.js +0 -0
  420. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/web/static/vendor/katex-auto-render-0.18.4.min.js +0 -0
  421. {simjecture-0.2.2 → simjecture-0.3.0}/src/conjecture_solver/web/static/vendor/marked-18.0.10.umd.js +0 -0
  422. {simjecture-0.2.2 → simjecture-0.3.0}/tests/__init__.py +0 -0
  423. {simjecture-0.2.2 → simjecture-0.3.0}/tests/fixtures/fake_warpx_runner.py +0 -0
  424. {simjecture-0.2.2 → simjecture-0.3.0}/tests/test_adapter.py +0 -0
  425. {simjecture-0.2.2 → simjecture-0.3.0}/tests/test_autonomous_research.py +0 -0
  426. {simjecture-0.2.2 → simjecture-0.3.0}/tests/test_benchmark.py +0 -0
  427. {simjecture-0.2.2 → simjecture-0.3.0}/tests/test_campaign.py +0 -0
  428. {simjecture-0.2.2 → simjecture-0.3.0}/tests/test_control.py +0 -0
  429. {simjecture-0.2.2 → simjecture-0.3.0}/tests/test_domain_plugins.py +0 -0
  430. {simjecture-0.2.2 → simjecture-0.3.0}/tests/test_dsh_engine.py +0 -0
  431. {simjecture-0.2.2 → simjecture-0.3.0}/tests/test_ledger.py +0 -0
  432. {simjecture-0.2.2 → simjecture-0.3.0}/tests/test_lifecycle.py +0 -0
  433. {simjecture-0.2.2 → simjecture-0.3.0}/tests/test_literature.py +0 -0
  434. {simjecture-0.2.2 → simjecture-0.3.0}/tests/test_llm.py +0 -0
  435. {simjecture-0.2.2 → simjecture-0.3.0}/tests/test_models.py +0 -0
  436. {simjecture-0.2.2 → simjecture-0.3.0}/tests/test_mvp_control.py +0 -0
  437. {simjecture-0.2.2 → simjecture-0.3.0}/tests/test_mvp_pause.py +0 -0
  438. {simjecture-0.2.2 → simjecture-0.3.0}/tests/test_mvp_status_watch.py +0 -0
  439. {simjecture-0.2.2 → simjecture-0.3.0}/tests/test_orchestration.py +0 -0
  440. {simjecture-0.2.2 → simjecture-0.3.0}/tests/test_outbox.py +0 -0
  441. {simjecture-0.2.2 → simjecture-0.3.0}/tests/test_parameters.py +0 -0
  442. {simjecture-0.2.2 → simjecture-0.3.0}/tests/test_pic.py +0 -0
  443. {simjecture-0.2.2 → simjecture-0.3.0}/tests/test_proposals.py +0 -0
  444. {simjecture-0.2.2 → simjecture-0.3.0}/tests/test_recorded_demo.py +0 -0
  445. {simjecture-0.2.2 → simjecture-0.3.0}/tests/test_schema_export.py +0 -0
  446. {simjecture-0.2.2 → simjecture-0.3.0}/tests/test_search.py +0 -0
  447. {simjecture-0.2.2 → simjecture-0.3.0}/tests/test_semantics.py +0 -0
  448. {simjecture-0.2.2 → simjecture-0.3.0}/tests/test_tui.py +0 -0
  449. {simjecture-0.2.2 → simjecture-0.3.0}/tests/test_tui_claim_views.py +0 -0
  450. {simjecture-0.2.2 → simjecture-0.3.0}/tests/test_warpx.py +0 -0
  451. {simjecture-0.2.2 → simjecture-0.3.0}/tests/test_warpx_analysis.py +0 -0
  452. {simjecture-0.2.2 → simjecture-0.3.0}/tests/test_warpx_campaign.py +0 -0
  453. {simjecture-0.2.2 → simjecture-0.3.0}/tests/test_warpx_qualification.py +0 -0
  454. {simjecture-0.2.2 → simjecture-0.3.0}/tests/test_warpx_reduced_energy.py +0 -0
@@ -4,6 +4,19 @@ This project follows semantic versioning. Dates use ISO 8601.
4
4
 
5
5
  ## Unreleased
6
6
 
7
+ ## 0.3.0 — 2026-08-27
8
+
9
+ - Added FLASH 4.8 2D compressible resistive-MHD application capability, commissioning protocol, and rank/timing calibrations.
10
+ - Added sealed directory inputs in execution sandbox with recursive deterministic manifest hashing and read-only container mounting.
11
+ - Clarified child claim evidence lineage and stale scientific execution binding protections.
12
+ - Added a FLASH 2D Resistive-MHD island-coalescence demonstration with figures
13
+ generated from the guided HDF5 anchor, a real Web UI capture, and an
14
+ explicitly labelled campaign audit. The root interval is falsified; the
15
+ repair branch remains open because its evidence lineage did not close.
16
+ - Added the `flash-demo` optional dependency for HDF5-backed figure
17
+ regeneration.
18
+ - Enhanced Web UI test suite with proxy isolation.
19
+
7
20
  ## 0.2.2 — 2026-08-24
8
21
 
9
22
  - 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.0
6
+ date-released: 2026-08-27
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.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
@@ -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
@@ -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
@@ -10,6 +10,14 @@ integration guidance and independently authored launch and diagnostic code; it
10
10
  does not relicense WarpX, its binaries, or its dependencies. Consult the WarpX
11
11
  distribution for its license and required notices.
12
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
+
13
21
  Model providers, literature services, and externally supplied guided
14
22
  commissioning packages are services or inputs rather than sublicensed parts of
15
23
  this source distribution. Run artifacts must retain the provenance and license
@@ -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
+ }
@@ -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/
@@ -0,0 +1,174 @@
1
+ # Demonstration: 2D resistive-MHD island coalescence with FLASH
2
+
3
+ This demo has two deliberately separate layers:
4
+
5
+ 1. a known-runnable, operator-validated FLASH 4.8 anchor used to commission an
6
+ instrument and make field figures; and
7
+ 2. an audit extract from a local Simjecture/DeepSeek campaign that tested a
8
+ scaling hypothesis.
9
+
10
+ The anchor is not scientific evidence, and the campaign extract is not a
11
+ portable completed evidence record. The distinction is part of the demo: a
12
+ plausible simulation and a fitted curve are not, by themselves, a closed
13
+ scientific claim.
14
+
15
+ ![Actual Simjecture web record](figures/simjecture_web_dashboard.png)
16
+
17
+ *Actual read-only browser capture of the local campaign after its six-hour
18
+ budget was exhausted. This is a UI projection, not scientific evidence.*
19
+
20
+ ## Scientific question
21
+
22
+ The supplied root hypothesis asks whether the two-dimensional,
23
+ uniform-resistivity, compressible single-fluid MHD island-coalescence model
24
+ has one pre-plasmoid Sweet–Parker-like branch over the nominal control range
25
+
26
+ \[
27
+ S_\eta = 1/\eta \in [250,4000], \qquad
28
+ R \propto S_\eta^p, \qquad -0.60 \le p \le -0.40,
29
+ \]
30
+
31
+ with the inferred exponent persisting under a spatial-resolution refinement.
32
+ Here `S_eta` is a normalized inverse-resistivity control, not a dimensional
33
+ Lundquist number. The observable is the normalized reconnection rate defined
34
+ in the frozen campaign protocol; the fit uses only cases that reach the flux
35
+ window, resolve the sheet, remain pre-plasmoid, and pass the linearity check.
36
+
37
+ This is a statement about one explicitly bounded numerical model. A result
38
+ here is not a universal disproof of Sweet–Parker theory, and this FLASH
39
+ single-fluid capability cannot answer kinetic electron-scale questions.
40
+
41
+ ## What is in the repository
42
+
43
+ | Path | Purpose |
44
+ | --- | --- |
45
+ | [`hypothesis.txt`](hypothesis.txt) | Exact natural-language root hypothesis |
46
+ | [`campaign_instruction.txt`](campaign_instruction.txt) | Operational constraints given to the autonomous campaign |
47
+ | [`guided/island_coalescence.py`](guided/island_coalescence.py) | Contained launcher and validator for the operator-supplied FLASH executable |
48
+ | [`guided_commission.json`](guided_commission.json) | Frozen guided-commission manifest and limitations |
49
+ | [`guided/anchor_validation.json`](guided/anchor_validation.json) | Checked-in validation summary; permanently non-evidentiary |
50
+ | [`guided/operator_validation.json`](guided/operator_validation.json) | Separate manufactured-solution/operator check; permanently non-evidentiary |
51
+ | [`campaign_audit.json`](campaign_audit.json) | Small, explicitly labelled extract of the local campaign results |
52
+ | [`plot_results.py`](plot_results.py) | Generates the field, profile, and scaling figures from real inputs |
53
+ | [`figures/README.md`](figures/README.md) | Figure provenance and capture notes |
54
+
55
+ The raw `guided/anchor_run/` directory is ignored by Git because FLASH output
56
+ is large and depends on the operator's installation. Run the anchor locally,
57
+ then run `plot_results.py` to regenerate the first three figures. The
58
+ dashboard image is a captured view of the actual local record; it is not a
59
+ mock-up.
60
+
61
+ ## Guided FLASH anchor
62
+
63
+ The bundled manifest records the exact validated starting command. In its
64
+ realized run it used:
65
+
66
+ | Quantity | Realized value |
67
+ | --- | --- |
68
+ | Model | 2D compressible single-fluid resistive MHD |
69
+ | Resistivity | explicit, uniform, `eta = 0.001` |
70
+ | Nominal control | `S_eta = 1000` |
71
+ | Grid | `128 x 128` |
72
+ | MPI layout | 4 ranks (`2 x 2`) |
73
+ | End time | `tmax = 1.2` |
74
+ | Plot states | 24 HDF5 files |
75
+ | Flux window | `psi_rec = 0.01` to `0.05` reached |
76
+ | Maximum recorded `|div B|` | `9.36e-13` |
77
+ | Anchor status | `permanently_non_evidentiary` |
78
+
79
+ The anchor demonstrates that the supplied capability can run, write readable
80
+ states, expose the requested resistive path, and produce the declared
81
+ diagnostics. It does not establish a scaling, convergence, or physical law.
82
+
83
+ The operator must obtain and build FLASH under its upstream license. No FLASH
84
+ source, binary, or modification is redistributed here. Set the launcher and
85
+ executable explicitly, then run the contained program from the repository
86
+ root:
87
+
88
+ ```bash
89
+ uv sync --extra flash-demo
90
+
91
+ export FLASH_EXECUTABLE=/path/to/flash4
92
+ export FLASH_MPI_LAUNCHER=/path/to/orterun
93
+
94
+ uv run python demos/resistive_mhd_island_coalescence/guided/island_coalescence.py \
95
+ --eta 0.001 --nx 128 --ny 128 --alpha 20 --tmax 1.2 \
96
+ --plot-interval 0.05 --ranks 4 --iprocs 2 --jprocs 2 \
97
+ --output demos/resistive_mhd_island_coalescence/guided/anchor_run \
98
+ --summary demos/resistive_mhd_island_coalescence/guided/anchor_validation.json \
99
+ --overwrite
100
+
101
+ uv run python demos/resistive_mhd_island_coalescence/plot_results.py
102
+ ```
103
+
104
+ The command rewrites only the marked anchor directory. The validation summary
105
+ records the executable and parameter-file hashes so the operator can audit
106
+ which local FLASH build produced the states.
107
+
108
+ ## What the autonomous campaign actually established
109
+
110
+ The local campaign record is
111
+ `artifacts/resistive-mhd-island-coalescence-dsh-0001`. It ended with
112
+ `status=budget_exhausted` after six hours and 328 model turns. The durable
113
+ claim ledger, rather than the model's prose, is authoritative.
114
+
115
+ | Branch | Fresh-data result | Durable disposition |
116
+ | --- | --- | --- |
117
+ | `claim_root` | Six `256²` cases gave `p = -0.406453`; 95% CI `[-0.423266, -0.389641]`, whose upper edge is above `-0.40` | **Falsified** for the stated bounded root claim |
118
+ | Root refinement | The `S_eta=250`, `512²` context point gave a refined fit `p = -0.396338`; CI `[-0.403641, -0.389034]` | Context for the root branch; not evidence for the repair |
119
+ | `claim_repair_root_v1` | Audit fit over five `256²` cases plus the actual `S_eta=350`, `512²` run gave `p = -0.390961`; CI `[-0.408482, -0.373440]` | **Open**, not supported or falsified |
120
+
121
+ The root counterexample is meaningful: it rejects the particular exponent
122
+ interval in the particular model and protocol. The repair line is shown so a
123
+ reader can see what the campaign explored, not to claim a second discovery.
124
+ The original child contract requested a `S_eta=2000` refinement; the executed
125
+ high-resolution run was instead `S_eta=350`. In addition, the analyzer/fit
126
+ inputs did not pass the final sealed-input coverage check. Because the evidence
127
+ lineage was not closure-eligible, the harness correctly left the repair claim
128
+ open rather than promoting a curve to a verdict.
129
+
130
+ ## Figures
131
+
132
+ The field and profile figures are generated from the actual guided anchor:
133
+
134
+ - [`island_coalescence_evolution.png`](figures/island_coalescence_evolution.png)
135
+ shows four HDF5 states at the nearest recorded times to `0`, `0.35`, `0.70`,
136
+ and the final state, with `J_z`, magnetic-flux contours, and field lines.
137
+ - [`reconnection_layer_physics.png`](figures/reconnection_layer_physics.png)
138
+ shows `J_z`, density/pressure contours, and velocity at the recorded state
139
+ nearest `t=0.70`.
140
+ - [`reconnection_microphysics_profiles.png`](figures/reconnection_microphysics_profiles.png)
141
+ shows centerline cuts and the recorded flux-window/divergence history.
142
+
143
+ [`scaling_law_discovery.png`](figures/scaling_law_discovery.png) uses only the
144
+ checked-in audit extract. It is labelled as an audit view and leaves the
145
+ repair branch open. [`simjecture_web_dashboard.png`](figures/simjecture_web_dashboard.png)
146
+ is the actual browser capture described above.
147
+
148
+ ## Launching a fresh campaign
149
+
150
+ After installing and commissioning FLASH on the local machine, a fresh
151
+ campaign can start from the same natural-language inputs:
152
+
153
+ ```bash
154
+ uv run simjecture mvp \
155
+ --hypothesis-file demos/resistive_mhd_island_coalescence/hypothesis.txt \
156
+ --instruction-file demos/resistive_mhd_island_coalescence/campaign_instruction.txt \
157
+ --guided-commission demos/resistive_mhd_island_coalescence/guided_commission.json \
158
+ --output artifacts/my-resistive-mhd-campaign
159
+ ```
160
+
161
+ Do not reuse the audit extract as evidence. Let the new campaign register and
162
+ commission its simulator and analyzer prospectively, freeze its contracts,
163
+ collect fresh outputs, and leave any unresolved branch explicitly open.
164
+
165
+ To inspect the local campaign shown in the screenshot without starting work:
166
+
167
+ ```bash
168
+ uv run simjecture status artifacts/resistive-mhd-island-coalescence-dsh-0001
169
+ uv run simjecture web artifacts/resistive-mhd-island-coalescence-dsh-0001 \
170
+ --read-only --port 8080
171
+ ```
172
+
173
+ The web page is a projection of the durable ledger and activity record. It
174
+ does not turn the anchor, a plot, or model prose into scientific evidence.
@@ -0,0 +1,64 @@
1
+ {
2
+ "schema_version": "0.1.0",
3
+ "source_campaign": "artifacts/resistive-mhd-island-coalescence-dsh-0001",
4
+ "captured": "2026-08-27",
5
+ "evidence_scope": "Local campaign audit extract. The source campaign is not bundled as a portable evidence record; these values must not be presented as a completed repair-claim verdict.",
6
+ "root": {
7
+ "claim_id": "claim_root",
8
+ "status": "falsified",
9
+ "target_interval": [-0.6, -0.4],
10
+ "fit": {
11
+ "p_hat": -0.4064533957316092,
12
+ "se_p": 0.006055359125627794,
13
+ "ci_95": [-0.4232657679361733, -0.3896410235270451],
14
+ "r2": 0.9991129810655915,
15
+ "intercept": 0.9697318186784727,
16
+ "n_admissible": 6,
17
+ "monotone_decreasing": true
18
+ },
19
+ "points": [
20
+ {"S_eta": 250.0, "R": 1.0055860377519663, "grid": "256^2"},
21
+ {"S_eta": 500.0, "R": 0.7335448454536055, "grid": "256^2"},
22
+ {"S_eta": 1000.0, "R": 0.5554766682737228, "grid": "256^2"},
23
+ {"S_eta": 2000.0, "R": 0.4269267651466941, "grid": "256^2"},
24
+ {"S_eta": 3000.0, "R": 0.3633705282435853, "grid": "256^2"},
25
+ {"S_eta": 4000.0, "R": 0.3199539126743645, "grid": "256^2"}
26
+ ],
27
+ "interpretation": "The specified root interval is falsified because the reported 95% CI upper edge is above -0.40. This does not falsify Sweet-Parker theory in every model or regime."
28
+ },
29
+ "root_refinement": {
30
+ "claim_id": "claim_root",
31
+ "point": {"S_eta": 250.0, "R": 0.9686217845871428, "grid": "512^2"},
32
+ "fit": {
33
+ "p_hat": -0.39633754634829954,
34
+ "ci_95": [-0.40364136057113054, -0.38903373212546855],
35
+ "r2": 0.9998238128264716,
36
+ "intercept": 0.9358690223291068
37
+ },
38
+ "status": "context_only"
39
+ },
40
+ "repair": {
41
+ "claim_id": "claim_repair_root_v1",
42
+ "status": "open",
43
+ "target_interval": [-0.45, -0.38],
44
+ "fit": {
45
+ "p_hat": -0.39096097505035926,
46
+ "se_p": 0.006310481006347127,
47
+ "ci_95": [-0.4084816791518754, -0.37344027094884313],
48
+ "r2": 0.9989589639973915,
49
+ "intercept": 0.9190215471081571,
50
+ "n_admissible": 6,
51
+ "monotone_decreasing": true
52
+ },
53
+ "points": [
54
+ {"S_eta": 350.0, "R": 0.8564877202380711, "grid": "256^2"},
55
+ {"S_eta": 700.0, "R": 0.6387669908427052, "grid": "256^2"},
56
+ {"S_eta": 1500.0, "R": 0.47600759335915516, "grid": "256^2"},
57
+ {"S_eta": 2500.0, "R": 0.3921255150893602, "grid": "256^2"},
58
+ {"S_eta": 3500.0, "R": 0.33977281131345066, "grid": "256^2"},
59
+ {"S_eta": 350.0, "R": 0.8250326717167455, "grid": "512^2", "label": "actual refinement run"}
60
+ ],
61
+ "evidence_eligible": false,
62
+ "reason": "The executed 512^2 run was S_eta=350 rather than the original S_eta=2000 child contract, and the downstream analyzer/fit lineage did not pass the sealed-input coverage check. The durable campaign therefore stopped at budget exhaustion without a repair verdict."
63
+ }
64
+ }
@@ -0,0 +1,5 @@
1
+ Begin from the supplied guided FLASH commissioning package. Search the primary literature when network search is available, then decide the prospective scientific protocol autonomously. The supplied anchor, manufactured-solution record, literature notes, and every reported number in them are permanently non-evidentiary context; they may establish that an instrument is usable but cannot support or falsify the root hypothesis.
2
+
3
+ Before collecting claim-bearing outputs, define the actual observable, normalization, fit rule, admissible current-sheet regime, plasmoid or topology diagnostic, refinement policy, and decision thresholds. Register and commission every simulator and downstream analyzer as an instrument claim under the scientific claim it serves. Freeze exact commands and analysis before fresh outcomes. Use enough distinct resistivities to identify a scaling rather than a two-point contrast, and distinguish a physical/model boundary from numerical under-resolution or an insufficient observation window.
4
+
5
+ The FLASH capability is a two-dimensional compressible single-fluid resistive-MHD application. It is appropriate for testing the classical collisional branch but cannot decide kinetic electron-scale physics. Other installed capabilities, including WarpX, are lateral instruments rather than mandatory steps: select one only when the active claim requires its closure and it can be commissioned prospectively. If the root is falsified, formulate the smallest scientifically meaningful sub-hypothesis whose domain or mechanism contains the counterexample, state a new falsifiable prediction, and challenge it with fresh evidence. Continue without asking the operator to choose parameters, and finish with a bounded supported, falsified, or honestly unresolved conclusion.
@@ -0,0 +1,20 @@
1
+ # Figure provenance
2
+
3
+ The field and profile figures are generated by
4
+ [`../plot_results.py`](../plot_results.py) from the HDF5 states produced by
5
+ the guided FLASH anchor in `guided/anchor_run/` and the checked-in
6
+ `guided/anchor_validation.json`. That output is intentionally ignored by Git
7
+ and is permanently non-evidentiary; users can recreate it after running the
8
+ guided command in the demo README.
9
+
10
+ `scaling_law_discovery.png` is generated from the checked-in
11
+ [`../campaign_audit.json`](../campaign_audit.json). It is an audit extract of
12
+ the local campaign, not a portable evidence record. It shows the valid root
13
+ falsification and explicitly leaves the repair branch open.
14
+
15
+ `simjecture_web_dashboard.png` is an actual read-only browser capture of the
16
+ local campaign record at
17
+ `artifacts/resistive-mhd-island-coalescence-dsh-0001`, captured on 2026-08-27
18
+ from `simjecture web ... --read-only`. It is a UI view, not scientific
19
+ evidence. The capture includes the durable claim graph, execution monitor, and
20
+ budget-exhausted state visible at capture time.