deterministic-scenario-engine 2.0.0__tar.gz → 2.1.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 (188) hide show
  1. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/MANIFEST.in +1 -0
  2. {deterministic_scenario_engine-2.0.0/src/deterministic_scenario_engine.egg-info → deterministic_scenario_engine-2.1.0}/PKG-INFO +21 -15
  3. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/README.md +20 -14
  4. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/docs/api.md +41 -5
  5. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/docs/determinism.md +13 -1
  6. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/docs/phase2-public-contract.md +6 -3
  7. deterministic_scenario_engine-2.1.0/docs/phase3-architecture.md +731 -0
  8. deterministic_scenario_engine-2.1.0/docs/phase3-public-contract.md +298 -0
  9. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/docs/quickstart.md +17 -0
  10. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/docs/reproducibility.md +16 -0
  11. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/docs/security-and-non-goals.md +25 -1
  12. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/docs/testing-oracle.md +6 -0
  13. deterministic_scenario_engine-2.1.0/examples/phase3_ecommerce_evidence.py +27 -0
  14. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0/src/deterministic_scenario_engine.egg-info}/PKG-INFO +21 -15
  15. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/deterministic_scenario_engine.egg-info/SOURCES.txt +26 -1
  16. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/_version.py +1 -1
  17. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/cli/main.py +98 -1
  18. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/dsl/models.py +4 -4
  19. deterministic_scenario_engine-2.1.0/src/scenario_engine/evidence/__init__.py +211 -0
  20. deterministic_scenario_engine-2.1.0/src/scenario_engine/evidence/adapter.py +329 -0
  21. deterministic_scenario_engine-2.1.0/src/scenario_engine/evidence/canonical.py +71 -0
  22. deterministic_scenario_engine-2.1.0/src/scenario_engine/evidence/compatibility.py +490 -0
  23. deterministic_scenario_engine-2.1.0/src/scenario_engine/evidence/errors.py +123 -0
  24. deterministic_scenario_engine-2.1.0/src/scenario_engine/evidence/export.py +320 -0
  25. deterministic_scenario_engine-2.1.0/src/scenario_engine/evidence/fixture.py +152 -0
  26. deterministic_scenario_engine-2.1.0/src/scenario_engine/evidence/migration.py +223 -0
  27. deterministic_scenario_engine-2.1.0/src/scenario_engine/evidence/models.py +223 -0
  28. deterministic_scenario_engine-2.1.0/src/scenario_engine/evidence/read.py +371 -0
  29. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/provenance.py +2 -2
  30. deterministic_scenario_engine-2.1.0/src/scenario_engine/reference_packs/__init__.py +16 -0
  31. deterministic_scenario_engine-2.1.0/src/scenario_engine/reference_packs/ecommerce_evidence.py +310 -0
  32. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/tests/test_phase_1_0e_packaging_release_candidate.py +11 -3
  33. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/tests/test_phase_2_10_workflow_demonstrators.py +4 -2
  34. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/tests/test_phase_2_12_public_contract_docs_freeze.py +1 -1
  35. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/tests/test_phase_2_13_packaging_fresh_install_rc.py +11 -4
  36. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/tests/test_phase_2_1_v1_read_contract.py +1 -1
  37. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/tests/test_phase_2_2_composition.py +1 -1
  38. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/tests/test_phase_2_3_matrix.py +1 -1
  39. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/tests/test_phase_2_4_batch.py +1 -1
  40. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/tests/test_phase_2_5_inspect_explain.py +1 -1
  41. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/tests/test_phase_2_7_cli_product_surface.py +1 -1
  42. deterministic_scenario_engine-2.1.0/tests/test_phase_3_10_performance_security_hardening.py +208 -0
  43. deterministic_scenario_engine-2.1.0/tests/test_phase_3_11_public_contract_docs_freeze.py +184 -0
  44. deterministic_scenario_engine-2.1.0/tests/test_phase_3_12_packaging_fresh_install_rc.py +76 -0
  45. deterministic_scenario_engine-2.1.0/tests/test_phase_3_1_evidence_bundle_contract.py +259 -0
  46. deterministic_scenario_engine-2.1.0/tests/test_phase_3_2_safe_bundle_reader_validator.py +286 -0
  47. deterministic_scenario_engine-2.1.0/tests/test_phase_3_3_ordered_export.py +267 -0
  48. deterministic_scenario_engine-2.1.0/tests/test_phase_3_4_evidence_adapter_contract.py +256 -0
  49. deterministic_scenario_engine-2.1.0/tests/test_phase_3_5_compatibility_migration_planner.py +232 -0
  50. deterministic_scenario_engine-2.1.0/tests/test_phase_3_6_lossless_migrations_fixture_export.py +133 -0
  51. deterministic_scenario_engine-2.1.0/tests/test_phase_3_7_cli_interchange_surface.py +256 -0
  52. deterministic_scenario_engine-2.1.0/tests/test_phase_3_8_ecommerce_evidence_workflow.py +132 -0
  53. deterministic_scenario_engine-2.0.0/src/scenario_engine/reference_packs/__init__.py +0 -1
  54. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/LICENSE +0 -0
  55. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/docs/compatibility.md +0 -0
  56. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/docs/dsl-reference.md +0 -0
  57. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/docs/hypothesis.md +0 -0
  58. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/docs/phase2-architecture.md +0 -0
  59. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/docs/plugins.md +0 -0
  60. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/docs/schemathesis.md +0 -0
  61. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/docs/sqlalchemy.md +0 -0
  62. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/examples/api_scenario.yaml +0 -0
  63. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/examples/cart.yaml +0 -0
  64. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/examples/control_flow.yaml +0 -0
  65. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/examples/ecommerce.yaml +0 -0
  66. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/examples/openapi.yaml +0 -0
  67. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/examples/oracle_fault.yaml +0 -0
  68. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/examples/phase0_1b_cart.yaml +0 -0
  69. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/examples/phase0_3_resources.yaml +0 -0
  70. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/examples/phase0_4_control_flow.yaml +0 -0
  71. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/examples/phase0_5_oracle_fault.yaml +0 -0
  72. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/examples/phase0_6_sqlalchemy_rows.yaml +0 -0
  73. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/examples/phase0_7_ecommerce_plugin.yaml +0 -0
  74. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/examples/phase0_8_api_scenario.yaml +0 -0
  75. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/examples/phase0_8_openapi.yaml +0 -0
  76. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/examples/resources.yaml +0 -0
  77. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/examples/sqlalchemy_rows.yaml +0 -0
  78. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/pyproject.toml +0 -0
  79. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/setup.cfg +0 -0
  80. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/deterministic_scenario_engine.egg-info/dependency_links.txt +0 -0
  81. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/deterministic_scenario_engine.egg-info/entry_points.txt +0 -0
  82. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/deterministic_scenario_engine.egg-info/requires.txt +0 -0
  83. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/deterministic_scenario_engine.egg-info/top_level.txt +0 -0
  84. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/__init__.py +0 -0
  85. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/adapters/__init__.py +0 -0
  86. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/adapters/json_file.py +0 -0
  87. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/adapters/sqlalchemy.py +0 -0
  88. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/address.py +0 -0
  89. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/artifacts.py +0 -0
  90. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/batch/__init__.py +0 -0
  91. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/batch/canonical.py +0 -0
  92. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/batch/errors.py +0 -0
  93. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/batch/models.py +0 -0
  94. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/batch/runtime.py +0 -0
  95. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/canonical.py +0 -0
  96. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/cli/__init__.py +0 -0
  97. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/cli/__main__.py +0 -0
  98. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/clock.py +0 -0
  99. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/composition/__init__.py +0 -0
  100. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/composition/canonical.py +0 -0
  101. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/composition/errors.py +0 -0
  102. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/composition/models.py +0 -0
  103. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/composition/parser.py +0 -0
  104. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/composition/resolver.py +0 -0
  105. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/composition/runtime.py +0 -0
  106. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/context.py +0 -0
  107. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/control_flow.py +0 -0
  108. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/diff/__init__.py +0 -0
  109. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/diff/compare.py +0 -0
  110. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/diff/errors.py +0 -0
  111. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/diff/models.py +0 -0
  112. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/diff/render.py +0 -0
  113. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/diff/serialization.py +0 -0
  114. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/domain_packs/__init__.py +0 -0
  115. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/domain_packs/canonical.py +0 -0
  116. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/domain_packs/errors.py +0 -0
  117. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/domain_packs/models.py +0 -0
  118. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/domain_packs/registry.py +0 -0
  119. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/dsl/__init__.py +0 -0
  120. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/dsl/compiler.py +0 -0
  121. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/dsl/errors.py +0 -0
  122. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/dsl/parser.py +0 -0
  123. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/dsl/runtime.py +0 -0
  124. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/errors.py +0 -0
  125. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/expressions.py +0 -0
  126. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/faults.py +0 -0
  127. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/history.py +0 -0
  128. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/ids.py +0 -0
  129. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/inspection/__init__.py +0 -0
  130. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/inspection/errors.py +0 -0
  131. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/inspection/explain.py +0 -0
  132. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/inspection/inspect.py +0 -0
  133. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/inspection/models.py +0 -0
  134. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/inspection/redaction.py +0 -0
  135. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/inspection/serialization.py +0 -0
  136. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/integrations/__init__.py +0 -0
  137. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/integrations/hypothesis.py +0 -0
  138. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/integrations/schemathesis.py +0 -0
  139. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/invariants.py +0 -0
  140. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/manifest.py +0 -0
  141. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/matrix/__init__.py +0 -0
  142. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/matrix/canonical.py +0 -0
  143. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/matrix/errors.py +0 -0
  144. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/matrix/expand.py +0 -0
  145. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/matrix/filtering.py +0 -0
  146. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/matrix/models.py +0 -0
  147. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/matrix/runtime.py +0 -0
  148. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/oracle.py +0 -0
  149. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/oracle_assertions/__init__.py +0 -0
  150. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/oracle_assertions/errors.py +0 -0
  151. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/oracle_assertions/evaluate.py +0 -0
  152. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/oracle_assertions/models.py +0 -0
  153. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/oracle_assertions/serialization.py +0 -0
  154. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/plugins.py +0 -0
  155. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/pytest_plugin.py +0 -0
  156. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/reference_packs/ecommerce.py +0 -0
  157. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/resources.py +0 -0
  158. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/result.py +0 -0
  159. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/rng.py +0 -0
  160. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/runner.py +0 -0
  161. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/state.py +0 -0
  162. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/suite/__init__.py +0 -0
  163. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/suite/errors.py +0 -0
  164. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/suite/models.py +0 -0
  165. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/suite/read.py +0 -0
  166. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/suite/serialization.py +0 -0
  167. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/validation.py +0 -0
  168. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/src/scenario_engine/values.py +0 -0
  169. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/tests/test_phase_0_1a_semantic_kernel.py +0 -0
  170. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/tests/test_phase_0_1b_linear_dsl.py +0 -0
  171. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/tests/test_phase_0_1c_integrated_phase0_1.py +0 -0
  172. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/tests/test_phase_0_1c_r1_missing_sentinel_repair.py +0 -0
  173. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/tests/test_phase_0_2a_reproducible_results.py +0 -0
  174. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/tests/test_phase_0_2b_json_pytest_integration.py +0 -0
  175. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/tests/test_phase_0_3_resources_constraints.py +0 -0
  176. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/tests/test_phase_0_4_control_flow.py +0 -0
  177. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/tests/test_phase_0_5_oracle_faults.py +0 -0
  178. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/tests/test_phase_0_6_sqlalchemy_materializer.py +0 -0
  179. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/tests/test_phase_0_7_plugins_ecommerce.py +0 -0
  180. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/tests/test_phase_0_8_hypothesis_schemathesis.py +0 -0
  181. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/tests/test_phase_1_0b_public_api_error_contract.py +0 -0
  182. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/tests/test_phase_1_0c_dsl_compatibility_contract.py +0 -0
  183. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/tests/test_phase_1_0d_documentation_examples.py +0 -0
  184. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/tests/test_phase_2_11_performance_scale_hardening.py +0 -0
  185. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/tests/test_phase_2_1_models_serialization.py +0 -0
  186. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/tests/test_phase_2_6_structured_semantic_diff.py +0 -0
  187. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/tests/test_phase_2_8_domain_pack_foundation.py +0 -0
  188. {deterministic_scenario_engine-2.0.0 → deterministic_scenario_engine-2.1.0}/tests/test_phase_2_9_oracle_assertions.py +0 -0
