PTSIP 0.3.8a6__tar.gz → 0.3.8b3__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 (610) hide show
  1. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/MANIFEST.in +3 -0
  2. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/PKG-INFO +6 -8
  3. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/README.md +5 -7
  4. ptsip-0.3.8b3/ptsip-build-source.json +4 -0
  5. ptsip-0.3.8b3/ptsip_build_backend.py +133 -0
  6. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/pyproject.toml +23 -12
  7. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/PTSIP.egg-info/PKG-INFO +6 -8
  8. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/PTSIP.egg-info/SOURCES.txt +53 -2
  9. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/CNTR/SFP-CNTR-0005.yaml +2 -1
  10. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/constants.py +1 -1
  11. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engine_installation.py +56 -10
  12. ptsip-0.3.8b3/src/ptsip/engines/context/Cargo.lock +792 -0
  13. ptsip-0.3.8b3/src/ptsip/engines/context/Cargo.toml +16 -0
  14. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/context/execution-bindings.json +1 -1
  15. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/context/manifest.json +1 -1
  16. ptsip-0.3.8b3/src/ptsip/engines/context/src/loading.rs +15 -0
  17. ptsip-0.3.8b3/src/ptsip/engines/context/src/main.rs +126 -0
  18. ptsip-0.3.8b3/src/ptsip/engines/context/src/source.rs +185 -0
  19. ptsip-0.3.8b3/src/ptsip/engines/context/version.yaml +3 -0
  20. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/contracts/dependency-graph.json +14 -14
  21. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/contracts/installation-plan.json +7 -7
  22. ptsip-0.3.8b3/src/ptsip/engines/discovery/Cargo.lock +792 -0
  23. ptsip-0.3.8b3/src/ptsip/engines/discovery/Cargo.toml +16 -0
  24. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/discovery/execution-bindings.json +1 -1
  25. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/discovery/manifest.json +1 -1
  26. ptsip-0.3.8b3/src/ptsip/engines/discovery/src/invocation.rs +17 -0
  27. ptsip-0.3.8b3/src/ptsip/engines/discovery/src/main.rs +129 -0
  28. ptsip-0.3.8b3/src/ptsip/engines/discovery/src/registry.rs +358 -0
  29. ptsip-0.3.8b3/src/ptsip/engines/discovery/src/source.rs +305 -0
  30. ptsip-0.3.8b3/src/ptsip/engines/discovery/version.yaml +3 -0
  31. ptsip-0.3.8b3/src/ptsip/engines/execution/Cargo.lock +792 -0
  32. ptsip-0.3.8b3/src/ptsip/engines/execution/Cargo.toml +16 -0
  33. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/execution/execution-bindings.json +1 -1
  34. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/execution/manifest.json +1 -1
  35. ptsip-0.3.8b3/src/ptsip/engines/execution/src/authority.rs +99 -0
  36. ptsip-0.3.8b3/src/ptsip/engines/execution/src/effect.rs +66 -0
  37. ptsip-0.3.8b3/src/ptsip/engines/execution/src/invocation.rs +163 -0
  38. ptsip-0.3.8b3/src/ptsip/engines/execution/src/main.rs +185 -0
  39. ptsip-0.3.8b3/src/ptsip/engines/execution/src/source.rs +305 -0
  40. ptsip-0.3.8b3/src/ptsip/engines/execution/version.yaml +3 -0
  41. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/index.json +7 -7
  42. ptsip-0.3.8b3/src/ptsip/engines/planning/Cargo.lock +792 -0
  43. ptsip-0.3.8b3/src/ptsip/engines/planning/Cargo.toml +16 -0
  44. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/planning/execution-bindings.json +1 -1
  45. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/planning/manifest.json +1 -1
  46. ptsip-0.3.8b3/src/ptsip/engines/planning/src/impact.rs +217 -0
  47. ptsip-0.3.8b3/src/ptsip/engines/planning/src/installation.rs +195 -0
  48. ptsip-0.3.8b3/src/ptsip/engines/planning/src/main.rs +179 -0
  49. ptsip-0.3.8b3/src/ptsip/engines/planning/src/preparation.rs +58 -0
  50. ptsip-0.3.8b3/src/ptsip/engines/planning/src/source.rs +302 -0
  51. ptsip-0.3.8b3/src/ptsip/engines/planning/version.yaml +3 -0
  52. ptsip-0.3.8b3/src/ptsip/engines/projection/Cargo.lock +792 -0
  53. ptsip-0.3.8b3/src/ptsip/engines/projection/Cargo.toml +16 -0
  54. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/projection/execution-bindings.json +1 -1
  55. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/projection/manifest.json +1 -1
  56. ptsip-0.3.8b3/src/ptsip/engines/projection/src/main.rs +149 -0
  57. ptsip-0.3.8b3/src/ptsip/engines/projection/src/rendering.rs +70 -0
  58. ptsip-0.3.8b3/src/ptsip/engines/projection/src/source.rs +185 -0
  59. ptsip-0.3.8b3/src/ptsip/engines/projection/version.yaml +3 -0
  60. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/registries/derived-snapshot.json +29 -29
  61. ptsip-0.3.8b3/src/ptsip/engines/storage/Cargo.lock +792 -0
  62. ptsip-0.3.8b3/src/ptsip/engines/storage/Cargo.toml +16 -0
  63. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/storage/execution-bindings.json +1 -1
  64. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/storage/manifest.json +1 -1
  65. ptsip-0.3.8b3/src/ptsip/engines/storage/src/main.rs +123 -0
  66. ptsip-0.3.8b3/src/ptsip/engines/storage/src/native.rs +233 -0
  67. ptsip-0.3.8b3/src/ptsip/engines/storage/src/provider.rs +145 -0
  68. ptsip-0.3.8b3/src/ptsip/engines/storage/src/source.rs +198 -0
  69. ptsip-0.3.8b3/src/ptsip/engines/storage/version.yaml +3 -0
  70. ptsip-0.3.8b3/src/ptsip/engines/validation/Cargo.lock +792 -0
  71. ptsip-0.3.8b3/src/ptsip/engines/validation/Cargo.toml +16 -0
  72. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/validation/execution-bindings.json +1 -1
  73. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/validation/manifest.json +1 -1
  74. ptsip-0.3.8b3/src/ptsip/engines/validation/src/cases.rs +102 -0
  75. ptsip-0.3.8b3/src/ptsip/engines/validation/src/composition.rs +104 -0
  76. ptsip-0.3.8b3/src/ptsip/engines/validation/src/handoff.rs +215 -0
  77. ptsip-0.3.8b3/src/ptsip/engines/validation/src/main.rs +201 -0
  78. ptsip-0.3.8b3/src/ptsip/engines/validation/src/source.rs +185 -0
  79. ptsip-0.3.8b3/src/ptsip/engines/validation/version.yaml +3 -0
  80. ptsip-0.3.8b3/src/ptsip/package-distribution.json +16 -0
  81. ptsip-0.3.8a6/src/ptsip/remediation/solution/candidate.py +0 -317
  82. ptsip-0.3.8a6/src/ptsip/remediation/solution/elimination.py +0 -469
  83. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/License-Authority/COMMERCIAL-USE.md +0 -0
  84. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/License-Authority/LICENSE-GUIDE.md +0 -0
  85. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/License-Authority/LICENSE-HISTORY.md +0 -0
  86. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/License-Authority/LICENSE.md +0 -0
  87. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/License-Authority/NOTICE.md +0 -0
  88. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/License-Authority/license-authority.yaml +0 -0
  89. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/registry/project-profile-contracts.yaml +0 -0
  90. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/setup.cfg +0 -0
  91. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/setup.py +0 -0
  92. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/PTSIP.egg-info/dependency_links.txt +0 -0
  93. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/PTSIP.egg-info/entry_points.txt +0 -0
  94. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/PTSIP.egg-info/requires.txt +0 -0
  95. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/PTSIP.egg-info/top_level.txt +0 -0
  96. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/__init__.py +0 -0
  97. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/actions/analyze-source-profile.yaml +0 -0
  98. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/actions/apply-adoption.yaml +0 -0
  99. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/actions/apply-profile-transition.yaml +0 -0
  100. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/actions/build-adoption-plan.yaml +0 -0
  101. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/actions/build-transition-plan.yaml +0 -0
  102. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/actions/capture-repository-snapshot.yaml +0 -0
  103. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/actions/collect-conformance-evidence.yaml +0 -0
  104. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/actions/compare-profile-authority.yaml +0 -0
  105. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/actions/emit-conformance-result.yaml +0 -0
  106. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/actions/evaluate-conformance-rules.yaml +0 -0
  107. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/actions/map-profile-target.yaml +0 -0
  108. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/actions/project-authority-winner.yaml +0 -0
  109. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/actions/read-relevant-authority.yaml +0 -0
  110. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/actions/resolve-adoption-facts.yaml +0 -0
  111. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/actions/resolve-profile-schema.yaml +0 -0
  112. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/actions/resolve-reconciliation-state.yaml +0 -0
  113. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/actions/validate-profile-structure.yaml +0 -0
  114. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/actions/validate-responsibility-map-semantics.yaml +0 -0
  115. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/bindings/current.yaml +0 -0
  116. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/candidate.py +0 -0
  117. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/canonicalization/ptsip-canonical-json-v1.json +0 -0
  118. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/conditions/adopt-apply-requested.yaml +0 -0
  119. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/conditions/adopt-authority-fresh.yaml +0 -0
  120. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/conditions/adopt-facts-resolved.yaml +0 -0
  121. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/conditions/adopt-profile-fresh.yaml +0 -0
  122. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/conditions/adopt-repository-fresh.yaml +0 -0
  123. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/conditions/adopt-snapshot-identified.yaml +0 -0
  124. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/conditions/adopt-write-authorized.yaml +0 -0
  125. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/conditions/authority-authority-fresh.yaml +0 -0
  126. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/conditions/authority-coordination-available.yaml +0 -0
  127. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/conditions/authority-profile-fresh.yaml +0 -0
  128. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/conditions/authority-projection-required.yaml +0 -0
  129. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/conditions/authority-semantic-conflict-absent.yaml +0 -0
  130. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/conditions/authority-write-authorized.yaml +0 -0
  131. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/conditions/conform-profile-ready.yaml +0 -0
  132. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/conditions/conform-snapshot-identified.yaml +0 -0
  133. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/conditions/migrate-apply-requested.yaml +0 -0
  134. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/conditions/migrate-source-fresh.yaml +0 -0
  135. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/conditions/migrate-source-profile-identified.yaml +0 -0
  136. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/conditions/migrate-target-contract-resolved.yaml +0 -0
  137. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/conditions/migrate-target-fresh.yaml +0 -0
  138. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/conditions/migrate-write-authorized.yaml +0 -0
  139. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/conditions/validate-contract-resolved.yaml +0 -0
  140. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/conditions/validate-profile-selected.yaml +0 -0
  141. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/conformance/current.json +0 -0
  142. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/contracts/current.json +0 -0
  143. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/digests/policy-v1.json +0 -0
  144. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/digests/projection-v1.json +0 -0
  145. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/gates/adoption-write.yaml +0 -0
  146. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/gates/authority-projection-write.yaml +0 -0
  147. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/gates/profile-transition-write.yaml +0 -0
  148. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/index.json +0 -0
  149. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/index.yaml +0 -0
  150. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/machine_resolver.py +0 -0
  151. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/operations/adopt.yaml +0 -0
  152. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/operations/conform.yaml +0 -0
  153. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/operations/migrate-profile.yaml +0 -0
  154. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/operations/reconcile-authority.yaml +0 -0
  155. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/operations/validate.yaml +0 -0
  156. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/promotion/current.json +0 -0
  157. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/promotion/index.json +0 -0
  158. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/promotion/specification-contract.json +0 -0
  159. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/resolver.py +0 -0
  160. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/schemas/candidate-group.schema.json +0 -0
  161. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/schemas/candidate-index.schema.json +0 -0
  162. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/schemas/candidate-vectors.schema.json +0 -0
  163. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/schemas/contracts/action.schema.json +0 -0
  164. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/schemas/contracts/binding.schema.json +0 -0
  165. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/schemas/contracts/condition.schema.json +0 -0
  166. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/schemas/contracts/index.schema.json +0 -0
  167. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/schemas/contracts/io.schema.json +0 -0
  168. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/schemas/contracts/mutation-gate.schema.json +0 -0
  169. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/schemas/contracts/operation.schema.json +0 -0
  170. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/schemas/contracts/promotion.schema.json +0 -0
  171. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/schemas/contracts/spec.schema.json +0 -0
  172. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/schemas/contracts/vocabulary.schema.json +0 -0
  173. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/schemas/io/adopt-request.schema.json +0 -0
  174. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/schemas/io/adopt-result.schema.json +0 -0
  175. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/schemas/io/adopt-state.schema.json +0 -0
  176. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/schemas/io/authority-request.schema.json +0 -0
  177. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/schemas/io/authority-result.schema.json +0 -0
  178. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/schemas/io/authority-state.schema.json +0 -0
  179. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/schemas/io/conform-request.schema.json +0 -0
  180. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/schemas/io/conform-result.schema.json +0 -0
  181. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/schemas/io/conform-state.schema.json +0 -0
  182. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/schemas/io/migrate-request.schema.json +0 -0
  183. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/schemas/io/migrate-result.schema.json +0 -0
  184. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/schemas/io/migrate-state.schema.json +0 -0
  185. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/schemas/io/validate-request.schema.json +0 -0
  186. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/schemas/io/validate-result.schema.json +0 -0
  187. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/schemas/io/validate-state.schema.json +0 -0
  188. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/spec/adoption-procedure.yaml +0 -0
  189. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/spec/adoption.yaml +0 -0
  190. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/spec/agent-behavior.yaml +0 -0
  191. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/spec/authority.yaml +0 -0
  192. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/spec/classification.yaml +0 -0
  193. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/spec/conformance-detail.yaml +0 -0
  194. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/spec/conformance.yaml +0 -0
  195. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/spec/core.yaml +0 -0
  196. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/spec/governance.yaml +0 -0
  197. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/spec/profile-transition-detail.yaml +0 -0
  198. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/spec/profile-transition.yaml +0 -0
  199. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/spec/repository-boundaries.yaml +0 -0
  200. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/spec/responsibility-map-detail.yaml +0 -0
  201. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/spec/responsibility-map.yaml +0 -0
  202. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/spec/specification-governance.yaml +0 -0
  203. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/validator.py +0 -0
  204. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/vocabulary/authority.yaml +0 -0
  205. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/vocabulary/diagnostics.yaml +0 -0
  206. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/vocabulary/lifecycle.yaml +0 -0
  207. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/vocabulary/outcomes.yaml +0 -0
  208. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/agent_contracts/vocabulary/terminology.yaml +0 -0
  209. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/ARCH/SFP-ARCH-0001.yaml +0 -0
  210. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/ARCH/SFP-ARCH-0002.yaml +0 -0
  211. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/ARCH/SFP-ARCH-0003.yaml +0 -0
  212. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/ARCH/SFP-ARCH-0004.yaml +0 -0
  213. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/ARCH/SFP-ARCH-0005.yaml +0 -0
  214. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/ASSURE/SFP-ASSURE-0001.yaml +0 -0
  215. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/ASSURE/SFP-ASSURE-0002.yaml +0 -0
  216. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/ASSURE/SFP-ASSURE-0003.yaml +0 -0
  217. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/ASSURE/SFP-ASSURE-0004.yaml +0 -0
  218. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/ASSURE/SFP-ASSURE-0005.yaml +0 -0
  219. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/CHANGE/SFP-CHANGE-0001.yaml +0 -0
  220. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/CNTR/SFP-CNTR-0001.yaml +0 -0
  221. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/CNTR/SFP-CNTR-0002.yaml +0 -0
  222. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/CNTR/SFP-CNTR-0003.yaml +0 -0
  223. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/CNTR/SFP-CNTR-0004.yaml +0 -0
  224. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/CNTR/SFP-CNTR-0006.yaml +0 -0
  225. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/CNTR/SFP-CNTR-0007.yaml +0 -0
  226. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/CNTR/SFP-CNTR-0008.yaml +0 -0
  227. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/CTRL/SFP-CTRL-0001.yaml +0 -0
  228. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/CTRL/SFP-CTRL-0002.yaml +0 -0
  229. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/CTRL/SFP-CTRL-0003.yaml +0 -0
  230. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/GOV/SFP-GOV-0001.yaml +0 -0
  231. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/GOV/SFP-GOV-0002.yaml +0 -0
  232. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/INFO/SFP-INFO-0001.yaml +0 -0
  233. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/INFO/SFP-INFO-0002.yaml +0 -0
  234. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/INFO/SFP-INFO-0003.yaml +0 -0
  235. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/INFO/SFP-INFO-0004.yaml +0 -0
  236. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/INFO/SFP-INFO-0005.yaml +0 -0
  237. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/INFO/SFP-INFO-0006.yaml +0 -0
  238. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/INFO/SFP-INFO-0007.yaml +0 -0
  239. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/INFO/SFP-INFO-0008.yaml +0 -0
  240. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/INFO/SFP-INFO-0009.yaml +0 -0
  241. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/INTENT/SFP-INTENT-0001.yaml +0 -0
  242. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/NORM/SFP-NORM-0001.yaml +0 -0
  243. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/NORM/SFP-NORM-0002.yaml +0 -0
  244. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/OPS/SFP-OPS-0001.yaml +0 -0
  245. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/OPS/SFP-OPS-0002.yaml +0 -0
  246. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/REAL/SFP-REAL-0001.yaml +0 -0
  247. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/RECORD/SFP-RECORD-0001.yaml +0 -0
  248. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/RECORD/SFP-RECORD-0002.yaml +0 -0
  249. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/RECORD/SFP-RECORD-0003.yaml +0 -0
  250. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/RECORD/SFP-RECORD-0004.yaml +0 -0
  251. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/RISK/SFP-RISK-0001.yaml +0 -0
  252. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/SUPPLY/SFP-SUPPLY-0001.yaml +0 -0
  253. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/index.yaml +0 -0
  254. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/legacy/SFP-0001.yaml +0 -0
  255. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/legacy/SFP-0002.yaml +0 -0
  256. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/legacy/SFP-0003.yaml +0 -0
  257. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/legacy/SFP-0004.yaml +0 -0
  258. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/legacy/SFP-0005.yaml +0 -0
  259. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/legacy/SFP-0006.yaml +0 -0
  260. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/legacy/SFP-0007.yaml +0 -0
  261. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/legacy/SFP-0008.yaml +0 -0
  262. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/legacy/SFP-0009.yaml +0 -0
  263. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/legacy/SFP-0010.yaml +0 -0
  264. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/legacy/SFP-0011.yaml +0 -0
  265. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/legacy/SFP-0012.yaml +0 -0
  266. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/legacy/SFP-0013.yaml +0 -0
  267. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/legacy/SFP-0014.yaml +0 -0
  268. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/legacy/SFP-0015.yaml +0 -0
  269. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/legacy/SFP-0016.yaml +0 -0
  270. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/legacy/SFP-0017.yaml +0 -0
  271. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/legacy/SFP-0018.yaml +0 -0
  272. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/legacy/SFP-0019.yaml +0 -0
  273. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/legacy/SFP-0020.yaml +0 -0
  274. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/legacy/SFP-0021.yaml +0 -0
  275. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/legacy/SFP-0022.yaml +0 -0
  276. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/legacy/SFP-0023.yaml +0 -0
  277. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/legacy/SFP-0024.yaml +0 -0
  278. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/registries/ptsip-support-authority-role-registry.yaml +0 -0
  279. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/registries/ptsip-support-authority-schema-registry.yaml +0 -0
  280. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/registries/ptsip-support-authority-subject-registry.yaml +0 -0
  281. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/registries/ptsip-support-authorization-registry.yaml +0 -0
  282. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/registries/root-family-migration.json +0 -0
  283. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/registries/root-family-projection-module-admission.json +0 -0
  284. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/registries/root-family-projection.module.json +0 -0
  285. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/schemas/ptsip-support-authority-eligibility-result.schema.json +0 -0
  286. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/schemas/ptsip-support-authority-role.schema.json +0 -0
  287. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/schemas/ptsip-support-authority-semantics.schema.json +0 -0
  288. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/schemas/ptsip-support-feature-policy-index.schema.json +0 -0
  289. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/schemas/ptsip-support-feature-policy.schema.json +0 -0
  290. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/schemas/ptsip-support-governance-registry.schema.json +0 -0
  291. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/schemas/ptsip-support-project-authority-record.schema.json +0 -0
  292. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/schemas/ptsip-support-root-family-policy.schema.json +0 -0
  293. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/schemas/ptsip-support-subject-binding.schema.json +0 -0
  294. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/schemas/root-family-migration.schema.json +0 -0
  295. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/policy/schemas/root-family-projection-module.schema.json +0 -0
  296. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/__init__.py +0 -0
  297. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/__main__.py +0 -0
  298. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/adoption.py +0 -0
  299. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/agent_contracts/__init__.py +0 -0
  300. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/agent_contracts/bindings/current.yaml +0 -0
  301. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/agent_contracts/index.yaml +0 -0
  302. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/agent_contracts/operations/adopt.yaml +0 -0
  303. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/agent_contracts/operations/conform.yaml +0 -0
  304. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/agent_contracts/operations/migrate-profile.yaml +0 -0
  305. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/agent_contracts/operations/reconcile-authority.yaml +0 -0
  306. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/agent_contracts/operations/validate.yaml +0 -0
  307. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/agent_contracts/runtime.py +0 -0
  308. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/agent_contracts/schemas/binding.schema.json +0 -0
  309. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/agent_contracts/schemas/index.schema.json +0 -0
  310. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/agent_contracts/schemas/operation.schema.json +0 -0
  311. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/agent_contracts/schemas/spec.schema.json +0 -0
  312. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/agent_contracts/schemas/vocabulary.schema.json +0 -0
  313. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/agent_contracts/spec/adoption.yaml +0 -0
  314. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/agent_contracts/spec/authority.yaml +0 -0
  315. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/agent_contracts/spec/classification.yaml +0 -0
  316. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/agent_contracts/spec/conformance.yaml +0 -0
  317. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/agent_contracts/spec/core.yaml +0 -0
  318. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/agent_contracts/spec/governance.yaml +0 -0
  319. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/agent_contracts/spec/profile-transition.yaml +0 -0
  320. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/agent_contracts/spec/responsibility-map.yaml +0 -0
  321. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/agent_contracts/validator.py +0 -0
  322. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/agent_contracts/vocabulary/authority.yaml +0 -0
  323. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/agent_contracts/vocabulary/diagnostics.yaml +0 -0
  324. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/agent_contracts/vocabulary/lifecycle.yaml +0 -0
  325. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/agent_contracts/vocabulary/outcomes.yaml +0 -0
  326. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/app/__init__.py +0 -0
  327. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/app/client.py +0 -0
  328. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/app/github_authority.py +0 -0
  329. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/app/github_client.py +0 -0
  330. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/app/github_reconciliation.py +0 -0
  331. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/app/local_client.py +0 -0
  332. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/app/server.py +0 -0
  333. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/app/service.py +0 -0
  334. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/app/store.py +0 -0
  335. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/artifact_evidence.py +0 -0
  336. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/build_resolution.py +0 -0
  337. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/clarification/__init__.py +0 -0
  338. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/clarification/generator.py +0 -0
  339. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/clarification/generator_core.py +0 -0
  340. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/clarification/i18n.py +0 -0
  341. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/clarification/model.py +0 -0
  342. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/clarification/render.py +0 -0
  343. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/clarification/resolution/__init__.py +0 -0
  344. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/clarification/resolution/model.py +0 -0
  345. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/clarification/resolution/parser.py +0 -0
  346. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/clarification/resolution/profile_projection.py +0 -0
  347. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/clarification/resolution/resolver.py +0 -0
  348. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/clarification/transports/__init__.py +0 -0
  349. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/clarification/transports/github_issue.py +0 -0
  350. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/cli.py +0 -0
  351. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/conformance.py +0 -0
  352. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/conformance_audit.py +0 -0
  353. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/conformance_engine.py +0 -0
  354. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/context_plane.py +0 -0
  355. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/dependency_analysis.py +0 -0
  356. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/dependency_cache.py +0 -0
  357. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/dependency_reconciliation.py +0 -0
  358. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/dependency_review.py +0 -0
  359. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/dependency_validation.py +0 -0
  360. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/doctor.py +0 -0
  361. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/context/contract.json +0 -0
  362. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/context/contracts/1.0.0.json +0 -0
  363. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/context/runtime-contracts.json +0 -0
  364. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/context/transport.json +0 -0
  365. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/contracts/capability-owner-map.json +0 -0
  366. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/contracts/context-projection-handoff.json +0 -0
  367. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/contracts/native-runtime.json +0 -0
  368. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/contracts/schemas/attempt-result.schema.json +0 -0
  369. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/contracts/schemas/capability-contract.schema.json +0 -0
  370. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/contracts/schemas/consumer-handoff.schema.json +0 -0
  371. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/contracts/schemas/contract-relation.schema.json +0 -0
  372. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/contracts/schemas/core-manifest.schema.json +0 -0
  373. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/contracts/schemas/dependency-graph.schema.json +0 -0
  374. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/contracts/schemas/derived-state.schema.json +0 -0
  375. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/contracts/schemas/effect-evidence.schema.json +0 -0
  376. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/contracts/schemas/execution-binding.schema.json +0 -0
  377. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/contracts/schemas/federated-source.schema.json +0 -0
  378. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/contracts/schemas/impact-result.schema.json +0 -0
  379. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/contracts/schemas/native-invocation-registry.schema.json +0 -0
  380. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/contracts/schemas/registry-snapshot.schema.json +0 -0
  381. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/contracts/schemas/registry-verification-input.schema.json +0 -0
  382. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/contracts/schemas/runtime-authority-consumption.schema.json +0 -0
  383. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/contracts/schemas/stop-ack.schema.json +0 -0
  384. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/contracts/schemas/stop-request.schema.json +0 -0
  385. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/contracts/schemas/stop-result.schema.json +0 -0
  386. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/contracts/schemas/storage-mediation.schema.json +0 -0
  387. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/contracts/schemas/transport-binding.schema.json +0 -0
  388. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/contracts/stdio-transport.json +0 -0
  389. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/contracts/vpms-caller-transition-plan.json +0 -0
  390. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/contracts/vpms-handoff.json +0 -0
  391. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/contracts/vpms-scope-mapping.json +0 -0
  392. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/contracts/work-item-bindings.json +0 -0
  393. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/discovery/contract.json +0 -0
  394. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/discovery/contracts/1.0.0.json +0 -0
  395. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/discovery/contracts/2.0.0.json +0 -0
  396. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/discovery/runtime-contracts.json +0 -0
  397. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/discovery/transport.json +0 -0
  398. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/execution/contract.json +0 -0
  399. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/execution/contracts/1.0.0.json +0 -0
  400. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/execution/contracts/2.0.0.json +0 -0
  401. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/execution/runtime-contracts.json +0 -0
  402. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/execution/transport.json +0 -0
  403. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/planning/contract.json +0 -0
  404. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/planning/contracts/1.0.0.json +0 -0
  405. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/planning/contracts/2.0.0.json +0 -0
  406. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/planning/runtime-contracts.json +0 -0
  407. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/planning/transport.json +0 -0
  408. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/projection/contract.json +0 -0
  409. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/projection/contracts/1.0.0.json +0 -0
  410. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/projection/runtime-contracts.json +0 -0
  411. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/projection/transport.json +0 -0
  412. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/registries/official-execution.json +0 -0
  413. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/registries/official-static.json +0 -0
  414. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/storage/contract.json +0 -0
  415. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/storage/contracts/1.0.0.json +0 -0
  416. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/storage/contracts/2.0.0.json +0 -0
  417. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/storage/provider-registry.json +0 -0
  418. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/storage/runtime-contracts.json +0 -0
  419. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/storage/transport.json +0 -0
  420. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/validation/contract.json +0 -0
  421. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/validation/contracts/1.0.0.json +0 -0
  422. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/validation/contracts/2.0.0.json +0 -0
  423. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/validation/runtime-contracts.json +0 -0
  424. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/engines/validation/transport.json +0 -0
  425. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/evidence/__init__.py +0 -0
  426. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/evidence/adapters.py +0 -0
  427. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/evidence/contract.py +0 -0
  428. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/evidence/normalization.py +0 -0
  429. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/governance/__init__.py +0 -0
  430. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/governance/authority.py +0 -0
  431. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/governance/authorization.py +0 -0
  432. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/governance/model.py +0 -0
  433. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/governance/subject_matching.py +0 -0
  434. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/governance/support_assets.py +0 -0
  435. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/inspection/__init__.py +0 -0
  436. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/inspection/candidate_evidence.py +0 -0
  437. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/inspection/components.py +0 -0
  438. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/inspection/dependencies.py +0 -0
  439. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/inspection/dependencies_030.py +0 -0
  440. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/inspection/dotnet.py +0 -0
  441. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/inspection/go.py +0 -0
  442. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/inspection/inventory.py +0 -0
  443. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/inspection/javascript.py +0 -0
  444. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/inspection/lexing.py +0 -0
  445. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/inspection/python_resolution.py +0 -0
  446. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/inspection/source_adapters.py +0 -0
  447. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/lifecycle_evidence.py +0 -0
  448. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/__init__.py +0 -0
  449. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/analysis/__init__.py +0 -0
  450. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/analysis/analyzer.py +0 -0
  451. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/analysis/direct/__init__.py +0 -0
  452. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/analysis/direct/convergence.py +0 -0
  453. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/analysis/direct/result.py +0 -0
  454. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/analysis/direct/source_projection.py +0 -0
  455. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/analysis/direct/target_projection.py +0 -0
  456. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/analysis/findings/__init__.py +0 -0
  457. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/analysis/findings/architecture.py +0 -0
  458. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/analysis/findings/lifecycle.py +0 -0
  459. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/analysis/findings/work_requirements.py +0 -0
  460. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/analysis/issue.py +0 -0
  461. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/analysis/result.py +0 -0
  462. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/analysis/source/__init__.py +0 -0
  463. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/analysis/source/binding_validation.py +0 -0
  464. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/analysis/source/evidence_correlation.py +0 -0
  465. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/analysis/source/projection.py +0 -0
  466. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/analysis/source/repository_resolution.py +0 -0
  467. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/analysis/target/__init__.py +0 -0
  468. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/analysis/target/compatibility.py +0 -0
  469. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/analysis/target/relationship_findings.py +0 -0
  470. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/analysis/target/semantics.py +0 -0
  471. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/execution/__init__.py +0 -0
  472. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/execution/authorization/__init__.py +0 -0
  473. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/execution/authorization/binding.py +0 -0
  474. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/execution/authorization/preconditions.py +0 -0
  475. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/execution/authorization/proof.py +0 -0
  476. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/execution/direct/__init__.py +0 -0
  477. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/execution/direct/identity_plan.py +0 -0
  478. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/execution/direct/identity_rewrite.py +0 -0
  479. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/execution/direct/promotion.py +0 -0
  480. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/execution/direct/verification.py +0 -0
  481. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/execution/error.py +0 -0
  482. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/execution/guard/__init__.py +0 -0
  483. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/execution/guard/mutation.py +0 -0
  484. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/execution/guard/repository_snapshot.py +0 -0
  485. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/execution/ledger/__init__.py +0 -0
  486. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/execution/ledger/record.py +0 -0
  487. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/execution/ledger/store.py +0 -0
  488. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/execution/mutation/__init__.py +0 -0
  489. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/execution/mutation/asynchronous.py +0 -0
  490. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/execution/mutation/delta.py +0 -0
  491. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/execution/mutation/finalization.py +0 -0
  492. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/execution/mutation/source.py +0 -0
  493. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/execution/promotion/__init__.py +0 -0
  494. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/execution/promotion/mutation.py +0 -0
  495. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/execution/promotion/preparation.py +0 -0
  496. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/execution/promotion/verification.py +0 -0
  497. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/execution/recovery.py +0 -0
  498. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/execution/state/__init__.py +0 -0
  499. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/execution/state/phase.py +0 -0
  500. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/execution/state/promotion.py +0 -0
  501. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/execution/state/recovery.py +0 -0
  502. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/execution/state/source_steps.py +0 -0
  503. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/planning/__init__.py +0 -0
  504. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/planning/convergence/__init__.py +0 -0
  505. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/planning/convergence/builder.py +0 -0
  506. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/planning/convergence/final_state.py +0 -0
  507. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/planning/convergence/reconciliation.py +0 -0
  508. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/planning/direct/__init__.py +0 -0
  509. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/planning/direct/builder.py +0 -0
  510. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/planning/direct/reference.py +0 -0
  511. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/planning/proposal_derivation.py +0 -0
  512. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/planning/result.py +0 -0
  513. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/proposal/__init__.py +0 -0
  514. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/proposal/bundle.py +0 -0
  515. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/proposal/semantic_identity.py +0 -0
  516. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/proposal/source_set.py +0 -0
  517. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/migration/proposal/target_delta.py +0 -0
  518. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/model.py +0 -0
  519. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/pilot/__init__.py +0 -0
  520. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/pilot/runner.py +0 -0
  521. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/profiles/__init__.py +0 -0
  522. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/profiles/catalog.py +0 -0
  523. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/profiles/compatibility.py +0 -0
  524. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/profiles/contracts.py +0 -0
  525. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/profiles/example.ptsip.yaml +0 -0
  526. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/profiles/history/pp.1.01/example.ptsip.yaml +0 -0
  527. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/profiles/history/pp.1.01/hybrid-python-package.ptsip.yaml +0 -0
  528. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/profiles/history/pp.1.01/template-python-package.ptsip.yaml +0 -0
  529. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/profiles/history/pp.1.02/example.ptsip.yaml +0 -0
  530. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/profiles/history/pp.1.02/hybrid-python-package.ptsip.yaml +0 -0
  531. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/profiles/history/pp.1.02/template-python-package.ptsip.yaml +0 -0
  532. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/profiles/hybrid-python-package.ptsip.yaml +0 -0
  533. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/profiles/identity.py +0 -0
  534. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/profiles/index.yaml +0 -0
  535. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/profiles/metadata.py +0 -0
  536. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/profiles/template-python-package.ptsip.yaml +0 -0
  537. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/proposed_component.py +0 -0
  538. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/remediation/__init__.py +0 -0
  539. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/remediation/domain/__init__.py +0 -0
  540. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/remediation/domain/model.py +0 -0
  541. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/remediation/escalation/__init__.py +0 -0
  542. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/remediation/escalation/contract.py +0 -0
  543. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/remediation/escalation/engine.py +0 -0
  544. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/remediation/rules/__init__.py +0 -0
  545. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/remediation/rules/contract.py +0 -0
  546. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/repository/__init__.py +0 -0
  547. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/repository/discover.py +0 -0
  548. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/repository/namespace.py +0 -0
  549. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/repository/profile_convergence.py +0 -0
  550. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/repository/profile_path.py +0 -0
  551. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/repository/profile_transition.py +0 -0
  552. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/repository/remote.py +0 -0
  553. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/repository/schemas/engine-state.schema.json +0 -0
  554. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/repository/schemas/repository-index.schema.json +0 -0
  555. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/repository/snapshot.py +0 -0
  556. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/review_evidence.py +0 -0
  557. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/source_compat/__init__.py +0 -0
  558. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/source_compat/integrity.py +0 -0
  559. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/source_compat/model.py +0 -0
  560. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/source_compat/reader.py +0 -0
  561. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/spec_identity.py +0 -0
  562. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/specdata/project-profile-contracts.yaml +0 -0
  563. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/specdata/ptsip-agent-classification.schema.json +0 -0
  564. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/specdata/ptsip-artifact-evidence.schema.json +0 -0
  565. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/specdata/ptsip-diagnostic.schema.json +0 -0
  566. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/specdata/ptsip-normalized-evidence.schema.json +0 -0
  567. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/specdata/ptsip-profile-pp-1.01.schema.json +0 -0
  568. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/specdata/ptsip-profile-pp-1.02.schema.json +0 -0
  569. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/specdata/ptsip-profile.schema.json +0 -0
  570. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/specdata/ptsip-registry.yaml +0 -0
  571. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/specdata/ptsip-source-profile-0.3.4.schema.json +0 -0
  572. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/specdata/ptsip-source-profile-0.3.6.schema.json +0 -0
  573. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/specification_binding.py +0 -0
  574. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/storage/__init__.py +0 -0
  575. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/storage/local_state.py +0 -0
  576. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/topology.py +0 -0
  577. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/validation/__init__.py +0 -0
  578. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/validation/components.py +0 -0
  579. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/validation/handoff.py +0 -0
  580. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/validation/profile.py +0 -0
  581. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/validation/rules.py +0 -0
  582. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/validation/specification.py +0 -0
  583. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/validation/templates.py +0 -0
  584. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/ptsip/validation_capture.py +0 -0
  585. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/vpms/__init__.py +0 -0
  586. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/vpms/contract_runtime.py +0 -0
  587. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/vpms/contracts/execution-composition.json +0 -0
  588. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/vpms/contracts/identity-registry.json +0 -0
  589. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/vpms/contracts/index.json +0 -0
  590. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/vpms/contracts/invariants.json +0 -0
  591. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/vpms/contracts/protocol.json +0 -0
  592. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/vpms/contracts/schemas/catalog.schema.json +0 -0
  593. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/vpms/contracts/schemas/product-contract.schema.json +0 -0
  594. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/vpms/contracts/schemas/selection-request.schema.json +0 -0
  595. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/vpms/contracts/schemas/selection-result.schema.json +0 -0
  596. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/vpms/contracts/schemas/selection-rule.schema.json +0 -0
  597. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/vpms/contracts/selection.json +0 -0
  598. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/vpms/domain/__init__.py +0 -0
  599. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/vpms/domain/model.py +0 -0
  600. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/vpms/domain/registry.py +0 -0
  601. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/vpms/domain/snapshot.py +0 -0
  602. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/vpms/execution/__init__.py +0 -0
  603. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/vpms/execution/adapters/__init__.py +0 -0
  604. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/vpms/execution/adapters/command.py +0 -0
  605. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/vpms/execution/composition.py +0 -0
  606. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/vpms/execution/runner.py +0 -0
  607. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/vpms/integration/__init__.py +0 -0
  608. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/vpms/integration/ptsip_bridge.py +0 -0
  609. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/vpms/selection/__init__.py +0 -0
  610. {ptsip-0.3.8a6 → ptsip-0.3.8b3}/src/vpms/selection/resolver.py +0 -0
