simjecture 0.4.0__tar.gz → 0.5.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (576) hide show
  1. {simjecture-0.4.0 → simjecture-0.5.0}/CHANGELOG.md +16 -0
  2. {simjecture-0.4.0 → simjecture-0.5.0}/CITATION.cff +2 -2
  3. {simjecture-0.4.0 → simjecture-0.5.0}/PKG-INFO +21 -4
  4. {simjecture-0.4.0 → simjecture-0.5.0}/README.md +20 -3
  5. {simjecture-0.4.0 → simjecture-0.5.0}/docs/conf.py +1 -1
  6. simjecture-0.5.0/docs/getting-started/first-run.md +68 -0
  7. {simjecture-0.4.0 → simjecture-0.5.0}/docs/getting-started/installation.md +9 -1
  8. {simjecture-0.4.0 → simjecture-0.5.0}/docs/getting-started/web-interface.md +9 -1
  9. simjecture-0.5.0/docs/how-to/research-service.md +138 -0
  10. simjecture-0.5.0/docs/how-to/simote-agent-roles.md +279 -0
  11. {simjecture-0.4.0 → simjecture-0.5.0}/docs/index.md +2 -1
  12. {simjecture-0.4.0 → simjecture-0.5.0}/docs/reference/cli.md +13 -0
  13. {simjecture-0.4.0 → simjecture-0.5.0}/integrations/dsh/cordis.patch.yml +4 -3
  14. {simjecture-0.4.0 → simjecture-0.5.0}/integrations/dsh/package-lock.json +2 -2
  15. {simjecture-0.4.0 → simjecture-0.5.0}/integrations/dsh/package.json +1 -1
  16. simjecture-0.5.0/packaging/launch/INSTALL.md +66 -0
  17. {simjecture-0.4.0 → simjecture-0.5.0}/packaging/launch/launch.sh +1 -1
  18. {simjecture-0.4.0 → simjecture-0.5.0}/packaging/launch/setup.sh +10 -4
  19. {simjecture-0.4.0 → simjecture-0.5.0}/pyproject.toml +3 -1
  20. simjecture-0.5.0/research/evaluations/frontier-workflow/DESIGN.md +82 -0
  21. simjecture-0.5.0/research/evaluations/frontier-workflow/PLAIN-BASELINE-PLAN.md +25 -0
  22. simjecture-0.5.0/research/evaluations/frontier-workflow/PLAN.md +48 -0
  23. simjecture-0.5.0/research/evaluations/frontier-workflow/PROMPT-RESULTS.md +81 -0
  24. simjecture-0.5.0/research/evaluations/frontier-workflow/RESULTS.md +103 -0
  25. simjecture-0.5.0/research/evaluations/frontier-workflow/TOKEN-REPEAT-PLAN.md +25 -0
  26. simjecture-0.5.0/research/evaluations/frontier-workflow/TOKEN-RESULTS.md +35 -0
  27. simjecture-0.5.0/research/evaluations/frontier-workflow/accounted_codex_glm.py +11 -0
  28. simjecture-0.5.0/research/evaluations/frontier-workflow/client-probe-results.json +29 -0
  29. simjecture-0.5.0/research/evaluations/frontier-workflow/collect.py +188 -0
  30. simjecture-0.5.0/research/evaluations/frontier-workflow/original-recovered-token-usage.json +658 -0
  31. simjecture-0.5.0/research/evaluations/frontier-workflow/path-regression-results.json +57 -0
  32. simjecture-0.5.0/research/evaluations/frontier-workflow/pilot-results.json +828 -0
  33. simjecture-0.5.0/research/evaluations/frontier-workflow/plain-baseline-results.json +224 -0
  34. simjecture-0.5.0/research/evaluations/frontier-workflow/prompt-audit.json +288 -0
  35. simjecture-0.5.0/research/evaluations/frontier-workflow/run_pilot.py +218 -0
  36. simjecture-0.5.0/research/evaluations/frontier-workflow/token-repeat-provenance.json +50 -0
  37. simjecture-0.5.0/research/evaluations/frontier-workflow/token-repeat-results.json +781 -0
  38. simjecture-0.5.0/research/evaluations/frontier-workflow/token-repeat-usage.json +637 -0
  39. simjecture-0.5.0/research/evaluations/frontier-workflow/token_usage.py +191 -0
  40. simjecture-0.5.0/research/evaluations/minimal-default/DESIGN.md +69 -0
  41. simjecture-0.5.0/research/evaluations/minimal-default/RESULTS.md +101 -0
  42. simjecture-0.5.0/research/evaluations/minimal-default/export_results.py +70 -0
  43. simjecture-0.5.0/research/evaluations/minimal-default/measurements.json +271 -0
  44. simjecture-0.5.0/research/evaluations/release-0.5.0/RESULTS.md +114 -0
  45. simjecture-0.5.0/research/evaluations/release-0.5.0/export_results.py +87 -0
  46. simjecture-0.5.0/research/evaluations/release-0.5.0/measurements.json +362 -0
  47. simjecture-0.5.0/research/evaluations/research-service-v2/PLAN.md +59 -0
  48. simjecture-0.5.0/research/evaluations/research-service-v2/RESULTS.md +174 -0
  49. simjecture-0.5.0/research/evaluations/research-service-v2/assets/flash_case.py +158 -0
  50. simjecture-0.5.0/research/evaluations/research-service-v2/assets/plasma-hypothesis.txt +1 -0
  51. simjecture-0.5.0/research/evaluations/research-service-v2/assets/plasma-protocol.md +78 -0
  52. simjecture-0.5.0/research/evaluations/research-service-v2/evaluate_plasma.py +257 -0
  53. simjecture-0.5.0/research/evaluations/research-service-v2/export_results.py +99 -0
  54. simjecture-0.5.0/research/evaluations/research-service-v2/grade.py +305 -0
  55. simjecture-0.5.0/research/evaluations/research-service-v2/measurements.json +1466 -0
  56. simjecture-0.5.0/research/evaluations/research-service-v2/plasma_reference.py +173 -0
  57. simjecture-0.5.0/research/evaluations/research-service-v2/run_matrix.py +297 -0
  58. {simjecture-0.4.0 → simjecture-0.5.0}/scripts/build_launch_package.py +13 -1
  59. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/__init__.py +1 -1
  60. simjecture-0.5.0/src/conjecture_solver/agent_supervisor.py +915 -0
  61. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/campaign_kernel.py +47 -42
  62. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/cli.py +12 -1
  63. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/dsh_engine.py +46 -10
  64. simjecture-0.5.0/src/conjecture_solver/evidence_paths.py +34 -0
  65. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/mvp_agent.py +80 -41
  66. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/mvp_claims.py +11 -12
  67. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/mvp_launch.py +73 -90
  68. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/mvp_monitor.py +22 -11
  69. simjecture-0.5.0/src/conjecture_solver/research_client.py +133 -0
  70. simjecture-0.5.0/src/conjecture_solver/research_service.py +693 -0
  71. simjecture-0.5.0/src/conjecture_solver/research_supervisor.py +270 -0
  72. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/role_assignments.py +12 -3
  73. simjecture-0.5.0/src/conjecture_solver/scientific_review.py +203 -0
  74. simjecture-0.5.0/src/conjecture_solver/study.py +215 -0
  75. simjecture-0.5.0/src/conjecture_solver/study_launch.py +163 -0
  76. simjecture-0.5.0/src/conjecture_solver/study_status.py +391 -0
  77. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/tui/screens.py +72 -39
  78. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/web/application.py +103 -14
  79. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/web/static/app.js +48 -3
  80. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/web/static/index.html +24 -2
  81. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/web/static/styles.css +7 -0
  82. simjecture-0.5.0/tests/test_agent_supervisor.py +318 -0
  83. {simjecture-0.4.0 → simjecture-0.5.0}/tests/test_campaign_kernel.py +20 -9
  84. {simjecture-0.4.0 → simjecture-0.5.0}/tests/test_dsh_bundle.py +1 -1
  85. {simjecture-0.4.0 → simjecture-0.5.0}/tests/test_dsh_engine.py +20 -1
  86. simjecture-0.5.0/tests/test_frontier_token_usage.py +106 -0
  87. simjecture-0.5.0/tests/test_frontier_workflow.py +132 -0
  88. {simjecture-0.4.0 → simjecture-0.5.0}/tests/test_mvp_agent.py +30 -32
  89. simjecture-0.5.0/tests/test_research_client.py +131 -0
  90. simjecture-0.5.0/tests/test_research_service.py +420 -0
  91. simjecture-0.5.0/tests/test_scientific_review.py +172 -0
  92. simjecture-0.5.0/tests/test_study.py +70 -0
  93. simjecture-0.5.0/tests/test_study_interface.py +288 -0
  94. {simjecture-0.4.0 → simjecture-0.5.0}/tests/test_tui.py +3 -1
  95. {simjecture-0.4.0 → simjecture-0.5.0}/tests/test_web.py +5 -1
  96. {simjecture-0.4.0 → simjecture-0.5.0}/uv.lock +1 -1
  97. simjecture-0.4.0/docs/getting-started/first-run.md +0 -76
  98. simjecture-0.4.0/docs/how-to/simote-agent-roles.md +0 -131
  99. simjecture-0.4.0/packaging/launch/INSTALL.md +0 -49
  100. {simjecture-0.4.0 → simjecture-0.5.0}/.env.example +0 -0
  101. {simjecture-0.4.0 → simjecture-0.5.0}/.gitattributes +0 -0
  102. {simjecture-0.4.0 → simjecture-0.5.0}/.github/workflows/ci.yml +0 -0
  103. {simjecture-0.4.0 → simjecture-0.5.0}/.github/workflows/release.yml +0 -0
  104. {simjecture-0.4.0 → simjecture-0.5.0}/.gitignore +0 -0
  105. {simjecture-0.4.0 → simjecture-0.5.0}/.readthedocs.yaml +0 -0
  106. {simjecture-0.4.0 → simjecture-0.5.0}/CONTRIBUTING.md +0 -0
  107. {simjecture-0.4.0 → simjecture-0.5.0}/LICENSE +0 -0
  108. {simjecture-0.4.0 → simjecture-0.5.0}/NOTICE +0 -0
  109. {simjecture-0.4.0 → simjecture-0.5.0}/SECURITY.md +0 -0
  110. {simjecture-0.4.0 → simjecture-0.5.0}/THIRD_PARTY_NOTICES.md +0 -0
  111. {simjecture-0.4.0 → simjecture-0.5.0}/capabilities/atomec-1.4.0.json +0 -0
  112. {simjecture-0.4.0 → simjecture-0.5.0}/capabilities/flash-island-coalescence-resistive-mhd-4.8.json +0 -0
  113. {simjecture-0.4.0 → simjecture-0.5.0}/capabilities/m-aneos-1.0.json +0 -0
  114. {simjecture-0.4.0 → simjecture-0.5.0}/capabilities/optab-1.3.1.json +0 -0
  115. {simjecture-0.4.0 → simjecture-0.5.0}/capabilities/singularity-eos-1.12.1.json +0 -0
  116. {simjecture-0.4.0 → simjecture-0.5.0}/capabilities/warpx-cpu-26.07.json +0 -0
  117. {simjecture-0.4.0 → simjecture-0.5.0}/capabilities/warpx-cuda-openpmd-26.07.json +0 -0
  118. {simjecture-0.4.0 → simjecture-0.5.0}/demos/README.md +0 -0
  119. {simjecture-0.4.0 → simjecture-0.5.0}/demos/agent_roles_validation/README.md +0 -0
  120. {simjecture-0.4.0 → simjecture-0.5.0}/demos/agent_roles_validation/record/artifact_provenance.json +0 -0
  121. {simjecture-0.4.0 → simjecture-0.5.0}/demos/agent_roles_validation/record/hypothesis_ledger.json +0 -0
  122. {simjecture-0.4.0 → simjecture-0.5.0}/demos/agent_roles_validation/record/mvp_manifest.json +0 -0
  123. {simjecture-0.4.0 → simjecture-0.5.0}/demos/agent_roles_validation/record/mvp_report.json +0 -0
  124. {simjecture-0.4.0 → simjecture-0.5.0}/demos/agent_roles_validation/record/workspace/artifacts/commission_binary64_ops.json +0 -0
  125. {simjecture-0.4.0 → simjecture-0.5.0}/demos/agent_roles_validation/record/workspace/artifacts/commission_series_round_002.json +0 -0
  126. {simjecture-0.4.0 → simjecture-0.5.0}/demos/agent_roles_validation/record/workspace/artifacts/commission_series_round_003.json +0 -0
  127. {simjecture-0.4.0 → simjecture-0.5.0}/demos/agent_roles_validation/record/workspace/artifacts/euler_bound_002_prospective.json +0 -0
  128. {simjecture-0.4.0 → simjecture-0.5.0}/demos/agent_roles_validation/record/workspace/artifacts/euler_ten_step_error.json +0 -0
  129. {simjecture-0.4.0 → simjecture-0.5.0}/demos/agent_roles_validation/record/workspace/scripts/commission_binary64_ops.py +0 -0
  130. {simjecture-0.4.0 → simjecture-0.5.0}/demos/agent_roles_validation/record/workspace/scripts/commission_series_round_002.py +0 -0
  131. {simjecture-0.4.0 → simjecture-0.5.0}/demos/agent_roles_validation/record/workspace/scripts/commission_series_round_003.py +0 -0
  132. {simjecture-0.4.0 → simjecture-0.5.0}/demos/agent_roles_validation/record/workspace/scripts/euler_bound_002_prospective.py +0 -0
  133. {simjecture-0.4.0 → simjecture-0.5.0}/demos/agent_roles_validation/record/workspace/scripts/euler_ten_step_error.py +0 -0
  134. {simjecture-0.4.0 → simjecture-0.5.0}/demos/agent_roles_validation/sha256.json +0 -0
  135. {simjecture-0.4.0 → simjecture-0.5.0}/demos/agent_roles_validation/validation.json +0 -0
  136. {simjecture-0.4.0 → simjecture-0.5.0}/demos/agent_roles_validation/verify_record.py +0 -0
  137. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/README.md +0 -0
  138. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/campaign_instruction.txt +0 -0
  139. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/guided/anchor_operator_validation.json +0 -0
  140. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/guided/gem_anchor_validation.json +0 -0
  141. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/guided/gem_collisionless.py +0 -0
  142. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/guided/prior_campaign_0002_audit_summary.json +0 -0
  143. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/guided/prior_campaign_0003_audit_summary.json +0 -0
  144. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/guided/prior_campaign_audit_summary.json +0 -0
  145. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/guided_commission.json +0 -0
  146. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/hypothesis.txt +0 -0
  147. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/plot_results.py +0 -0
  148. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/artifact_provenance.json +0 -0
  149. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/claim_summary.md +0 -0
  150. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/guided_commissioning.json +0 -0
  151. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/hypothesis_ledger.json +0 -0
  152. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/literature_searches.json +0 -0
  153. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/mvp_manifest.json +0 -0
  154. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/mvp_report.json +0 -0
  155. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/transcript.jsonl +0 -0
  156. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000012.py +0 -0
  157. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000013.py +0 -0
  158. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000019.py +0 -0
  159. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000020.py +0 -0
  160. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000026.py +0 -0
  161. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000027.py +0 -0
  162. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000032.py +0 -0
  163. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000033.py +0 -0
  164. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000037.py +0 -0
  165. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000041.py +0 -0
  166. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000042.py +0 -0
  167. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000043.py +0 -0
  168. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/.acs/evidence_programs/iteration_000049.py +0 -0
  169. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/analyze_ensemble.py +0 -0
  170. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/analyze_manifest.json +0 -0
  171. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/commission_summary.json +0 -0
  172. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/ensemble_result.json +0 -0
  173. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/run_p16_t1_s20260902/diagnostic_overview.svg +0 -0
  174. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/run_p16_t1_s20260902/final_fields.npz +0 -0
  175. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/run_p16_t1_s20260902/warpx_used_inputs +0 -0
  176. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/run_p16_t20_s20260902/diagnostic_overview.svg +0 -0
  177. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/run_p16_t20_s20260902/final_fields.npz +0 -0
  178. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/run_p16_t20_s20260902/warpx_used_inputs +0 -0
  179. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/summaries/p16_t1_s20260902_summary.json +0 -0
  180. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/summaries/p16_t1_s20260903_summary.json +0 -0
  181. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/summaries/p16_t1_s20260904_summary.json +0 -0
  182. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/summaries/p16_t20_s20260902_summary.json +0 -0
  183. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/summaries/p16_t20_s20260903_summary.json +0 -0
  184. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/summaries/p16_t20_s20260904_summary.json +0 -0
  185. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/summaries/p8_t1_s20260902_summary.json +0 -0
  186. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/summaries/p8_t1_s20260903_summary.json +0 -0
  187. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/summaries/p8_t1_s20260904_summary.json +0 -0
  188. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/summaries/p8_t20_s20260902_summary.json +0 -0
  189. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/summaries/p8_t20_s20260903_summary.json +0 -0
  190. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/campaign/summaries/p8_t20_s20260904_summary.json +0 -0
  191. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/design_pin.json +0 -0
  192. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/energy_reader.py +0 -0
  193. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/fallback_solver_plan.json +0 -0
  194. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/fixtures/commission_manifest.json +0 -0
  195. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/fixtures/commission_output.json +0 -0
  196. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/fixtures/commission_output_wb.json +0 -0
  197. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/fixtures/inp/p16_t1_s20260902_summary.json +0 -0
  198. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/fixtures/inp/p16_t1_s20260903_summary.json +0 -0
  199. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/fixtures/inp/p16_t1_s20260904_summary.json +0 -0
  200. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/fixtures/inp/p16_t20_s20260902_summary.json +0 -0
  201. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/fixtures/inp/p16_t20_s20260903_summary.json +0 -0
  202. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/fixtures/inp/p16_t20_s20260904_summary.json +0 -0
  203. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/fixtures/inp/p8_t1_s20260902_summary.json +0 -0
  204. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/fixtures/inp/p8_t1_s20260903_summary.json +0 -0
  205. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/fixtures/inp/p8_t1_s20260904_summary.json +0 -0
  206. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/fixtures/inp/p8_t20_s20260902_summary.json +0 -0
  207. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/fixtures/inp/p8_t20_s20260903_summary.json +0 -0
  208. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/fixtures/inp/p8_t20_s20260904_summary.json +0 -0
  209. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/gen_fixtures.py +0 -0
  210. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/guided/anchor_operator_validation.json +0 -0
  211. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/guided/gem_anchor_validation.json +0 -0
  212. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/guided/gem_collisionless.py +0 -0
  213. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/guided/prior_campaign_0002_audit_summary.json +0 -0
  214. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/guided/prior_campaign_0003_audit_summary.json +0 -0
  215. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/record/workspace/guided/prior_campaign_audit_summary.json +0 -0
  216. {simjecture-0.4.0 → simjecture-0.5.0}/demos/collisionless_gem_reconnection/verify_record.py +0 -0
  217. {simjecture-0.4.0 → simjecture-0.5.0}/demos/gray_scott_counterexample/README.md +0 -0
  218. {simjecture-0.4.0 → simjecture-0.5.0}/demos/gray_scott_counterexample/capture_tui.py +0 -0
  219. {simjecture-0.4.0 → simjecture-0.5.0}/demos/gray_scott_counterexample/hypothesis.txt +0 -0
  220. {simjecture-0.4.0 → simjecture-0.5.0}/demos/gray_scott_counterexample/plot_results.py +0 -0
  221. {simjecture-0.4.0 → simjecture-0.5.0}/demos/gray_scott_counterexample/record/README.md +0 -0
  222. {simjecture-0.4.0 → simjecture-0.5.0}/demos/gray_scott_counterexample/record/artifact_provenance.json +0 -0
  223. {simjecture-0.4.0 → simjecture-0.5.0}/demos/gray_scott_counterexample/record/claim_summary.md +0 -0
  224. {simjecture-0.4.0 → simjecture-0.5.0}/demos/gray_scott_counterexample/record/hypothesis_ledger.json +0 -0
  225. {simjecture-0.4.0 → simjecture-0.5.0}/demos/gray_scott_counterexample/record/mvp_manifest.json +0 -0
  226. {simjecture-0.4.0 → simjecture-0.5.0}/demos/gray_scott_counterexample/record/mvp_report.json +0 -0
  227. {simjecture-0.4.0 → simjecture-0.5.0}/demos/gray_scott_counterexample/record/transcript.jsonl +0 -0
  228. {simjecture-0.4.0 → simjecture-0.5.0}/demos/gray_scott_counterexample/record/workspace/analyze_results.py +0 -0
  229. {simjecture-0.4.0 → simjecture-0.5.0}/demos/gray_scott_counterexample/record/workspace/calc_growth.py +0 -0
  230. {simjecture-0.4.0 → simjecture-0.5.0}/demos/gray_scott_counterexample/record/workspace/linear_stability.py +0 -0
  231. {simjecture-0.4.0 → simjecture-0.5.0}/demos/gray_scott_counterexample/record/workspace/mode_analysis.py +0 -0
  232. {simjecture-0.4.0 → simjecture-0.5.0}/demos/gray_scott_counterexample/record/workspace/mode_analysis_results.json +0 -0
  233. {simjecture-0.4.0 → simjecture-0.5.0}/demos/gray_scott_counterexample/record/workspace/pick_regime.py +0 -0
  234. {simjecture-0.4.0 → simjecture-0.5.0}/demos/gray_scott_counterexample/record/workspace/regime_candidates.json +0 -0
  235. {simjecture-0.4.0 → simjecture-0.5.0}/demos/gray_scott_counterexample/record/workspace/result_s1.npz +0 -0
  236. {simjecture-0.4.0 → simjecture-0.5.0}/demos/gray_scott_counterexample/record/workspace/result_s10.npz +0 -0
  237. {simjecture-0.4.0 → simjecture-0.5.0}/demos/gray_scott_counterexample/record/workspace/result_s10_dt025.npz +0 -0
  238. {simjecture-0.4.0 → simjecture-0.5.0}/demos/gray_scott_counterexample/record/workspace/result_s1_dt025.npz +0 -0
  239. {simjecture-0.4.0 → simjecture-0.5.0}/demos/gray_scott_counterexample/record/workspace/root_pattern_results.json +0 -0
  240. {simjecture-0.4.0 → simjecture-0.5.0}/demos/gray_scott_counterexample/record/workspace/root_s10_dt0p025.npz +0 -0
  241. {simjecture-0.4.0 → simjecture-0.5.0}/demos/gray_scott_counterexample/record/workspace/root_s10_dt0p05.npz +0 -0
  242. {simjecture-0.4.0 → simjecture-0.5.0}/demos/gray_scott_counterexample/record/workspace/root_s1_dt0p025.npz +0 -0
  243. {simjecture-0.4.0 → simjecture-0.5.0}/demos/gray_scott_counterexample/record/workspace/root_s1_dt0p05.npz +0 -0
  244. {simjecture-0.4.0 → simjecture-0.5.0}/demos/gray_scott_counterexample/record/workspace/simulate_gs.py +0 -0
  245. {simjecture-0.4.0 → simjecture-0.5.0}/demos/gray_scott_counterexample/record/workspace/simulate_gs_dt025.py +0 -0
  246. {simjecture-0.4.0 → simjecture-0.5.0}/demos/gray_scott_counterexample/record/workspace/simulate_gs_root.py +0 -0
  247. {simjecture-0.4.0 → simjecture-0.5.0}/demos/gray_scott_counterexample/record/workspace/simulation_results.json +0 -0
  248. {simjecture-0.4.0 → simjecture-0.5.0}/demos/gray_scott_counterexample/record/workspace/simulation_results_dt025.json +0 -0
  249. {simjecture-0.4.0 → simjecture-0.5.0}/demos/gray_scott_counterexample/record/workspace/turing_diagnostic.py +0 -0
  250. {simjecture-0.4.0 → simjecture-0.5.0}/demos/gray_scott_counterexample/reproduce.py +0 -0
  251. {simjecture-0.4.0 → simjecture-0.5.0}/demos/gray_scott_counterexample/verify_record.py +0 -0
  252. {simjecture-0.4.0 → simjecture-0.5.0}/demos/resistive_mhd_island_coalescence/.gitignore +0 -0
  253. {simjecture-0.4.0 → simjecture-0.5.0}/demos/resistive_mhd_island_coalescence/README.md +0 -0
  254. {simjecture-0.4.0 → simjecture-0.5.0}/demos/resistive_mhd_island_coalescence/campaign_audit.json +0 -0
  255. {simjecture-0.4.0 → simjecture-0.5.0}/demos/resistive_mhd_island_coalescence/campaign_instruction.txt +0 -0
  256. {simjecture-0.4.0 → simjecture-0.5.0}/demos/resistive_mhd_island_coalescence/figures/README.md +0 -0
  257. {simjecture-0.4.0 → simjecture-0.5.0}/demos/resistive_mhd_island_coalescence/figures/island_coalescence_evolution.png +0 -0
  258. {simjecture-0.4.0 → simjecture-0.5.0}/demos/resistive_mhd_island_coalescence/figures/reconnection_layer_physics.png +0 -0
  259. {simjecture-0.4.0 → simjecture-0.5.0}/demos/resistive_mhd_island_coalescence/figures/reconnection_microphysics_profiles.png +0 -0
  260. {simjecture-0.4.0 → simjecture-0.5.0}/demos/resistive_mhd_island_coalescence/figures/scaling_law_discovery.png +0 -0
  261. {simjecture-0.4.0 → simjecture-0.5.0}/demos/resistive_mhd_island_coalescence/figures/simjecture_web_dashboard.png +0 -0
  262. {simjecture-0.4.0 → simjecture-0.5.0}/demos/resistive_mhd_island_coalescence/guided/anchor_validation.json +0 -0
  263. {simjecture-0.4.0 → simjecture-0.5.0}/demos/resistive_mhd_island_coalescence/guided/island_coalescence.py +0 -0
  264. {simjecture-0.4.0 → simjecture-0.5.0}/demos/resistive_mhd_island_coalescence/guided/operator_validation.json +0 -0
  265. {simjecture-0.4.0 → simjecture-0.5.0}/demos/resistive_mhd_island_coalescence/guided_commission.json +0 -0
  266. {simjecture-0.4.0 → simjecture-0.5.0}/demos/resistive_mhd_island_coalescence/hypothesis.txt +0 -0
  267. {simjecture-0.4.0 → simjecture-0.5.0}/demos/resistive_mhd_island_coalescence/literature_basis.md +0 -0
  268. {simjecture-0.4.0 → simjecture-0.5.0}/demos/resistive_mhd_island_coalescence/plot_results.py +0 -0
  269. {simjecture-0.4.0 → simjecture-0.5.0}/docs/_static/demos/gem-ensemble-result.png +0 -0
  270. {simjecture-0.4.0 → simjecture-0.5.0}/docs/_static/demos/gem-reconnection-fields.png +0 -0
  271. {simjecture-0.4.0 → simjecture-0.5.0}/docs/_static/demos/gray-scott-completed-tui.svg +0 -0
  272. {simjecture-0.4.0 → simjecture-0.5.0}/docs/_static/demos/gray-scott-result.png +0 -0
  273. {simjecture-0.4.0 → simjecture-0.5.0}/docs/concepts/architecture.md +0 -0
  274. {simjecture-0.4.0 → simjecture-0.5.0}/docs/concepts/evidence-and-claims.md +0 -0
  275. {simjecture-0.4.0 → simjecture-0.5.0}/docs/demos/collisionless-gem.md +0 -0
  276. {simjecture-0.4.0 → simjecture-0.5.0}/docs/demos/gray-scott.md +0 -0
  277. {simjecture-0.4.0 → simjecture-0.5.0}/docs/development/documentation.md +0 -0
  278. {simjecture-0.4.0 → simjecture-0.5.0}/docs/development/releasing.md +0 -0
  279. {simjecture-0.4.0 → simjecture-0.5.0}/docs/getting-started/terminal-ui.md +0 -0
  280. {simjecture-0.4.0 → simjecture-0.5.0}/docs/how-to/add-a-capability.md +0 -0
  281. {simjecture-0.4.0 → simjecture-0.5.0}/docs/how-to/deepseek-harness.md +0 -0
  282. {simjecture-0.4.0 → simjecture-0.5.0}/docs/how-to/deploy-runtimes.md +0 -0
  283. {simjecture-0.4.0 → simjecture-0.5.0}/docs/how-to/dsh-upgrade-assessment.md +0 -0
  284. {simjecture-0.4.0 → simjecture-0.5.0}/docs/how-to/guided-commissioning.md +0 -0
  285. {simjecture-0.4.0 → simjecture-0.5.0}/docs/reference/repository-map.md +0 -0
  286. {simjecture-0.4.0 → simjecture-0.5.0}/docs/requirements.txt +0 -0
  287. {simjecture-0.4.0 → simjecture-0.5.0}/docs/research/limitations.md +0 -0
  288. {simjecture-0.4.0 → simjecture-0.5.0}/docs/research/next-steps.md +0 -0
  289. {simjecture-0.4.0 → simjecture-0.5.0}/docs/research/run-0004.md +0 -0
  290. {simjecture-0.4.0 → simjecture-0.5.0}/docs/research/status.md +0 -0
  291. {simjecture-0.4.0 → simjecture-0.5.0}/environments/warpx-cpu.yml +0 -0
  292. {simjecture-0.4.0 → simjecture-0.5.0}/integrations/dsh/README.md +0 -0
  293. {simjecture-0.4.0 → simjecture-0.5.0}/integrations/dsh/adjudicator.js +0 -0
  294. {simjecture-0.4.0 → simjecture-0.5.0}/integrations/dsh/context-elider.js +0 -0
  295. {simjecture-0.4.0 → simjecture-0.5.0}/integrations/dsh/job-waiter.js +0 -0
  296. {simjecture-0.4.0 → simjecture-0.5.0}/integrations/dsh/research-tools.js +0 -0
  297. {simjecture-0.4.0 → simjecture-0.5.0}/integrations/dsh/roles.js +0 -0
  298. {simjecture-0.4.0 → simjecture-0.5.0}/integrations/dsh/runner.js +0 -0
  299. {simjecture-0.4.0 → simjecture-0.5.0}/integrations/dsh/tests/jobs.test.js +0 -0
  300. {simjecture-0.4.0 → simjecture-0.5.0}/integrations/dsh/tests/profile-model.js +0 -0
  301. {simjecture-0.4.0 → simjecture-0.5.0}/integrations/dsh/tests/profile.test.js +0 -0
  302. {simjecture-0.4.0 → simjecture-0.5.0}/integrations/dsh/tests/roles.test.js +0 -0
  303. {simjecture-0.4.0 → simjecture-0.5.0}/integrations/dsh/tests/runtime.js +0 -0
  304. {simjecture-0.4.0 → simjecture-0.5.0}/integrations/dsh/tests/session.test.js +0 -0
  305. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/AIStrategyDraft.schema.json +0 -0
  306. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/ActionExecution.schema.json +0 -0
  307. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/ActionFailureRecord.schema.json +0 -0
  308. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/AttemptRecord.schema.json +0 -0
  309. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/BlindedSearchReport.schema.json +0 -0
  310. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/BlindedSearchRequest.schema.json +0 -0
  311. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/CampaignAction.schema.json +0 -0
  312. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/CampaignActionGraph.schema.json +0 -0
  313. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/CampaignActionState.schema.json +0 -0
  314. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/CampaignBudget.schema.json +0 -0
  315. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/CampaignCheckpoint.schema.json +0 -0
  316. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/CampaignState.schema.json +0 -0
  317. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/CandidateEvaluation.schema.json +0 -0
  318. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/CandidateResult.schema.json +0 -0
  319. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/CapabilityManifest.schema.json +0 -0
  320. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/Claim.schema.json +0 -0
  321. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/CollisionalityIntervention.schema.json +0 -0
  322. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/ControlDirective.schema.json +0 -0
  323. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/DecisionRecord.schema.json +0 -0
  324. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/DiscoveryPackage.schema.json +0 -0
  325. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/DispatchAttempt.schema.json +0 -0
  326. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/DomainDiagnosisSummary.schema.json +0 -0
  327. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/DomainEvolutionSummary.schema.json +0 -0
  328. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/DomainPluginMetadata.schema.json +0 -0
  329. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/DomainRunSummary.schema.json +0 -0
  330. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/DomainTemplateSummary.schema.json +0 -0
  331. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/ExperimentSpec.schema.json +0 -0
  332. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/ExternalReceipt.schema.json +0 -0
  333. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/FreshSeedIntervention.schema.json +0 -0
  334. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/HumanIntervention.schema.json +0 -0
  335. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/HypothesisNode.schema.json +0 -0
  336. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/KineticSufficiencyDiscoveryPackage.schema.json +0 -0
  337. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/KineticSufficiencyHypothesisInput.schema.json +0 -0
  338. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/KineticSufficiencyResult.schema.json +0 -0
  339. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/KineticSufficiencySolveResult.schema.json +0 -0
  340. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/LifecycleEvent.schema.json +0 -0
  341. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/MVPGuidedCommissioningSpec.schema.json +0 -0
  342. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/MatchedPairFormalPredicate.schema.json +0 -0
  343. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/ModelCallProvenance.schema.json +0 -0
  344. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/MultiActionCampaignReport.schema.json +0 -0
  345. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/NormalizedResult.schema.json +0 -0
  346. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/NumericalAssessment.schema.json +0 -0
  347. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/NumericalDiagnostics.schema.json +0 -0
  348. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/NumericalGate.schema.json +0 -0
  349. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/ObservablePrediction.schema.json +0 -0
  350. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/OutboxIntent.schema.json +0 -0
  351. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/PICCaseResult.schema.json +0 -0
  352. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/PICConfig.schema.json +0 -0
  353. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/PICConfirmationAttempt.schema.json +0 -0
  354. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/PICConfirmationDesign.schema.json +0 -0
  355. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/PICConfirmationReport.schema.json +0 -0
  356. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/PICMixtureCaseResult.schema.json +0 -0
  357. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/PICNumericalConfig.schema.json +0 -0
  358. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/PICSufficiencyResult.schema.json +0 -0
  359. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/ParameterSpace.schema.json +0 -0
  360. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/ParticleStatisticsIntervention.schema.json +0 -0
  361. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/ProposalDraft.schema.json +0 -0
  362. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/ProposalRecord.schema.json +0 -0
  363. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/ProposalRequest.schema.json +0 -0
  364. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/ProposalValidation.schema.json +0 -0
  365. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/ProposedToolCall.schema.json +0 -0
  366. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/QualifiedWarpXCampaignPackage.schema.json +0 -0
  367. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/QualifiedWarpXInstrument.schema.json +0 -0
  368. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/ReferenceQualification.schema.json +0 -0
  369. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/ResearchBudget.schema.json +0 -0
  370. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/ResearchCampaignReport.schema.json +0 -0
  371. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/ResearchConclusion.schema.json +0 -0
  372. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/ResearchDecision.schema.json +0 -0
  373. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/ResearchEvidencePolicy.schema.json +0 -0
  374. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/ResearchHypothesis.schema.json +0 -0
  375. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/ResearchObservation.schema.json +0 -0
  376. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/ResearchProblemContract.schema.json +0 -0
  377. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/ResearchRelation.schema.json +0 -0
  378. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/ResearchToolManifest.schema.json +0 -0
  379. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/ResearchToolResult.schema.json +0 -0
  380. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/RunEvidence.schema.json +0 -0
  381. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/RunPlan.schema.json +0 -0
  382. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/SearchStrategy.schema.json +0 -0
  383. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/SheetThicknessIntervention.schema.json +0 -0
  384. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/SubprocessResearchToolConfig.schema.json +0 -0
  385. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/SymmetricMixtureCandidate.schema.json +0 -0
  386. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/WarpXCalibrationPoint.schema.json +0 -0
  387. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/WarpXCaseSummary.schema.json +0 -0
  388. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/WarpXCompiledCase.schema.json +0 -0
  389. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/WarpXConfirmationAttempt.schema.json +0 -0
  390. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/WarpXConfirmationDesign.schema.json +0 -0
  391. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/WarpXConfirmationFailure.schema.json +0 -0
  392. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/WarpXConfirmationReport.schema.json +0 -0
  393. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/WarpXConfirmationResolution.schema.json +0 -0
  394. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/WarpXExecutionProfile.schema.json +0 -0
  395. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/WarpXNumericalConfig.schema.json +0 -0
  396. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/WarpXPairSummary.schema.json +0 -0
  397. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/WarpXPhysicalConfig.schema.json +0 -0
  398. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/WarpXPhysicsQualificationRecord.schema.json +0 -0
  399. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/WarpXQualificationRecord.schema.json +0 -0
  400. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/WarpXQualifiedScope.schema.json +0 -0
  401. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/mvp/MVPAgentAction.schema.json +0 -0
  402. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/mvp/MVPAgentReport.schema.json +0 -0
  403. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/mvp/MVPClaim.schema.json +0 -0
  404. {simjecture-0.4.0 → simjecture-0.5.0}/schemas/mvp/MVPClaimLedger.schema.json +0 -0
  405. {simjecture-0.4.0 → simjecture-0.5.0}/scripts/postprocess_warpx_case.py +0 -0
  406. {simjecture-0.4.0 → simjecture-0.5.0}/scripts/probe_provider.py +0 -0
  407. {simjecture-0.4.0 → simjecture-0.5.0}/scripts/propose_hypothesis.py +0 -0
  408. {simjecture-0.4.0 → simjecture-0.5.0}/scripts/propose_search_strategy.py +0 -0
  409. {simjecture-0.4.0 → simjecture-0.5.0}/scripts/qualify_warpx.py +0 -0
  410. {simjecture-0.4.0 → simjecture-0.5.0}/scripts/qualify_warpx_physics.py +0 -0
  411. {simjecture-0.4.0 → simjecture-0.5.0}/scripts/run_admitted_proposal.py +0 -0
  412. {simjecture-0.4.0 → simjecture-0.5.0}/scripts/run_blinded_search.py +0 -0
  413. {simjecture-0.4.0 → simjecture-0.5.0}/scripts/run_qualified_warpx_campaign.py +0 -0
  414. {simjecture-0.4.0 → simjecture-0.5.0}/scripts/run_warpx_confirmation.py +0 -0
  415. {simjecture-0.4.0 → simjecture-0.5.0}/scripts/run_warpx_pair.py +0 -0
  416. {simjecture-0.4.0 → simjecture-0.5.0}/skills/eos/SKILL.md +0 -0
  417. {simjecture-0.4.0 → simjecture-0.5.0}/skills/eos/agents/openai.yaml +0 -0
  418. {simjecture-0.4.0 → simjecture-0.5.0}/skills/eos/examples/atomec_runtime_smoke.py +0 -0
  419. {simjecture-0.4.0 → simjecture-0.5.0}/skills/eos/examples/maneos_runtime_smoke.py +0 -0
  420. {simjecture-0.4.0 → simjecture-0.5.0}/skills/eos/examples/singularity_runtime_smoke.py +0 -0
  421. {simjecture-0.4.0 → simjecture-0.5.0}/skills/eos/manifest.json +0 -0
  422. {simjecture-0.4.0 → simjecture-0.5.0}/skills/eos/references/execution-output.md +0 -0
  423. {simjecture-0.4.0 → simjecture-0.5.0}/skills/eos/references/local-deployment.md +0 -0
  424. {simjecture-0.4.0 → simjecture-0.5.0}/skills/eos/scripts/bootstrap_atomec.sh +0 -0
  425. {simjecture-0.4.0 → simjecture-0.5.0}/skills/eos/scripts/bootstrap_maneos.sh +0 -0
  426. {simjecture-0.4.0 → simjecture-0.5.0}/skills/eos/scripts/bootstrap_singularity_eos.sh +0 -0
  427. {simjecture-0.4.0 → simjecture-0.5.0}/skills/eos/scripts/maneos_query.f90 +0 -0
  428. {simjecture-0.4.0 → simjecture-0.5.0}/skills/eos/scripts/singularity_query.cpp +0 -0
  429. {simjecture-0.4.0 → simjecture-0.5.0}/skills/flash-mhd/SKILL.md +0 -0
  430. {simjecture-0.4.0 → simjecture-0.5.0}/skills/flash-mhd/agents/openai.yaml +0 -0
  431. {simjecture-0.4.0 → simjecture-0.5.0}/skills/flash-mhd/examples/runtime_smoke.py +0 -0
  432. {simjecture-0.4.0 → simjecture-0.5.0}/skills/flash-mhd/manifest.json +0 -0
  433. {simjecture-0.4.0 → simjecture-0.5.0}/skills/flash-mhd/references/execution-output.md +0 -0
  434. {simjecture-0.4.0 → simjecture-0.5.0}/skills/flash-mhd/references/local-deployment.md +0 -0
  435. {simjecture-0.4.0 → simjecture-0.5.0}/skills/flash-mhd/references/model-validity.md +0 -0
  436. {simjecture-0.4.0 → simjecture-0.5.0}/skills/flash-mhd/references/private-install.md +0 -0
  437. {simjecture-0.4.0 → simjecture-0.5.0}/skills/flash-mhd/scripts/bootstrap_flash.sh +0 -0
  438. {simjecture-0.4.0 → simjecture-0.5.0}/skills/opacity/SKILL.md +0 -0
  439. {simjecture-0.4.0 → simjecture-0.5.0}/skills/opacity/agents/openai.yaml +0 -0
  440. {simjecture-0.4.0 → simjecture-0.5.0}/skills/opacity/examples/optab_runtime_smoke.py +0 -0
  441. {simjecture-0.4.0 → simjecture-0.5.0}/skills/opacity/manifest.json +0 -0
  442. {simjecture-0.4.0 → simjecture-0.5.0}/skills/opacity/references/execution-output.md +0 -0
  443. {simjecture-0.4.0 → simjecture-0.5.0}/skills/opacity/references/local-deployment.md +0 -0
  444. {simjecture-0.4.0 → simjecture-0.5.0}/skills/opacity/scripts/bootstrap_optab.sh +0 -0
  445. {simjecture-0.4.0 → simjecture-0.5.0}/skills/opacity/scripts/write_optab_preflight.py +0 -0
  446. {simjecture-0.4.0 → simjecture-0.5.0}/skills/python-experiment/SKILL.md +0 -0
  447. {simjecture-0.4.0 → simjecture-0.5.0}/skills/python-experiment/manifest.json +0 -0
  448. {simjecture-0.4.0 → simjecture-0.5.0}/skills/scientific-markdown/SKILL.md +0 -0
  449. {simjecture-0.4.0 → simjecture-0.5.0}/skills/scientific-markdown/agents/openai.yaml +0 -0
  450. {simjecture-0.4.0 → simjecture-0.5.0}/skills/scientific-markdown/manifest.json +0 -0
  451. {simjecture-0.4.0 → simjecture-0.5.0}/skills/warpx/SKILL.md +0 -0
  452. {simjecture-0.4.0 → simjecture-0.5.0}/skills/warpx/agents/openai.yaml +0 -0
  453. {simjecture-0.4.0 → simjecture-0.5.0}/skills/warpx/examples/implicit_em_smoke.py +0 -0
  454. {simjecture-0.4.0 → simjecture-0.5.0}/skills/warpx/examples/minimal_smoke.py +0 -0
  455. {simjecture-0.4.0 → simjecture-0.5.0}/skills/warpx/examples/openpmd_field_smoke.py +0 -0
  456. {simjecture-0.4.0 → simjecture-0.5.0}/skills/warpx/examples/openpmd_xz_reader.py +0 -0
  457. {simjecture-0.4.0 → simjecture-0.5.0}/skills/warpx/manifest.json +0 -0
  458. {simjecture-0.4.0 → simjecture-0.5.0}/skills/warpx/references/2d-xz-commissioning.md +0 -0
  459. {simjecture-0.4.0 → simjecture-0.5.0}/skills/warpx/references/cpu-launch-tuning.md +0 -0
  460. {simjecture-0.4.0 → simjecture-0.5.0}/skills/warpx/references/diagnostics.md +0 -0
  461. {simjecture-0.4.0 → simjecture-0.5.0}/skills/warpx/references/gpu-launch-tuning.md +0 -0
  462. {simjecture-0.4.0 → simjecture-0.5.0}/skills/warpx/references/hybrid-pic.md +0 -0
  463. {simjecture-0.4.0 → simjecture-0.5.0}/skills/warpx/references/local-cuda-deployment.md +0 -0
  464. {simjecture-0.4.0 → simjecture-0.5.0}/skills/warpx/references/numerical-risks.md +0 -0
  465. {simjecture-0.4.0 → simjecture-0.5.0}/skills/warpx/references/picmi-interface.md +0 -0
  466. {simjecture-0.4.0 → simjecture-0.5.0}/skills/warpx/references/resource-scaling.md +0 -0
  467. {simjecture-0.4.0 → simjecture-0.5.0}/skills/warpx/references/time-integration.md +0 -0
  468. {simjecture-0.4.0 → simjecture-0.5.0}/skills/warpx/scripts/benchmark_cpu_threads.py +0 -0
  469. {simjecture-0.4.0 → simjecture-0.5.0}/skills/warpx/scripts/benchmark_gpu.py +0 -0
  470. {simjecture-0.4.0 → simjecture-0.5.0}/skills/warpx/scripts/bootstrap_local_cuda.sh +0 -0
  471. {simjecture-0.4.0 → simjecture-0.5.0}/skills/warpx/scripts/probe_local_cuda.py +0 -0
  472. {simjecture-0.4.0 → simjecture-0.5.0}/skills/warpx/scripts/reduced_energy_budget.py +0 -0
  473. {simjecture-0.4.0 → simjecture-0.5.0}/skills/warpx/scripts/run_local_cuda.sh +0 -0
  474. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/__main__.py +0 -0
  475. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/action_handlers.py +0 -0
  476. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/adapters/__init__.py +0 -0
  477. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/adapters/base.py +0 -0
  478. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/adapters/fake.py +0 -0
  479. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/adapters/pic.py +0 -0
  480. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/adapters/warpx.py +0 -0
  481. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/autonomous_research.py +0 -0
  482. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/benchmarks/__init__.py +0 -0
  483. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/benchmarks/electrostatic_pic.py +0 -0
  484. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/benchmarks/kinetic_sufficiency.py +0 -0
  485. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/campaign.py +0 -0
  486. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/campaign_jobs.py +0 -0
  487. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/confirmation.py +0 -0
  488. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/control.py +0 -0
  489. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/corrective_audit.py +0 -0
  490. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/deployment.py +0 -0
  491. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/discovery.py +0 -0
  492. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/domains/__init__.py +0 -0
  493. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/domains/base.py +0 -0
  494. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/domains/kinetic_sufficiency.py +0 -0
  495. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/kernel_worker.py +0 -0
  496. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/ledger.py +0 -0
  497. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/lifecycle.py +0 -0
  498. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/literature.py +0 -0
  499. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/llm.py +0 -0
  500. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/mcp_schemas.py +0 -0
  501. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/mcp_server.py +0 -0
  502. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/models.py +0 -0
  503. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/mvp_control.py +0 -0
  504. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/mvp_guidance.py +0 -0
  505. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/mvp_skills.py +0 -0
  506. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/oneshot.py +0 -0
  507. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/orchestration.py +0 -0
  508. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/outbox.py +0 -0
  509. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/parameters.py +0 -0
  510. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/presentation.py +0 -0
  511. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/proposals.py +0 -0
  512. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/research_tools.py +0 -0
  513. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/schema_export.py +0 -0
  514. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/search.py +0 -0
  515. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/semantics.py +0 -0
  516. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/tui/__init__.py +0 -0
  517. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/tui/app.py +0 -0
  518. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/tui/claim_views.py +0 -0
  519. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/warpx_analysis.py +0 -0
  520. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/warpx_campaign.py +0 -0
  521. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/warpx_confirmation.py +0 -0
  522. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/web/__init__.py +0 -0
  523. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/web/server.py +0 -0
  524. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/web/static/markdown.js +0 -0
  525. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/web/static/vendor/LICENSE.dagre.txt +0 -0
  526. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/web/static/vendor/LICENSE.dompurify.txt +0 -0
  527. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/web/static/vendor/LICENSE.katex.txt +0 -0
  528. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/web/static/vendor/LICENSE.marked.txt +0 -0
  529. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/web/static/vendor/README.md +0 -0
  530. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/web/static/vendor/dagre-2.0.0.min.js +0 -0
  531. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/web/static/vendor/dompurify-3.4.14.min.js +0 -0
  532. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/web/static/vendor/katex-0.18.4.min.js +0 -0
  533. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/web/static/vendor/katex-auto-render-0.18.4.min.js +0 -0
  534. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/web/static/vendor/marked-18.0.10.umd.js +0 -0
  535. {simjecture-0.4.0 → simjecture-0.5.0}/src/conjecture_solver/workspace_images.py +0 -0
  536. {simjecture-0.4.0 → simjecture-0.5.0}/tests/__init__.py +0 -0
  537. {simjecture-0.4.0 → simjecture-0.5.0}/tests/fixtures/fake_warpx_runner.py +0 -0
  538. {simjecture-0.4.0 → simjecture-0.5.0}/tests/test_adapter.py +0 -0
  539. {simjecture-0.4.0 → simjecture-0.5.0}/tests/test_autonomous_research.py +0 -0
  540. {simjecture-0.4.0 → simjecture-0.5.0}/tests/test_benchmark.py +0 -0
  541. {simjecture-0.4.0 → simjecture-0.5.0}/tests/test_campaign.py +0 -0
  542. {simjecture-0.4.0 → simjecture-0.5.0}/tests/test_campaign_jobs.py +0 -0
  543. {simjecture-0.4.0 → simjecture-0.5.0}/tests/test_control.py +0 -0
  544. {simjecture-0.4.0 → simjecture-0.5.0}/tests/test_corrective_audit.py +0 -0
  545. {simjecture-0.4.0 → simjecture-0.5.0}/tests/test_deployment.py +0 -0
  546. {simjecture-0.4.0 → simjecture-0.5.0}/tests/test_domain_plugins.py +0 -0
  547. {simjecture-0.4.0 → simjecture-0.5.0}/tests/test_ledger.py +0 -0
  548. {simjecture-0.4.0 → simjecture-0.5.0}/tests/test_lifecycle.py +0 -0
  549. {simjecture-0.4.0 → simjecture-0.5.0}/tests/test_literature.py +0 -0
  550. {simjecture-0.4.0 → simjecture-0.5.0}/tests/test_llm.py +0 -0
  551. {simjecture-0.4.0 → simjecture-0.5.0}/tests/test_mcp_server.py +0 -0
  552. {simjecture-0.4.0 → simjecture-0.5.0}/tests/test_models.py +0 -0
  553. {simjecture-0.4.0 → simjecture-0.5.0}/tests/test_mvp_claims.py +0 -0
  554. {simjecture-0.4.0 → simjecture-0.5.0}/tests/test_mvp_control.py +0 -0
  555. {simjecture-0.4.0 → simjecture-0.5.0}/tests/test_mvp_monitor.py +0 -0
  556. {simjecture-0.4.0 → simjecture-0.5.0}/tests/test_mvp_pause.py +0 -0
  557. {simjecture-0.4.0 → simjecture-0.5.0}/tests/test_mvp_status_watch.py +0 -0
  558. {simjecture-0.4.0 → simjecture-0.5.0}/tests/test_oneshot.py +0 -0
  559. {simjecture-0.4.0 → simjecture-0.5.0}/tests/test_orchestration.py +0 -0
  560. {simjecture-0.4.0 → simjecture-0.5.0}/tests/test_outbox.py +0 -0
  561. {simjecture-0.4.0 → simjecture-0.5.0}/tests/test_parameters.py +0 -0
  562. {simjecture-0.4.0 → simjecture-0.5.0}/tests/test_pic.py +0 -0
  563. {simjecture-0.4.0 → simjecture-0.5.0}/tests/test_proposals.py +0 -0
  564. {simjecture-0.4.0 → simjecture-0.5.0}/tests/test_recorded_demo.py +0 -0
  565. {simjecture-0.4.0 → simjecture-0.5.0}/tests/test_role_assignments.py +0 -0
  566. {simjecture-0.4.0 → simjecture-0.5.0}/tests/test_schema_export.py +0 -0
  567. {simjecture-0.4.0 → simjecture-0.5.0}/tests/test_search.py +0 -0
  568. {simjecture-0.4.0 → simjecture-0.5.0}/tests/test_semantics.py +0 -0
  569. {simjecture-0.4.0 → simjecture-0.5.0}/tests/test_tui_claim_views.py +0 -0
  570. {simjecture-0.4.0 → simjecture-0.5.0}/tests/test_warpx.py +0 -0
  571. {simjecture-0.4.0 → simjecture-0.5.0}/tests/test_warpx_analysis.py +0 -0
  572. {simjecture-0.4.0 → simjecture-0.5.0}/tests/test_warpx_campaign.py +0 -0
  573. {simjecture-0.4.0 → simjecture-0.5.0}/tests/test_warpx_openpmd_xz.py +0 -0
  574. {simjecture-0.4.0 → simjecture-0.5.0}/tests/test_warpx_qualification.py +0 -0
  575. {simjecture-0.4.0 → simjecture-0.5.0}/tests/test_warpx_reduced_energy.py +0 -0
  576. {simjecture-0.4.0 → simjecture-0.5.0}/tests/test_workspace_images.py +0 -0
