deterministic-scenario-engine 2.2.0__tar.gz → 3.0.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 (273) hide show
  1. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/MANIFEST.in +1 -0
  2. {deterministic_scenario_engine-2.2.0/src/deterministic_scenario_engine.egg-info → deterministic_scenario_engine-3.0.0}/PKG-INFO +20 -14
  3. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/README.md +19 -13
  4. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/docs/api.md +42 -0
  5. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/docs/compatibility.md +21 -6
  6. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/docs/dsl-reference.md +4 -0
  7. deterministic_scenario_engine-3.0.0/docs/dsl2-reference.md +40 -0
  8. deterministic_scenario_engine-3.0.0/docs/phase5-architecture.md +1149 -0
  9. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/docs/quickstart.md +77 -1
  10. deterministic_scenario_engine-3.0.0/docs/release-notes-3.0.0.md +45 -0
  11. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/docs/release-process.md +16 -0
  12. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/pyproject.toml +1 -1
  13. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0/src/deterministic_scenario_engine.egg-info}/PKG-INFO +20 -14
  14. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/deterministic_scenario_engine.egg-info/SOURCES.txt +43 -0
  15. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/__init__.py +2 -3
  16. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/_version.py +3 -2
  17. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/address.py +16 -0
  18. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/canonical.py +23 -3
  19. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/cli/main.py +259 -22
  20. deterministic_scenario_engine-3.0.0/src/scenario_engine/compatibility.py +50 -0
  21. deterministic_scenario_engine-3.0.0/src/scenario_engine/compatibility_fixtures.py +223 -0
  22. deterministic_scenario_engine-3.0.0/src/scenario_engine/data/compatibility/phase5_10/artifacts/manifest-v2.json +1 -0
  23. deterministic_scenario_engine-3.0.0/src/scenario_engine/data/compatibility/phase5_10/artifacts/result-v2.json +1 -0
  24. deterministic_scenario_engine-3.0.0/src/scenario_engine/data/compatibility/phase5_10/artifacts/schedule-v1.json +1 -0
  25. deterministic_scenario_engine-3.0.0/src/scenario_engine/data/compatibility/phase5_10/artifacts/suite-run-v2.json +1 -0
  26. deterministic_scenario_engine-3.0.0/src/scenario_engine/data/compatibility/phase5_10/compatibility-fixtures.json +1 -0
  27. deterministic_scenario_engine-3.0.0/src/scenario_engine/data/compatibility/phase5_10/references/legacy-result1.json +1 -0
  28. deterministic_scenario_engine-3.0.0/src/scenario_engine/data/compatibility/phase5_10/rejections/corrupt-result-hash.json +1 -0
  29. deterministic_scenario_engine-3.0.0/src/scenario_engine/data/compatibility/phase5_10/rejections/duplicate-key.json +1 -0
  30. deterministic_scenario_engine-3.0.0/src/scenario_engine/data/compatibility/phase5_10/rejections/incomplete-coordinates.json +1 -0
  31. deterministic_scenario_engine-3.0.0/src/scenario_engine/data/compatibility/phase5_10/rejections/invalid-type.json +1 -0
  32. deterministic_scenario_engine-3.0.0/src/scenario_engine/data/compatibility/phase5_10/rejections/missing-field.json +1 -0
  33. deterministic_scenario_engine-3.0.0/src/scenario_engine/data/compatibility/phase5_10/rejections/mixed-contract-tuple.json +1 -0
  34. deterministic_scenario_engine-3.0.0/src/scenario_engine/data/compatibility/phase5_10/rejections/noncanonical-address.json +1 -0
  35. deterministic_scenario_engine-3.0.0/src/scenario_engine/data/compatibility/phase5_10/rejections/unknown-contract.json +1 -0
  36. deterministic_scenario_engine-3.0.0/src/scenario_engine/data/compatibility/phase5_10/rejections/unknown-engine.json +1 -0
  37. deterministic_scenario_engine-3.0.0/src/scenario_engine/data/compatibility/phase5_10/rejections/unknown-field.json +1 -0
  38. deterministic_scenario_engine-3.0.0/src/scenario_engine/data/compatibility/phase5_10/rejections/wrong-input-hashes.json +1 -0
  39. deterministic_scenario_engine-3.0.0/src/scenario_engine/data/compatibility/phase5_10/rejections/wrong-root-seed.json +1 -0
  40. deterministic_scenario_engine-3.0.0/src/scenario_engine/data/compatibility/phase5_10/rejections/wrong-scenario-hash.json +1 -0
  41. deterministic_scenario_engine-3.0.0/src/scenario_engine/data/compatibility/phase5_10/rejections/wrong-schedule-hash.json +1 -0
  42. deterministic_scenario_engine-3.0.0/src/scenario_engine/data/compatibility/phase5_10/rejections/wrong-schedule-seed.json +1 -0
  43. deterministic_scenario_engine-3.0.0/src/scenario_engine/data/compatibility/phase5_10/rejections/wrong-scheduler-contract.json +1 -0
  44. deterministic_scenario_engine-3.0.0/src/scenario_engine/data/compatibility/phase5_10/scenarios/scenario-v2.yaml +15 -0
  45. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/definition_diff.py +59 -6
  46. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/diagnostics.py +7 -3
  47. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/dsl/__init__.py +6 -5
  48. deterministic_scenario_engine-3.0.0/src/scenario_engine/dsl/actor_runtime.py +433 -0
  49. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/dsl/compiler.py +17 -1
  50. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/dsl/errors.py +16 -1
  51. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/dsl/models.py +39 -0
  52. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/dsl/parser.py +119 -6
  53. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/dsl/runtime.py +12 -4
  54. deterministic_scenario_engine-3.0.0/src/scenario_engine/engine2.py +618 -0
  55. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/evidence/compatibility.py +2 -2
  56. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/impact.py +81 -16
  57. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/inspection/__init__.py +3 -1
  58. deterministic_scenario_engine-3.0.0/src/scenario_engine/inspection/explain.py +142 -0
  59. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/inspection/inspect.py +94 -3
  60. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/inspection/models.py +4 -2
  61. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/manifest.py +4 -1
  62. deterministic_scenario_engine-3.0.0/src/scenario_engine/schedule.py +415 -0
  63. deterministic_scenario_engine-3.0.0/src/scenario_engine/scheduler.py +175 -0
  64. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/trace_view.py +159 -6
  65. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/tests/test_phase_0_2a_reproducible_results.py +3 -2
  66. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/tests/test_phase_1_0d_documentation_examples.py +2 -2
  67. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/tests/test_phase_1_0e_packaging_release_candidate.py +2 -2
  68. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/tests/test_phase_2_10_workflow_demonstrators.py +2 -2
  69. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/tests/test_phase_2_12_public_contract_docs_freeze.py +1 -1
  70. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/tests/test_phase_2_13_packaging_fresh_install_rc.py +4 -3
  71. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/tests/test_phase_2_1_v1_read_contract.py +1 -1
  72. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/tests/test_phase_2_2_composition.py +1 -1
  73. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/tests/test_phase_2_3_matrix.py +1 -1
  74. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/tests/test_phase_2_4_batch.py +1 -1
  75. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/tests/test_phase_2_5_inspect_explain.py +1 -1
  76. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/tests/test_phase_2_7_cli_product_surface.py +1 -1
  77. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/tests/test_phase_3_11_public_contract_docs_freeze.py +1 -1
  78. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/tests/test_phase_3_1_evidence_bundle_contract.py +2 -2
  79. deterministic_scenario_engine-3.0.0/tests/test_phase_5_10_public_api_cli_compatibility_fixtures.py +139 -0
  80. deterministic_scenario_engine-3.0.0/tests/test_phase_5_11_performance_security_contract_freeze.py +148 -0
  81. deterministic_scenario_engine-3.0.0/tests/test_phase_5_12a_r2_quickstart_installed_consumer.py +170 -0
  82. deterministic_scenario_engine-3.0.0/tests/test_phase_5_12b_1_version_promotion.py +107 -0
  83. deterministic_scenario_engine-3.0.0/tests/test_phase_5_1_dsl2_actor_lane_foundation.py +133 -0
  84. deterministic_scenario_engine-3.0.0/tests/test_phase_5_2_scheduler_kernel.py +151 -0
  85. deterministic_scenario_engine-3.0.0/tests/test_phase_5_3_actor_execution_shared_state.py +170 -0
  86. deterministic_scenario_engine-3.0.0/tests/test_phase_5_4_schedule_identity_replay.py +217 -0
  87. deterministic_scenario_engine-3.0.0/tests/test_phase_5_5_result2_engine2_compatibility.py +217 -0
  88. deterministic_scenario_engine-3.0.0/tests/test_phase_5_6_public_cli_python_execution.py +122 -0
  89. deterministic_scenario_engine-3.0.0/tests/test_phase_5_7_actor_aware_analysis.py +215 -0
  90. deterministic_scenario_engine-3.0.0/tests/test_phase_5_9_actor_aware_static_trace_viewer.py +156 -0
  91. deterministic_scenario_engine-2.2.0/src/scenario_engine/compatibility_fixtures.py +0 -94
  92. deterministic_scenario_engine-2.2.0/src/scenario_engine/inspection/explain.py +0 -79
  93. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/LICENSE +0 -0
  94. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/docs/determinism.md +0 -0
  95. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/docs/hypothesis.md +0 -0
  96. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/docs/phase2-architecture.md +0 -0
  97. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/docs/phase2-public-contract.md +0 -0
  98. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/docs/phase3-architecture.md +0 -0
  99. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/docs/phase3-public-contract.md +0 -0
  100. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/docs/phase4-architecture.md +0 -0
  101. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/docs/plugins.md +0 -0
  102. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/docs/product-evidence-gate.md +0 -0
  103. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/docs/release-notes-2.2.0.md +0 -0
  104. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/docs/reproducibility.md +0 -0
  105. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/docs/schemathesis.md +0 -0
  106. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/docs/security-and-non-goals.md +0 -0
  107. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/docs/sqlalchemy.md +0 -0
  108. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/docs/testing-oracle.md +0 -0
  109. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/examples/api_scenario.yaml +0 -0
  110. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/examples/cart.yaml +0 -0
  111. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/examples/control_flow.yaml +0 -0
  112. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/examples/ecommerce.yaml +0 -0
  113. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/examples/openapi.yaml +0 -0
  114. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/examples/oracle_fault.yaml +0 -0
  115. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/examples/phase0_1b_cart.yaml +0 -0
  116. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/examples/phase0_3_resources.yaml +0 -0
  117. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/examples/phase0_4_control_flow.yaml +0 -0
  118. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/examples/phase0_5_oracle_fault.yaml +0 -0
  119. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/examples/phase0_6_sqlalchemy_rows.yaml +0 -0
  120. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/examples/phase0_7_ecommerce_plugin.yaml +0 -0
  121. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/examples/phase0_8_api_scenario.yaml +0 -0
  122. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/examples/phase0_8_openapi.yaml +0 -0
  123. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/examples/phase3_ecommerce_evidence.py +0 -0
  124. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/examples/resources.yaml +0 -0
  125. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/examples/sqlalchemy_rows.yaml +0 -0
  126. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/setup.cfg +0 -0
  127. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/setup.py +0 -0
  128. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/deterministic_scenario_engine.egg-info/dependency_links.txt +0 -0
  129. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/deterministic_scenario_engine.egg-info/entry_points.txt +0 -0
  130. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/deterministic_scenario_engine.egg-info/requires.txt +0 -0
  131. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/deterministic_scenario_engine.egg-info/top_level.txt +0 -0
  132. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/adapters/__init__.py +0 -0
  133. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/adapters/json_file.py +0 -0
  134. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/adapters/sqlalchemy.py +0 -0
  135. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/artifacts.py +0 -0
  136. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/batch/__init__.py +0 -0
  137. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/batch/canonical.py +0 -0
  138. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/batch/errors.py +0 -0
  139. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/batch/models.py +0 -0
  140. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/batch/runtime.py +0 -0
  141. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/cli/__init__.py +0 -0
  142. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/cli/__main__.py +0 -0
  143. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/clock.py +0 -0
  144. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/composition/__init__.py +0 -0
  145. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/composition/canonical.py +0 -0
  146. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/composition/errors.py +0 -0
  147. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/composition/models.py +0 -0
  148. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/composition/parser.py +0 -0
  149. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/composition/resolver.py +0 -0
  150. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/composition/runtime.py +0 -0
  151. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/context.py +0 -0
  152. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/control_flow.py +0 -0
  153. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/data/compatibility/phase4_11/artifacts/current-2.1.2-suite-run-v1.json +0 -0
  154. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/data/compatibility/phase4_11/artifacts/historical-1.0.0-result-v1.json +0 -0
  155. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/data/compatibility/phase4_11/artifacts/historical-2.0.0-suite-run-v1.json +0 -0
  156. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/data/compatibility/phase4_11/artifacts/synthetic-incomplete-suite-run-v1.json +0 -0
  157. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/data/compatibility/phase4_11/artifacts/synthetic-scenario-mismatch-suite-run-v1.json +0 -0
  158. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/data/compatibility/phase4_11/artifacts/synthetic-unknown-engine-suite-run-v1.json +0 -0
  159. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/data/compatibility/phase4_11/artifacts/synthetic-unknown-manifest-suite-run-v9.json +0 -0
  160. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/data/compatibility/phase4_11/artifacts/synthetic-unsupported-contract.json +0 -0
  161. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/data/compatibility/phase4_11/compatibility-fixtures.json +0 -0
  162. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/data/compatibility/phase4_11/inputs/current-2.1.2-suite-run-v1.inputs.json +0 -0
  163. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/data/compatibility/phase4_11/inputs/historical-2.0.0-suite-run-v1.inputs.json +0 -0
  164. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/data/compatibility/phase4_11/scenarios/compatibility_case.yaml +0 -0
  165. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/data/compatibility/phase4_11/scenarios/mismatch_case.yaml +0 -0
  166. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/diff/__init__.py +0 -0
  167. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/diff/compare.py +0 -0
  168. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/diff/errors.py +0 -0
  169. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/diff/models.py +0 -0
  170. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/diff/render.py +0 -0
  171. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/diff/serialization.py +0 -0
  172. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/domain_packs/__init__.py +0 -0
  173. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/domain_packs/canonical.py +0 -0
  174. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/domain_packs/errors.py +0 -0
  175. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/domain_packs/models.py +0 -0
  176. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/domain_packs/registry.py +0 -0
  177. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/errors.py +0 -0
  178. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/evidence/__init__.py +0 -0
  179. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/evidence/adapter.py +0 -0
  180. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/evidence/canonical.py +0 -0
  181. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/evidence/errors.py +0 -0
  182. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/evidence/export.py +0 -0
  183. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/evidence/fixture.py +0 -0
  184. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/evidence/migration.py +0 -0
  185. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/evidence/models.py +0 -0
  186. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/evidence/read.py +0 -0
  187. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/expressions.py +0 -0
  188. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/faults.py +0 -0
  189. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/history.py +0 -0
  190. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/ids.py +0 -0
  191. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/inspection/errors.py +0 -0
  192. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/inspection/redaction.py +0 -0
  193. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/inspection/serialization.py +0 -0
  194. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/integrations/__init__.py +0 -0
  195. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/integrations/hypothesis.py +0 -0
  196. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/integrations/schemathesis.py +0 -0
  197. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/invariants.py +0 -0
  198. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/matrix/__init__.py +0 -0
  199. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/matrix/canonical.py +0 -0
  200. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/matrix/errors.py +0 -0
  201. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/matrix/expand.py +0 -0
  202. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/matrix/filtering.py +0 -0
  203. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/matrix/models.py +0 -0
  204. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/matrix/runtime.py +0 -0
  205. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/oracle.py +0 -0
  206. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/oracle_assertions/__init__.py +0 -0
  207. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/oracle_assertions/errors.py +0 -0
  208. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/oracle_assertions/evaluate.py +0 -0
  209. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/oracle_assertions/models.py +0 -0
  210. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/oracle_assertions/serialization.py +0 -0
  211. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/plugins.py +0 -0
  212. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/provenance.py +0 -0
  213. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/pytest_plugin.py +0 -0
  214. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/reference_packs/__init__.py +0 -0
  215. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/reference_packs/ecommerce.py +0 -0
  216. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/reference_packs/ecommerce_evidence.py +0 -0
  217. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/resources.py +0 -0
  218. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/result.py +0 -0
  219. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/rng.py +0 -0
  220. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/runner.py +0 -0
  221. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/scaffolding.py +0 -0
  222. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/state.py +0 -0
  223. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/suite/__init__.py +0 -0
  224. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/suite/errors.py +0 -0
  225. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/suite/models.py +0 -0
  226. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/suite/publication.py +0 -0
  227. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/suite/read.py +0 -0
  228. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/suite/serialization.py +0 -0
  229. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/validation.py +0 -0
  230. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/src/scenario_engine/values.py +0 -0
  231. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/tests/test_phase_0_1a_semantic_kernel.py +0 -0
  232. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/tests/test_phase_0_1b_linear_dsl.py +0 -0
  233. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/tests/test_phase_0_1c_integrated_phase0_1.py +0 -0
  234. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/tests/test_phase_0_1c_r1_missing_sentinel_repair.py +0 -0
  235. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/tests/test_phase_0_2b_json_pytest_integration.py +0 -0
  236. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/tests/test_phase_0_3_resources_constraints.py +0 -0
  237. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/tests/test_phase_0_4_control_flow.py +0 -0
  238. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/tests/test_phase_0_5_oracle_faults.py +0 -0
  239. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/tests/test_phase_0_6_sqlalchemy_materializer.py +0 -0
  240. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/tests/test_phase_0_7_plugins_ecommerce.py +0 -0
  241. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/tests/test_phase_0_8_hypothesis_schemathesis.py +0 -0
  242. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/tests/test_phase_1_0b_public_api_error_contract.py +0 -0
  243. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/tests/test_phase_1_0c_dsl_compatibility_contract.py +0 -0
  244. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/tests/test_phase_2_11_performance_scale_hardening.py +0 -0
  245. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/tests/test_phase_2_1_models_serialization.py +0 -0
  246. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/tests/test_phase_2_6_structured_semantic_diff.py +0 -0
  247. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/tests/test_phase_2_8_domain_pack_foundation.py +0 -0
  248. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/tests/test_phase_2_9_oracle_assertions.py +0 -0
  249. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/tests/test_phase_3_10_performance_security_hardening.py +0 -0
  250. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/tests/test_phase_3_12_packaging_fresh_install_rc.py +0 -0
  251. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/tests/test_phase_3_2_safe_bundle_reader_validator.py +0 -0
  252. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/tests/test_phase_3_3_ordered_export.py +0 -0
  253. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/tests/test_phase_3_4_evidence_adapter_contract.py +0 -0
  254. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/tests/test_phase_3_5_compatibility_migration_planner.py +0 -0
  255. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/tests/test_phase_3_6_lossless_migrations_fixture_export.py +0 -0
  256. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/tests/test_phase_3_7_cli_interchange_surface.py +0 -0
  257. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/tests/test_phase_3_8_ecommerce_evidence_workflow.py +0 -0
  258. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/tests/test_phase_4_10_canonical_workflow_help.py +0 -0
  259. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/tests/test_phase_4_11_cross_version_fixtures.py +0 -0
  260. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/tests/test_phase_4_12_hardening.py +0 -0
  261. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/tests/test_phase_4_12r2_public_fixture_packaging.py +0 -0
  262. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/tests/test_phase_4_12r3_consumer_secret_redaction.py +0 -0
  263. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/tests/test_phase_4_1_cli_replay_workflow.py +0 -0
  264. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/tests/test_phase_4_2_replay_compatibility_diagnostics.py +0 -0
  265. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/tests/test_phase_4_3_filesystem_trust_boundary.py +0 -0
  266. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/tests/test_phase_4_4_actionable_human_diagnostics.py +0 -0
  267. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/tests/test_phase_4_5_machine_readable_error_envelope.py +0 -0
  268. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/tests/test_phase_4_6_author_time_scaffolding.py +0 -0
  269. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/tests/test_phase_4_7_scenario_definition_structural_diff.py +0 -0
  270. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/tests/test_phase_4_8_conservative_impact_analysis.py +0 -0
  271. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/tests/test_phase_4_9_static_trace_viewer.py +0 -0
  272. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/tests/test_readme_pypi_portability.py +0 -0
  273. {deterministic_scenario_engine-2.2.0 → deterministic_scenario_engine-3.0.0}/tests/test_test_portability.py +0 -0