@@ -1,10 +1,13 @@
1
1
  prune src/tests
2
+ include ptsip_build_backend.py
3
+ include ptsip-build-source.json
2
4
  recursive-include src/policy *.yaml *.json
3
5
  recursive-include src/ptsip/profiles *.ptsip.yaml
4
6
  include src/ptsip/profiles/index.yaml
5
7
  include registry/project-profile-contracts.yaml
6
8
 
7
9
  recursive-include src/ptsip/engines *.json
10
+ recursive-include src/ptsip/engines Cargo.toml Cargo.lock *.rs *.yaml
8
11
  prune src/ptsip/engines/context/target
9
12
  prune src/ptsip/engines/storage/target
10
13
  prune src/ptsip/engines/validation/target
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PTSIP
3
- Version: 0.3.8a6
3
+ Version: 0.3.8b3
4
4
  Summary: Reference tooling for primary lifecycle ownership and responsibility isolation
5
5
  Author: Kinirin
6
6
  Maintainer: Kinirin
@@ -44,18 +44,16 @@ Dynamic: license-file
44
44
 
45
45
  > **Purpose precedes reuse.** Determine why a responsibility exists and which lifecycle owns it before optimizing how code is shared.
46
46
 
47
- ## Current versions and publication status
47
+ ## Component versions
48
48
 