@@ -4,6 +4,22 @@ This project follows semantic versioning. Dates use ISO 8601.
4
4
 
5
5
  ## Unreleased
6
6
 
7
+ ## 0.5.0 — 2026-09-21
8
+
9
+ - Default new native-agent studies to minimal, with structured and frontier
10
+ selectable in the CLI, browser and TUI. Mode and backend are separate choices;
11
+ DSH/API remain explicitly labelled legacy routes. Existing records retain their mode.
12
+ - Preserve active counterexample search, minimal-change repair rationale,
13
+ branching hypothesis ancestry and fresh prospective validation in the smaller service.
14
+ - Add live terminal activity, job/review counts and remaining budget; project
15
+ minimal evidence and hypothesis trees into the browser and terminal interface.
16
+ - Preserve deadlines across pause/resume, surface provider failures as resumable
17
+ states, and verify numerical-worker identity before cancellation.
18
+ - Make the launch package usable with native agent logins without installing DSH;
19
+ retain an optional `setup.sh --with-dsh` path.
20
+ - Retain measured limitations: simple-task follow-ups completed faster but used
21
+ more tokens; the previous hard FLASH trial did not establish superiority to a plain agent.
22
+
7
23
  ## 0.4.0 — 2026-09-20
8
24
 
9
25
  - Updated the bundled DSH integration to the tested `0.1.5-rc.2` runtime,