@@ -4,6 +4,7 @@ include setup.py
4
4
  include pyproject.toml
5
5
  recursive-include src *.py
6
6
  recursive-include src/scenario_engine/data/compatibility/phase4_11 *
7
+ recursive-include src/scenario_engine/data/compatibility/phase5_10 *
7
8
  recursive-include docs *.md
8
9
  recursive-include examples *.yaml
9
10
  include examples/phase3_ecommerce_evidence.py
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: deterministic-scenario-engine
3
- Version: 2.2.0
3
+ Version: 3.0.0
4
4
  Summary: Reproducible, state-consistent business scenarios with deterministic ground truth
5
5
  License-Expression: Apache-2.0
6
6
  Project-URL: Homepage, https://github.com/imshahinul/deterministic-scenario-engine
@@ -41,10 +41,11 @@ Dynamic: license-file
41
41
 
42
42
  Deterministic Scenario Engine (DSE) creates reproducible, state-consistent
43
43
  business histories and deterministic scenario suites with ground truth for
44
- testing. The source-tree distribution version is 2.2.0. Distribution release
45
- identity and deterministic compatibility identity are separate:
46
- `ENGINE_VERSION` remains 1.0.0 and DSL version remains 1. For authoritative
47
- public-release availability and history, see PyPI and GitHub Releases.
44
+ testing. This source tree is the prepublication distribution 3.0.0 candidate.
45
+ Distribution and execution compatibility identities are separate: public
46
+ `ENGINE_VERSION` is 2.0.0, while the preserved DSL 1 path records Engine 1.0.0.
47
+ This statement does not assert package-index publication; PyPI and GitHub
48
+ Releases remain authoritative for public-release availability and history.
48
49
 