49
49
  | Identity | Source-tree value |
50
50
  | --- | --- |
51
51
  | PTSIP_Package | `0.3.8.<SHA6>` — composition assigned after successful publication |
52
- | textTool | `0.3.8a6` — **unpublished prerelease candidate** |
53
- | Latest published Tool prerelease | `0.3.8a5` |
52
+ | PTSIP_Tool | `0.3.8b1` |
54
53
  | Project Profile | `pp.1.02` |
55
54
  | Engine | Context/Projection `0.2.0`; Storage/Validation/Discovery/Planning/Execution `0.3.0` |
56
- | Bound immutable `SPEC_REVISION` | `3c47816770d194ae42f98faedc911d980db0e62a` |
57
55
 
58
- Package composition, Tool, each engine, Project Profile and immutable Specification revision remain independent. Read [what changed in `0.3.8a6`](docs/releasenote/tool/0.3.8a6.md), the [Tool release history](docs/releasenote/tool/README.md), or [the release workflow](.github/workflows/tooling-release.yml). Release verification is selected from `.github/test_modes.yaml` and runs exclusively in `tooling-test.yml`; publication consumes that exact-source evidence in `tooling-release.yml`.
56
+ Package composition, Tool, each engine and Project Profile retain independent versions. The immutable Specification binding is recorded in the canonical composition and shipping manifest. Read [what changed in `0.3.8b1`](docs/releasenote/tool/0.3.8b1.md), the [Tool release history](docs/releasenote/tool/README.md), or [the release workflow](.github/workflows/tooling-release.yml). Release verification is selected from `.github/test_modes.yaml` and runs exclusively in `tooling-test.yml`; publication consumes that exact-source evidence in `tooling-release.yml`. Actual publication state and exact Package composition are recorded in the version-specific release assets.
59
57
 
