@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,563 @@
1
+ import { readdir, readFile } from "node:fs/promises";
2
+ import { basename, join, relative, sep } from "node:path";
3
+ import { agentReadinessDeclarationRevisionSchema, agentReadinessIndexSchema, agentReadinessInputsSchema, agentReadinessOfferRelationIndexSchema, agentReadinessOfferRelationInputsSchema, agentReadinessProjectionCoreSchema, agentReadinessProjectionSchema, agentReadinessRevisionSchema, } from "../../../contracts/agent-readiness/src/index.js";
4
+ import { canonicalArtifactSchema, compiledPolicySchema, identityIndexSchema, provenanceIndexSchema, releaseChangeSchema, releaseDiffSchema, searchIndexSchema, } from "../../../contracts/artifact/src/index.js";
5
+ import { assetIndexSchema, assetInputsSchema, assetNoticesSchema, } from "../../../contracts/assets/src/index.js";
6
+ import { entityAuthoringSchema, } from "../../../contracts/authoring/src/index.js";
7
+ import { rootSetSchema, rootSetTransitionSchema } from "../../../contracts/authority/src/index.js";
8
+ import { captureReceiptSchema, } from "../../../contracts/evidence/src/index.js";
9
+ import { observationSchema } from "../../../contracts/observations/src/index.js";
10
+ import { catalogReleaseBundleCoreSchema, catalogReleaseBundleSchema, RELEASE_RESOURCES, releaseDescriptorSchema, releaseObjectManifestSchema, releaseResourceDigest, } from "../../../contracts/release/src/index.js";
11
+ import { entityRevisionSchema, offerRevisionSchema, programRevisionSchema, } from "../../../contracts/revisions/src/index.js";
12
+ import { routeIndexSchema } from "../../../contracts/routes/src/index.js";
13
+ import { validateProtectedCaptureReceipt, validateProtectedEvent, validateRootSetTransition, validateSignerRegistry, } from "../../authority/src/index.js";
14
+ import { verifyEvidenceObjectGraph } from "../../evidence-operations/src/proof-graph.js";
15
+ import { canonicalJson, compareCanonicalStrings, digest, digestFromPathSegment, sha256Bytes, } from "../../primitives/src/index.js";
16
+ import { assertReleasedAgentReadinessClosure, assertReleasedAgentReadinessOfferRelationClosure, } from "./agent-readiness-closure.js";
17
+ import { assertReleasedAssetClosure } from "./asset-closure.js";
18
+ import { verifyReleasedAuthoringClosure } from "./authoring-closure.js";
19
+ import { validateTrustHistory } from "./trust-history.js";
20
+ export async function verifyCatalogReleaseDirectory(directory, trust) {
21
+ return inspectCatalogReleaseDirectory(directory, trust, true);
22
+ }
23
+ /**
24
+ * Loads an exact bundle already admitted with verifyCatalogReleaseDirectory and
25
+ * pinned by an immutable consumer lock. It repeats byte closure, schemas,
26
+ * identities, signatures, and semantic graph closure, but does not re-run raw
27
+ * capture normalization on every serving-process start.
28
+ */
29
+ export async function loadAdmittedCatalogReleaseDirectory(directory, trust) {
30
+ return inspectCatalogReleaseDirectory(directory, trust, false);
31
+ }
32
+ async function inspectCatalogReleaseDirectory(directory, trust, replayEvidenceObjects) {
33
+ const bundle = catalogReleaseBundleSchema.parse(JSON.parse(await readFile(join(directory, "bundle.json"), "utf8")));
34
+ const { bundle_digest: bundleDigest, ...bundleCoreInput } = bundle;
35
+ const bundleCore = catalogReleaseBundleCoreSchema.parse(bundleCoreInput);
36
+ if (digest(bundleCore) !== bundleDigest) {
37
+ throw new Error("Release bundle digest does not match its canonical core.");
38
+ }
39
+ const actualPaths = (await filesUnder(directory))
40
+ .map((file) => relative(directory, file).split(sep).join("/"))
41
+ .filter((path) => path !== "bundle.json")
42
+ .sort();
43
+ const declaredPaths = Object.keys(bundle.files).sort();
44
+ if (JSON.stringify(actualPaths) !== JSON.stringify(declaredPaths)) {
45
+ throw new Error("Release file set does not match its immutable declaration.");
46
+ }
47
+ const files = new Map();
48
+ for (const path of declaredPaths) {
49
+ const bytes = await readFile(join(directory, path));
50
+ const declaration = bundle.files[path];
51
+ if (!declaration)
52
+ throw new Error(`Missing bundle declaration for ${path}.`);
53
+ if (bytes.byteLength !== declaration.bytes || sha256Bytes(bytes) !== declaration.sha256) {
54
+ throw new Error(`Release file ${path} does not match its byte declaration.`);
55
+ }
56
+ files.set(path, bytes);
57
+ }
58
+ const artifact = canonicalArtifactSchema.parse(parseJson(files, "catalog.json"));
59
+ const routes = routeIndexSchema.parse(parseJson(files, "routes.json"));
60
+ const identities = identityIndexSchema.parse(parseJson(files, "identities.json"));
61
+ const search = searchIndexSchema.parse(parseJson(files, "indexes/search.json"));
62
+ const agentReadinessIndex = agentReadinessIndexSchema.parse(parseJson(files, "indexes/agent-readiness.json"));
63
+ const hasAgentReadinessOfferRelations = bundle.release.snapshot_core.resource_digests[RELEASE_RESOURCES.agentReadinessOfferRelationIndex] !== undefined ||
64
+ bundle.release.snapshot_core.resource_digests[RELEASE_RESOURCES.agentReadinessOfferRelationInputs] !== undefined;
65
+ if (hasAgentReadinessOfferRelations &&
66
+ (bundle.release.snapshot_core.resource_digests[RELEASE_RESOURCES.agentReadinessOfferRelationIndex] === undefined ||
67
+ bundle.release.snapshot_core.resource_digests[RELEASE_RESOURCES.agentReadinessOfferRelationInputs] === undefined)) {
68
+ throw new Error("Release has an incomplete Agent Readiness Offer relation resource pair.");
69
+ }
70
+ const agentReadinessOfferRelationIndex = agentReadinessOfferRelationIndexSchema.parse(hasAgentReadinessOfferRelations
71
+ ? parseJson(files, "indexes/agent-readiness-offer-relations.json")
72
+ : {
73
+ relation_index_contract: "sourcey.agent-readiness-offer-relation-index/v1alpha1",
74
+ relations: {},
75
+ by_profile: {},
76
+ by_offer: {},
77
+ });
78
+ const assetIndex = assetIndexSchema.parse(parseJson(files, "assets/index.json"));
79
+ const assetNotices = assetNoticesSchema.parse(parseJson(files, "assets/notices.json"));
80
+ const provenance = provenanceIndexSchema.parse(parseJson(files, "provenance/index.json"));
81
+ const descriptor = releaseDescriptorSchema.parse(parseJson(files, "release.json"));
82
+ const releaseDiff = releaseDiffSchema.parse(parseJson(files, "release-diff.json"));
83
+ const objectManifest = releaseObjectManifestSchema.parse(parseJson(files, "manifest.json"));
84
+ assertDigest("release object manifest", digest(objectManifest), bundle.object_manifest_digest);
85
+ const expectedManifestPaths = Object.keys(bundle.files)
86
+ .filter((path) => !["manifest.json", "changes.ndjson", "release-diff.json", "release.json"].includes(path))
87
+ .sort();
88
+ if (JSON.stringify(Object.keys(objectManifest.objects).sort()) !==
89
+ JSON.stringify(expectedManifestPaths)) {
90
+ throw new Error("Release object manifest does not close the semantic object set.");
91
+ }
92
+ for (const [path, declaration] of Object.entries(objectManifest.objects)) {
93
+ const bundleDeclaration = bundle.files[path];
94
+ if (!bundleDeclaration ||
95
+ bundleDeclaration.sha256 !== declaration.sha256 ||
96
+ bundleDeclaration.bytes !== declaration.bytes) {
97
+ throw new Error(`Release object manifest disagrees with bundle file ${path}.`);
98
+ }
99
+ }
100
+ if (digest(descriptor.snapshot_core) !== descriptor.snapshot_id) {
101
+ throw new Error("Snapshot ID does not match the canonical snapshot core.");
102
+ }
103
+ if (digest(descriptor.release_core) !== descriptor.release_id) {
104
+ throw new Error("Release ID does not match the canonical release core.");
105
+ }
106
+ if (descriptor.release_core.snapshot_id !== descriptor.snapshot_id ||
107
+ descriptor.release_core.release_sequence !== descriptor.snapshot_core.release_sequence) {
108
+ throw new Error("Release and snapshot cores disagree.");
109
+ }
110
+ if (bundle.release.release_id !== descriptor.release_id ||
111
+ bundle.release.snapshot_id !== descriptor.snapshot_id) {
112
+ throw new Error("Release and release descriptor identities disagree.");
113
+ }
114
+ if (releaseDiff.snapshot_id !== descriptor.snapshot_id ||
115
+ (descriptor.release_core.parent_release_id === null) !==
116
+ (releaseDiff.parent_snapshot_id === null)) {
117
+ throw new Error("Release diff does not bind the descriptor's snapshot chain.");
118
+ }
119
+ const changeBytes = requiredFile(files, "changes.ndjson");
120
+ if (sha256Bytes(changeBytes) !== descriptor.release_core.diff_digest) {
121
+ throw new Error("Release diff bytes do not match release_core.diff_digest.");
122
+ }
123
+ const changes = parseNdjson(changeBytes).map((value) => releaseChangeSchema.parse(value));
124
+ if (JSON.stringify(changes) !== JSON.stringify(releaseDiff.changes)) {
125
+ throw new Error("changes.ndjson and release-diff.json disagree.");
126
+ }
127
+ for (const change of changes) {
128
+ const { change_id: changeId, ...core } = change;
129
+ if (digest(core) !== changeId)
130
+ throw new Error(`Change ${changeId} has an invalid identity.`);
131
+ }
132
+ const changeIds = new Set(changes.map((change) => change.change_id));
133
+ if (changeIds.size !== changes.length)
134
+ throw new Error("Release diff contains duplicate changes.");
135
+ const orderedChanges = [...changes].sort((left, right) => compareCanonicalStrings(left.subject_type, right.subject_type) ||
136
+ compareCanonicalStrings(left.subject_id, right.subject_id) ||
137
+ compareCanonicalStrings(left.kind, right.kind));
138
+ if (JSON.stringify(changes) !== JSON.stringify(orderedChanges)) {
139
+ throw new Error("Release diff changes are not in canonical order.");
140
+ }
141
+ const snapshot = descriptor.snapshot_core;
142
+ assertDigest("artifact", digest(artifact), snapshot.artifact_digest);
143
+ assertDigest("routes", digest(routes), releaseResourceDigest(snapshot.resource_digests, RELEASE_RESOURCES.routes));
144
+ assertDigest("identities", digest(identities), releaseResourceDigest(snapshot.resource_digests, RELEASE_RESOURCES.identities));
145
+ assertDigest("search index", digest(search), releaseResourceDigest(snapshot.resource_digests, RELEASE_RESOURCES.searchIndex));
146
+ assertDigest("agent readiness index", digest(agentReadinessIndex), releaseResourceDigest(snapshot.resource_digests, RELEASE_RESOURCES.agentReadinessIndex));
147
+ assertDigest("asset index", digest(assetIndex), releaseResourceDigest(snapshot.resource_digests, RELEASE_RESOURCES.assetIndex));
148
+ const agentReadinessInputs = agentReadinessInputsSchema.parse(parseJson(files, "inputs/agent-readiness.json"));
149
+ const agentReadinessOfferRelationInputs = agentReadinessOfferRelationInputsSchema.parse(hasAgentReadinessOfferRelations
150
+ ? parseJson(files, "inputs/agent-readiness-offer-relations.json")
151
+ : {
152
+ input_contract: "sourcey.agent-readiness-offer-relation-inputs/v1alpha1",
153
+ relations: [],
154
+ });
155
+ const assetInputs = assetInputsSchema.parse(parseJson(files, "inputs/assets.json"));
156
+ assertDigest("agent readiness inputs", digest(agentReadinessInputs), releaseResourceDigest(snapshot.resource_digests, RELEASE_RESOURCES.agentReadinessInputs));
157
+ if (hasAgentReadinessOfferRelations) {
158
+ assertDigest("agent readiness Offer relation index", digest(agentReadinessOfferRelationIndex), releaseResourceDigest(snapshot.resource_digests, RELEASE_RESOURCES.agentReadinessOfferRelationIndex));
159
+ assertDigest("agent readiness Offer relation inputs", digest(agentReadinessOfferRelationInputs), releaseResourceDigest(snapshot.resource_digests, RELEASE_RESOURCES.agentReadinessOfferRelationInputs));
160
+ }
161
+ assertDigest("asset inputs", digest(assetInputs), releaseResourceDigest(snapshot.resource_digests, RELEASE_RESOURCES.assetInputs));
162
+ if (releaseResourceDigest(bundle.resource_digests, RELEASE_RESOURCES.agentReadinessPolicy) !==
163
+ agentReadinessInputs.policy_digest ||
164
+ releaseResourceDigest(bundle.resource_digests, RELEASE_RESOURCES.assetManifest) !==
165
+ assetInputs.manifest_digest) {
166
+ throw new Error("Release input declarations disagree with the closed input set.");
167
+ }
168
+ const agentReadinessPolicyPath = `policies/${releaseResourceDigest(bundle.resource_digests, RELEASE_RESOURCES.agentReadinessPolicy).replace(":", "-")}.json`;
169
+ if (!files.has(agentReadinessPolicyPath)) {
170
+ throw new Error("Release is missing its addressed agent readiness policy.");
171
+ }
172
+ assertDigest("observation inputs", digest(parseJson(files, "inputs/observations.json")), releaseResourceDigest(snapshot.resource_digests, RELEASE_RESOURCES.observationInputs));
173
+ assertDigest("policy inputs", digest(parseJson(files, "inputs/policies.json")), releaseResourceDigest(snapshot.resource_digests, RELEASE_RESOURCES.policyInputs));
174
+ const inputSet = parseJson(files, "inputs/input-set.json");
175
+ assertDigest("input set", digest(inputSet), snapshot.input_set_digest);
176
+ const declaredEnvironment = typeof inputSet === "object" && inputSet !== null
177
+ ? inputSet.environment
178
+ : undefined;
179
+ const environment = declaredEnvironment ??
180
+ (artifact.entities.every((entity) => new URL(entity.website).hostname.endsWith(".example"))
181
+ ? "dogfood"
182
+ : undefined);
183
+ if (environment !== "production" && environment !== "dogfood") {
184
+ throw new Error("Release closed input set lacks its environment boundary.");
185
+ }
186
+ const admittedInputs = [...new Set(bundle.admitted_input_digests)].sort(compareCanonicalStrings);
187
+ if (canonicalJson(admittedInputs) !== canonicalJson(bundle.admitted_input_digests)) {
188
+ throw new Error("Catalog admitted inputs must be unique and canonically ordered.");
189
+ }
190
+ assertDigest("provenance", digest(provenance), releaseResourceDigest(snapshot.resource_digests, RELEASE_RESOURCES.provenance));
191
+ assertDigest("root set", artifact.root_set_digest, snapshot.root_set_digest);
192
+ assertDigest("signer registry", artifact.signer_registry_digest, snapshot.signer_registry_digest);
193
+ const rootPath = `trust/roots/${artifact.root_set_digest.replace(":", "-")}.json`;
194
+ const registryPath = `trust/registries/${artifact.signer_registry_digest.replace(":", "-")}.json`;
195
+ const rootSet = rootSetSchema.parse(parseJson(files, rootPath));
196
+ if (digest(rootSet) !== artifact.root_set_digest)
197
+ throw new Error("Root-set object is misaddressed.");
198
+ if (trust && artifact.root_set_digest !== trust.rootSetDigest) {
199
+ throw new Error("Release root set does not match the caller's trusted root pin.");
200
+ }
201
+ const registry = validateSignerRegistry(rootSet, parseJson(files, registryPath));
202
+ if (registry.registry_digest !== artifact.signer_registry_digest) {
203
+ throw new Error("Signer-registry object is misaddressed.");
204
+ }
205
+ const transitionDigest = snapshot.trust_transition_digest ?? null;
206
+ if (transitionDigest) {
207
+ const transitionPath = `trust/transitions/${transitionDigest.replace(":", "-")}.json`;
208
+ const transition = rootSetTransitionSchema.parse(parseJson(files, transitionPath));
209
+ if (transition.transition_digest !== transitionDigest) {
210
+ throw new Error("Root-set transition object is misaddressed.");
211
+ }
212
+ const previousRootPath = `trust/roots/${transition.previous_root_set_digest.replace(":", "-")}.json`;
213
+ const previousRootSet = rootSetSchema.parse(parseJson(files, previousRootPath));
214
+ validateRootSetTransition({
215
+ previousRootSet,
216
+ nextRootSet: rootSet,
217
+ transition,
218
+ releaseSequence: descriptor.release_core.release_sequence,
219
+ });
220
+ }
221
+ const trustedRegistries = validateTrustHistory(files, rootSet, registry);
222
+ const revisions = new Map();
223
+ const authoring = new Map();
224
+ const hasCurrentAuthoring = [...files.keys()].some((path) => path.startsWith("authoring/entities/"));
225
+ const events = [];
226
+ const observations = [];
227
+ const captureReceipts = [];
228
+ for (const [path, bytes] of files) {
229
+ if (path.startsWith("authoring/entities/")) {
230
+ const value = entityAuthoringSchema.parse(JSON.parse(bytes.toString("utf8")));
231
+ const address = basename(path, ".json");
232
+ if (value.entity.entity_id !== address || authoring.has(address)) {
233
+ throw new Error(`Authoring object ${path} is not addressed correctly.`);
234
+ }
235
+ authoring.set(address, value);
236
+ }
237
+ else if (path.startsWith("revisions/")) {
238
+ const input = JSON.parse(bytes.toString("utf8"));
239
+ const revision = input.revision_contract === "sourcey.entity-revision/v1alpha1"
240
+ ? entityRevisionSchema.parse(input)
241
+ : input.revision_contract === "sourcey.program-revision/v1alpha1"
242
+ ? programRevisionSchema.parse(input)
243
+ : input.revision_contract === "sourcey.offer-revision/v1alpha1"
244
+ ? offerRevisionSchema.parse(input)
245
+ : input.revision_contract === "sourcey.agent-readiness-revision/v1alpha1"
246
+ ? agentReadinessRevisionSchema.parse(input)
247
+ : agentReadinessDeclarationRevisionSchema.parse(input);
248
+ const address = addressFromJsonPath(path);
249
+ const { revision_digest: revisionDigest, ...core } = revision;
250
+ if (address !== revisionDigest || digest(core) !== revisionDigest) {
251
+ throw new Error(`Revision object ${path} is not content-addressed correctly.`);
252
+ }
253
+ revisions.set(revisionDigest, revision);
254
+ }
255
+ else if (path.startsWith("events/")) {
256
+ const input = JSON.parse(bytes.toString("utf8"));
257
+ const address = addressFromJsonPath(path);
258
+ if (input.event_id !== address)
259
+ throw new Error(`Event object ${path} is misaddressed.`);
260
+ const inclusion = provenance.events[address];
261
+ if (!inclusion)
262
+ throw new Error(`Event ${address} lacks first-inclusion provenance.`);
263
+ const eventRegistry = trustedRegistries.get(input.protected?.signer_registry_digest);
264
+ if (!eventRegistry) {
265
+ throw new Error(`Event ${address} names a registry outside the trusted history.`);
266
+ }
267
+ const event = validateProtectedEvent(input, eventRegistry, inclusion.first_inclusion_sequence);
268
+ if (digest(event) !== inclusion.event_object_digest) {
269
+ throw new Error(`Event ${address} differs from its witnessed object digest.`);
270
+ }
271
+ events.push(event);
272
+ }
273
+ else if (path.startsWith("observations/")) {
274
+ const observation = observationSchema.parse(JSON.parse(bytes.toString("utf8")));
275
+ const address = addressFromJsonPath(path);
276
+ const { observation_id: observationId, ...core } = observation;
277
+ if (address !== observationId || digest(core) !== observationId) {
278
+ throw new Error(`Observation object ${path} is not content-addressed correctly.`);
279
+ }
280
+ observations.push(observation);
281
+ }
282
+ else if (path.startsWith("capture-receipts/")) {
283
+ const input = captureReceiptSchema.parse(JSON.parse(bytes.toString("utf8")));
284
+ const address = addressFromJsonPath(path);
285
+ if (input.receipt_digest !== address) {
286
+ throw new Error(`Capture receipt object ${path} is misaddressed.`);
287
+ }
288
+ const inclusion = provenance.capture_receipts?.[address];
289
+ if (!inclusion) {
290
+ throw new Error(`Capture receipt ${address} lacks first-inclusion provenance.`);
291
+ }
292
+ const receiptRegistry = trustedRegistries.get(input.protected.signer_registry_digest);
293
+ if (!receiptRegistry) {
294
+ throw new Error(`Capture receipt ${address} names a registry outside the trusted history.`);
295
+ }
296
+ const receipt = validateProtectedCaptureReceipt(input, receiptRegistry, inclusion.first_inclusion_sequence);
297
+ if (digest(receipt) !== inclusion.receipt_object_digest) {
298
+ throw new Error(`Capture receipt ${address} differs from its witnessed object digest.`);
299
+ }
300
+ captureReceipts.push(receipt);
301
+ }
302
+ }
303
+ const receiptAddresses = captureReceipts
304
+ .map((receipt) => receipt.receipt_digest)
305
+ .sort(compareCanonicalStrings);
306
+ const witnessedReceiptAddresses = Object.keys(provenance.capture_receipts ?? {}).sort(compareCanonicalStrings);
307
+ if (JSON.stringify(receiptAddresses) !== JSON.stringify(witnessedReceiptAddresses)) {
308
+ throw new Error("Capture receipt objects and provenance witnesses disagree.");
309
+ }
310
+ // Authoring is a release-generation input, not a timeless wire contract.
311
+ // Current releases publish it under the current contract-owned path and can
312
+ // be recompiled for closure. Historical releases retain their original
313
+ // bytes and remain verifiable through their immutable bundle, manifest,
314
+ // projections, revisions, signatures, and provenance without being parsed
315
+ // by a later authoring schema.
316
+ if (hasCurrentAuthoring) {
317
+ verifyReleasedAuthoringClosure(authoring, artifact.entities);
318
+ }
319
+ const inputSetRecord = typeof inputSet === "object" && inputSet !== null ? inputSet : {};
320
+ const declaredCaptureReceipts = inputSetRecord.capture_receipt_digests;
321
+ if ((environment === "production" && !Array.isArray(declaredCaptureReceipts)) ||
322
+ (declaredCaptureReceipts !== undefined &&
323
+ (!Array.isArray(declaredCaptureReceipts) ||
324
+ declaredCaptureReceipts.some((value) => typeof value !== "string"))) ||
325
+ JSON.stringify(Array.isArray(declaredCaptureReceipts) ? declaredCaptureReceipts : []) !==
326
+ JSON.stringify(receiptAddresses)) {
327
+ throw new Error("Closed input set disagrees with the capture receipt set.");
328
+ }
329
+ const agentReadinessProfiles = Object.values(agentReadinessIndex.profiles)
330
+ .map((entry) => {
331
+ const profile = agentReadinessProjectionSchema.parse(parseJson(files, entry.path));
332
+ const { projection_digest: projectionDigest, ...core } = profile;
333
+ if (profile.agent_readiness_profile_id !== entry.agent_readiness_profile_id ||
334
+ projectionDigest !== entry.projection_digest ||
335
+ digest(agentReadinessProjectionCoreSchema.parse(core)) !== projectionDigest) {
336
+ throw new Error(`Agent readiness projection ${entry.agent_readiness_profile_id} is not content-addressed correctly.`);
337
+ }
338
+ return profile;
339
+ })
340
+ .sort((left, right) => compareCanonicalStrings(left.agent_readiness_profile_id, right.agent_readiness_profile_id));
341
+ const agentReadinessOfferRelations = Object.values(agentReadinessOfferRelationIndex.relations).sort((left, right) => compareCanonicalStrings(left.relation_id, right.relation_id));
342
+ assertReleasedAgentReadinessOfferRelationClosure({
343
+ artifact,
344
+ profiles: agentReadinessProfiles,
345
+ relations: agentReadinessOfferRelations,
346
+ inputs: agentReadinessOfferRelationInputs,
347
+ files,
348
+ });
349
+ assertArtifactClosure(artifact, revisions, provenance, events, observations, captureReceipts, changes, files, agentReadinessProfiles, assetIndex, assetNotices, agentReadinessInputs, assetInputs, environment, replayEvidenceObjects);
350
+ return {
351
+ bundle,
352
+ descriptor,
353
+ artifact,
354
+ authoring: [...authoring.values()].sort((left, right) => compareCanonicalStrings(left.entity.entity_id, right.entity.entity_id)),
355
+ routes,
356
+ identities,
357
+ provenance,
358
+ agentReadinessIndex,
359
+ agentReadinessProfiles,
360
+ agentReadinessOfferRelations,
361
+ assetIndex,
362
+ assetNotices,
363
+ rootSet,
364
+ registry,
365
+ events: events.sort((left, right) => compareCanonicalStrings(left.event_id, right.event_id)),
366
+ observations: observations.sort((left, right) => compareCanonicalStrings(left.observation_id, right.observation_id)),
367
+ captureReceipts: captureReceipts.sort((left, right) => compareCanonicalStrings(left.receipt_digest, right.receipt_digest)),
368
+ revisions,
369
+ files,
370
+ };
371
+ }
372
+ function assertArtifactClosure(artifact, revisions, provenance, events, observations, captureReceipts, changes, files, agentReadinessProfiles, assetIndex, assetNotices, agentReadinessInputs, assetInputs, environment, replayEvidenceObjects) {
373
+ const eventIds = new Set(events.map((event) => event.event_id));
374
+ const observationIds = new Set(observations.map((observation) => observation.observation_id));
375
+ for (const entity of artifact.entities) {
376
+ for (const subject of [entity, ...entity.programs, ...entity.offers]) {
377
+ if (!revisions.has(subject.revision_digest)) {
378
+ throw new Error(`Artifact targets missing revision ${subject.revision_digest}.`);
379
+ }
380
+ const entry = provenance.revisions[subject.revision_digest];
381
+ if (!entry)
382
+ throw new Error(`Revision ${subject.revision_digest} lacks provenance closure.`);
383
+ if (JSON.stringify(entry.event_ids) !==
384
+ JSON.stringify([...subject.provenance.basis_event_ids].sort()) ||
385
+ entry.coverage_policy_digest !== subject.provenance.coverage_policy_digest ||
386
+ entry.freshness_policy_digest !== subject.provenance.freshness_policy_digest) {
387
+ throw new Error(`Revision ${subject.revision_digest} provenance index disagrees with its projection basis.`);
388
+ }
389
+ const expectedObservationIds = entry.event_ids
390
+ .flatMap((eventId) => {
391
+ const event = events.find((bundle) => bundle.event_id === eventId);
392
+ if (event?.kind !== "evidence.bound")
393
+ return [];
394
+ const observationId = event.payload.observation_id;
395
+ return typeof observationId === "string" ? [observationId] : [];
396
+ })
397
+ .filter((value, index, values) => values.indexOf(value) === index)
398
+ .sort();
399
+ if (JSON.stringify(entry.observation_ids) !== JSON.stringify(expectedObservationIds)) {
400
+ throw new Error(`Revision ${subject.revision_digest} provenance observations disagree with its events.`);
401
+ }
402
+ for (const eventId of entry.event_ids) {
403
+ if (!eventIds.has(eventId)) {
404
+ throw new Error(`Provenance targets missing event ${eventId}.`);
405
+ }
406
+ }
407
+ for (const observationId of entry.observation_ids) {
408
+ if (!observationIds.has(observationId)) {
409
+ throw new Error(`Provenance targets missing observation ${observationId}.`);
410
+ }
411
+ }
412
+ }
413
+ }
414
+ assertReleasedAgentReadinessClosure({
415
+ artifact,
416
+ revisions,
417
+ provenance,
418
+ events,
419
+ observations,
420
+ profiles: agentReadinessProfiles,
421
+ inputs: agentReadinessInputs,
422
+ });
423
+ assertReleasedAssetClosure({
424
+ artifact,
425
+ events,
426
+ files,
427
+ index: assetIndex,
428
+ notices: assetNotices,
429
+ inputs: assetInputs,
430
+ });
431
+ const captureBytes = new Map();
432
+ const normalizedObjects = new Map();
433
+ for (const observation of observations) {
434
+ if (observation.capture?.availability !== "public")
435
+ continue;
436
+ const captureDigest = observation.capture.digest;
437
+ const capture = files.get(`captures/${captureDigest.replace(":", "-")}`);
438
+ if (capture)
439
+ captureBytes.set(captureDigest, capture);
440
+ const normalizedDigest = observation.capture.normalized_object?.digest;
441
+ if (normalizedDigest) {
442
+ const normalized = files.get(`evidence/normalized/${normalizedDigest.replace(":", "-")}`);
443
+ if (normalized)
444
+ normalizedObjects.set(normalizedDigest, normalized);
445
+ }
446
+ }
447
+ if (replayEvidenceObjects) {
448
+ verifyEvidenceObjectGraph({
449
+ revisions: [...revisions.values()],
450
+ events,
451
+ observations,
452
+ captureReceipts,
453
+ captures: captureBytes,
454
+ normalizedObjects,
455
+ allowFixtureEvidence: environment === "dogfood",
456
+ });
457
+ }
458
+ for (const policy of artifact.policies) {
459
+ const policyPath = `policies/${policy.revision_digest.replace(":", "-")}.json`;
460
+ const bytes = files.get(policyPath);
461
+ if (!bytes)
462
+ throw new Error(`Policy ${policy.revision_digest} lacks its addressed object.`);
463
+ const parsed = compiledPolicySchema.parse(JSON.parse(bytes.toString("utf8")));
464
+ const { revision_digest: revisionDigest, ...core } = parsed;
465
+ if (revisionDigest !== policy.revision_digest || digest(core) !== revisionDigest) {
466
+ throw new Error(`Policy ${policy.revision_digest} is not content-addressed correctly.`);
467
+ }
468
+ }
469
+ const currentEntities = new Map(artifact.entities.map((entity) => [entity.entity_id, entity]));
470
+ const currentPrograms = new Map(artifact.entities.flatMap((entity) => entity.programs.map((program) => [program.program_id, program])));
471
+ const currentOffers = new Map(artifact.entities.flatMap((entity) => entity.offers.map((offer) => [offer.offer_id, offer])));
472
+ const currentPolicies = new Map(artifact.policies.map((policy) => [policy.slug, policy]));
473
+ const currentAgentReadinessProfiles = new Map(agentReadinessProfiles.map((profile) => [profile.agent_readiness_profile_id, profile]));
474
+ const currentAssetBindings = new Map(assetIndex.bindings.map((binding) => [binding.binding_event_id, binding]));
475
+ for (const change of changes) {
476
+ if (change.subject_type === "entity" && change.revision_digest) {
477
+ const entity = currentEntities.get(change.subject_id);
478
+ if (!entity || entity.revision_digest !== change.revision_digest) {
479
+ throw new Error(`Entity change ${change.change_id} does not target the current entity.`);
480
+ }
481
+ const { programs: _, offers: __, ...projection } = entity;
482
+ if (change.projection_digest !== undefined &&
483
+ change.projection_digest !== digest(projection)) {
484
+ throw new Error(`Entity change ${change.change_id} has the wrong projection digest.`);
485
+ }
486
+ }
487
+ else if (change.subject_type === "program" && change.revision_digest) {
488
+ const program = currentPrograms.get(change.subject_id);
489
+ if (!program || program.revision_digest !== change.revision_digest) {
490
+ throw new Error(`Program change ${change.change_id} does not target the current program.`);
491
+ }
492
+ if (change.projection_digest !== undefined && change.projection_digest !== digest(program)) {
493
+ throw new Error(`Program change ${change.change_id} has the wrong projection digest.`);
494
+ }
495
+ }
496
+ else if (change.subject_type === "offer" && change.revision_digest) {
497
+ const offer = currentOffers.get(change.subject_id);
498
+ if (!offer || offer.revision_digest !== change.revision_digest) {
499
+ throw new Error(`Offer change ${change.change_id} does not target the current offer.`);
500
+ }
501
+ if (change.projection_digest !== undefined && change.projection_digest !== digest(offer)) {
502
+ throw new Error(`Offer change ${change.change_id} has the wrong projection digest.`);
503
+ }
504
+ }
505
+ else if (change.subject_type === "policy" && change.revision_digest) {
506
+ const policy = currentPolicies.get(change.subject_id);
507
+ if (!policy ||
508
+ policy.revision_digest !== change.revision_digest ||
509
+ (change.projection_digest !== undefined &&
510
+ change.projection_digest !== policy.revision_digest)) {
511
+ throw new Error(`Policy change ${change.change_id} does not target the current policy.`);
512
+ }
513
+ }
514
+ else if (change.subject_type === "agent_readiness_profile" && change.revision_digest) {
515
+ const profile = currentAgentReadinessProfiles.get(change.subject_id);
516
+ if (!profile ||
517
+ profile.revision_digest !== change.revision_digest ||
518
+ (change.projection_digest !== undefined &&
519
+ change.projection_digest !== profile.projection_digest)) {
520
+ throw new Error(`Agent readiness change ${change.change_id} does not target the current profile.`);
521
+ }
522
+ }
523
+ else if (change.subject_type === "asset_binding" && change.kind !== "asset.withdrawn") {
524
+ const binding = currentAssetBindings.get(change.subject_id);
525
+ if (!binding ||
526
+ (change.projection_digest !== undefined && change.projection_digest !== digest(binding))) {
527
+ throw new Error(`Asset change ${change.change_id} does not target the current binding.`);
528
+ }
529
+ }
530
+ }
531
+ }
532
+ function parseJson(files, path) {
533
+ return JSON.parse(requiredFile(files, path).toString("utf8"));
534
+ }
535
+ function requiredFile(files, path) {
536
+ const bytes = files.get(path);
537
+ if (!bytes)
538
+ throw new Error(`Release is missing ${path}.`);
539
+ return bytes;
540
+ }
541
+ function parseNdjson(bytes) {
542
+ return bytes
543
+ .toString("utf8")
544
+ .split("\n")
545
+ .filter((line) => line.length > 0)
546
+ .map((line) => JSON.parse(line));
547
+ }
548
+ function addressFromJsonPath(path) {
549
+ return digestFromPathSegment(basename(path, ".json"));
550
+ }
551
+ function assertDigest(label, actual, expected) {
552
+ if (actual !== expected)
553
+ throw new Error(`${label} digest mismatch.`);
554
+ }
555
+ async function filesUnder(directory) {
556
+ const entries = await readdir(directory, { withFileTypes: true });
557
+ const nested = await Promise.all(entries.map((entry) => {
558
+ const path = join(directory, entry.name);
559
+ return entry.isDirectory() ? filesUnder(path) : [path];
560
+ }));
561
+ return nested.flat();
562
+ }
563
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../modules/artifact/src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { type RootSet, type SignerRegistry } from "../../../contracts/authority/src/index.js";
2
+ export declare function validateTrustHistory(files: ReadonlyMap<string, Buffer>, currentRootSet: RootSet, currentRegistry: SignerRegistry): Map<string, SignerRegistry>;
3
+ //# sourceMappingURL=trust-history.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trust-history.d.ts","sourceRoot":"","sources":["../../../../modules/artifact/src/trust-history.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,OAAO,EAGZ,KAAK,cAAc,EAEpB,MAAM,2CAA2C,CAAC;AAInD,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EAClC,cAAc,EAAE,OAAO,EACvB,eAAe,EAAE,cAAc,GAC9B,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAiH7B"}