@@ -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.4.0
6
- date-released: 2026-09-20
5
+ version: 0.5.0
6
+ date-released: 2026-09-21
7
7
  abstract: >-
8
8
  An evidence-governed runtime for autonomous computational experimentation and
9
9
  falsification over hypothesis trees.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: simjecture
3
- Version: 0.4.0
3
+ Version: 0.5.0
4
4
  Summary: Evidence-governed autonomous experimentation and falsification for computational science
5
5
  Project-URL: Homepage, https://github.com/tomzhu0225/simjecture
6
6
  Project-URL: Documentation, https://github.com/tomzhu0225/simjecture/tree/main/docs
@@ -50,9 +50,9 @@ writes its own experiments and diagnostics, and searches deliberately for the
50
50
  simplest result that survives independent verification. The harness controls
51
51
  what may count as evidence.
52
52
 
53
- > **Research preview:** version 0.4 extends the infrastructure with a
54
- > license-safe FLASH resistive-MHD capability and an explicitly bounded
55
- > island-coalescence audit. It does not claim to solve arbitrary
53
+ > **Research preview:** version 0.5 defaults native-agent studies to minimal mode,
54
+ > adds live terminal progress and shared browser/TUI mode selection, and retains
55
+ > the license-safe FLASH capability and bounded scientific audits. It does not claim to solve arbitrary
56
56
  > scientific prose, establish truth about nature from one simulator, or replace