60
58
  ## Quick start
61
59
 
@@ -69,10 +67,10 @@ ptsip --version
69
67
  ptsip spec
70
68
  ```
71
69
 
72
- To install the published `0.3.8a5` prerelease specifically (ordinary pip resolution might select the latest stable version instead):
70
+ To install Tool `0.3.8b1` specifically (ordinary pip resolution might select a stable version instead):
73
71
 
74
72
  ```powershell
75
- python -m pip install "PTSIP==0.3.8a5"
73
+ python -m pip install "PTSIP==0.3.8b1"
76
74
  ```
77
75
 
78
76
  To develop this repository directly:
@@ -6,18 +6,16 @@
6
6
 
7
7
  > **Purpose precedes reuse.** Determine why a responsibility exists and which lifecycle owns it before optimizing how code is shared.
8
8
 
9
- ## Current versions and publication status
9
+ ## Component versions
10
10
 
11
11
  | Identity | Source-tree value |
12
12
  | --- | --- |
13
13
  | PTSIP_Package | `0.3.8.<SHA6>` — composition assigned after successful publication |
14
- | textTool | `0.3.8a6` — **unpublished prerelease candidate** |
15
- | Latest published Tool prerelease | `0.3.8a5` |
14
+ | PTSIP_Tool | `0.3.8b1` |
16
15
  | Project Profile | `pp.1.02` |
17
16
  | Engine | Context/Projection `0.2.0`; Storage/Validation/Discovery/Planning/Execution `0.3.0` |
18
- | Bound immutable `SPEC_REVISION` | `3c47816770d194ae42f98faedc911d980db0e62a` |
19
17
 
20
- Package composition, Tool, each engine, Project Profile and immutable Specification revision remain independent. Read [what changed in `0.3.8a6`](docs/releasenote/tool/0.3.8a6.md), the [Tool release history](docs/releasenote/tool/README.md), or [the release workflow](.github/workflows/tooling-release.yml). Release verification is selected from `.github/test_modes.yaml` and runs exclusively in `tooling-test.yml`; publication consumes that exact-source evidence in `tooling-release.yml`.
18
+ Package composition, Tool, each engine and Project Profile retain independent versions. The immutable Specification binding is recorded in the canonical composition and shipping manifest. Read [what changed in `0.3.8b1`](docs/releasenote/tool/0.3.8b1.md), the [Tool release history](docs/releasenote/tool/README.md), or [the release workflow](.github/workflows/tooling-release.yml). Release verification is selected from `.github/test_modes.yaml` and runs exclusively in `tooling-test.yml`; publication consumes that exact-source evidence in `tooling-release.yml`. Actual publication state and exact Package composition are recorded in the version-specific release assets.
21
19
 
22
20
  ## Quick start
23
21
 
@@ -31,10 +29,10 @@ ptsip --version
31
29
  ptsip spec
32
30
  ```
