settld 0.1.0

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 (863) hide show
  1. package/Dockerfile +45 -0
  2. package/README.md +150 -0
  3. package/SETTLD_VERSION +1 -0
  4. package/bin/settld.js +212 -0
  5. package/conformance/README.md +14 -0
  6. package/conformance/kernel-v0/README.md +60 -0
  7. package/conformance/kernel-v0/cases.json +19 -0
  8. package/conformance/kernel-v0/run.mjs +830 -0
  9. package/conformance/v1/README.md +77 -0
  10. package/conformance/v1/bundles/closepack/nonstrict-pass-missing-sla-acceptance/attestation/bundle_head_attestation.json +1 -0
  11. package/conformance/v1/bundles/closepack/nonstrict-pass-missing-sla-acceptance/evidence/evidence_index.json +1 -0
  12. package/conformance/v1/bundles/closepack/nonstrict-pass-missing-sla-acceptance/governance/policy.json +1 -0
  13. package/conformance/v1/bundles/closepack/nonstrict-pass-missing-sla-acceptance/governance/revocations.json +1 -0
  14. package/conformance/v1/bundles/closepack/nonstrict-pass-missing-sla-acceptance/manifest.json +1 -0
  15. package/conformance/v1/bundles/closepack/nonstrict-pass-missing-sla-acceptance/payload/invoice_bundle/attestation/bundle_head_attestation.json +1 -0
  16. package/conformance/v1/bundles/closepack/nonstrict-pass-missing-sla-acceptance/payload/invoice_bundle/governance/policy.json +1 -0
  17. package/conformance/v1/bundles/closepack/nonstrict-pass-missing-sla-acceptance/payload/invoice_bundle/governance/revocations.json +1 -0
  18. package/conformance/v1/bundles/closepack/nonstrict-pass-missing-sla-acceptance/payload/invoice_bundle/invoice/invoice_claim.json +1 -0
  19. package/conformance/v1/bundles/closepack/nonstrict-pass-missing-sla-acceptance/payload/invoice_bundle/manifest.json +1 -0
  20. package/conformance/v1/bundles/closepack/nonstrict-pass-missing-sla-acceptance/payload/invoice_bundle/metering/metering_report.json +1 -0
  21. package/conformance/v1/bundles/closepack/nonstrict-pass-missing-sla-acceptance/payload/invoice_bundle/payload/job_proof_bundle/attestation/bundle_head_attestation.json +1 -0
  22. package/conformance/v1/bundles/closepack/nonstrict-pass-missing-sla-acceptance/payload/invoice_bundle/payload/job_proof_bundle/events/events.jsonl +1 -0
  23. package/conformance/v1/bundles/closepack/nonstrict-pass-missing-sla-acceptance/payload/invoice_bundle/payload/job_proof_bundle/events/payload_material.jsonl +1 -0
  24. package/conformance/v1/bundles/closepack/nonstrict-pass-missing-sla-acceptance/payload/invoice_bundle/payload/job_proof_bundle/governance/global/events/events.jsonl +1 -0
  25. package/conformance/v1/bundles/closepack/nonstrict-pass-missing-sla-acceptance/payload/invoice_bundle/payload/job_proof_bundle/governance/global/events/payload_material.jsonl +1 -0
  26. package/conformance/v1/bundles/closepack/nonstrict-pass-missing-sla-acceptance/payload/invoice_bundle/payload/job_proof_bundle/governance/global/snapshot.json +1 -0
  27. package/conformance/v1/bundles/closepack/nonstrict-pass-missing-sla-acceptance/payload/invoice_bundle/payload/job_proof_bundle/governance/policy.json +1 -0
  28. package/conformance/v1/bundles/closepack/nonstrict-pass-missing-sla-acceptance/payload/invoice_bundle/payload/job_proof_bundle/governance/revocations.json +1 -0
  29. package/conformance/v1/bundles/closepack/nonstrict-pass-missing-sla-acceptance/payload/invoice_bundle/payload/job_proof_bundle/governance/tenant/events/events.jsonl +0 -0
  30. package/conformance/v1/bundles/closepack/nonstrict-pass-missing-sla-acceptance/payload/invoice_bundle/payload/job_proof_bundle/governance/tenant/events/payload_material.jsonl +0 -0
  31. package/conformance/v1/bundles/closepack/nonstrict-pass-missing-sla-acceptance/payload/invoice_bundle/payload/job_proof_bundle/governance/tenant/snapshot.json +1 -0
  32. package/conformance/v1/bundles/closepack/nonstrict-pass-missing-sla-acceptance/payload/invoice_bundle/payload/job_proof_bundle/job/snapshot.json +1 -0
  33. package/conformance/v1/bundles/closepack/nonstrict-pass-missing-sla-acceptance/payload/invoice_bundle/payload/job_proof_bundle/keys/public_keys.json +1 -0
  34. package/conformance/v1/bundles/closepack/nonstrict-pass-missing-sla-acceptance/payload/invoice_bundle/payload/job_proof_bundle/manifest.json +1 -0
  35. package/conformance/v1/bundles/closepack/nonstrict-pass-missing-sla-acceptance/payload/invoice_bundle/payload/job_proof_bundle/verify/report.json +1 -0
  36. package/conformance/v1/bundles/closepack/nonstrict-pass-missing-sla-acceptance/payload/invoice_bundle/payload/job_proof_bundle/verify/verification_report.json +1 -0
  37. package/conformance/v1/bundles/closepack/nonstrict-pass-missing-sla-acceptance/payload/invoice_bundle/pricing/pricing_matrix.json +1 -0
  38. package/conformance/v1/bundles/closepack/nonstrict-pass-missing-sla-acceptance/payload/invoice_bundle/pricing/pricing_matrix_signatures.json +1 -0
  39. package/conformance/v1/bundles/closepack/nonstrict-pass-missing-sla-acceptance/payload/invoice_bundle/settld.json +1 -0
  40. package/conformance/v1/bundles/closepack/nonstrict-pass-missing-sla-acceptance/payload/invoice_bundle/verify/verification_report.json +1 -0
  41. package/conformance/v1/bundles/closepack/nonstrict-pass-missing-sla-acceptance/settld.json +1 -0
  42. package/conformance/v1/bundles/closepack/nonstrict-pass-missing-sla-acceptance/verify/verification_report.json +1 -0
  43. package/conformance/v1/bundles/closepack/strict-fail-embedded-invoice-fails/acceptance/acceptance_criteria.json +1 -0
  44. package/conformance/v1/bundles/closepack/strict-fail-embedded-invoice-fails/acceptance/acceptance_evaluation.json +1 -0
  45. package/conformance/v1/bundles/closepack/strict-fail-embedded-invoice-fails/attestation/bundle_head_attestation.json +1 -0
  46. package/conformance/v1/bundles/closepack/strict-fail-embedded-invoice-fails/evidence/evidence_index.json +1 -0
  47. package/conformance/v1/bundles/closepack/strict-fail-embedded-invoice-fails/governance/policy.json +1 -0
  48. package/conformance/v1/bundles/closepack/strict-fail-embedded-invoice-fails/governance/revocations.json +1 -0
  49. package/conformance/v1/bundles/closepack/strict-fail-embedded-invoice-fails/manifest.json +1 -0
  50. package/conformance/v1/bundles/closepack/strict-fail-embedded-invoice-fails/payload/invoice_bundle/attestation/bundle_head_attestation.json +1 -0
  51. package/conformance/v1/bundles/closepack/strict-fail-embedded-invoice-fails/payload/invoice_bundle/governance/policy.json +1 -0
  52. package/conformance/v1/bundles/closepack/strict-fail-embedded-invoice-fails/payload/invoice_bundle/governance/revocations.json +1 -0
  53. package/conformance/v1/bundles/closepack/strict-fail-embedded-invoice-fails/payload/invoice_bundle/invoice/invoice_claim.json +1 -0
  54. package/conformance/v1/bundles/closepack/strict-fail-embedded-invoice-fails/payload/invoice_bundle/manifest.json +1 -0
  55. package/conformance/v1/bundles/closepack/strict-fail-embedded-invoice-fails/payload/invoice_bundle/metering/metering_report.json +1 -0
  56. package/conformance/v1/bundles/closepack/strict-fail-embedded-invoice-fails/payload/invoice_bundle/payload/job_proof_bundle/attestation/bundle_head_attestation.json +1 -0
  57. package/conformance/v1/bundles/closepack/strict-fail-embedded-invoice-fails/payload/invoice_bundle/payload/job_proof_bundle/events/events.jsonl +1 -0
  58. package/conformance/v1/bundles/closepack/strict-fail-embedded-invoice-fails/payload/invoice_bundle/payload/job_proof_bundle/events/payload_material.jsonl +1 -0
  59. package/conformance/v1/bundles/closepack/strict-fail-embedded-invoice-fails/payload/invoice_bundle/payload/job_proof_bundle/governance/global/events/events.jsonl +1 -0
  60. package/conformance/v1/bundles/closepack/strict-fail-embedded-invoice-fails/payload/invoice_bundle/payload/job_proof_bundle/governance/global/events/payload_material.jsonl +1 -0
  61. package/conformance/v1/bundles/closepack/strict-fail-embedded-invoice-fails/payload/invoice_bundle/payload/job_proof_bundle/governance/global/snapshot.json +1 -0
  62. package/conformance/v1/bundles/closepack/strict-fail-embedded-invoice-fails/payload/invoice_bundle/payload/job_proof_bundle/governance/policy.json +1 -0
  63. package/conformance/v1/bundles/closepack/strict-fail-embedded-invoice-fails/payload/invoice_bundle/payload/job_proof_bundle/governance/revocations.json +1 -0
  64. package/conformance/v1/bundles/closepack/strict-fail-embedded-invoice-fails/payload/invoice_bundle/payload/job_proof_bundle/governance/tenant/events/events.jsonl +0 -0
  65. package/conformance/v1/bundles/closepack/strict-fail-embedded-invoice-fails/payload/invoice_bundle/payload/job_proof_bundle/governance/tenant/events/payload_material.jsonl +0 -0
  66. package/conformance/v1/bundles/closepack/strict-fail-embedded-invoice-fails/payload/invoice_bundle/payload/job_proof_bundle/governance/tenant/snapshot.json +1 -0
  67. package/conformance/v1/bundles/closepack/strict-fail-embedded-invoice-fails/payload/invoice_bundle/payload/job_proof_bundle/job/snapshot.json +1 -0
  68. package/conformance/v1/bundles/closepack/strict-fail-embedded-invoice-fails/payload/invoice_bundle/payload/job_proof_bundle/keys/public_keys.json +1 -0
  69. package/conformance/v1/bundles/closepack/strict-fail-embedded-invoice-fails/payload/invoice_bundle/payload/job_proof_bundle/manifest.json +1 -0
  70. package/conformance/v1/bundles/closepack/strict-fail-embedded-invoice-fails/payload/invoice_bundle/payload/job_proof_bundle/verify/report.json +1 -0
  71. package/conformance/v1/bundles/closepack/strict-fail-embedded-invoice-fails/payload/invoice_bundle/payload/job_proof_bundle/verify/verification_report.json +1 -0
  72. package/conformance/v1/bundles/closepack/strict-fail-embedded-invoice-fails/payload/invoice_bundle/pricing/pricing_matrix.json +1 -0
  73. package/conformance/v1/bundles/closepack/strict-fail-embedded-invoice-fails/payload/invoice_bundle/pricing/pricing_matrix_signatures.json +1 -0
  74. package/conformance/v1/bundles/closepack/strict-fail-embedded-invoice-fails/payload/invoice_bundle/settld.json +1 -0
  75. package/conformance/v1/bundles/closepack/strict-fail-embedded-invoice-fails/payload/invoice_bundle/verify/verification_report.json +1 -0
  76. package/conformance/v1/bundles/closepack/strict-fail-embedded-invoice-fails/settld.json +1 -0
  77. package/conformance/v1/bundles/closepack/strict-fail-embedded-invoice-fails/sla/sla_definition.json +1 -0
  78. package/conformance/v1/bundles/closepack/strict-fail-embedded-invoice-fails/sla/sla_evaluation.json +1 -0
  79. package/conformance/v1/bundles/closepack/strict-fail-embedded-invoice-fails/verify/verification_report.json +1 -0
  80. package/conformance/v1/bundles/closepack/strict-fail-evidence-index-mismatch/acceptance/acceptance_criteria.json +1 -0
  81. package/conformance/v1/bundles/closepack/strict-fail-evidence-index-mismatch/acceptance/acceptance_evaluation.json +1 -0
  82. package/conformance/v1/bundles/closepack/strict-fail-evidence-index-mismatch/attestation/bundle_head_attestation.json +1 -0
  83. package/conformance/v1/bundles/closepack/strict-fail-evidence-index-mismatch/evidence/evidence_index.json +1 -0
  84. package/conformance/v1/bundles/closepack/strict-fail-evidence-index-mismatch/governance/policy.json +1 -0
  85. package/conformance/v1/bundles/closepack/strict-fail-evidence-index-mismatch/governance/revocations.json +1 -0
  86. package/conformance/v1/bundles/closepack/strict-fail-evidence-index-mismatch/manifest.json +1 -0
  87. package/conformance/v1/bundles/closepack/strict-fail-evidence-index-mismatch/payload/invoice_bundle/attestation/bundle_head_attestation.json +1 -0
  88. package/conformance/v1/bundles/closepack/strict-fail-evidence-index-mismatch/payload/invoice_bundle/governance/policy.json +1 -0
  89. package/conformance/v1/bundles/closepack/strict-fail-evidence-index-mismatch/payload/invoice_bundle/governance/revocations.json +1 -0
  90. package/conformance/v1/bundles/closepack/strict-fail-evidence-index-mismatch/payload/invoice_bundle/invoice/invoice_claim.json +1 -0
  91. package/conformance/v1/bundles/closepack/strict-fail-evidence-index-mismatch/payload/invoice_bundle/manifest.json +1 -0
  92. package/conformance/v1/bundles/closepack/strict-fail-evidence-index-mismatch/payload/invoice_bundle/metering/metering_report.json +1 -0
  93. package/conformance/v1/bundles/closepack/strict-fail-evidence-index-mismatch/payload/invoice_bundle/payload/job_proof_bundle/attestation/bundle_head_attestation.json +1 -0
  94. package/conformance/v1/bundles/closepack/strict-fail-evidence-index-mismatch/payload/invoice_bundle/payload/job_proof_bundle/events/events.jsonl +1 -0
  95. package/conformance/v1/bundles/closepack/strict-fail-evidence-index-mismatch/payload/invoice_bundle/payload/job_proof_bundle/events/payload_material.jsonl +1 -0
  96. package/conformance/v1/bundles/closepack/strict-fail-evidence-index-mismatch/payload/invoice_bundle/payload/job_proof_bundle/governance/global/events/events.jsonl +1 -0
  97. package/conformance/v1/bundles/closepack/strict-fail-evidence-index-mismatch/payload/invoice_bundle/payload/job_proof_bundle/governance/global/events/payload_material.jsonl +1 -0
  98. package/conformance/v1/bundles/closepack/strict-fail-evidence-index-mismatch/payload/invoice_bundle/payload/job_proof_bundle/governance/global/snapshot.json +1 -0
  99. package/conformance/v1/bundles/closepack/strict-fail-evidence-index-mismatch/payload/invoice_bundle/payload/job_proof_bundle/governance/policy.json +1 -0
  100. package/conformance/v1/bundles/closepack/strict-fail-evidence-index-mismatch/payload/invoice_bundle/payload/job_proof_bundle/governance/revocations.json +1 -0
  101. package/conformance/v1/bundles/closepack/strict-fail-evidence-index-mismatch/payload/invoice_bundle/payload/job_proof_bundle/governance/tenant/events/events.jsonl +0 -0
  102. package/conformance/v1/bundles/closepack/strict-fail-evidence-index-mismatch/payload/invoice_bundle/payload/job_proof_bundle/governance/tenant/events/payload_material.jsonl +0 -0
  103. package/conformance/v1/bundles/closepack/strict-fail-evidence-index-mismatch/payload/invoice_bundle/payload/job_proof_bundle/governance/tenant/snapshot.json +1 -0
  104. package/conformance/v1/bundles/closepack/strict-fail-evidence-index-mismatch/payload/invoice_bundle/payload/job_proof_bundle/job/snapshot.json +1 -0
  105. package/conformance/v1/bundles/closepack/strict-fail-evidence-index-mismatch/payload/invoice_bundle/payload/job_proof_bundle/keys/public_keys.json +1 -0
  106. package/conformance/v1/bundles/closepack/strict-fail-evidence-index-mismatch/payload/invoice_bundle/payload/job_proof_bundle/manifest.json +1 -0
  107. package/conformance/v1/bundles/closepack/strict-fail-evidence-index-mismatch/payload/invoice_bundle/payload/job_proof_bundle/verify/report.json +1 -0
  108. package/conformance/v1/bundles/closepack/strict-fail-evidence-index-mismatch/payload/invoice_bundle/payload/job_proof_bundle/verify/verification_report.json +1 -0
  109. package/conformance/v1/bundles/closepack/strict-fail-evidence-index-mismatch/payload/invoice_bundle/pricing/pricing_matrix.json +1 -0
  110. package/conformance/v1/bundles/closepack/strict-fail-evidence-index-mismatch/payload/invoice_bundle/pricing/pricing_matrix_signatures.json +1 -0
  111. package/conformance/v1/bundles/closepack/strict-fail-evidence-index-mismatch/payload/invoice_bundle/settld.json +1 -0
  112. package/conformance/v1/bundles/closepack/strict-fail-evidence-index-mismatch/payload/invoice_bundle/verify/verification_report.json +1 -0
  113. package/conformance/v1/bundles/closepack/strict-fail-evidence-index-mismatch/settld.json +1 -0
  114. package/conformance/v1/bundles/closepack/strict-fail-evidence-index-mismatch/sla/sla_definition.json +1 -0
  115. package/conformance/v1/bundles/closepack/strict-fail-evidence-index-mismatch/sla/sla_evaluation.json +1 -0
  116. package/conformance/v1/bundles/closepack/strict-fail-evidence-index-mismatch/verify/verification_report.json +1 -0
  117. package/conformance/v1/bundles/closepack/strict-pass/acceptance/acceptance_criteria.json +1 -0
  118. package/conformance/v1/bundles/closepack/strict-pass/acceptance/acceptance_evaluation.json +1 -0
  119. package/conformance/v1/bundles/closepack/strict-pass/attestation/bundle_head_attestation.json +1 -0
  120. package/conformance/v1/bundles/closepack/strict-pass/evidence/evidence_index.json +1 -0
  121. package/conformance/v1/bundles/closepack/strict-pass/governance/policy.json +1 -0
  122. package/conformance/v1/bundles/closepack/strict-pass/governance/revocations.json +1 -0
  123. package/conformance/v1/bundles/closepack/strict-pass/manifest.json +1 -0
  124. package/conformance/v1/bundles/closepack/strict-pass/payload/invoice_bundle/attestation/bundle_head_attestation.json +1 -0
  125. package/conformance/v1/bundles/closepack/strict-pass/payload/invoice_bundle/governance/policy.json +1 -0
  126. package/conformance/v1/bundles/closepack/strict-pass/payload/invoice_bundle/governance/revocations.json +1 -0
  127. package/conformance/v1/bundles/closepack/strict-pass/payload/invoice_bundle/invoice/invoice_claim.json +1 -0
  128. package/conformance/v1/bundles/closepack/strict-pass/payload/invoice_bundle/manifest.json +1 -0
  129. package/conformance/v1/bundles/closepack/strict-pass/payload/invoice_bundle/metering/metering_report.json +1 -0
  130. package/conformance/v1/bundles/closepack/strict-pass/payload/invoice_bundle/payload/job_proof_bundle/attestation/bundle_head_attestation.json +1 -0
  131. package/conformance/v1/bundles/closepack/strict-pass/payload/invoice_bundle/payload/job_proof_bundle/events/events.jsonl +1 -0
  132. package/conformance/v1/bundles/closepack/strict-pass/payload/invoice_bundle/payload/job_proof_bundle/events/payload_material.jsonl +1 -0
  133. package/conformance/v1/bundles/closepack/strict-pass/payload/invoice_bundle/payload/job_proof_bundle/governance/global/events/events.jsonl +1 -0
  134. package/conformance/v1/bundles/closepack/strict-pass/payload/invoice_bundle/payload/job_proof_bundle/governance/global/events/payload_material.jsonl +1 -0
  135. package/conformance/v1/bundles/closepack/strict-pass/payload/invoice_bundle/payload/job_proof_bundle/governance/global/snapshot.json +1 -0
  136. package/conformance/v1/bundles/closepack/strict-pass/payload/invoice_bundle/payload/job_proof_bundle/governance/policy.json +1 -0
  137. package/conformance/v1/bundles/closepack/strict-pass/payload/invoice_bundle/payload/job_proof_bundle/governance/revocations.json +1 -0
  138. package/conformance/v1/bundles/closepack/strict-pass/payload/invoice_bundle/payload/job_proof_bundle/governance/tenant/events/events.jsonl +0 -0
  139. package/conformance/v1/bundles/closepack/strict-pass/payload/invoice_bundle/payload/job_proof_bundle/governance/tenant/events/payload_material.jsonl +0 -0
  140. package/conformance/v1/bundles/closepack/strict-pass/payload/invoice_bundle/payload/job_proof_bundle/governance/tenant/snapshot.json +1 -0
  141. package/conformance/v1/bundles/closepack/strict-pass/payload/invoice_bundle/payload/job_proof_bundle/job/snapshot.json +1 -0
  142. package/conformance/v1/bundles/closepack/strict-pass/payload/invoice_bundle/payload/job_proof_bundle/keys/public_keys.json +1 -0
  143. package/conformance/v1/bundles/closepack/strict-pass/payload/invoice_bundle/payload/job_proof_bundle/manifest.json +1 -0
  144. package/conformance/v1/bundles/closepack/strict-pass/payload/invoice_bundle/payload/job_proof_bundle/verify/report.json +1 -0
  145. package/conformance/v1/bundles/closepack/strict-pass/payload/invoice_bundle/payload/job_proof_bundle/verify/verification_report.json +1 -0
  146. package/conformance/v1/bundles/closepack/strict-pass/payload/invoice_bundle/pricing/pricing_matrix.json +1 -0
  147. package/conformance/v1/bundles/closepack/strict-pass/payload/invoice_bundle/pricing/pricing_matrix_signatures.json +1 -0
  148. package/conformance/v1/bundles/closepack/strict-pass/payload/invoice_bundle/settld.json +1 -0
  149. package/conformance/v1/bundles/closepack/strict-pass/payload/invoice_bundle/verify/verification_report.json +1 -0
  150. package/conformance/v1/bundles/closepack/strict-pass/settld.json +1 -0
  151. package/conformance/v1/bundles/closepack/strict-pass/sla/sla_definition.json +1 -0
  152. package/conformance/v1/bundles/closepack/strict-pass/sla/sla_evaluation.json +1 -0
  153. package/conformance/v1/bundles/closepack/strict-pass/verify/verification_report.json +1 -0
  154. package/conformance/v1/bundles/financepack/pass-with-tool-version-unknown-warning/attestation/bundle_head_attestation.json +1 -0
  155. package/conformance/v1/bundles/financepack/pass-with-tool-version-unknown-warning/finance/GLBatch.v1.json +1 -0
  156. package/conformance/v1/bundles/financepack/pass-with-tool-version-unknown-warning/finance/JournalCsv.v1.csv +2 -0
  157. package/conformance/v1/bundles/financepack/pass-with-tool-version-unknown-warning/finance/JournalCsv.v1.json +1 -0
  158. package/conformance/v1/bundles/financepack/pass-with-tool-version-unknown-warning/finance/reconcile.json +1 -0
  159. package/conformance/v1/bundles/financepack/pass-with-tool-version-unknown-warning/governance/policy.json +1 -0
  160. package/conformance/v1/bundles/financepack/pass-with-tool-version-unknown-warning/governance/revocations.json +1 -0
  161. package/conformance/v1/bundles/financepack/pass-with-tool-version-unknown-warning/manifest.json +1 -0
  162. package/conformance/v1/bundles/financepack/pass-with-tool-version-unknown-warning/month/attestation/bundle_head_attestation.json +1 -0
  163. package/conformance/v1/bundles/financepack/pass-with-tool-version-unknown-warning/month/events/events.jsonl +1 -0
  164. package/conformance/v1/bundles/financepack/pass-with-tool-version-unknown-warning/month/events/payload_material.jsonl +1 -0
  165. package/conformance/v1/bundles/financepack/pass-with-tool-version-unknown-warning/month/governance/global/events/events.jsonl +1 -0
  166. package/conformance/v1/bundles/financepack/pass-with-tool-version-unknown-warning/month/governance/global/events/payload_material.jsonl +1 -0
  167. package/conformance/v1/bundles/financepack/pass-with-tool-version-unknown-warning/month/governance/global/snapshot.json +1 -0
  168. package/conformance/v1/bundles/financepack/pass-with-tool-version-unknown-warning/month/governance/policy.json +1 -0
  169. package/conformance/v1/bundles/financepack/pass-with-tool-version-unknown-warning/month/governance/revocations.json +1 -0
  170. package/conformance/v1/bundles/financepack/pass-with-tool-version-unknown-warning/month/governance/tenant/events/events.jsonl +0 -0
  171. package/conformance/v1/bundles/financepack/pass-with-tool-version-unknown-warning/month/governance/tenant/events/payload_material.jsonl +0 -0
  172. package/conformance/v1/bundles/financepack/pass-with-tool-version-unknown-warning/month/governance/tenant/snapshot.json +1 -0
  173. package/conformance/v1/bundles/financepack/pass-with-tool-version-unknown-warning/month/keys/public_keys.json +1 -0
  174. package/conformance/v1/bundles/financepack/pass-with-tool-version-unknown-warning/month/manifest.json +1 -0
  175. package/conformance/v1/bundles/financepack/pass-with-tool-version-unknown-warning/month/verify/report.json +1 -0
  176. package/conformance/v1/bundles/financepack/pass-with-tool-version-unknown-warning/month/verify/verification_report.json +1 -0
  177. package/conformance/v1/bundles/financepack/pass-with-tool-version-unknown-warning/settld.json +1 -0
  178. package/conformance/v1/bundles/financepack/pass-with-tool-version-unknown-warning/verify/verification_report.json +1 -0
  179. package/conformance/v1/bundles/financepack/strict-fail-manifest-tamper/attestation/bundle_head_attestation.json +1 -0
  180. package/conformance/v1/bundles/financepack/strict-fail-manifest-tamper/finance/GLBatch.v1.json +1 -0
  181. package/conformance/v1/bundles/financepack/strict-fail-manifest-tamper/finance/JournalCsv.v1.csv +2 -0
  182. package/conformance/v1/bundles/financepack/strict-fail-manifest-tamper/finance/JournalCsv.v1.json +1 -0
  183. package/conformance/v1/bundles/financepack/strict-fail-manifest-tamper/finance/reconcile.json +2 -0
  184. package/conformance/v1/bundles/financepack/strict-fail-manifest-tamper/governance/policy.json +1 -0
  185. package/conformance/v1/bundles/financepack/strict-fail-manifest-tamper/governance/revocations.json +1 -0
  186. package/conformance/v1/bundles/financepack/strict-fail-manifest-tamper/manifest.json +1 -0
  187. package/conformance/v1/bundles/financepack/strict-fail-manifest-tamper/month/attestation/bundle_head_attestation.json +1 -0
  188. package/conformance/v1/bundles/financepack/strict-fail-manifest-tamper/month/events/events.jsonl +1 -0
  189. package/conformance/v1/bundles/financepack/strict-fail-manifest-tamper/month/events/payload_material.jsonl +1 -0
  190. package/conformance/v1/bundles/financepack/strict-fail-manifest-tamper/month/governance/global/events/events.jsonl +1 -0
  191. package/conformance/v1/bundles/financepack/strict-fail-manifest-tamper/month/governance/global/events/payload_material.jsonl +1 -0
  192. package/conformance/v1/bundles/financepack/strict-fail-manifest-tamper/month/governance/global/snapshot.json +1 -0
  193. package/conformance/v1/bundles/financepack/strict-fail-manifest-tamper/month/governance/policy.json +1 -0
  194. package/conformance/v1/bundles/financepack/strict-fail-manifest-tamper/month/governance/revocations.json +1 -0
  195. package/conformance/v1/bundles/financepack/strict-fail-manifest-tamper/month/governance/tenant/events/events.jsonl +0 -0
  196. package/conformance/v1/bundles/financepack/strict-fail-manifest-tamper/month/governance/tenant/events/payload_material.jsonl +0 -0
  197. package/conformance/v1/bundles/financepack/strict-fail-manifest-tamper/month/governance/tenant/snapshot.json +1 -0
  198. package/conformance/v1/bundles/financepack/strict-fail-manifest-tamper/month/keys/public_keys.json +1 -0
  199. package/conformance/v1/bundles/financepack/strict-fail-manifest-tamper/month/manifest.json +1 -0
  200. package/conformance/v1/bundles/financepack/strict-fail-manifest-tamper/month/verify/report.json +1 -0
  201. package/conformance/v1/bundles/financepack/strict-fail-manifest-tamper/month/verify/verification_report.json +1 -0
  202. package/conformance/v1/bundles/financepack/strict-fail-manifest-tamper/settld.json +1 -0
  203. package/conformance/v1/bundles/financepack/strict-fail-manifest-tamper/verify/verification_report.json +1 -0
  204. package/conformance/v1/bundles/financepack/strict-fail-missing-verification-report/attestation/bundle_head_attestation.json +1 -0
  205. package/conformance/v1/bundles/financepack/strict-fail-missing-verification-report/finance/GLBatch.v1.json +1 -0
  206. package/conformance/v1/bundles/financepack/strict-fail-missing-verification-report/finance/JournalCsv.v1.csv +2 -0
  207. package/conformance/v1/bundles/financepack/strict-fail-missing-verification-report/finance/JournalCsv.v1.json +1 -0
  208. package/conformance/v1/bundles/financepack/strict-fail-missing-verification-report/finance/reconcile.json +1 -0
  209. package/conformance/v1/bundles/financepack/strict-fail-missing-verification-report/governance/policy.json +1 -0
  210. package/conformance/v1/bundles/financepack/strict-fail-missing-verification-report/governance/revocations.json +1 -0
  211. package/conformance/v1/bundles/financepack/strict-fail-missing-verification-report/manifest.json +1 -0
  212. package/conformance/v1/bundles/financepack/strict-fail-missing-verification-report/month/attestation/bundle_head_attestation.json +1 -0
  213. package/conformance/v1/bundles/financepack/strict-fail-missing-verification-report/month/events/events.jsonl +1 -0
  214. package/conformance/v1/bundles/financepack/strict-fail-missing-verification-report/month/events/payload_material.jsonl +1 -0
  215. package/conformance/v1/bundles/financepack/strict-fail-missing-verification-report/month/governance/global/events/events.jsonl +1 -0
  216. package/conformance/v1/bundles/financepack/strict-fail-missing-verification-report/month/governance/global/events/payload_material.jsonl +1 -0
  217. package/conformance/v1/bundles/financepack/strict-fail-missing-verification-report/month/governance/global/snapshot.json +1 -0
  218. package/conformance/v1/bundles/financepack/strict-fail-missing-verification-report/month/governance/policy.json +1 -0
  219. package/conformance/v1/bundles/financepack/strict-fail-missing-verification-report/month/governance/revocations.json +1 -0
  220. package/conformance/v1/bundles/financepack/strict-fail-missing-verification-report/month/governance/tenant/events/events.jsonl +0 -0
  221. package/conformance/v1/bundles/financepack/strict-fail-missing-verification-report/month/governance/tenant/events/payload_material.jsonl +0 -0
  222. package/conformance/v1/bundles/financepack/strict-fail-missing-verification-report/month/governance/tenant/snapshot.json +1 -0
  223. package/conformance/v1/bundles/financepack/strict-fail-missing-verification-report/month/keys/public_keys.json +1 -0
  224. package/conformance/v1/bundles/financepack/strict-fail-missing-verification-report/month/manifest.json +1 -0
  225. package/conformance/v1/bundles/financepack/strict-fail-missing-verification-report/month/verify/report.json +1 -0
  226. package/conformance/v1/bundles/financepack/strict-fail-missing-verification-report/month/verify/verification_report.json +1 -0
  227. package/conformance/v1/bundles/financepack/strict-fail-missing-verification-report/settld.json +1 -0
  228. package/conformance/v1/bundles/financepack/strict-pass/attestation/bundle_head_attestation.json +1 -0
  229. package/conformance/v1/bundles/financepack/strict-pass/finance/GLBatch.v1.json +1 -0
  230. package/conformance/v1/bundles/financepack/strict-pass/finance/JournalCsv.v1.csv +2 -0
  231. package/conformance/v1/bundles/financepack/strict-pass/finance/JournalCsv.v1.json +1 -0
  232. package/conformance/v1/bundles/financepack/strict-pass/finance/reconcile.json +1 -0
  233. package/conformance/v1/bundles/financepack/strict-pass/governance/policy.json +1 -0
  234. package/conformance/v1/bundles/financepack/strict-pass/governance/revocations.json +1 -0
  235. package/conformance/v1/bundles/financepack/strict-pass/manifest.json +1 -0
  236. package/conformance/v1/bundles/financepack/strict-pass/month/attestation/bundle_head_attestation.json +1 -0
  237. package/conformance/v1/bundles/financepack/strict-pass/month/events/events.jsonl +1 -0
  238. package/conformance/v1/bundles/financepack/strict-pass/month/events/payload_material.jsonl +1 -0
  239. package/conformance/v1/bundles/financepack/strict-pass/month/governance/global/events/events.jsonl +1 -0
  240. package/conformance/v1/bundles/financepack/strict-pass/month/governance/global/events/payload_material.jsonl +1 -0
  241. package/conformance/v1/bundles/financepack/strict-pass/month/governance/global/snapshot.json +1 -0
  242. package/conformance/v1/bundles/financepack/strict-pass/month/governance/policy.json +1 -0
  243. package/conformance/v1/bundles/financepack/strict-pass/month/governance/revocations.json +1 -0
  244. package/conformance/v1/bundles/financepack/strict-pass/month/governance/tenant/events/events.jsonl +0 -0
  245. package/conformance/v1/bundles/financepack/strict-pass/month/governance/tenant/events/payload_material.jsonl +0 -0
  246. package/conformance/v1/bundles/financepack/strict-pass/month/governance/tenant/snapshot.json +1 -0
  247. package/conformance/v1/bundles/financepack/strict-pass/month/keys/public_keys.json +1 -0
  248. package/conformance/v1/bundles/financepack/strict-pass/month/manifest.json +1 -0
  249. package/conformance/v1/bundles/financepack/strict-pass/month/verify/report.json +1 -0
  250. package/conformance/v1/bundles/financepack/strict-pass/month/verify/verification_report.json +1 -0
  251. package/conformance/v1/bundles/financepack/strict-pass/settld.json +1 -0
  252. package/conformance/v1/bundles/financepack/strict-pass/verify/verification_report.json +1 -0
  253. package/conformance/v1/bundles/invoicebundle/nonstrict-pass-missing-verification-report/attestation/bundle_head_attestation.json +1 -0
  254. package/conformance/v1/bundles/invoicebundle/nonstrict-pass-missing-verification-report/governance/policy.json +1 -0
  255. package/conformance/v1/bundles/invoicebundle/nonstrict-pass-missing-verification-report/governance/revocations.json +1 -0
  256. package/conformance/v1/bundles/invoicebundle/nonstrict-pass-missing-verification-report/invoice/invoice_claim.json +1 -0
  257. package/conformance/v1/bundles/invoicebundle/nonstrict-pass-missing-verification-report/manifest.json +1 -0
  258. package/conformance/v1/bundles/invoicebundle/nonstrict-pass-missing-verification-report/metering/metering_report.json +1 -0
  259. package/conformance/v1/bundles/invoicebundle/nonstrict-pass-missing-verification-report/payload/job_proof_bundle/attestation/bundle_head_attestation.json +1 -0
  260. package/conformance/v1/bundles/invoicebundle/nonstrict-pass-missing-verification-report/payload/job_proof_bundle/events/events.jsonl +1 -0
  261. package/conformance/v1/bundles/invoicebundle/nonstrict-pass-missing-verification-report/payload/job_proof_bundle/events/payload_material.jsonl +1 -0
  262. package/conformance/v1/bundles/invoicebundle/nonstrict-pass-missing-verification-report/payload/job_proof_bundle/governance/global/events/events.jsonl +1 -0
  263. package/conformance/v1/bundles/invoicebundle/nonstrict-pass-missing-verification-report/payload/job_proof_bundle/governance/global/events/payload_material.jsonl +1 -0
  264. package/conformance/v1/bundles/invoicebundle/nonstrict-pass-missing-verification-report/payload/job_proof_bundle/governance/global/snapshot.json +1 -0
  265. package/conformance/v1/bundles/invoicebundle/nonstrict-pass-missing-verification-report/payload/job_proof_bundle/governance/policy.json +1 -0
  266. package/conformance/v1/bundles/invoicebundle/nonstrict-pass-missing-verification-report/payload/job_proof_bundle/governance/revocations.json +1 -0
  267. package/conformance/v1/bundles/invoicebundle/nonstrict-pass-missing-verification-report/payload/job_proof_bundle/governance/tenant/events/events.jsonl +0 -0
  268. package/conformance/v1/bundles/invoicebundle/nonstrict-pass-missing-verification-report/payload/job_proof_bundle/governance/tenant/events/payload_material.jsonl +0 -0
  269. package/conformance/v1/bundles/invoicebundle/nonstrict-pass-missing-verification-report/payload/job_proof_bundle/governance/tenant/snapshot.json +1 -0
  270. package/conformance/v1/bundles/invoicebundle/nonstrict-pass-missing-verification-report/payload/job_proof_bundle/job/snapshot.json +1 -0
  271. package/conformance/v1/bundles/invoicebundle/nonstrict-pass-missing-verification-report/payload/job_proof_bundle/keys/public_keys.json +1 -0
  272. package/conformance/v1/bundles/invoicebundle/nonstrict-pass-missing-verification-report/payload/job_proof_bundle/manifest.json +1 -0
  273. package/conformance/v1/bundles/invoicebundle/nonstrict-pass-missing-verification-report/payload/job_proof_bundle/verify/report.json +1 -0
  274. package/conformance/v1/bundles/invoicebundle/nonstrict-pass-missing-verification-report/payload/job_proof_bundle/verify/verification_report.json +1 -0
  275. package/conformance/v1/bundles/invoicebundle/nonstrict-pass-missing-verification-report/pricing/pricing_matrix.json +1 -0
  276. package/conformance/v1/bundles/invoicebundle/nonstrict-pass-missing-verification-report/pricing/pricing_matrix_signatures.json +1 -0
  277. package/conformance/v1/bundles/invoicebundle/nonstrict-pass-missing-verification-report/settld.json +1 -0
  278. package/conformance/v1/bundles/invoicebundle/nonstrict-pass-unsigned-pricing-matrix-warning/attestation/bundle_head_attestation.json +1 -0
  279. package/conformance/v1/bundles/invoicebundle/nonstrict-pass-unsigned-pricing-matrix-warning/governance/policy.json +1 -0
  280. package/conformance/v1/bundles/invoicebundle/nonstrict-pass-unsigned-pricing-matrix-warning/governance/revocations.json +1 -0
  281. package/conformance/v1/bundles/invoicebundle/nonstrict-pass-unsigned-pricing-matrix-warning/invoice/invoice_claim.json +1 -0
  282. package/conformance/v1/bundles/invoicebundle/nonstrict-pass-unsigned-pricing-matrix-warning/manifest.json +1 -0
  283. package/conformance/v1/bundles/invoicebundle/nonstrict-pass-unsigned-pricing-matrix-warning/metering/metering_report.json +1 -0
  284. package/conformance/v1/bundles/invoicebundle/nonstrict-pass-unsigned-pricing-matrix-warning/payload/job_proof_bundle/attestation/bundle_head_attestation.json +1 -0
  285. package/conformance/v1/bundles/invoicebundle/nonstrict-pass-unsigned-pricing-matrix-warning/payload/job_proof_bundle/events/events.jsonl +1 -0
  286. package/conformance/v1/bundles/invoicebundle/nonstrict-pass-unsigned-pricing-matrix-warning/payload/job_proof_bundle/events/payload_material.jsonl +1 -0
  287. package/conformance/v1/bundles/invoicebundle/nonstrict-pass-unsigned-pricing-matrix-warning/payload/job_proof_bundle/governance/global/events/events.jsonl +1 -0
  288. package/conformance/v1/bundles/invoicebundle/nonstrict-pass-unsigned-pricing-matrix-warning/payload/job_proof_bundle/governance/global/events/payload_material.jsonl +1 -0
  289. package/conformance/v1/bundles/invoicebundle/nonstrict-pass-unsigned-pricing-matrix-warning/payload/job_proof_bundle/governance/global/snapshot.json +1 -0
  290. package/conformance/v1/bundles/invoicebundle/nonstrict-pass-unsigned-pricing-matrix-warning/payload/job_proof_bundle/governance/policy.json +1 -0
  291. package/conformance/v1/bundles/invoicebundle/nonstrict-pass-unsigned-pricing-matrix-warning/payload/job_proof_bundle/governance/revocations.json +1 -0
  292. package/conformance/v1/bundles/invoicebundle/nonstrict-pass-unsigned-pricing-matrix-warning/payload/job_proof_bundle/governance/tenant/events/events.jsonl +0 -0
  293. package/conformance/v1/bundles/invoicebundle/nonstrict-pass-unsigned-pricing-matrix-warning/payload/job_proof_bundle/governance/tenant/events/payload_material.jsonl +0 -0
  294. package/conformance/v1/bundles/invoicebundle/nonstrict-pass-unsigned-pricing-matrix-warning/payload/job_proof_bundle/governance/tenant/snapshot.json +1 -0
  295. package/conformance/v1/bundles/invoicebundle/nonstrict-pass-unsigned-pricing-matrix-warning/payload/job_proof_bundle/job/snapshot.json +1 -0
  296. package/conformance/v1/bundles/invoicebundle/nonstrict-pass-unsigned-pricing-matrix-warning/payload/job_proof_bundle/keys/public_keys.json +1 -0
  297. package/conformance/v1/bundles/invoicebundle/nonstrict-pass-unsigned-pricing-matrix-warning/payload/job_proof_bundle/manifest.json +1 -0
  298. package/conformance/v1/bundles/invoicebundle/nonstrict-pass-unsigned-pricing-matrix-warning/payload/job_proof_bundle/verify/report.json +1 -0
  299. package/conformance/v1/bundles/invoicebundle/nonstrict-pass-unsigned-pricing-matrix-warning/payload/job_proof_bundle/verify/verification_report.json +1 -0
  300. package/conformance/v1/bundles/invoicebundle/nonstrict-pass-unsigned-pricing-matrix-warning/pricing/pricing_matrix.json +1 -0
  301. package/conformance/v1/bundles/invoicebundle/nonstrict-pass-unsigned-pricing-matrix-warning/settld.json +1 -0
  302. package/conformance/v1/bundles/invoicebundle/nonstrict-pass-unsigned-pricing-matrix-warning/verify/verification_report.json +1 -0
  303. package/conformance/v1/bundles/invoicebundle/strict-fail-evidence-sha-mismatch/attestation/bundle_head_attestation.json +1 -0
  304. package/conformance/v1/bundles/invoicebundle/strict-fail-evidence-sha-mismatch/governance/policy.json +1 -0
  305. package/conformance/v1/bundles/invoicebundle/strict-fail-evidence-sha-mismatch/governance/revocations.json +1 -0
  306. package/conformance/v1/bundles/invoicebundle/strict-fail-evidence-sha-mismatch/invoice/invoice_claim.json +1 -0
  307. package/conformance/v1/bundles/invoicebundle/strict-fail-evidence-sha-mismatch/manifest.json +1 -0
  308. package/conformance/v1/bundles/invoicebundle/strict-fail-evidence-sha-mismatch/metering/metering_report.json +1 -0
  309. package/conformance/v1/bundles/invoicebundle/strict-fail-evidence-sha-mismatch/payload/job_proof_bundle/attestation/bundle_head_attestation.json +1 -0
  310. package/conformance/v1/bundles/invoicebundle/strict-fail-evidence-sha-mismatch/payload/job_proof_bundle/events/events.jsonl +1 -0
  311. package/conformance/v1/bundles/invoicebundle/strict-fail-evidence-sha-mismatch/payload/job_proof_bundle/events/payload_material.jsonl +1 -0
  312. package/conformance/v1/bundles/invoicebundle/strict-fail-evidence-sha-mismatch/payload/job_proof_bundle/governance/global/events/events.jsonl +1 -0
  313. package/conformance/v1/bundles/invoicebundle/strict-fail-evidence-sha-mismatch/payload/job_proof_bundle/governance/global/events/payload_material.jsonl +1 -0
  314. package/conformance/v1/bundles/invoicebundle/strict-fail-evidence-sha-mismatch/payload/job_proof_bundle/governance/global/snapshot.json +1 -0
  315. package/conformance/v1/bundles/invoicebundle/strict-fail-evidence-sha-mismatch/payload/job_proof_bundle/governance/policy.json +1 -0
  316. package/conformance/v1/bundles/invoicebundle/strict-fail-evidence-sha-mismatch/payload/job_proof_bundle/governance/revocations.json +1 -0
  317. package/conformance/v1/bundles/invoicebundle/strict-fail-evidence-sha-mismatch/payload/job_proof_bundle/governance/tenant/events/events.jsonl +0 -0
  318. package/conformance/v1/bundles/invoicebundle/strict-fail-evidence-sha-mismatch/payload/job_proof_bundle/governance/tenant/events/payload_material.jsonl +0 -0
  319. package/conformance/v1/bundles/invoicebundle/strict-fail-evidence-sha-mismatch/payload/job_proof_bundle/governance/tenant/snapshot.json +1 -0
  320. package/conformance/v1/bundles/invoicebundle/strict-fail-evidence-sha-mismatch/payload/job_proof_bundle/job/snapshot.json +1 -0
  321. package/conformance/v1/bundles/invoicebundle/strict-fail-evidence-sha-mismatch/payload/job_proof_bundle/keys/public_keys.json +1 -0
  322. package/conformance/v1/bundles/invoicebundle/strict-fail-evidence-sha-mismatch/payload/job_proof_bundle/manifest.json +1 -0
  323. package/conformance/v1/bundles/invoicebundle/strict-fail-evidence-sha-mismatch/payload/job_proof_bundle/verify/report.json +1 -0
  324. package/conformance/v1/bundles/invoicebundle/strict-fail-evidence-sha-mismatch/payload/job_proof_bundle/verify/verification_report.json +1 -0
  325. package/conformance/v1/bundles/invoicebundle/strict-fail-evidence-sha-mismatch/pricing/pricing_matrix.json +1 -0
  326. package/conformance/v1/bundles/invoicebundle/strict-fail-evidence-sha-mismatch/pricing/pricing_matrix_signatures.json +1 -0
  327. package/conformance/v1/bundles/invoicebundle/strict-fail-evidence-sha-mismatch/settld.json +1 -0
  328. package/conformance/v1/bundles/invoicebundle/strict-fail-evidence-sha-mismatch/verify/verification_report.json +1 -0
  329. package/conformance/v1/bundles/invoicebundle/strict-fail-invalid-pricing-matrix-signature/attestation/bundle_head_attestation.json +1 -0
  330. package/conformance/v1/bundles/invoicebundle/strict-fail-invalid-pricing-matrix-signature/governance/policy.json +1 -0
  331. package/conformance/v1/bundles/invoicebundle/strict-fail-invalid-pricing-matrix-signature/governance/revocations.json +1 -0
  332. package/conformance/v1/bundles/invoicebundle/strict-fail-invalid-pricing-matrix-signature/invoice/invoice_claim.json +1 -0
  333. package/conformance/v1/bundles/invoicebundle/strict-fail-invalid-pricing-matrix-signature/manifest.json +1 -0
  334. package/conformance/v1/bundles/invoicebundle/strict-fail-invalid-pricing-matrix-signature/metering/metering_report.json +1 -0
  335. package/conformance/v1/bundles/invoicebundle/strict-fail-invalid-pricing-matrix-signature/payload/job_proof_bundle/attestation/bundle_head_attestation.json +1 -0
  336. package/conformance/v1/bundles/invoicebundle/strict-fail-invalid-pricing-matrix-signature/payload/job_proof_bundle/events/events.jsonl +1 -0
  337. package/conformance/v1/bundles/invoicebundle/strict-fail-invalid-pricing-matrix-signature/payload/job_proof_bundle/events/payload_material.jsonl +1 -0
  338. package/conformance/v1/bundles/invoicebundle/strict-fail-invalid-pricing-matrix-signature/payload/job_proof_bundle/governance/global/events/events.jsonl +1 -0
  339. package/conformance/v1/bundles/invoicebundle/strict-fail-invalid-pricing-matrix-signature/payload/job_proof_bundle/governance/global/events/payload_material.jsonl +1 -0
  340. package/conformance/v1/bundles/invoicebundle/strict-fail-invalid-pricing-matrix-signature/payload/job_proof_bundle/governance/global/snapshot.json +1 -0
  341. package/conformance/v1/bundles/invoicebundle/strict-fail-invalid-pricing-matrix-signature/payload/job_proof_bundle/governance/policy.json +1 -0
  342. package/conformance/v1/bundles/invoicebundle/strict-fail-invalid-pricing-matrix-signature/payload/job_proof_bundle/governance/revocations.json +1 -0
  343. package/conformance/v1/bundles/invoicebundle/strict-fail-invalid-pricing-matrix-signature/payload/job_proof_bundle/governance/tenant/events/events.jsonl +0 -0
  344. package/conformance/v1/bundles/invoicebundle/strict-fail-invalid-pricing-matrix-signature/payload/job_proof_bundle/governance/tenant/events/payload_material.jsonl +0 -0
  345. package/conformance/v1/bundles/invoicebundle/strict-fail-invalid-pricing-matrix-signature/payload/job_proof_bundle/governance/tenant/snapshot.json +1 -0
  346. package/conformance/v1/bundles/invoicebundle/strict-fail-invalid-pricing-matrix-signature/payload/job_proof_bundle/job/snapshot.json +1 -0
  347. package/conformance/v1/bundles/invoicebundle/strict-fail-invalid-pricing-matrix-signature/payload/job_proof_bundle/keys/public_keys.json +1 -0
  348. package/conformance/v1/bundles/invoicebundle/strict-fail-invalid-pricing-matrix-signature/payload/job_proof_bundle/manifest.json +1 -0
  349. package/conformance/v1/bundles/invoicebundle/strict-fail-invalid-pricing-matrix-signature/payload/job_proof_bundle/verify/report.json +1 -0
  350. package/conformance/v1/bundles/invoicebundle/strict-fail-invalid-pricing-matrix-signature/payload/job_proof_bundle/verify/verification_report.json +1 -0
  351. package/conformance/v1/bundles/invoicebundle/strict-fail-invalid-pricing-matrix-signature/pricing/pricing_matrix.json +1 -0
  352. package/conformance/v1/bundles/invoicebundle/strict-fail-invalid-pricing-matrix-signature/pricing/pricing_matrix_signatures.json +1 -0
  353. package/conformance/v1/bundles/invoicebundle/strict-fail-invalid-pricing-matrix-signature/settld.json +1 -0
  354. package/conformance/v1/bundles/invoicebundle/strict-fail-invalid-pricing-matrix-signature/verify/verification_report.json +1 -0
  355. package/conformance/v1/bundles/invoicebundle/strict-fail-invoice-total-mismatch/attestation/bundle_head_attestation.json +1 -0
  356. package/conformance/v1/bundles/invoicebundle/strict-fail-invoice-total-mismatch/governance/policy.json +1 -0
  357. package/conformance/v1/bundles/invoicebundle/strict-fail-invoice-total-mismatch/governance/revocations.json +1 -0
  358. package/conformance/v1/bundles/invoicebundle/strict-fail-invoice-total-mismatch/invoice/invoice_claim.json +1 -0
  359. package/conformance/v1/bundles/invoicebundle/strict-fail-invoice-total-mismatch/manifest.json +1 -0
  360. package/conformance/v1/bundles/invoicebundle/strict-fail-invoice-total-mismatch/metering/metering_report.json +1 -0
  361. package/conformance/v1/bundles/invoicebundle/strict-fail-invoice-total-mismatch/payload/job_proof_bundle/attestation/bundle_head_attestation.json +1 -0
  362. package/conformance/v1/bundles/invoicebundle/strict-fail-invoice-total-mismatch/payload/job_proof_bundle/events/events.jsonl +1 -0
  363. package/conformance/v1/bundles/invoicebundle/strict-fail-invoice-total-mismatch/payload/job_proof_bundle/events/payload_material.jsonl +1 -0
  364. package/conformance/v1/bundles/invoicebundle/strict-fail-invoice-total-mismatch/payload/job_proof_bundle/governance/global/events/events.jsonl +1 -0
  365. package/conformance/v1/bundles/invoicebundle/strict-fail-invoice-total-mismatch/payload/job_proof_bundle/governance/global/events/payload_material.jsonl +1 -0
  366. package/conformance/v1/bundles/invoicebundle/strict-fail-invoice-total-mismatch/payload/job_proof_bundle/governance/global/snapshot.json +1 -0
  367. package/conformance/v1/bundles/invoicebundle/strict-fail-invoice-total-mismatch/payload/job_proof_bundle/governance/policy.json +1 -0
  368. package/conformance/v1/bundles/invoicebundle/strict-fail-invoice-total-mismatch/payload/job_proof_bundle/governance/revocations.json +1 -0
  369. package/conformance/v1/bundles/invoicebundle/strict-fail-invoice-total-mismatch/payload/job_proof_bundle/governance/tenant/events/events.jsonl +0 -0
  370. package/conformance/v1/bundles/invoicebundle/strict-fail-invoice-total-mismatch/payload/job_proof_bundle/governance/tenant/events/payload_material.jsonl +0 -0
  371. package/conformance/v1/bundles/invoicebundle/strict-fail-invoice-total-mismatch/payload/job_proof_bundle/governance/tenant/snapshot.json +1 -0
  372. package/conformance/v1/bundles/invoicebundle/strict-fail-invoice-total-mismatch/payload/job_proof_bundle/job/snapshot.json +1 -0
  373. package/conformance/v1/bundles/invoicebundle/strict-fail-invoice-total-mismatch/payload/job_proof_bundle/keys/public_keys.json +1 -0
  374. package/conformance/v1/bundles/invoicebundle/strict-fail-invoice-total-mismatch/payload/job_proof_bundle/manifest.json +1 -0
  375. package/conformance/v1/bundles/invoicebundle/strict-fail-invoice-total-mismatch/payload/job_proof_bundle/verify/report.json +1 -0
  376. package/conformance/v1/bundles/invoicebundle/strict-fail-invoice-total-mismatch/payload/job_proof_bundle/verify/verification_report.json +1 -0
  377. package/conformance/v1/bundles/invoicebundle/strict-fail-invoice-total-mismatch/pricing/pricing_matrix.json +1 -0
  378. package/conformance/v1/bundles/invoicebundle/strict-fail-invoice-total-mismatch/pricing/pricing_matrix_signatures.json +1 -0
  379. package/conformance/v1/bundles/invoicebundle/strict-fail-invoice-total-mismatch/settld.json +1 -0
  380. package/conformance/v1/bundles/invoicebundle/strict-fail-invoice-total-mismatch/verify/verification_report.json +1 -0
  381. package/conformance/v1/bundles/invoicebundle/strict-fail-missing-pricing-matrix-signature/attestation/bundle_head_attestation.json +1 -0
  382. package/conformance/v1/bundles/invoicebundle/strict-fail-missing-pricing-matrix-signature/governance/policy.json +1 -0
  383. package/conformance/v1/bundles/invoicebundle/strict-fail-missing-pricing-matrix-signature/governance/revocations.json +1 -0
  384. package/conformance/v1/bundles/invoicebundle/strict-fail-missing-pricing-matrix-signature/invoice/invoice_claim.json +1 -0
  385. package/conformance/v1/bundles/invoicebundle/strict-fail-missing-pricing-matrix-signature/manifest.json +1 -0
  386. package/conformance/v1/bundles/invoicebundle/strict-fail-missing-pricing-matrix-signature/metering/metering_report.json +1 -0
  387. package/conformance/v1/bundles/invoicebundle/strict-fail-missing-pricing-matrix-signature/payload/job_proof_bundle/attestation/bundle_head_attestation.json +1 -0
  388. package/conformance/v1/bundles/invoicebundle/strict-fail-missing-pricing-matrix-signature/payload/job_proof_bundle/events/events.jsonl +1 -0
  389. package/conformance/v1/bundles/invoicebundle/strict-fail-missing-pricing-matrix-signature/payload/job_proof_bundle/events/payload_material.jsonl +1 -0
  390. package/conformance/v1/bundles/invoicebundle/strict-fail-missing-pricing-matrix-signature/payload/job_proof_bundle/governance/global/events/events.jsonl +1 -0
  391. package/conformance/v1/bundles/invoicebundle/strict-fail-missing-pricing-matrix-signature/payload/job_proof_bundle/governance/global/events/payload_material.jsonl +1 -0
  392. package/conformance/v1/bundles/invoicebundle/strict-fail-missing-pricing-matrix-signature/payload/job_proof_bundle/governance/global/snapshot.json +1 -0
  393. package/conformance/v1/bundles/invoicebundle/strict-fail-missing-pricing-matrix-signature/payload/job_proof_bundle/governance/policy.json +1 -0
  394. package/conformance/v1/bundles/invoicebundle/strict-fail-missing-pricing-matrix-signature/payload/job_proof_bundle/governance/revocations.json +1 -0
  395. package/conformance/v1/bundles/invoicebundle/strict-fail-missing-pricing-matrix-signature/payload/job_proof_bundle/governance/tenant/events/events.jsonl +0 -0
  396. package/conformance/v1/bundles/invoicebundle/strict-fail-missing-pricing-matrix-signature/payload/job_proof_bundle/governance/tenant/events/payload_material.jsonl +0 -0
  397. package/conformance/v1/bundles/invoicebundle/strict-fail-missing-pricing-matrix-signature/payload/job_proof_bundle/governance/tenant/snapshot.json +1 -0
  398. package/conformance/v1/bundles/invoicebundle/strict-fail-missing-pricing-matrix-signature/payload/job_proof_bundle/job/snapshot.json +1 -0
  399. package/conformance/v1/bundles/invoicebundle/strict-fail-missing-pricing-matrix-signature/payload/job_proof_bundle/keys/public_keys.json +1 -0
  400. package/conformance/v1/bundles/invoicebundle/strict-fail-missing-pricing-matrix-signature/payload/job_proof_bundle/manifest.json +1 -0
  401. package/conformance/v1/bundles/invoicebundle/strict-fail-missing-pricing-matrix-signature/payload/job_proof_bundle/verify/report.json +1 -0
  402. package/conformance/v1/bundles/invoicebundle/strict-fail-missing-pricing-matrix-signature/payload/job_proof_bundle/verify/verification_report.json +1 -0
  403. package/conformance/v1/bundles/invoicebundle/strict-fail-missing-pricing-matrix-signature/pricing/pricing_matrix.json +1 -0
  404. package/conformance/v1/bundles/invoicebundle/strict-fail-missing-pricing-matrix-signature/settld.json +1 -0
  405. package/conformance/v1/bundles/invoicebundle/strict-fail-missing-pricing-matrix-signature/verify/verification_report.json +1 -0
  406. package/conformance/v1/bundles/invoicebundle/strict-fail-missing-verification-report/attestation/bundle_head_attestation.json +1 -0
  407. package/conformance/v1/bundles/invoicebundle/strict-fail-missing-verification-report/governance/policy.json +1 -0
  408. package/conformance/v1/bundles/invoicebundle/strict-fail-missing-verification-report/governance/revocations.json +1 -0
  409. package/conformance/v1/bundles/invoicebundle/strict-fail-missing-verification-report/invoice/invoice_claim.json +1 -0
  410. package/conformance/v1/bundles/invoicebundle/strict-fail-missing-verification-report/manifest.json +1 -0
  411. package/conformance/v1/bundles/invoicebundle/strict-fail-missing-verification-report/metering/metering_report.json +1 -0
  412. package/conformance/v1/bundles/invoicebundle/strict-fail-missing-verification-report/payload/job_proof_bundle/attestation/bundle_head_attestation.json +1 -0
  413. package/conformance/v1/bundles/invoicebundle/strict-fail-missing-verification-report/payload/job_proof_bundle/events/events.jsonl +1 -0
  414. package/conformance/v1/bundles/invoicebundle/strict-fail-missing-verification-report/payload/job_proof_bundle/events/payload_material.jsonl +1 -0
  415. package/conformance/v1/bundles/invoicebundle/strict-fail-missing-verification-report/payload/job_proof_bundle/governance/global/events/events.jsonl +1 -0
  416. package/conformance/v1/bundles/invoicebundle/strict-fail-missing-verification-report/payload/job_proof_bundle/governance/global/events/payload_material.jsonl +1 -0
  417. package/conformance/v1/bundles/invoicebundle/strict-fail-missing-verification-report/payload/job_proof_bundle/governance/global/snapshot.json +1 -0
  418. package/conformance/v1/bundles/invoicebundle/strict-fail-missing-verification-report/payload/job_proof_bundle/governance/policy.json +1 -0
  419. package/conformance/v1/bundles/invoicebundle/strict-fail-missing-verification-report/payload/job_proof_bundle/governance/revocations.json +1 -0
  420. package/conformance/v1/bundles/invoicebundle/strict-fail-missing-verification-report/payload/job_proof_bundle/governance/tenant/events/events.jsonl +0 -0
  421. package/conformance/v1/bundles/invoicebundle/strict-fail-missing-verification-report/payload/job_proof_bundle/governance/tenant/events/payload_material.jsonl +0 -0
  422. package/conformance/v1/bundles/invoicebundle/strict-fail-missing-verification-report/payload/job_proof_bundle/governance/tenant/snapshot.json +1 -0
  423. package/conformance/v1/bundles/invoicebundle/strict-fail-missing-verification-report/payload/job_proof_bundle/job/snapshot.json +1 -0
  424. package/conformance/v1/bundles/invoicebundle/strict-fail-missing-verification-report/payload/job_proof_bundle/keys/public_keys.json +1 -0
  425. package/conformance/v1/bundles/invoicebundle/strict-fail-missing-verification-report/payload/job_proof_bundle/manifest.json +1 -0
  426. package/conformance/v1/bundles/invoicebundle/strict-fail-missing-verification-report/payload/job_proof_bundle/verify/report.json +1 -0
  427. package/conformance/v1/bundles/invoicebundle/strict-fail-missing-verification-report/payload/job_proof_bundle/verify/verification_report.json +1 -0
  428. package/conformance/v1/bundles/invoicebundle/strict-fail-missing-verification-report/pricing/pricing_matrix.json +1 -0
  429. package/conformance/v1/bundles/invoicebundle/strict-fail-missing-verification-report/pricing/pricing_matrix_signatures.json +1 -0
  430. package/conformance/v1/bundles/invoicebundle/strict-fail-missing-verification-report/settld.json +1 -0
  431. package/conformance/v1/bundles/invoicebundle/strict-fail-pricing-code-unknown/attestation/bundle_head_attestation.json +1 -0
  432. package/conformance/v1/bundles/invoicebundle/strict-fail-pricing-code-unknown/governance/policy.json +1 -0
  433. package/conformance/v1/bundles/invoicebundle/strict-fail-pricing-code-unknown/governance/revocations.json +1 -0
  434. package/conformance/v1/bundles/invoicebundle/strict-fail-pricing-code-unknown/invoice/invoice_claim.json +1 -0
  435. package/conformance/v1/bundles/invoicebundle/strict-fail-pricing-code-unknown/manifest.json +1 -0
  436. package/conformance/v1/bundles/invoicebundle/strict-fail-pricing-code-unknown/metering/metering_report.json +1 -0
  437. package/conformance/v1/bundles/invoicebundle/strict-fail-pricing-code-unknown/payload/job_proof_bundle/attestation/bundle_head_attestation.json +1 -0
  438. package/conformance/v1/bundles/invoicebundle/strict-fail-pricing-code-unknown/payload/job_proof_bundle/events/events.jsonl +1 -0
  439. package/conformance/v1/bundles/invoicebundle/strict-fail-pricing-code-unknown/payload/job_proof_bundle/events/payload_material.jsonl +1 -0
  440. package/conformance/v1/bundles/invoicebundle/strict-fail-pricing-code-unknown/payload/job_proof_bundle/governance/global/events/events.jsonl +1 -0
  441. package/conformance/v1/bundles/invoicebundle/strict-fail-pricing-code-unknown/payload/job_proof_bundle/governance/global/events/payload_material.jsonl +1 -0
  442. package/conformance/v1/bundles/invoicebundle/strict-fail-pricing-code-unknown/payload/job_proof_bundle/governance/global/snapshot.json +1 -0
  443. package/conformance/v1/bundles/invoicebundle/strict-fail-pricing-code-unknown/payload/job_proof_bundle/governance/policy.json +1 -0
  444. package/conformance/v1/bundles/invoicebundle/strict-fail-pricing-code-unknown/payload/job_proof_bundle/governance/revocations.json +1 -0
  445. package/conformance/v1/bundles/invoicebundle/strict-fail-pricing-code-unknown/payload/job_proof_bundle/governance/tenant/events/events.jsonl +0 -0
  446. package/conformance/v1/bundles/invoicebundle/strict-fail-pricing-code-unknown/payload/job_proof_bundle/governance/tenant/events/payload_material.jsonl +0 -0
  447. package/conformance/v1/bundles/invoicebundle/strict-fail-pricing-code-unknown/payload/job_proof_bundle/governance/tenant/snapshot.json +1 -0
  448. package/conformance/v1/bundles/invoicebundle/strict-fail-pricing-code-unknown/payload/job_proof_bundle/job/snapshot.json +1 -0
  449. package/conformance/v1/bundles/invoicebundle/strict-fail-pricing-code-unknown/payload/job_proof_bundle/keys/public_keys.json +1 -0
  450. package/conformance/v1/bundles/invoicebundle/strict-fail-pricing-code-unknown/payload/job_proof_bundle/manifest.json +1 -0
  451. package/conformance/v1/bundles/invoicebundle/strict-fail-pricing-code-unknown/payload/job_proof_bundle/verify/report.json +1 -0
  452. package/conformance/v1/bundles/invoicebundle/strict-fail-pricing-code-unknown/payload/job_proof_bundle/verify/verification_report.json +1 -0
  453. package/conformance/v1/bundles/invoicebundle/strict-fail-pricing-code-unknown/pricing/pricing_matrix.json +1 -0
  454. package/conformance/v1/bundles/invoicebundle/strict-fail-pricing-code-unknown/pricing/pricing_matrix_signatures.json +1 -0
  455. package/conformance/v1/bundles/invoicebundle/strict-fail-pricing-code-unknown/settld.json +1 -0
  456. package/conformance/v1/bundles/invoicebundle/strict-fail-pricing-code-unknown/verify/verification_report.json +1 -0
  457. package/conformance/v1/bundles/invoicebundle/strict-pass/attestation/bundle_head_attestation.json +1 -0
  458. package/conformance/v1/bundles/invoicebundle/strict-pass/governance/policy.json +1 -0
  459. package/conformance/v1/bundles/invoicebundle/strict-pass/governance/revocations.json +1 -0
  460. package/conformance/v1/bundles/invoicebundle/strict-pass/invoice/invoice_claim.json +1 -0
  461. package/conformance/v1/bundles/invoicebundle/strict-pass/manifest.json +1 -0
  462. package/conformance/v1/bundles/invoicebundle/strict-pass/metering/metering_report.json +1 -0
  463. package/conformance/v1/bundles/invoicebundle/strict-pass/payload/job_proof_bundle/attestation/bundle_head_attestation.json +1 -0
  464. package/conformance/v1/bundles/invoicebundle/strict-pass/payload/job_proof_bundle/events/events.jsonl +1 -0
  465. package/conformance/v1/bundles/invoicebundle/strict-pass/payload/job_proof_bundle/events/payload_material.jsonl +1 -0
  466. package/conformance/v1/bundles/invoicebundle/strict-pass/payload/job_proof_bundle/governance/global/events/events.jsonl +1 -0
  467. package/conformance/v1/bundles/invoicebundle/strict-pass/payload/job_proof_bundle/governance/global/events/payload_material.jsonl +1 -0
  468. package/conformance/v1/bundles/invoicebundle/strict-pass/payload/job_proof_bundle/governance/global/snapshot.json +1 -0
  469. package/conformance/v1/bundles/invoicebundle/strict-pass/payload/job_proof_bundle/governance/policy.json +1 -0
  470. package/conformance/v1/bundles/invoicebundle/strict-pass/payload/job_proof_bundle/governance/revocations.json +1 -0
  471. package/conformance/v1/bundles/invoicebundle/strict-pass/payload/job_proof_bundle/governance/tenant/events/events.jsonl +0 -0
  472. package/conformance/v1/bundles/invoicebundle/strict-pass/payload/job_proof_bundle/governance/tenant/events/payload_material.jsonl +0 -0
  473. package/conformance/v1/bundles/invoicebundle/strict-pass/payload/job_proof_bundle/governance/tenant/snapshot.json +1 -0
  474. package/conformance/v1/bundles/invoicebundle/strict-pass/payload/job_proof_bundle/job/snapshot.json +1 -0
  475. package/conformance/v1/bundles/invoicebundle/strict-pass/payload/job_proof_bundle/keys/public_keys.json +1 -0
  476. package/conformance/v1/bundles/invoicebundle/strict-pass/payload/job_proof_bundle/manifest.json +1 -0
  477. package/conformance/v1/bundles/invoicebundle/strict-pass/payload/job_proof_bundle/verify/report.json +1 -0
  478. package/conformance/v1/bundles/invoicebundle/strict-pass/payload/job_proof_bundle/verify/verification_report.json +1 -0
  479. package/conformance/v1/bundles/invoicebundle/strict-pass/pricing/pricing_matrix.json +1 -0
  480. package/conformance/v1/bundles/invoicebundle/strict-pass/pricing/pricing_matrix_signatures.json +1 -0
  481. package/conformance/v1/bundles/invoicebundle/strict-pass/settld.json +1 -0
  482. package/conformance/v1/bundles/invoicebundle/strict-pass/verify/verification_report.json +1 -0
  483. package/conformance/v1/bundles/jobproof/nonstrict-pass-missing-verification-report/attestation/bundle_head_attestation.json +1 -0
  484. package/conformance/v1/bundles/jobproof/nonstrict-pass-missing-verification-report/events/events.jsonl +1 -0
  485. package/conformance/v1/bundles/jobproof/nonstrict-pass-missing-verification-report/events/payload_material.jsonl +1 -0
  486. package/conformance/v1/bundles/jobproof/nonstrict-pass-missing-verification-report/governance/global/events/events.jsonl +1 -0
  487. package/conformance/v1/bundles/jobproof/nonstrict-pass-missing-verification-report/governance/global/events/payload_material.jsonl +1 -0
  488. package/conformance/v1/bundles/jobproof/nonstrict-pass-missing-verification-report/governance/global/snapshot.json +1 -0
  489. package/conformance/v1/bundles/jobproof/nonstrict-pass-missing-verification-report/governance/policy.json +1 -0
  490. package/conformance/v1/bundles/jobproof/nonstrict-pass-missing-verification-report/governance/revocations.json +1 -0
  491. package/conformance/v1/bundles/jobproof/nonstrict-pass-missing-verification-report/governance/tenant/events/events.jsonl +0 -0
  492. package/conformance/v1/bundles/jobproof/nonstrict-pass-missing-verification-report/governance/tenant/events/payload_material.jsonl +0 -0
  493. package/conformance/v1/bundles/jobproof/nonstrict-pass-missing-verification-report/governance/tenant/snapshot.json +1 -0
  494. package/conformance/v1/bundles/jobproof/nonstrict-pass-missing-verification-report/job/snapshot.json +1 -0
  495. package/conformance/v1/bundles/jobproof/nonstrict-pass-missing-verification-report/keys/public_keys.json +1 -0
  496. package/conformance/v1/bundles/jobproof/nonstrict-pass-missing-verification-report/manifest.json +1 -0
  497. package/conformance/v1/bundles/jobproof/nonstrict-pass-missing-verification-report/verify/report.json +1 -0
  498. package/conformance/v1/bundles/jobproof/strict-fail-manifest-tamper/attestation/bundle_head_attestation.json +1 -0
  499. package/conformance/v1/bundles/jobproof/strict-fail-manifest-tamper/events/events.jsonl +1 -0
  500. package/conformance/v1/bundles/jobproof/strict-fail-manifest-tamper/events/payload_material.jsonl +1 -0
  501. package/conformance/v1/bundles/jobproof/strict-fail-manifest-tamper/governance/global/events/events.jsonl +1 -0
  502. package/conformance/v1/bundles/jobproof/strict-fail-manifest-tamper/governance/global/events/payload_material.jsonl +1 -0
  503. package/conformance/v1/bundles/jobproof/strict-fail-manifest-tamper/governance/global/snapshot.json +1 -0
  504. package/conformance/v1/bundles/jobproof/strict-fail-manifest-tamper/governance/policy.json +1 -0
  505. package/conformance/v1/bundles/jobproof/strict-fail-manifest-tamper/governance/revocations.json +1 -0
  506. package/conformance/v1/bundles/jobproof/strict-fail-manifest-tamper/governance/tenant/events/events.jsonl +0 -0
  507. package/conformance/v1/bundles/jobproof/strict-fail-manifest-tamper/governance/tenant/events/payload_material.jsonl +0 -0
  508. package/conformance/v1/bundles/jobproof/strict-fail-manifest-tamper/governance/tenant/snapshot.json +1 -0
  509. package/conformance/v1/bundles/jobproof/strict-fail-manifest-tamper/job/snapshot.json +1 -0
  510. package/conformance/v1/bundles/jobproof/strict-fail-manifest-tamper/keys/public_keys.json +1 -0
  511. package/conformance/v1/bundles/jobproof/strict-fail-manifest-tamper/manifest.json +1 -0
  512. package/conformance/v1/bundles/jobproof/strict-fail-manifest-tamper/verify/report.json +1 -0
  513. package/conformance/v1/bundles/jobproof/strict-fail-manifest-tamper/verify/verification_report.json +1 -0
  514. package/conformance/v1/bundles/jobproof/strict-fail-unauthorized-signer/attestation/bundle_head_attestation.json +1 -0
  515. package/conformance/v1/bundles/jobproof/strict-fail-unauthorized-signer/events/events.jsonl +1 -0
  516. package/conformance/v1/bundles/jobproof/strict-fail-unauthorized-signer/events/payload_material.jsonl +1 -0
  517. package/conformance/v1/bundles/jobproof/strict-fail-unauthorized-signer/governance/global/events/events.jsonl +1 -0
  518. package/conformance/v1/bundles/jobproof/strict-fail-unauthorized-signer/governance/global/events/payload_material.jsonl +1 -0
  519. package/conformance/v1/bundles/jobproof/strict-fail-unauthorized-signer/governance/global/snapshot.json +1 -0
  520. package/conformance/v1/bundles/jobproof/strict-fail-unauthorized-signer/governance/policy.json +1 -0
  521. package/conformance/v1/bundles/jobproof/strict-fail-unauthorized-signer/governance/revocations.json +1 -0
  522. package/conformance/v1/bundles/jobproof/strict-fail-unauthorized-signer/governance/tenant/events/events.jsonl +0 -0
  523. package/conformance/v1/bundles/jobproof/strict-fail-unauthorized-signer/governance/tenant/events/payload_material.jsonl +0 -0
  524. package/conformance/v1/bundles/jobproof/strict-fail-unauthorized-signer/governance/tenant/snapshot.json +1 -0
  525. package/conformance/v1/bundles/jobproof/strict-fail-unauthorized-signer/job/snapshot.json +1 -0
  526. package/conformance/v1/bundles/jobproof/strict-fail-unauthorized-signer/keys/public_keys.json +1 -0
  527. package/conformance/v1/bundles/jobproof/strict-fail-unauthorized-signer/manifest.json +1 -0
  528. package/conformance/v1/bundles/jobproof/strict-fail-unauthorized-signer/verify/report.json +1 -0
  529. package/conformance/v1/bundles/jobproof/strict-fail-unauthorized-signer/verify/verification_report.json +1 -0
  530. package/conformance/v1/bundles/jobproof/strict-pass/attestation/bundle_head_attestation.json +1 -0
  531. package/conformance/v1/bundles/jobproof/strict-pass/events/events.jsonl +1 -0
  532. package/conformance/v1/bundles/jobproof/strict-pass/events/payload_material.jsonl +1 -0
  533. package/conformance/v1/bundles/jobproof/strict-pass/governance/global/events/events.jsonl +1 -0
  534. package/conformance/v1/bundles/jobproof/strict-pass/governance/global/events/payload_material.jsonl +1 -0
  535. package/conformance/v1/bundles/jobproof/strict-pass/governance/global/snapshot.json +1 -0
  536. package/conformance/v1/bundles/jobproof/strict-pass/governance/policy.json +1 -0
  537. package/conformance/v1/bundles/jobproof/strict-pass/governance/revocations.json +1 -0
  538. package/conformance/v1/bundles/jobproof/strict-pass/governance/tenant/events/events.jsonl +0 -0
  539. package/conformance/v1/bundles/jobproof/strict-pass/governance/tenant/events/payload_material.jsonl +0 -0
  540. package/conformance/v1/bundles/jobproof/strict-pass/governance/tenant/snapshot.json +1 -0
  541. package/conformance/v1/bundles/jobproof/strict-pass/job/snapshot.json +1 -0
  542. package/conformance/v1/bundles/jobproof/strict-pass/keys/public_keys.json +1 -0
  543. package/conformance/v1/bundles/jobproof/strict-pass/manifest.json +1 -0
  544. package/conformance/v1/bundles/jobproof/strict-pass/verify/report.json +1 -0
  545. package/conformance/v1/bundles/jobproof/strict-pass/verify/verification_report.json +1 -0
  546. package/conformance/v1/bundles/monthproof/nonstrict-pass-missing-verification-report/attestation/bundle_head_attestation.json +1 -0
  547. package/conformance/v1/bundles/monthproof/nonstrict-pass-missing-verification-report/events/events.jsonl +1 -0
  548. package/conformance/v1/bundles/monthproof/nonstrict-pass-missing-verification-report/events/payload_material.jsonl +1 -0
  549. package/conformance/v1/bundles/monthproof/nonstrict-pass-missing-verification-report/governance/global/events/events.jsonl +1 -0
  550. package/conformance/v1/bundles/monthproof/nonstrict-pass-missing-verification-report/governance/global/events/payload_material.jsonl +1 -0
  551. package/conformance/v1/bundles/monthproof/nonstrict-pass-missing-verification-report/governance/global/snapshot.json +1 -0
  552. package/conformance/v1/bundles/monthproof/nonstrict-pass-missing-verification-report/governance/policy.json +1 -0
  553. package/conformance/v1/bundles/monthproof/nonstrict-pass-missing-verification-report/governance/revocations.json +1 -0
  554. package/conformance/v1/bundles/monthproof/nonstrict-pass-missing-verification-report/governance/tenant/events/events.jsonl +0 -0
  555. package/conformance/v1/bundles/monthproof/nonstrict-pass-missing-verification-report/governance/tenant/events/payload_material.jsonl +0 -0
  556. package/conformance/v1/bundles/monthproof/nonstrict-pass-missing-verification-report/governance/tenant/snapshot.json +1 -0
  557. package/conformance/v1/bundles/monthproof/nonstrict-pass-missing-verification-report/keys/public_keys.json +1 -0
  558. package/conformance/v1/bundles/monthproof/nonstrict-pass-missing-verification-report/manifest.json +1 -0
  559. package/conformance/v1/bundles/monthproof/nonstrict-pass-missing-verification-report/verify/report.json +1 -0
  560. package/conformance/v1/bundles/monthproof/strict-fail-manifest-tamper/attestation/bundle_head_attestation.json +1 -0
  561. package/conformance/v1/bundles/monthproof/strict-fail-manifest-tamper/events/events.jsonl +2 -0
  562. package/conformance/v1/bundles/monthproof/strict-fail-manifest-tamper/events/payload_material.jsonl +1 -0
  563. package/conformance/v1/bundles/monthproof/strict-fail-manifest-tamper/governance/global/events/events.jsonl +1 -0
  564. package/conformance/v1/bundles/monthproof/strict-fail-manifest-tamper/governance/global/events/payload_material.jsonl +1 -0
  565. package/conformance/v1/bundles/monthproof/strict-fail-manifest-tamper/governance/global/snapshot.json +1 -0
  566. package/conformance/v1/bundles/monthproof/strict-fail-manifest-tamper/governance/policy.json +1 -0
  567. package/conformance/v1/bundles/monthproof/strict-fail-manifest-tamper/governance/revocations.json +1 -0
  568. package/conformance/v1/bundles/monthproof/strict-fail-manifest-tamper/governance/tenant/events/events.jsonl +0 -0
  569. package/conformance/v1/bundles/monthproof/strict-fail-manifest-tamper/governance/tenant/events/payload_material.jsonl +0 -0
  570. package/conformance/v1/bundles/monthproof/strict-fail-manifest-tamper/governance/tenant/snapshot.json +1 -0
  571. package/conformance/v1/bundles/monthproof/strict-fail-manifest-tamper/keys/public_keys.json +1 -0
  572. package/conformance/v1/bundles/monthproof/strict-fail-manifest-tamper/manifest.json +1 -0
  573. package/conformance/v1/bundles/monthproof/strict-fail-manifest-tamper/verify/report.json +1 -0
  574. package/conformance/v1/bundles/monthproof/strict-fail-manifest-tamper/verify/verification_report.json +1 -0
  575. package/conformance/v1/bundles/monthproof/strict-fail-unauthorized-signer/attestation/bundle_head_attestation.json +1 -0
  576. package/conformance/v1/bundles/monthproof/strict-fail-unauthorized-signer/events/events.jsonl +1 -0
  577. package/conformance/v1/bundles/monthproof/strict-fail-unauthorized-signer/events/payload_material.jsonl +1 -0
  578. package/conformance/v1/bundles/monthproof/strict-fail-unauthorized-signer/governance/global/events/events.jsonl +1 -0
  579. package/conformance/v1/bundles/monthproof/strict-fail-unauthorized-signer/governance/global/events/payload_material.jsonl +1 -0
  580. package/conformance/v1/bundles/monthproof/strict-fail-unauthorized-signer/governance/global/snapshot.json +1 -0
  581. package/conformance/v1/bundles/monthproof/strict-fail-unauthorized-signer/governance/policy.json +1 -0
  582. package/conformance/v1/bundles/monthproof/strict-fail-unauthorized-signer/governance/revocations.json +1 -0
  583. package/conformance/v1/bundles/monthproof/strict-fail-unauthorized-signer/governance/tenant/events/events.jsonl +0 -0
  584. package/conformance/v1/bundles/monthproof/strict-fail-unauthorized-signer/governance/tenant/events/payload_material.jsonl +0 -0
  585. package/conformance/v1/bundles/monthproof/strict-fail-unauthorized-signer/governance/tenant/snapshot.json +1 -0
  586. package/conformance/v1/bundles/monthproof/strict-fail-unauthorized-signer/keys/public_keys.json +1 -0
  587. package/conformance/v1/bundles/monthproof/strict-fail-unauthorized-signer/manifest.json +1 -0
  588. package/conformance/v1/bundles/monthproof/strict-fail-unauthorized-signer/verify/report.json +1 -0
  589. package/conformance/v1/bundles/monthproof/strict-fail-unauthorized-signer/verify/verification_report.json +1 -0
  590. package/conformance/v1/bundles/monthproof/strict-pass/attestation/bundle_head_attestation.json +1 -0
  591. package/conformance/v1/bundles/monthproof/strict-pass/events/events.jsonl +1 -0
  592. package/conformance/v1/bundles/monthproof/strict-pass/events/payload_material.jsonl +1 -0
  593. package/conformance/v1/bundles/monthproof/strict-pass/governance/global/events/events.jsonl +1 -0
  594. package/conformance/v1/bundles/monthproof/strict-pass/governance/global/events/payload_material.jsonl +1 -0
  595. package/conformance/v1/bundles/monthproof/strict-pass/governance/global/snapshot.json +1 -0
  596. package/conformance/v1/bundles/monthproof/strict-pass/governance/policy.json +1 -0
  597. package/conformance/v1/bundles/monthproof/strict-pass/governance/revocations.json +1 -0
  598. package/conformance/v1/bundles/monthproof/strict-pass/governance/tenant/events/events.jsonl +0 -0
  599. package/conformance/v1/bundles/monthproof/strict-pass/governance/tenant/events/payload_material.jsonl +0 -0
  600. package/conformance/v1/bundles/monthproof/strict-pass/governance/tenant/snapshot.json +1 -0
  601. package/conformance/v1/bundles/monthproof/strict-pass/keys/public_keys.json +1 -0
  602. package/conformance/v1/bundles/monthproof/strict-pass/manifest.json +1 -0
  603. package/conformance/v1/bundles/monthproof/strict-pass/verify/report.json +1 -0
  604. package/conformance/v1/bundles/monthproof/strict-pass/verify/verification_report.json +1 -0
  605. package/conformance/v1/cases.json +381 -0
  606. package/conformance/v1/expected/closepack_nonstrict_pass_missing_sla_acceptance.json +9 -0
  607. package/conformance/v1/expected/closepack_strict_fail_embedded_invoice_fails.json +9 -0
  608. package/conformance/v1/expected/closepack_strict_fail_evidence_index_mismatch.json +9 -0
  609. package/conformance/v1/expected/closepack_strict_pass.json +9 -0
  610. package/conformance/v1/expected/financepack_strict_fail_missing_verification_report.json +9 -0
  611. package/conformance/v1/expected/financepack_strict_fail_on_warnings_tool_version_unknown.json +9 -0
  612. package/conformance/v1/expected/financepack_strict_fail_trust_roots_missing.json +9 -0
  613. package/conformance/v1/expected/financepack_strict_fail_trust_roots_wrong.json +9 -0
  614. package/conformance/v1/expected/financepack_strict_pass.json +9 -0
  615. package/conformance/v1/expected/invoicebundle_nonstrict_pass_missing_verification_report.json +9 -0
  616. package/conformance/v1/expected/invoicebundle_nonstrict_pass_unsigned_pricing_matrix_warning.json +9 -0
  617. package/conformance/v1/expected/invoicebundle_strict_fail_evidence_sha_mismatch.json +9 -0
  618. package/conformance/v1/expected/invoicebundle_strict_fail_invalid_pricing_matrix_signature.json +9 -0
  619. package/conformance/v1/expected/invoicebundle_strict_fail_invoice_total_mismatch.json +9 -0
  620. package/conformance/v1/expected/invoicebundle_strict_fail_missing_pricing_matrix_signature.json +9 -0
  621. package/conformance/v1/expected/invoicebundle_strict_fail_missing_verification_report.json +9 -0
  622. package/conformance/v1/expected/invoicebundle_strict_fail_pricing_code_unknown.json +9 -0
  623. package/conformance/v1/expected/invoicebundle_strict_pass.json +9 -0
  624. package/conformance/v1/expected/jobproof_nonstrict_pass_missing_verification_report.json +9 -0
  625. package/conformance/v1/expected/jobproof_strict_fail_manifest_tamper.json +9 -0
  626. package/conformance/v1/expected/jobproof_strict_fail_unauthorized_signer.json +9 -0
  627. package/conformance/v1/expected/jobproof_strict_pass.json +9 -0
  628. package/conformance/v1/expected/monthproof_nonstrict_pass_missing_verification_report.json +9 -0
  629. package/conformance/v1/expected/monthproof_strict_fail_manifest_tamper.json +9 -0
  630. package/conformance/v1/expected/monthproof_strict_fail_unauthorized_signer.json +9 -0
  631. package/conformance/v1/expected/monthproof_strict_pass.json +9 -0
  632. package/conformance/v1/expected/security_bundle_symlink_outside.json +9 -0
  633. package/conformance/v1/expected/security_manifest_case_collision.json +8 -0
  634. package/conformance/v1/expected/security_manifest_duplicate_paths.json +9 -0
  635. package/conformance/v1/expected/security_manifest_path_traversal.json +9 -0
  636. package/conformance/v1/lib/harness.mjs +78 -0
  637. package/conformance/v1/lib/mutations.mjs +61 -0
  638. package/conformance/v1/produce-cases.json +75 -0
  639. package/conformance/v1/producer/bad-plugin-invalid-provider.mjs +4 -0
  640. package/conformance/v1/producer/bad-plugin-no-export.mjs +3 -0
  641. package/conformance/v1/producer/fixture_keypairs.json +18 -0
  642. package/conformance/v1/producer/inmemory-signer-plugin.mjs +47 -0
  643. package/conformance/v1/producer/signer-stdio-bad-json.mjs +54 -0
  644. package/conformance/v1/producer/signer-stdio-partial-stdout-exit1.mjs +51 -0
  645. package/conformance/v1/producer/signer-stdio-stderr-only-exit1.mjs +46 -0
  646. package/conformance/v1/producer/signer-stdio-stub.mjs +134 -0
  647. package/conformance/v1/protocol-vectors/v1.json +81 -0
  648. package/conformance/v1/release-cases.json +111 -0
  649. package/conformance/v1/release-trust-quorum.json +15 -0
  650. package/conformance/v1/release-trust-revoked.json +16 -0
  651. package/conformance/v1/release-trust.json +15 -0
  652. package/conformance/v1/releases/release_fail_asset_hash_mismatch/a.tgz +1 -0
  653. package/conformance/v1/releases/release_fail_asset_hash_mismatch/b.tar.gz +1 -0
  654. package/conformance/v1/releases/release_fail_asset_hash_mismatch/release_index_v1.json +1 -0
  655. package/conformance/v1/releases/release_fail_asset_hash_mismatch/release_index_v1.sig +1 -0
  656. package/conformance/v1/releases/release_fail_missing_asset/a.tgz +1 -0
  657. package/conformance/v1/releases/release_fail_missing_asset/release_index_v1.json +1 -0
  658. package/conformance/v1/releases/release_fail_missing_asset/release_index_v1.sig +1 -0
  659. package/conformance/v1/releases/release_fail_signature_invalid/a.tgz +1 -0
  660. package/conformance/v1/releases/release_fail_signature_invalid/b.tar.gz +1 -0
  661. package/conformance/v1/releases/release_fail_signature_invalid/release_index_v1.json +1 -0
  662. package/conformance/v1/releases/release_fail_signature_invalid/release_index_v1.sig +1 -0
  663. package/conformance/v1/releases/release_pass/a.tgz +1 -0
  664. package/conformance/v1/releases/release_pass/b.tar.gz +1 -0
  665. package/conformance/v1/releases/release_pass/release_index_v1.json +1 -0
  666. package/conformance/v1/releases/release_pass/release_index_v1.sig +1 -0
  667. package/conformance/v1/run-produce.mjs +507 -0
  668. package/conformance/v1/run-release.mjs +129 -0
  669. package/conformance/v1/run.mjs +229 -0
  670. package/conformance/v1/trust.json +11 -0
  671. package/docker-compose.yml +154 -0
  672. package/package.json +98 -0
  673. package/packages/artifact-verify/src/bundle-path.js +60 -0
  674. package/packages/artifact-verify/src/canonical-json.js +48 -0
  675. package/packages/artifact-verify/src/close-pack-bundle.js +914 -0
  676. package/packages/artifact-verify/src/crypto.js +18 -0
  677. package/packages/artifact-verify/src/finance-pack-bundle.js +750 -0
  678. package/packages/artifact-verify/src/governance-policy.js +312 -0
  679. package/packages/artifact-verify/src/hash-file.js +38 -0
  680. package/packages/artifact-verify/src/index.js +100 -0
  681. package/packages/artifact-verify/src/invoice-bundle.js +865 -0
  682. package/packages/artifact-verify/src/job-proof-bundle.js +1996 -0
  683. package/packages/artifact-verify/src/map-with-concurrency.js +32 -0
  684. package/packages/artifact-verify/src/reconcile.js +135 -0
  685. package/packages/artifact-verify/src/release/release-index-lib.js +190 -0
  686. package/packages/artifact-verify/src/release/verify-release.js +187 -0
  687. package/packages/artifact-verify/src/revocation-list.js +119 -0
  688. package/packages/artifact-verify/src/safe-unzip.js +335 -0
  689. package/packages/artifact-verify/src/settlement-decision-report.js +61 -0
  690. package/packages/artifact-verify/src/timestamp-proof.js +49 -0
  691. package/packages/artifact-verify/src/tool-provenance.js +49 -0
  692. package/packages/artifact-verify/src/trust.js +54 -0
  693. package/packages/artifact-verify/src/verification-warnings.js +34 -0
  694. package/scripts/closepack/export.mjs +101 -0
  695. package/scripts/closepack/lib.mjs +1068 -0
  696. package/scripts/closepack/verify.mjs +65 -0
  697. package/scripts/init/capability.mjs +556 -0
  698. package/scripts/init/postinstall-sanity.mjs +18 -0
  699. package/services/finance-sink/README.md +37 -0
  700. package/services/finance-sink/package.json +6 -0
  701. package/services/finance-sink/src/ack-worker.js +152 -0
  702. package/services/finance-sink/src/config.js +176 -0
  703. package/services/finance-sink/src/dedupe-store.js +232 -0
  704. package/services/finance-sink/src/s3-store.js +139 -0
  705. package/services/finance-sink/src/server.js +391 -0
  706. package/services/receiver/README.md +49 -0
  707. package/services/receiver/package.json +6 -0
  708. package/services/receiver/src/ack-worker.js +166 -0
  709. package/services/receiver/src/config.js +178 -0
  710. package/services/receiver/src/dedupe-store.js +232 -0
  711. package/services/receiver/src/s3-store.js +111 -0
  712. package/services/receiver/src/server.js +304 -0
  713. package/src/agent/agent-sim.js +167 -0
  714. package/src/api/app.js +31794 -0
  715. package/src/api/http.js +124 -0
  716. package/src/api/maintenance.js +174 -0
  717. package/src/api/middleware/auth.js +105 -0
  718. package/src/api/middleware/authz.js +19 -0
  719. package/src/api/openapi.js +5684 -0
  720. package/src/api/outbox.js +93 -0
  721. package/src/api/persistence.js +628 -0
  722. package/src/api/server.js +100 -0
  723. package/src/api/store.js +2088 -0
  724. package/src/api/workers/artifacts.js +574 -0
  725. package/src/api/workers/deliveries.js +628 -0
  726. package/src/api/workers/proof.js +374 -0
  727. package/src/core/acceptance-criteria.js +78 -0
  728. package/src/core/access.js +130 -0
  729. package/src/core/agent-reputation.js +311 -0
  730. package/src/core/agent-runs.js +253 -0
  731. package/src/core/agent-wallets.js +883 -0
  732. package/src/core/allocations.js +160 -0
  733. package/src/core/artifact-verification-status.js +216 -0
  734. package/src/core/artifacts.js +938 -0
  735. package/src/core/assist.js +106 -0
  736. package/src/core/audit-export.js +68 -0
  737. package/src/core/auth.js +189 -0
  738. package/src/core/billing-plans.js +187 -0
  739. package/src/core/booking.js +268 -0
  740. package/src/core/cancellation.js +34 -0
  741. package/src/core/canonical-json.js +104 -0
  742. package/src/core/claims.js +152 -0
  743. package/src/core/close-pack-bundle.js +527 -0
  744. package/src/core/config.js +272 -0
  745. package/src/core/contract-compiler.js +68 -0
  746. package/src/core/contract-document.js +226 -0
  747. package/src/core/contract-selection.js +152 -0
  748. package/src/core/contracts.js +439 -0
  749. package/src/core/crypto.js +30 -0
  750. package/src/core/deterministic-zip.js +169 -0
  751. package/src/core/dispatch-events.js +113 -0
  752. package/src/core/dispatch.js +26 -0
  753. package/src/core/dispute-open-envelope.js +163 -0
  754. package/src/core/escrow-ledger.js +329 -0
  755. package/src/core/event-chain.js +114 -0
  756. package/src/core/event-policy.js +120 -0
  757. package/src/core/evidence-linker.js +93 -0
  758. package/src/core/evidence-store.js +286 -0
  759. package/src/core/evidence.js +119 -0
  760. package/src/core/failpoints.js +30 -0
  761. package/src/core/finance-account-map.js +59 -0
  762. package/src/core/finance-pack-bundle.js +554 -0
  763. package/src/core/funding-hold.js +185 -0
  764. package/src/core/gl-batch.js +107 -0
  765. package/src/core/governance-policy.js +174 -0
  766. package/src/core/governance.js +92 -0
  767. package/src/core/hold-exposure.js +74 -0
  768. package/src/core/idempotency.js +51 -0
  769. package/src/core/ids.js +21 -0
  770. package/src/core/incidents.js +75 -0
  771. package/src/core/insurer-reimbursements.js +58 -0
  772. package/src/core/interaction-directions.js +170 -0
  773. package/src/core/invoice-bundle.js +564 -0
  774. package/src/core/job-reducer.js +702 -0
  775. package/src/core/job-state-machine.js +266 -0
  776. package/src/core/journal-csv.js +94 -0
  777. package/src/core/ledger-postings-finance.js +31 -0
  778. package/src/core/ledger-postings.js +476 -0
  779. package/src/core/ledger.js +59 -0
  780. package/src/core/liveness.js +154 -0
  781. package/src/core/log.js +156 -0
  782. package/src/core/maintenance-locks.js +3 -0
  783. package/src/core/marketplace-kernel.js +243 -0
  784. package/src/core/metrics.js +133 -0
  785. package/src/core/money-rail-adapters.js +735 -0
  786. package/src/core/month-close-hold-policy.js +19 -0
  787. package/src/core/month-close.js +159 -0
  788. package/src/core/operator-cost.js +79 -0
  789. package/src/core/operator-coverage.js +46 -0
  790. package/src/core/operator-reducer.js +73 -0
  791. package/src/core/operators.js +52 -0
  792. package/src/core/ops-audit.js +45 -0
  793. package/src/core/party-statements.js +145 -0
  794. package/src/core/pilot-templates.js +26 -0
  795. package/src/core/policy.js +76 -0
  796. package/src/core/pricing.js +71 -0
  797. package/src/core/proof-bundle.js +1153 -0
  798. package/src/core/proof-events.js +88 -0
  799. package/src/core/proof-verifier.js +261 -0
  800. package/src/core/proof.js +46 -0
  801. package/src/core/protocol.js +105 -0
  802. package/src/core/quotas.js +32 -0
  803. package/src/core/reputation-event.js +203 -0
  804. package/src/core/rescheduling.js +51 -0
  805. package/src/core/retention.js +32 -0
  806. package/src/core/revocation-list.js +70 -0
  807. package/src/core/risk.js +383 -0
  808. package/src/core/robot-health.js +111 -0
  809. package/src/core/robot-reducer.js +198 -0
  810. package/src/core/robots.js +152 -0
  811. package/src/core/s3-presign.js +111 -0
  812. package/src/core/secrets.js +128 -0
  813. package/src/core/settlement-adjustment.js +151 -0
  814. package/src/core/settlement-kernel.js +405 -0
  815. package/src/core/settlement-policy.js +206 -0
  816. package/src/core/settlement-splits.js +46 -0
  817. package/src/core/signer-keys.js +33 -0
  818. package/src/core/skills.js +86 -0
  819. package/src/core/sla-events.js +229 -0
  820. package/src/core/sla-metering.js +169 -0
  821. package/src/core/sla-policy-templates.js +340 -0
  822. package/src/core/sla.js +29 -0
  823. package/src/core/statements.js +426 -0
  824. package/src/core/tenancy.js +55 -0
  825. package/src/core/timestamp-proof.js +36 -0
  826. package/src/core/tool-manifest.js +116 -0
  827. package/src/core/tool-provenance.js +36 -0
  828. package/src/core/url-safety.js +263 -0
  829. package/src/core/verification-warnings.js +53 -0
  830. package/src/core/zone-coverage.js +59 -0
  831. package/src/core/zones.js +8 -0
  832. package/src/core/zoneset.js +67 -0
  833. package/src/db/migrate.js +61 -0
  834. package/src/db/migrations/001_init.sql +92 -0
  835. package/src/db/migrations/002_robot_reservations.sql +23 -0
  836. package/src/db/migrations/003_idempotency_v2.sql +32 -0
  837. package/src/db/migrations/004_notifications.sql +12 -0
  838. package/src/db/migrations/005_multi_tenant.sql +106 -0
  839. package/src/db/migrations/006_contracts.sql +27 -0
  840. package/src/db/migrations/007_artifacts_deliveries_correlations.sql +53 -0
  841. package/src/db/migrations/008_delivery_ingest_hardening.sql +52 -0
  842. package/src/db/migrations/009_auth_keys.sql +21 -0
  843. package/src/db/migrations/010_signer_keys.sql +25 -0
  844. package/src/db/migrations/011_ops_audit.sql +33 -0
  845. package/src/db/migrations/012_retention.sql +16 -0
  846. package/src/db/migrations/013_perf_indexes.sql +18 -0
  847. package/src/db/migrations/014_contracts_v2.sql +68 -0
  848. package/src/db/migrations/015_parties.sql +16 -0
  849. package/src/db/migrations/016_ledger_allocations.sql +18 -0
  850. package/src/db/migrations/017_party_statements.sql +31 -0
  851. package/src/db/migrations/018_finance_account_map.sql +12 -0
  852. package/src/db/migrations/019_ledger_allocations_account_id.sql +7 -0
  853. package/src/db/migrations/020_artifacts_source_event_unique.sql +10 -0
  854. package/src/db/migrations/021_artifacts_by_job_created_at_id.sql +6 -0
  855. package/src/db/migrations/022_governance_uniqueness.sql +28 -0
  856. package/src/db/migrations/023_marketplace_tasks.sql +45 -0
  857. package/src/db/migrations/024_agent_runtime_state.sql +70 -0
  858. package/src/db/migrations/025_tenant_settlement_policies.sql +19 -0
  859. package/src/db/migrations/026_money_rails_billable_events.sql +82 -0
  860. package/src/db/migrations/027_tenant_billing_config.sql +10 -0
  861. package/src/db/migrations/028_marketplace_rfq_storage.sql +121 -0
  862. package/src/db/pg.js +123 -0
  863. package/src/db/store-pg.js +6465 -0