57
57
  > independent scientific review.
58
58
 
@@ -63,6 +63,23 @@ that have a sharp question and a checkable instrument. The 0.3 preview records
63
63
  both the origin domain and that generalization, and adds a fluid-MHD campaign
64
64
  whose unresolved repair state is preserved rather than hidden.
65
65
 
66
+ ## Start an agent-owned study
67
+
68
+ New native-agent studies default to **minimal**: the agent chooses its approach,
69
+ while Simjecture preserves evidence, counterexamples and hypothesis ancestry.
70
+
71
+ ```bash
72
+ simjecture study --campaign ./runs/my-study \
73
+ --hypothesis-file hypothesis.txt --instructions-file instructions.md \
74
+ --backend codex-glm --model glm-5.3 --wall-seconds 3600
75
+ ```
76
+
77
+ Use `--mode structured` or `--mode frontier` to select another workflow. Resuming
78
+ keeps the recorded mode and deadline. See [minimal-mode usage](docs/how-to/research-service.md)
79
+ for the scientific rules, backend choices and explicit legacy DSH/API routes.
80
+ The measured hard-task benchmark does not establish a completion advantage over
81
+ a plain agent; this default reflects the preferred agent-owned design.
82
+
66
83
  ## The core idea: AI low-hanging fruit