33
31
 
34
- To install the published `0.3.8a5` prerelease specifically (ordinary pip resolution might select the latest stable version instead):
32
+ To install Tool `0.3.8b1` specifically (ordinary pip resolution might select a stable version instead):
35
33
 
36
34
  ```powershell
37
- python -m pip install "PTSIP==0.3.8a5"
35
+ python -m pip install "PTSIP==0.3.8b1"
38
36
  ```
39
37
 
40
38
  To develop this repository directly:
@@ -0,0 +1,4 @@
1
+ {
2
+ "schema_version": "ptsip-build-source/v1",
3
+ "source_sha": "8275490b85a3b685a7840d6fba80783a01b9b2c0"
4
+ }
@@ -0,0 +1,133 @@
1
+ """PEP 517 source builds of the complete, single-project PTSIP distribution.
2
+
3
+ Release wheels are assembled from separately verified native wheels in Go.
4
+ An sdist rebuild compiles the same independently versioned Rust crates locally.
5
+ Neither origin metadata nor installation grants runtime authority.
6
+ """
7
+ from __future__ import annotations
8
+
9
+ import base64
10
+ import csv
11
+ import hashlib
12
+ import io
13
+ import json
14
+ import os
15
+ from pathlib import Path
16
+ import platform
17
+ import re
18
+ import subprocess
19
+ import sys
20
+ import sysconfig
21
+ import tempfile
22
+ import tomllib
23
+ import zipfile
24
+
25
+ from setuptools import build_meta as _setuptools
26
+
27
+ ROOT = Path(__file__).resolve().parent
28
+
29
+
30
+ def _source() -> str:
31
+ descriptor = ROOT / "ptsip-build-source.json"
32
+ if descriptor.is_file():
33
+ source = json.loads(descriptor.read_text())["source_sha"]
34
+ else:
35
+ if subprocess.check_output(["git", "status", "--porcelain", "--untracked-files=no"], cwd=ROOT).strip():
36
+ raise RuntimeError("PTSIP source builds require an exact clean source or the sdist source descriptor")
37
+ source = subprocess.check_output(["git", "rev-parse", "HEAD"], cwd=ROOT, text=True).strip()
38
+ if re.fullmatch(r"[0-9a-f]{40}", source) is None:
39
+ raise RuntimeError("invalid PTSIP source revision")
40
+ return source
41
+
42
+
43
+ def build_sdist(sdist_directory, config_settings=None):
44
+ descriptor = ROOT / "ptsip-build-source.json"
45
+ existed = descriptor.exists()
46
+ source = _source()
47
+ if not existed:
48
+ descriptor.write_text(json.dumps({"schema_version": "ptsip-build-source/v1", "source_sha": source}) + "\n")
49
+ try:
50
+ return _setuptools.build_sdist(sdist_directory, config_settings)
51
+ finally:
52
+ if not existed:
53
+ descriptor.unlink()
54
+
55
+
56
+ def build_wheel(wheel_directory, config_settings=None, metadata_directory=None):
57
+ source = _source()
58
+ project = tomllib.loads((ROOT / "pyproject.toml").read_text(encoding="utf-8"))
59
+ version = project["project"]["version"]
60
+ if project["project"]["name"] != "PTSIP":
61
+ raise RuntimeError("the native backend builds PTSIP only")
62
+ hosts = {
63
+ ("win32", "amd64"): ("win_amd64", "windows-x64", "x86_64-pc-windows-msvc", ".exe"),
64
+ ("win32", "x86_64"): ("win_amd64", "windows-x64", "x86_64-pc-windows-msvc", ".exe"),
65
+ ("linux", "x86_64"): ("linux_x86_64", "linux-x64", "x86_64-unknown-linux-gnu", ""),
66
+ ("darwin", "arm64"): (sysconfig.get_platform().replace("-", "_").replace(".", "_"), "macos-arm64", "aarch64-apple-darwin", ""),
67
+ }
68
+ try:
69
+ tag, host, target, extension = hosts[(sys.platform, platform.machine().lower())]
70
+ except KeyError as exc:
71
+ raise RuntimeError("unsupported PTSIP native build host") from exc
72
+ index = json.loads((ROOT / "src/ptsip/engines/index.json").read_text())
73
+ entries = index["official_engine_entries"]
74
+ versions = project["tool"]["ptsip"]["release"]["engines"]
75
+ if len(entries) != len(versions) or {e["kind"].lower(): e["version"] for e in entries} != versions:
76
+ raise RuntimeError("incomplete or stale PTSIP engine inventory")
77
+ with tempfile.TemporaryDirectory(prefix="ptsip-source-wheel-") as temporary:
78
+ stage = Path(temporary)
79
+ pure = _setuptools.build_wheel(str(stage), config_settings, metadata_directory)
80
+ with zipfile.ZipFile(stage / pure) as archive:
81
+ files = {name: archive.read(name) for name in archive.namelist()}
82
+ di = f"ptsip-{version}.dist-info/"
83
+ files.pop(di + "RECORD", None)
84
+ origins = {}
85
+ executables = set()
86
+ for entry in entries:
87
+ kind = entry["kind"].lower()
88
+ manifest = ROOT / f"src/ptsip/engines/{kind}/Cargo.toml"
89
+ crate = tomllib.loads(manifest.read_text(encoding="utf-8"))
90
+ if crate["package"]["version"] != entry["version"]:
91
+ raise RuntimeError("Rust crate version differs from engine registry")
92
+ build = stage / "cargo" / kind
93
+ environment = dict(os.environ, CARGO_TARGET_DIR=str(build))
94
+ subprocess.run(["cargo", "build", "--release", "--locked", "--manifest-path", str(manifest)], cwd=ROOT, env=environment, check=True)
95
+ command = "ptsip-engine-" + kind + extension
96
+ binary = (build / "release" / command).read_bytes()
97
+ name = f"ptsip-{version}.data/scripts/{command}"
98
+ files[name] = binary
99
+ executables.add(name)
100
+ origins[kind] = {
101
+ "schema_version": "ptsip-independent-wheel-origin/v1",
102
+ "source_sha": source,
103
+ "engine_id": entry["engine_id"],
104
+ "engine_version": entry["version"],
105
+ "host_target": target,
106
+ "entrypoint": command,
107
+ "binary_sha256": hashlib.sha256(binary).hexdigest(),
108
+ "execution_authorized": False,
109
+ }
110
+ bundle = {"schema_version": "ptsip-bundled-engine-origins/v1", "package_version": version, "platform": host, "engines": origins, "execution_authorized": False}
111
+ files[di + "ptsip-engines.json"] = (json.dumps(bundle, sort_keys=True, indent=2) + "\n").encode()
112
+ files[di + "WHEEL"] = f"Wheel-Version: 1.0\nGenerator: ptsip-source-build/1\nRoot-Is-Purelib: false\nTag: py3-none-{tag}\n".encode()
113
+ record = io.StringIO(newline="")
114
+ writer = csv.writer(record)
115
+ for name, data in sorted(files.items()):
116
+ digest = base64.urlsafe_b64encode(hashlib.sha256(data).digest()).decode().rstrip("=")
117
+ writer.writerow((name, "sha256=" + digest, str(len(data))))
118
+ writer.writerow((di + "RECORD", "", ""))
119
+ files[di + "RECORD"] = record.getvalue().encode()
120
+ output = Path(wheel_directory) / f"ptsip-{version}-py3-none-{tag}.whl"
121
+ with zipfile.ZipFile(output, "w", compression=zipfile.ZIP_DEFLATED) as archive:
122
+ for name, data in sorted(files.items()):
123
+ info = zipfile.ZipInfo(name, (2020, 1, 1, 0, 0, 0))
124
+ info.create_system = 3
125
+ info.external_attr = (0o100755 if name in executables else 0o100644) << 16
126
+ info.compress_type = zipfile.ZIP_DEFLATED
127
+ archive.writestr(info, data)
128
+ return output.name
129
+
130
+
131
+ get_requires_for_build_wheel = _setuptools.get_requires_for_build_wheel
132
+ get_requires_for_build_sdist = _setuptools.get_requires_for_build_sdist
133
+ prepare_metadata_for_build_wheel = _setuptools.prepare_metadata_for_build_wheel
@@ -1,10 +1,11 @@
1
1
  [build-system]
