@sourcey/catalog-verifier 1.0.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 (402) hide show
  1. package/CHANGELOG.md +3 -0
  2. package/LICENSE +21 -0
  3. package/README.md +64 -0
  4. package/SBOM.cdx.json +177 -0
  5. package/SECURITY.md +8 -0
  6. package/SOURCEY-CLOSURE.json +1559 -0
  7. package/SOURCEY-DISTRIBUTION.json +24 -0
  8. package/SOURCEY-LICENSE-POLICY.json +5 -0
  9. package/SOURCEY-TOOLCHAIN.json +8 -0
  10. package/SUPPORT.md +5 -0
  11. package/THIRD_PARTY_NOTICES.json +69 -0
  12. package/dist/contracts/agent-readiness/src/declaration-acquisition.d.ts +548 -0
  13. package/dist/contracts/agent-readiness/src/declaration-acquisition.d.ts.map +1 -0
  14. package/dist/contracts/agent-readiness/src/declaration-acquisition.js +159 -0
  15. package/dist/contracts/agent-readiness/src/declaration-acquisition.js.map +1 -0
  16. package/dist/contracts/agent-readiness/src/declaration-reference.d.ts +48 -0
  17. package/dist/contracts/agent-readiness/src/declaration-reference.d.ts.map +1 -0
  18. package/dist/contracts/agent-readiness/src/declaration-reference.js +42 -0
  19. package/dist/contracts/agent-readiness/src/declaration-reference.js.map +1 -0
  20. package/dist/contracts/agent-readiness/src/declaration.d.ts +1357 -0
  21. package/dist/contracts/agent-readiness/src/declaration.d.ts.map +1 -0
  22. package/dist/contracts/agent-readiness/src/declaration.js +659 -0
  23. package/dist/contracts/agent-readiness/src/declaration.js.map +1 -0
  24. package/dist/contracts/agent-readiness/src/evidence.d.ts +146 -0
  25. package/dist/contracts/agent-readiness/src/evidence.d.ts.map +1 -0
  26. package/dist/contracts/agent-readiness/src/evidence.js +154 -0
  27. package/dist/contracts/agent-readiness/src/evidence.js.map +1 -0
  28. package/dist/contracts/agent-readiness/src/index.d.ts +6487 -0
  29. package/dist/contracts/agent-readiness/src/index.d.ts.map +1 -0
  30. package/dist/contracts/agent-readiness/src/index.js +1487 -0
  31. package/dist/contracts/agent-readiness/src/index.js.map +1 -0
  32. package/dist/contracts/agent-readiness/src/interaction.d.ts +26 -0
  33. package/dist/contracts/agent-readiness/src/interaction.d.ts.map +1 -0
  34. package/dist/contracts/agent-readiness/src/interaction.js +24 -0
  35. package/dist/contracts/agent-readiness/src/interaction.js.map +1 -0
  36. package/dist/contracts/agent-readiness/src/method-pack.d.ts +391 -0
  37. package/dist/contracts/agent-readiness/src/method-pack.d.ts.map +1 -0
  38. package/dist/contracts/agent-readiness/src/method-pack.js +181 -0
  39. package/dist/contracts/agent-readiness/src/method-pack.js.map +1 -0
  40. package/dist/contracts/agent-readiness/src/shared.d.ts +119 -0
  41. package/dist/contracts/agent-readiness/src/shared.d.ts.map +1 -0
  42. package/dist/contracts/agent-readiness/src/shared.js +144 -0
  43. package/dist/contracts/agent-readiness/src/shared.js.map +1 -0
  44. package/dist/contracts/api/src/index.d.ts +48463 -0
  45. package/dist/contracts/api/src/index.d.ts.map +1 -0
  46. package/dist/contracts/api/src/index.js +1150 -0
  47. package/dist/contracts/api/src/index.js.map +1 -0
  48. package/dist/contracts/artifact/src/index.d.ts +1467 -0
  49. package/dist/contracts/artifact/src/index.d.ts.map +1 -0
  50. package/dist/contracts/artifact/src/index.js +325 -0
  51. package/dist/contracts/artifact/src/index.js.map +1 -0
  52. package/dist/contracts/assets/src/index.d.ts +1397 -0
  53. package/dist/contracts/assets/src/index.d.ts.map +1 -0
  54. package/dist/contracts/assets/src/index.js +560 -0
  55. package/dist/contracts/assets/src/index.js.map +1 -0
  56. package/dist/contracts/authoring/src/index.d.ts +1084 -0
  57. package/dist/contracts/authoring/src/index.d.ts.map +1 -0
  58. package/dist/contracts/authoring/src/index.js +211 -0
  59. package/dist/contracts/authoring/src/index.js.map +1 -0
  60. package/dist/contracts/authority/src/index.d.ts +135 -0
  61. package/dist/contracts/authority/src/index.d.ts.map +1 -0
  62. package/dist/contracts/authority/src/index.js +130 -0
  63. package/dist/contracts/authority/src/index.js.map +1 -0
  64. package/dist/contracts/billing/src/index.d.ts +587 -0
  65. package/dist/contracts/billing/src/index.d.ts.map +1 -0
  66. package/dist/contracts/billing/src/index.js +322 -0
  67. package/dist/contracts/billing/src/index.js.map +1 -0
  68. package/dist/contracts/catalog-verifier/src/index.d.ts +390 -0
  69. package/dist/contracts/catalog-verifier/src/index.d.ts.map +1 -0
  70. package/dist/contracts/catalog-verifier/src/index.js +222 -0
  71. package/dist/contracts/catalog-verifier/src/index.js.map +1 -0
  72. package/dist/contracts/commercial-work/src/index.d.ts +835 -0
  73. package/dist/contracts/commercial-work/src/index.d.ts.map +1 -0
  74. package/dist/contracts/commercial-work/src/index.js +510 -0
  75. package/dist/contracts/commercial-work/src/index.js.map +1 -0
  76. package/dist/contracts/events/src/index.d.ts +700 -0
  77. package/dist/contracts/events/src/index.d.ts.map +1 -0
  78. package/dist/contracts/events/src/index.js +553 -0
  79. package/dist/contracts/events/src/index.js.map +1 -0
  80. package/dist/contracts/evidence/src/index.d.ts +487 -0
  81. package/dist/contracts/evidence/src/index.d.ts.map +1 -0
  82. package/dist/contracts/evidence/src/index.js +342 -0
  83. package/dist/contracts/evidence/src/index.js.map +1 -0
  84. package/dist/contracts/feed/src/index.d.ts +159 -0
  85. package/dist/contracts/feed/src/index.d.ts.map +1 -0
  86. package/dist/contracts/feed/src/index.js +79 -0
  87. package/dist/contracts/feed/src/index.js.map +1 -0
  88. package/dist/contracts/funded-work/src/index.d.ts +64 -0
  89. package/dist/contracts/funded-work/src/index.d.ts.map +1 -0
  90. package/dist/contracts/funded-work/src/index.js +67 -0
  91. package/dist/contracts/funded-work/src/index.js.map +1 -0
  92. package/dist/contracts/observations/src/index.d.ts +134 -0
  93. package/dist/contracts/observations/src/index.d.ts.map +1 -0
  94. package/dist/contracts/observations/src/index.js +112 -0
  95. package/dist/contracts/observations/src/index.js.map +1 -0
  96. package/dist/contracts/policies/src/index.d.ts +151 -0
  97. package/dist/contracts/policies/src/index.d.ts.map +1 -0
  98. package/dist/contracts/policies/src/index.js +121 -0
  99. package/dist/contracts/policies/src/index.js.map +1 -0
  100. package/dist/contracts/publication/src/index.d.ts +4066 -0
  101. package/dist/contracts/publication/src/index.d.ts.map +1 -0
  102. package/dist/contracts/publication/src/index.js +535 -0
  103. package/dist/contracts/publication/src/index.js.map +1 -0
  104. package/dist/contracts/release/src/index.d.ts +2032 -0
  105. package/dist/contracts/release/src/index.d.ts.map +1 -0
  106. package/dist/contracts/release/src/index.js +252 -0
  107. package/dist/contracts/release/src/index.js.map +1 -0
  108. package/dist/contracts/revisions/src/index.d.ts +1405 -0
  109. package/dist/contracts/revisions/src/index.d.ts.map +1 -0
  110. package/dist/contracts/revisions/src/index.js +493 -0
  111. package/dist/contracts/revisions/src/index.js.map +1 -0
  112. package/dist/contracts/routes/src/index.d.ts +103 -0
  113. package/dist/contracts/routes/src/index.d.ts.map +1 -0
  114. package/dist/contracts/routes/src/index.js +163 -0
  115. package/dist/contracts/routes/src/index.js.map +1 -0
  116. package/dist/contracts/routes/src/public-route-allocations.generated.d.ts +2 -0
  117. package/dist/contracts/routes/src/public-route-allocations.generated.d.ts.map +1 -0
  118. package/dist/contracts/routes/src/public-route-allocations.generated.js +56 -0
  119. package/dist/contracts/routes/src/public-route-allocations.generated.js.map +1 -0
  120. package/dist/contracts/standards/src/index.d.ts +1482 -0
  121. package/dist/contracts/standards/src/index.d.ts.map +1 -0
  122. package/dist/contracts/standards/src/index.js +626 -0
  123. package/dist/contracts/standards/src/index.js.map +1 -0
  124. package/dist/contracts/taxonomy/src/index.d.ts +7 -0
  125. package/dist/contracts/taxonomy/src/index.d.ts.map +1 -0
  126. package/dist/contracts/taxonomy/src/index.js +25 -0
  127. package/dist/contracts/taxonomy/src/index.js.map +1 -0
  128. package/dist/modules/agent-readiness-policy/src/current-policy-metrics.d.ts +20 -0
  129. package/dist/modules/agent-readiness-policy/src/current-policy-metrics.d.ts.map +1 -0
  130. package/dist/modules/agent-readiness-policy/src/current-policy-metrics.js +604 -0
  131. package/dist/modules/agent-readiness-policy/src/current-policy-metrics.js.map +1 -0
  132. package/dist/modules/agent-readiness-policy/src/current-policy.d.ts +249 -0
  133. package/dist/modules/agent-readiness-policy/src/current-policy.d.ts.map +1 -0
  134. package/dist/modules/agent-readiness-policy/src/current-policy.js +470 -0
  135. package/dist/modules/agent-readiness-policy/src/current-policy.js.map +1 -0
  136. package/dist/modules/agent-readiness-policy/src/grading.d.ts +39 -0
  137. package/dist/modules/agent-readiness-policy/src/grading.d.ts.map +1 -0
  138. package/dist/modules/agent-readiness-policy/src/grading.js +40 -0
  139. package/dist/modules/agent-readiness-policy/src/grading.js.map +1 -0
  140. package/dist/modules/agent-readiness-policy/src/impact.d.ts +103 -0
  141. package/dist/modules/agent-readiness-policy/src/impact.d.ts.map +1 -0
  142. package/dist/modules/agent-readiness-policy/src/impact.js +249 -0
  143. package/dist/modules/agent-readiness-policy/src/impact.js.map +1 -0
  144. package/dist/modules/agent-readiness-policy/src/index.d.ts +811 -0
  145. package/dist/modules/agent-readiness-policy/src/index.d.ts.map +1 -0
  146. package/dist/modules/agent-readiness-policy/src/index.js +499 -0
  147. package/dist/modules/agent-readiness-policy/src/index.js.map +1 -0
  148. package/dist/modules/agent-readiness-policy/src/offer-relations.d.ts +12 -0
  149. package/dist/modules/agent-readiness-policy/src/offer-relations.d.ts.map +1 -0
  150. package/dist/modules/agent-readiness-policy/src/offer-relations.js +65 -0
  151. package/dist/modules/agent-readiness-policy/src/offer-relations.js.map +1 -0
  152. package/dist/modules/agent-readiness-policy/src/policy-validation.d.ts +4 -0
  153. package/dist/modules/agent-readiness-policy/src/policy-validation.d.ts.map +1 -0
  154. package/dist/modules/agent-readiness-policy/src/policy-validation.js +59 -0
  155. package/dist/modules/agent-readiness-policy/src/policy-validation.js.map +1 -0
  156. package/dist/modules/agent-readiness-policy/src/projection-lineage.d.ts +3 -0
  157. package/dist/modules/agent-readiness-policy/src/projection-lineage.d.ts.map +1 -0
  158. package/dist/modules/agent-readiness-policy/src/projection-lineage.js +12 -0
  159. package/dist/modules/agent-readiness-policy/src/projection-lineage.js.map +1 -0
  160. package/dist/modules/agent-readiness-policy/src/revision.d.ts +4 -0
  161. package/dist/modules/agent-readiness-policy/src/revision.d.ts.map +1 -0
  162. package/dist/modules/agent-readiness-policy/src/revision.js +46 -0
  163. package/dist/modules/agent-readiness-policy/src/revision.js.map +1 -0
  164. package/dist/modules/agent-readiness-policy/src/standard-mapping.d.ts +7 -0
  165. package/dist/modules/agent-readiness-policy/src/standard-mapping.d.ts.map +1 -0
  166. package/dist/modules/agent-readiness-policy/src/standard-mapping.js +13 -0
  167. package/dist/modules/agent-readiness-policy/src/standard-mapping.js.map +1 -0
  168. package/dist/modules/agent-readiness-policy/src/surface-selection.d.ts +36 -0
  169. package/dist/modules/agent-readiness-policy/src/surface-selection.d.ts.map +1 -0
  170. package/dist/modules/agent-readiness-policy/src/surface-selection.js +214 -0
  171. package/dist/modules/agent-readiness-policy/src/surface-selection.js.map +1 -0
  172. package/dist/modules/agent-readiness-repository/src/admission.d.ts +35 -0
  173. package/dist/modules/agent-readiness-repository/src/admission.d.ts.map +1 -0
  174. package/dist/modules/agent-readiness-repository/src/admission.js +56 -0
  175. package/dist/modules/agent-readiness-repository/src/admission.js.map +1 -0
  176. package/dist/modules/agent-readiness-repository/src/change.d.ts +62 -0
  177. package/dist/modules/agent-readiness-repository/src/change.d.ts.map +1 -0
  178. package/dist/modules/agent-readiness-repository/src/change.js +218 -0
  179. package/dist/modules/agent-readiness-repository/src/change.js.map +1 -0
  180. package/dist/modules/agent-readiness-repository/src/declaration-blob.d.ts +29 -0
  181. package/dist/modules/agent-readiness-repository/src/declaration-blob.d.ts.map +1 -0
  182. package/dist/modules/agent-readiness-repository/src/declaration-blob.js +126 -0
  183. package/dist/modules/agent-readiness-repository/src/declaration-blob.js.map +1 -0
  184. package/dist/modules/agent-readiness-repository/src/index.d.ts +102 -0
  185. package/dist/modules/agent-readiness-repository/src/index.d.ts.map +1 -0
  186. package/dist/modules/agent-readiness-repository/src/index.js +208 -0
  187. package/dist/modules/agent-readiness-repository/src/index.js.map +1 -0
  188. package/dist/modules/artifact/src/agent-readiness-closure.d.ts +24 -0
  189. package/dist/modules/artifact/src/agent-readiness-closure.d.ts.map +1 -0
  190. package/dist/modules/artifact/src/agent-readiness-closure.js +98 -0
  191. package/dist/modules/artifact/src/agent-readiness-closure.js.map +1 -0
  192. package/dist/modules/artifact/src/asset-closure.d.ts +12 -0
  193. package/dist/modules/artifact/src/asset-closure.d.ts.map +1 -0
  194. package/dist/modules/artifact/src/asset-closure.js +40 -0
  195. package/dist/modules/artifact/src/asset-closure.js.map +1 -0
  196. package/dist/modules/artifact/src/authoring-closure.d.ts +4 -0
  197. package/dist/modules/artifact/src/authoring-closure.d.ts.map +1 -0
  198. package/dist/modules/artifact/src/authoring-closure.js +19 -0
  199. package/dist/modules/artifact/src/authoring-closure.js.map +1 -0
  200. package/dist/modules/artifact/src/index.d.ts +46 -0
  201. package/dist/modules/artifact/src/index.d.ts.map +1 -0
  202. package/dist/modules/artifact/src/index.js +563 -0
  203. package/dist/modules/artifact/src/index.js.map +1 -0
  204. package/dist/modules/artifact/src/trust-history.d.ts +3 -0
  205. package/dist/modules/artifact/src/trust-history.d.ts.map +1 -0
  206. package/dist/modules/artifact/src/trust-history.js +134 -0
  207. package/dist/modules/artifact/src/trust-history.js.map +1 -0
  208. package/dist/modules/assets/src/authority-bundle.d.ts +36 -0
  209. package/dist/modules/assets/src/authority-bundle.d.ts.map +1 -0
  210. package/dist/modules/assets/src/authority-bundle.js +206 -0
  211. package/dist/modules/assets/src/authority-bundle.js.map +1 -0
  212. package/dist/modules/assets/src/delta.d.ts +18 -0
  213. package/dist/modules/assets/src/delta.d.ts.map +1 -0
  214. package/dist/modules/assets/src/delta.js +183 -0
  215. package/dist/modules/assets/src/delta.js.map +1 -0
  216. package/dist/modules/assets/src/disposition.d.ts +3 -0
  217. package/dist/modules/assets/src/disposition.d.ts.map +1 -0
  218. package/dist/modules/assets/src/disposition.js +30 -0
  219. package/dist/modules/assets/src/disposition.js.map +1 -0
  220. package/dist/modules/assets/src/index.d.ts +25 -0
  221. package/dist/modules/assets/src/index.d.ts.map +1 -0
  222. package/dist/modules/assets/src/index.js +234 -0
  223. package/dist/modules/assets/src/index.js.map +1 -0
  224. package/dist/modules/assets/src/ingestion.d.ts +69 -0
  225. package/dist/modules/assets/src/ingestion.d.ts.map +1 -0
  226. package/dist/modules/assets/src/ingestion.js +169 -0
  227. package/dist/modules/assets/src/ingestion.js.map +1 -0
  228. package/dist/modules/authority/src/index.d.ts +47 -0
  229. package/dist/modules/authority/src/index.d.ts.map +1 -0
  230. package/dist/modules/authority/src/index.js +349 -0
  231. package/dist/modules/authority/src/index.js.map +1 -0
  232. package/dist/modules/authority-state/src/index.d.ts +43 -0
  233. package/dist/modules/authority-state/src/index.d.ts.map +1 -0
  234. package/dist/modules/authority-state/src/index.js +194 -0
  235. package/dist/modules/authority-state/src/index.js.map +1 -0
  236. package/dist/modules/catalog-admission/src/admission-conflicts.d.ts +424 -0
  237. package/dist/modules/catalog-admission/src/admission-conflicts.d.ts.map +1 -0
  238. package/dist/modules/catalog-admission/src/admission-conflicts.js +369 -0
  239. package/dist/modules/catalog-admission/src/admission-conflicts.js.map +1 -0
  240. package/dist/modules/catalog-admission/src/index.d.ts +248 -0
  241. package/dist/modules/catalog-admission/src/index.d.ts.map +1 -0
  242. package/dist/modules/catalog-admission/src/index.js +601 -0
  243. package/dist/modules/catalog-admission/src/index.js.map +1 -0
  244. package/dist/modules/catalog-admission/src/machine-admission.d.ts +1273 -0
  245. package/dist/modules/catalog-admission/src/machine-admission.d.ts.map +1 -0
  246. package/dist/modules/catalog-admission/src/machine-admission.js +529 -0
  247. package/dist/modules/catalog-admission/src/machine-admission.js.map +1 -0
  248. package/dist/modules/catalog-admission/src/publication-assets.d.ts +5 -0
  249. package/dist/modules/catalog-admission/src/publication-assets.d.ts.map +1 -0
  250. package/dist/modules/catalog-admission/src/publication-assets.js +26 -0
  251. package/dist/modules/catalog-admission/src/publication-assets.js.map +1 -0
  252. package/dist/modules/catalog-admission/src/publication-dependencies.d.ts +96 -0
  253. package/dist/modules/catalog-admission/src/publication-dependencies.d.ts.map +1 -0
  254. package/dist/modules/catalog-admission/src/publication-dependencies.js +177 -0
  255. package/dist/modules/catalog-admission/src/publication-dependencies.js.map +1 -0
  256. package/dist/modules/catalog-admission/src/publication-entities.d.ts +9 -0
  257. package/dist/modules/catalog-admission/src/publication-entities.d.ts.map +1 -0
  258. package/dist/modules/catalog-admission/src/publication-entities.js +48 -0
  259. package/dist/modules/catalog-admission/src/publication-entities.js.map +1 -0
  260. package/dist/modules/catalog-admission/src/publication-recomposition.d.ts +42 -0
  261. package/dist/modules/catalog-admission/src/publication-recomposition.d.ts.map +1 -0
  262. package/dist/modules/catalog-admission/src/publication-recomposition.js +163 -0
  263. package/dist/modules/catalog-admission/src/publication-recomposition.js.map +1 -0
  264. package/dist/modules/catalog-admission/src/publication.d.ts +92 -0
  265. package/dist/modules/catalog-admission/src/publication.d.ts.map +1 -0
  266. package/dist/modules/catalog-admission/src/publication.js +605 -0
  267. package/dist/modules/catalog-admission/src/publication.js.map +1 -0
  268. package/dist/modules/catalog-admission/src/submission.d.ts +47 -0
  269. package/dist/modules/catalog-admission/src/submission.d.ts.map +1 -0
  270. package/dist/modules/catalog-admission/src/submission.js +289 -0
  271. package/dist/modules/catalog-admission/src/submission.js.map +1 -0
  272. package/dist/modules/catalog-authoring-validation/src/index.d.ts +46 -0
  273. package/dist/modules/catalog-authoring-validation/src/index.d.ts.map +1 -0
  274. package/dist/modules/catalog-authoring-validation/src/index.js +98 -0
  275. package/dist/modules/catalog-authoring-validation/src/index.js.map +1 -0
  276. package/dist/modules/catalog-model/src/index.d.ts +26 -0
  277. package/dist/modules/catalog-model/src/index.d.ts.map +1 -0
  278. package/dist/modules/catalog-model/src/index.js +80 -0
  279. package/dist/modules/catalog-model/src/index.js.map +1 -0
  280. package/dist/modules/cli/src/index.d.ts +10 -0
  281. package/dist/modules/cli/src/index.d.ts.map +1 -0
  282. package/dist/modules/cli/src/index.js +31 -0
  283. package/dist/modules/cli/src/index.js.map +1 -0
  284. package/dist/modules/compiler/src/index.d.ts +23 -0
  285. package/dist/modules/compiler/src/index.d.ts.map +1 -0
  286. package/dist/modules/compiler/src/index.js +75 -0
  287. package/dist/modules/compiler/src/index.js.map +1 -0
  288. package/dist/modules/evidence-operations/src/dependency-versions.d.ts +2 -0
  289. package/dist/modules/evidence-operations/src/dependency-versions.d.ts.map +1 -0
  290. package/dist/modules/evidence-operations/src/dependency-versions.js +17 -0
  291. package/dist/modules/evidence-operations/src/dependency-versions.js.map +1 -0
  292. package/dist/modules/evidence-operations/src/evidence-normalization.d.ts +111 -0
  293. package/dist/modules/evidence-operations/src/evidence-normalization.d.ts.map +1 -0
  294. package/dist/modules/evidence-operations/src/evidence-normalization.js +309 -0
  295. package/dist/modules/evidence-operations/src/evidence-normalization.js.map +1 -0
  296. package/dist/modules/evidence-operations/src/proof-graph.d.ts +22 -0
  297. package/dist/modules/evidence-operations/src/proof-graph.d.ts.map +1 -0
  298. package/dist/modules/evidence-operations/src/proof-graph.js +188 -0
  299. package/dist/modules/evidence-operations/src/proof-graph.js.map +1 -0
  300. package/dist/modules/evidence-operations/src/source-authority.d.ts +31 -0
  301. package/dist/modules/evidence-operations/src/source-authority.d.ts.map +1 -0
  302. package/dist/modules/evidence-operations/src/source-authority.js +60 -0
  303. package/dist/modules/evidence-operations/src/source-authority.js.map +1 -0
  304. package/dist/modules/evidence-operations/src/submission-verifier.d.ts +318 -0
  305. package/dist/modules/evidence-operations/src/submission-verifier.d.ts.map +1 -0
  306. package/dist/modules/evidence-operations/src/submission-verifier.js +392 -0
  307. package/dist/modules/evidence-operations/src/submission-verifier.js.map +1 -0
  308. package/dist/modules/evidence-operations/src/url-canonicalization.d.ts +3 -0
  309. package/dist/modules/evidence-operations/src/url-canonicalization.d.ts.map +1 -0
  310. package/dist/modules/evidence-operations/src/url-canonicalization.js +7 -0
  311. package/dist/modules/evidence-operations/src/url-canonicalization.js.map +1 -0
  312. package/dist/modules/primitives/src/index.d.ts +40 -0
  313. package/dist/modules/primitives/src/index.d.ts.map +1 -0
  314. package/dist/modules/primitives/src/index.js +154 -0
  315. package/dist/modules/primitives/src/index.js.map +1 -0
  316. package/dist/modules/provenance/src/evidence-bindings.d.ts +10 -0
  317. package/dist/modules/provenance/src/evidence-bindings.d.ts.map +1 -0
  318. package/dist/modules/provenance/src/evidence-bindings.js +49 -0
  319. package/dist/modules/provenance/src/evidence-bindings.js.map +1 -0
  320. package/dist/modules/provenance/src/evidence-coverage.d.ts +35 -0
  321. package/dist/modules/provenance/src/evidence-coverage.d.ts.map +1 -0
  322. package/dist/modules/provenance/src/evidence-coverage.js +131 -0
  323. package/dist/modules/provenance/src/evidence-coverage.js.map +1 -0
  324. package/dist/modules/provenance/src/index.d.ts +68 -0
  325. package/dist/modules/provenance/src/index.d.ts.map +1 -0
  326. package/dist/modules/provenance/src/index.js +536 -0
  327. package/dist/modules/provenance/src/index.js.map +1 -0
  328. package/dist/modules/provenance/src/material-claims.d.ts +381 -0
  329. package/dist/modules/provenance/src/material-claims.d.ts.map +1 -0
  330. package/dist/modules/provenance/src/material-claims.js +375 -0
  331. package/dist/modules/provenance/src/material-claims.js.map +1 -0
  332. package/dist/modules/provenance/src/prospective-evidence.d.ts +6 -0
  333. package/dist/modules/provenance/src/prospective-evidence.d.ts.map +1 -0
  334. package/dist/modules/provenance/src/prospective-evidence.js +61 -0
  335. package/dist/modules/provenance/src/prospective-evidence.js.map +1 -0
  336. package/dist/modules/release/src/asset-delta-verifier.d.ts +12 -0
  337. package/dist/modules/release/src/asset-delta-verifier.d.ts.map +1 -0
  338. package/dist/modules/release/src/asset-delta-verifier.js +82 -0
  339. package/dist/modules/release/src/asset-delta-verifier.js.map +1 -0
  340. package/dist/modules/release/src/changes.d.ts +23 -0
  341. package/dist/modules/release/src/changes.d.ts.map +1 -0
  342. package/dist/modules/release/src/changes.js +389 -0
  343. package/dist/modules/release/src/changes.js.map +1 -0
  344. package/dist/modules/release/src/identity.d.ts +17 -0
  345. package/dist/modules/release/src/identity.d.ts.map +1 -0
  346. package/dist/modules/release/src/identity.js +433 -0
  347. package/dist/modules/release/src/identity.js.map +1 -0
  348. package/dist/modules/release/src/inputs.d.ts +89 -0
  349. package/dist/modules/release/src/inputs.d.ts.map +1 -0
  350. package/dist/modules/release/src/inputs.js +514 -0
  351. package/dist/modules/release/src/inputs.js.map +1 -0
  352. package/dist/modules/release/src/publication-inputs.d.ts +9 -0
  353. package/dist/modules/release/src/publication-inputs.d.ts.map +1 -0
  354. package/dist/modules/release/src/publication-inputs.js +67 -0
  355. package/dist/modules/release/src/publication-inputs.js.map +1 -0
  356. package/dist/modules/release/src/release-directory-files.d.ts +7 -0
  357. package/dist/modules/release/src/release-directory-files.d.ts.map +1 -0
  358. package/dist/modules/release/src/release-directory-files.js +49 -0
  359. package/dist/modules/release/src/release-directory-files.js.map +1 -0
  360. package/dist/modules/release/src/release-revision-parser.d.ts +5 -0
  361. package/dist/modules/release/src/release-revision-parser.d.ts.map +1 -0
  362. package/dist/modules/release/src/release-revision-parser.js +19 -0
  363. package/dist/modules/release/src/release-revision-parser.js.map +1 -0
  364. package/dist/modules/release/src/transition.d.ts +36 -0
  365. package/dist/modules/release/src/transition.d.ts.map +1 -0
  366. package/dist/modules/release/src/transition.js +263 -0
  367. package/dist/modules/release/src/transition.js.map +1 -0
  368. package/dist/modules/release/src/verification-policies.d.ts +278 -0
  369. package/dist/modules/release/src/verification-policies.d.ts.map +1 -0
  370. package/dist/modules/release/src/verification-policies.js +38 -0
  371. package/dist/modules/release/src/verification-policies.js.map +1 -0
  372. package/dist/modules/release/src/verification-transitions.d.ts +14 -0
  373. package/dist/modules/release/src/verification-transitions.d.ts.map +1 -0
  374. package/dist/modules/release/src/verification-transitions.js +26 -0
  375. package/dist/modules/release/src/verification-transitions.js.map +1 -0
  376. package/dist/modules/release/src/verifier.d.ts +41 -0
  377. package/dist/modules/release/src/verifier.d.ts.map +1 -0
  378. package/dist/modules/release/src/verifier.js +577 -0
  379. package/dist/modules/release/src/verifier.js.map +1 -0
  380. package/dist/modules/standard-adapter-runtime/src/index.d.ts +16 -0
  381. package/dist/modules/standard-adapter-runtime/src/index.d.ts.map +1 -0
  382. package/dist/modules/standard-adapter-runtime/src/index.js +43 -0
  383. package/dist/modules/standard-adapter-runtime/src/index.js.map +1 -0
  384. package/dist/modules/standard-evidence/src/index.d.ts +33 -0
  385. package/dist/modules/standard-evidence/src/index.d.ts.map +1 -0
  386. package/dist/modules/standard-evidence/src/index.js +149 -0
  387. package/dist/modules/standard-evidence/src/index.js.map +1 -0
  388. package/dist/packages/catalog-verifier/src/application.d.ts +89 -0
  389. package/dist/packages/catalog-verifier/src/application.d.ts.map +1 -0
  390. package/dist/packages/catalog-verifier/src/application.js +363 -0
  391. package/dist/packages/catalog-verifier/src/application.js.map +1 -0
  392. package/dist/packages/catalog-verifier/src/index.d.ts +7 -0
  393. package/dist/packages/catalog-verifier/src/index.d.ts.map +1 -0
  394. package/dist/packages/catalog-verifier/src/index.js +7 -0
  395. package/dist/packages/catalog-verifier/src/index.js.map +1 -0
  396. package/dist/packages/catalog-verifier/src/program.d.ts +4 -0
  397. package/dist/packages/catalog-verifier/src/program.d.ts.map +1 -0
  398. package/dist/packages/catalog-verifier/src/program.js +203 -0
  399. package/dist/packages/catalog-verifier/src/program.js.map +1 -0
  400. package/package.json +63 -0
  401. package/sourcey-catalog-verify.js +7 -0
  402. package/taxonomy.json +29 -0