@@ -4,6 +4,7 @@ include pyproject.toml
4
4
  recursive-include src *.py
5
5
  recursive-include docs *.md
6
6
  recursive-include examples *.yaml
7
+ include examples/phase3_ecommerce_evidence.py
7
8
  recursive-include tests *.py
8
9
  global-exclude *.py[cod]
9
10
  global-exclude __pycache__
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: deterministic-scenario-engine
3
- Version: 2.0.0
3
+ Version: 2.1.0
4
4
  Summary: Reproducible, state-consistent business scenarios with deterministic ground truth
5
5
  License-Expression: Apache-2.0
6
6
  Keywords: deterministic,scenario,testing,fixtures,replay
@@ -35,10 +35,11 @@ Dynamic: license-file
35
35
 
36
36
  Deterministic Scenario Engine (DSE) creates reproducible, state-consistent
37
37
  business histories and deterministic scenario suites with ground truth for
38
- testing. The Phase 2 contract is frozen in this source tree as an unpublished
39
- 2.0.0 release candidate; no PyPI or GitHub release has occurred yet. Its
40
- distribution version is 2.0.0 while its deterministic compatibility version
41
- remains `ENGINE_VERSION == "1.0.0"` and its DSL version remains integer 1.
38
+ testing. The published distribution is `deterministic-scenario-engine` 2.0.0.
39
+ Phase 3 evidence-interchange capabilities are implemented on `main` and the
40
+ current source release candidate reports distribution version 2.1.0, while 2.1.0
41
+ is not published. Its deterministic compatibility version remains
42
+ `ENGINE_VERSION == "1.0.0"`, and its DSL version remains integer 1.
42
43
 