2
2
  requires = ["setuptools>=77.0.3", "PyYAML>=6.0,<7"]
3
- build-backend = "setuptools.build_meta"
3
+ build-backend = "ptsip_build_backend"
4
+ backend-path = ["."]
4
5
 
5
6
  [project]
6
7
  name = "PTSIP"
7
- version = "0.3.8a6"
8
+ version = "0.3.8b3"
8
9
  description = "Reference tooling for primary lifecycle ownership and responsibility isolation"
9
10
  readme = "README.md"
10
11
  requires-python = ">=3.11"
@@ -45,7 +46,8 @@ ptsip-app = "ptsip.app.server:main"
45
46
  [tool.setuptools.packages.find]
46
47
  where = ["src"]
47
48
  include = ["ptsip*", "vpms*", "agent_contracts*"]
48
- exclude = ["tests*", "ptsip.profiles.history*", "ptsip.engines*"]
49
+ exclude = ["tests*", "ptsip.profiles.history*"]
50
+ namespaces = false
49
51
 
50
52
  [tool.setuptools.package-data]
51
53
  "ptsip.profiles" = ["index.yaml", "*.ptsip.yaml"]
@@ -54,6 +56,7 @@ vpms = [
54
56
  "contracts/schemas/*.json",
55
57
  ]
