proofbundle 4.0.0__tar.gz → 5.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 (821) hide show
  1. {proofbundle-4.0.0 → proofbundle-5.1.0}/MANIFEST.in +26 -0
  2. proofbundle-5.1.0/Makefile +71 -0
  3. {proofbundle-4.0.0/src/proofbundle.egg-info → proofbundle-5.1.0}/PKG-INFO +43 -42
  4. {proofbundle-4.0.0 → proofbundle-5.1.0}/README.md +40 -39
  5. proofbundle-5.1.0/conformance/agent_review/_generator/build_vectors.py +362 -0
  6. proofbundle-5.1.0/conformance/agent_review/agent-review-counter-proof-a-foreign-key-cannot-supersede-our-receipt/case.json +16 -0
  7. proofbundle-5.1.0/conformance/agent_review/agent-review-counter-proof-a-foreign-key-cannot-supersede-our-receipt/chain.json +22 -0
  8. proofbundle-5.1.0/conformance/agent_review/agent-review-counter-proof-a-superseded-predecessor-must-still-be-present/case.json +16 -0
  9. proofbundle-5.1.0/conformance/agent_review/agent-review-counter-proof-a-superseded-predecessor-must-still-be-present/chain.json +13 -0
  10. proofbundle-5.1.0/conformance/agent_review/agent-review-counter-proof-anchored-time-needs-evidence/case.json +16 -0
  11. proofbundle-5.1.0/conformance/agent_review/agent-review-counter-proof-anchored-time-needs-evidence/predicate.json +66 -0
  12. proofbundle-5.1.0/conformance/agent_review/agent-review-counter-proof-assurance-cannot-be-self-raised/case.json +16 -0
  13. proofbundle-5.1.0/conformance/agent_review/agent-review-counter-proof-assurance-cannot-be-self-raised/predicate.json +66 -0
  14. proofbundle-5.1.0/conformance/agent_review/agent-review-counter-proof-complete-needs-an-expectation/case.json +16 -0
  15. proofbundle-5.1.0/conformance/agent_review/agent-review-counter-proof-complete-needs-an-expectation/predicate.json +62 -0
  16. proofbundle-5.1.0/conformance/agent_review/agent-review-counter-proof-duplicate-disclosure-block-fails-closed/body.json +3 -0
  17. proofbundle-5.1.0/conformance/agent_review/agent-review-counter-proof-duplicate-disclosure-block-fails-closed/case.json +16 -0
  18. proofbundle-5.1.0/conformance/agent_review/agent-review-counter-proof-findings-root-covers-the-list/case.json +19 -0
  19. proofbundle-5.1.0/conformance/agent_review/agent-review-counter-proof-findings-root-covers-the-list/envelope.json +9 -0
  20. proofbundle-5.1.0/conformance/agent_review/agent-review-counter-proof-gap-duty-cannot-be-switched-off/case.json +16 -0
  21. proofbundle-5.1.0/conformance/agent_review/agent-review-counter-proof-gap-duty-cannot-be-switched-off/predicate.json +58 -0
  22. proofbundle-5.1.0/conformance/agent_review/agent-review-counter-proof-introducing-the-first-block-moves-the-digest/bodies.json +4 -0
  23. proofbundle-5.1.0/conformance/agent_review/agent-review-counter-proof-introducing-the-first-block-moves-the-digest/case.json +16 -0
  24. proofbundle-5.1.0/conformance/agent_review/agent-review-counter-proof-partial-must-name-its-gap/case.json +16 -0
  25. proofbundle-5.1.0/conformance/agent_review/agent-review-counter-proof-partial-must-name-its-gap/predicate.json +63 -0
  26. proofbundle-5.1.0/conformance/agent_review/agent-review-counter-proof-receipt-does-not-travel-between-subjects/case.json +19 -0
  27. proofbundle-5.1.0/conformance/agent_review/agent-review-counter-proof-receipt-does-not-travel-between-subjects/envelope.json +9 -0
  28. proofbundle-5.1.0/conformance/agent_review/agent-review-positive-control-absent-expectation-is-reported/case.json +16 -0
  29. proofbundle-5.1.0/conformance/agent_review/agent-review-positive-control-absent-expectation-is-reported/envelope.json +9 -0
  30. proofbundle-5.1.0/conformance/agent_review/agent-review-positive-control-emit-verify-roundtrip/case.json +18 -0
  31. proofbundle-5.1.0/conformance/agent_review/agent-review-positive-control-emit-verify-roundtrip/predicate.json +49 -0
  32. proofbundle-5.1.0/conformance/agent_review/agent-review-positive-control-prepare-then-fill-keeps-the-digest/bodies.json +4 -0
  33. proofbundle-5.1.0/conformance/agent_review/agent-review-positive-control-prepare-then-fill-keeps-the-digest/case.json +16 -0
  34. proofbundle-5.1.0/conformance/agent_review/agent-review-positive-control-rerendered-block-keeps-body-core/bodies.json +4 -0
  35. proofbundle-5.1.0/conformance/agent_review/agent-review-positive-control-rerendered-block-keeps-body-core/case.json +16 -0
  36. proofbundle-5.1.0/conformance/agent_review/agent-review-positive-control-supersession-names-the-current-receipt/case.json +16 -0
  37. proofbundle-5.1.0/conformance/agent_review/agent-review-positive-control-supersession-names-the-current-receipt/chain.json +22 -0
  38. proofbundle-5.1.0/conformance/agent_review/agent-review-positive-control-valid-self-declared/case.json +19 -0
  39. proofbundle-5.1.0/conformance/agent_review/agent-review-positive-control-valid-self-declared/envelope.json +9 -0
  40. proofbundle-5.1.0/conformance/agent_review/publickey.hex +1 -0
  41. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/common_vocabulary.py +18 -0
  42. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/cross_format.py +5 -2
  43. proofbundle-5.1.0/conformance/envelope_profile/generate_vectors.py +239 -0
  44. proofbundle-5.1.0/conformance/envelope_profile/r1-counter-proof-float-is-refused-so-two-axes-cannot-arise/case.json +16 -0
  45. proofbundle-5.1.0/conformance/envelope_profile/r1-counter-proof-float-is-refused-so-two-axes-cannot-arise/objects.json +8 -0
  46. proofbundle-5.1.0/conformance/envelope_profile/r1-counter-proof-nonconformant-serializer-diverges/case.json +16 -0
  47. proofbundle-5.1.0/conformance/envelope_profile/r1-counter-proof-nonconformant-serializer-diverges/object.json +11 -0
  48. proofbundle-5.1.0/conformance/envelope_profile/r1-positive-control-canonical-root/case.json +17 -0
  49. proofbundle-5.1.0/conformance/envelope_profile/r1-positive-control-canonical-root/object.json +11 -0
  50. proofbundle-5.1.0/conformance/envelope_profile/r2-counter-proof-foreign-schema-id-is-refused-not-invalid/bundle.json +16 -0
  51. proofbundle-5.1.0/conformance/envelope_profile/r2-counter-proof-foreign-schema-id-is-refused-not-invalid/case.json +15 -0
  52. proofbundle-5.1.0/conformance/envelope_profile/r2-counter-proof-unverifiable-is-invalid-not-refused/bundle.json +16 -0
  53. proofbundle-5.1.0/conformance/envelope_profile/r2-counter-proof-unverifiable-is-invalid-not-refused/case.json +15 -0
  54. proofbundle-5.1.0/conformance/envelope_profile/r2-positive-control-known-schema-classifies-valid/bundle.json +16 -0
  55. proofbundle-5.1.0/conformance/envelope_profile/r2-positive-control-known-schema-classifies-valid/case.json +15 -0
  56. proofbundle-5.1.0/conformance/envelope_profile/r3-counter-proof-hand-signed-binding-lies-about-tree-size/bundle.json +16 -0
  57. proofbundle-5.1.0/conformance/envelope_profile/r3-counter-proof-hand-signed-binding-lies-about-tree-size/case.json +15 -0
  58. proofbundle-5.1.0/conformance/envelope_profile/r3-positive-control-coherent-sample-binding/bundle.json +16 -0
  59. proofbundle-5.1.0/conformance/envelope_profile/r3-positive-control-coherent-sample-binding/case.json +15 -0
  60. proofbundle-5.1.0/conformance/envelope_profile/r4-counter-proof-issuer-is-not-the-signing-key/bundle.json +16 -0
  61. proofbundle-5.1.0/conformance/envelope_profile/r4-counter-proof-issuer-is-not-the-signing-key/case.json +15 -0
  62. proofbundle-5.1.0/conformance/envelope_profile/r4-positive-control-issuer-is-the-signing-key/bundle.json +16 -0
  63. proofbundle-5.1.0/conformance/envelope_profile/r4-positive-control-issuer-is-the-signing-key/case.json +15 -0
  64. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/manifest.json +74 -37
  65. proofbundle-5.1.0/conformance/provenance/version-status-absent-legacy-receipt/case.json +15 -0
  66. proofbundle-5.1.0/conformance/provenance/version-status-absent-legacy-receipt/provenance.json +4 -0
  67. proofbundle-5.1.0/conformance/provenance/version-status-lookalike-version-field/case.json +15 -0
  68. proofbundle-5.1.0/conformance/provenance/version-status-lookalike-version-field/provenance.json +6 -0
  69. proofbundle-5.1.0/conformance/provenance/version-status-missing-reason/case.json +17 -0
  70. proofbundle-5.1.0/conformance/provenance/version-status-missing-reason/provenance.json +3 -0
  71. proofbundle-5.1.0/conformance/provenance/version-status-not-bound/case.json +15 -0
  72. proofbundle-5.1.0/conformance/provenance/version-status-not-bound/provenance.json +5 -0
  73. proofbundle-5.1.0/conformance/provenance/version-status-not-reported/case.json +15 -0
  74. proofbundle-5.1.0/conformance/provenance/version-status-not-reported/provenance.json +5 -0
  75. proofbundle-5.1.0/conformance/provenance/version-status-not-reported-with-field/case.json +17 -0
  76. proofbundle-5.1.0/conformance/provenance/version-status-not-reported-with-field/provenance.json +5 -0
  77. proofbundle-5.1.0/conformance/provenance/version-status-reported/case.json +15 -0
  78. proofbundle-5.1.0/conformance/provenance/version-status-reported/provenance.json +5 -0
  79. proofbundle-5.1.0/conformance/provenance/version-status-reported-without-field/case.json +17 -0
  80. proofbundle-5.1.0/conformance/provenance/version-status-reported-without-field/provenance.json +3 -0
  81. proofbundle-5.1.0/conformance/provenance/version-status-unknown-literal/case.json +17 -0
  82. proofbundle-5.1.0/conformance/provenance/version-status-unknown-literal/provenance.json +3 -0
  83. proofbundle-5.1.0/conformance/provenance/version-status-unrelated-status-field/case.json +15 -0
  84. proofbundle-5.1.0/conformance/provenance/version-status-unrelated-status-field/provenance.json +6 -0
  85. proofbundle-5.1.0/conformance/run_conformance.py +721 -0
  86. proofbundle-5.1.0/conformance/unshipped_spec_refs_baseline.json +23 -0
  87. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/vector_schema.json +76 -19
  88. proofbundle-5.1.0/docs/AGENT_REVIEW_PREDICATE.md +187 -0
  89. proofbundle-5.1.0/docs/RECEIPT_ENVELOPE_PROFILE.md +240 -0
  90. {proofbundle-4.0.0 → proofbundle-5.1.0}/docs/readiness_pack/MANIFEST.sha256 +2 -2
  91. {proofbundle-4.0.0 → proofbundle-5.1.0}/docs/readiness_pack/PROGRESS.md +1 -1
  92. proofbundle-5.1.0/docs/readiness_pack/index.json +270 -0
  93. {proofbundle-4.0.0 → proofbundle-5.1.0}/docs/readiness_pack/proofbundle/readiness_pack.bundle.json +4 -4
  94. proofbundle-5.1.0/docs/readiness_pack/proofbundle/readiness_pack.pub.b64 +1 -0
  95. {proofbundle-4.0.0 → proofbundle-5.1.0}/pyproject.toml +49 -3
  96. {proofbundle-4.0.0 → proofbundle-5.1.0}/schemas/decision-receipt-v0.1.schema.json +14 -1
  97. {proofbundle-4.0.0 → proofbundle-5.1.0}/schemas/eval_claim_v0_1.schema.json +1 -1
  98. {proofbundle-4.0.0 → proofbundle-5.1.0}/scripts/audit_candidate_matrix.py +153 -10
  99. proofbundle-5.1.0/scripts/audit_output_aufloesbar.py +133 -0
  100. {proofbundle-4.0.0 → proofbundle-5.1.0}/scripts/fuzz_soak.py +6 -3
  101. proofbundle-5.1.0/scripts/gate_qualification_harness.py +841 -0
  102. {proofbundle-4.0.0 → proofbundle-5.1.0}/scripts/mutation_check.py +12 -4
  103. proofbundle-5.1.0/scripts/mutation_operators_fresh.py +106 -0
  104. {proofbundle-4.0.0 → proofbundle-5.1.0}/scripts/pre_tag_audit_gate.py +93 -25
  105. proofbundle-5.1.0/scripts/pre_tag_receipt.py +172 -0
  106. proofbundle-5.1.0/scripts/pre_tag_receipt_lib.py +123 -0
  107. {proofbundle-4.0.0 → proofbundle-5.1.0}/scripts/rust_parity_gate.py +91 -15
  108. {proofbundle-4.0.0 → proofbundle-5.1.0}/scripts/rust_parity_registry.json +227 -131
  109. proofbundle-5.1.0/scripts/shipped_docs_check.py +132 -0
  110. proofbundle-5.1.0/scripts/type_confusion_gate.py +702 -0
  111. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/__init__.py +1 -1
  112. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/_integration.py +10 -4
  113. proofbundle-5.1.0/src/proofbundle/_membership.py +79 -0
  114. proofbundle-5.1.0/src/proofbundle/_wire_b64.py +91 -0
  115. proofbundle-5.1.0/src/proofbundle/adapters/_provenance.py +255 -0
  116. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/adapters/eee.py +5 -2
  117. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/adapters/inspect_ai.py +19 -7
  118. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/adapters/lm_eval.py +23 -2
  119. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/adapters/promptfoo.py +19 -2
  120. proofbundle-5.1.0/src/proofbundle/agent_review.py +2337 -0
  121. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/anchors.py +2 -1
  122. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/anchors_ots.py +32 -1
  123. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/anchors_rfc3161.py +18 -5
  124. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/anchors_rootcommit.py +2 -2
  125. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/automation_verdict.py +27 -0
  126. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/budget.py +76 -1
  127. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/bundle.py +39 -14
  128. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/checkpoint.py +51 -1
  129. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/cli.py +38 -17
  130. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/decision.py +40 -4
  131. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/dsse.py +2 -4
  132. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/emit.py +23 -3
  133. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/evalclaim.py +55 -6
  134. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/experimental/enclave.py +2 -1
  135. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/hf_evals.py +3 -2
  136. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/inspect_hook.py +14 -1
  137. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/kbjwt.py +38 -3
  138. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/merkle.py +38 -5
  139. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/outcome.py +2 -1
  140. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/persample.py +38 -1
  141. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/policy_profiles.py +6 -5
  142. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/public_transparency.py +2 -1
  143. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/pytest_plugin.py +6 -0
  144. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/relation.py +2 -1
  145. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/relation_statement.py +3 -2
  146. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/renewal.py +208 -25
  147. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/run_ledger.py +3 -2
  148. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/sdjwt.py +4 -2
  149. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/sdjwt_issue.py +13 -4
  150. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/sdjwt_vc.py +16 -3
  151. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/statuslist.py +2 -1
  152. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/tlogproof.py +20 -7
  153. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/verification_summary.py +4 -3
  154. {proofbundle-4.0.0 → proofbundle-5.1.0/src/proofbundle.egg-info}/PKG-INFO +43 -42
  155. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle.egg-info/SOURCES.txt +147 -0
  156. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle.egg-info/requires.txt +2 -2
  157. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/conftest.py +174 -15
  158. proofbundle-5.1.0/tests/fixtures/anchors/markovian_log/submit_7727/MANIFEST.json +45 -0
  159. proofbundle-5.1.0/tests/fixtures/anchors/markovian_log/submit_7727/checkpoint_at_submit.txt +16 -0
  160. proofbundle-5.1.0/tests/fixtures/anchors/markovian_log/submit_7727/checkpoint_latest.txt +16 -0
  161. proofbundle-5.1.0/tests/fixtures/anchors/markovian_log/submit_7727/checkpoint_witnessed.txt +16 -0
  162. proofbundle-5.1.0/tests/fixtures/anchors/markovian_log/submit_7727/inclusion_path.txt +9 -0
  163. proofbundle-5.1.0/tests/fixtures/anchors/markovian_log/submit_7727/leaf.txt +1 -0
  164. proofbundle-5.1.0/tests/fixtures/anchors/markovian_log/submit_7727/proof_bundle.json +28 -0
  165. proofbundle-5.1.0/tests/fixtures/anchors/markovian_log/submit_7727/submit_response.json +13 -0
  166. proofbundle-5.1.0/tests/fixtures/inspect_logs/safety_refusal_demo.eval.provenance.json +15 -0
  167. proofbundle-5.1.0/tests/fixtures/kette_147/body_wie_am_ziel.md +29 -0
  168. proofbundle-5.1.0/tests/fixtures/kette_147/receipt.json +9 -0
  169. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_adapters.py +24 -0
  170. proofbundle-5.1.0/tests/test_agent_review_binding_semantics.py +367 -0
  171. proofbundle-5.1.0/tests/test_agent_review_conformance_runner.py +443 -0
  172. proofbundle-5.1.0/tests/test_agent_review_statement_shape.py +202 -0
  173. proofbundle-5.1.0/tests/test_agent_review_zeitsemantik.py +290 -0
  174. proofbundle-5.1.0/tests/test_anchor_extra_arg_type_confusion.py +119 -0
  175. proofbundle-5.1.0/tests/test_anchors_markovian_submit.py +194 -0
  176. proofbundle-5.1.0/tests/test_anchors_ots_frozen_rptrust_guard.py +98 -0
  177. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_audit_candidate_360.py +51 -2
  178. proofbundle-5.1.0/tests/test_audit_candidate_ready_logic.py +62 -0
  179. proofbundle-5.1.0/tests/test_audit_matrix_version_pin_binding.py +155 -0
  180. proofbundle-5.1.0/tests/test_audit_output_aufloesbar.py +133 -0
  181. proofbundle-5.1.0/tests/test_ausgelieferte_doku_haelt.py +170 -0
  182. proofbundle-5.1.0/tests/test_automation_nie_nachsichtiger_als_ok.py +436 -0
  183. proofbundle-5.1.0/tests/test_beide_verifier_pfade_antworten_gleich.py +104 -0
  184. proofbundle-5.1.0/tests/test_classify_eval_claim.py +183 -0
  185. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_cli_eval.py +49 -0
  186. proofbundle-5.1.0/tests/test_dokumentierte_laeufer_koennen_die_suite_fahren.py +427 -0
  187. proofbundle-5.1.0/tests/test_emitter_parser_rundlauf.py +158 -0
  188. proofbundle-5.1.0/tests/test_evidence_typed_digest.py +179 -0
  189. proofbundle-5.1.0/tests/test_findings_root_bindet_die_liste.py +143 -0
  190. proofbundle-5.1.0/tests/test_gate_population_and_nested_leaf.py +205 -0
  191. proofbundle-5.1.0/tests/test_gate_qualification_harness.py +320 -0
  192. proofbundle-5.1.0/tests/test_gegenbeweis_zeigt_nicht_ins_leere.py +109 -0
  193. proofbundle-5.1.0/tests/test_inspect_hook.py +175 -0
  194. proofbundle-5.1.0/tests/test_int_magnitude_budget_family.py +120 -0
  195. proofbundle-5.1.0/tests/test_iter9_deepgate_round4.py +167 -0
  196. proofbundle-5.1.0/tests/test_iter9_product_fixes.py +80 -0
  197. proofbundle-5.1.0/tests/test_jede_formpruefung_nennt_ihren_grund.py +853 -0
  198. proofbundle-5.1.0/tests/test_jeder_code_meint_genau_eine_lage.py +724 -0
  199. proofbundle-5.1.0/tests/test_jeder_gegenbeweis_faellt_auf_seiner_achse.py +90 -0
  200. proofbundle-5.1.0/tests/test_kappe_vor_arbeit.py +141 -0
  201. proofbundle-5.1.0/tests/test_kette_verliert_kein_gueltiges_receipt.py +88 -0
  202. proofbundle-5.1.0/tests/test_korpus_arten_haben_eine_quelle.py +67 -0
  203. proofbundle-5.1.0/tests/test_korpus_stammt_aus_seinem_generator.py +91 -0
  204. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_load_signer_fd_hazard.py +72 -0
  205. proofbundle-5.1.0/tests/test_membership_hashable_guard.py +257 -0
  206. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_never_raise_surface_family_property.py +169 -2
  207. proofbundle-5.1.0/tests/test_p05_kette_ereignis_bis_offline_verify.py +133 -0
  208. proofbundle-5.1.0/tests/test_p0_2_disclosure_core_digest.py +273 -0
  209. proofbundle-5.1.0/tests/test_p0_4_coverage_und_zeit.py +196 -0
  210. proofbundle-5.1.0/tests/test_p0_urspruengliche_mutationen.py +224 -0
  211. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_pre_tag_audit_provenance.py +24 -17
  212. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_pre_tag_gate_eigenschaften.py +7 -5
  213. proofbundle-5.1.0/tests/test_pre_tag_receipt_commit_flow.py +99 -0
  214. proofbundle-5.1.0/tests/test_pre_tag_receipt_gate.py +117 -0
  215. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_pytest_plugin.py +14 -0
  216. proofbundle-5.1.0/tests/test_render_safe_untrusted_int.py +127 -0
  217. proofbundle-5.1.0/tests/test_renewal_field_magnitude_never_raise.py +166 -0
  218. proofbundle-5.1.0/tests/test_reported_version_status.py +387 -0
  219. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_roadmap_frontload_foundations.py +24 -8
  220. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_rust_parity_gate.py +14 -4
  221. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_sdist_selftest_derivation.py +95 -0
  222. proofbundle-5.1.0/tests/test_sdist_selftest_optional_deps.py +89 -0
  223. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_sdjwt_vc.py +28 -0
  224. proofbundle-5.1.0/tests/test_type_confusion_wireform.py +133 -0
  225. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_verify_proof_expected_origin.py +52 -3
  226. proofbundle-5.1.0/tests/test_wire_bytes_strict.py +217 -0
  227. proofbundle-5.1.0/tests/test_wurzelsammlung_schliesst_bauartefakte_aus.py +97 -0
  228. proofbundle-5.1.0/tests/test_zeitsemantik_policy_und_supersession.py +370 -0
  229. proofbundle-4.0.0/conformance/run_conformance.py +0 -353
  230. proofbundle-4.0.0/docs/readiness_pack/index.json +0 -110
  231. proofbundle-4.0.0/docs/readiness_pack/proofbundle/readiness_pack.pub.b64 +0 -1
  232. proofbundle-4.0.0/scripts/type_confusion_gate.py +0 -301
  233. proofbundle-4.0.0/src/proofbundle/adapters/_provenance.py +0 -91
  234. proofbundle-4.0.0/tests/test_inspect_hook.py +0 -57
  235. {proofbundle-4.0.0 → proofbundle-5.1.0}/LICENSE +0 -0
  236. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/README.md +0 -0
  237. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/bundle/coherent-rewrap-fails-expected-root/bundle.json +0 -0
  238. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/bundle/coherent-rewrap-fails-expected-root/case.json +0 -0
  239. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/bundle/coherent-rewrap-verifies-no-policy/bundle.json +0 -0
  240. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/bundle/coherent-rewrap-verifies-no-policy/case.json +0 -0
  241. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/bundle/corrupted-signature/bundle.json +0 -0
  242. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/bundle/corrupted-signature/case.json +0 -0
  243. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/bundle/duplicate-json-key/bundle.json +0 -0
  244. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/bundle/duplicate-json-key/case.json +0 -0
  245. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/bundle/forged-anchor-own-frozen/bundle.json +0 -0
  246. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/bundle/forged-anchor-own-frozen/case.json +0 -0
  247. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/bundle/n1-eval-sdjwt-graft-non-eval/bundle.json +0 -0
  248. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/bundle/n1-eval-sdjwt-graft-non-eval/case.json +0 -0
  249. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/bundle/sd-jwt-forged-issuer-identity/bundle.json +0 -0
  250. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/bundle/sd-jwt-forged-issuer-identity/case.json +0 -0
  251. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/bundle/sd-jwt-signed-but-unbound/bundle.json +0 -0
  252. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/bundle/sd-jwt-signed-but-unbound/case.json +0 -0
  253. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/bundle/sd-jwt-unsigned-unauthenticated/bundle.json +0 -0
  254. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/bundle/sd-jwt-unsigned-unauthenticated/case.json +0 -0
  255. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/bundle/tampered-payload/bundle.json +0 -0
  256. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/bundle/tampered-payload/case.json +0 -0
  257. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/bundle/tree-size-expectation-mismatch/bundle.json +0 -0
  258. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/bundle/tree-size-expectation-mismatch/case.json +0 -0
  259. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/bundle/valid-minimal/bundle.json +0 -0
  260. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/bundle/valid-minimal/case.json +0 -0
  261. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/decision/crossimpl/canonicalization-root-binding/MANIFEST.json +0 -0
  262. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/decision/crossimpl/canonicalization-root-binding/case.json +0 -0
  263. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/decision/crossimpl/canonicalization-root-binding/decision_receipt.jcs +0 -0
  264. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/decision/crossimpl/canonicalization-root-binding/decision_receipt.jcs.ots +0 -0
  265. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/decision/crossimpl/canonicalization-root-binding/decision_receipt.json +0 -0
  266. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/decision/crossimpl/canonicalization-root-binding/evidence_eval_result.jcs +0 -0
  267. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/decision/crossimpl/canonicalization-root-binding/evidence_eval_result.json +0 -0
  268. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/decision/crossimpl/confirmed-anchor-lifecycle/MANIFEST.json +0 -0
  269. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/decision/crossimpl/confirmed-anchor-lifecycle/case.json +0 -0
  270. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/decision/crossimpl/confirmed-anchor-lifecycle/decision_receipt.jcs +0 -0
  271. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/decision/crossimpl/confirmed-anchor-lifecycle/decision_receipt.jcs.ots +0 -0
  272. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/decision/crossimpl/confirmed-anchor-lifecycle/decision_receipt.json +0 -0
  273. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/decision/crossimpl/confirmed-anchor-lifecycle/evidence_eval_result.jcs +0 -0
  274. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/decision/crossimpl/confirmed-anchor-lifecycle/evidence_eval_result.json +0 -0
  275. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/decision/crossimpl/schema-conformant/MANIFEST.json +0 -0
  276. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/decision/crossimpl/schema-conformant/case.json +0 -0
  277. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/decision/crossimpl/schema-conformant/decision_receipt.jcs +0 -0
  278. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/decision/crossimpl/schema-conformant/decision_receipt.jcs.ots +0 -0
  279. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/decision/crossimpl/schema-conformant/decision_receipt.json +0 -0
  280. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/decision/crossimpl/schema-conformant/evidence_eval_result.jcs +0 -0
  281. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/decision/crossimpl/schema-conformant/evidence_eval_result.json +0 -0
  282. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/declared-supersedes-verified/case.json +0 -0
  283. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/declared-supersedes-verified/pub.b64 +0 -0
  284. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/declared-supersedes-verified/receipt.json +0 -0
  285. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/declared-supersedes-verified/related_b.json +0 -0
  286. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/declared-unresolved/case.json +0 -0
  287. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/declared-unresolved/pub.b64 +0 -0
  288. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/declared-unresolved/receipt.json +0 -0
  289. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/decoy-accept-path/case.json +0 -0
  290. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/decoy-accept-path/policy.json +0 -0
  291. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/decoy-accept-path/pub.b64 +0 -0
  292. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/decoy-accept-path/receipt.json +0 -0
  293. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/decoy-accept-path/related_rx.json +0 -0
  294. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/decoy-parent-correct-pass/case.json +0 -0
  295. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/decoy-parent-correct-pass/policy.json +0 -0
  296. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/decoy-parent-correct-pass/pub.b64 +0 -0
  297. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/decoy-parent-correct-pass/receipt.json +0 -0
  298. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/decoy-parent-correct-pass/related_r0.json +0 -0
  299. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/decoy-parent-correct-pass/related_rx.json +0 -0
  300. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/decoy-parent-no-pin-old-behavior/case.json +0 -0
  301. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/decoy-parent-no-pin-old-behavior/policy.json +0 -0
  302. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/decoy-parent-no-pin-old-behavior/pub.b64 +0 -0
  303. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/decoy-parent-no-pin-old-behavior/receipt.json +0 -0
  304. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/decoy-parent-no-pin-old-behavior/related_r0.json +0 -0
  305. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/decoy-parent-no-pin-old-behavior/related_rx.json +0 -0
  306. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/decoy-parent-target-mismatch/case.json +0 -0
  307. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/decoy-parent-target-mismatch/policy.json +0 -0
  308. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/decoy-parent-target-mismatch/pub.b64 +0 -0
  309. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/decoy-parent-target-mismatch/receipt.json +0 -0
  310. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/decoy-parent-target-mismatch/related_r0.json +0 -0
  311. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/decoy-parent-target-mismatch/related_rx.json +0 -0
  312. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/case.json +0 -0
  313. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/pub.b64 +0 -0
  314. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/receipt.json +0 -0
  315. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_001.json +0 -0
  316. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_002.json +0 -0
  317. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_003.json +0 -0
  318. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_004.json +0 -0
  319. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_005.json +0 -0
  320. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_006.json +0 -0
  321. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_007.json +0 -0
  322. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_008.json +0 -0
  323. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_009.json +0 -0
  324. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_010.json +0 -0
  325. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_011.json +0 -0
  326. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_012.json +0 -0
  327. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_013.json +0 -0
  328. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_014.json +0 -0
  329. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_015.json +0 -0
  330. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_016.json +0 -0
  331. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_017.json +0 -0
  332. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_018.json +0 -0
  333. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_019.json +0 -0
  334. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_020.json +0 -0
  335. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_021.json +0 -0
  336. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_022.json +0 -0
  337. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_023.json +0 -0
  338. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_024.json +0 -0
  339. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_025.json +0 -0
  340. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_026.json +0 -0
  341. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_027.json +0 -0
  342. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_028.json +0 -0
  343. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_029.json +0 -0
  344. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_030.json +0 -0
  345. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_031.json +0 -0
  346. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_032.json +0 -0
  347. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_033.json +0 -0
  348. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/digest-mismatch/case.json +0 -0
  349. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/digest-mismatch/policy.json +0 -0
  350. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/digest-mismatch/pub.b64 +0 -0
  351. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/digest-mismatch/receipt.json +0 -0
  352. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/digest-mismatch/related_b.json +0 -0
  353. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/generate_vectors.py +0 -0
  354. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/malformed-digest/case.json +0 -0
  355. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/malformed-digest/pub.b64 +0 -0
  356. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/malformed-digest/receipt.json +0 -0
  357. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/outcome-declared-supersedes-verified/case.json +0 -0
  358. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/outcome-declared-supersedes-verified/pub.b64 +0 -0
  359. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/outcome-declared-supersedes-verified/receipt.json +0 -0
  360. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/outcome-declared-supersedes-verified/related_b.json +0 -0
  361. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/outcome-decoy-parent-target-mismatch/case.json +0 -0
  362. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/outcome-decoy-parent-target-mismatch/policy.json +0 -0
  363. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/outcome-decoy-parent-target-mismatch/pub.b64 +0 -0
  364. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/outcome-decoy-parent-target-mismatch/receipt.json +0 -0
  365. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/outcome-decoy-parent-target-mismatch/related_r0.json +0 -0
  366. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/outcome-decoy-parent-target-mismatch/related_rx.json +0 -0
  367. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/outcome-digest-mismatch/case.json +0 -0
  368. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/outcome-digest-mismatch/policy.json +0 -0
  369. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/outcome-digest-mismatch/pub.b64 +0 -0
  370. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/outcome-digest-mismatch/receipt.json +0 -0
  371. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/outcome-digest-mismatch/related_b.json +0 -0
  372. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/outcome-relation-signer-unauthorized/case.json +0 -0
  373. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/outcome-relation-signer-unauthorized/policy.json +0 -0
  374. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/outcome-relation-signer-unauthorized/pub.b64 +0 -0
  375. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/outcome-relation-signer-unauthorized/receipt.json +0 -0
  376. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/outcome-relation-signer-unauthorized/related_b.json +0 -0
  377. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/outcome-renews/case.json +0 -0
  378. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/outcome-renews/pub.b64 +0 -0
  379. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/outcome-renews/receipt.json +0 -0
  380. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/outcome-renews/related_b.json +0 -0
  381. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/outcome-silent-landing/case.json +0 -0
  382. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/outcome-silent-landing/pub.b64 +0 -0
  383. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/outcome-silent-landing/receipt.json +0 -0
  384. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/outcome-valid-baseline/case.json +0 -0
  385. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/outcome-valid-baseline/pub.b64 +0 -0
  386. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/outcome-valid-baseline/receipt.json +0 -0
  387. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-amends/case.json +0 -0
  388. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-amends/pub.b64 +0 -0
  389. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-amends/receipt.json +0 -0
  390. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-amends/related_b.json +0 -0
  391. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-corrects/case.json +0 -0
  392. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-corrects/pub.b64 +0 -0
  393. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-corrects/receipt.json +0 -0
  394. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-corrects/related_b.json +0 -0
  395. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-derivedfrom/case.json +0 -0
  396. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-derivedfrom/pub.b64 +0 -0
  397. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-derivedfrom/receipt.json +0 -0
  398. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-derivedfrom/related_b.json +0 -0
  399. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-retracts/case.json +0 -0
  400. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-retracts/pub.b64 +0 -0
  401. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-retracts/receipt.json +0 -0
  402. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-retracts/related_b.json +0 -0
  403. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-revises/case.json +0 -0
  404. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-revises/pub.b64 +0 -0
  405. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-revises/receipt.json +0 -0
  406. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-revises/related_b.json +0 -0
  407. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-signer-cross-issuer-unauthorized/case.json +0 -0
  408. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-signer-cross-issuer-unauthorized/policy.json +0 -0
  409. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-signer-cross-issuer-unauthorized/pub.b64 +0 -0
  410. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-signer-cross-issuer-unauthorized/receipt.json +0 -0
  411. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-signer-cross-issuer-unauthorized/related_b.json +0 -0
  412. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-signer-cross-issuer-verified/case.json +0 -0
  413. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-signer-cross-issuer-verified/policy.json +0 -0
  414. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-signer-cross-issuer-verified/pub.b64 +0 -0
  415. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-signer-cross-issuer-verified/receipt.json +0 -0
  416. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-signer-cross-issuer-verified/related_b.json +0 -0
  417. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-signer-same-key-explicit/case.json +0 -0
  418. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-signer-same-key-explicit/policy.json +0 -0
  419. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-signer-same-key-explicit/pub.b64 +0 -0
  420. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-signer-same-key-explicit/receipt.json +0 -0
  421. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-signer-same-key-explicit/related_b.json +0 -0
  422. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-signer-verified-under-not-claim/case.json +0 -0
  423. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-signer-verified-under-not-claim/policy.json +0 -0
  424. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-signer-verified-under-not-claim/pub.b64 +0 -0
  425. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-signer-verified-under-not-claim/receipt.json +0 -0
  426. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-signer-verified-under-not-claim/related_b.json +0 -0
  427. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/renews-vector/case.json +0 -0
  428. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/renews-vector/pub.b64 +0 -0
  429. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/renews-vector/receipt.json +0 -0
  430. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/renews-vector/related_b.json +0 -0
  431. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/retracts-then-use/case.json +0 -0
  432. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/retracts-then-use/policy.json +0 -0
  433. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/retracts-then-use/pub.b64 +0 -0
  434. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/retracts-then-use/receipt.json +0 -0
  435. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/retracts-then-use/related_r.json +0 -0
  436. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/silent-landing/case.json +0 -0
  437. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/silent-landing/pub.b64 +0 -0
  438. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/silent-landing/receipt.json +0 -0
  439. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/statement-malformed/case.json +0 -0
  440. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/statement-malformed/pub.b64 +0 -0
  441. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/statement-malformed/receipt.json +0 -0
  442. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/statement-retracts-declared-unresolved/case.json +0 -0
  443. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/statement-retracts-declared-unresolved/pub.b64 +0 -0
  444. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/statement-retracts-declared-unresolved/receipt.json +0 -0
  445. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/statement-retracts-unauthorized/case.json +0 -0
  446. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/statement-retracts-unauthorized/policy.json +0 -0
  447. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/statement-retracts-unauthorized/pub.b64 +0 -0
  448. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/statement-retracts-unauthorized/receipt.json +0 -0
  449. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/statement-retracts-unauthorized/related_t.json +0 -0
  450. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/statement-retracts-verified-blocked/case.json +0 -0
  451. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/statement-retracts-verified-blocked/policy.json +0 -0
  452. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/statement-retracts-verified-blocked/pub.b64 +0 -0
  453. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/statement-retracts-verified-blocked/receipt.json +0 -0
  454. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/statement-retracts-verified-blocked/related_t.json +0 -0
  455. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/statement-retracts-verified-visible/case.json +0 -0
  456. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/statement-retracts-verified-visible/pub.b64 +0 -0
  457. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/statement-retracts-verified-visible/receipt.json +0 -0
  458. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/statement-retracts-verified-visible/related_t.json +0 -0
  459. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/statement-supersedes-verified/case.json +0 -0
  460. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/statement-supersedes-verified/pub.b64 +0 -0
  461. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/statement-supersedes-verified/receipt.json +0 -0
  462. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/statement-supersedes-verified/related_t.json +0 -0
  463. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/t1-canonical-invalid-signature/case.json +0 -0
  464. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/t1-canonical-invalid-signature/pub.b64 +0 -0
  465. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/t1-canonical-invalid-signature/receipt.json +0 -0
  466. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/target-subject-ambiguous/case.json +0 -0
  467. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/target-subject-ambiguous/pub.b64 +0 -0
  468. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/target-subject-ambiguous/receipt.json +0 -0
  469. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/target-subject-ambiguous/related_r0.json +0 -0
  470. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/target-subject-correct-pass/case.json +0 -0
  471. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/target-subject-correct-pass/pub.b64 +0 -0
  472. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/target-subject-correct-pass/receipt.json +0 -0
  473. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/target-subject-correct-pass/related_r0.json +0 -0
  474. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/target-subject-mismatch/case.json +0 -0
  475. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/target-subject-mismatch/pub.b64 +0 -0
  476. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/target-subject-mismatch/receipt.json +0 -0
  477. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/target-subject-mismatch/related_r0.json +0 -0
  478. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/target-subject-missing/case.json +0 -0
  479. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/target-subject-missing/pub.b64 +0 -0
  480. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/target-subject-missing/receipt.json +0 -0
  481. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/target-subject-missing/related_r0.json +0 -0
  482. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/unauthorized-signer/case.json +0 -0
  483. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/unauthorized-signer/pub.b64 +0 -0
  484. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/unauthorized-signer/receipt.json +0 -0
  485. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/unauthorized-signer/related_b.json +0 -0
  486. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/valid-baseline/case.json +0 -0
  487. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/valid-baseline/pub.b64 +0 -0
  488. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/valid-baseline/receipt.json +0 -0
  489. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/wrong-payloadtype-target/case.json +0 -0
  490. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/wrong-payloadtype-target/pub.b64 +0 -0
  491. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/wrong-payloadtype-target/receipt.json +0 -0
  492. {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/wrong-payloadtype-target/related_t.json +0 -0
  493. {proofbundle-4.0.0 → proofbundle-5.1.0}/docs/adr/renewal_policy.example.json +0 -0
  494. {proofbundle-4.0.0 → proofbundle-5.1.0}/docs/readiness_pack/AUDITOR_OPEN_POINTS.md +0 -0
  495. {proofbundle-4.0.0 → proofbundle-5.1.0}/docs/readiness_pack/OPEN_QUESTIONS.md +0 -0
  496. {proofbundle-4.0.0 → proofbundle-5.1.0}/docs/readiness_pack/README.md +0 -0
  497. {proofbundle-4.0.0 → proofbundle-5.1.0}/docs/readiness_pack/REPRODUCTION_RUNBOOK.md +0 -0
  498. {proofbundle-4.0.0 → proofbundle-5.1.0}/docs/readiness_pack/calendar_independence.md +0 -0
  499. {proofbundle-4.0.0 → proofbundle-5.1.0}/docs/readiness_pack/differential_matrix.md +0 -0
  500. {proofbundle-4.0.0 → proofbundle-5.1.0}/docs/readiness_pack/rust_parity_scope.md +0 -0
  501. {proofbundle-4.0.0 → proofbundle-5.1.0}/docs/readiness_pack/tamper_resistance.md +0 -0
  502. {proofbundle-4.0.0 → proofbundle-5.1.0}/docs/readiness_pack/threat_model_delta_360.md +0 -0
  503. {proofbundle-4.0.0 → proofbundle-5.1.0}/examples/README.md +0 -0
  504. {proofbundle-4.0.0 → proofbundle-5.1.0}/examples/anchors/chia-datalayer-invalid-root.json +0 -0
  505. {proofbundle-4.0.0 → proofbundle-5.1.0}/examples/anchors/chia-datalayer-valid.json +0 -0
  506. {proofbundle-4.0.0 → proofbundle-5.1.0}/examples/checkpoint_example.py +0 -0
  507. {proofbundle-4.0.0 → proofbundle-5.1.0}/examples/decision_receipt_allow.json +0 -0
  508. {proofbundle-4.0.0 → proofbundle-5.1.0}/examples/decision_receipt_deny.json +0 -0
  509. {proofbundle-4.0.0 → proofbundle-5.1.0}/examples/decision_receipt_escalate.json +0 -0
  510. {proofbundle-4.0.0 → proofbundle-5.1.0}/examples/decision_receipt_with_eval_ref.intoto.json +0 -0
  511. {proofbundle-4.0.0 → proofbundle-5.1.0}/examples/eee_receipt.py +0 -0
  512. {proofbundle-4.0.0 → proofbundle-5.1.0}/examples/example.tlog-proof +0 -0
  513. {proofbundle-4.0.0 → proofbundle-5.1.0}/examples/example_bundle.json +0 -0
  514. {proofbundle-4.0.0 → proofbundle-5.1.0}/examples/experimental_enclave.py +0 -0
  515. {proofbundle-4.0.0 → proofbundle-5.1.0}/examples/inspect_hook_example.py +0 -0
  516. {proofbundle-4.0.0 → proofbundle-5.1.0}/examples/inspect_receipt.py +0 -0
  517. {proofbundle-4.0.0 → proofbundle-5.1.0}/examples/intoto/private-model-commitment.statement.json +0 -0
  518. {proofbundle-4.0.0 → proofbundle-5.1.0}/examples/intoto/public-model.statement.json +0 -0
  519. {proofbundle-4.0.0 → proofbundle-5.1.0}/examples/intoto/release-gate.statement.json +0 -0
  520. {proofbundle-4.0.0 → proofbundle-5.1.0}/examples/intoto/svr.statement.json +0 -0
  521. {proofbundle-4.0.0 → proofbundle-5.1.0}/examples/intoto_dsse_export.py +0 -0
  522. {proofbundle-4.0.0 → proofbundle-5.1.0}/examples/lm_eval_receipt.py +0 -0
  523. {proofbundle-4.0.0 → proofbundle-5.1.0}/examples/make_example.py +0 -0
  524. {proofbundle-4.0.0 → proofbundle-5.1.0}/examples/persample_audit.py +0 -0
  525. {proofbundle-4.0.0 → proofbundle-5.1.0}/examples/pytest_plugin_example.py +0 -0
  526. {proofbundle-4.0.0 → proofbundle-5.1.0}/examples/rekor_interop.py +0 -0
  527. {proofbundle-4.0.0 → proofbundle-5.1.0}/examples/tlog_proof_example.py +0 -0
  528. {proofbundle-4.0.0 → proofbundle-5.1.0}/examples/trust_policy_decision_strict.json +0 -0
  529. {proofbundle-4.0.0 → proofbundle-5.1.0}/examples/trust_policy_strict.json +0 -0
  530. {proofbundle-4.0.0 → proofbundle-5.1.0}/formal/README.md +0 -0
  531. {proofbundle-4.0.0 → proofbundle-5.1.0}/formal/model.py +0 -0
  532. {proofbundle-4.0.0 → proofbundle-5.1.0}/schemas/action-outcome-v0.1.schema.json +0 -0
  533. {proofbundle-4.0.0 → proofbundle-5.1.0}/schemas/in_toto_statement_v1.schema.json +0 -0
  534. {proofbundle-4.0.0 → proofbundle-5.1.0}/schemas/proofbundle_v0_1.schema.json +0 -0
  535. {proofbundle-4.0.0 → proofbundle-5.1.0}/schemas/run-ledger-v0.1.schema.json +0 -0
  536. {proofbundle-4.0.0 → proofbundle-5.1.0}/schemas/trust-pack-v0.1.schema.json +0 -0
  537. {proofbundle-4.0.0 → proofbundle-5.1.0}/schemas/trust_policy_v0_1.schema.json +0 -0
  538. {proofbundle-4.0.0 → proofbundle-5.1.0}/schemas/verification-summary-v0.1.schema.json +0 -0
  539. {proofbundle-4.0.0 → proofbundle-5.1.0}/scripts/_build_anchor_fixture.py +0 -0
  540. {proofbundle-4.0.0 → proofbundle-5.1.0}/scripts/branch_base_check.py +0 -0
  541. {proofbundle-4.0.0 → proofbundle-5.1.0}/scripts/build_reproducible.py +0 -0
  542. {proofbundle-4.0.0 → proofbundle-5.1.0}/scripts/check_version_and_changelog.py +0 -0
  543. {proofbundle-4.0.0 → proofbundle-5.1.0}/scripts/claims_hygiene_check.py +0 -0
  544. {proofbundle-4.0.0 → proofbundle-5.1.0}/scripts/demo.sh +0 -0
  545. {proofbundle-4.0.0 → proofbundle-5.1.0}/scripts/demo_tamper.sh +0 -0
  546. {proofbundle-4.0.0 → proofbundle-5.1.0}/scripts/doc_link_check.py +0 -0
  547. {proofbundle-4.0.0 → proofbundle-5.1.0}/scripts/finding_base_drift.py +0 -0
  548. {proofbundle-4.0.0 → proofbundle-5.1.0}/scripts/findings_register.py +0 -0
  549. {proofbundle-4.0.0 → proofbundle-5.1.0}/scripts/fork_pr_secret_isolation.py +0 -0
  550. {proofbundle-4.0.0 → proofbundle-5.1.0}/scripts/gen_findings_register.py +0 -0
  551. {proofbundle-4.0.0 → proofbundle-5.1.0}/scripts/gen_synthetic_ots_fixture.py +0 -0
  552. {proofbundle-4.0.0 → proofbundle-5.1.0}/scripts/git-hooks/pre-commit +0 -0
  553. {proofbundle-4.0.0 → proofbundle-5.1.0}/scripts/install_git_hooks.sh +0 -0
  554. {proofbundle-4.0.0 → proofbundle-5.1.0}/scripts/mutant_signature_guard.py +0 -0
  555. {proofbundle-4.0.0 → proofbundle-5.1.0}/scripts/pre_tag_attestation.py +0 -0
  556. {proofbundle-4.0.0 → proofbundle-5.1.0}/scripts/readiness_pack_gate.py +0 -0
  557. {proofbundle-4.0.0 → proofbundle-5.1.0}/scripts/readiness_pack_manifest.py +0 -0
  558. {proofbundle-4.0.0 → proofbundle-5.1.0}/scripts/render_demo.py +0 -0
  559. {proofbundle-4.0.0 → proofbundle-5.1.0}/scripts/test_manifest_gate.py +0 -0
  560. {proofbundle-4.0.0 → proofbundle-5.1.0}/setup.cfg +0 -0
  561. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/_inspect_registry.py +0 -0
  562. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/_strict_json.py +0 -0
  563. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/adapters/__init__.py +0 -0
  564. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/adapters/samples.py +0 -0
  565. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/anchors_chia.py +0 -0
  566. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/anchors_chia_add.py +0 -0
  567. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/anchors_markovian.py +0 -0
  568. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/assurance.py +0 -0
  569. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/beacon.py +0 -0
  570. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/canonical.py +0 -0
  571. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/demo.py +0 -0
  572. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/eee_eval_schema.json +0 -0
  573. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/errors.py +0 -0
  574. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/evalcard.py +0 -0
  575. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/evidence_pack.py +0 -0
  576. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/experimental/__init__.py +0 -0
  577. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/hashalg.py +0 -0
  578. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/intoto.py +0 -0
  579. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/policies/decision-receipt-template-v1.json +0 -0
  580. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/policies/research-preview-v1.json +0 -0
  581. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/policies/strict-eval-authenticated-root-template-v1.json +0 -0
  582. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/policies/strict-eval-template-v1.json +0 -0
  583. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/policies/strict-prereg-template-v1.json +0 -0
  584. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/policy.py +0 -0
  585. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/pqsig.py +0 -0
  586. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/prereg.py +0 -0
  587. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/py.typed +0 -0
  588. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/signature.py +0 -0
  589. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/subject_binding.py +0 -0
  590. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/trust_pack.py +0 -0
  591. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle.egg-info/dependency_links.txt +0 -0
  592. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle.egg-info/entry_points.txt +0 -0
  593. {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle.egg-info/top_level.txt +0 -0
  594. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/_beinahe_treffer.py +0 -0
  595. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/chia_datalayer_proof.json +0 -0
  596. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/freetsa_receipt_anchor.json +0 -0
  597. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/markovian_log/checkpoint_7397/MANIFEST.json +0 -0
  598. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/markovian_log/checkpoint_7397/checkpoint_7397.txt +0 -0
  599. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/markovian_log/proof_7271/ERGEBNIS.json +0 -0
  600. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/markovian_log/proof_7271/ERGEBNIS_negativ.json +0 -0
  601. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/markovian_log/proof_7271/MANIFEST.json +0 -0
  602. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/markovian_log/proof_7271/README.md +0 -0
  603. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/markovian_log/proof_7271/SOURCES.md +0 -0
  604. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/markovian_log/proof_7271/keys_unabhaengig.txt +0 -0
  605. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/markovian_log/proof_7271/leaf_7271.raw +0 -0
  606. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/markovian_log/proof_7271/proof_7271.tlog-proof +0 -0
  607. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/tlog_bitcoin_anchor/MANIFEST.json +0 -0
  608. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/tlog_bitcoin_anchor/README.md +0 -0
  609. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/tlog_bitcoin_anchor/rootcommit/MANIFEST.json +0 -0
  610. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/tlog_bitcoin_anchor/rootcommit/README.md +0 -0
  611. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/tlog_bitcoin_anchor/rootcommit/vectors/manifest.json +0 -0
  612. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/tlog_bitcoin_anchor/rootcommit/vectors/rootcommit-01-valid.txt +0 -0
  613. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/tlog_bitcoin_anchor/rootcommit/vectors/rootcommit-02-tampered-root.txt +0 -0
  614. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/tlog_bitcoin_anchor/rootcommit/vectors/rootcommit-03-tampered-wallet.txt +0 -0
  615. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/tlog_bitcoin_anchor/rootcommit/vectors/rootcommit-04-tampered-proof.txt +0 -0
  616. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/tlog_bitcoin_anchor/rootcommit/vectors_sig/manifest.json +0 -0
  617. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/tlog_bitcoin_anchor/rootcommit/vectors_sig/v2sig-01-valid.txt +0 -0
  618. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/tlog_bitcoin_anchor/rootcommit/vectors_sig/v2sig-02-tampered-root.txt +0 -0
  619. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/tlog_bitcoin_anchor/rootcommit/vectors_sig/v2sig-03-tampered-wallet.txt +0 -0
  620. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/tlog_bitcoin_anchor/rootcommit/vectors_sig/v2sig-04-tampered-sig.txt +0 -0
  621. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/tlog_bitcoin_anchor/rootcommit/vectors_sig/v2sig-05-tampered-proof.txt +0 -0
  622. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/tlog_bitcoin_anchor/vectors/01-valid.txt +0 -0
  623. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/tlog_bitcoin_anchor/vectors/02-unknown-id.txt +0 -0
  624. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/tlog_bitcoin_anchor/vectors/03-tampered-body.txt +0 -0
  625. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/tlog_bitcoin_anchor/vectors/04-tampered-proof.txt +0 -0
  626. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/tlog_bitcoin_anchor/vectors/manifest.json +0 -0
  627. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/checkpoint/PROVENANCE.json +0 -0
  628. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/checkpoint/gosumdb_known_keys.go +0 -0
  629. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/checkpoint/rekor_v2_checkpoint.txt +0 -0
  630. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/checkpoint/sumdb_latest.txt +0 -0
  631. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/checkpoint/trusted_root.json +0 -0
  632. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/ed25519_speccheck_cases.LICENSE +0 -0
  633. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/ed25519_speccheck_cases.README.md +0 -0
  634. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/ed25519_speccheck_cases.json +0 -0
  635. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/eee_arc_easy.json +0 -0
  636. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/inspect_logs/safety_refusal_demo.eval +0 -0
  637. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/lm_eval_arc_easy_real.json +0 -0
  638. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/markovian_anchor_confirmed.json +0 -0
  639. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/mldsa_acvp/PROVENANCE.json +0 -0
  640. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/mldsa_acvp/mldsa_sigver_slice.json +0 -0
  641. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/ots/PROVENANCE.json +0 -0
  642. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/ots/block358391.json +0 -0
  643. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/ots/hello-world.txt +0 -0
  644. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/ots/hello-world.txt.ots +0 -0
  645. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/ots/incomplete.txt +0 -0
  646. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/ots/incomplete.txt.ots +0 -0
  647. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/ots/known-and-unknown-notary.txt +0 -0
  648. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/ots/known-and-unknown-notary.txt.ots +0 -0
  649. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/ots/merkle2.txt +0 -0
  650. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/ots/merkle2.txt.ots +0 -0
  651. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/ots/synthetic-upgraded-sha256.block.json +0 -0
  652. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/ots/synthetic-upgraded-sha256.txt +0 -0
  653. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/ots/synthetic-upgraded-sha256.txt.ots +0 -0
  654. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/ots/two-calendars.txt +0 -0
  655. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/ots/two-calendars.txt.ots +0 -0
  656. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/promptfoo_results_v3.json +0 -0
  657. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/rekor_inclusion_25579.json +0 -0
  658. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/rfc6962_vectors.json +0 -0
  659. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/sdjwt_disclosure_vector.json +0 -0
  660. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/sdjwt_reference_eddsa.json +0 -0
  661. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/sdjwtvc/PROVENANCE.json +0 -0
  662. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/sdjwtvc/sdjwtvc_examples.txt +0 -0
  663. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/sdjwtvc/sdjwtvc_issuer_pubkey.json +0 -0
  664. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_adversarial.py +0 -0
  665. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_anchor_hardening_321.py +0 -0
  666. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_anchor_longevity_property.py +0 -0
  667. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_anchor_target_trustedtime.py +0 -0
  668. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_anchors_chia.py +0 -0
  669. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_anchors_chia_add.py +0 -0
  670. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_anchors_chia_claims.py +0 -0
  671. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_anchors_generic.py +0 -0
  672. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_anchors_markovian.py +0 -0
  673. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_anchors_markovian_log.py +0 -0
  674. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_anchors_ots.py +0 -0
  675. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_anchors_rfc3161.py +0 -0
  676. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_anchors_rfc3161_type_floor.py +0 -0
  677. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_anchors_rootcommit.py +0 -0
  678. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_assurance.py +0 -0
  679. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_audit_index_zahlen_stimmen.py +0 -0
  680. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_audit_marker_line_wrap.py +0 -0
  681. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_automation_verdict.py +0 -0
  682. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_beacon.py +0 -0
  683. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_branch_base_check.py +0 -0
  684. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_budget.py +0 -0
  685. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_bughunt_361_automation_failopen.py +0 -0
  686. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_bughunt_361_never_raise.py +0 -0
  687. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_bundle.py +0 -0
  688. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_bundle_robustness.py +0 -0
  689. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_canonical.py +0 -0
  690. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_checkpoint.py +0 -0
  691. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_checkpoint_external_vectors.py +0 -0
  692. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_checkpoint_quorum_property.py +0 -0
  693. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_claims_hygiene.py +0 -0
  694. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_cli.py +0 -0
  695. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_cli_require_anchor.py +0 -0
  696. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_conformance.py +0 -0
  697. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_conformance_retention_361.py +0 -0
  698. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_content_root_property.py +0 -0
  699. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_cosignature.py +0 -0
  700. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_cosignature_mldsa.py +0 -0
  701. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_cross_format_singleton_361.py +0 -0
  702. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_decision_anchors.py +0 -0
  703. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_decision_cli.py +0 -0
  704. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_decision_evidence.py +0 -0
  705. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_decision_fuzz.py +0 -0
  706. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_decision_hardening.py +0 -0
  707. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_decision_policy.py +0 -0
  708. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_decision_schema.py +0 -0
  709. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_decision_validator_api.py +0 -0
  710. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_decision_verify.py +0 -0
  711. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_demo.py +0 -0
  712. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_docs_truth.py +0 -0
  713. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_dsse_adversarial.py +0 -0
  714. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_dup_key_reject.py +0 -0
  715. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_ed25519_semantics.py +0 -0
  716. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_eee.py +0 -0
  717. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_emit.py +0 -0
  718. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_enclave_assurance.py +0 -0
  719. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_erwartungsvergleich_population_guard.py +0 -0
  720. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_eval_claim_schema.py +0 -0
  721. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_eval_evidence_class.py +0 -0
  722. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_evalcard.py +0 -0
  723. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_evalclaim.py +0 -0
  724. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_evidence_pack.py +0 -0
  725. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_examples.py +0 -0
  726. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_experimental_enclave.py +0 -0
  727. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_findings_register_identity_axis.py +0 -0
  728. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_findings_register_rt10.py +0 -0
  729. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_fork_pr_secret_isolation.py +0 -0
  730. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_fuzz_parsers.py +0 -0
  731. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_fuzz_soak_regression.py +0 -0
  732. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_hashalg.py +0 -0
  733. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_hf_entry_verify_eee_digest.py +0 -0
  734. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_hf_evals.py +0 -0
  735. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_intoto.py +0 -0
  736. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_intoto_claims_hygiene.py +0 -0
  737. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_intoto_content_root_migration.py +0 -0
  738. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_intoto_dsse.py +0 -0
  739. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_intoto_eval_result.py +0 -0
  740. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_intoto_examples.py +0 -0
  741. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_intoto_spec_diff.py +0 -0
  742. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_intoto_svr.py +0 -0
  743. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_jcs_mandatory_361.py +0 -0
  744. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_kbjwt.py +0 -0
  745. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_legacy_assurance_deprecation_361.py +0 -0
  746. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_lens_review_fixes_3_1_3.py +0 -0
  747. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_manifest_lock.json +0 -0
  748. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_merkle.py +0 -0
  749. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_merkle_consistency_property.py +0 -0
  750. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_merkle_property.py +0 -0
  751. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_mldsa_acvp_vectors.py +0 -0
  752. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_mutant_signature_guard.py +0 -0
  753. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_mutation_isolation.py +0 -0
  754. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_never_raise_361.py +0 -0
  755. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_never_raise_population_guard.py +0 -0
  756. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_never_raise_primary_arg_property.py +0 -0
  757. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_never_raise_recursion_361.py +0 -0
  758. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_official_vectors.py +0 -0
  759. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_ok_semantics.py +0 -0
  760. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_origin_quorum_rule.py +0 -0
  761. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_ots_calendar_hardening.py +0 -0
  762. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_ots_external_vectors.py +0 -0
  763. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_outcome_receiver_corroboration.py +0 -0
  764. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_outcome_verify.py +0 -0
  765. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_oversized_int_guard.py +0 -0
  766. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_path_argument_type_floor.py +0 -0
  767. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_persample.py +0 -0
  768. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_pinned_key_validation.py +0 -0
  769. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_policy_explain_lint.py +0 -0
  770. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_policy_lifecycle_purpose.py +0 -0
  771. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_policy_profiles.py +0 -0
  772. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_policy_templates.py +0 -0
  773. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_pqsig.py +0 -0
  774. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_pre_tag_attestation.py +0 -0
  775. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_predicate_type_enforcement.py +0 -0
  776. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_prereg.py +0 -0
  777. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_promptfoo.py +0 -0
  778. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_provenance.py +0 -0
  779. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_public_transparency.py +0 -0
  780. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_rekor_interop.py +0 -0
  781. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_relation_gate_distance_invariance.py +0 -0
  782. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_relation_profile.py +0 -0
  783. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_relation_property.py +0 -0
  784. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_relation_same_key_361.py +0 -0
  785. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_relation_signer_target_340.py +0 -0
  786. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_relation_statement.py +0 -0
  787. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_relation_statement_rust_parity.py +0 -0
  788. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_relation_subject_pin_361.py +0 -0
  789. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_release_integrity_gate.py +0 -0
  790. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_renewal.py +0 -0
  791. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_renewal_external_token_glue.py +0 -0
  792. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_renewal_policy.py +0 -0
  793. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_renewal_signed.py +0 -0
  794. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_reproducible_build_361.py +0 -0
  795. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_rfc6962_external_vectors.py +0 -0
  796. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_root_authenticity.py +0 -0
  797. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_run_ledger.py +0 -0
  798. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_schema.py +0 -0
  799. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_schema_parity.py +0 -0
  800. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_sdist_packaging_361.py +0 -0
  801. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_sdjwt_adversarial.py +0 -0
  802. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_sdjwt_duplicate_cnf.py +0 -0
  803. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_sdjwt_issue.py +0 -0
  804. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_sdjwt_reference.py +0 -0
  805. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_sdjwt_resource_budget.py +0 -0
  806. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_sdjwt_verify_binding.py +0 -0
  807. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_sdjwtvc_external_vectors.py +0 -0
  808. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_sibling_never_raise_361.py +0 -0
  809. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_signature.py +0 -0
  810. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_statuslist.py +0 -0
  811. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_structural_budget_reachability.py +0 -0
  812. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_subject_binding.py +0 -0
  813. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_tlogproof.py +0 -0
  814. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_tree_context_authenticity.py +0 -0
  815. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_trust_pack.py +0 -0
  816. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_trust_pack_crypto_agility.py +0 -0
  817. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_trust_pack_outcome_receivers_role.py +0 -0
  818. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_trust_pack_payloadtype_negatives.py +0 -0
  819. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_trust_policy.py +0 -0
  820. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_verification_summary.py +0 -0
  821. {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_verify_matrix.py +0 -0
@@ -25,6 +25,32 @@ graft conformance
25
25
  graft formal
26
26
  graft docs/readiness_pack
27
27
  include docs/adr/renewal_policy.example.json
28
+
29
+ # PB-2026-0831-01: the receipt-envelope profile and its vectors landed on main in #159, but the
30
+ # profile document itself was NOT in the sdist and NOT in the wheel — measured, 0 hits in both.
31
+ # NO prune or exclude rule removed it. MANIFEST.in is an allowlist and the file was simply not on
32
+ # any line; it was missing by absence, not by exclusion. That distinction matters: looking for the
33
+ # offending prune rule would have found nothing and left the file out.
34
+ #
35
+ # The vectors under conformance/envelope_profile/ were already shipped by `graft conformance`
36
+ # (21 of 21 files, 10 of 10 case.json, measured). Only the prose document was missing, and it is
37
+ # the half a reader needs to know what the vectors prove.
38
+ #
39
+ # Named by exact path rather than `graft docs`, for the same reason the ADR example above is: a
40
+ # blanket graft would also ship documents whose internal links point at pruned repo files, which
41
+ # breaks test_docs_truth from the sdist.
42
+ include docs/RECEIPT_ENVELOPE_PROFILE.md
43
+ # Same reason, measured 01.09.2026: 14 conformance cases under conformance/agent_review/
44
+ # cite this file NORMATIVELY (`specRef`), and it was not shipped — the corpus referred to a
45
+ # document the installed package did not contain. It carries no local links, so it cannot
46
+ # break test_docs_truth the way a `graft docs` would.
47
+ include docs/AGENT_REVIEW_PREDICATE.md
48
+ # PB-2026-0902-01: der sdist enthielt `conformance/` (94 Faelle, `graft conformance`), aber NICHT
49
+ # das Makefile, ueber das die Doku den Korpus fahren laesst. Wer den sdist auspackt und
50
+ # `make conformance` ruft, bekommt "No rule to make target" — der Korpus ist da und
51
+ # unerreichbar. Gefunden von der as-shipped-Linse des Tiefen-Gates am 02.09.2026. Wie schon bei
52
+ # `RECEIPT_ENVELOPE_PROFILE.md`: keine prune-Regel entfernte es, es stand auf keiner Zeile.
53
+ include Makefile
28
54
  graft scripts
29
55
 
30
56
  # Never ship: the Rust verifier + build artifacts, repo/CI meta, caches, VCS, big review packs.
@@ -0,0 +1,71 @@
1
+ .PHONY: test lint typecheck demo tamper-demo persample-demo full-demo mutation examples conformance conformance-crossimpl all coverage
2
+
3
+ PYTHON ?= python3
4
+
5
+ # EIN ZIEL, DAS IM AUSGELIEFERTEN ZUSTAND NICHT LAUFEN KANN, MUSS DAS SAGEN — nicht scheitern.
6
+ #
7
+ # GEMESSEN am 02.09.2026 (adversariale as-shipped-Linse): `include Makefile` machte alle 13 Ziele
8
+ # zu ausgelieferten Versprechen. Sieben laufen aus dem sdist nicht, und `conformance-crossimpl`
9
+ # scheiterte an einem fehlenden Verzeichnis, waehrend sein Kommentar "needs cargo" sagte — die
10
+ # falsche Vorbedingung. `prune tools` ist richtig; die MELDUNG war es nicht.
11
+ #
12
+ # Der Wachtposten ist EINE Zeile je Ziel und nennt die Vorbedingung im Klartext, statt eine
13
+ # Shell-Fehlermeldung ueber ein fehlendes Verzeichnis zu produzieren.
14
+ # EIN SHELL-AUFRUF, kein zweizeiliger Wachtposten.
15
+ #
16
+ # Die erste Fassung war eine EIGENE Rezeptzeile mit `|| { echo …; exit 0; }`. Gemessen aus dem
17
+ # entpackten sdist: sie meldete die Vorbedingung KORREKT — und make fuhr die naechste Zeile
18
+ # trotzdem, weil jede Rezeptzeile ihre eigene Shell hat und `exit 0` nur diese verlaesst. Das Ziel
19
+ # scheiterte danach genau wie vorher, jetzt nur mit einer beruhigenden Zeile davor. Ein Riegel,
20
+ # der ankuendigt und dann durchlaesst, ist schlimmer als keiner. Deshalb umschliesst die Bedingung
21
+ # den GANZEN Rumpf in EINER Zeile.
22
+ CHECKOUT_FEHLT = echo "== $@: skipped — needs a source checkout, not the shipped package."; \
23
+ echo " Why: tools/ and .github/ are deliberately pruned from the sdist (MANIFEST.in)."; \
24
+ echo " How: run this target from a source checkout of the repository."
25
+
26
+ test: ## needs pytest (in the [test] extra) — it is the only runner that sees this suite
27
+ $(PYTHON) -m pytest -q
28
+
29
+ lint: ## needs `pip install ruff` — deliberately NOT in the [test] extra
30
+ ruff check .
31
+
32
+ typecheck: ## needs `pip install mypy` — deliberately NOT in the [test] extra
33
+ $(PYTHON) -m mypy src
34
+
35
+ demo: ## pip-only, offline: honest receipt verifies, tampers fail, sample swap caught (in memory)
36
+ PYTHONPATH=src $(PYTHON) -m proofbundle.cli demo
37
+
38
+ tamper-demo: ## the demo with an exit-code contract (fails if any guarantee breaks)
39
+ bash scripts/demo_tamper.sh
40
+
41
+ persample-demo: ## offline forced-random-sample audit walkthrough
42
+ $(PYTHON) examples/persample_audit.py
43
+
44
+ full-demo: ## real eval logs -> signed receipts -> verified OK (needs [eval,inspect] extras)
45
+ bash scripts/demo.sh
46
+
47
+ mutation: ## anti-Goodhart gate: the tests must KILL broken implementations (needs a source checkout: it walks the tracked file list)
48
+ @if [ -d tools ] && [ -d .github ]; then $(PYTHON) scripts/mutation_check.py; \
49
+ else $(CHECKOUT_FEHLT); fi
50
+
51
+ coverage: ## line coverage of the core over the test suite (needs `pip install coverage`)
52
+ $(PYTHON) -m coverage run -m pytest -q
53
+ $(PYTHON) -m coverage report -m --include="src/proofbundle/*"
54
+
55
+ examples: ## run every offline example (those without optional extras)
56
+ @for f in examples/make_example.py examples/lm_eval_receipt.py examples/eee_receipt.py \
57
+ examples/intoto_dsse_export.py examples/checkpoint_example.py \
58
+ examples/tlog_proof_example.py examples/rekor_interop.py \
59
+ examples/persample_audit.py; do \
60
+ echo "== $$f =="; PYTHONPATH=src $(PYTHON) $$f || exit 1; done
61
+
62
+ conformance: ## offline conformance corpus (anchor sub-checks need the [anchors] extra)
63
+ PYTHONPATH=src $(PYTHON) conformance/run_conformance.py
64
+
65
+ conformance-crossimpl: ## cross-impl acceptance gate: the independent Rust second-verifier must AGREE with Python over the verifier core (needs a source checkout AND cargo; #55 S2)
66
+ @if [ -d tools ] && [ -d .github ]; then \
67
+ ( cd tools/pb_verify_rs && cargo build --release ) && \
68
+ PYTHONPATH=src $(PYTHON) tools/pb_verify_rs/crosscheck.py; \
69
+ else $(CHECKOUT_FEHLT); fi
70
+
71
+ all: lint typecheck test ## needs ruff + mypy; from the shipped package run `make test` alone
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: proofbundle
3
- Version: 4.0.0
3
+ Version: 5.1.0
4
4
  Summary: Emit and verify portable cryptographic evidence bundles, offline: Ed25519 + RFC 6962 Merkle + optional SD-JWT.
5
5
  Author: Konrad Gruszka
6
6
  License: MIT
@@ -51,7 +51,7 @@ Requires-Dist: jsonschema>=4; extra == "test"
51
51
  Requires-Dist: sd-jwt>=0.10; extra == "test"
52
52
  Requires-Dist: rfc8785>=0.1.4; extra == "test"
53
53
  Provides-Extra: inspect
54
- Requires-Dist: inspect_ai<0.4,>=0.3.112; extra == "inspect"
54
+ Requires-Dist: inspect_ai<=0.3.261,>=0.3.112; extra == "inspect"
55
55
  Provides-Extra: dev
56
56
  Requires-Dist: pytest>=7; extra == "dev"
57
57
  Requires-Dist: ruff<0.17,>=0.5; extra == "dev"
@@ -62,7 +62,7 @@ Requires-Dist: hypothesis>=6; extra == "dev"
62
62
  Requires-Dist: rfc8785>=0.1.4; extra == "dev"
63
63
  Requires-Dist: sd-jwt>=0.10; extra == "dev"
64
64
  Requires-Dist: PyYAML>=6; extra == "dev"
65
- Requires-Dist: inspect_ai<0.4,>=0.3.112; extra == "dev"
65
+ Requires-Dist: inspect_ai<=0.3.261,>=0.3.112; extra == "dev"
66
66
  Dynamic: license-file
67
67
 
68
68
  <div align="center">
@@ -74,12 +74,6 @@ Dynamic: license-file
74
74
 
75
75
  <h1>proofbundle</h1>
76
76
 
77
- **AI eval results need receipts.**
78
-
79
- Turn an AI evaluation result into one portable, offline-verifiable receipt. It proves *who signed
80
- these exact bytes* and *that nothing changed since* — not that the number is true. Ed25519 + RFC 6962
81
- Merkle, one file, no server, no network.
82
-
83
77
  [![CI](https://github.com/b7n0de/proofbundle/actions/workflows/ci.yml/badge.svg)](https://github.com/b7n0de/proofbundle/actions/workflows/ci.yml)
84
78
  [![demo reproducible](https://github.com/b7n0de/proofbundle/actions/workflows/demo-reproducible.yml/badge.svg)](https://github.com/b7n0de/proofbundle/actions/workflows/demo-reproducible.yml)
85
79
  [![PyPI](https://img.shields.io/pypi/v/proofbundle.svg)](https://pypi.org/project/proofbundle/)
@@ -90,10 +84,48 @@ Merkle, one file, no server, no network.
90
84
 
91
85
  Scorecard **6.5/10** — [what the four zeros mean, in one sentence each](#what-the-scorecard-badge-says-including-the-parts-that-are-low)
92
86
 
87
+ **AI eval results need receipts.**
88
+
89
+ Turn an AI evaluation result into one portable, offline-verifiable receipt. It proves *who signed
90
+ these exact bytes* and *that nothing changed since* — not that the number is true. Ed25519 + RFC 6962
91
+ Merkle, one file, no server, no network.
92
+
93
93
  **Reviewing this for adoption?** Start with the 30-minute adversarial audit path: **[docs/REVIEWERS.md](https://github.com/b7n0de/proofbundle/blob/main/docs/REVIEWERS.md)**.
94
94
 
95
95
  </div>
96
96
 
97
+ ## Install
98
+
99
+ ```bash
100
+ pip install proofbundle # core: offline verify + plain emit (two deps: cryptography, rfc8785)
101
+ pip install "proofbundle[eval]" # + eval receipts, prereg, and the demo (RFC 8785 JCS canonicalizer)
102
+ pip install "proofbundle[inspect]" # inspect_ai adapter + hook
103
+ pip install "proofbundle[pq]" # verify ML-DSA-44 (post-quantum) witness cosignatures
104
+ ```
105
+
106
+ Requires Python 3.10+. The verify path never rolls its own crypto — Ed25519 comes from
107
+ `cryptography`; Merkle hashing is RFC 6962.
108
+
109
+ ## 60-second try (offline)
110
+
111
+ ```bash
112
+ pip install "proofbundle[eval]"
113
+ proofbundle demo # honest receipt => OK, six tampers each => FAILED, sample swap caught
114
+ ```
115
+
116
+ The demo runs entirely in memory and exits non-zero if any tamper slips through, so it doubles as a
117
+ self-test.
118
+
119
+ ```bash
120
+ # verify a real hosted receipt without writing any code — the verify runs fully offline:
121
+ curl -fsSL https://raw.githubusercontent.com/b7n0de/proofbundle/main/examples/example_bundle.json -o receipt.json
122
+ proofbundle verify receipt.json # CRYPTO: OK (exit 0 ok · 1 fail · 2 malformed · 3 policy)
123
+ ```
124
+
125
+ Emit your own receipt, apply a trust policy, start from a shipped template, or run the Inspect-native
126
+ path (METR Task Standard / UK-AISI ecosystem, mockllm, no API key): **[docs/DEMO.md](https://github.com/b7n0de/proofbundle/blob/main/docs/DEMO.md)** ·
127
+ Inspect walkthrough **[docs/INSPECT_HAPPY_PATH.md](https://github.com/b7n0de/proofbundle/blob/main/docs/INSPECT_HAPPY_PATH.md)**.
128
+
97
129
  ## What the Scorecard badge says, including the parts that are low
98
130
 
99
131
  The badge is live, so it will move. Measured 2026-08-07, re-measured 2026-08-10 with identical
@@ -128,26 +160,6 @@ measured and not yet addressed.
128
160
  Publishing a middling number with its causes is the point. A project that sells evidence cannot
129
161
  withhold its own.
130
162
 
131
- ## 60-second try (offline)
132
-
133
- ```bash
134
- pip install "proofbundle[eval]"
135
- proofbundle demo # honest receipt => OK, six tampers each => FAILED, sample swap caught
136
- ```
137
-
138
- The demo runs entirely in memory and exits non-zero if any tamper slips through, so it doubles as a
139
- self-test.
140
-
141
- ```bash
142
- # verify a real hosted receipt without writing any code — the verify runs fully offline:
143
- curl -fsSL https://raw.githubusercontent.com/b7n0de/proofbundle/main/examples/example_bundle.json -o receipt.json
144
- proofbundle verify receipt.json # CRYPTO: OK (exit 0 ok · 1 fail · 2 malformed · 3 policy)
145
- ```
146
-
147
- Emit your own receipt, apply a trust policy, start from a shipped template, or run the Inspect-native
148
- path (METR Task Standard / UK-AISI ecosystem, mockllm, no API key): **[docs/DEMO.md](https://github.com/b7n0de/proofbundle/blob/main/docs/DEMO.md)** ·
149
- Inspect walkthrough **[docs/INSPECT_HAPPY_PATH.md](https://github.com/b7n0de/proofbundle/blob/main/docs/INSPECT_HAPPY_PATH.md)**.
150
-
151
163
  ## The problem
152
164
 
153
165
  Every AI eval number you read — a safety benchmark, a capability score, a leaderboard entry — is an
@@ -236,18 +248,6 @@ version history (see also [CHANGELOG.md](https://github.com/b7n0de/proofbundle/b
236
248
  separation (executor ≠ decision maker) — never a claim that the decision was correct.
237
249
  [decision-receipt.md](https://github.com/b7n0de/proofbundle/blob/main/docs/predicates/decision-receipt.md) · [action-outcome.md](https://github.com/b7n0de/proofbundle/blob/main/docs/predicates/action-outcome.md)
238
250
 
239
- ## Install
240
-
241
- ```bash
242
- pip install proofbundle # core: offline verify + plain emit (two deps: cryptography, rfc8785)
243
- pip install "proofbundle[eval]" # + eval receipts, prereg, and the demo (RFC 8785 JCS canonicalizer)
244
- pip install "proofbundle[inspect]" # inspect_ai adapter + hook
245
- pip install "proofbundle[pq]" # verify ML-DSA-44 (post-quantum) witness cosignatures
246
- ```
247
-
248
- Requires Python 3.10+. The verify path never rolls its own crypto — Ed25519 comes from
249
- `cryptography`; Merkle hashing is RFC 6962.
250
-
251
251
  ## Post-quantum posture (honest)
252
252
 
253
253
  proofbundle is **not** "quantum-safe" as a whole. Its hash-based layers (SHA-256, RFC 6962 / 9162
@@ -264,7 +264,8 @@ a post-quantum *payload* signature is on the roadmap. Detail: [docs/ANCHORS.md](
264
264
  If proofbundle helped your evaluation pipeline, please cite it. Machine-readable metadata is in
265
265
  [`CITATION.cff`](https://github.com/b7n0de/proofbundle/blob/main/CITATION.cff). The archival software record is on Zenodo under concept
266
266
  DOI [10.5281/zenodo.21110642](https://doi.org/10.5281/zenodo.21110642); the Technical Note (design write-up) under concept DOI
267
- [10.5281/zenodo.21230466](https://doi.org/10.5281/zenodo.21230466), also linked from [b7n0de.com/proofbundle](https://b7n0de.com/proofbundle).
267
+ [10.5281/zenodo.21230466](https://doi.org/10.5281/zenodo.21230466) version 4.0.0 of the Note is
268
+ [10.5281/zenodo.22004295](https://doi.org/10.5281/zenodo.22004295) — also linked from [b7n0de.com/proofbundle](https://b7n0de.com/proofbundle).
268
269
 
269
270
  ## Docs
270
271
 
@@ -7,12 +7,6 @@
7
7
 
8
8
  <h1>proofbundle</h1>
9
9
 
10
- **AI eval results need receipts.**
11
-
12
- Turn an AI evaluation result into one portable, offline-verifiable receipt. It proves *who signed
13
- these exact bytes* and *that nothing changed since* — not that the number is true. Ed25519 + RFC 6962
14
- Merkle, one file, no server, no network.
15
-
16
10
  [![CI](https://github.com/b7n0de/proofbundle/actions/workflows/ci.yml/badge.svg)](https://github.com/b7n0de/proofbundle/actions/workflows/ci.yml)
17
11
  [![demo reproducible](https://github.com/b7n0de/proofbundle/actions/workflows/demo-reproducible.yml/badge.svg)](https://github.com/b7n0de/proofbundle/actions/workflows/demo-reproducible.yml)
18
12
  [![PyPI](https://img.shields.io/pypi/v/proofbundle.svg)](https://pypi.org/project/proofbundle/)
@@ -23,10 +17,48 @@ Merkle, one file, no server, no network.
23
17
 
24
18
  Scorecard **6.5/10** — [what the four zeros mean, in one sentence each](#what-the-scorecard-badge-says-including-the-parts-that-are-low)
25
19
 
20
+ **AI eval results need receipts.**
21
+
22
+ Turn an AI evaluation result into one portable, offline-verifiable receipt. It proves *who signed
23
+ these exact bytes* and *that nothing changed since* — not that the number is true. Ed25519 + RFC 6962
24
+ Merkle, one file, no server, no network.
25
+
26
26
  **Reviewing this for adoption?** Start with the 30-minute adversarial audit path: **[docs/REVIEWERS.md](https://github.com/b7n0de/proofbundle/blob/main/docs/REVIEWERS.md)**.
27
27
 
28
28
  </div>
29
29
 
30
+ ## Install
31
+
32
+ ```bash
33
+ pip install proofbundle # core: offline verify + plain emit (two deps: cryptography, rfc8785)
34
+ pip install "proofbundle[eval]" # + eval receipts, prereg, and the demo (RFC 8785 JCS canonicalizer)
35
+ pip install "proofbundle[inspect]" # inspect_ai adapter + hook
36
+ pip install "proofbundle[pq]" # verify ML-DSA-44 (post-quantum) witness cosignatures
37
+ ```
38
+
39
+ Requires Python 3.10+. The verify path never rolls its own crypto — Ed25519 comes from
40
+ `cryptography`; Merkle hashing is RFC 6962.
41
+
42
+ ## 60-second try (offline)
43
+
44
+ ```bash
45
+ pip install "proofbundle[eval]"
46
+ proofbundle demo # honest receipt => OK, six tampers each => FAILED, sample swap caught
47
+ ```
48
+
49
+ The demo runs entirely in memory and exits non-zero if any tamper slips through, so it doubles as a
50
+ self-test.
51
+
52
+ ```bash
53
+ # verify a real hosted receipt without writing any code — the verify runs fully offline:
54
+ curl -fsSL https://raw.githubusercontent.com/b7n0de/proofbundle/main/examples/example_bundle.json -o receipt.json
55
+ proofbundle verify receipt.json # CRYPTO: OK (exit 0 ok · 1 fail · 2 malformed · 3 policy)
56
+ ```
57
+
58
+ Emit your own receipt, apply a trust policy, start from a shipped template, or run the Inspect-native
59
+ path (METR Task Standard / UK-AISI ecosystem, mockllm, no API key): **[docs/DEMO.md](https://github.com/b7n0de/proofbundle/blob/main/docs/DEMO.md)** ·
60
+ Inspect walkthrough **[docs/INSPECT_HAPPY_PATH.md](https://github.com/b7n0de/proofbundle/blob/main/docs/INSPECT_HAPPY_PATH.md)**.
61
+
30
62
  ## What the Scorecard badge says, including the parts that are low
31
63
 
32
64
  The badge is live, so it will move. Measured 2026-08-07, re-measured 2026-08-10 with identical
@@ -61,26 +93,6 @@ measured and not yet addressed.
61
93
  Publishing a middling number with its causes is the point. A project that sells evidence cannot
62
94
  withhold its own.
63
95
 
64
- ## 60-second try (offline)
65
-
66
- ```bash
67
- pip install "proofbundle[eval]"
68
- proofbundle demo # honest receipt => OK, six tampers each => FAILED, sample swap caught
69
- ```
70
-
71
- The demo runs entirely in memory and exits non-zero if any tamper slips through, so it doubles as a
72
- self-test.
73
-
74
- ```bash
75
- # verify a real hosted receipt without writing any code — the verify runs fully offline:
76
- curl -fsSL https://raw.githubusercontent.com/b7n0de/proofbundle/main/examples/example_bundle.json -o receipt.json
77
- proofbundle verify receipt.json # CRYPTO: OK (exit 0 ok · 1 fail · 2 malformed · 3 policy)
78
- ```
79
-
80
- Emit your own receipt, apply a trust policy, start from a shipped template, or run the Inspect-native
81
- path (METR Task Standard / UK-AISI ecosystem, mockllm, no API key): **[docs/DEMO.md](https://github.com/b7n0de/proofbundle/blob/main/docs/DEMO.md)** ·
82
- Inspect walkthrough **[docs/INSPECT_HAPPY_PATH.md](https://github.com/b7n0de/proofbundle/blob/main/docs/INSPECT_HAPPY_PATH.md)**.
83
-
84
96
  ## The problem
85
97
 
86
98
  Every AI eval number you read — a safety benchmark, a capability score, a leaderboard entry — is an
@@ -169,18 +181,6 @@ version history (see also [CHANGELOG.md](https://github.com/b7n0de/proofbundle/b
169
181
  separation (executor ≠ decision maker) — never a claim that the decision was correct.
170
182
  [decision-receipt.md](https://github.com/b7n0de/proofbundle/blob/main/docs/predicates/decision-receipt.md) · [action-outcome.md](https://github.com/b7n0de/proofbundle/blob/main/docs/predicates/action-outcome.md)
171
183
 
172
- ## Install
173
-
174
- ```bash
175
- pip install proofbundle # core: offline verify + plain emit (two deps: cryptography, rfc8785)
176
- pip install "proofbundle[eval]" # + eval receipts, prereg, and the demo (RFC 8785 JCS canonicalizer)
177
- pip install "proofbundle[inspect]" # inspect_ai adapter + hook
178
- pip install "proofbundle[pq]" # verify ML-DSA-44 (post-quantum) witness cosignatures
179
- ```
180
-
181
- Requires Python 3.10+. The verify path never rolls its own crypto — Ed25519 comes from
182
- `cryptography`; Merkle hashing is RFC 6962.
183
-
184
184
  ## Post-quantum posture (honest)
185
185
 
186
186
  proofbundle is **not** "quantum-safe" as a whole. Its hash-based layers (SHA-256, RFC 6962 / 9162
@@ -197,7 +197,8 @@ a post-quantum *payload* signature is on the roadmap. Detail: [docs/ANCHORS.md](
197
197
  If proofbundle helped your evaluation pipeline, please cite it. Machine-readable metadata is in
198
198
  [`CITATION.cff`](https://github.com/b7n0de/proofbundle/blob/main/CITATION.cff). The archival software record is on Zenodo under concept
199
199
  DOI [10.5281/zenodo.21110642](https://doi.org/10.5281/zenodo.21110642); the Technical Note (design write-up) under concept DOI
200
- [10.5281/zenodo.21230466](https://doi.org/10.5281/zenodo.21230466), also linked from [b7n0de.com/proofbundle](https://b7n0de.com/proofbundle).
200
+ [10.5281/zenodo.21230466](https://doi.org/10.5281/zenodo.21230466) version 4.0.0 of the Note is
201
+ [10.5281/zenodo.22004295](https://doi.org/10.5281/zenodo.22004295) — also linked from [b7n0de.com/proofbundle](https://b7n0de.com/proofbundle).
201
202
 
202
203
  ## Docs
203
204