67
84
 
68
85
  Scientific problems are not uniformly difficult. A candidate may be buried in
@@ -13,9 +13,9 @@ writes its own experiments and diagnostics, and searches deliberately for the
13
13
  simplest result that survives independent verification. The harness controls
14
14
  what may count as evidence.
15
15
 
16
- > **Research preview:** version 0.4 extends the infrastructure with a
17
- > license-safe FLASH resistive-MHD capability and an explicitly bounded
18
- > island-coalescence audit. It does not claim to solve arbitrary
16
+ > **Research preview:** version 0.5 defaults native-agent studies to minimal mode,
17
+ > adds live terminal progress and shared browser/TUI mode selection, and retains
18
+ > the license-safe FLASH capability and bounded scientific audits. It does not claim to solve arbitrary
19
19
  > scientific prose, establish truth about nature from one simulator, or replace
20
20
  > independent scientific review.
21
21
 
@@ -26,6 +26,23 @@ that have a sharp question and a checkable instrument. The 0.3 preview records
26
26
  both the origin domain and that generalization, and adds a fluid-MHD campaign
27
27
  whose unresolved repair state is preserved rather than hidden.
28
28
 
29
+ ## Start an agent-owned study
30
+
31
+ New native-agent studies default to **minimal**: the agent chooses its approach,
32
+ while Simjecture preserves evidence, counterexamples and hypothesis ancestry.
33
+
34
+ ```bash
35
+ simjecture study --campaign ./runs/my-study \
36
+ --hypothesis-file hypothesis.txt --instructions-file instructions.md \
37
+ --backend codex-glm --model glm-5.3 --wall-seconds 3600
38
+ ```
39
+
40
+ Use `--mode structured` or `--mode frontier` to select another workflow. Resuming
41
+ keeps the recorded mode and deadline. See [minimal-mode usage](docs/how-to/research-service.md)
42
+ for the scientific rules, backend choices and explicit legacy DSH/API routes.
43
+ The measured hard-task benchmark does not establish a completion advantage over
44
+ a plain agent; this default reflects the preferred agent-owned design.
45
+
29
46
  ## The core idea: AI low-hanging fruit
