@sourcey/catalog-verifier 1.1.4 → 1.1.5

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 (492) hide show
  1. package/SBOM.cdx.json +16 -16
  2. package/SOURCEY-CLOSURE.json +572 -588
  3. package/SOURCEY-DISTRIBUTION.json +1 -1
  4. package/THIRD_PARTY_NOTICES.json +6 -6
  5. package/dist/contracts/agent-readiness/src/authority.d.ts +51 -0
  6. package/dist/contracts/agent-readiness/src/authority.d.ts.map +1 -0
  7. package/dist/contracts/agent-readiness/src/authority.js +36 -0
  8. package/dist/contracts/agent-readiness/src/authority.js.map +1 -0
  9. package/dist/contracts/agent-readiness/src/binding.d.ts +600 -0
  10. package/dist/contracts/agent-readiness/src/binding.d.ts.map +1 -0
  11. package/dist/contracts/agent-readiness/src/binding.js +466 -0
  12. package/dist/contracts/agent-readiness/src/binding.js.map +1 -0
  13. package/dist/contracts/agent-readiness/src/declaration-acquisition.d.ts +484 -202
  14. package/dist/contracts/agent-readiness/src/declaration-acquisition.d.ts.map +1 -1
  15. package/dist/contracts/agent-readiness/src/declaration-acquisition.js +13 -11
  16. package/dist/contracts/agent-readiness/src/declaration-acquisition.js.map +1 -1
  17. package/dist/contracts/agent-readiness/src/declaration-reference.d.ts +4 -7
  18. package/dist/contracts/agent-readiness/src/declaration-reference.d.ts.map +1 -1
  19. package/dist/contracts/agent-readiness/src/declaration-reference.js +3 -6
  20. package/dist/contracts/agent-readiness/src/declaration-reference.js.map +1 -1
  21. package/dist/contracts/agent-readiness/src/declaration.d.ts +1930 -334
  22. package/dist/contracts/agent-readiness/src/declaration.d.ts.map +1 -1
  23. package/dist/contracts/agent-readiness/src/declaration.js +73 -78
  24. package/dist/contracts/agent-readiness/src/declaration.js.map +1 -1
  25. package/dist/contracts/agent-readiness/src/index.d.ts +3532 -4849
  26. package/dist/contracts/agent-readiness/src/index.d.ts.map +1 -1
  27. package/dist/contracts/agent-readiness/src/index.js +228 -949
  28. package/dist/contracts/agent-readiness/src/index.js.map +1 -1
  29. package/dist/contracts/agent-readiness/src/jobs.d.ts +199 -0
  30. package/dist/contracts/agent-readiness/src/jobs.d.ts.map +1 -0
  31. package/dist/contracts/agent-readiness/src/jobs.js +125 -0
  32. package/dist/contracts/agent-readiness/src/jobs.js.map +1 -0
  33. package/dist/contracts/agent-readiness/src/operate-policy.d.ts +251 -0
  34. package/dist/contracts/agent-readiness/src/operate-policy.d.ts.map +1 -0
  35. package/dist/contracts/agent-readiness/src/operate-policy.js +86 -0
  36. package/dist/contracts/agent-readiness/src/operate-policy.js.map +1 -0
  37. package/dist/contracts/agent-readiness/src/run.d.ts +485 -0
  38. package/dist/contracts/agent-readiness/src/run.d.ts.map +1 -0
  39. package/dist/contracts/agent-readiness/src/run.js +308 -0
  40. package/dist/contracts/agent-readiness/src/run.js.map +1 -0
  41. package/dist/contracts/agent-readiness/src/shared.d.ts +53 -62
  42. package/dist/contracts/agent-readiness/src/shared.d.ts.map +1 -1
  43. package/dist/contracts/agent-readiness/src/shared.js +51 -85
  44. package/dist/contracts/agent-readiness/src/shared.js.map +1 -1
  45. package/dist/contracts/api/src/index.d.ts +13861 -14913
  46. package/dist/contracts/api/src/index.d.ts.map +1 -1
  47. package/dist/contracts/api/src/index.js +93 -80
  48. package/dist/contracts/api/src/index.js.map +1 -1
  49. package/dist/contracts/artifact/src/index.d.ts +135 -71
  50. package/dist/contracts/artifact/src/index.d.ts.map +1 -1
  51. package/dist/contracts/artifact/src/index.js +16 -12
  52. package/dist/contracts/artifact/src/index.js.map +1 -1
  53. package/dist/contracts/assets/src/index.d.ts +0 -129
  54. package/dist/contracts/assets/src/index.d.ts.map +1 -1
  55. package/dist/contracts/assets/src/index.js +4 -4
  56. package/dist/contracts/assets/src/index.js.map +1 -1
  57. package/dist/contracts/assurance/src/index.d.ts +0 -1
  58. package/dist/contracts/assurance/src/index.d.ts.map +1 -1
  59. package/dist/contracts/authoring/src/index.d.ts +48 -247
  60. package/dist/contracts/authoring/src/index.d.ts.map +1 -1
  61. package/dist/contracts/authoring/src/index.js +4 -7
  62. package/dist/contracts/authoring/src/index.js.map +1 -1
  63. package/dist/contracts/authority/src/index.d.ts +0 -3
  64. package/dist/contracts/authority/src/index.d.ts.map +1 -1
  65. package/dist/contracts/authority/src/index.js +1 -2
  66. package/dist/contracts/authority/src/index.js.map +1 -1
  67. package/dist/contracts/billing/src/index.d.ts +0 -124
  68. package/dist/contracts/billing/src/index.d.ts.map +1 -1
  69. package/dist/contracts/billing/src/index.js +2 -58
  70. package/dist/contracts/billing/src/index.js.map +1 -1
  71. package/dist/contracts/catalog-verifier/src/index.d.ts +0 -3
  72. package/dist/contracts/catalog-verifier/src/index.d.ts.map +1 -1
  73. package/dist/contracts/company-authoring/src/index.d.ts +72 -0
  74. package/dist/contracts/company-authoring/src/index.d.ts.map +1 -0
  75. package/dist/contracts/company-authoring/src/index.js +41 -0
  76. package/dist/contracts/company-authoring/src/index.js.map +1 -0
  77. package/dist/contracts/company-standing/src/index.d.ts +106 -0
  78. package/dist/contracts/company-standing/src/index.d.ts.map +1 -0
  79. package/dist/contracts/company-standing/src/index.js +114 -0
  80. package/dist/contracts/company-standing/src/index.js.map +1 -0
  81. package/dist/contracts/company-verification/src/index.d.ts +94 -0
  82. package/dist/contracts/company-verification/src/index.d.ts.map +1 -0
  83. package/dist/contracts/company-verification/src/index.js +138 -0
  84. package/dist/contracts/company-verification/src/index.js.map +1 -0
  85. package/dist/contracts/datasets/src/index.d.ts +80 -129
  86. package/dist/contracts/datasets/src/index.d.ts.map +1 -1
  87. package/dist/contracts/events/src/index.d.ts +41 -5
  88. package/dist/contracts/events/src/index.d.ts.map +1 -1
  89. package/dist/contracts/events/src/index.js +51 -12
  90. package/dist/contracts/events/src/index.js.map +1 -1
  91. package/dist/contracts/evidence/src/index.d.ts +6 -291
  92. package/dist/contracts/evidence/src/index.d.ts.map +1 -1
  93. package/dist/contracts/evidence/src/index.js +12 -99
  94. package/dist/contracts/evidence/src/index.js.map +1 -1
  95. package/dist/contracts/feed/src/index.d.ts +0 -3
  96. package/dist/contracts/feed/src/index.d.ts.map +1 -1
  97. package/dist/contracts/observations/src/index.d.ts +0 -1
  98. package/dist/contracts/observations/src/index.d.ts.map +1 -1
  99. package/dist/contracts/observations/src/index.js +1 -4
  100. package/dist/contracts/observations/src/index.js.map +1 -1
  101. package/dist/contracts/policies/src/index.d.ts +0 -13
  102. package/dist/contracts/policies/src/index.d.ts.map +1 -1
  103. package/dist/contracts/policies/src/index.js +3 -2
  104. package/dist/contracts/policies/src/index.js.map +1 -1
  105. package/dist/contracts/publication/src/index.d.ts +282 -1285
  106. package/dist/contracts/publication/src/index.d.ts.map +1 -1
  107. package/dist/contracts/publication/src/index.js +22 -162
  108. package/dist/contracts/publication/src/index.js.map +1 -1
  109. package/dist/contracts/release/src/index.d.ts +120 -21
  110. package/dist/contracts/release/src/index.d.ts.map +1 -1
  111. package/dist/contracts/release/src/index.js +14 -2
  112. package/dist/contracts/release/src/index.js.map +1 -1
  113. package/dist/contracts/revisions/src/index.d.ts +107 -69
  114. package/dist/contracts/revisions/src/index.d.ts.map +1 -1
  115. package/dist/contracts/revisions/src/index.js +26 -8
  116. package/dist/contracts/revisions/src/index.js.map +1 -1
  117. package/dist/contracts/routes/src/index.d.ts +1 -17
  118. package/dist/contracts/routes/src/index.d.ts.map +1 -1
  119. package/dist/contracts/routes/src/index.js +7 -7
  120. package/dist/contracts/routes/src/index.js.map +1 -1
  121. package/dist/contracts/sourcey-publication/src/ownership.d.ts.map +1 -1
  122. package/dist/contracts/sourcey-publication/src/ownership.js +3 -1
  123. package/dist/contracts/sourcey-publication/src/ownership.js.map +1 -1
  124. package/dist/contracts/standards/src/index.d.ts +0 -1552
  125. package/dist/contracts/standards/src/index.d.ts.map +1 -1
  126. package/dist/contracts/standards/src/index.js +1 -723
  127. package/dist/contracts/standards/src/index.js.map +1 -1
  128. package/dist/contracts/startup-credits-commercial/src/index.d.ts +53 -382
  129. package/dist/contracts/startup-credits-commercial/src/index.d.ts.map +1 -1
  130. package/dist/contracts/startup-credits-commercial/src/index.js +30 -267
  131. package/dist/contracts/startup-credits-commercial/src/index.js.map +1 -1
  132. package/dist/modules/agent-readiness-engine/src/assertions.d.ts +24 -0
  133. package/dist/modules/agent-readiness-engine/src/assertions.d.ts.map +1 -0
  134. package/dist/modules/agent-readiness-engine/src/assertions.js +145 -0
  135. package/dist/modules/agent-readiness-engine/src/assertions.js.map +1 -0
  136. package/dist/modules/agent-readiness-engine/src/binding.d.ts +12 -0
  137. package/dist/modules/agent-readiness-engine/src/binding.d.ts.map +1 -0
  138. package/dist/modules/agent-readiness-engine/src/binding.js +104 -0
  139. package/dist/modules/agent-readiness-engine/src/binding.js.map +1 -0
  140. package/dist/modules/agent-readiness-engine/src/checks.d.ts +57 -0
  141. package/dist/modules/agent-readiness-engine/src/checks.d.ts.map +1 -0
  142. package/dist/modules/agent-readiness-engine/src/checks.js +126 -0
  143. package/dist/modules/agent-readiness-engine/src/checks.js.map +1 -0
  144. package/dist/modules/agent-readiness-engine/src/path.d.ts +24 -0
  145. package/dist/modules/agent-readiness-engine/src/path.d.ts.map +1 -0
  146. package/dist/modules/agent-readiness-engine/src/path.js +308 -0
  147. package/dist/modules/agent-readiness-engine/src/path.js.map +1 -0
  148. package/dist/modules/agent-readiness-engine/src/rate.d.ts +23 -0
  149. package/dist/modules/agent-readiness-engine/src/rate.d.ts.map +1 -0
  150. package/dist/modules/agent-readiness-engine/src/rate.js +57 -0
  151. package/dist/modules/agent-readiness-engine/src/rate.js.map +1 -0
  152. package/dist/modules/agent-readiness-engine/src/run.d.ts +9 -0
  153. package/dist/modules/agent-readiness-engine/src/run.d.ts.map +1 -0
  154. package/dist/modules/agent-readiness-engine/src/run.js +45 -0
  155. package/dist/modules/agent-readiness-engine/src/run.js.map +1 -0
  156. package/dist/modules/agent-readiness-engine/src/templates.d.ts +21 -0
  157. package/dist/modules/agent-readiness-engine/src/templates.d.ts.map +1 -0
  158. package/dist/modules/agent-readiness-engine/src/templates.js +89 -0
  159. package/dist/modules/agent-readiness-engine/src/templates.js.map +1 -0
  160. package/dist/modules/agent-readiness-jobs/src/index.d.ts +196 -0
  161. package/dist/modules/agent-readiness-jobs/src/index.d.ts.map +1 -0
  162. package/dist/modules/agent-readiness-jobs/src/index.js +186 -0
  163. package/dist/modules/agent-readiness-jobs/src/index.js.map +1 -0
  164. package/dist/modules/agent-readiness-policy/src/current-policy.d.ts +64 -245
  165. package/dist/modules/agent-readiness-policy/src/current-policy.d.ts.map +1 -1
  166. package/dist/modules/agent-readiness-policy/src/current-policy.js +10 -478
  167. package/dist/modules/agent-readiness-policy/src/current-policy.js.map +1 -1
  168. package/dist/modules/agent-readiness-policy/src/declaration-jobs.d.ts +20 -0
  169. package/dist/modules/agent-readiness-policy/src/declaration-jobs.d.ts.map +1 -0
  170. package/dist/modules/agent-readiness-policy/src/declaration-jobs.js +32 -0
  171. package/dist/modules/agent-readiness-policy/src/declaration-jobs.js.map +1 -0
  172. package/dist/modules/agent-readiness-policy/src/impact.d.ts +1 -80
  173. package/dist/modules/agent-readiness-policy/src/impact.d.ts.map +1 -1
  174. package/dist/modules/agent-readiness-policy/src/impact.js +2 -189
  175. package/dist/modules/agent-readiness-policy/src/impact.js.map +1 -1
  176. package/dist/modules/agent-readiness-policy/src/index.d.ts +21 -968
  177. package/dist/modules/agent-readiness-policy/src/index.d.ts.map +1 -1
  178. package/dist/modules/agent-readiness-policy/src/index.js +137 -470
  179. package/dist/modules/agent-readiness-policy/src/index.js.map +1 -1
  180. package/dist/modules/agent-readiness-policy/src/offer-relations.d.ts +0 -5
  181. package/dist/modules/agent-readiness-policy/src/offer-relations.d.ts.map +1 -1
  182. package/dist/modules/agent-readiness-policy/src/offer-relations.js +2 -4
  183. package/dist/modules/agent-readiness-policy/src/offer-relations.js.map +1 -1
  184. package/dist/modules/agent-readiness-policy/src/operate-policy.d.ts +16 -0
  185. package/dist/modules/agent-readiness-policy/src/operate-policy.d.ts.map +1 -0
  186. package/dist/modules/agent-readiness-policy/src/operate-policy.js +110 -0
  187. package/dist/modules/agent-readiness-policy/src/operate-policy.js.map +1 -0
  188. package/dist/modules/agent-readiness-policy/src/prior-projection.d.ts +3 -0
  189. package/dist/modules/agent-readiness-policy/src/prior-projection.d.ts.map +1 -0
  190. package/dist/modules/agent-readiness-policy/src/prior-projection.js +11 -0
  191. package/dist/modules/agent-readiness-policy/src/prior-projection.js.map +1 -0
  192. package/dist/modules/agent-readiness-policy/src/revision.d.ts +13 -2
  193. package/dist/modules/agent-readiness-policy/src/revision.d.ts.map +1 -1
  194. package/dist/modules/agent-readiness-policy/src/revision.js +79 -38
  195. package/dist/modules/agent-readiness-policy/src/revision.js.map +1 -1
  196. package/dist/modules/agent-readiness-repository/src/change.d.ts +3 -4
  197. package/dist/modules/agent-readiness-repository/src/change.d.ts.map +1 -1
  198. package/dist/modules/agent-readiness-repository/src/change.js +4 -4
  199. package/dist/modules/agent-readiness-repository/src/change.js.map +1 -1
  200. package/dist/modules/agent-readiness-repository/src/declaration-blob.d.ts +0 -5
  201. package/dist/modules/agent-readiness-repository/src/declaration-blob.d.ts.map +1 -1
  202. package/dist/modules/agent-readiness-repository/src/declaration-blob.js +2 -9
  203. package/dist/modules/agent-readiness-repository/src/declaration-blob.js.map +1 -1
  204. package/dist/modules/agent-readiness-repository/src/index.d.ts +1 -51
  205. package/dist/modules/agent-readiness-repository/src/index.d.ts.map +1 -1
  206. package/dist/modules/agent-readiness-repository/src/index.js +4 -113
  207. package/dist/modules/agent-readiness-repository/src/index.js.map +1 -1
  208. package/dist/modules/artifact/src/agent-readiness-closure.d.ts +4 -7
  209. package/dist/modules/artifact/src/agent-readiness-closure.d.ts.map +1 -1
  210. package/dist/modules/artifact/src/agent-readiness-closure.js +5 -22
  211. package/dist/modules/artifact/src/agent-readiness-closure.js.map +1 -1
  212. package/dist/modules/artifact/src/index.d.ts +5 -4
  213. package/dist/modules/artifact/src/index.d.ts.map +1 -1
  214. package/dist/modules/artifact/src/index.js +47 -45
  215. package/dist/modules/artifact/src/index.js.map +1 -1
  216. package/dist/modules/artifact/src/policy-closure.js +2 -2
  217. package/dist/modules/artifact/src/policy-closure.js.map +1 -1
  218. package/dist/modules/assets/src/authority-bundle.d.ts +2 -5
  219. package/dist/modules/assets/src/authority-bundle.d.ts.map +1 -1
  220. package/dist/modules/assets/src/authority-bundle.js +1 -9
  221. package/dist/modules/assets/src/authority-bundle.js.map +1 -1
  222. package/dist/modules/assets/src/delta.d.ts +0 -5
  223. package/dist/modules/assets/src/delta.d.ts.map +1 -1
  224. package/dist/modules/assets/src/delta.js +1 -38
  225. package/dist/modules/assets/src/delta.js.map +1 -1
  226. package/dist/modules/assets/src/index.d.ts +1 -1
  227. package/dist/modules/assets/src/index.d.ts.map +1 -1
  228. package/dist/modules/assets/src/ingestion.d.ts +2 -1
  229. package/dist/modules/assets/src/ingestion.d.ts.map +1 -1
  230. package/dist/modules/authority/src/index.d.ts +3 -10
  231. package/dist/modules/authority/src/index.d.ts.map +1 -1
  232. package/dist/modules/authority/src/index.js +113 -201
  233. package/dist/modules/authority/src/index.js.map +1 -1
  234. package/dist/modules/authority-state/src/index.d.ts +2 -1
  235. package/dist/modules/authority-state/src/index.d.ts.map +1 -1
  236. package/dist/modules/catalog-admission/src/admission-conflicts.d.ts +5 -7
  237. package/dist/modules/catalog-admission/src/admission-conflicts.d.ts.map +1 -1
  238. package/dist/modules/catalog-admission/src/admission-conflicts.js +1 -1
  239. package/dist/modules/catalog-admission/src/admission-conflicts.js.map +1 -1
  240. package/dist/modules/catalog-admission/src/change-analysis.d.ts +1 -2
  241. package/dist/modules/catalog-admission/src/change-analysis.d.ts.map +1 -1
  242. package/dist/modules/catalog-admission/src/change-analysis.js +0 -4
  243. package/dist/modules/catalog-admission/src/change-analysis.js.map +1 -1
  244. package/dist/modules/catalog-admission/src/index.d.ts +2 -9
  245. package/dist/modules/catalog-admission/src/index.d.ts.map +1 -1
  246. package/dist/modules/catalog-admission/src/index.js +28 -13
  247. package/dist/modules/catalog-admission/src/index.js.map +1 -1
  248. package/dist/modules/catalog-admission/src/machine-admission.d.ts +65 -19
  249. package/dist/modules/catalog-admission/src/machine-admission.d.ts.map +1 -1
  250. package/dist/modules/catalog-admission/src/machine-admission.js +5 -331
  251. package/dist/modules/catalog-admission/src/machine-admission.js.map +1 -1
  252. package/dist/modules/catalog-admission/src/publication-composition.d.ts +17 -1
  253. package/dist/modules/catalog-admission/src/publication-composition.d.ts.map +1 -1
  254. package/dist/modules/catalog-admission/src/publication-dependencies.d.ts +1 -6
  255. package/dist/modules/catalog-admission/src/publication-dependencies.d.ts.map +1 -1
  256. package/dist/modules/catalog-admission/src/publication-dependencies.js +5 -33
  257. package/dist/modules/catalog-admission/src/publication-dependencies.js.map +1 -1
  258. package/dist/modules/catalog-admission/src/publication-entities.d.ts +0 -1
  259. package/dist/modules/catalog-admission/src/publication-entities.d.ts.map +1 -1
  260. package/dist/modules/catalog-admission/src/publication-entities.js +1 -1
  261. package/dist/modules/catalog-admission/src/publication-entities.js.map +1 -1
  262. package/dist/modules/catalog-admission/src/publication.d.ts +3 -8
  263. package/dist/modules/catalog-admission/src/publication.d.ts.map +1 -1
  264. package/dist/modules/catalog-admission/src/publication.js +0 -13
  265. package/dist/modules/catalog-admission/src/publication.js.map +1 -1
  266. package/dist/modules/catalog-admission/src/submission.js +1 -1
  267. package/dist/modules/catalog-admission/src/submission.js.map +1 -1
  268. package/dist/modules/catalog-admission/src/taxonomy.d.ts +3 -0
  269. package/dist/modules/catalog-admission/src/taxonomy.d.ts.map +1 -0
  270. package/dist/modules/catalog-admission/src/taxonomy.js +7 -0
  271. package/dist/modules/catalog-admission/src/taxonomy.js.map +1 -0
  272. package/dist/modules/catalog-authoring-validation/src/index.d.ts +0 -1
  273. package/dist/modules/catalog-authoring-validation/src/index.d.ts.map +1 -1
  274. package/dist/modules/catalog-authoring-validation/src/index.js +1 -1
  275. package/dist/modules/catalog-authoring-validation/src/index.js.map +1 -1
  276. package/dist/modules/catalog-model/src/index.d.ts +2 -2
  277. package/dist/modules/catalog-model/src/index.d.ts.map +1 -1
  278. package/dist/modules/catalog-primitives/src/index.d.ts +2 -4
  279. package/dist/modules/catalog-primitives/src/index.d.ts.map +1 -1
  280. package/dist/modules/catalog-primitives/src/index.js +24 -0
  281. package/dist/modules/catalog-primitives/src/index.js.map +1 -1
  282. package/dist/modules/catalog-read-port/src/index.d.ts +3 -3
  283. package/dist/modules/catalog-read-port/src/index.d.ts.map +1 -1
  284. package/dist/modules/evidence-comparison/src/domains.d.ts +8 -0
  285. package/dist/modules/evidence-comparison/src/domains.d.ts.map +1 -0
  286. package/dist/modules/evidence-comparison/src/domains.js +16 -0
  287. package/dist/modules/evidence-comparison/src/domains.js.map +1 -0
  288. package/dist/modules/evidence-operations/src/attested-capture.d.ts +75 -0
  289. package/dist/modules/evidence-operations/src/attested-capture.d.ts.map +1 -0
  290. package/dist/modules/evidence-operations/src/attested-capture.js +227 -0
  291. package/dist/modules/evidence-operations/src/attested-capture.js.map +1 -0
  292. package/dist/modules/evidence-operations/src/configuration.d.ts +2 -163
  293. package/dist/modules/evidence-operations/src/configuration.d.ts.map +1 -1
  294. package/dist/modules/evidence-operations/src/configuration.js +7 -7
  295. package/dist/modules/evidence-operations/src/configuration.js.map +1 -1
  296. package/dist/modules/evidence-operations/src/evidence-authority-materialization.d.ts +53 -0
  297. package/dist/modules/evidence-operations/src/evidence-authority-materialization.d.ts.map +1 -0
  298. package/dist/modules/evidence-operations/src/evidence-authority-materialization.js +161 -0
  299. package/dist/modules/evidence-operations/src/evidence-authority-materialization.js.map +1 -0
  300. package/dist/modules/evidence-operations/src/evidence-authority.d.ts +27 -2128
  301. package/dist/modules/evidence-operations/src/evidence-authority.d.ts.map +1 -1
  302. package/dist/modules/evidence-operations/src/evidence-authority.js +46 -206
  303. package/dist/modules/evidence-operations/src/evidence-authority.js.map +1 -1
  304. package/dist/modules/evidence-operations/src/evidence-normalization.d.ts +10 -96
  305. package/dist/modules/evidence-operations/src/evidence-normalization.d.ts.map +1 -1
  306. package/dist/modules/evidence-operations/src/evidence-normalization.js +32 -329
  307. package/dist/modules/evidence-operations/src/evidence-normalization.js.map +1 -1
  308. package/dist/modules/evidence-operations/src/evidence-revision.d.ts +5 -0
  309. package/dist/modules/evidence-operations/src/evidence-revision.d.ts.map +1 -0
  310. package/dist/modules/evidence-operations/src/evidence-revision.js +12 -0
  311. package/dist/modules/evidence-operations/src/evidence-revision.js.map +1 -0
  312. package/dist/modules/evidence-operations/src/proof-graph.d.ts +13 -6
  313. package/dist/modules/evidence-operations/src/proof-graph.d.ts.map +1 -1
  314. package/dist/modules/evidence-operations/src/proof-graph.js +82 -59
  315. package/dist/modules/evidence-operations/src/proof-graph.js.map +1 -1
  316. package/dist/modules/evidence-operations/src/retained-revision.d.ts +7 -5
  317. package/dist/modules/evidence-operations/src/retained-revision.d.ts.map +1 -1
  318. package/dist/modules/evidence-operations/src/retained-revision.js +14 -16
  319. package/dist/modules/evidence-operations/src/retained-revision.js.map +1 -1
  320. package/dist/modules/evidence-operations/src/source-authority.js +1 -1
  321. package/dist/modules/evidence-operations/src/source-authority.js.map +1 -1
  322. package/dist/modules/evidence-operations/src/submission-verifier.d.ts +13 -23
  323. package/dist/modules/evidence-operations/src/submission-verifier.d.ts.map +1 -1
  324. package/dist/modules/evidence-operations/src/submission-verifier.js +5 -20
  325. package/dist/modules/evidence-operations/src/submission-verifier.js.map +1 -1
  326. package/dist/modules/provenance/src/evidence-bindings.d.ts +2 -1
  327. package/dist/modules/provenance/src/evidence-bindings.d.ts.map +1 -1
  328. package/dist/modules/provenance/src/evidence-coverage.d.ts +2 -1
  329. package/dist/modules/provenance/src/evidence-coverage.d.ts.map +1 -1
  330. package/dist/modules/provenance/src/index.d.ts +17 -11
  331. package/dist/modules/provenance/src/index.d.ts.map +1 -1
  332. package/dist/modules/provenance/src/index.js +62 -62
  333. package/dist/modules/provenance/src/index.js.map +1 -1
  334. package/dist/modules/provenance/src/material-claims.d.ts +7 -136
  335. package/dist/modules/provenance/src/material-claims.d.ts.map +1 -1
  336. package/dist/modules/provenance/src/material-claims.js +8 -10
  337. package/dist/modules/provenance/src/material-claims.js.map +1 -1
  338. package/dist/modules/release/src/agent-readiness-authority.d.ts +71 -0
  339. package/dist/modules/release/src/agent-readiness-authority.d.ts.map +1 -0
  340. package/dist/modules/release/src/agent-readiness-authority.js +164 -0
  341. package/dist/modules/release/src/agent-readiness-authority.js.map +1 -0
  342. package/dist/modules/release/src/agent-readiness-publication-inputs.d.ts +1 -2
  343. package/dist/modules/release/src/agent-readiness-publication-inputs.d.ts.map +1 -1
  344. package/dist/modules/release/src/agent-readiness-publication-inputs.js +3 -6
  345. package/dist/modules/release/src/agent-readiness-publication-inputs.js.map +1 -1
  346. package/dist/modules/release/src/agent-readiness-regrade-evidence.d.ts +13 -89
  347. package/dist/modules/release/src/agent-readiness-regrade-evidence.d.ts.map +1 -1
  348. package/dist/modules/release/src/agent-readiness-regrade-evidence.js +14 -46
  349. package/dist/modules/release/src/agent-readiness-regrade-evidence.js.map +1 -1
  350. package/dist/modules/release/src/changes.d.ts +3 -3
  351. package/dist/modules/release/src/changes.d.ts.map +1 -1
  352. package/dist/modules/release/src/changes.js +1 -2
  353. package/dist/modules/release/src/changes.js.map +1 -1
  354. package/dist/modules/release/src/evidence-admission.d.ts +10 -10
  355. package/dist/modules/release/src/evidence-admission.d.ts.map +1 -1
  356. package/dist/modules/release/src/evidence-admission.js +52 -60
  357. package/dist/modules/release/src/evidence-admission.js.map +1 -1
  358. package/dist/modules/release/src/evidence-bundle-tree.d.ts +7 -7
  359. package/dist/modules/release/src/evidence-bundle-tree.d.ts.map +1 -1
  360. package/dist/modules/release/src/evidence-bundle-tree.js +15 -15
  361. package/dist/modules/release/src/evidence-bundle-tree.js.map +1 -1
  362. package/dist/modules/release/src/identity.d.ts +2 -1
  363. package/dist/modules/release/src/identity.d.ts.map +1 -1
  364. package/dist/modules/release/src/identity.js.map +1 -1
  365. package/dist/modules/release/src/inputs.d.ts +12 -11
  366. package/dist/modules/release/src/inputs.d.ts.map +1 -1
  367. package/dist/modules/release/src/inputs.js +30 -202
  368. package/dist/modules/release/src/inputs.js.map +1 -1
  369. package/dist/modules/release/src/publication-inputs.d.ts +2 -1
  370. package/dist/modules/release/src/publication-inputs.d.ts.map +1 -1
  371. package/dist/modules/release/src/transition.d.ts +2 -2
  372. package/dist/modules/release/src/transition.d.ts.map +1 -1
  373. package/dist/modules/release/src/transition.js.map +1 -1
  374. package/dist/modules/release/src/verification-policies.d.ts +59 -242
  375. package/dist/modules/release/src/verification-policies.d.ts.map +1 -1
  376. package/dist/modules/release/src/verification-policies.js +2 -2
  377. package/dist/modules/release/src/verification-policies.js.map +1 -1
  378. package/dist/modules/sourcey-publication/src/verifier.d.ts +4 -3
  379. package/dist/modules/sourcey-publication/src/verifier.d.ts.map +1 -1
  380. package/dist/modules/sourcey-publication/src/verifier.js +53 -50
  381. package/dist/modules/sourcey-publication/src/verifier.js.map +1 -1
  382. package/dist/packages/catalog-verifier/src/application.d.ts +2 -5
  383. package/dist/packages/catalog-verifier/src/application.d.ts.map +1 -1
  384. package/dist/packages/catalog-verifier/src/application.js +2 -5
  385. package/dist/packages/catalog-verifier/src/application.js.map +1 -1
  386. package/dist/packages/catalog-verifier/src/program.js +1 -1
  387. package/dist/packages/catalog-verifier/src/program.js.map +1 -1
  388. package/package.json +2 -3
  389. package/dist/contracts/agent-readiness/src/evidence.d.ts +0 -245
  390. package/dist/contracts/agent-readiness/src/evidence.d.ts.map +0 -1
  391. package/dist/contracts/agent-readiness/src/evidence.js +0 -213
  392. package/dist/contracts/agent-readiness/src/evidence.js.map +0 -1
  393. package/dist/contracts/agent-readiness/src/interaction.d.ts +0 -26
  394. package/dist/contracts/agent-readiness/src/interaction.d.ts.map +0 -1
  395. package/dist/contracts/agent-readiness/src/interaction.js +0 -24
  396. package/dist/contracts/agent-readiness/src/interaction.js.map +0 -1
  397. package/dist/contracts/agent-readiness/src/method-pack.d.ts +0 -389
  398. package/dist/contracts/agent-readiness/src/method-pack.d.ts.map +0 -1
  399. package/dist/contracts/agent-readiness/src/method-pack.js +0 -181
  400. package/dist/contracts/agent-readiness/src/method-pack.js.map +0 -1
  401. package/dist/modules/agent-readiness-policy/src/corroboration.d.ts +0 -38
  402. package/dist/modules/agent-readiness-policy/src/corroboration.d.ts.map +0 -1
  403. package/dist/modules/agent-readiness-policy/src/corroboration.js +0 -66
  404. package/dist/modules/agent-readiness-policy/src/corroboration.js.map +0 -1
  405. package/dist/modules/agent-readiness-policy/src/current-policy-metrics.d.ts +0 -35
  406. package/dist/modules/agent-readiness-policy/src/current-policy-metrics.d.ts.map +0 -1
  407. package/dist/modules/agent-readiness-policy/src/current-policy-metrics.js +0 -721
  408. package/dist/modules/agent-readiness-policy/src/current-policy-metrics.js.map +0 -1
  409. package/dist/modules/agent-readiness-policy/src/current-policy-standards.d.ts +0 -99
  410. package/dist/modules/agent-readiness-policy/src/current-policy-standards.d.ts.map +0 -1
  411. package/dist/modules/agent-readiness-policy/src/current-policy-standards.js +0 -99
  412. package/dist/modules/agent-readiness-policy/src/current-policy-standards.js.map +0 -1
  413. package/dist/modules/agent-readiness-policy/src/current-policy-validation.d.ts +0 -4
  414. package/dist/modules/agent-readiness-policy/src/current-policy-validation.d.ts.map +0 -1
  415. package/dist/modules/agent-readiness-policy/src/current-policy-validation.js +0 -11
  416. package/dist/modules/agent-readiness-policy/src/current-policy-validation.js.map +0 -1
  417. package/dist/modules/agent-readiness-policy/src/grading.d.ts +0 -40
  418. package/dist/modules/agent-readiness-policy/src/grading.d.ts.map +0 -1
  419. package/dist/modules/agent-readiness-policy/src/grading.js +0 -46
  420. package/dist/modules/agent-readiness-policy/src/grading.js.map +0 -1
  421. package/dist/modules/agent-readiness-policy/src/policy-validation.d.ts +0 -3
  422. package/dist/modules/agent-readiness-policy/src/policy-validation.d.ts.map +0 -1
  423. package/dist/modules/agent-readiness-policy/src/policy-validation.js +0 -39
  424. package/dist/modules/agent-readiness-policy/src/policy-validation.js.map +0 -1
  425. package/dist/modules/agent-readiness-policy/src/projection-lineage.d.ts +0 -3
  426. package/dist/modules/agent-readiness-policy/src/projection-lineage.d.ts.map +0 -1
  427. package/dist/modules/agent-readiness-policy/src/projection-lineage.js +0 -12
  428. package/dist/modules/agent-readiness-policy/src/projection-lineage.js.map +0 -1
  429. package/dist/modules/agent-readiness-policy/src/standard-mapping.d.ts +0 -7
  430. package/dist/modules/agent-readiness-policy/src/standard-mapping.d.ts.map +0 -1
  431. package/dist/modules/agent-readiness-policy/src/standard-mapping.js +0 -14
  432. package/dist/modules/agent-readiness-policy/src/standard-mapping.js.map +0 -1
  433. package/dist/modules/agent-readiness-policy/src/surface-selection.d.ts +0 -44
  434. package/dist/modules/agent-readiness-policy/src/surface-selection.d.ts.map +0 -1
  435. package/dist/modules/agent-readiness-policy/src/surface-selection.js +0 -238
  436. package/dist/modules/agent-readiness-policy/src/surface-selection.js.map +0 -1
  437. package/dist/modules/agent-readiness-repository/src/admission.d.ts +0 -35
  438. package/dist/modules/agent-readiness-repository/src/admission.d.ts.map +0 -1
  439. package/dist/modules/agent-readiness-repository/src/admission.js +0 -56
  440. package/dist/modules/agent-readiness-repository/src/admission.js.map +0 -1
  441. package/dist/modules/authority/src/retained-capture-receipt.d.ts +0 -95
  442. package/dist/modules/authority/src/retained-capture-receipt.d.ts.map +0 -1
  443. package/dist/modules/authority/src/retained-capture-receipt.js +0 -76
  444. package/dist/modules/authority/src/retained-capture-receipt.js.map +0 -1
  445. package/dist/modules/catalog-admission/src/publication-recomposition.d.ts +0 -42
  446. package/dist/modules/catalog-admission/src/publication-recomposition.d.ts.map +0 -1
  447. package/dist/modules/catalog-admission/src/publication-recomposition.js +0 -163
  448. package/dist/modules/catalog-admission/src/publication-recomposition.js.map +0 -1
  449. package/dist/modules/evidence-comparison/src/values.d.ts +0 -75
  450. package/dist/modules/evidence-comparison/src/values.d.ts.map +0 -1
  451. package/dist/modules/evidence-comparison/src/values.js +0 -283
  452. package/dist/modules/evidence-comparison/src/values.js.map +0 -1
  453. package/dist/modules/evidence-grounding/src/figures.d.ts +0 -56
  454. package/dist/modules/evidence-grounding/src/figures.d.ts.map +0 -1
  455. package/dist/modules/evidence-grounding/src/figures.js +0 -727
  456. package/dist/modules/evidence-grounding/src/figures.js.map +0 -1
  457. package/dist/modules/evidence-grounding/src/index.d.ts +0 -4
  458. package/dist/modules/evidence-grounding/src/index.d.ts.map +0 -1
  459. package/dist/modules/evidence-grounding/src/index.js +0 -4
  460. package/dist/modules/evidence-grounding/src/index.js.map +0 -1
  461. package/dist/modules/evidence-grounding/src/locator.d.ts +0 -50
  462. package/dist/modules/evidence-grounding/src/locator.d.ts.map +0 -1
  463. package/dist/modules/evidence-grounding/src/locator.js +0 -162
  464. package/dist/modules/evidence-grounding/src/locator.js.map +0 -1
  465. package/dist/modules/evidence-grounding/src/written.d.ts +0 -29
  466. package/dist/modules/evidence-grounding/src/written.d.ts.map +0 -1
  467. package/dist/modules/evidence-grounding/src/written.js +0 -111
  468. package/dist/modules/evidence-grounding/src/written.js.map +0 -1
  469. package/dist/modules/evidence-operations/src/dependency-versions.d.ts +0 -2
  470. package/dist/modules/evidence-operations/src/dependency-versions.d.ts.map +0 -1
  471. package/dist/modules/evidence-operations/src/dependency-versions.js +0 -17
  472. package/dist/modules/evidence-operations/src/dependency-versions.js.map +0 -1
  473. package/dist/modules/evidence-operations/src/html-document.d.ts +0 -4
  474. package/dist/modules/evidence-operations/src/html-document.d.ts.map +0 -1
  475. package/dist/modules/evidence-operations/src/html-document.js +0 -99
  476. package/dist/modules/evidence-operations/src/html-document.js.map +0 -1
  477. package/dist/modules/policy-identity/src/index.d.ts +0 -7
  478. package/dist/modules/policy-identity/src/index.d.ts.map +0 -1
  479. package/dist/modules/policy-identity/src/index.js +0 -23
  480. package/dist/modules/policy-identity/src/index.js.map +0 -1
  481. package/dist/modules/release/src/publication-authorities.d.ts +0 -298
  482. package/dist/modules/release/src/publication-authorities.d.ts.map +0 -1
  483. package/dist/modules/release/src/publication-authorities.js +0 -56
  484. package/dist/modules/release/src/publication-authorities.js.map +0 -1
  485. package/dist/modules/standard-adapter-runtime/src/index.d.ts +0 -16
  486. package/dist/modules/standard-adapter-runtime/src/index.d.ts.map +0 -1
  487. package/dist/modules/standard-adapter-runtime/src/index.js +0 -43
  488. package/dist/modules/standard-adapter-runtime/src/index.js.map +0 -1
  489. package/dist/modules/standard-evidence/src/index.d.ts +0 -33
  490. package/dist/modules/standard-evidence/src/index.d.ts.map +0 -1
  491. package/dist/modules/standard-evidence/src/index.js +0 -149
  492. package/dist/modules/standard-evidence/src/index.js.map +0 -1