43
44
  ## Why it exists
44
45
 
@@ -66,14 +67,18 @@ make expected behavior explicit.
66
67
  - ordered Cartesian matrices with stable case IDs and original indexes
67
68
  - immutable ordered batch plans and worker-independent results
68
69
  - structured, redacted inspect/explain evidence and typed RFC 6901 semantic diff
69
- - nine-command `scenario` CLI for local and CI workflows
70
+ - twelve-command `scenario` CLI for local and CI workflows, including bounded
71
+ local evidence export, verification, and lossless migration
70
72
  - explicit immutable Domain Pack registries and pure Oracle Assertions
73
+ - canonical evidence bundles, ordered JSON/JSONL export, compatibility reports,
74
+ explicit adapters, closed lossless migrations, and fixture-directory export
71
75
 
72
76
  Core execution does not require a database, network service, plugin, or property
73
77
  testing framework. See [security assumptions and non-goals](docs/security-and-non-goals.md).
74
- Phase 2 adds no hidden discovery, network, randomness, wall-clock, or ambient
75
- environment semantics. Its public imports, CLI contract, bounds, compatibility
76
- posture, and adoption guidance are frozen in the [Phase 2 public contract](docs/phase2-public-contract.md).
78
+ Neither Phase 2 nor Phase 3 adds hidden discovery, network, randomness,
79
+ wall-clock, or ambient environment semantics. The historical Phase 2 contract
80
+ is frozen in the [Phase 2 public contract](docs/phase2-public-contract.md); the
81
+ additive evidence surface is frozen in the [Phase 3 public contract](docs/phase3-public-contract.md).
77
82
 