56
58
  ptsip = [
59
+ "package-distribution.json",
57
60
  "engines/index.json",
58
61
  "engines/*/*.json",
59
62
  "engines/contracts/*.json",
@@ -109,18 +112,26 @@ dev = [
109
112
  # Canonical current composition. Published snapshots are recorded separately
110
113
  # after their original-source artifacts and publication state are verified.
111
114
  [tool.ptsip.release]
112
- schema_version = "ptsip-current-composition/v1"
115
+ schema_version = "ptsip-current-composition/v3"
113
116
  package_base = "0.3.8"
114
- tool_version_ref = "project.version"
117
+ package_release_version = "0.3.8.b3"
118
+ tool_version_ref = "tool.ptsip.release.tool_version"
119
+ tool_version = "T.0.3.8.b3"
115
120
  profile_version = "pp.1.02"
116
121
  specification_source = "https://github.com/Kinirin/PTSIP"
117
122
  spec_revision = "3c47816770d194ae42f98faedc911d980db0e62a"
118
123
 
119
124
  [tool.ptsip.release.engines]
120
- context = "0.2.0"
121
- storage = "0.3.0"
122
- validation = "0.3.0"
123
- discovery = "0.3.0"
124
- planning = "0.3.0"
125
- execution = "0.3.0"
126
- projection = "0.2.0"
125
+ context = "0.2.1"
126
+ storage = "0.3.1"
127
+ validation = "0.3.1"
128
+ discovery = "0.3.1"
129
+ planning = "0.3.1"
130
+ execution = "0.3.1"
131
+ projection = "0.2.1"
132
+
133
+ [tool.ptsip.release.published]
134
+ identity = "0.3.8.fa660a"
135
+ composition_sha256 = "fa660aac1b7bef6b3692d8b54ce447472b666560ea2c87eb84d2159543be20a3"
136
+ source_sha = "7c493c0484614885c6d92b9f41562b16273c6682"
137
+ release_tag = "ptsip-release-7c493c0484614885c6d92b9f41562b16273c6682"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PTSIP
3
- Version: 0.3.8a6
3
+ Version: 0.3.8b3
4
4
  Summary: Reference tooling for primary lifecycle ownership and responsibility isolation
5
5
  Author: Kinirin
6
6
  Maintainer: Kinirin
@@ -44,18 +44,16 @@ Dynamic: license-file
44
44
 
45
45
  > **Purpose precedes reuse.** Determine why a responsibility exists and which lifecycle owns it before optimizing how code is shared.
46
46
 
47
- ## Current versions and publication status
47
+ ## Component versions
48
48
 
49
49
  | Identity | Source-tree value |
50
50
  | --- | --- |
51
51
  | PTSIP_Package | `0.3.8.<SHA6>` — composition assigned after successful publication |
52
- | textTool | `0.3.8a6` — **unpublished prerelease candidate** |
53
- | Latest published Tool prerelease | `0.3.8a5` |
52
+ | PTSIP_Tool | `0.3.8b1` |
54
53
  | Project Profile | `pp.1.02` |
55
54
  | Engine | Context/Projection `0.2.0`; Storage/Validation/Discovery/Planning/Execution `0.3.0` |
56
- | Bound immutable `SPEC_REVISION` | `3c47816770d194ae42f98faedc911d980db0e62a` |
57
55
 
58
- Package composition, Tool, each engine, Project Profile and immutable Specification revision remain independent. Read [what changed in `0.3.8a6`](docs/releasenote/tool/0.3.8a6.md), the [Tool release history](docs/releasenote/tool/README.md), or [the release workflow](.github/workflows/tooling-release.yml). Release verification is selected from `.github/test_modes.yaml` and runs exclusively in `tooling-test.yml`; publication consumes that exact-source evidence in `tooling-release.yml`.
56
+ Package composition, Tool, each engine and Project Profile retain independent versions. The immutable Specification binding is recorded in the canonical composition and shipping manifest. Read [what changed in `0.3.8b1`](docs/releasenote/tool/0.3.8b1.md), the [Tool release history](docs/releasenote/tool/README.md), or [the release workflow](.github/workflows/tooling-release.yml). Release verification is selected from `.github/test_modes.yaml` and runs exclusively in `tooling-test.yml`; publication consumes that exact-source evidence in `tooling-release.yml`. Actual publication state and exact Package composition are recorded in the version-specific release assets.
59
57
 
60
58
  ## Quick start
61
59
 
@@ -69,10 +67,10 @@ ptsip --version
69
67
  ptsip spec
70
68
  ```
71
69
 
72
- To install the published `0.3.8a5` prerelease specifically (ordinary pip resolution might select the latest stable version instead):
70
+ To install Tool `0.3.8b1` specifically (ordinary pip resolution might select a stable version instead):
73
71
 
74
72
  ```powershell
75
- python -m pip install "PTSIP==0.3.8a5"
73
+ python -m pip install "PTSIP==0.3.8b1"
76
74
  ```
77
75
 
78
76
  To develop this repository directly:
@@ -1,5 +1,7 @@
1
1
  MANIFEST.in
2
2
  README.md
3
+ ptsip-build-source.json
4
+ ptsip_build_backend.py
3
5
  pyproject.toml
4
6
  setup.py
5
7
  License-Authority/COMMERCIAL-USE.md
@@ -236,6 +238,7 @@ src/ptsip/doctor.py
236
238
  src/ptsip/engine_installation.py
237
239
  src/ptsip/lifecycle_evidence.py
238
240
  src/ptsip/model.py
241
+ src/ptsip/package-distribution.json
239
242
  src/ptsip/proposed_component.py
240
243
  src/ptsip/review_evidence.py
241
244
  src/ptsip/spec_identity.py
@@ -292,12 +295,18 @@ src/ptsip/clarification/resolution/resolver.py
292
295
  src/ptsip/clarification/transports/__init__.py
293
296
  src/ptsip/clarification/transports/github_issue.py
294
297
  src/ptsip/engines/index.json
298
+ src/ptsip/engines/context/Cargo.lock
299
+ src/ptsip/engines/context/Cargo.toml
295
300
  src/ptsip/engines/context/contract.json
296
301
  src/ptsip/engines/context/execution-bindings.json
297
302
  src/ptsip/engines/context/manifest.json
298
303
  src/ptsip/engines/context/runtime-contracts.json
299
304
  src/ptsip/engines/context/transport.json
305
+ src/ptsip/engines/context/version.yaml
300
306
  src/ptsip/engines/context/contracts/1.0.0.json
307
+ src/ptsip/engines/context/src/loading.rs
308
+ src/ptsip/engines/context/src/main.rs
309
+ src/ptsip/engines/context/src/source.rs
301
310
  src/ptsip/engines/contracts/capability-owner-map.json
302
311
  src/ptsip/engines/contracts/context-projection-handoff.json
303
312
  src/ptsip/engines/contracts/dependency-graph.json
@@ -328,51 +337,95 @@ src/ptsip/engines/contracts/schemas/stop-request.schema.json
328
337
  src/ptsip/engines/contracts/schemas/stop-result.schema.json
329
338
  src/ptsip/engines/contracts/schemas/storage-mediation.schema.json
330
339
  src/ptsip/engines/contracts/schemas/transport-binding.schema.json
340
+ src/ptsip/engines/discovery/Cargo.lock
341
+ src/ptsip/engines/discovery/Cargo.toml
331
342
  src/ptsip/engines/discovery/contract.json
332
343
  src/ptsip/engines/discovery/execution-bindings.json
333
344
  src/ptsip/engines/discovery/manifest.json
334
345
  src/ptsip/engines/discovery/runtime-contracts.json
335
346
  src/ptsip/engines/discovery/transport.json
347
+ src/ptsip/engines/discovery/version.yaml
336
348
  src/ptsip/engines/discovery/contracts/1.0.0.json
337
349
  src/ptsip/engines/discovery/contracts/2.0.0.json
350
+ src/ptsip/engines/discovery/src/invocation.rs
351
+ src/ptsip/engines/discovery/src/main.rs
352
+ src/ptsip/engines/discovery/src/registry.rs
353
+ src/ptsip/engines/discovery/src/source.rs
354
+ src/ptsip/engines/execution/Cargo.lock
355
+ src/ptsip/engines/execution/Cargo.toml
338
356
  src/ptsip/engines/execution/contract.json
339
357
  src/ptsip/engines/execution/execution-bindings.json
340
358
  src/ptsip/engines/execution/manifest.json
341
359
  src/ptsip/engines/execution/runtime-contracts.json
342
360
  src/ptsip/engines/execution/transport.json
361
+ src/ptsip/engines/execution/version.yaml
343
362
  src/ptsip/engines/execution/contracts/1.0.0.json
344
363
  src/ptsip/engines/execution/contracts/2.0.0.json
364
+ src/ptsip/engines/execution/src/authority.rs
365
+ src/ptsip/engines/execution/src/effect.rs
366
+ src/ptsip/engines/execution/src/invocation.rs
367
+ src/ptsip/engines/execution/src/main.rs
368
+ src/ptsip/engines/execution/src/source.rs
369
+ src/ptsip/engines/planning/Cargo.lock
370
+ src/ptsip/engines/planning/Cargo.toml
345
371
  src/ptsip/engines/planning/contract.json
346
372
  src/ptsip/engines/planning/execution-bindings.json
347
373
  src/ptsip/engines/planning/manifest.json
348
374
  src/ptsip/engines/planning/runtime-contracts.json
349
375
  src/ptsip/engines/planning/transport.json
376
+ src/ptsip/engines/planning/version.yaml
350
377
  src/ptsip/engines/planning/contracts/1.0.0.json
351
378
  src/ptsip/engines/planning/contracts/2.0.0.json
379
+ src/ptsip/engines/planning/src/impact.rs
380
+ src/ptsip/engines/planning/src/installation.rs
381
+ src/ptsip/engines/planning/src/main.rs
382
+ src/ptsip/engines/planning/src/preparation.rs
383
+ src/ptsip/engines/planning/src/source.rs
384
+ src/ptsip/engines/projection/Cargo.lock
385
+ src/ptsip/engines/projection/Cargo.toml
352
386
  src/ptsip/engines/projection/contract.json
353
387
  src/ptsip/engines/projection/execution-bindings.json
354
388
  src/ptsip/engines/projection/manifest.json
355
389
  src/ptsip/engines/projection/runtime-contracts.json
356
390
  src/ptsip/engines/projection/transport.json
391
+ src/ptsip/engines/projection/version.yaml
357
392
  src/ptsip/engines/projection/contracts/1.0.0.json
393
+ src/ptsip/engines/projection/src/main.rs
394
+ src/ptsip/engines/projection/src/rendering.rs
395
+ src/ptsip/engines/projection/src/source.rs
358
396
  src/ptsip/engines/registries/derived-snapshot.json
359
397
  src/ptsip/engines/registries/official-execution.json
360
398
  src/ptsip/engines/registries/official-static.json
399
+ src/ptsip/engines/storage/Cargo.lock
400
+ src/ptsip/engines/storage/Cargo.toml
361
401
  src/ptsip/engines/storage/contract.json
362
402
  src/ptsip/engines/storage/execution-bindings.json
363
403
  src/ptsip/engines/storage/manifest.json
364
404
  src/ptsip/engines/storage/provider-registry.json
365
405
  src/ptsip/engines/storage/runtime-contracts.json
366
406
  src/ptsip/engines/storage/transport.json
407
+ src/ptsip/engines/storage/version.yaml
367
408
  src/ptsip/engines/storage/contracts/1.0.0.json
368
409
  src/ptsip/engines/storage/contracts/2.0.0.json
410
+ src/ptsip/engines/storage/src/main.rs
411
+ src/ptsip/engines/storage/src/native.rs
412
+ src/ptsip/engines/storage/src/provider.rs
413
+ src/ptsip/engines/storage/src/source.rs
414
+ src/ptsip/engines/validation/Cargo.lock
415
+ src/ptsip/engines/validation/Cargo.toml
369
416
  src/ptsip/engines/validation/contract.json
370
417
  src/ptsip/engines/validation/execution-bindings.json
371
418
  src/ptsip/engines/validation/manifest.json
372
419
  src/ptsip/engines/validation/runtime-contracts.json
373
420
  src/ptsip/engines/validation/transport.json
421
+ src/ptsip/engines/validation/version.yaml
374
422
  src/ptsip/engines/validation/contracts/1.0.0.json
375
423
  src/ptsip/engines/validation/contracts/2.0.0.json
424
+ src/ptsip/engines/validation/src/cases.rs
425
+ src/ptsip/engines/validation/src/composition.rs
426
+ src/ptsip/engines/validation/src/handoff.rs
427
+ src/ptsip/engines/validation/src/main.rs
428
+ src/ptsip/engines/validation/src/source.rs
376
429
  src/ptsip/evidence/__init__.py
377
430
  src/ptsip/evidence/adapters.py
378
431
  src/ptsip/evidence/contract.py
@@ -491,8 +544,6 @@ src/ptsip/remediation/escalation/contract.py
491
544
  src/ptsip/remediation/escalation/engine.py
492
545
  src/ptsip/remediation/rules/__init__.py
493
546
  src/ptsip/remediation/rules/contract.py
494
- src/ptsip/remediation/solution/candidate.py
495
- src/ptsip/remediation/solution/elimination.py
496
547
  src/ptsip/repository/__init__.py
497
548
  src/ptsip/repository/discover.py
498
549
  src/ptsip/repository/namespace.py
@@ -54,7 +54,8 @@
54
54
  ],
55
55
  "contract_permission_declaration_is_grant": false,
56
56
  "engine_version_independence": "PER_ENGINE_FROM_PTSIP_TOOL_AND_SCHEMA_VERSION",
57
- "official_distribution": "AUTO_INSTALLED_INDEPENDENT_PACKAGES_ONLY",
57
+ "official_distribution": "PTSIP_PLATFORM_WHEEL_WITH_INDEPENDENT_VERSIONED_ENGINE_ARTIFACTS",
58
+ "official_distribution_contract_ref": "src/ptsip/package-distribution.json",
58
59
  "mandatory_official_engine_availability": "ALL_SEVEN_BY_DEFAULT",
59
60
  "registry_topology": "FEDERATED_OFFICIAL_CONSUMER_EXTERNAL_OWNERSHIP_PRESERVED",
60
61
  "resolver_selection": "HONOR_EXPLICIT_CHOICE_OR_MACHINE_RESOLVE_WITH_APPROVED_CONTRACTS",
@@ -1,7 +1,7 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  TOOL_NAME = "PTSIP Tool"
4
- TOOL_VERSION = "0.3.8a6"
4
+ TOOL_VERSION = "T.0.3.8.b3"
5
5
  SPEC_NAME = "Primary Lifecycle Ownership and Responsibility Isolation Policy"
6
6
  SPEC_ACRONYM = "PTSIP"
7
7
  SPEC_VERSION = "0.3.7-draft"
@@ -9,6 +9,7 @@ import hashlib
9
9
  import json
10
10
  import os
11
11
  import platform
12
+ import re
12
13
  import sys
13
14
  import sysconfig
14
15
  from importlib import metadata, resources
@@ -37,6 +38,41 @@ def _sha256(path: Path) -> str:
37
38
  return digest.hexdigest()
38
39
 
39
40
 
41
+ def _bundle(items: list[dict[str, Any]]) -> tuple[Any, dict[str, Any]] | None:
42
+ """A broken installed bundle must not fall back to another distribution."""
43
+ try:
44
+ distribution = metadata.distribution("PTSIP")
45
+ except metadata.PackageNotFoundError:
46
+ return None
47
+ text = distribution.read_text("ptsip-engines.json")
48
+ if text is None:
49
+ return None
50
+ try:
51
+ bundle = json.loads(text)
52
+ origins = bundle["engines"]
53
+ if (
54
+ bundle["schema_version"] != "ptsip-bundled-engine-origins/v1"
55
+ or bundle["package_version"] != distribution.version
56
+ or bundle["execution_authorized"] is not False
57
+ or set(origins) != {entry["kind"].lower() for entry in items}
58
+ or len(origins) != len(items)
59
+ ):
60
+ raise ValueError("incomplete or incompatible PTSIP engine bundle")
61
+ for entry in items:
62
+ origin = origins[entry["kind"].lower()]
63
+ if (
64
+ origin["schema_version"] != "ptsip-independent-wheel-origin/v1"
65
+ or origin["engine_id"] != entry["engine_id"]
66
+ or origin["engine_version"] != entry["version"]
67
+ or origin["execution_authorized"] is not False
68
+ or re.fullmatch(r"[0-9a-f]{40}", origin["source_sha"]) is None
69
+ ):
70
+ raise ValueError("PTSIP bundled engine identity differs")
71
+ return distribution, bundle
72
+ except (KeyError, TypeError, json.JSONDecodeError) as exc:
73
+ raise ValueError("PTSIP bundled engine metadata is invalid") from exc
74
+
75
+
40
76
  def inspect(
41
77
  *,
42
78
  index: dict[str, Any] | None = None,
@@ -60,6 +96,7 @@ def inspect(
60
96
  (sys.platform, platform.machine().lower())
61
97
  )
62
98
  scripts = scripts or Path(sysconfig.get_path("scripts"))
99
+ bundled = _bundle(items)
63
100
  entries: list[dict[str, Any]] = []
64
101
  for entry in items:
65
102
  kind, engine_id, version = entry["kind"], entry["engine_id"], entry["version"]
@@ -91,13 +128,20 @@ def inspect(
91
128
  row["status"] = "UNSUPPORTED_HOST"
92
129
  entries.append(row)
93
130
  continue
94
- try:
95
- distribution = metadata.distribution(package_name)
96
- except metadata.PackageNotFoundError:
97
- entries.append(row)
98
- continue
99
- row["installed_version"] = distribution.version
100
- if distribution.version != version:
131
+ if bundled is not None:
132
+ distribution, bundle = bundled
133
+ origin = bundle["engines"][kind.lower()]
134
+ row["package"] = "PTSIP"
135
+ row["package_version"] = distribution.version
136
+ row["installed_version"] = origin["engine_version"]
137
+ else:
138
+ try:
139
+ distribution = metadata.distribution(package_name)
140
+ except metadata.PackageNotFoundError:
141
+ entries.append(row)
142
+ continue
143
+ row["installed_version"] = distribution.version
144
+ if row["installed_version"] != version:
101
145
  row["status"] = "VERSION_MISMATCH"
102
146
  entries.append(row)
103
147
  continue
@@ -108,8 +152,9 @@ def inspect(
108
152
  entries.append(row)
109
153
  continue
110
154
  try:
111
- origin_text = distribution.read_text("ptsip-origin.json")
112
- origin = json.loads(origin_text or "")
155
+ if bundled is None:
156
+ origin_text = distribution.read_text("ptsip-origin.json")
157
+ origin = json.loads(origin_text or "")
113
158
  if (
114
159
  origin["engine_id"] != engine_id
115
160
  or origin["engine_version"] != version
@@ -123,13 +168,14 @@ def inspect(
123
168
  else:
124
169
  row["status"] = "INSTALLED_UNATTESTED_RELEASE"
125
170
  row["binary_sha256"] = origin["binary_sha256"]
171
+ row["source_sha"] = origin["source_sha"]
126
172
  except (OSError, json.JSONDecodeError, KeyError, TypeError, ValueError):
127
173
  row["status"] = "ORIGIN_PROOF_MISSING_OR_INVALID"
128
174
  entries.append(row)
129
175
  return {
130
176
  "schema_version": "ptsip-official-engine-consumer-status/v1",
131
177
  "host_target": host_target,
132
- "distribution": "AUTO_INSTALLED_INDEPENDENT_PACKAGES_ONLY",
178
+ "distribution": "SINGLE_PROJECT_PLATFORM_BUNDLES" if bundled else "AUTO_INSTALLED_INDEPENDENT_PACKAGES_ONLY",
133
179
  "entries": entries,
134
180
  "all_installed": all(e["status"] == "INSTALLED_UNATTESTED_RELEASE" for e in entries),
135
181
  "release_attested": False,