@@ -0,0 +1,308 @@
1
+ import { compareInstants } from "provenry/primitives";
2
+ import { AGENT_READINESS_STEPS, } from "../../../contracts/agent-readiness/src/index.js";
3
+ const MAXIMUM_EVIDENCE = 32;
4
+ /** Facts that name an interface an agent can call; others (metadata, registration) do not. */
5
+ const NAMING_FACTS = new Set([
6
+ "mcp_endpoint",
7
+ "ard_entry",
8
+ "api_catalog_link",
9
+ "openapi_server",
10
+ "oauth_protected_resource",
11
+ ]);
12
+ /**
13
+ * The Operate path a profile's runs establish: one outcome per step, each
14
+ * resting on entries of the runs. The latest run decides every step; earlier
15
+ * runs count only to reproduce a refusal, the one way a step is `blocked`.
16
+ * Documentation never enters: only exchanges, discovery attempts, recorded
17
+ * credentials and recorded human steps.
18
+ */
19
+ export function evaluatePath(input) {
20
+ const runs = [...input.runs].sort((left, right) => compareInstants(left.finished_at, right.finished_at) ||
21
+ (left.run_digest < right.run_digest ? -1 : 1));
22
+ const current = runs.at(-1);
23
+ if (!current)
24
+ throw new Error("A path needs at least one run.");
25
+ const { job, binding } = input;
26
+ const succeeded = (run) => run.assertions.length === job.assertions.length &&
27
+ job.assertions.every(({ name }) => run.assertions.some(({ assertion, holds }) => assertion === name && holds));
28
+ const ok = succeeded(current);
29
+ const jobEvidence = exchangeEvidence(current, (entry) => entry.purpose === "job");
30
+ const refusal = (purpose) => reproducedRefusal(runs, purpose, input.policy.blocked);
31
+ const jobRefusal = ok ? null : refusal("job");
32
+ const jobStep = (() => {
33
+ if (ok)
34
+ return result("job", "machine", null, jobEvidence);
35
+ if (jobRefusal && jobRefusal.status !== 402) {
36
+ return result("job", "blocked", null, jobRefusal.evidence);
37
+ }
38
+ return notAssessed("job");
39
+ })();
40
+ const usedRoles = [...new Set(binding.calls.flatMap(({ credentials }) => credentials))];
41
+ const delegationStep = (() => {
42
+ if (binding.delegation.kind === "none") {
43
+ return ok && usedRoles.length === 0
44
+ ? result("delegation", "not_applicable", null, jobEvidence)
45
+ : notAssessed("delegation");
46
+ }
47
+ const delegationRefusal = refusal("delegation");
48
+ if (delegationRefusal)
49
+ return result("delegation", "blocked", null, delegationRefusal.evidence);
50
+ // The authority the job actually carried: the handles on its own requests.
51
+ const carried = new Set(current.exchanges.flatMap((entry) => entry.purpose === "job" && entry.role === "request"
52
+ ? entry.record.request.credentials.map(({ handle_digest }) => handle_digest)
53
+ : []));
54
+ const held = current.credentials.filter(({ handle_digest }) => carried.has(handle_digest));
55
+ if (usedRoles.length === 0 || held.length === 0 || held.length !== carried.size) {
56
+ return notAssessed("delegation");
57
+ }
58
+ const evidence = held.map((source) => ({
59
+ kind: "credential",
60
+ run_digest: current.run_digest,
61
+ handle_digest: source.handle_digest,
62
+ }));
63
+ const issuedBy = new Set(held.flatMap(({ source }) => (source.kind === "issued" ? [source.exchange_digest] : [])));
64
+ evidence.push(...exchangeEvidence(current, (entry) => issuedBy.has(entry.record.exchange_digest)));
65
+ if (held.some(({ source }) => source.kind === "entered")) {
66
+ return result("delegation", "workaround", "setup", evidence);
67
+ }
68
+ return binding.delegation.kind === "oauth"
69
+ ? result("delegation", "approval", "setup", evidence)
70
+ : result("delegation", "machine", null, evidence);
71
+ })();
72
+ const payStep = (() => {
73
+ if (jobRefusal?.status === 402)
74
+ return result("pay", "blocked", null, jobRefusal.evidence);
75
+ if (binding.payment.kind === "none") {
76
+ return ok ? result("pay", "not_applicable", null, jobEvidence) : notAssessed("pay");
77
+ }
78
+ return human(current, "pay", ok ? jobEvidence : []) ?? notAssessed("pay");
79
+ })();
80
+ const confirmStep = (() => {
81
+ if (!ok || current.error_probe === null)
82
+ return notAssessed("confirm");
83
+ const evidence = [
84
+ ...jobEvidence,
85
+ ...exchangeEvidence(current, (entry) => entry.purpose === "error_probe"),
86
+ ];
87
+ return current.error_probe.typed
88
+ ? result("confirm", "machine", null, evidence)
89
+ : result("confirm", "workaround", "recurring", evidence);
90
+ })();
91
+ const discoverStep = (() => {
92
+ const { attempts, facts } = current.discovery;
93
+ if (attempts.length === 0)
94
+ return notAssessed("discover");
95
+ const used = binding.calls.flatMap(({ endpoint_id }) => {
96
+ const uri = input.endpoints.get(endpoint_id);
97
+ return uri ? [uri] : [];
98
+ });
99
+ const named = facts.filter((fact) => NAMING_FACTS.has(fact.fact) && used.some((uri) => namesEndpoint(fact.value, uri)));
100
+ const evidence = (named.length > 0 ? named.map(({ attempt_digest }) => attempt_digest) : attempts).map((attempt) => ({
101
+ kind: "discovery",
102
+ run_digest: current.run_digest,
103
+ attempt_digest: attempt,
104
+ }));
105
+ return named.length > 0
106
+ ? result("discover", "machine", null, evidence)
107
+ : result("discover", "workaround", "setup", evidence);
108
+ })();
109
+ const sustainStep = (() => {
110
+ if (binding.delegation.kind === "none") {
111
+ return ok ? result("sustain", "not_applicable", null, jobEvidence) : notAssessed("sustain");
112
+ }
113
+ const { rotation, revocation } = binding.sustain;
114
+ const handoffs = current.handoffs.flatMap((handoff, index) => handoff.step === "sustain" ? [index] : []);
115
+ const evidence = [
116
+ ...exchangeEvidence(current, (entry) => entry.purpose.startsWith("sustain_")),
117
+ ...handoffs.map((handoff) => ({ kind: "handoff", run_digest: current.run_digest, handoff })),
118
+ ];
119
+ const witnessed = upkeepWitnesses(current);
120
+ const part = (kind, purpose) => {
121
+ if (kind === "manual")
122
+ return handoffs.some((index) => current.handoffs[index]?.kind === "workaround")
123
+ ? "workaround"
124
+ : "not_assessed";
125
+ return (purpose === "sustain_rotation" ? witnessed.rotation : witnessed.revocation)
126
+ ? "machine"
127
+ : "not_assessed";
128
+ };
129
+ const parts = [
130
+ part(rotation.kind, "sustain_rotation"),
131
+ part(revocation.kind, "sustain_revocation"),
132
+ ];
133
+ if (parts.includes("not_assessed"))
134
+ return notAssessed("sustain");
135
+ return parts.includes("workaround")
136
+ ? result("sustain", "workaround", "recurring", evidence)
137
+ : result("sustain", "machine", null, evidence);
138
+ })();
139
+ return {
140
+ runDigest: current.run_digest,
141
+ steps: [discoverStep, delegationStep, payStep, jobStep, confirmStep, sustainStep].map((step) => step.outcome === "not_assessed" || step.outcome === "blocked"
142
+ ? step
143
+ : (human(current, step.step, step.evidence, step) ?? step)),
144
+ };
145
+ }
146
+ /** Accepted maintenance requests are not effects: correlate their readbacks. */
147
+ function upkeepWitnesses(run) {
148
+ const at = (purpose) => run.exchanges.findIndex((entry) => entry.purpose === purpose && entry.role === "request");
149
+ const baselineAt = at("sustain_baseline");
150
+ const rotationAt = at("sustain_rotation");
151
+ const rotatedAt = at("sustain_rotated_probe");
152
+ const revokeAt = at("sustain_revocation");
153
+ const refusedAt = at("sustain_revoked_probe");
154
+ const controlAt = at("sustain_control_probe");
155
+ const baseline = run.exchanges[baselineAt];
156
+ const rotation = run.exchanges[rotationAt];
157
+ const rotated = run.exchanges[rotatedAt];
158
+ const revoke = run.exchanges[revokeAt];
159
+ const refused = run.exchanges[refusedAt];
160
+ const control = run.exchanges[controlAt];
161
+ const succeeded = (entry) => entry?.record.outcome === "responded" &&
162
+ entry.record.response.status >= 200 &&
163
+ entry.record.response.status <= 299;
164
+ const handles = (entry) => entry?.record.request.credentials.map(({ handle_digest }) => handle_digest) ?? [];
165
+ const sameHandles = (a, b) => {
166
+ const left = handles(a);
167
+ const right = handles(b);
168
+ return (left.length > 0 &&
169
+ left.length === right.length &&
170
+ left.every((handle) => right.includes(handle)));
171
+ };
172
+ const sameProbe = (a, b) => a !== undefined &&
173
+ b !== undefined &&
174
+ a.record.request.method === "GET" &&
175
+ b.record.request.method === "GET" &&
176
+ a.record.request.url === b.record.request.url &&
177
+ a.record.request.body === null &&
178
+ b.record.request.body === null;
179
+ const issued = handles(rotated).length > 0 &&
180
+ handles(rotated).every((handle) => run.credentials.some((credential) => credential.handle_digest === handle &&
181
+ credential.source.kind === "issued" &&
182
+ credential.source.exchange_digest === rotation?.record.exchange_digest));
183
+ const renewed = baselineAt >= 0 &&
184
+ baselineAt < rotationAt &&
185
+ rotationAt < rotatedAt &&
186
+ succeeded(baseline) &&
187
+ succeeded(rotation) &&
188
+ succeeded(rotated) &&
189
+ sameProbe(baseline, rotated) &&
190
+ issued &&
191
+ handles(rotated).every((handle) => !handles(baseline).includes(handle));
192
+ const activeAt = rotatedAt >= 0 ? rotatedAt : baselineAt;
193
+ const active = run.exchanges[activeAt];
194
+ const revoked = activeAt >= 0 &&
195
+ activeAt < revokeAt &&
196
+ revokeAt < refusedAt &&
197
+ refusedAt < controlAt &&
198
+ succeeded(active) &&
199
+ succeeded(revoke) &&
200
+ succeeded(control) &&
201
+ refused?.record.outcome === "responded" &&
202
+ [401, 403].includes(refused.record.response.status) &&
203
+ sameHandles(active, refused) &&
204
+ sameProbe(active, refused) &&
205
+ sameProbe(refused, control) &&
206
+ handles(control).length > 0 &&
207
+ handles(control).every((handle) => !handles(refused).includes(handle));
208
+ return { rotation: renewed, revocation: revoked };
209
+ }
210
+ /** A listing no binding has run: every step not assessed, so no letter. */
211
+ export function unexercisedPath() {
212
+ return AGENT_READINESS_STEPS.map(notAssessed);
213
+ }
214
+ /**
215
+ * Every human step the runner recorded at `step`. A workaround dominates
216
+ * approval, and recurrence is decided among handoffs of that outcome: a
217
+ * recurring consent must not turn a one-time mechanical setup into recurring
218
+ * work. All handoffs remain evidence, independent of their input order.
219
+ */
220
+ function human(run, step, evidence, inferred) {
221
+ const handoffs = run.handoffs.flatMap((handoff, index) => handoff.step === step ? [{ handoff, index }] : []);
222
+ if (handoffs.length === 0)
223
+ return null;
224
+ const kind = inferred?.outcome === "workaround" ||
225
+ handoffs.some(({ handoff }) => handoff.kind === "workaround")
226
+ ? "workaround"
227
+ : "approval";
228
+ const timing = (inferred?.outcome === kind && inferred.timing === "recurring") ||
229
+ handoffs.some(({ handoff }) => handoff.kind === kind && handoff.timing === "recurring")
230
+ ? "recurring"
231
+ : "setup";
232
+ return result(step, kind, timing, [
233
+ ...evidence,
234
+ ...handoffs
235
+ .filter(({ index }) => !evidence.some((entry) => entry.kind === "handoff" &&
236
+ entry.run_digest === run.run_digest &&
237
+ entry.handoff === index))
238
+ .map(({ index }) => ({ kind: "handoff", run_digest: run.run_digest, handoff: index })),
239
+ ]);
240
+ }
241
+ /**
242
+ * A refusal reproduced across runs: the latest run and earlier ones refused at
243
+ * `purpose` with the same status from the policy's list, at least the policy's
244
+ * interval apart, each time holding authority the same run proved valid (the
245
+ * same credentials succeeded on another exchange) or needing none.
246
+ */
247
+ function reproducedRefusal(runs, purpose, rule) {
248
+ const refusals = runs.map((run) => {
249
+ const refused = run.exchanges.find((entry) => entry.purpose === purpose &&
250
+ entry.record.outcome === "responded" &&
251
+ rule.statuses.includes(entry.record.response.status));
252
+ if (refused?.record.outcome !== "responded")
253
+ return null;
254
+ const credentials = refused.record.request.credentials.map(({ handle_digest }) => handle_digest);
255
+ const succeeded = (entry) => entry.record.outcome === "responded" &&
256
+ entry.record.response.status >= 200 &&
257
+ entry.record.response.status <= 299;
258
+ // Authority is proved valid by the run itself: the service issued it in this
259
+ // run, or it succeeded on another exchange of this run.
260
+ const proved = (handle) => run.credentials.some(({ handle_digest, source }) => handle_digest === handle &&
261
+ source.kind === "issued" &&
262
+ run.exchanges.some((entry) => entry.record.exchange_digest === source.exchange_digest && succeeded(entry))) ||
263
+ run.exchanges.some((entry) => entry !== refused &&
264
+ succeeded(entry) &&
265
+ entry.record.request.credentials.some(({ handle_digest }) => handle_digest === handle));
266
+ const valid = credentials.every(proved);
267
+ return valid ? { run, entry: refused, status: refused.record.response.status } : null;
268
+ });
269
+ const latest = refusals.at(-1);
270
+ if (!latest)
271
+ return null;
272
+ const same = refusals.filter((refusal) => refusal?.status === latest.status);
273
+ const first = same[0];
274
+ if (!first ||
275
+ same.length < rule.attempts ||
276
+ Date.parse(latest.run.finished_at) - Date.parse(first.run.finished_at) <
277
+ rule.minimum_interval_seconds * 1_000) {
278
+ return null;
279
+ }
280
+ return {
281
+ status: latest.status,
282
+ evidence: same.slice(-MAXIMUM_EVIDENCE).map(({ run, entry }) => ({
283
+ kind: "exchange",
284
+ run_digest: run.run_digest,
285
+ exchange_digest: entry.record.exchange_digest,
286
+ })),
287
+ };
288
+ }
289
+ function exchangeEvidence(run, include) {
290
+ return run.exchanges.filter(include).map((entry) => ({
291
+ kind: "exchange",
292
+ run_digest: run.run_digest,
293
+ exchange_digest: entry.record.exchange_digest,
294
+ }));
295
+ }
296
+ /** A descriptor names an endpoint when it gives its exact URI or a base the URI sits under. */
297
+ function namesEndpoint(value, uri) {
298
+ const base = value.replace(/\/+$/u, "");
299
+ const endpoint = uri.replace(/\/+$/u, "");
300
+ return endpoint === base || endpoint.startsWith(`${base}/`);
301
+ }
302
+ function result(step, outcome, timing, evidence) {
303
+ return { step, outcome, timing, evidence: evidence.slice(0, MAXIMUM_EVIDENCE) };
304
+ }
305
+ function notAssessed(step) {
306
+ return { step, outcome: "not_assessed", timing: null, evidence: [] };
307
+ }
308
+ //# sourceMappingURL=path.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path.js","sourceRoot":"","sources":["../../../../modules/agent-readiness-engine/src/path.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import type { AgentReadinessJobBinding, AgentReadinessOperateLetter, AgentReadinessStep, AgentReadinessStepResult } from "../../../contracts/agent-readiness/src/index.js";
2
+ import type { AgentReadinessPolicy } from "../../../contracts/agent-readiness/src/operate-policy.js";
3
+ export interface OperateRating {
4
+ /** Null shows the dash: the job has not been exercised, or no letter's coverage is met. */
5
+ readonly letter: AgentReadinessOperateLetter | null;
6
+ /** Steps not yet assessed, in path order. */
7
+ readonly missing: readonly AgentReadinessStep[];
8
+ }
9
+ /**
10
+ * The Operate letter of a path, by the policy's rules: a blocked Delegation or
11
+ * Pay is D and a blocked Job is F; otherwise the job must have been exercised,
12
+ * and the first letter, best first, whose condition and coverage both hold is
13
+ * the letter. A lower letter is never inferred: each asserts a recurring
14
+ * workaround that would have to be observed.
15
+ */
16
+ export declare function rateOperate(policy: Pick<AgentReadinessPolicy, "letters">, steps: readonly AgentReadinessStepResult[]): OperateRating;
17
+ /**
18
+ * The Onboard level the Operate path alone establishes: 1 when the exercised
19
+ * job needed no account (no credential, and no payment or payment per call).
20
+ * Levels 2 to 6 come only from onboarding runs; otherwise not yet assessed.
21
+ */
22
+ export declare function onboardLevelFromOperate(binding: Pick<AgentReadinessJobBinding, "payment">, steps: readonly AgentReadinessStepResult[]): number | null;
23
+ //# sourceMappingURL=rate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rate.d.ts","sourceRoot":"","sources":["../../../../modules/agent-readiness-engine/src/rate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,2BAA2B,EAC3B,kBAAkB,EAClB,wBAAwB,EACzB,MAAM,iDAAiD,CAAC;AAEzD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0DAA0D,CAAC;AAErG,MAAM,WAAW,aAAa;IAC5B,2FAA2F;IAC3F,QAAQ,CAAC,MAAM,EAAE,2BAA2B,GAAG,IAAI,CAAC;IACpD,6CAA6C;IAC7C,QAAQ,CAAC,OAAO,EAAE,SAAS,kBAAkB,EAAE,CAAC;CACjD;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC,EAC7C,KAAK,EAAE,SAAS,wBAAwB,EAAE,GACzC,aAAa,CAkCf;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,IAAI,CAAC,wBAAwB,EAAE,SAAS,CAAC,EAClD,KAAK,EAAE,SAAS,wBAAwB,EAAE,GACzC,MAAM,GAAG,IAAI,CAQf"}
@@ -0,0 +1,57 @@
1
+ import { AGENT_READINESS_STEPS } from "../../../contracts/agent-readiness/src/index.js";
2
+ /**
3
+ * The Operate letter of a path, by the policy's rules: a blocked Delegation or
4
+ * Pay is D and a blocked Job is F; otherwise the job must have been exercised,
5
+ * and the first letter, best first, whose condition and coverage both hold is
6
+ * the letter. A lower letter is never inferred: each asserts a recurring
7
+ * workaround that would have to be observed.
8
+ */
9
+ export function rateOperate(policy, steps) {
10
+ const outcome = new Map(steps.map((step) => [step.step, step]));
11
+ if (outcome.size !== AGENT_READINESS_STEPS.length) {
12
+ throw new Error("A path has exactly one result per step.");
13
+ }
14
+ const missing = AGENT_READINESS_STEPS.filter((step) => outcome.get(step)?.outcome === "not_assessed");
15
+ const blocked = (step) => outcome.get(step)?.outcome === "blocked";
16
+ if (blocked("delegation") || blocked("pay"))
17
+ return { letter: "D", missing };
18
+ if (blocked("job"))
19
+ return { letter: "F", missing };
20
+ const job = outcome.get("job")?.outcome;
21
+ if (job !== "machine" && job !== "approval" && job !== "workaround") {
22
+ return { letter: null, missing };
23
+ }
24
+ const workarounds = steps.filter(({ outcome }) => outcome === "workaround");
25
+ const recurring = workarounds
26
+ .filter(({ timing }) => timing === "recurring")
27
+ .map(({ step }) => step);
28
+ const setup = workarounds.filter(({ timing }) => timing === "setup").length;
29
+ for (const rule of policy.letters) {
30
+ const { condition } = rule;
31
+ const holds = (condition.workarounds_allowed || workarounds.length === 0) &&
32
+ recurring.every((step) => condition.recurring_allowed_in.includes(step)) &&
33
+ (condition.recurring_required_in === null ||
34
+ recurring.some((step) => condition.recurring_required_in?.includes(step))) &&
35
+ setup >= condition.setup_workarounds.minimum &&
36
+ (condition.setup_workarounds.maximum === null ||
37
+ setup <= condition.setup_workarounds.maximum) &&
38
+ rule.coverage.every((step) => outcome.get(step)?.outcome !== "not_assessed");
39
+ if (holds)
40
+ return { letter: rule.letter, missing };
41
+ }
42
+ return { letter: null, missing };
43
+ }
44
+ /**
45
+ * The Onboard level the Operate path alone establishes: 1 when the exercised
46
+ * job needed no account (no credential, and no payment or payment per call).
47
+ * Levels 2 to 6 come only from onboarding runs; otherwise not yet assessed.
48
+ */
49
+ export function onboardLevelFromOperate(binding, steps) {
50
+ const outcome = new Map(steps.map((step) => [step.step, step.outcome]));
51
+ const exercised = ["machine", "approval", "workaround"].includes(outcome.get("job") ?? "");
52
+ const accountless = outcome.get("delegation") === "not_applicable";
53
+ const payment = outcome.get("pay") === "not_applicable" ||
54
+ (binding.payment.kind === "per_call" && outcome.get("pay") === "machine");
55
+ return exercised && accountless && payment ? 1 : null;
56
+ }
57
+ //# sourceMappingURL=rate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rate.js","sourceRoot":"","sources":["../../../../modules/agent-readiness-engine/src/rate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { z } from "zod";
2
+ import { type AgentReadinessRunRecord, type AgentReadinessRunSummary, agentReadinessRunRecordCoreSchema } from "../../../contracts/agent-readiness/src/index.js";
3
+ /** A run record with its digest, checked as every reader checks it. */
4
+ export declare function sealAgentReadinessRunRecord(core: z.input<typeof agentReadinessRunRecordCoreSchema>): AgentReadinessRunRecord;
5
+ /** A published run record, only when its digest closes its content. */
6
+ export declare function verifyAgentReadinessRunRecord(value: unknown): AgentReadinessRunRecord;
7
+ /** The run as a card shows it: its reads, each request and what came back, what held. */
8
+ export declare function summarizeAgentReadinessRun(record: AgentReadinessRunRecord): AgentReadinessRunSummary;
9
+ //# sourceMappingURL=run.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../../modules/agent-readiness-engine/src/run.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,iCAAiC,EAGlC,MAAM,iDAAiD,CAAC;AAEzD,uEAAuE;AACvE,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,GACtD,uBAAuB,CAGzB;AAED,uEAAuE;AACvE,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,OAAO,GAAG,uBAAuB,CAOrF;AAED,yFAAyF;AACzF,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,uBAAuB,GAC9B,wBAAwB,CA2B1B"}
@@ -0,0 +1,45 @@
1
+ import { digest } from "provenry/primitives";
2
+ import { agentReadinessRunRecordCoreSchema, agentReadinessRunRecordSchema, agentReadinessRunSummarySchema, } from "../../../contracts/agent-readiness/src/index.js";
3
+ /** A run record with its digest, checked as every reader checks it. */
4
+ export function sealAgentReadinessRunRecord(core) {
5
+ const parsed = agentReadinessRunRecordCoreSchema.parse(core);
6
+ return agentReadinessRunRecordSchema.parse({ ...parsed, run_digest: digest(parsed) });
7
+ }
8
+ /** A published run record, only when its digest closes its content. */
9
+ export function verifyAgentReadinessRunRecord(value) {
10
+ const record = agentReadinessRunRecordSchema.parse(value);
11
+ const { run_digest, ...core } = record;
12
+ if (digest(agentReadinessRunRecordCoreSchema.parse(core)) !== run_digest) {
13
+ throw new Error("Agent Readiness run record digest does not match its content.");
14
+ }
15
+ return record;
16
+ }
17
+ /** The run as a card shows it: its reads, each request and what came back, what held. */
18
+ export function summarizeAgentReadinessRun(record) {
19
+ return agentReadinessRunSummarySchema.parse({
20
+ started_at: record.started_at,
21
+ finished_at: record.finished_at,
22
+ discovery_reads: record.discovery.attempts.length,
23
+ exchanges: record.exchanges.map(({ purpose, role, record: exchange }) => ({
24
+ purpose,
25
+ role,
26
+ method: exchange.request.method,
27
+ url: exchange.request.url,
28
+ started_at: exchange.started_at,
29
+ finished_at: exchange.finished_at,
30
+ response: exchange.outcome === "responded"
31
+ ? {
32
+ status: exchange.response.status,
33
+ media_type: exchange.response.body.media_type,
34
+ content_bytes: exchange.response.body.content_bytes,
35
+ content_digest: exchange.response.body.content_digest,
36
+ }
37
+ : null,
38
+ transport_error: exchange.outcome === "transport_error" ? exchange.reason : null,
39
+ exchange_digest: exchange.exchange_digest,
40
+ })),
41
+ assertions: record.assertions,
42
+ error_probe: record.error_probe,
43
+ });
44
+ }
45
+ //# sourceMappingURL=run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../../modules/agent-readiness-engine/src/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,OAAO,EAGL,iCAAiC,EACjC,6BAA6B,EAC7B,8BAA8B,GAC/B,MAAM,iDAAiD,CAAC;AAEzD,uEAAuE;AACvE,MAAM,UAAU,2BAA2B,CACzC,IAAuD;IAEvD,MAAM,MAAM,GAAG,iCAAiC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7D,OAAO,6BAA6B,CAAC,KAAK,CAAC,EAAE,GAAG,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AACxF,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,6BAA6B,CAAC,KAAc;IAC1D,MAAM,MAAM,GAAG,6BAA6B,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC1D,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;IACvC,IAAI,MAAM,CAAC,iCAAiC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,UAAU,EAAE,CAAC;QACzE,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;IACnF,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,0BAA0B,CACxC,MAA+B;IAE/B,OAAO,8BAA8B,CAAC,KAAK,CAAC;QAC1C,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,eAAe,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM;QACjD,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;YACxE,OAAO;YACP,IAAI;YACJ,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM;YAC/B,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG;YACzB,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,QAAQ,EACN,QAAQ,CAAC,OAAO,KAAK,WAAW;gBAC9B,CAAC,CAAC;oBACE,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM;oBAChC,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU;oBAC7C,aAAa,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa;oBACnD,cAAc,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc;iBACtD;gBACH,CAAC,CAAC,IAAI;YACV,eAAe,EAAE,QAAQ,CAAC,OAAO,KAAK,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;YAChF,eAAe,EAAE,QAAQ,CAAC,eAAe;SAC1C,CAAC,CAAC;QACH,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,WAAW,EAAE,MAAM,CAAC,WAAW;KAChC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,21 @@
1
+ /** What a template may read: job inputs, the run's nonce, sink addresses and earlier calls' JSON. */
2
+ export interface TemplateContext {
3
+ readonly inputs: Readonly<Record<string, string | number | boolean>>;
4
+ readonly nonce: string;
5
+ readonly sinks: Readonly<Record<string, string>>;
6
+ readonly calls: ReadonlyMap<string, unknown>;
7
+ }
8
+ /** A template the run cannot fill: residue of this run, never a fact about the service. */
9
+ export declare class TemplateError extends Error {
10
+ readonly name = "TemplateError";
11
+ }
12
+ /** A string template filled in; every placeholder must name a scalar the run holds. */
13
+ export declare function resolveTemplate(template: string, context: TemplateContext): string;
14
+ /**
15
+ * A JSON template filled in. A string that is exactly one placeholder takes the
16
+ * referenced value with its JSON type; any other string interpolates scalars.
17
+ */
18
+ export declare function resolveJsonTemplate(value: unknown, context: TemplateContext): unknown;
19
+ /** The value an RFC 6901 pointer names, or undefined. */
20
+ export declare function valueAtPointer(document: unknown, pointer: string): unknown;
21
+ //# sourceMappingURL=templates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../../../modules/agent-readiness-engine/src/templates.ts"],"names":[],"mappings":"AAEA,qGAAqG;AACrG,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IACrE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACjD,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC9C;AAED,2FAA2F;AAC3F,qBAAa,aAAc,SAAQ,KAAK;IACtC,SAAkB,IAAI,mBAAmB;CAC1C;AAID,uFAAuF;AACvF,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,MAAM,CAWlF;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAerF;AAiCD,yDAAyD;AACzD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAe1E"}
@@ -0,0 +1,89 @@
1
+ import { agentReadinessTemplateReferences } from "../../../contracts/agent-readiness/src/index.js";
2
+ /** A template the run cannot fill: residue of this run, never a fact about the service. */
3
+ export class TemplateError extends Error {
4
+ name = "TemplateError";
5
+ }
6
+ const WHOLE = /^\{\{([^{}]+)\}\}$/u;
7
+ /** A string template filled in; every placeholder must name a scalar the run holds. */
8
+ export function resolveTemplate(template, context) {
9
+ const references = agentReadinessTemplateReferences(template);
10
+ if (references === null)
11
+ throw new TemplateError("The template is not valid.");
12
+ let index = 0;
13
+ return template.replace(/\{\{[^{}]+\}\}/gu, () => {
14
+ const value = referenced(references[index++], context);
15
+ if (value === null || typeof value === "object") {
16
+ throw new TemplateError("Only a scalar can be interpolated into text.");
17
+ }
18
+ return String(value);
19
+ });
20
+ }
21
+ /**
22
+ * A JSON template filled in. A string that is exactly one placeholder takes the
23
+ * referenced value with its JSON type; any other string interpolates scalars.
24
+ */
25
+ export function resolveJsonTemplate(value, context) {
26
+ if (typeof value === "string") {
27
+ const references = agentReadinessTemplateReferences(value);
28
+ if (references?.length === 1 && WHOLE.test(value)) {
29
+ return referenced(references[0], context);
30
+ }
31
+ return resolveTemplate(value, context);
32
+ }
33
+ if (Array.isArray(value))
34
+ return value.map((item) => resolveJsonTemplate(item, context));
35
+ if (value !== null && typeof value === "object") {
36
+ return Object.fromEntries(Object.entries(value).map(([key, item]) => [key, resolveJsonTemplate(item, context)]));
37
+ }
38
+ return value;
39
+ }
40
+ function referenced(reference, context) {
41
+ switch (reference.kind) {
42
+ case "nonce":
43
+ return context.nonce;
44
+ case "input": {
45
+ if (!Object.hasOwn(context.inputs, reference.name)) {
46
+ throw new TemplateError(`The job has no input ${reference.name}.`);
47
+ }
48
+ return context.inputs[reference.name];
49
+ }
50
+ case "sink": {
51
+ const address = context.sinks[reference.name];
52
+ if (address === undefined)
53
+ throw new TemplateError(`No sink ${reference.name} is bound.`);
54
+ return address;
55
+ }
56
+ case "call": {
57
+ if (!context.calls.has(reference.callId)) {
58
+ throw new TemplateError(`Call ${reference.callId} has no JSON response to read.`);
59
+ }
60
+ const value = valueAtPointer(context.calls.get(reference.callId), reference.pointer);
61
+ if (value === undefined) {
62
+ throw new TemplateError(`Call ${reference.callId} has nothing at ${reference.pointer}.`);
63
+ }
64
+ return value;
65
+ }
66
+ }
67
+ }
68
+ /** The value an RFC 6901 pointer names, or undefined. */
69
+ export function valueAtPointer(document, pointer) {
70
+ if (pointer === "")
71
+ return document;
72
+ let value = document;
73
+ for (const raw of pointer.slice(1).split("/")) {
74
+ const token = raw.replaceAll("~1", "/").replaceAll("~0", "~");
75
+ if (Array.isArray(value)) {
76
+ if (!/^(?:0|[1-9][0-9]*)$/u.test(token))
77
+ return undefined;
78
+ value = value[Number(token)];
79
+ }
80
+ else if (value !== null && typeof value === "object" && Object.hasOwn(value, token)) {
81
+ value = value[token];
82
+ }
83
+ else {
84
+ return undefined;
85
+ }
86
+ }
87
+ return value;
88
+ }
89
+ //# sourceMappingURL=templates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../../../modules/agent-readiness-engine/src/templates.ts"],"names":[],"mappings":"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"}