78
83
  ## Installation
79
84
 
@@ -93,7 +98,7 @@ Install only the named optional integrations you need:
93
98
  /tmp/scenario-engine-docs-venv/bin/python -m pip install '.[schemathesis]'
94
99
  ```
95
100
 
96
- The release-candidate distribution is `deterministic-scenario-engine` 2.0.0. Install the package
101
+ The published distribution is `deterministic-scenario-engine` 2.0.0. Install the package
97
102
  with `pip install deterministic-scenario-engine`, or select an optional integration
98
103
  with a command such as `pip install 'deterministic-scenario-engine[pytest]'`.
99
104
 
@@ -153,12 +158,13 @@ Unsupported cross-version replay fails explicitly. See the [determinism model](d
153
158
  - [Security assumptions and non-goals](docs/security-and-non-goals.md)
154
159
  - [Compatibility contract](docs/compatibility.md)
155
160
  - [Phase 2 public contract, CLI, and hard bounds](docs/phase2-public-contract.md)
161
+ - [Phase 3 public contract and evidence interchange](docs/phase3-public-contract.md)
156
162
 
157
163
  ## Status
158
164
 
159
165
  Distribution release identity and deterministic engine compatibility are
160
- separate contracts: this unpublished candidate has distribution version 2.0.0,
161
- but generated core manifests retain `ENGINE_VERSION` 1.0.0 and DSL 1. Phase 2
162
- suite, composition, matrix, inspection, diff, Domain Pack, and Oracle Assertion
163
- contracts keep their own explicit schema versions. No 2.0.0 tag or publication
164
- has occurred. The project is licensed under Apache-2.0.
166
+ separate contracts. Version 2.0.0 has been published to PyPI and as a GitHub
167
+ Release. This source tree reports the unpublished 2.1.0 release candidate;
168
+ generated core manifests retain `ENGINE_VERSION` 1.0.0 and DSL 1. No 2.1.0 tag,
169
+ GitHub Release, or package-index publication exists. The project is licensed
170
+ under Apache-2.0.
@@ -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 Phase 2 contract is frozen in this source tree as an unpublished
8
- 2.0.0 release candidate; no PyPI or GitHub release has occurred yet. Its
9
- distribution version is 2.0.0 while its deterministic compatibility version
10
- remains `ENGINE_VERSION == "1.0.0"` and its DSL version remains integer 1.
7
+ testing. The published distribution is `deterministic-scenario-engine` 2.0.0.
8
+ Phase 3 evidence-interchange capabilities are implemented on `main` and the
9
+ current source release candidate reports distribution version 2.1.0, while 2.1.0
10
+ is not published. Its deterministic compatibility version remains
11
+ `ENGINE_VERSION == "1.0.0"`, and its DSL version remains integer 1.
11
12
 
12
13
  ## Why it exists
13
14
 
@@ -35,14 +36,18 @@ make expected behavior explicit.
35
36
  - ordered Cartesian matrices with stable case IDs and original indexes
36
37
  - immutable ordered batch plans and worker-independent results
37
38
  - structured, redacted inspect/explain evidence and typed RFC 6901 semantic diff
38
- - nine-command `scenario` CLI for local and CI workflows
39
+ - twelve-command `scenario` CLI for local and CI workflows, including bounded
40
+ local evidence export, verification, and lossless migration
39
41
  - explicit immutable Domain Pack registries and pure Oracle Assertions
42
+ - canonical evidence bundles, ordered JSON/JSONL export, compatibility reports,
43
+ explicit adapters, closed lossless migrations, and fixture-directory export
40
44
 
41
45
  Core execution does not require a database, network service, plugin, or property
42
46
  testing framework. See [security assumptions and non-goals](docs/security-and-non-goals.md).
43
- Phase 2 adds no hidden discovery, network, randomness, wall-clock, or ambient
44
- environment semantics. Its public imports, CLI contract, bounds, compatibility
45
- posture, and adoption guidance are frozen in the [Phase 2 public contract](docs/phase2-public-contract.md).
47
+ Neither Phase 2 nor Phase 3 adds hidden discovery, network, randomness,
48
+ wall-clock, or ambient environment semantics. The historical Phase 2 contract
49
+ is frozen in the [Phase 2 public contract](docs/phase2-public-contract.md); the
50
+ additive evidence surface is frozen in the [Phase 3 public contract](docs/phase3-public-contract.md).
46
51
 
47
52
  ## Installation
48
53
 
@@ -62,7 +67,7 @@ Install only the named optional integrations you need:
62
67
  /tmp/scenario-engine-docs-venv/bin/python -m pip install '.[schemathesis]'
63
68
  ```