@@ -0,0 +1,536 @@
1
+ import { catalogEventPayloadSchemas, } from "../../../contracts/events/src/index.js";
2
+ import { deriveAuthorityState, entityAcceptsClaimAuthorityDomain, } from "../../authority-state/src/index.js";
3
+ import { compareCanonicalStrings } from "../../primitives/src/index.js";
4
+ import { assertEvidenceBindingClosure, evidenceAssertions } from "./evidence-bindings.js";
5
+ import { applicableEvidenceCoverageRequirements, evidenceAssertionSatisfiesRequirement, evidencePathsOverlap, evidenceRequirementIsCovered, } from "./evidence-coverage.js";
6
+ export { evidenceAssertions } from "./evidence-bindings.js";
7
+ export { applicableEvidenceCoverageRequirements, evaluateEvidenceCoverage, evidenceAssertionSatisfiesRequirement, evidenceCoverageCandidateRequirements, evidencePathsOverlap, evidenceRequirementIsCovered, valueAtEvidencePointer, } from "./evidence-coverage.js";
8
+ export * from "./material-claims.js";
9
+ export { buildProspectiveEvidenceStandingGraph } from "./prospective-evidence.js";
10
+ /** Field standing over the shared event graph; both catalog pathways read it here. */
11
+ export function evidenceStatusFor(field) {
12
+ if (!field)
13
+ return "missing";
14
+ if (field.supporting_event_ids.length > 0 && field.contradicting_event_ids.length > 0) {
15
+ return "mixed";
16
+ }
17
+ if (field.supporting_event_ids.length > 0)
18
+ return "supported";
19
+ if (field.contradicting_event_ids.length > 0)
20
+ return "contradicted";
21
+ return "missing";
22
+ }
23
+ const identityKinds = new Set([
24
+ "entity.merged",
25
+ "entity.split",
26
+ "entity.succeeded",
27
+ "program.merged",
28
+ "program.reparented",
29
+ "offer.merged",
30
+ "offer.retired",
31
+ "offer.reparented",
32
+ "agent-readiness-profile.merged",
33
+ "agent-readiness-profile.reparented",
34
+ ]);
35
+ export function buildEventGraph(events, observations) {
36
+ const byId = new Map();
37
+ const byKind = new Map();
38
+ const byRevisionDigest = new Map();
39
+ const operationKeys = new Map();
40
+ for (const event of events) {
41
+ if (byId.has(event.event_id))
42
+ throw new Error(`Duplicate event ${event.event_id}.`);
43
+ byId.set(event.event_id, event);
44
+ const kindEvents = byKind.get(event.kind) ?? [];
45
+ kindEvents.push(event);
46
+ byKind.set(event.kind, kindEvents);
47
+ if (event.subject.revision_digest) {
48
+ const revisionEvents = byRevisionDigest.get(event.subject.revision_digest) ?? [];
49
+ revisionEvents.push(event);
50
+ byRevisionDigest.set(event.subject.revision_digest, revisionEvents);
51
+ }
52
+ const operationKey = `${event.issuer_id}:${event.operation_id}`;
53
+ const prior = operationKeys.get(operationKey);
54
+ if (prior && prior !== event.event_id) {
55
+ throw new Error(`Protected operation key ${operationKey} was reused with changed content.`);
56
+ }
57
+ operationKeys.set(operationKey, event.event_id);
58
+ }
59
+ const eventsOfKind = (kind) => byKind.get(kind) ?? [];
60
+ const observationMap = new Map();
61
+ for (const observation of observations) {
62
+ if (observationMap.has(observation.observation_id)) {
63
+ throw new Error(`Duplicate observation ${observation.observation_id}.`);
64
+ }
65
+ observationMap.set(observation.observation_id, observation);
66
+ }
67
+ for (const event of events.filter((candidate) => identityKinds.has(candidate.kind))) {
68
+ if (event.kind === "entity.merged") {
69
+ assertEntityIdentitySubject(event, payloadString(event, "surviving_entity_id"));
70
+ }
71
+ else if (event.kind === "entity.split") {
72
+ assertEntityIdentitySubject(event, payloadString(event, "original_entity_id"));
73
+ }
74
+ else if (event.kind === "entity.succeeded") {
75
+ assertEntityIdentitySubject(event, payloadString(event, "predecessor_entity_id"));
76
+ }
77
+ else if (event.kind === "program.merged") {
78
+ assertProgramIdentitySubject(event, payloadString(event, "entity_id"), payloadString(event, "surviving_program_id"));
79
+ }
80
+ else if (event.kind === "program.reparented") {
81
+ assertProgramIdentitySubject(event, payloadString(event, "old_entity_id"), payloadString(event, "program_id"));
82
+ }
83
+ else if (event.kind === "offer.merged") {
84
+ assertOfferIdentitySubject(event, payloadString(event, "entity_id"), payloadString(event, "surviving_offer_id"));
85
+ }
86
+ else if (event.kind === "offer.retired") {
87
+ assertOfferIdentitySubject(event, payloadString(event, "entity_id"), payloadString(event, "offer_id"));
88
+ }
89
+ else if (event.kind === "offer.reparented") {
90
+ assertOfferIdentitySubject(event, payloadString(event, "old_entity_id"), payloadString(event, "offer_id"));
91
+ }
92
+ else if (event.kind === "agent-readiness-profile.merged") {
93
+ assertAgentReadinessIdentitySubject(event, payloadString(event, "entity_id"), payloadString(event, "surviving_agent_readiness_profile_id"));
94
+ }
95
+ else if (event.kind === "agent-readiness-profile.reparented") {
96
+ assertAgentReadinessIdentitySubject(event, payloadString(event, "old_entity_id"), payloadString(event, "agent_readiness_profile_id"));
97
+ }
98
+ }
99
+ const inactive = new Set();
100
+ const invalidationTargets = new Map();
101
+ const targetKinds = {
102
+ "evidence.retracted": "evidence.bound",
103
+ "attestation.revoked": "subject.attested",
104
+ "verification.revoked": "verification.completed",
105
+ "freshness.exception-revoked": "freshness.exception-granted",
106
+ };
107
+ for (const event of events) {
108
+ const expectedTargetKind = targetKinds[event.kind];
109
+ if (expectedTargetKind) {
110
+ const target = payloadString(event, "target_event_id");
111
+ const targetEvent = byId.get(target);
112
+ if (!targetEvent)
113
+ throw new Error(`${event.kind} targets missing event ${target}.`);
114
+ if (targetEvent.kind !== expectedTargetKind) {
115
+ throw new Error(`${event.kind} must target ${expectedTargetKind}, not ${targetEvent.kind}.`);
116
+ }
117
+ if (!sameSubject(targetEvent, event)) {
118
+ throw new Error(`${event.kind} must target the exact same subject and revision.`);
119
+ }
120
+ if (event.kind === "attestation.revoked" &&
121
+ payloadString(event, "authority_claim_id") !==
122
+ payloadString(targetEvent, "authority_claim_id")) {
123
+ throw new Error("Attestation revocation authority claim does not match its target.");
124
+ }
125
+ const priorInvalidation = invalidationTargets.get(target);
126
+ if (priorInvalidation) {
127
+ throw new Error(`Event ${target} has multiple invalidations ${priorInvalidation} and ${event.event_id}.`);
128
+ }
129
+ invalidationTargets.set(target, event.event_id);
130
+ inactive.add(target);
131
+ }
132
+ if (event.kind === "identity.transition-superseded") {
133
+ const target = payloadString(event, "target_event_id");
134
+ const targetEvent = byId.get(target);
135
+ if (!targetEvent || !identityKinds.has(targetEvent.kind)) {
136
+ throw new Error(`${event.kind} must target an active identity transition.`);
137
+ }
138
+ if (inactive.has(target)) {
139
+ throw new Error(`${event.kind} targets an already superseded identity transition.`);
140
+ }
141
+ if (!sameSubject(targetEvent, event, false)) {
142
+ throw new Error(`${event.kind} must use the target transition's subject.`);
143
+ }
144
+ const replacements = payloadStrings(event, "replacement_event_ids");
145
+ for (const replacement of replacements) {
146
+ const replacementEvent = byId.get(replacement);
147
+ if (!replacementEvent || !identityKinds.has(replacementEvent.kind)) {
148
+ throw new Error(`${event.kind} replacement ${replacement} is not an identity transition.`);
149
+ }
150
+ if (replacement === target || !sameSubject(replacementEvent, targetEvent, false)) {
151
+ throw new Error(`${event.kind} replacement ${replacement} has incompatible identity.`);
152
+ }
153
+ }
154
+ inactive.add(target);
155
+ }
156
+ }
157
+ const activeAuthorityClaims = deriveAuthorityState(events).activeClaims;
158
+ for (const event of eventsOfKind("asset.bound")) {
159
+ const payload = catalogEventPayloadSchemas["asset.bound"].parse(event.payload);
160
+ if (payload.authority_basis === "vendor-authority") {
161
+ const claimId = payload.authority_claim_id;
162
+ if (!claimId) {
163
+ throw new Error(`Vendor-authorized asset binding ${event.event_id} lacks its claim ID.`);
164
+ }
165
+ const claim = activeAuthorityClaims.get(claimId);
166
+ if (!claim ||
167
+ claim.entityId !== event.subject.entity_id ||
168
+ claim.authorizedIssuerId !== event.issuer_id ||
169
+ compareInstants(claim.validUntil, payload.effective_from) < 0) {
170
+ throw new Error(`Asset binding ${event.event_id} lacks current exact-entity authority.`);
171
+ }
172
+ }
173
+ const superseded = payload.superseded_binding_event_id;
174
+ if (typeof superseded === "string") {
175
+ const target = byId.get(superseded);
176
+ if (target?.kind !== "asset.bound" ||
177
+ target.subject.entity_id !== event.subject.entity_id ||
178
+ payloadString(target, "role") !== payload.role) {
179
+ throw new Error(`Asset binding ${event.event_id} supersedes an incompatible binding.`);
180
+ }
181
+ }
182
+ }
183
+ for (const event of [
184
+ ...eventsOfKind("asset.withdrawn"),
185
+ ...eventsOfKind("asset.takedown-ordered"),
186
+ ]) {
187
+ const target = byId.get(payloadString(event, "target_binding_event_id"));
188
+ if (target?.kind !== "asset.bound" || target.subject.entity_id !== event.subject.entity_id) {
189
+ throw new Error(`${event.kind} targets an incompatible asset binding.`);
190
+ }
191
+ }
192
+ assertEvidenceBindingClosure({ events, observations: observationMap });
193
+ const resolvedBindingIds = new Set();
194
+ const evidenceBindingActivity = new Map();
195
+ for (const event of eventsOfKind("discrepancy.resolved")) {
196
+ const activeEventIds = new Set(payloadStrings(event, "active_event_ids"));
197
+ for (const eventId of payloadStrings(event, "conflicting_event_ids")) {
198
+ const target = byId.get(eventId);
199
+ if (target?.kind !== "evidence.bound") {
200
+ throw new Error(`Discrepancy resolution ${event.event_id} targets non-evidence ${eventId}.`);
201
+ }
202
+ if (!sameSubject(target, event)) {
203
+ throw new Error(`Discrepancy resolution ${event.event_id} targets evidence for another subject.`);
204
+ }
205
+ if (resolvedBindingIds.has(eventId)) {
206
+ throw new Error(`Evidence binding ${eventId} has conflicting active resolutions.`);
207
+ }
208
+ resolvedBindingIds.add(eventId);
209
+ evidenceBindingActivity.set(eventId, activeEventIds.has(eventId));
210
+ }
211
+ const polarities = new Set(payloadStrings(event, "conflicting_event_ids").flatMap((eventId) => evidenceAssertions(byId.get(eventId)).map((assertion) => assertion.polarity)));
212
+ if (!polarities.has("supports") || !polarities.has("contradicts")) {
213
+ throw new Error(`Discrepancy resolution ${event.event_id} has no actual polarity conflict.`);
214
+ }
215
+ for (const eventId of payloadStrings(event, "active_event_ids")) {
216
+ if (!payloadStrings(event, "conflicting_event_ids").includes(eventId)) {
217
+ throw new Error(`Discrepancy resolution ${event.event_id} activates an event outside its conflict set.`);
218
+ }
219
+ }
220
+ }
221
+ const openedDisputes = new Map();
222
+ for (const opened of eventsOfKind("dispute.opened")) {
223
+ const disputeId = payloadString(opened, "dispute_id");
224
+ if (openedDisputes.has(disputeId)) {
225
+ throw new Error(`Dispute ${disputeId} has multiple active openings.`);
226
+ }
227
+ openedDisputes.set(disputeId, opened);
228
+ }
229
+ const resolvedDisputes = new Set();
230
+ for (const resolution of eventsOfKind("dispute.resolved")) {
231
+ const disputeId = payloadString(resolution, "dispute_id");
232
+ const opened = openedDisputes.get(disputeId);
233
+ if (!opened ||
234
+ opened.event_id !== payloadString(resolution, "opened_event_id") ||
235
+ !sameSubject(opened, resolution)) {
236
+ throw new Error(`Dispute resolution ${resolution.event_id} does not close its exact dispute.`);
237
+ }
238
+ if (resolvedDisputes.has(disputeId)) {
239
+ throw new Error(`Dispute ${disputeId} has multiple active resolutions.`);
240
+ }
241
+ resolvedDisputes.add(disputeId);
242
+ }
243
+ return {
244
+ events,
245
+ byId,
246
+ byRevisionDigest,
247
+ observations: observationMap,
248
+ inactiveEventIds: inactive,
249
+ evidenceBindingActivity,
250
+ activeAuthorityClaims,
251
+ };
252
+ }
253
+ export function deriveProvenance(input) {
254
+ const { revision, authorityEntityRevision, graph, coveragePolicy, freshnessPolicy, policyAsOf } = input;
255
+ const subjectEvents = (graph.byRevisionDigest.get(revision.revision_digest) ?? []).filter((event) => !graph.inactiveEventIds.has(event.event_id));
256
+ const agentReadinessRevision = revision.revision_contract === "sourcey.agent-readiness-revision/v1alpha1";
257
+ const revisionValue = agentReadinessRevision ? revision : revision.content;
258
+ const policyRequirements = agentReadinessRevision
259
+ ? revision.signals.map((_, index) => ({
260
+ path: `/signals/${index}`,
261
+ proof_kinds: ["observed"],
262
+ derivation_rules: [],
263
+ guidance: "Agent-readiness signals require exact observed test evidence.",
264
+ }))
265
+ : revision.revision_contract === "sourcey.entity-revision/v1alpha1"
266
+ ? coveragePolicy.entity_requirements
267
+ : revision.revision_contract === "sourcey.program-revision/v1alpha1"
268
+ ? coveragePolicy.program_requirements
269
+ : coveragePolicy.offer_requirements;
270
+ const requirements = applicableEvidenceCoverageRequirements(revisionValue, policyRequirements);
271
+ const attestations = subjectEvents.filter((event) => {
272
+ if (event.kind !== "subject.attested")
273
+ return false;
274
+ const claim = graph.activeAuthorityClaims.get(payloadString(event, "authority_claim_id"));
275
+ if (!claim ||
276
+ compareInstants(claim.validUntil, policyAsOf) <= 0 ||
277
+ claim.authorizedIssuerId !== event.issuer_id) {
278
+ return false;
279
+ }
280
+ if (claim.entityId !== event.subject.entity_id)
281
+ return false;
282
+ return entityAcceptsClaimAuthorityDomain(authorityEntityRevision, claim.controlledDomain);
283
+ });
284
+ if (attestations.length > 1) {
285
+ throw new Error(`Revision ${revision.revision_digest} has multiple active attestations; revoke or supersede one.`);
286
+ }
287
+ const attestation = attestations[0];
288
+ /* A revision-pinned attestation covers a path only where the coverage policy
289
+ admits attested proof; its freshness runs on the attested age budget. A
290
+ policy without the attested budget cannot grade attested coverage fresh. */
291
+ const attestedBudgetDays = freshnessPolicy.max_age_days.attested;
292
+ const attestationFresh = (() => {
293
+ if (!attestation || attestedBudgetDays === undefined)
294
+ return false;
295
+ const attestedAt = new Date(payloadString(attestation, "attested_at"));
296
+ attestedAt.setUTCDate(attestedAt.getUTCDate() + attestedBudgetDays);
297
+ return attestedAt.getTime() > Date.parse(policyAsOf);
298
+ })();
299
+ const coverageStates = requirements.map((requirement) => {
300
+ const { path } = requirement;
301
+ const supporting = subjectEvents.filter((event) => event.kind === "evidence.bound" &&
302
+ evidenceAssertions(event).some((assertion) => evidencePathsOverlap(assertion.path, path) &&
303
+ evidenceAssertionSatisfiesRequirement(assertion, requirement)) &&
304
+ evidenceBindingIsActive(event.event_id, graph));
305
+ const contradicting = subjectEvents.filter((event) => event.kind === "evidence.bound" &&
306
+ evidenceAssertions(event).some((assertion) => evidencePathsOverlap(assertion.path, path) && assertion.polarity === "contradicts") &&
307
+ evidenceBindingIsActive(event.event_id, graph));
308
+ const successfulSupporting = supporting.filter((event) => {
309
+ const observation = graph.observations.get(payloadString(event, "observation_id"));
310
+ return observation?.outcome === "supports-candidate";
311
+ });
312
+ const effectiveContradictions = contradicting.filter((event) => {
313
+ const observation = graph.observations.get(payloadString(event, "observation_id"));
314
+ return observation?.outcome === "contradicts-candidate";
315
+ });
316
+ const supportingObservations = successfulSupporting
317
+ .map((event) => ({
318
+ event,
319
+ observation: graph.observations.get(payloadString(event, "observation_id")),
320
+ }))
321
+ .filter((value) => value.observation !== undefined);
322
+ const latestObservation = supportingObservations
323
+ .map(({ observation }) => observation)
324
+ .sort((left, right) => compareInstants(left.retrieved_at, right.retrieved_at))
325
+ .at(-1);
326
+ const supportingAssertions = successfulSupporting.flatMap((event) => evidenceAssertions(event).filter((assertion) => evidencePathsOverlap(assertion.path, path) &&
327
+ evidenceAssertionSatisfiesRequirement(assertion, requirement)));
328
+ const attestedCovers = attestation !== undefined && requirement.proof_kinds.includes("attested");
329
+ const observationComplete = evidenceRequirementIsCovered(revisionValue, requirement, supportingAssertions);
330
+ const complete = observationComplete || attestedCovers;
331
+ const freshAssertions = supportingObservations.flatMap(({ event, observation }) => observationFreshness(observation, freshnessPolicy, policyAsOf) === "fresh"
332
+ ? evidenceAssertions(event).filter((assertion) => evidencePathsOverlap(assertion.path, path) &&
333
+ evidenceAssertionSatisfiesRequirement(assertion, requirement))
334
+ : []);
335
+ const exception = subjectEvents.find((event) => event.kind === "freshness.exception-granted" &&
336
+ payloadStrings(event, "paths").includes(path) &&
337
+ compareInstants(payloadString(event, "valid_until"), policyAsOf) > 0);
338
+ const freshness = exception
339
+ ? "fresh"
340
+ : evidenceRequirementIsCovered(revisionValue, requirement, freshAssertions)
341
+ ? "fresh"
342
+ : attestedCovers && attestationFresh
343
+ ? "fresh"
344
+ : complete
345
+ ? "stale"
346
+ : "unknown";
347
+ return {
348
+ complete: observationComplete,
349
+ field: {
350
+ path,
351
+ supporting_event_ids: [
352
+ ...successfulSupporting.map((event) => event.event_id),
353
+ ...(attestedCovers ? [attestation.event_id] : []),
354
+ ].sort(),
355
+ contradicting_event_ids: effectiveContradictions
356
+ .map((event) => event.event_id)
357
+ .sort(),
358
+ accepted_proof_kinds: [...requirement.proof_kinds],
359
+ evidence_proof_kinds: [
360
+ ...new Set([
361
+ ...supportingAssertions.map(({ proof_kind: proofKind }) => proofKind),
362
+ ...(attestedCovers ? ["attested"] : []),
363
+ ]),
364
+ ].sort(compareCanonicalStrings),
365
+ ...(latestObservation ? { latest_observation_at: latestObservation.retrieved_at } : {}),
366
+ freshness,
367
+ },
368
+ };
369
+ });
370
+ const fieldCoverage = coverageStates.map(({ field }) => field);
371
+ const fullyObserved = coverageStates.every(({ complete, field }) => complete && field.contradicting_event_ids.length === 0);
372
+ const verifications = subjectEvents.filter((event) => {
373
+ if (event.kind !== "verification.completed")
374
+ return false;
375
+ if (payloadString(event, "result") !== "pass" ||
376
+ payloadString(event, "coverage_policy_digest") !== coveragePolicy.policy_digest) {
377
+ return false;
378
+ }
379
+ return (payloadString(event, "scope") === "whole-revision" ||
380
+ requirements.every(({ path }) => payloadStrings(event, "verified_paths").includes(path)));
381
+ });
382
+ if (verifications.length > 1) {
383
+ throw new Error(`Revision ${revision.revision_digest} has multiple active passing verifications.`);
384
+ }
385
+ const verification = verifications[0];
386
+ if (!agentReadinessRevision && !verification && !attestation && !fullyObserved) {
387
+ const lapsedDeclaration = subjectEvents.some((event) => event.kind === "subject.attested");
388
+ throw new Error(lapsedDeclaration
389
+ ? `Declared revision ${revision.revision_digest} lost its authority basis; renew the attestation or author a withdrawal before the next release.`
390
+ : `Revision ${revision.revision_digest} is neither fully observed, signed, nor verified.`);
391
+ }
392
+ const openDisputes = subjectEvents.filter((event) => event.kind === "dispute.opened" &&
393
+ !subjectEvents.some((candidate) => candidate.kind === "dispute.resolved" &&
394
+ payloadString(candidate, "opened_event_id") === event.event_id));
395
+ const hasResolvedDispute = subjectEvents.some((event) => event.kind === "dispute.resolved");
396
+ const basis = new Set();
397
+ for (const field of fieldCoverage) {
398
+ for (const eventId of field.supporting_event_ids)
399
+ basis.add(eventId);
400
+ for (const eventId of field.contradicting_event_ids)
401
+ basis.add(eventId);
402
+ }
403
+ for (const resolution of subjectEvents.filter((event) => event.kind === "discrepancy.resolved")) {
404
+ basis.add(resolution.event_id);
405
+ }
406
+ for (const exception of subjectEvents.filter((event) => event.kind === "freshness.exception-granted" &&
407
+ compareInstants(payloadString(event, "valid_until"), policyAsOf) > 0)) {
408
+ basis.add(exception.event_id);
409
+ }
410
+ if (attestation) {
411
+ basis.add(attestation.event_id);
412
+ const claim = graph.activeAuthorityClaims.get(payloadString(attestation, "authority_claim_id"));
413
+ if (claim) {
414
+ for (const eventId of claim.eventIds)
415
+ basis.add(eventId);
416
+ }
417
+ }
418
+ if (verification)
419
+ basis.add(verification.event_id);
420
+ for (const event of openDisputes)
421
+ basis.add(event.event_id);
422
+ for (const event of subjectEvents.filter((candidate) => candidate.kind === "dispute.resolved")) {
423
+ basis.add(event.event_id);
424
+ }
425
+ for (const event of subjectEvents.filter((candidate) => [
426
+ "evidence.retracted",
427
+ "attestation.revoked",
428
+ "verification.revoked",
429
+ "freshness.exception-revoked",
430
+ ].includes(candidate.kind))) {
431
+ basis.add(event.event_id);
432
+ }
433
+ const freshness = fieldCoverage.some((field) => field.freshness === "unknown")
434
+ ? "unknown"
435
+ : fieldCoverage.some((field) => field.freshness === "stale")
436
+ ? "stale"
437
+ : "fresh";
438
+ return {
439
+ tier: verification ? "verified" : attestation ? "signed" : "observed",
440
+ freshness,
441
+ dispute: openDisputes.length > 0 ? "open" : hasResolvedDispute ? "resolved" : "none",
442
+ coverage_policy_digest: coveragePolicy.policy_digest,
443
+ freshness_policy_digest: freshnessPolicy.policy_digest,
444
+ basis_event_ids: [...basis].sort(),
445
+ fields: fieldCoverage,
446
+ ...(attestation ? { attestation_event_id: attestation.event_id } : {}),
447
+ ...(verification ? { verification_event_id: verification.event_id } : {}),
448
+ };
449
+ }
450
+ function observationFreshness(observation, policy, policyAsOf) {
451
+ const method = observation.capture?.source_standing?.startsWith("archived-")
452
+ ? "archive"
453
+ : observation.method.name;
454
+ const maxAge = policy.max_age_days[method];
455
+ if (maxAge === undefined) {
456
+ throw new Error(`Freshness policy has no method ${observation.method.name}.`);
457
+ }
458
+ const freshUntil = new Date(observation.retrieved_at);
459
+ freshUntil.setUTCDate(freshUntil.getUTCDate() + maxAge);
460
+ return compareInstants(freshUntil.toISOString(), policyAsOf) > 0 ? "fresh" : "stale";
461
+ }
462
+ function compareInstants(left, right) {
463
+ const leftTime = Date.parse(left);
464
+ const rightTime = Date.parse(right);
465
+ if (!Number.isFinite(leftTime) || !Number.isFinite(rightTime)) {
466
+ throw new Error("Provenance instant comparison requires valid ISO-8601 instants.");
467
+ }
468
+ return leftTime - rightTime;
469
+ }
470
+ function evidenceBindingIsActive(eventId, graph) {
471
+ return graph.evidenceBindingActivity.get(eventId) ?? true;
472
+ }
473
+ function payloadString(event, key) {
474
+ const value = event.payload[key];
475
+ if (typeof value !== "string") {
476
+ throw new Error(`Event ${event.event_id} payload.${key} is not a string.`);
477
+ }
478
+ return value;
479
+ }
480
+ function payloadStrings(event, key) {
481
+ const value = event.payload[key];
482
+ if (!Array.isArray(value) || value.some((item) => typeof item !== "string")) {
483
+ throw new Error(`Event ${event.event_id} payload.${key} is not a string array.`);
484
+ }
485
+ return value;
486
+ }
487
+ function sameSubject(left, right, requireRevision = true) {
488
+ if (left.subject.subject_type !== right.subject.subject_type ||
489
+ left.subject.entity_id !== right.subject.entity_id) {
490
+ return false;
491
+ }
492
+ if (left.subject.subject_type === "program" &&
493
+ (right.subject.subject_type !== "program" ||
494
+ left.subject.program_id !== right.subject.program_id)) {
495
+ return false;
496
+ }
497
+ if (left.subject.subject_type === "offer" &&
498
+ (right.subject.subject_type !== "offer" ||
499
+ left.subject.program_id !== right.subject.program_id ||
500
+ left.subject.offer_id !== right.subject.offer_id)) {
501
+ return false;
502
+ }
503
+ if (left.subject.subject_type === "agent_readiness_profile" &&
504
+ (right.subject.subject_type !== "agent_readiness_profile" ||
505
+ left.subject.agent_readiness_profile_id !== right.subject.agent_readiness_profile_id)) {
506
+ return false;
507
+ }
508
+ return !requireRevision || left.subject.revision_digest === right.subject.revision_digest;
509
+ }
510
+ function assertEntityIdentitySubject(event, entityId) {
511
+ if (event.subject.subject_type !== "entity" || event.subject.entity_id !== entityId) {
512
+ throw new Error(`${event.kind} does not use its canonical entity subject.`);
513
+ }
514
+ }
515
+ function assertProgramIdentitySubject(event, entityId, programId) {
516
+ if (event.subject.subject_type !== "program" ||
517
+ event.subject.entity_id !== entityId ||
518
+ event.subject.program_id !== programId) {
519
+ throw new Error(`${event.kind} does not use its canonical program subject.`);
520
+ }
521
+ }
522
+ function assertOfferIdentitySubject(event, entityId, offerId) {
523
+ if (event.subject.subject_type !== "offer" ||
524
+ event.subject.entity_id !== entityId ||
525
+ event.subject.offer_id !== offerId) {
526
+ throw new Error(`${event.kind} does not use its canonical offer subject.`);
527
+ }
528
+ }
529
+ function assertAgentReadinessIdentitySubject(event, entityId, agentReadinessProfileId) {
530
+ if (event.subject.subject_type !== "agent_readiness_profile" ||
531
+ event.subject.entity_id !== entityId ||
532
+ event.subject.agent_readiness_profile_id !== agentReadinessProfileId) {
533
+ throw new Error(`${event.kind} does not use its canonical agent-readiness-profile subject.`);
534
+ }
535
+ }
536
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../modules/provenance/src/index.ts"],"names":[],"mappings":"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"}