30
47
 
31
48
  Scientific problems are not uniformly difficult. A candidate may be buried in
@@ -3,7 +3,7 @@ from __future__ import annotations
3
3
  project = "Simjecture"
4
4
  author = "Bowen Zhu"
5
5
  copyright = "2026, Bowen Zhu and contributors"
6
- release = "0.4.0"
6
+ release = "0.5.0"
7
7
 
8
8
  extensions = [
9
9
  "myst_parser",
@@ -0,0 +1,68 @@
1
+ # First autonomous run
2
+
3
+ To explore the interface before supplying an API key, replay the committed
4
+ Gray–Scott record. This is read-only and starts neither a model call nor a
5
+ simulation:
6
+
7
+ ```bash
8
+ uv sync --frozen
9
+ uv run python demos/gray_scott_counterexample/verify_record.py
10
+ uv run simjecture web demos/gray_scott_counterexample/record --read-only
11
+ ```
12
+
13
+ See [Recorded Gray–Scott demo](../demos/gray-scott.md) for the scientific result
14
+ and the boundaries of that record.
15
+
16
+ To start a new study, install and log in to a supported native agent CLI
17
+ (Codex GLM, Codex, Grok or AGY), then open the browser:
18
+
19
+ ```bash
20
+ uv run simjecture web
21
+ ```
22
+
23
+ In **New hypothesis**, choose mode, backend and model separately. **Minimal** is
24
+ the default. It keeps the agent's native tools and planning freedom while recording
25
+ experiments, counterexample searches, hypothesis repairs and independent reviews.
26
+ Structured and frontier modes remain selectable. DSH and direct API routes are
27
+ explicit legacy choices and require their separate provider configuration.
28
+
29
+ For a terminal run, write a bounded statement in `hypothesis.txt` and its test
30
+ scope, resource constraints and acceptance criteria in `instructions.md`:
31
+
32
+ ```bash
33
+ uv run simjecture study --campaign artifacts/first-study \
34
+ --hypothesis-file hypothesis.txt --instructions-file instructions.md \
35
+ --backend codex-glm --model glm-5.3 --wall-seconds 3600
36
+ ```
37
+
38
+ The terminal shows current activity, elapsed/remaining time and experiment/review
39
+ counts. Use `--quiet` to suppress progress. Select `--mode structured` or
40
+ `--mode frontier` when starting a new directory. Existing mode, backend and wall
41
+ deadline are retained on resume.
42
+
43
+ Minimal records include `research.json`, immutable experiment snapshots,
44
+ prospective repair commitments, independent review receipts and a final
45
+ `research_report.json`. A clean agent exit is only a checkpoint. A supported root
46
+ or an accepted falsification followed by a supported repair completes the study;
47
+ uncertainty stays unresolved. Numerical convergence and physical validity remain
48
+ scientific obligations. See [minimal research](../how-to/research-service.md).
49
+
50
+ Inspect or control the same directory:
51
+
52
+ ```bash
53
+ uv run simjecture status artifacts/first-study
54
+ uv run simjecture watch artifacts/first-study
55
+ uv run simjecture web artifacts/first-study
56
+ uv run simjecture pause artifacts/first-study
57
+ uv run simjecture resume artifacts/first-study
58
+ ```
59
+
60
+ Pause stops the native agent at the supervisor boundary. Already recorded jobs
61
+ may finish within their existing limits; the wall deadline continues. Cancel or
62
+ deadline exhaustion terminates active recorded jobs. A provider outage pauses
63
+ with the evidence intact rather than inventing a scientific conclusion.
64
+
65
+ The optional [Terminal interface](terminal-ui.md) offers the same mode/backend
66
+ selection and a dashboard for SSH and headless machines. The legacy `simjecture
67
+ mvp` and [DSH](../how-to/deepseek-harness.md) entry points remain available; their
68
+ workbench/commissioning contracts are unchanged.
@@ -17,7 +17,15 @@ uv run simjecture install core
17
17
  uv run simjecture doctor --profile core
18
18
  ```
19
19
 
20
- ## Model credentials
20
+ ## Native agent login
21
+
22
+ New studies default to minimal mode. Install and log in with Codex GLM, Codex,
23
+ Grok or AGY independently, then choose that backend and model in the launcher.
24
+ Simjecture does not redistribute those CLIs or subscriptions. Native tools remain
25
+ available; numerical execution still uses the Bubblewrap sandbox. No DeepSeek
26
+ API key or DSH install is required for native-agent studies.
27
+
28
+ ## Legacy API credentials
21
29
 
22
30
  Credentials are process-local harness inputs. They are never mounted into the
23
31
  agent workspace.
@@ -2,10 +2,18 @@
2
2
 
3
3
  The local web interface is the primary human-facing view of a Simjecture
4
4
  campaign. It makes the scientific structure visible without replacing the
5
- durable record. `mvp_manifest.json`, `transcript.jsonl`,
5
+ durable record. New native studies default to minimal; mode, backend and model
6
+ are separate launch choices. Minimal reads `research.json`, experiment snapshots,
7
+ commitments and reviews. Legacy `mvp_manifest.json`, `transcript.jsonl`,
6
8
  `hypothesis_ledger.json`, `mvp_report.json`, and artifact provenance remain the
7
9
  sources of truth.
8
10
 
11
+ Minimal studies show actual agent activity instead of the fixed-stage role strip.
12
+ The header shows mode/backend/model and remaining budget. Long guidance and review
13
+ rationales fold away, with failed reviews expanded. Usage is pending/unavailable
14
+ when the backend has not supplied counters, never assumed to be zero. DSH/API
15
+ remain explicitly labelled legacy routes; incompatible combinations are disabled.
16
+
9
17
  ## Open a recorded campaign
10
18
 
11
19
  The browser interface is included in the core installation and has no Node.js
@@ -0,0 +1,138 @@
1
+ # Agent-owned research: minimal mode
2
+
3
+ `simjecture study` defaults to minimal mode for new native-agent studies. The
4
+ native agent chooses its plan, writes code and uses its existing tools; the
5
+ service records evidence and independently reviews claims. Select `--mode
6
+ structured` or `--mode frontier` to use the other workflows. `--workflow` is an
7
+ alias for `--mode`. The `simjecture-supervise` and `simjecture-research` entry
8
+ points use the same launcher.
9
+
10
+ Resume without a mode flag to retain the recorded mode. Changing a study's mode
11
+ requires a new campaign directory; no existing evidence is silently converted.
12
+ Old studies retain their existing scientific-policy schema. The browser and TUI
13
+ launch and monitor minimal, structured and frontier native-agent studies. Select
14
+ mode and backend separately. DSH/API remain explicit legacy choices; selecting an
15
+ unsupported combination returns an error rather than silently changing modes.
16
+ The `mvp` command remains the legacy API entry point.
17
+
18
+ ```bash
19
+ simjecture study --campaign /absolute/path/to/new-study \
20
+ --hypothesis-file hypothesis.txt --instructions-file instructions.md \
21
+ --backend codex-glm --model glm-5.3 --wall-seconds 3600
22
+ ```
23
+
24
+ From a checkout use `python -m conjecture_solver.research_supervisor` with the
25
+ checkout's `src` on `PYTHONPATH`. The backend uses its existing login. Codex/GLM
26
+ resume the same native thread; other configured CLI backends preserve the working
27
+ folder and evidence state. The wall deadline survives process restarts. Operator instructions are frozen before experiments and included in every reviewer packet; changing them requires a new study.
28
+
29
+ The generated `research/lab.py` offers five operations:
30
+
31
+ ```python
32
+ from lab import lab
33
+
34
+ experiment = lab.run("calculation.py", args=["--n", "128"],
35
+ inputs=["helper.py"], outputs=["result.json"], key="case-128")
36
+ state = lab.status() # Compact receipts; compact=False includes full metadata.
37
+ # After the experiment reports succeeded:
38
+ request = lab.review([experiment["id"]], "The finite result supports ...",
39
+ disposition="supported",
40
+ challenge={"strategy": "Exhaustive finite-domain test",
41
+ "experiments": [experiment["id"]],
42
+ "outcome": "Every declared case passed"})
43
+ review = lab.review_status(request["id"])
44
+ ```
45
+
46
+ `run` returns immediately. You may keep working while jobs execute, or end the model turn; the host then waits for a recorded job to finish before resuming the agent. The service snapshots source and declared local inputs,
47
+ records their hashes and arguments, and runs the experiment inside Simjecture's
48
+ existing Bubblewrap numerical sandbox. An installed capability can be selected
49
+ with `capability=NAME`. Supply its manifest directory using `--capabilities` or
50
+ the numerical instrument registry field in the browser/TUI. With no registry,
51
+ minimal exposes only the Python numerical sandbox. Its identity is bound to the receipt. Native tools are
52
+ available for exploration; execution success alone does not accept a claim.
53
+
54
+ Identical requests reuse the same receipt. Change `key` for an intentional
55
+ replicate. Changed source, inputs or arguments produce a new experiment identity.
56
+ Result files and raw outputs remain under `experiments/ID/workspace/`; agents can
57
+ inspect them but must not modify recorded artifacts. Review rechecks their hashes.
58
+ The initial implementation bounds each experiment to 4 GiB and the study to
59
+ 8 GiB of recorded experiment storage with conservative reservations for active experiments. These bounds do not police arbitrary native working-folder writes.
60
+
61
+ A review request returns a persistent receipt, independent of the caller's
62
+ working directory. End the model turn after submitting it: the supervisor opens
63
+ a fresh, tool-free reviewer context and records the result. Missing evidence
64
+ returns explicit gaps. A malformed reviewer response never becomes approval.
65
+ Each review targets one explicit claim ID and statement; the host rejects a mismatched target. Approval of an original falsification is distinct from completion of the study, which still requires a supported repair. Pending reviews survive pauses and deadlines. Scientific approval authority is
66
+ not exposed through `lab`.
67
+
68
+ For a repair, commit the prediction and exact commands first:
69
+
70
+ ```python
71
+ plan = lab.commit("A bounded refined claim ...", source="validation.py",
72
+ cases=[["--case", "a"], ["--case", "b"]],
73
+ acceptance="Predeclared quantitative criteria ...", inputs=[],
74
+ parent="root", rationale="Smallest justified change and why ...")
75
+ fresh = lab.run("validation.py", args=["--case", "a"],
76
+ outputs=["result.json"], commitment=plan["id"])
77
+ # Execute all committed cases, then review their receipts with claim=plan["id"].
78
+ ```
79
+
80
+ New studies require evidence of active counterexample search for any supported
81
+ claim. The `challenge` identifies the strategy, submitted experiments and outcome;
82
+ the reviewer judges whether the tests actually challenge the claim. Boundary cases,
83
+ failure-prone regimes or exhaustive finite-domain testing may qualify. There is
84
+ no mandatory extra search phase or fixed number of tests.
85
+
86
+ A repair names its parent (`root` or an earlier commitment ID) and explains why
87
+ each changed assumption, scope or bound is necessary. This creates a durable
88
+ branching hypothesis tree. A repair's review includes ancestor statements and the
89
+ accepted counterexamples' actual source/results. Every ancestor must have an
90
+ accepted falsification before a supported descendant can close the study.
91
+ Minimality is judged scientifically, not by text length; scope restrictions must
92
+ explain failures rather than erase them. Experiment workspaces are immutable
93
+ snapshots, not separate Git worktrees for every hypothesis.
94
+
95
+ The service rejects changed committed source/arguments, retrospective relabelling
96
+ of earlier runs and omission of committed cases. The reviewer still must judge
97
+ whether the repair is meaningful: a fitted range tested on its own fitting data
98
+ is not validated research.
99
+
100
+ Ordinary calculations do not need a separate instrument-claim hierarchy or an
101
+ approval before every calculation. Physical adequacy, controls and convergence
102
+ remain scientific obligations and are checked at review. A supported original
103
+ claim completes the study; a falsified original requires an independently
104
+ supported repair. Unresolved evidence and normal model exit do not complete it.
105
+
106
+ This is a cooperative same-account trust model. The native CLI agent is not
107
+ adversarially isolated from host files; host-only Python methods are an interface
108
+ boundary, not an OS security boundary. A hostile-worker deployment needs separate
109
+ accounts or a separately authenticated service. Numerical execution retains its
110
+ existing sandbox. No existing campaign is migrated automatically.
111
+
112
+ Native-thread continuation prompts are short; full instructions remain in
113
+ `research/RESEARCH_GUIDE.md`. `lab.status()` includes remaining wall time and
114
+ receipt/workspace paths, with full metadata available through `compact=False`.
115
+ For long solvers prefer separately recorded cases, check a pilot's output schema,
116
+ and reserve time for validation and synthesis.
117
+
118
+ Minimal is the new-study default by operator preference, not because the benchmark
119
+ established superiority. The workflow is evaluated against plain, structured and frontier runs;
120
+ see [the measured results](https://github.com/tomzhu0225/simjecture/blob/main/research/evaluations/research-service-v2/RESULTS.md) and [benchmark plan](https://github.com/tomzhu0225/simjecture/blob/main/research/evaluations/research-service-v2/PLAN.md).
121
+
122
+ Latest iteration: [scientific-rule and default-mode tests](https://github.com/tomzhu0225/simjecture/blob/main/research/evaluations/minimal-default/RESULTS.md).
123
+
124
+
125
+ ## Watching and controlling a study
126
+
127
+ A terminal launch prints live activity, backend/model, elapsed/remaining time and
128
+ experiment/review counts. Redirected output gets plain periodic status lines;
129
+ use `--quiet` to suppress them. Open `simjecture web /path/to/study` or
130
+ `simjecture tui /path/to/study` to inspect the same evidence and hypothesis tree.
131
+
132
+ Pause stops the agent at the supervisor boundary; already recorded numerical jobs
133
+ may finish within their existing bounds. Resume retains the original wall deadline
134
+ and mode. Cancel and deadline exhaustion terminate verified active numerical
135
+ workers. Three consecutive provider failures pause the study with its evidence
136
+ intact; ordinary agent exit and inconclusive review do not establish completion.
137
+ Provider usage is shown when the backend supplies completed-turn counters, with
138
+ resumed cumulative counts deduplicated by native thread. Missing usage is not zero.
@@ -0,0 +1,279 @@
1
+ # Scientific roles with Simote agent sessions
2
+
3
+ Simote can run Codex, Grok, and AGY (Antigravity) CLI agents as claim-scoped Simjecture workers.
4
+ Simjecture remains the authority for evidence, claim disposition, jobs, budgets,
5
+ and campaign finalization. The native API runner and DSH profile remain available.
6
+
7
+ Install the matching Simjecture checkout on the compute worker, including the
8
+ `simjecture-call` entry point. Restart Simote after updating its server. Agents
9
+ and their logins remain on the Simote host; compute happens through the existing
10
+ SSH bridge. This integration uses the selected bot's engine and model.
11
+
12
+ In Simote, enable **Simjecture campaigns** under **Settings → General →
13
+ Experimental features**. It is off by default: standalone Simote does not need
14
+ Simjecture, load its campaign page, poll campaigns, or expose campaign tools to
15
+ ordinary agent sessions. Disabling it hides the page and prevents new campaign
16
+ and role launches; existing assigned work can finish and records are preserved.
17
+
18
+ ## Run a shared campaign
19
+
20
+ 1. Configure a campaign-owner bot and one or more worker bots in the same Simote
21
+ team section, using the same named SSH compute machine. Select Codex, Grok, or AGY
22
+ agent engines for the workers, with their existing local logins.
23
+ 2. Ask the owner to use `simjecture_open_campaign`. The owner keeps the campaign
24
+ under its workspace. Scientific worker tasks share that campaign; they do not
25
+ create copies under their own bot workspaces.
26
+ 3. The owner calls `simjecture_assign_role`, for example:
27
+
28
+ ```json
29
+ {
30
+ "campaign_id": "invariant-test",
31
+ "assignment_id": "falsify-root-1",
32
+ "agent_id": "YOUR_GROK_BOT_ID",
33
+ "role": "falsifier",
34
+ "claim_id": "claim_root",
35
+ "max_operations": 100
36
+ }
37
+ ```
38
+
39
+ This starts a fresh task on the selected bot. Other supported roles are
40
+ `lead_scientist`, `repair_scientist`, and `blocker_resolver`. The target bot
41
+ must be idle. A Repair Scientist requires a falsified parent.
42
+ 4. The worker reads `simjecture_snapshot` and uses the typed `simjecture_*`
43
+ tools exposed from its role-filtered kernel catalog. The supervisor binds
44
+ the campaign identity. Every mutating
45
+ operation ID begins with its assignment ID and `:`. The worker finishes with
46
+ `simjecture_handoff`; the kernel record must substantiate claimed
47
+ falsifications and linked evidence. A handoff ends that assignment, not the
48
+ campaign. Only one unfinished scientific worker assignment may own a claim.
49
+ 5. For independent review, the owner or assigned lead calls
50
+ `simjecture_adjudicate` with `campaign_id`, `judge_bot_id`, `operation_id`,
51
+ `claim_id`, `contract_version`, and `case_for_sufficiency`. The selected
52
+ Codex/Grok/AGY instance receives a fresh session, empty working directory, no
53
+ conversation history or Simote integrations, and only the frozen case.
54
+ Tool activity invalidates the review. Only a successful text-only response
55
+ reaches Simjecture's existing verdict validation and scientific gates.
56
+ 6. The owner or lead uses the official `finalize_campaign` tool only when the
57
+ scientific frontier is ready. A chat reply never finalizes a campaign.
58
+
59
+ Assignments appear as named tasks in Simote, with the normal streamed agent
60
+ activity. `simjecture_snapshot` includes assignment identities, operation counts,
61
+ session history, and handoffs. The optional **Simjecture** sidebar page shows a
62
+ hypothesis graph, claim contracts, linked evidence previews, jobs, role tasks,
63
+ and the final report. You can create or attach a campaign, assign workers,
64
+ request independent review, cancel jobs, and finalize through the same kernel
65
+ gates. The existing Simjecture web dashboard is also available.
66
+
67
+ AGY workers require the instance's full-auto setting, because its headless CLI
68
+ cannot approve MCP calls interactively. Simote mounts named scientific MCP tools
69
+ for each turn and removes them before a tool-free judge starts. AGY uses a global
70
+ MCP configuration, so Simote serializes AGY child lifetimes to prevent one task
71
+ from receiving another task's credentials. User-configured MCP entries remain
72
+ preserved; any observed judge tool use rejects the review, as for other engines.
73
+
74
+ ## Recovery and boundaries
75
+
76
+ Campaign creation first probes Bubblewrap namespace support. A GPU container
77
+ that denies user namespaces is not a compatible scientific worker, even if
78
+ SSH and ordinary commands work. Use a compatible Linux host; no fallback skips
79
+ isolation or turns a failed run into evidence. `simjecture-call --workspace
80
+ ./campaigns --probe` checks readiness without creating a campaign.
81
+
82
+ Parallel agent tool calls are queued per campaign. A narrowly identified
83
+ pre-dispatch writer conflict may be retried while a detached job commits its
84
+ receipt; ambiguous errors are returned for explicit operation-ID recovery.
85
+
86
+ Reopen the same Simote task to continue after a server restart. The task retains
87
+ its campaign routing and native session cursor. A new session must read a
88
+ snapshot before scientific work. Reuse the original operation ID and arguments
89
+ after a lost response; neither the assignment budget nor the kernel's operation
90
+ journal resets. Existing jobs are reconciled by the kernel on reopen.
91
+
92
+ Repeating `simjecture_assign_role` with the same identity returns the existing
93
+ task. It does not automatically rerun a previously dispatched task. A changed
94
+ assignment needs a new ID. An inconclusive or blocked handoff is preserved;
95
+ start a new assignment for subsequent work. A saved judge verdict is reused
96
+ after a remote commit failure; an operation cannot silently bind a new case.
97
+
98
+ The Simote role registry contains routing metadata only. Authoritative
99
+ assignments live in `role_assignments.json` beside the campaign ledger, outside
100
+ the experiment sandbox. The campaign supervisor lease serializes one-shot
101
+ calls. A campaign already owned by a running DSH/native supervisor cannot also
102
+ be driven through this transport.
103
+
104
+ Role enforcement covers the Simjecture tool boundary and Simote's remote tool
105
+ endpoint. Provider CLIs may also have native local tools or user-configured
106
+ integrations; this feature does not turn those CLIs into OS-isolated processes.
107
+ It never copies SSH credentials into those processes. Scientific outputs still
108
+ have to pass the existing sandbox, provenance, and evidence gates.
109
+
110
+ ## Headless supervisor interface
111
+
112
+ Any trusted supervisor can use the same role boundary without running Simote.
113
+ First open a campaign normally, then issue a JSON assignment with exactly
114
+ `assignment_id`, `agent_id`, `role`, `claim_id`, and `max_operations`:
115
+
116
+ ```bash
117
+ simjecture-call --workspace ./campaigns --campaign invariant-test \
118
+ --issue-assignment-file assignment.json
119
+
120
+ simjecture-call --workspace ./campaigns --campaign invariant-test \
121
+ --assignment-id falsify-root-1 --agent-id grok-worker --session-id session-1 \
122
+ snapshot
123
+ ```
124
+
125
+ Pass `--arguments-file` for tool arguments, `--list` for the role's tool catalog,
126
+ or `--handoff-file` for a structured final handoff. The supervisor supplies the
127
+ authenticated identity flags; they must never come from model tool arguments.
128
+
129
+ The DSH profile retains its existing role orchestration and guards. This
130
+ transport adds a persistent boundary for external agent sessions without
131
+ changing recorded campaigns or their scientific acceptance rules.
132
+
133
+ ## Persistent CLI supervision
134
+
135
+ An external worker's exit or handoff is a checkpoint, not permission to end a
136
+ campaign. To run AGY or Grok without an interactive Simote owner, prepare an
137
+ initialized campaign with `MVPAgentConfig(require_independent_contract_review=True)`
138
+ and an operator instruction file, then start the persistent supervisor:
139
+
140
+ ```bash
141
+ simjecture-supervise --campaign /absolute/path/to/campaign \
142
+ --state-dir /absolute/path/to/supervisor-state \
143
+ --instructions-file /absolute/path/to/instructions.txt \
144
+ --backend grok --model grok-4.6 --judge-model grok-4.6 \
145
+ --wall-seconds 21600 --turn-seconds 600
146
+ ```
147
+
148
+ From a checkout, `python -m conjecture_solver.agent_supervisor` is equivalent.
149
+ The supervisor resumes unfinished assignments and issues successors after
150
+ inconclusive or blocked handoffs. Local turn/operation limits do not reset the
151
+ campaign deadline or end the study. Its durable `state.json` and `events.jsonl`
152
+ record progress. Restarting with the same state directory preserves the deadline.
153
+ One persistent supervisor can own a campaign at a time.
154
+
155
+ Workers request independent review by writing `review-request.json` in their
156
+ native research directory, with `claim_id`, `contract_version`, and
157
+ `case_for_sufficiency`. The supervisor freezes the kernel case and launches a
158
+ fresh judge through the selected CLI backend in an empty directory. Any observed judge tool activity rejects
159
+ the verdict. Only the kernel can accept the verdict or finalize the campaign.
160
+ Judge rejection and insufficient evidence return to experimental work.
161
+
162
+ With the default strict repair loop, an accepted `unresolved` or
163
+ `instrument_limited` record leaves the scientific claim open. Normal completion
164
+ requires independently accepted support for the original claim or its repair
165
+ frontier. A falsified frontier requires a repair and further testing. Existing
166
+ legacy claims already closed as unresolved require explicit recovery; the
167
+ supervisor refuses to reinterpret them as success.
168
+
169
+ The wall-time boundary saves `budget_exhausted`, preserves the open ledger and
170
+ cancels active jobs. Operator controls are separate: write
171
+ `{"command":"pause"}` or `{"command":"cancel"}` to the supervisor's
172
+ `control.json`. Repeated infrastructure/provider failures pause with a recorded
173
+ error; they never count as scientific completion. Remove a pause command before
174
+ resuming. This does not OS-sandbox the agent's native tools or alter its global
175
+ MCP configuration; numerical jobs retain Simjecture's sandbox and evidence rules.
176
+
177
+ ### Contract and qualification review
178
+
179
+ New persistent runs require `require_independent_contract_review=True`. The
180
+ legacy default remains false so historical manifests remain readable; the
181
+ persistent supervisor refuses that legacy policy instead of silently accepting
182
+ old qualification. Start a new reviewed campaign to requalify an instrument;
183
+ old artifacts may be supplied as unaccepted research context.
184
+
185
+ A worker first registers its prospective contract, then writes
186
+ `contract-review-request.json` containing only `claim_id` in its research
187
+ folder. The host freezes the original hypothesis, parent statement, exact
188
+ contract, bound program sources, and optional operator-owned
189
+ `operator_input/scientific_protocol.txt`. A separate review must approve this
190
+ packet before evidence execution or sufficient evidence linking. A changed
191
+ contract, source, or frozen protocol invalidates the approval.
192
+
193
+ After collecting and linking prospective instrument/diagnostic/control evidence,
194
+ the worker writes `qualification-review-request.json` with `claim_id`. This
195
+ second review includes actual linked output and provenance; only approval permits
196
+ supported closure. Execution status, stage labels and output counts cannot stand
197
+ alone as physical qualification checks, even if labelled with the expected
198
+ aspect. The kernel enforces both reviews; workers have no approval tool.
199
+
200
+ Reviews and transcript hashes persist outside the numerical workspace in
201
+ `scientific_reviews.json`. These are scientific reviews, not user confirmation
202
+ prompts. Judge transport accepts a single outer JSON fence, validates semantics,
203
+ and retries malformed output once in a fresh context. It never changes an invalid
204
+ scientific disposition to make a verdict acceptable. Observed judge tool activity
205
+ rejects the response. Worker native tools remain available. Both CLI backends
206
+ retain their existing logins; the supervisor does not rewrite global MCP settings.
207
+
208
+ ### Optional researcher workflow
209
+
210
+ Use `--workflow frontier` to let one researcher organize experiments, pursue
211
+ supporting claims and test repairs without switching scientific roles. The
212
+ structured workflow remains the default. Both use the same evidence contracts,
213
+ provenance checks, independent reviews and completion rules.
214
+
215
+ For a campaign configured with independent contract review:
216
+
217
+ ```bash
218
+ simjecture-supervise --campaign /absolute/path/to/campaign \
219
+ --state-dir /absolute/path/to/new-supervisor-state \
220
+ --instructions-file /absolute/path/to/research-instructions.md \
221
+ --workflow frontier --backend codex-glm --model glm-5.3 \
222
+ --wall-seconds 21600 --turn-seconds 600
223
+ ```
224
+
225
+ The `codex` backend uses the same native CLI protocol and requires an explicit
226
+ `--model`. Each backend retains its existing login. Native thread resumption is
227
+ currently implemented for `codex` and `codex-glm`; AGY and Grok retain the stable
228
+ research directory and kernel state across invocations. Do not switch workflow
229
+ or backend inside an existing supervisor state directory.
230
+
231
+ The researcher keeps a stable `research/` directory. Native tools remain
232
+ available, and detached numerical jobs need not block other research. In this
233
+ mode `--turn-seconds` is an inactivity watchdog: provider output or kernel action
234
+ activity resets it. It cannot extend the campaign's fixed wall deadline. A model
235
+ ending its turn does not declare the science finished. Review requests move to a
236
+ durable host queue, which survives a pause or deadline; resuming an exhausted
237
+ budget does not create a new deadline.
238
+
239
+ Inside the generated research directory, the agent can use the scoped client:
240
+
241
+ ```python
242
+ from lab import lab
243
+
244
+ lab.write("measure.py", "print('measurement')\n")
245
+ result = lab.run_python(["measure.py"], inputs=[], request_key="probe-1")
246
+ # After registering an actual prospective evidence contract:
247
+ lab.request_review("contract")
248
+ ```
249
+
250
+ The client fills in operation IDs, the assigned claim and administrative notes.
251
+ Scientific inputs and declared artifact dependencies remain explicit. Repeating
252
+ an identical request reuses its receipt; use a different `request_key` for an
253
+ intentional replicate. `run_python` also binds this identity to the entry script
254
+ and contract revision. The client cannot approve evidence or finalize a campaign.
255
+ For other operations use `lab.call(tool, arguments)` and inspect the generated
256
+ adapter's `schema TOOL` output.
257
+
258
+ Evidence validation paths support object keys and array indices, for example
259
+ `rows.0.N`, `rows[0].N` and `$.rows[0].N`. Wildcards, slices, expressions and
260
+ negative indices are unsupported. Checks retain strict scalar comparison rules.
261
+ A design reviewer may approve a proposal and suggest executing it next; required
262
+ evidence or design gaps still prevent approval. Design approval is not a
263
+ scientific conclusion.
264
+
265
+ Native agents run under a cooperative trust model with access to their host
266
+ account. These role checks do not provide adversarial isolation from host files.
267
+ Numerical execution retains its existing sandbox and evidence rules.
268
+
269
+ The first real GLM pilot supports reduced context loss, but neither workflow
270
+ completed an accepted scientific conclusion within its short budgets. Keep this
271
+ mode opt-in pending further evaluation. See the
272
+ [measured results](https://github.com/tomzhu0225/simjecture/blob/main/research/evaluations/frontier-workflow/RESULTS.md) and
273
+ [design notes](https://github.com/tomzhu0225/simjecture/blob/main/research/evaluations/frontier-workflow/DESIGN.md).
274
+
275
+ For the smaller service with explicit experiment/review receipts and agent-owned
276
+ planning, see [agent-owned research](research-service.md). Minimal is now the
277
+ default for new native-agent studies; select `--mode structured` or `--mode
278
+ frontier` for the alternatives. Existing campaigns retain their recorded mode
279
+ and record format. The browser/TUI now select these native modes too; DSH/API remain explicit legacy choices.