@@ -0,0 +1,574 @@
1
+ import { reduceJob } from "../../core/job-reducer.js";
2
+ import { ledgerEntriesForJobEvent } from "../../core/ledger-postings.js";
3
+ import { allocateEntry } from "../../core/allocations.js";
4
+ import { hashSplitPlanV1 } from "../../core/contract-document.js";
5
+ import {
6
+ ARTIFACT_TYPE,
7
+ buildCoverageCertificateV1,
8
+ buildCreditMemoV1,
9
+ buildIncidentPacketV1,
10
+ buildProofReceiptV1,
11
+ buildSettlementStatementV1,
12
+ buildWorkCertificateV1,
13
+ computeArtifactHash,
14
+ sliceEventsThroughChainHash
15
+ } from "../../core/artifacts.js";
16
+ import { normalizeTenantId, DEFAULT_TENANT_ID } from "../../core/tenancy.js";
17
+ import { failpoint } from "../../core/failpoints.js";
18
+ import { logger } from "../../core/log.js";
19
+ import { clampQuota, isQuotaExceeded } from "../../core/quotas.js";
20
+
21
+ function assertNonEmptyString(value, name) {
22
+ if (typeof value !== "string" || value.trim() === "") throw new TypeError(`${name} must be a non-empty string`);
23
+ }
24
+
25
+ function outboxMaxAttemptsFromEnv({ fallbackAttempts = 25 } = {}) {
26
+ const raw = typeof process !== "undefined" ? (process.env.PROXY_OUTBOX_MAX_ATTEMPTS ?? null) : null;
27
+ if (raw === null || raw === undefined) return fallbackAttempts;
28
+ const text = String(raw).trim();
29
+ if (!text) return fallbackAttempts;
30
+ const n = Number(text);
31
+ if (!Number.isFinite(n) || !Number.isSafeInteger(n) || n <= 0) throw new TypeError("PROXY_OUTBOX_MAX_ATTEMPTS must be a positive integer");
32
+ return n;
33
+ }
34
+
35
+ function parsePositiveIntEnv(name, fallback) {
36
+ if (typeof process === "undefined" || !process.env) return fallback;
37
+ const raw = process.env[name] ?? null;
38
+ if (raw === null || raw === undefined || String(raw).trim() === "") return fallback;
39
+ const n = Number(raw);
40
+ if (!Number.isFinite(n) || !Number.isSafeInteger(n) || n <= 0) throw new TypeError(`${name} must be a positive safe integer`);
41
+ return n;
42
+ }
43
+
44
+ const outboxMaxAttempts = outboxMaxAttemptsFromEnv({ fallbackAttempts: 25 });
45
+
46
+ function computeJobLedgerEntries(events) {
47
+ if (!Array.isArray(events) || events.length === 0) return [];
48
+ const entries = [];
49
+
50
+ for (let i = 0; i < events.length; i += 1) {
51
+ const event = events[i];
52
+ if (!event || typeof event !== "object") continue;
53
+ if (event.type === "JOB_CREATED") continue;
54
+ const eventsBefore = events.slice(0, i);
55
+ const jobBefore = reduceJob(eventsBefore);
56
+ if (!jobBefore) continue;
57
+ try {
58
+ const next = ledgerEntriesForJobEvent({ jobBefore, event, eventsBefore });
59
+ if (Array.isArray(next) && next.length) entries.push(...next);
60
+ } catch {
61
+ // Ignore: not all events post to ledger; artifacts should be buildable even if a posting is rejected.
62
+ }
63
+ }
64
+
65
+ return entries;
66
+ }
67
+
68
+ function summarizeLedger(entries) {
69
+ const totalsByAccountId = {};
70
+ const entryIds = [];
71
+ for (const entry of entries) {
72
+ if (!entry?.id) continue;
73
+ entryIds.push(entry.id);
74
+ for (const p of entry.postings ?? []) {
75
+ if (!p?.accountId || !Number.isSafeInteger(p.amountCents)) continue;
76
+ totalsByAccountId[p.accountId] = (totalsByAccountId[p.accountId] ?? 0) + p.amountCents;
77
+ }
78
+ }
79
+ entryIds.sort();
80
+ return { entryIds, totalsByAccountId };
81
+ }
82
+
83
+ function makeArtifactId({ artifactType, jobId, events, sourceEvent }) {
84
+ const prefix =
85
+ artifactType === ARTIFACT_TYPE.WORK_CERTIFICATE_V1
86
+ ? "cert"
87
+ : artifactType === ARTIFACT_TYPE.PROOF_RECEIPT_V1
88
+ ? "proof"
89
+ : artifactType === ARTIFACT_TYPE.COVERAGE_CERTIFICATE_V1
90
+ ? "coverage"
91
+ : artifactType === ARTIFACT_TYPE.INCIDENT_PACKET_V1
92
+ ? "incident"
93
+ : artifactType === ARTIFACT_TYPE.CREDIT_MEMO_V1
94
+ ? "credit"
95
+ : artifactType === ARTIFACT_TYPE.SETTLEMENT_STATEMENT_V1
96
+ ? "settlement"
97
+ : "artifact";
98
+
99
+ // Artifact IDs must be stable even if new non-business events are appended later.
100
+ // Prefer the triggering source event id, falling back to the head chain hash.
101
+ const stableSuffix =
102
+ typeof sourceEvent?.id === "string" && sourceEvent.id.trim() !== ""
103
+ ? sourceEvent.id
104
+ : typeof sourceEvent?.chainHash === "string" && sourceEvent.chainHash.trim() !== ""
105
+ ? sourceEvent.chainHash
106
+ : Array.isArray(events) && events.length
107
+ ? events[events.length - 1].chainHash
108
+ : "unknown";
109
+
110
+ if (artifactType === ARTIFACT_TYPE.CREDIT_MEMO_V1) {
111
+ const creditId = sourceEvent?.payload?.creditId ?? null;
112
+ if (typeof creditId === "string" && creditId.trim() !== "") return `${prefix}_${jobId}_${creditId}`;
113
+ }
114
+ return `${prefix}_${jobId}_${stableSuffix}`;
115
+ }
116
+
117
+ function artifactPriority(artifactType) {
118
+ if (artifactType === ARTIFACT_TYPE.WORK_CERTIFICATE_V1) return 10;
119
+ if (artifactType === ARTIFACT_TYPE.PROOF_RECEIPT_V1) return 12;
120
+ if (artifactType === ARTIFACT_TYPE.COVERAGE_CERTIFICATE_V1) return 15;
121
+ if (artifactType === ARTIFACT_TYPE.INCIDENT_PACKET_V1) return 20;
122
+ if (artifactType === ARTIFACT_TYPE.CREDIT_MEMO_V1) return 30;
123
+ if (artifactType === ARTIFACT_TYPE.SETTLEMENT_STATEMENT_V1) return 40;
124
+ return 100;
125
+ }
126
+
127
+ export function deriveArtifactEnqueuesFromJobEvents({ tenantId, jobId, events }) {
128
+ tenantId = normalizeTenantId(tenantId ?? DEFAULT_TENANT_ID);
129
+ assertNonEmptyString(jobId, "jobId");
130
+ if (!Array.isArray(events)) throw new TypeError("events must be an array");
131
+
132
+ const triggerMap = new Map([
133
+ ["SETTLED", [ARTIFACT_TYPE.WORK_CERTIFICATE_V1, ARTIFACT_TYPE.SETTLEMENT_STATEMENT_V1]],
134
+ ["BOOKED", [ARTIFACT_TYPE.COVERAGE_CERTIFICATE_V1]],
135
+ // If proof is evaluated after settlement (race), regenerate artifacts at the proof anchor
136
+ // so downstream consumers see the acceptance status.
137
+ ["PROOF_EVALUATED", [ARTIFACT_TYPE.PROOF_RECEIPT_V1, ARTIFACT_TYPE.WORK_CERTIFICATE_V1, ARTIFACT_TYPE.SETTLEMENT_STATEMENT_V1]],
138
+ ["INCIDENT_REPORTED", [ARTIFACT_TYPE.INCIDENT_PACKET_V1]],
139
+ ["INCIDENT_DETECTED", [ARTIFACT_TYPE.INCIDENT_PACKET_V1]],
140
+ ["CLAIM_OPENED", [ARTIFACT_TYPE.INCIDENT_PACKET_V1]],
141
+ ["CLAIM_TRIAGED", [ARTIFACT_TYPE.INCIDENT_PACKET_V1]],
142
+ ["CLAIM_APPROVED", [ARTIFACT_TYPE.INCIDENT_PACKET_V1, ARTIFACT_TYPE.SETTLEMENT_STATEMENT_V1]],
143
+ ["CLAIM_DENIED", [ARTIFACT_TYPE.INCIDENT_PACKET_V1]],
144
+ ["CLAIM_PAID", [ARTIFACT_TYPE.INCIDENT_PACKET_V1, ARTIFACT_TYPE.SETTLEMENT_STATEMENT_V1]],
145
+ ["JOB_ADJUSTED", [ARTIFACT_TYPE.SETTLEMENT_STATEMENT_V1]],
146
+ ["SLA_CREDIT_ISSUED", [ARTIFACT_TYPE.CREDIT_MEMO_V1, ARTIFACT_TYPE.SETTLEMENT_STATEMENT_V1]]
147
+ ]);
148
+
149
+ const outbox = [];
150
+ for (const e of events) {
151
+ const artifactTypes = triggerMap.get(e?.type) ?? null;
152
+ if (!artifactTypes || artifactTypes.length === 0) continue;
153
+ if (e.type === "BOOKED") {
154
+ const coveragePolicy = e?.payload?.policySnapshot?.coveragePolicy ?? null;
155
+ const required = coveragePolicy?.required === true;
156
+ const tierId = typeof coveragePolicy?.coverageTierId === "string" ? coveragePolicy.coverageTierId.trim() : "";
157
+ const feeCents = coveragePolicy?.feeCentsPerJob ?? 0;
158
+ const hasFee = Number.isSafeInteger(feeCents) && feeCents > 0;
159
+ if (!required && !hasFee && !tierId) continue;
160
+ }
161
+ if (!e?.id || !e?.chainHash) continue;
162
+
163
+ // CoverageCertificate should ideally include the booking-time risk score if it was appended in the same batch.
164
+ let sourceChainHash = e.chainHash;
165
+ if (e.type === "BOOKED") {
166
+ const bookingEventId = e.id;
167
+ const risk = events.find((x) => x?.type === "RISK_SCORED" && x?.payload?.sourceEventId === bookingEventId && x?.chainHash);
168
+ if (risk?.chainHash) sourceChainHash = risk.chainHash;
169
+ }
170
+
171
+ outbox.push({
172
+ type: "ARTIFACT_ENQUEUE",
173
+ tenantId,
174
+ jobId,
175
+ sourceEventId: e.id,
176
+ sourceEventType: e.type,
177
+ sourceChainHash,
178
+ sourceAt: e.at ?? null,
179
+ artifactTypes
180
+ });
181
+ }
182
+
183
+ // Dedupe (jobId + sourceEventId + artifactType).
184
+ const seen = new Set();
185
+ const deduped = [];
186
+ for (const msg of outbox) {
187
+ for (const t of msg.artifactTypes ?? []) {
188
+ const key = `${tenantId}\n${jobId}\n${msg.sourceEventId}\n${t}`;
189
+ if (seen.has(key)) continue;
190
+ seen.add(key);
191
+ deduped.push({ ...msg, artifactTypes: [t] });
192
+ }
193
+ }
194
+ return deduped;
195
+ }
196
+
197
+ export function createArtifactWorker({ store, nowIso, getJobEvents, listDestinationsForTenant }) {
198
+ if (!store) throw new TypeError("store is required");
199
+ if (typeof nowIso !== "function") throw new TypeError("nowIso is required");
200
+ if (typeof getJobEvents !== "function") throw new TypeError("getJobEvents is required");
201
+ if (typeof listDestinationsForTenant !== "function") throw new TypeError("listDestinationsForTenant is required");
202
+
203
+ const artifactWorkerConcurrency = Math.min(50, parsePositiveIntEnv("PROXY_WORKER_CONCURRENCY_ARTIFACTS", 1));
204
+
205
+ async function runGroupsWithConcurrency({ groups, maxConcurrency, handler }) {
206
+ const inFlight = new Set();
207
+ for (const group of groups) {
208
+ const p = (async () => handler(group))().finally(() => inFlight.delete(p));
209
+ inFlight.add(p);
210
+ if (inFlight.size >= maxConcurrency) await Promise.race(inFlight);
211
+ }
212
+ await Promise.all(inFlight);
213
+ }
214
+
215
+ async function buildAndPersistArtifacts({
216
+ tenantId,
217
+ jobId,
218
+ sourceEventId,
219
+ sourceEventType = null,
220
+ sourceChainHash,
221
+ artifactType,
222
+ requestId = null
223
+ }) {
224
+ const allEvents = getJobEvents(tenantId, jobId);
225
+ if (!allEvents.length) return null;
226
+
227
+ const sliced = sourceChainHash ? sliceEventsThroughChainHash(allEvents, sourceChainHash) : allEvents;
228
+ const job = reduceJob(sliced);
229
+ if (!job) return null;
230
+
231
+ const sourceEvent = sliced.find((e) => e?.id === sourceEventId) ?? null;
232
+ const effectiveSourceEventType = sourceEvent?.type ?? sourceEventType ?? null;
233
+ const effectiveSourceEventChainHash = sourceChainHash ?? (typeof sourceEvent?.chainHash === "string" ? sourceEvent.chainHash : null);
234
+ const artifactId = makeArtifactId({ artifactType, jobId, events: sliced, sourceEvent });
235
+
236
+ // Idempotency: if we already persisted this artifactId, reuse it (generatedAt is part of the artifactHash).
237
+ const existing = await store.getArtifact({ tenantId, artifactId });
238
+ if (existing) {
239
+ if (existing.artifactId && String(existing.artifactId) !== String(artifactId)) {
240
+ throw new Error("artifactId lookup returned a different artifactId");
241
+ }
242
+ if (existing.artifactType && String(existing.artifactType) !== String(artifactType)) {
243
+ throw new Error("artifactId already exists with a different artifactType");
244
+ }
245
+ if (!existing.artifactHash) throw new Error("existing artifact is missing artifactHash");
246
+ if (sourceChainHash && existing.atChainHash && String(existing.atChainHash) !== String(sourceChainHash)) {
247
+ throw new Error("artifactId already exists with a different atChainHash");
248
+ }
249
+
250
+ const destinations = listDestinationsForTenant(tenantId).filter((d) => {
251
+ const allowed = Array.isArray(d.artifactTypes) && d.artifactTypes.length ? d.artifactTypes : null;
252
+ return !allowed || allowed.includes(artifactType);
253
+ });
254
+
255
+ for (const dest of destinations) {
256
+ const dedupeKey = `${tenantId}:${dest.destinationId}:${artifactType}:${existing.artifactId ?? artifactId}:${existing.artifactHash}`;
257
+ const scopeKey = String(jobId);
258
+ const orderSeq = Number.isSafeInteger(existing.jobVersion) ? existing.jobVersion : 0;
259
+ const priority = artifactPriority(artifactType);
260
+ const orderKey = `${scopeKey}\n${String(orderSeq)}\n${String(priority)}\n${existing.artifactId ?? artifactId}`;
261
+ await store.createDelivery({
262
+ tenantId,
263
+ delivery: {
264
+ destinationId: dest.destinationId,
265
+ artifactType,
266
+ artifactId: existing.artifactId ?? artifactId,
267
+ artifactHash: existing.artifactHash,
268
+ dedupeKey,
269
+ scopeKey,
270
+ orderSeq,
271
+ priority,
272
+ orderKey
273
+ }
274
+ });
275
+ }
276
+
277
+ logger.info("artifact.reuse", {
278
+ tenantId,
279
+ requestId,
280
+ jobId,
281
+ artifactType,
282
+ artifactId: existing.artifactId ?? artifactId,
283
+ artifactHash: existing.artifactHash,
284
+ atChainHash: existing.atChainHash ?? null,
285
+ deliveriesCreated: destinations.length
286
+ });
287
+ return { artifactId: existing.artifactId ?? artifactId, artifactType, deliveriesCreated: destinations.length };
288
+ }
289
+
290
+ const cfg = typeof store.getConfig === "function" ? store.getConfig(tenantId) : store.config;
291
+ const requestedMax = cfg?.quotas?.maxArtifactsPerJobType ?? 0;
292
+ const maxPerType = clampQuota({ tenantLimit: Number.isSafeInteger(requestedMax) ? requestedMax : 0, defaultLimit: 0, maxLimit: 0 });
293
+ if (maxPerType > 0) {
294
+ let existingCount = 0;
295
+ try {
296
+ const list = typeof store.listArtifacts === "function" ? await store.listArtifacts({ tenantId, jobId, limit: maxPerType, offset: 0 }) : [];
297
+ for (const art of list ?? []) {
298
+ if (!art || typeof art !== "object") continue;
299
+ if (String(art.artifactType ?? art.schemaVersion ?? "") !== String(artifactType)) continue;
300
+ existingCount += 1;
301
+ if (existingCount >= maxPerType) break;
302
+ }
303
+ } catch {
304
+ existingCount = 0;
305
+ }
306
+ if (isQuotaExceeded({ current: existingCount, limit: maxPerType })) {
307
+ const err = new Error("tenant quota exceeded");
308
+ err.code = "TENANT_QUOTA_EXCEEDED";
309
+ err.quota = { kind: "artifacts_per_job_type", limit: maxPerType, current: existingCount };
310
+ throw err;
311
+ }
312
+ }
313
+
314
+ const generatedAt = nowIso();
315
+ let body;
316
+ if (artifactType === ARTIFACT_TYPE.WORK_CERTIFICATE_V1) {
317
+ body = buildWorkCertificateV1({ tenantId, job, events: sliced, artifactId, generatedAt });
318
+ } else if (artifactType === ARTIFACT_TYPE.PROOF_RECEIPT_V1) {
319
+ body = buildProofReceiptV1({ tenantId, job, events: sliced, artifactId, generatedAt });
320
+ } else if (artifactType === ARTIFACT_TYPE.COVERAGE_CERTIFICATE_V1) {
321
+ body = buildCoverageCertificateV1({ tenantId, job, events: sliced, artifactId, generatedAt });
322
+ } else if (artifactType === ARTIFACT_TYPE.INCIDENT_PACKET_V1) {
323
+ body = buildIncidentPacketV1({ tenantId, job, events: sliced, artifactId, generatedAt });
324
+ } else if (artifactType === ARTIFACT_TYPE.CREDIT_MEMO_V1) {
325
+ body = buildCreditMemoV1({ tenantId, job, events: sliced, creditEvent: sourceEvent, artifactId, generatedAt });
326
+ } else if (artifactType === ARTIFACT_TYPE.SETTLEMENT_STATEMENT_V1) {
327
+ let operatorContractDoc = null;
328
+ let splitPlanHash = null;
329
+ if (job?.operatorContractHash && typeof store.getContractV2ByHash === "function") {
330
+ try {
331
+ const contract = await store.getContractV2ByHash({ tenantId, contractHash: job.operatorContractHash });
332
+ operatorContractDoc = contract?.doc ?? null;
333
+ if (operatorContractDoc?.connect?.enabled === true && operatorContractDoc?.connect?.splitPlan) {
334
+ splitPlanHash = hashSplitPlanV1(operatorContractDoc.connect.splitPlan);
335
+ }
336
+ } catch {
337
+ operatorContractDoc = null;
338
+ splitPlanHash = null;
339
+ }
340
+ }
341
+
342
+ const entries = computeJobLedgerEntries(sliced);
343
+ const ledger = summarizeLedger(entries);
344
+
345
+ const allocations = [];
346
+ for (const entry of entries) {
347
+ if (!entry?.id) continue;
348
+ try {
349
+ allocations.push(...allocateEntry({ tenantId, entry, job, operatorContractDoc, currency: "USD" }));
350
+ } catch {
351
+ // Ignore: allocations are best-effort and must not block statement generation.
352
+ }
353
+ }
354
+
355
+ const rollupByParty = new Map(); // `${partyRole}\n${partyId}` -> rollup
356
+ for (const a of allocations) {
357
+ const partyRole = a.partyRole ?? null;
358
+ const partyId = a.partyId ?? null;
359
+ if (!partyRole || !partyId) continue;
360
+ const key = `${partyRole}\n${partyId}`;
361
+ const prev =
362
+ rollupByParty.get(key) ??
363
+ ({
364
+ partyRole,
365
+ partyId,
366
+ feesCents: 0,
367
+ payoutCents: 0,
368
+ creditsCents: 0,
369
+ netCents: 0,
370
+ balanceDeltaCents: 0
371
+ });
372
+
373
+ const next = { ...prev, balanceDeltaCents: prev.balanceDeltaCents + (Number.isSafeInteger(a.amountCents) ? a.amountCents : 0) };
374
+ const accountId = a.accountId ?? null;
375
+ const amt = Number.isSafeInteger(a.amountCents) ? a.amountCents : 0;
376
+
377
+ if (accountId === "acct_platform_revenue") next.feesCents += -amt;
378
+ if (accountId === "acct_owner_payable" || accountId === "acct_operator_payable") next.payoutCents += -amt;
379
+ if (accountId === "acct_customer_credits_payable") next.creditsCents += -amt;
380
+
381
+ next.netCents = next.feesCents + next.payoutCents + next.creditsCents;
382
+ rollupByParty.set(key, next);
383
+ }
384
+
385
+ const partyRollups = Array.from(rollupByParty.values()).sort(
386
+ (a, b) => String(a.partyRole ?? "").localeCompare(String(b.partyRole ?? "")) || String(a.partyId ?? "").localeCompare(String(b.partyId ?? ""))
387
+ );
388
+
389
+ const settlement = {
390
+ currency: "USD",
391
+ quoteAmountCents: Number.isSafeInteger(job.quote?.amountCents) ? job.quote.amountCents : 0,
392
+ operatorCostCents: (job.operatorCosts ?? []).reduce((sum, c) => sum + (Number.isSafeInteger(c?.payload?.costCents) ? c.payload.costCents : 0), 0),
393
+ slaCreditsCents: (job.slaCredits ?? []).reduce((sum, c) => sum + (Number.isSafeInteger(c?.payload?.amountCents) ? c.payload.amountCents : 0), 0),
394
+ claimsPaidCents: (job.claims ?? [])
395
+ .filter((c) => c?.status === "PAID")
396
+ .reduce((sum, c) => sum + (Number.isSafeInteger(c?.paid?.amountCents) ? c.paid.amountCents : 0), 0),
397
+ splitPlanHash,
398
+ partyRollups,
399
+ ledgerEntryIds: ledger.entryIds,
400
+ totalsByAccountId: ledger.totalsByAccountId
401
+ };
402
+ body = buildSettlementStatementV1({ tenantId, job, events: sliced, settlement, artifactId, generatedAt });
403
+ } else {
404
+ return null;
405
+ }
406
+
407
+ const artifactCore = {
408
+ ...body,
409
+ sourceEventId,
410
+ sourceEventType: effectiveSourceEventType,
411
+ sourceEventChainHash: effectiveSourceEventChainHash,
412
+ atChainHash: sourceChainHash ?? body?.eventProof?.lastChainHash ?? null
413
+ };
414
+ const artifactHash = computeArtifactHash(artifactCore);
415
+ const artifact = { ...artifactCore, artifactHash };
416
+
417
+ failpoint("artifact.after_build_before_persist");
418
+
419
+ await store.putArtifact({ tenantId, artifact });
420
+
421
+ failpoint("artifact.after_persist_before_enqueue");
422
+
423
+ const destinations = listDestinationsForTenant(tenantId).filter((d) => {
424
+ const allowed = Array.isArray(d.artifactTypes) && d.artifactTypes.length ? d.artifactTypes : null;
425
+ return !allowed || allowed.includes(artifactType);
426
+ });
427
+
428
+ for (const dest of destinations) {
429
+ const dedupeKey = `${tenantId}:${dest.destinationId}:${artifactType}:${artifact.artifactId}:${artifact.artifactHash}`;
430
+ const scopeKey = String(jobId);
431
+ const orderSeq = Number.isSafeInteger(artifact.jobVersion) ? artifact.jobVersion : 0;
432
+ const priority = artifactPriority(artifactType);
433
+ const orderKey = `${scopeKey}\n${String(orderSeq)}\n${String(priority)}\n${artifact.artifactId}`;
434
+ await store.createDelivery({
435
+ tenantId,
436
+ delivery: {
437
+ destinationId: dest.destinationId,
438
+ artifactType,
439
+ artifactId: artifact.artifactId,
440
+ artifactHash: artifact.artifactHash,
441
+ dedupeKey,
442
+ scopeKey,
443
+ orderSeq,
444
+ priority,
445
+ orderKey
446
+ }
447
+ });
448
+ }
449
+
450
+ try {
451
+ store.metrics?.incCounter?.("artifacts_built_total", { type: artifactType }, 1);
452
+ } catch {}
453
+ logger.info("artifact.built", {
454
+ tenantId,
455
+ requestId,
456
+ jobId,
457
+ artifactType,
458
+ artifactId: artifact.artifactId,
459
+ artifactHash: artifact.artifactHash,
460
+ atChainHash: artifact.atChainHash ?? null,
461
+ deliveriesCreated: destinations.length
462
+ });
463
+ return { artifactId: artifact.artifactId, artifactType, deliveriesCreated: destinations.length };
464
+ }
465
+
466
+ async function tickArtifacts({ maxMessages = 100 } = {}) {
467
+ if (!Number.isSafeInteger(maxMessages) || maxMessages <= 0) throw new TypeError("maxMessages must be a positive safe integer");
468
+
469
+ const processed = [];
470
+
471
+ if (
472
+ store.kind === "pg" &&
473
+ typeof store.claimOutbox === "function" &&
474
+ typeof store.markOutboxProcessed === "function" &&
475
+ typeof store.markOutboxFailed === "function"
476
+ ) {
477
+ const claimed = await store.claimOutbox({ topic: "ARTIFACT_ENQUEUE", maxMessages, worker: "artifacts_v1" });
478
+ const byJob = new Map();
479
+ for (const row of claimed) {
480
+ const msg = row?.message ?? null;
481
+ const tenantId = normalizeTenantId(msg?.tenantId ?? DEFAULT_TENANT_ID);
482
+ const jobId = msg?.jobId ? String(msg.jobId) : "";
483
+ const key = `${tenantId}\n${jobId || "unknown"}`;
484
+ const list = byJob.get(key) ?? [];
485
+ list.push(row);
486
+ byJob.set(key, list);
487
+ }
488
+
489
+ const groups = Array.from(byJob.values());
490
+ await runGroupsWithConcurrency({
491
+ groups,
492
+ maxConcurrency: artifactWorkerConcurrency,
493
+ handler: async (rows) => {
494
+ for (const row of rows) {
495
+ try {
496
+ const msg = row.message ?? null;
497
+ const tenantId = normalizeTenantId(msg?.tenantId ?? DEFAULT_TENANT_ID);
498
+ const jobId = msg?.jobId;
499
+ const artifactType = Array.isArray(msg?.artifactTypes) ? msg.artifactTypes[0] : null;
500
+ assertNonEmptyString(jobId, "jobId");
501
+ assertNonEmptyString(artifactType, "artifactType");
502
+
503
+ const result = await buildAndPersistArtifacts({
504
+ tenantId,
505
+ jobId,
506
+ sourceEventId: msg?.sourceEventId ?? null,
507
+ sourceEventType: msg?.sourceEventType ?? null,
508
+ sourceChainHash: msg?.sourceChainHash ?? null,
509
+ artifactType,
510
+ requestId: msg?.requestId ?? null
511
+ });
512
+ const lastError = result ? null : "skipped";
513
+ await store.markOutboxProcessed({ ids: [row.id], lastError });
514
+ if (result) processed.push({ outboxId: row.id, ...result });
515
+ } catch (err) {
516
+ const lastError = typeof err?.message === "string" && err.message.trim() ? err.message : String(err ?? "artifact build failed");
517
+ try {
518
+ store.metrics?.incCounter?.("artifact_build_fail_total", { type: String(row?.message?.artifactTypes?.[0] ?? "unknown") }, 1);
519
+ store.metrics?.incCounter?.("outbox_fail_total", { kind: "ARTIFACT_ENQUEUE" }, 1);
520
+ } catch {}
521
+ logger.error("artifact.build.failed", {
522
+ tenantId: normalizeTenantId(row?.message?.tenantId ?? DEFAULT_TENANT_ID),
523
+ requestId: row?.message?.requestId ?? null,
524
+ jobId: row?.message?.jobId ?? null,
525
+ artifactType: Array.isArray(row?.message?.artifactTypes) ? row.message.artifactTypes[0] : null,
526
+ outboxId: row.id,
527
+ err
528
+ });
529
+ if (Number.isSafeInteger(row.attempts) && row.attempts >= outboxMaxAttempts) {
530
+ await store.markOutboxProcessed({ ids: [row.id], lastError: `DLQ:${lastError}` });
531
+ } else {
532
+ await store.markOutboxFailed({ ids: [row.id], lastError });
533
+ }
534
+ }
535
+ }
536
+ }
537
+ });
538
+ return { processed };
539
+ }
540
+
541
+ // In-memory outbox scan.
542
+ if (!Number.isSafeInteger(store.artifactCursor) || store.artifactCursor < 0) store.artifactCursor = 0;
543
+ while (store.artifactCursor < store.outbox.length && processed.length < maxMessages) {
544
+ const msg = store.outbox[store.artifactCursor];
545
+ store.artifactCursor += 1;
546
+ if (!msg || typeof msg !== "object") continue;
547
+ if (msg.type !== "ARTIFACT_ENQUEUE") continue;
548
+
549
+ try {
550
+ const tenantId = normalizeTenantId(msg.tenantId ?? DEFAULT_TENANT_ID);
551
+ const jobId = msg.jobId;
552
+ const artifactTypes = Array.isArray(msg.artifactTypes) ? msg.artifactTypes : [];
553
+ for (const artifactType of artifactTypes) {
554
+ const result = await buildAndPersistArtifacts({
555
+ tenantId,
556
+ jobId,
557
+ sourceEventId: msg.sourceEventId ?? null,
558
+ sourceEventType: msg.sourceEventType ?? null,
559
+ sourceChainHash: msg.sourceChainHash ?? null,
560
+ artifactType,
561
+ requestId: msg.requestId ?? null
562
+ });
563
+ if (result) processed.push(result);
564
+ }
565
+ } catch {
566
+ // Ignore bad messages.
567
+ }
568
+ }
569
+
570
+ return { processed, cursor: store.artifactCursor };
571
+ }
572
+
573
+ return { tickArtifacts };
574
+ }