49
50
  ## Why it exists
50
51
 
@@ -58,6 +59,9 @@ make expected behavior explicit.
58
59
  ## Core capabilities
59
60
 
60
61
  - DSL 1 parsing, compilation, and deterministic execution
62
+ - DSL 2 logical-actor execution with an explicit independent schedule seed
63
+ - canonical Result/2, Manifest/2, and Schedule/1 evidence with exact replay
64
+ - actor-aware inspect/explain and deterministic offline trace viewing
61
65
  - addressed randomness and logical IDs that do not depend on a shared stream
62
66
  - current state plus append-only committed history and artifacts
63
67
  - whole-step atomicity
@@ -80,11 +84,9 @@ make expected behavior explicit.
80
84
  - canonical evidence bundles, ordered JSON/JSONL export, compatibility reports,
81
85
  explicit adapters, closed lossless migrations, and fixture-directory export
82
86
 
83
- Release 2.2.0 adds first-class run → replay artifacts and fail-closed replay
84
- diagnostics, actionable human and machine-readable errors, author-time
85
- scaffolding, scenario-definition diff, conservative impact analysis, offline
86
- trace views, and an installed compatibility-fixture export. See the
87
- [2.2.0 release notes](https://github.com/imshahinul/deterministic-scenario-engine/blob/main/docs/release-notes-2.2.0.md).
87
+ The 3.0.0 candidate adds Engine 2.0.0 and DSL 2 while preserving Engine 1/DSL 1
88
+ behavior and immutable evidence. See the
89
+ [3.0.0 candidate notes](https://github.com/imshahinul/deterministic-scenario-engine/blob/main/docs/release-notes-3.0.0.md).
88
90
 
89
91
  Core execution does not require a database, network service, plugin, or property
90
92
  testing framework. See [security assumptions and non-goals](https://github.com/imshahinul/deterministic-scenario-engine/blob/main/docs/security-and-non-goals.md).
@@ -151,6 +153,7 @@ self-contained offline HTML file from supported result/evidence.
151
153
 
152
154
  - [Quickstart](https://github.com/imshahinul/deterministic-scenario-engine/blob/main/docs/quickstart.md)
153
155
  - [DSL 1 reference](https://github.com/imshahinul/deterministic-scenario-engine/blob/main/docs/dsl-reference.md)
156
+ - [DSL 2 reference](https://github.com/imshahinul/deterministic-scenario-engine/blob/main/docs/dsl2-reference.md)
154
157
  - [Determinism model](https://github.com/imshahinul/deterministic-scenario-engine/blob/main/docs/determinism.md)
155
158
  - [Reproducibility and replay](https://github.com/imshahinul/deterministic-scenario-engine/blob/main/docs/reproducibility.md)
156
159
  - [Testing, faults, and oracle](https://github.com/imshahinul/deterministic-scenario-engine/blob/main/docs/testing-oracle.md)
@@ -162,13 +165,16 @@ self-contained offline HTML file from supported result/evidence.
162
165
  - [Security assumptions and non-goals](https://github.com/imshahinul/deterministic-scenario-engine/blob/main/docs/security-and-non-goals.md)
163
166
  - [Compatibility contract](https://github.com/imshahinul/deterministic-scenario-engine/blob/main/docs/compatibility.md)
164
167
  - [2.2.0 release notes](https://github.com/imshahinul/deterministic-scenario-engine/blob/main/docs/release-notes-2.2.0.md)
168
+ - [3.0.0 candidate notes](https://github.com/imshahinul/deterministic-scenario-engine/blob/main/docs/release-notes-3.0.0.md)
165
169
  - [Phase 2 public contract, CLI, and hard bounds](https://github.com/imshahinul/deterministic-scenario-engine/blob/main/docs/phase2-public-contract.md)
166
170
  - [Phase 3 public contract and evidence interchange](https://github.com/imshahinul/deterministic-scenario-engine/blob/main/docs/phase3-public-contract.md)
167
171
 
168
172
  ## Status
169
173
 
170
174
  Distribution release identity and deterministic engine compatibility are
171
- separate contracts. This source tree reports distribution version 2.2.0;
172
- generated core manifests retain `ENGINE_VERSION` 1.0.0 and DSL 1. PyPI and
173
- GitHub Releases are the authoritative sources for public-release availability
174
- and history. The project is licensed under Apache-2.0.
175
+ separate contracts. This prepublication source tree reports distribution
176
+ version 3.0.0 and public Engine 2.0.0. Engine 1 manifests remain exactly 1.0.0
177
+ with integer DSL 1; Engine 2 manifests use 2.0.0 with integer DSL 2. Supported
178
+ Python versions are 3.11–3.14. Suite Run/2 is reader/schema support only; Engine
179
+ 2 suite orchestration, cross-major promotion, remote URI input, and implicit
180
+ schedule-seed derivation are unsupported. The project is Apache-2.0 licensed.
@@ -4,10 +4,11 @@
4
4
 
5
5
  Deterministic Scenario Engine (DSE) creates reproducible, state-consistent
6
6
  business histories and deterministic scenario suites with ground truth for
7
- testing. The source-tree distribution version is 2.2.0. Distribution release
8
- identity and deterministic compatibility identity are separate:
9
- `ENGINE_VERSION` remains 1.0.0 and DSL version remains 1. For authoritative
10
- public-release availability and history, see PyPI and GitHub Releases.
7
+ testing. This source tree is the prepublication distribution 3.0.0 candidate.
8
+ Distribution and execution compatibility identities are separate: public
9
+ `ENGINE_VERSION` is 2.0.0, while the preserved DSL 1 path records Engine 1.0.0.
10
+ This statement does not assert package-index publication; PyPI and GitHub
11
+ Releases remain authoritative for public-release availability and history.
11
12
 
12
13
  ## Why it exists
13
14
 
@@ -21,6 +22,9 @@ make expected behavior explicit.
21
22
  ## Core capabilities
22
23
 
23
24
  - DSL 1 parsing, compilation, and deterministic execution
25
+ - DSL 2 logical-actor execution with an explicit independent schedule seed
26
+ - canonical Result/2, Manifest/2, and Schedule/1 evidence with exact replay
27
+ - actor-aware inspect/explain and deterministic offline trace viewing
24
28
  - addressed randomness and logical IDs that do not depend on a shared stream
25
29
  - current state plus append-only committed history and artifacts
26
30
  - whole-step atomicity
@@ -43,11 +47,9 @@ make expected behavior explicit.
43
47
  - canonical evidence bundles, ordered JSON/JSONL export, compatibility reports,
44
48
  explicit adapters, closed lossless migrations, and fixture-directory export
45
49
 
46
- Release 2.2.0 adds first-class run → replay artifacts and fail-closed replay
47
- diagnostics, actionable human and machine-readable errors, author-time
48
- scaffolding, scenario-definition diff, conservative impact analysis, offline
49
- trace views, and an installed compatibility-fixture export. See the
50
- [2.2.0 release notes](https://github.com/imshahinul/deterministic-scenario-engine/blob/main/docs/release-notes-2.2.0.md).
50
+ The 3.0.0 candidate adds Engine 2.0.0 and DSL 2 while preserving Engine 1/DSL 1
51
+ behavior and immutable evidence. See the
52
+ [3.0.0 candidate notes](https://github.com/imshahinul/deterministic-scenario-engine/blob/main/docs/release-notes-3.0.0.md).
51
53
 
52
54
  Core execution does not require a database, network service, plugin, or property
53
55
  testing framework. See [security assumptions and non-goals](https://github.com/imshahinul/deterministic-scenario-engine/blob/main/docs/security-and-non-goals.md).
@@ -114,6 +116,7 @@ self-contained offline HTML file from supported result/evidence.
114
116
 
115
117
  - [Quickstart](https://github.com/imshahinul/deterministic-scenario-engine/blob/main/docs/quickstart.md)
116
118
  - [DSL 1 reference](https://github.com/imshahinul/deterministic-scenario-engine/blob/main/docs/dsl-reference.md)
119
+ - [DSL 2 reference](https://github.com/imshahinul/deterministic-scenario-engine/blob/main/docs/dsl2-reference.md)
117
120
  - [Determinism model](https://github.com/imshahinul/deterministic-scenario-engine/blob/main/docs/determinism.md)
118
121
  - [Reproducibility and replay](https://github.com/imshahinul/deterministic-scenario-engine/blob/main/docs/reproducibility.md)
119
122
  - [Testing, faults, and oracle](https://github.com/imshahinul/deterministic-scenario-engine/blob/main/docs/testing-oracle.md)
@@ -125,13 +128,16 @@ self-contained offline HTML file from supported result/evidence.
125
128
  - [Security assumptions and non-goals](https://github.com/imshahinul/deterministic-scenario-engine/blob/main/docs/security-and-non-goals.md)
126
129
  - [Compatibility contract](https://github.com/imshahinul/deterministic-scenario-engine/blob/main/docs/compatibility.md)
127
130
  - [2.2.0 release notes](https://github.com/imshahinul/deterministic-scenario-engine/blob/main/docs/release-notes-2.2.0.md)
131
+ - [3.0.0 candidate notes](https://github.com/imshahinul/deterministic-scenario-engine/blob/main/docs/release-notes-3.0.0.md)
128
132
  - [Phase 2 public contract, CLI, and hard bounds](https://github.com/imshahinul/deterministic-scenario-engine/blob/main/docs/phase2-public-contract.md)
129
133
  - [Phase 3 public contract and evidence interchange](https://github.com/imshahinul/deterministic-scenario-engine/blob/main/docs/phase3-public-contract.md)
130
134
 
131
135
  ## Status
132
136
 
133
137
  Distribution release identity and deterministic engine compatibility are
134
- separate contracts. This source tree reports distribution version 2.2.0;
135
- generated core manifests retain `ENGINE_VERSION` 1.0.0 and DSL 1. PyPI and
136
- GitHub Releases are the authoritative sources for public-release availability
137
- and history. The project is licensed under Apache-2.0.
138
+ separate contracts. This prepublication source tree reports distribution
139
+ version 3.0.0 and public Engine 2.0.0. Engine 1 manifests remain exactly 1.0.0
140
+ with integer DSL 1; Engine 2 manifests use 2.0.0 with integer DSL 2. Supported
141
+ Python versions are 3.11–3.14. Suite Run/2 is reader/schema support only; Engine
142
+ 2 suite orchestration, cross-major promotion, remote URI input, and implicit
143
+ schedule-seed derivation are unsupported. The project is Apache-2.0 licensed.
@@ -8,6 +8,11 @@ exports.
8
8
 
9
9
  ## Constants and value objects
10
10
 
11
+ - `scenario_engine.ENGINE_VERSION` — public current Engine coordinate, `2.0.0`.
12
+ - `scenario_engine._version.VERSION` — distribution coordinate, `3.0.0`.
13
+ - `scenario_engine._version.ENGINE1_VERSION` — explicit historical Engine 1
14
+ execution coordinate, `1.0.0`; not added to the frozen package-root exports.
15
+
11
16
  - `ENGINE_VERSION` — engine compatibility version recorded in manifests; for
12
17
  current manifests it remains 1.0.0 independently of distribution version.
13
18
  - `MISSING` — singleton semantic missing value, distinct from null.
@@ -58,6 +63,43 @@ checks recorded compatibility before returning a replayed `ScenarioResult`.
58
63
  `evaluate_scenario()` returns `OracleEvaluation` and optionally raises on an
59
64
  oracle mismatch.
60
65
 
66
+ ### Engine 2 explicit public workflow
67
+
68
+ These names are explicitly public from `scenario_engine.engine2` (execution and
69
+ replay) and `scenario_engine.compatibility` (classification). They are not added
70
+ to the compatibility-frozen package root.
71
+
72
+ ```python
73
+ validate_engine2(yaml_text: str) -> CompiledScenarioV2
74
+ execute_engine2(scenario: CompiledScenarioV2, root_seed: str | int, schedule_seed: int, *, run_index: int = 0, inputs: Mapping[str, Any] | None = None, plugins: PluginRegistry | None = None) -> tuple[Engine2Result, ScheduleArtifact]
75
+ replay_engine2(result: Engine2Result | bytes | str, schedule: ScheduleArtifact | bytes | str, scenario: CompiledScenarioV2, *, inputs: Mapping[str, Any] | None = None, plugins: PluginRegistry | None = None) -> Engine2Result
76
+ classify_engine_contract(*, dsl_version: int | None, engine_version: str | None, result_contract: str | None, operation: str) -> CompatibilityDecision
77
+ ```
78
+
79
+ `validate_engine2()` accepts only DSL 2. `execute_engine2()` requires both the
80
+ generation root seed and independent schedule seed and returns immutable,
81
+ canonically serializable Result/2 and Schedule/1 evidence. `replay_engine2()`
82
+ strictly reads supplied evidence when bytes or text are given, independently
83
+ executes every recorded scheduler choice, verifies all coordinates and final
84
+ observations, and returns the verified immutable Result/2. It never reconstructs
85
+ missing schedule evidence. Compatibility classification is explicit and does not
86
+ execute, migrate, or promote evidence. Existing Engine 1 functions are unchanged.
87
+
88
+ `schedule_seed` is a required independent unsigned 64-bit coordinate. It is not
89
+ derived from `root_seed`. Engine 2 writes Result/2, Manifest/2, and Schedule/1;
90
+ exact replay requires the matching result, schedule, scenario, and explicit
91
+ inputs. Actor-aware analysis is exposed through the existing inspection,
92
+ explanation, impact, and offline `scenario_engine.trace_view` surfaces.
93
+
94
+ The immutable Engine 2 evidence access names are also public from their explicit
95
+ modules: `Engine2Manifest`, `Engine2Result`, `ScheduleReference`,
96
+ `read_manifest2()`, `read_result2()`, and their canonical byte functions from
97
+ `scenario_engine.engine2`; and `ScheduleArtifact`, `read_schedule()`, and its
98
+ canonical byte functions from `scenario_engine.schedule`. `read_suite_run2()` is
99
+ schema/reader validation only and does not execute a suite. Errors remain in the
100
+ `Engine2EvidenceError`/`Engine2EvidenceBoundError`/`Engine2ReplayMismatch` and
101
+ `ScheduleError`/`ScheduleBoundError`/`ScheduleReplayMismatch` families.
102
+
61
103
  ## Canonical scenario functions
62
104
 
63
105
  ```python
@@ -1,13 +1,28 @@
1
- # Scenario Engine 1.0 compatibility contract
1
+ # Scenario Engine 3.0 compatibility contract
2
2
 
3
3
  This document is normative for the frozen DSL, deterministic result, manifest,
4
4
  and plugin contracts. Distribution metadata remains a packaging concern.
5
5
 
6
6
  ## Version roles
7
7
 
8
- `ENGINE_VERSION` is the engine compatibility/replay contract version recorded
9
- in every `ReproducibilityManifest`. For the 1.0 release candidate it is 1.0.0
10
- and intentionally equals the distribution version.
8
+ Distribution `VERSION` is 3.0.0 and public `ENGINE_VERSION` is 2.0.0. The
9
+ historical Engine 1 coordinate is independently fixed at 1.0.0: every
10
+ `scenario.manifest/1` produced by DSL 1 continues to record 1.0.0. Engine 2
11
+ Manifest/2 records 2.0.0. Package version is never inferred as an execution
12
+ coordinate.
13
+
14
+ ## Canonical compatibility matrix
15
+
16
+ | DSL | Engine | Execution/replay |
17
+ | --- | --- | --- |
18
+ | integer `1` | `1.0.0` | supported: Result/1, Manifest/1, Suite Run/1 |
19
+ | integer `2` | `2.0.0` | supported: Result/2, Manifest/2, Schedule/1 |
20
+ | integer `1` | `2.0.0` | unsupported cross-major |
21
+ | integer `2` | `1.0.0` | unsupported cross-major |
22
+
23
+ Unknown, mixed-major, missing, and incomplete tuples fail closed. Reading does
24
+ not silently migrate evidence. Suite Run/2 support is schema/reader-only and
25
+ does not provide Engine 2 suite orchestration.
11
26
 
12
27
  Engine SemVer has these meanings:
13
28
 
@@ -75,8 +90,8 @@ default and reader rules; unknown data is not silently treated as compatible.
75
90
  Exact replay requires a compatible recorded engine contract, DSL version,
76
91
  RNG/ID and generator/plugin algorithm versions, canonical scenario hash,
77
92
  input/resource hashes, root seed, run index, locale, reference clock, and other
78
- explicit execution context. The current engine requires exact `ENGINE_VERSION`
79
- and exact compatibility-tuple matches. Unsupported cross-version replay fails
93
+ explicit execution context. Each engine requires its exact immutable execution
94
+ coordinate and compatibility-tuple match. Unsupported cross-version replay fails
80
95
  explicitly; indefinite replay across incompatible future major versions is not
81
96
  promised.
82
97
 
@@ -3,6 +3,10 @@
3
3
  This reference describes the frozen Scenario Engine DSL 1 grammar and semantics.
4
4
  Unknown keys are rejected in every schema-defined mapping.
5
5
 
6
+ DSL 1 remains bound to Engine 1.0.0, Result/1, Manifest/1, and Suite Run/1 in
7
+ distribution 3.0.0. Public Engine 2.0.0 does not promote or reinterpret DSL 1.
8
+ See [DSL 2](dsl2-reference.md) for logical actors.
9
+
6
10
  ## Root document
7
11
 
8
12
  Required root keys are:
@@ -0,0 +1,40 @@
1
+ # DSL 2 logical-actor reference
2
+
3
+ **Status: PREPUBLICATION — DSE distribution 3.0.0 candidate.**
4
+
5
+ DSL 2 is selected only by integer `dsl_version: 2` and executes with Engine
6
+ 2.0.0. It preserves DSL 1 expression, deterministic value, resource, plugin,
7
+ clock, and atomic-step foundations while declaring ordered logical actors. Each
8
+ actor has a canonical `scenario:/actor/<id>` address and an ordered `steps`
9
+ sequence. Unknown keys, duplicate identifiers, noncanonical addresses, invalid
10
+ types, and exceeded bounds fail before execution.
11
+
12
+ ## Execution and evidence
13
+
14
+ Execution requires two independent coordinates:
15
+
16
+ - `root_seed` controls addressed generation;
17
+ - `schedule_seed` is an explicit unsigned 64-bit integer controlling scheduler
18
+ selection and is never inferred from the root seed.
19
+
20
+ The public workflow is `scenario_engine.engine2.validate_engine2()`,
21
+ `execute_engine2()`, and `replay_engine2()`. It produces canonical
22
+ `scenario.result/2`, embedded `scenario.manifest/2`, and replay-authoritative
23
+ `scenario.schedule/1`. Exact replay rejects missing, altered, mixed-major, or
24
+ incompletely linked evidence.
25
+
26
+ ## Analysis and limits
27
+
28
+ Result/2 supports actor-aware inspect/explain, conservative analysis, and the
29
+ offline static trace viewer. Inclusive resource ceilings cover actors, steps,
30
+ scheduler selections, canonical schedule bytes (8 MiB), canonical result bytes
31
+ (32 MiB), nesting depth, and input bytes. Duplicate JSON keys, remote URIs,
32
+ filesystem link traversal, noncanonical semantic addresses, invalid seeds, and
33
+ secret reflection are rejected or redacted.
34
+
35
+ ## Unsupported capabilities
36
+
37
+ DSL 1/Engine 2 and DSL 2/Engine 1 execution are unsupported. There is no silent
38
+ migration, package-version inference, schedule-seed derivation, wall-clock or
39
+ network discovery, or Engine 2 suite orchestration. `suite.run/2` is a strict
40
+ schema/reader contract only.