64
69
 
65
- The release-candidate distribution is `deterministic-scenario-engine` 2.0.0. Install the package
70
+ The published distribution is `deterministic-scenario-engine` 2.0.0. Install the package
66
71
  with `pip install deterministic-scenario-engine`, or select an optional integration
67
72
  with a command such as `pip install 'deterministic-scenario-engine[pytest]'`.
68
73
 
@@ -122,12 +127,13 @@ Unsupported cross-version replay fails explicitly. See the [determinism model](d
122
127
  - [Security assumptions and non-goals](docs/security-and-non-goals.md)
123
128
  - [Compatibility contract](docs/compatibility.md)
124
129
  - [Phase 2 public contract, CLI, and hard bounds](docs/phase2-public-contract.md)
130
+ - [Phase 3 public contract and evidence interchange](docs/phase3-public-contract.md)
125
131
 
126
132
  ## Status
127
133
 
128
134
  Distribution release identity and deterministic engine compatibility are
129
- separate contracts: this unpublished candidate has distribution version 2.0.0,
130
- but generated core manifests retain `ENGINE_VERSION` 1.0.0 and DSL 1. Phase 2
131
- suite, composition, matrix, inspection, diff, Domain Pack, and Oracle Assertion
132
- contracts keep their own explicit schema versions. No 2.0.0 tag or publication
133
- has occurred. The project is licensed under Apache-2.0.
135
+ separate contracts. Version 2.0.0 has been published to PyPI and as a GitHub
136
+ Release. This source tree reports the unpublished 2.1.0 release candidate;
137
+ generated core manifests retain `ENGINE_VERSION` 1.0.0 and DSL 1. No 2.1.0 tag,
138
+ GitHub Release, or package-index publication exists. The project is licensed
139
+ under Apache-2.0.
@@ -1,15 +1,15 @@
1
1
  # Public Python API
2
2
 
3
3
  This is the canonical top-level Phase 1.0 contract, preserved unchanged by the
4
- Phase 2 freeze. Importable implementation symbols not listed here are not
5
- implicitly promoted to top-level public API. Specialized Phase 2 APIs are
6
- public through the explicit subpackages documented below, not package-root
7
- convenience exports.
4
+ Phase 2 and Phase 3 freezes. Importable implementation symbols not listed here
5
+ are not implicitly promoted to top-level public API. Specialized APIs are public
6
+ through the explicit subpackages documented below, not package-root convenience
7
+ exports.
8
8
 
9
9
  ## Constants and value objects
10
10
 
11
11
  - `ENGINE_VERSION` — engine compatibility version recorded in manifests; for
12
- the 1.0 release candidate it intentionally equals distribution version 1.0.0.
12
+ current manifests it remains 1.0.0 independently of distribution version.
13
13
  - `MISSING` — singleton semantic missing value, distinct from null.
14
14
  - `LogicalID(value: str)` — deterministic logical identifier value; users
15
15
  normally receive it from `$id` generation.
@@ -185,3 +185,39 @@ paths are stable while helpers outside `__all__` are intentionally internal.
185
185
 
186
186
  The schema/version constants and all exact export manifests are executable
187
187
  contract tests. See the [complete Phase 2 contract](phase2-public-contract.md).
188
+
189
+ ## Phase 3 evidence APIs
190
+
191
+ Phase 3 adds no package-root names. Its stable APIs are the names in `__all__`
192
+ of `scenario_engine.evidence` and `scenario_engine.reference_packs`; helpers in
193
+ their implementation modules are intentionally internal. Typical imports are:
194
+
195
+ ```python
196
+ from scenario_engine.evidence import (
197
+ ArtifactDescriptor,
198
+ EvidenceBundle,
199
+ EvidenceEntry,
200
+ EvidenceProvenance,
201
+ EvidenceRelationship,
202
+ EvidenceType,
203
+ compatibility_report,
204
+ export_evidence_bundle,
205
+ plan_migration,
206
+ read_evidence_bundle,
207
+ )
208
+ from scenario_engine.reference_packs import (
209
+ EcommerceEvidenceWorkflow,
210
+ ecommerce_domain_pack,
211
+ export_ecommerce_evidence,
212
+ )
213
+ ```
214
+
215
+ The evidence subpackage exposes immutable bundle/entry/relationship/provenance
216
+ models and canonicalization; bounded local reading and atomic export; canonical
217
+ JSON/JSONL records; explicit adapter capability/publication/receipt contracts;
218
+ finite compatibility reports and metadata-only migration plans; six closed,
219
+ lossless executable wrapper routes; and deterministic fixture-directory export.
220
+ `scenario_engine.reference_packs` exposes the ecommerce demonstrator and its
221
+ existing registry factory, not a generic workflow framework. The exact public
222
+ names, errors, schemas, limits, and compatibility posture are normative in the
223
+ [Phase 3 public contract](phase3-public-contract.md).
@@ -81,5 +81,17 @@ evidence. Worker scheduling, filesystem enumeration, host paths, locale defaults
81
81
  environment variables, network responses, and process history are not semantic
82
82
  coordinates.
83
83
 
84
+ Phase 3 evidence identity is the SHA-256 of canonical bundle index bytes. Entries
85
+ bind explicit artifact paths, sizes, schemas, and content SHA-256 values;
86
+ canonical export preserves those bytes and publishes an absent destination
87
+ atomically. JSONL records follow caller order. Compatibility reports and
88
+ migration plans use finite tables and deterministic canonical bytes; migration
89
+ results bind source/target hashes and an ordered transformation tuple. Fixture
90
+ IDs are explicit and stable, adapter receipts retain submission ordinal, and the
91
+ ecommerce reference bundle identity is independent of destination path and
92
+ worker scheduling. None of these downstream identities changes Phase 2 result
93
+ or manifest semantics.
94
+
84
95
  See [reproducibility](reproducibility.md) for recorded context and
85
- [compatibility](compatibility.md) for the normative replay contract.
96
+ [compatibility](compatibility.md) for the normative replay contract, and the
97
+ [Phase 3 public contract](phase3-public-contract.md) for evidence identity.
@@ -1,13 +1,16 @@
1
1
  # Phase 2 Public Contract Freeze
2
2
 
3
- This document defines the upcoming Phase 2 / 2.0 public contract implemented in
4
- this source tree. It is an unpublished 2.0.0 release candidate; no PyPI or
5
- GitHub release has occurred yet. Distribution metadata is 2.0.0, while the
3
+ This document defines the historical Phase 2 / 2.0 public contract. Version
4
+ 2.0.0 has since been published to PyPI and as a GitHub Release. Distribution
5
+ metadata remains 2.0.0 in the current source tree, while the
6
6
  deterministic core compatibility token recorded in manifests remains
7
7
  `ENGINE_VERSION == "1.0.0"`. DSL version remains integer 1. Distribution release
8
8
  identity and engine compatibility are distinct concepts. Composition, matrix,
9
9
  suite, inspection, diff, Domain Pack, and Oracle Assertion contracts retain
10
10
  their independent schema versions and do not reinterpret valid v1 documents.
11
+ The additive, currently unreleased Phase 3 evidence contract is documented
12
+ separately in the [Phase 3 public contract](phase3-public-contract.md); its
13
+ eventual distribution target is 2.1.0.
11
14
 
12
15
  ## Supported product surface
13
16