@kya-os/mcp 1.16.2 → 1.18.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 (469) hide show
  1. package/AUDITABILITY.md +129 -8
  2. package/CHANGELOG.md +641 -0
  3. package/CONFORMANCE.md +12 -6
  4. package/README.md +67 -26
  5. package/SPEC.md +105 -18
  6. package/dist/audit/adapters/legacy-audit-log.d.ts +0 -1
  7. package/dist/audit/adapters/mcp.d.ts +0 -1
  8. package/dist/audit/adapters/mcp.js +35 -20
  9. package/dist/audit/adapters/mcp.js.map +1 -1
  10. package/dist/audit/adapters/references.d.ts +9 -0
  11. package/dist/audit/adapters/references.js +22 -0
  12. package/dist/audit/adapters/references.js.map +1 -0
  13. package/dist/audit/assurance.d.ts +0 -1
  14. package/dist/audit/checkpoint-coordinator.d.ts +0 -1
  15. package/dist/audit/checkpoint.d.ts +17 -1
  16. package/dist/audit/checkpoint.js +76 -21
  17. package/dist/audit/checkpoint.js.map +1 -1
  18. package/dist/audit/cli.d.ts +0 -1
  19. package/dist/audit/crypto.d.ts +0 -1
  20. package/dist/audit/crypto.js +12 -3
  21. package/dist/audit/crypto.js.map +1 -1
  22. package/dist/audit/errors.d.ts +0 -1
  23. package/dist/audit/evidence.d.ts +0 -1
  24. package/dist/audit/index.d.ts +0 -1
  25. package/dist/audit/integrity.d.ts +0 -1
  26. package/dist/audit/merkle.d.ts +0 -1
  27. package/dist/audit/mirror-service.d.ts +0 -1
  28. package/dist/audit/projection.d.ts +1 -1
  29. package/dist/audit/projection.js +23 -2
  30. package/dist/audit/projection.js.map +1 -1
  31. package/dist/audit/providers/anchor.d.ts +0 -1
  32. package/dist/audit/providers/evidence.d.ts +0 -1
  33. package/dist/audit/providers/journal.d.ts +0 -1
  34. package/dist/audit/providers/memory-journal.d.ts +0 -1
  35. package/dist/audit/providers/observer.d.ts +0 -1
  36. package/dist/audit/providers/outbox.d.ts +35 -6
  37. package/dist/audit/providers/outbox.js +46 -8
  38. package/dist/audit/providers/outbox.js.map +1 -1
  39. package/dist/audit/providers/recorder-client.d.ts +0 -1
  40. package/dist/audit/providers/source-state.d.ts +24 -2
  41. package/dist/audit/providers/source-state.js +65 -44
  42. package/dist/audit/providers/source-state.js.map +1 -1
  43. package/dist/audit/read-contract.d.ts +0 -1
  44. package/dist/audit/read-service.d.ts +2 -3
  45. package/dist/audit/read-service.js +17 -12
  46. package/dist/audit/read-service.js.map +1 -1
  47. package/dist/audit/recorder-service.d.ts +33 -5
  48. package/dist/audit/recorder-service.js +116 -20
  49. package/dist/audit/recorder-service.js.map +1 -1
  50. package/dist/audit/reference-recorder.d.ts +0 -1
  51. package/dist/audit/replay-bundle.d.ts +0 -1
  52. package/dist/audit/replay-bundle.js +143 -36
  53. package/dist/audit/replay-bundle.js.map +1 -1
  54. package/dist/audit/schemas.d.ts +0 -1
  55. package/dist/audit/service.d.ts +6 -3
  56. package/dist/audit/service.js +55 -24
  57. package/dist/audit/service.js.map +1 -1
  58. package/dist/audit/testing/index.d.ts +0 -1
  59. package/dist/audit/testing/provider-contracts.d.ts +1 -2
  60. package/dist/audit/testing/provider-contracts.js +32 -2
  61. package/dist/audit/testing/provider-contracts.js.map +1 -1
  62. package/dist/audit/types.d.ts +0 -1
  63. package/dist/audit/verifier.d.ts +57 -5
  64. package/dist/audit/verifier.js +240 -49
  65. package/dist/audit/verifier.js.map +1 -1
  66. package/dist/auth/handshake.d.ts +12 -1
  67. package/dist/auth/handshake.js +44 -11
  68. package/dist/auth/handshake.js.map +1 -1
  69. package/dist/auth/index.d.ts +0 -1
  70. package/dist/auth/types.d.ts +0 -1
  71. package/dist/authz/accountability.d.ts +0 -1
  72. package/dist/authz/adapter.d.ts +0 -1
  73. package/dist/authz/examples/inmemory-oidc.d.ts +0 -1
  74. package/dist/authz/index.d.ts +0 -1
  75. package/dist/authz/oidc/authorize.d.ts +0 -1
  76. package/dist/authz/oidc/metadata.d.ts +0 -1
  77. package/dist/authz/oidc/oidc-adapter.d.ts +0 -1
  78. package/dist/authz/oidc/oidc-adapter.js +51 -3
  79. package/dist/authz/oidc/oidc-adapter.js.map +1 -1
  80. package/dist/authz/oidc/pending-flow-store.d.ts +6 -1
  81. package/dist/authz/oidc/pending-flow-store.js +22 -2
  82. package/dist/authz/oidc/pending-flow-store.js.map +1 -1
  83. package/dist/authz/oidc/pkce.d.ts +0 -1
  84. package/dist/authz/registry.d.ts +0 -1
  85. package/dist/authz/requirement.d.ts +0 -1
  86. package/dist/card/build.d.ts +0 -1
  87. package/dist/card/builder.d.ts +0 -1
  88. package/dist/card/cimd.d.ts +19 -5
  89. package/dist/card/cimd.js +52 -7
  90. package/dist/card/cimd.js.map +1 -1
  91. package/dist/card/delegation.d.ts +12 -4
  92. package/dist/card/delegation.js +38 -22
  93. package/dist/card/delegation.js.map +1 -1
  94. package/dist/card/emit.d.ts +0 -1
  95. package/dist/card/index.d.ts +0 -1
  96. package/dist/card/middleware.d.ts +0 -1
  97. package/dist/card/proof/build.d.ts +0 -1
  98. package/dist/card/proof/canonical.d.ts +0 -1
  99. package/dist/card/proof/canonical.js +6 -1
  100. package/dist/card/proof/canonical.js.map +1 -1
  101. package/dist/card/proof/http-sig.d.ts +0 -1
  102. package/dist/card/proof/index.d.ts +0 -1
  103. package/dist/card/proof/nonce-cache.d.ts +15 -14
  104. package/dist/card/proof/nonce-cache.js +22 -20
  105. package/dist/card/proof/nonce-cache.js.map +1 -1
  106. package/dist/card/proof/signer.d.ts +0 -1
  107. package/dist/card/proof/types.d.ts +10 -4
  108. package/dist/card/proof/types.js +2 -2
  109. package/dist/card/proof/verify.d.ts +0 -1
  110. package/dist/card/proof/verify.js +17 -3
  111. package/dist/card/proof/verify.js.map +1 -1
  112. package/dist/card/resolve.d.ts +0 -1
  113. package/dist/card/resolve.js +13 -8
  114. package/dist/card/resolve.js.map +1 -1
  115. package/dist/card/revocation.d.ts +0 -1
  116. package/dist/card/revocation.js +18 -6
  117. package/dist/card/revocation.js.map +1 -1
  118. package/dist/card/schema.d.ts +7 -6
  119. package/dist/card/schema.js +7 -3
  120. package/dist/card/schema.js.map +1 -1
  121. package/dist/card/verify.d.ts +0 -1
  122. package/dist/delegation/audience-validator.d.ts +0 -1
  123. package/dist/delegation/bitstring.d.ts +0 -1
  124. package/dist/delegation/cascading-revocation.d.ts +1 -2
  125. package/dist/delegation/cascading-revocation.js +34 -36
  126. package/dist/delegation/cascading-revocation.js.map +1 -1
  127. package/dist/delegation/chain-enforcement.d.ts +42 -5
  128. package/dist/delegation/chain-enforcement.js +127 -34
  129. package/dist/delegation/chain-enforcement.js.map +1 -1
  130. package/dist/delegation/delegation-graph.d.ts +30 -1
  131. package/dist/delegation/delegation-graph.js +33 -0
  132. package/dist/delegation/delegation-graph.js.map +1 -1
  133. package/dist/delegation/delegation-registration.d.ts +22 -0
  134. package/dist/delegation/delegation-registration.js +51 -0
  135. package/dist/delegation/delegation-registration.js.map +1 -0
  136. package/dist/delegation/delegation-status-entry.d.ts +22 -0
  137. package/dist/delegation/delegation-status-entry.js +42 -0
  138. package/dist/delegation/delegation-status-entry.js.map +1 -0
  139. package/dist/delegation/did-key-resolver.d.ts +0 -1
  140. package/dist/delegation/did-key-resolver.js +15 -4
  141. package/dist/delegation/did-key-resolver.js.map +1 -1
  142. package/dist/delegation/did-linkage.d.ts +0 -1
  143. package/dist/delegation/did-resolver-registry.d.ts +0 -1
  144. package/dist/delegation/did-web-resolver.d.ts +0 -1
  145. package/dist/delegation/did-web-resolver.js +40 -5
  146. package/dist/delegation/did-web-resolver.js.map +1 -1
  147. package/dist/delegation/holder-binding.d.ts +11 -11
  148. package/dist/delegation/holder-binding.js +8 -17
  149. package/dist/delegation/holder-binding.js.map +1 -1
  150. package/dist/delegation/index.d.ts +0 -1
  151. package/dist/delegation/outbound-headers.d.ts +0 -1
  152. package/dist/delegation/outbound-proof.d.ts +0 -1
  153. package/dist/delegation/scope-matcher.d.ts +25 -2
  154. package/dist/delegation/scope-matcher.js +75 -5
  155. package/dist/delegation/scope-matcher.js.map +1 -1
  156. package/dist/delegation/status-cache.d.ts +0 -1
  157. package/dist/delegation/statuslist-manager.d.ts +18 -2
  158. package/dist/delegation/statuslist-manager.js +40 -14
  159. package/dist/delegation/statuslist-manager.js.map +1 -1
  160. package/dist/delegation/storage/memory-graph-storage.d.ts +9 -3
  161. package/dist/delegation/storage/memory-graph-storage.js +28 -14
  162. package/dist/delegation/storage/memory-graph-storage.js.map +1 -1
  163. package/dist/delegation/storage/memory-statuslist-storage.d.ts +0 -1
  164. package/dist/delegation/utils.d.ts +5 -5
  165. package/dist/delegation/utils.js +4 -4
  166. package/dist/delegation/utils.js.map +1 -1
  167. package/dist/delegation/vc-issuer.d.ts +0 -1
  168. package/dist/delegation/vc-jwt-verify.d.ts +7 -2
  169. package/dist/delegation/vc-jwt-verify.js +55 -3
  170. package/dist/delegation/vc-jwt-verify.js.map +1 -1
  171. package/dist/delegation/vc-verification-checks.d.ts +0 -1
  172. package/dist/delegation/vc-verification-checks.js +9 -5
  173. package/dist/delegation/vc-verification-checks.js.map +1 -1
  174. package/dist/delegation/vc-verifier.d.ts +0 -1
  175. package/dist/delegation/vc-verifier.types.d.ts +0 -1
  176. package/dist/delegation/verification-method-key.d.ts +0 -1
  177. package/dist/delegation/verification-method-key.js +4 -3
  178. package/dist/delegation/verification-method-key.js.map +1 -1
  179. package/dist/errors.d.ts +0 -1
  180. package/dist/extension/declaration.d.ts +0 -1
  181. package/dist/extension/gate.d.ts +0 -1
  182. package/dist/extension/index.d.ts +0 -1
  183. package/dist/extension/settings.d.ts +0 -1
  184. package/dist/index.d.ts +2 -3
  185. package/dist/index.js +1 -1
  186. package/dist/index.js.map +1 -1
  187. package/dist/integrations/cheqd/dlr.d.ts +0 -1
  188. package/dist/integrations/cheqd/dlr.js +6 -1
  189. package/dist/integrations/cheqd/dlr.js.map +1 -1
  190. package/dist/integrations/cheqd/index.d.ts +0 -1
  191. package/dist/integrations/cheqd/linkage.d.ts +0 -1
  192. package/dist/integrations/cheqd/registrar.d.ts +0 -1
  193. package/dist/integrations/cheqd/resolver.d.ts +0 -1
  194. package/dist/integrations/cheqd/statuslist-resolver.d.ts +0 -1
  195. package/dist/logging/index.d.ts +0 -1
  196. package/dist/logging/logger.d.ts +0 -1
  197. package/dist/middleware/index.d.ts +0 -1
  198. package/dist/middleware/kya-os-transport.d.ts +5 -3
  199. package/dist/middleware/kya-os-transport.js +58 -24
  200. package/dist/middleware/kya-os-transport.js.map +1 -1
  201. package/dist/middleware/with-kya-os-server.d.ts +30 -4
  202. package/dist/middleware/with-kya-os-server.js +19 -0
  203. package/dist/middleware/with-kya-os-server.js.map +1 -1
  204. package/dist/middleware/with-kya-os.config-types.d.ts +32 -4
  205. package/dist/middleware/with-kya-os.d.ts +0 -1
  206. package/dist/middleware/with-kya-os.delegation-gate.d.ts +2 -1
  207. package/dist/middleware/with-kya-os.delegation-gate.js +37 -9
  208. package/dist/middleware/with-kya-os.delegation-gate.js.map +1 -1
  209. package/dist/middleware/with-kya-os.delegation-verify.d.ts +1 -1
  210. package/dist/middleware/with-kya-os.delegation-verify.js +52 -9
  211. package/dist/middleware/with-kya-os.delegation-verify.js.map +1 -1
  212. package/dist/middleware/with-kya-os.deps.d.ts +0 -1
  213. package/dist/middleware/with-kya-os.grants.d.ts +13 -6
  214. package/dist/middleware/with-kya-os.grants.js +56 -18
  215. package/dist/middleware/with-kya-os.grants.js.map +1 -1
  216. package/dist/middleware/with-kya-os.helpers.d.ts +0 -1
  217. package/dist/middleware/with-kya-os.js +14 -4
  218. package/dist/middleware/with-kya-os.js.map +1 -1
  219. package/dist/middleware/with-kya-os.policy-gate.d.ts +0 -1
  220. package/dist/middleware/with-kya-os.policy-gate.js +18 -9
  221. package/dist/middleware/with-kya-os.policy-gate.js.map +1 -1
  222. package/dist/middleware/with-kya-os.protocol.d.ts +0 -1
  223. package/dist/middleware/with-kya-os.session.d.ts +28 -1
  224. package/dist/middleware/with-kya-os.session.js +146 -7
  225. package/dist/middleware/with-kya-os.session.js.map +1 -1
  226. package/dist/middleware/with-kya-os.types.d.ts +28 -5
  227. package/dist/policy/approval.d.ts +13 -2
  228. package/dist/policy/approval.js +15 -4
  229. package/dist/policy/approval.js.map +1 -1
  230. package/dist/policy/classifier.d.ts +0 -1
  231. package/dist/policy/default-engine.d.ts +5 -2
  232. package/dist/policy/default-engine.js +10 -2
  233. package/dist/policy/default-engine.js.map +1 -1
  234. package/dist/policy/engine.d.ts +0 -1
  235. package/dist/policy/index.d.ts +0 -1
  236. package/dist/policy/projection.d.ts +0 -1
  237. package/dist/policy/types.d.ts +0 -1
  238. package/dist/proof/covered-request.d.ts +46 -0
  239. package/dist/proof/covered-request.js +107 -0
  240. package/dist/proof/covered-request.js.map +1 -0
  241. package/dist/proof/errors.d.ts +3 -1
  242. package/dist/proof/errors.js +5 -0
  243. package/dist/proof/errors.js.map +1 -1
  244. package/dist/proof/generator.d.ts +51 -1
  245. package/dist/proof/generator.js +71 -13
  246. package/dist/proof/generator.js.map +1 -1
  247. package/dist/proof/index.d.ts +1 -2
  248. package/dist/proof/index.js.map +1 -1
  249. package/dist/proof/verifier.d.ts +50 -12
  250. package/dist/proof/verifier.js +164 -84
  251. package/dist/proof/verifier.js.map +1 -1
  252. package/dist/providers/audit-log.d.ts +0 -1
  253. package/dist/providers/base.d.ts +19 -1
  254. package/dist/providers/base.js.map +1 -1
  255. package/dist/providers/grant-store.d.ts +8 -2
  256. package/dist/providers/grant-store.js +5 -5
  257. package/dist/providers/grant-store.js.map +1 -1
  258. package/dist/providers/index.d.ts +0 -1
  259. package/dist/providers/memory.d.ts +19 -1
  260. package/dist/providers/memory.js +53 -7
  261. package/dist/providers/memory.js.map +1 -1
  262. package/dist/providers/node-crypto.d.ts +4 -1
  263. package/dist/providers/node-crypto.js +32 -9
  264. package/dist/providers/node-crypto.js.map +1 -1
  265. package/dist/providers/nonce-admission.d.ts +31 -0
  266. package/dist/providers/nonce-admission.js +47 -0
  267. package/dist/providers/nonce-admission.js.map +1 -0
  268. package/dist/providers/nonce-retention.d.ts +8 -0
  269. package/dist/providers/nonce-retention.js +15 -0
  270. package/dist/providers/nonce-retention.js.map +1 -0
  271. package/dist/providers/runtime-fetch.d.ts +0 -1
  272. package/dist/providers/system-clock.d.ts +0 -1
  273. package/dist/providers/web-crypto.d.ts +0 -1
  274. package/dist/providers/web-crypto.js +7 -1
  275. package/dist/providers/web-crypto.js.map +1 -1
  276. package/dist/session/index.d.ts +0 -1
  277. package/dist/session/manager.d.ts +13 -1
  278. package/dist/session/manager.js +25 -9
  279. package/dist/session/manager.js.map +1 -1
  280. package/dist/session/session-store.d.ts +0 -1
  281. package/dist/types/protocol.d.ts +11 -3
  282. package/dist/types/protocol.js +21 -14
  283. package/dist/types/protocol.js.map +1 -1
  284. package/dist/utils/base58.d.ts +16 -3
  285. package/dist/utils/base58.js +34 -12
  286. package/dist/utils/base58.js.map +1 -1
  287. package/dist/utils/base64.d.ts +0 -1
  288. package/dist/utils/canonical-json.d.ts +7 -1
  289. package/dist/utils/canonical-json.js +130 -60
  290. package/dist/utils/canonical-json.js.map +1 -1
  291. package/dist/utils/crypto-service.d.ts +0 -1
  292. package/dist/utils/crypto-service.js +22 -2
  293. package/dist/utils/crypto-service.js.map +1 -1
  294. package/dist/utils/did-helpers.d.ts +0 -1
  295. package/dist/utils/ed25519-constants.d.ts +0 -1
  296. package/dist/utils/ed25519-public-key.d.ts +27 -0
  297. package/dist/utils/ed25519-public-key.js +86 -0
  298. package/dist/utils/ed25519-public-key.js.map +1 -0
  299. package/dist/utils/guards.d.ts +0 -1
  300. package/dist/utils/index.d.ts +0 -1
  301. package/dist/utils/ip-classifier.d.ts +0 -1
  302. package/dist/utils/safe-fetch-transports.d.ts +0 -1
  303. package/dist/utils/safe-fetch-types.d.ts +0 -1
  304. package/dist/utils/safe-fetch.d.ts +0 -1
  305. package/dist/utils/statuslist-bits.d.ts +0 -1
  306. package/dist/utils/statuslist-purpose.d.ts +0 -1
  307. package/dist/utils/ttl-cache.d.ts +0 -1
  308. package/dist/utils/url.d.ts +0 -1
  309. package/package.json +24 -19
  310. package/schemas/card-delegation-credential.json +4 -1
  311. package/dist/audit/adapters/legacy-audit-log.d.ts.map +0 -1
  312. package/dist/audit/adapters/mcp.d.ts.map +0 -1
  313. package/dist/audit/assurance.d.ts.map +0 -1
  314. package/dist/audit/checkpoint-coordinator.d.ts.map +0 -1
  315. package/dist/audit/checkpoint.d.ts.map +0 -1
  316. package/dist/audit/cli.d.ts.map +0 -1
  317. package/dist/audit/crypto.d.ts.map +0 -1
  318. package/dist/audit/errors.d.ts.map +0 -1
  319. package/dist/audit/evidence.d.ts.map +0 -1
  320. package/dist/audit/index.d.ts.map +0 -1
  321. package/dist/audit/integrity.d.ts.map +0 -1
  322. package/dist/audit/merkle.d.ts.map +0 -1
  323. package/dist/audit/mirror-service.d.ts.map +0 -1
  324. package/dist/audit/projection.d.ts.map +0 -1
  325. package/dist/audit/providers/anchor.d.ts.map +0 -1
  326. package/dist/audit/providers/evidence.d.ts.map +0 -1
  327. package/dist/audit/providers/journal.d.ts.map +0 -1
  328. package/dist/audit/providers/memory-journal.d.ts.map +0 -1
  329. package/dist/audit/providers/observer.d.ts.map +0 -1
  330. package/dist/audit/providers/outbox.d.ts.map +0 -1
  331. package/dist/audit/providers/recorder-client.d.ts.map +0 -1
  332. package/dist/audit/providers/source-state.d.ts.map +0 -1
  333. package/dist/audit/read-contract.d.ts.map +0 -1
  334. package/dist/audit/read-service.d.ts.map +0 -1
  335. package/dist/audit/recorder-service.d.ts.map +0 -1
  336. package/dist/audit/reference-recorder.d.ts.map +0 -1
  337. package/dist/audit/replay-bundle.d.ts.map +0 -1
  338. package/dist/audit/schemas.d.ts.map +0 -1
  339. package/dist/audit/service.d.ts.map +0 -1
  340. package/dist/audit/testing/index.d.ts.map +0 -1
  341. package/dist/audit/testing/provider-contracts.d.ts.map +0 -1
  342. package/dist/audit/types.d.ts.map +0 -1
  343. package/dist/audit/verifier.d.ts.map +0 -1
  344. package/dist/auth/handshake.d.ts.map +0 -1
  345. package/dist/auth/index.d.ts.map +0 -1
  346. package/dist/auth/types.d.ts.map +0 -1
  347. package/dist/authz/accountability.d.ts.map +0 -1
  348. package/dist/authz/adapter.d.ts.map +0 -1
  349. package/dist/authz/examples/inmemory-oidc.d.ts.map +0 -1
  350. package/dist/authz/index.d.ts.map +0 -1
  351. package/dist/authz/oidc/authorize.d.ts.map +0 -1
  352. package/dist/authz/oidc/metadata.d.ts.map +0 -1
  353. package/dist/authz/oidc/oidc-adapter.d.ts.map +0 -1
  354. package/dist/authz/oidc/pending-flow-store.d.ts.map +0 -1
  355. package/dist/authz/oidc/pkce.d.ts.map +0 -1
  356. package/dist/authz/registry.d.ts.map +0 -1
  357. package/dist/authz/requirement.d.ts.map +0 -1
  358. package/dist/card/build.d.ts.map +0 -1
  359. package/dist/card/builder.d.ts.map +0 -1
  360. package/dist/card/cimd.d.ts.map +0 -1
  361. package/dist/card/delegation.d.ts.map +0 -1
  362. package/dist/card/emit.d.ts.map +0 -1
  363. package/dist/card/index.d.ts.map +0 -1
  364. package/dist/card/middleware.d.ts.map +0 -1
  365. package/dist/card/proof/build.d.ts.map +0 -1
  366. package/dist/card/proof/canonical.d.ts.map +0 -1
  367. package/dist/card/proof/http-sig.d.ts.map +0 -1
  368. package/dist/card/proof/index.d.ts.map +0 -1
  369. package/dist/card/proof/nonce-cache.d.ts.map +0 -1
  370. package/dist/card/proof/signer.d.ts.map +0 -1
  371. package/dist/card/proof/types.d.ts.map +0 -1
  372. package/dist/card/proof/verify.d.ts.map +0 -1
  373. package/dist/card/resolve.d.ts.map +0 -1
  374. package/dist/card/revocation.d.ts.map +0 -1
  375. package/dist/card/schema.d.ts.map +0 -1
  376. package/dist/card/verify.d.ts.map +0 -1
  377. package/dist/delegation/audience-validator.d.ts.map +0 -1
  378. package/dist/delegation/bitstring.d.ts.map +0 -1
  379. package/dist/delegation/cascading-revocation.d.ts.map +0 -1
  380. package/dist/delegation/chain-enforcement.d.ts.map +0 -1
  381. package/dist/delegation/delegation-graph.d.ts.map +0 -1
  382. package/dist/delegation/did-key-resolver.d.ts.map +0 -1
  383. package/dist/delegation/did-linkage.d.ts.map +0 -1
  384. package/dist/delegation/did-resolver-registry.d.ts.map +0 -1
  385. package/dist/delegation/did-web-resolver.d.ts.map +0 -1
  386. package/dist/delegation/holder-binding.d.ts.map +0 -1
  387. package/dist/delegation/index.d.ts.map +0 -1
  388. package/dist/delegation/outbound-headers.d.ts.map +0 -1
  389. package/dist/delegation/outbound-proof.d.ts.map +0 -1
  390. package/dist/delegation/scope-matcher.d.ts.map +0 -1
  391. package/dist/delegation/status-cache.d.ts.map +0 -1
  392. package/dist/delegation/statuslist-manager.d.ts.map +0 -1
  393. package/dist/delegation/storage/memory-graph-storage.d.ts.map +0 -1
  394. package/dist/delegation/storage/memory-statuslist-storage.d.ts.map +0 -1
  395. package/dist/delegation/utils.d.ts.map +0 -1
  396. package/dist/delegation/vc-issuer.d.ts.map +0 -1
  397. package/dist/delegation/vc-jwt-verify.d.ts.map +0 -1
  398. package/dist/delegation/vc-verification-checks.d.ts.map +0 -1
  399. package/dist/delegation/vc-verifier.d.ts.map +0 -1
  400. package/dist/delegation/vc-verifier.types.d.ts.map +0 -1
  401. package/dist/delegation/verification-method-key.d.ts.map +0 -1
  402. package/dist/errors.d.ts.map +0 -1
  403. package/dist/extension/declaration.d.ts.map +0 -1
  404. package/dist/extension/gate.d.ts.map +0 -1
  405. package/dist/extension/index.d.ts.map +0 -1
  406. package/dist/extension/settings.d.ts.map +0 -1
  407. package/dist/index.d.ts.map +0 -1
  408. package/dist/integrations/cheqd/dlr.d.ts.map +0 -1
  409. package/dist/integrations/cheqd/index.d.ts.map +0 -1
  410. package/dist/integrations/cheqd/linkage.d.ts.map +0 -1
  411. package/dist/integrations/cheqd/registrar.d.ts.map +0 -1
  412. package/dist/integrations/cheqd/resolver.d.ts.map +0 -1
  413. package/dist/integrations/cheqd/statuslist-resolver.d.ts.map +0 -1
  414. package/dist/logging/index.d.ts.map +0 -1
  415. package/dist/logging/logger.d.ts.map +0 -1
  416. package/dist/middleware/index.d.ts.map +0 -1
  417. package/dist/middleware/kya-os-transport.d.ts.map +0 -1
  418. package/dist/middleware/with-kya-os-server.d.ts.map +0 -1
  419. package/dist/middleware/with-kya-os.config-types.d.ts.map +0 -1
  420. package/dist/middleware/with-kya-os.d.ts.map +0 -1
  421. package/dist/middleware/with-kya-os.delegation-gate.d.ts.map +0 -1
  422. package/dist/middleware/with-kya-os.delegation-verify.d.ts.map +0 -1
  423. package/dist/middleware/with-kya-os.deps.d.ts.map +0 -1
  424. package/dist/middleware/with-kya-os.grants.d.ts.map +0 -1
  425. package/dist/middleware/with-kya-os.helpers.d.ts.map +0 -1
  426. package/dist/middleware/with-kya-os.policy-gate.d.ts.map +0 -1
  427. package/dist/middleware/with-kya-os.protocol.d.ts.map +0 -1
  428. package/dist/middleware/with-kya-os.session.d.ts.map +0 -1
  429. package/dist/middleware/with-kya-os.types.d.ts.map +0 -1
  430. package/dist/policy/approval.d.ts.map +0 -1
  431. package/dist/policy/classifier.d.ts.map +0 -1
  432. package/dist/policy/default-engine.d.ts.map +0 -1
  433. package/dist/policy/engine.d.ts.map +0 -1
  434. package/dist/policy/index.d.ts.map +0 -1
  435. package/dist/policy/projection.d.ts.map +0 -1
  436. package/dist/policy/types.d.ts.map +0 -1
  437. package/dist/proof/errors.d.ts.map +0 -1
  438. package/dist/proof/generator.d.ts.map +0 -1
  439. package/dist/proof/index.d.ts.map +0 -1
  440. package/dist/proof/verifier.d.ts.map +0 -1
  441. package/dist/providers/audit-log.d.ts.map +0 -1
  442. package/dist/providers/base.d.ts.map +0 -1
  443. package/dist/providers/grant-store.d.ts.map +0 -1
  444. package/dist/providers/index.d.ts.map +0 -1
  445. package/dist/providers/memory.d.ts.map +0 -1
  446. package/dist/providers/node-crypto.d.ts.map +0 -1
  447. package/dist/providers/runtime-fetch.d.ts.map +0 -1
  448. package/dist/providers/system-clock.d.ts.map +0 -1
  449. package/dist/providers/web-crypto.d.ts.map +0 -1
  450. package/dist/session/index.d.ts.map +0 -1
  451. package/dist/session/manager.d.ts.map +0 -1
  452. package/dist/session/session-store.d.ts.map +0 -1
  453. package/dist/types/protocol.d.ts.map +0 -1
  454. package/dist/utils/base58.d.ts.map +0 -1
  455. package/dist/utils/base64.d.ts.map +0 -1
  456. package/dist/utils/canonical-json.d.ts.map +0 -1
  457. package/dist/utils/crypto-service.d.ts.map +0 -1
  458. package/dist/utils/did-helpers.d.ts.map +0 -1
  459. package/dist/utils/ed25519-constants.d.ts.map +0 -1
  460. package/dist/utils/guards.d.ts.map +0 -1
  461. package/dist/utils/index.d.ts.map +0 -1
  462. package/dist/utils/ip-classifier.d.ts.map +0 -1
  463. package/dist/utils/safe-fetch-transports.d.ts.map +0 -1
  464. package/dist/utils/safe-fetch-types.d.ts.map +0 -1
  465. package/dist/utils/safe-fetch.d.ts.map +0 -1
  466. package/dist/utils/statuslist-bits.d.ts.map +0 -1
  467. package/dist/utils/statuslist-purpose.d.ts.map +0 -1
  468. package/dist/utils/ttl-cache.d.ts.map +0 -1
  469. package/dist/utils/url.d.ts.map +0 -1
@@ -1,11 +1,13 @@
1
1
  import { type AuditHasher, type AuditSignatureVerifier } from './crypto.js';
2
- import type { AuditVerificationDimension, AuditObservationReceiptV1, AuditVerificationPolicyV1, AuditVerificationReportV1, SignedAuditCheckpointV1, SignedAuditEntryV1 } from './types.js';
2
+ import type { AuditVerificationDimension, AuditObservationReceiptV1, AuditVerificationPolicyV1, AuditVerificationReportV1, SignedAuditCheckpointV1, SignedAuditEntryV1, SignerRef } from './types.js';
3
3
  export declare const AUDIT_REASON_CODES: Readonly<{
4
4
  readonly NOT_EVALUATED: "AUDIT_NOT_EVALUATED";
5
5
  readonly SCHEMA_INVALID: "AUDIT_SCHEMA_INVALID";
6
6
  readonly UNSUPPORTED_SUITE: "AUDIT_UNSUPPORTED_SUITE";
7
7
  readonly UNSUPPORTED_ALGORITHM: "AUDIT_UNSUPPORTED_ALGORITHM";
8
8
  readonly UNTRUSTED_RECORDER: "AUDIT_UNTRUSTED_RECORDER";
9
+ readonly KEY_BOUNDARY_UNRESOLVED: "AUDIT_KEY_BOUNDARY_UNRESOLVED";
10
+ readonly KEY_NOT_CURRENT: "AUDIT_KEY_NOT_CURRENT";
9
11
  readonly SIGNATURE_INVALID: "AUDIT_SIGNATURE_INVALID";
10
12
  readonly EVENT_DIGEST_MISMATCH: "AUDIT_EVENT_DIGEST_MISMATCH";
11
13
  readonly EVIDENCE_MANIFEST_DIGEST_MISMATCH: "AUDIT_EVIDENCE_MANIFEST_DIGEST_MISMATCH";
@@ -23,12 +25,14 @@ export declare const AUDIT_REASON_CODES: Readonly<{
23
25
  readonly CHECKPOINT_CHAIN_MISMATCH: "AUDIT_CHECKPOINT_CHAIN_MISMATCH";
24
26
  readonly CHECKPOINT_FORK_DETECTED: "AUDIT_CHECKPOINT_FORK_DETECTED";
25
27
  readonly MERKLE_PROOF_INVALID: "AUDIT_MERKLE_PROOF_INVALID";
28
+ readonly MERKLE_PROOF_MISSING: "AUDIT_MERKLE_PROOF_MISSING";
26
29
  readonly OBSERVER_EVIDENCE_MISSING: "AUDIT_OBSERVER_EVIDENCE_MISSING";
27
30
  readonly OBSERVATION_DIGEST_MISMATCH: "AUDIT_OBSERVATION_DIGEST_MISMATCH";
28
31
  readonly OBSERVATION_SIGNATURE_INVALID: "AUDIT_OBSERVATION_SIGNATURE_INVALID";
29
32
  readonly OBSERVATION_SCOPE_MISMATCH: "AUDIT_OBSERVATION_SCOPE_MISMATCH";
30
33
  readonly UNTRUSTED_OBSERVER: "AUDIT_UNTRUSTED_OBSERVER";
31
34
  readonly OBSERVATION_STALE: "AUDIT_OBSERVATION_STALE";
35
+ readonly OBSERVATION_FUTURE_DATED: "AUDIT_OBSERVATION_FUTURE_DATED";
32
36
  readonly OBSERVATION_CHAIN_MISMATCH: "AUDIT_OBSERVATION_CHAIN_MISMATCH";
33
37
  readonly UNTRUSTED_SUPPORTING_ANCHOR: "AUDIT_UNTRUSTED_SUPPORTING_ANCHOR";
34
38
  readonly SUPPORTING_ANCHOR_INVALID: "AUDIT_SUPPORTING_ANCHOR_INVALID";
@@ -44,16 +48,41 @@ export declare const AUDIT_REASON_CODES: Readonly<{
44
48
  readonly BUNDLE_SELECTION_INCOMPLETE: "AUDIT_BUNDLE_SELECTION_INCOMPLETE";
45
49
  readonly VERIFICATION_POLICY_MISMATCH: "AUDIT_VERIFICATION_POLICY_MISMATCH";
46
50
  readonly VERIFICATION_POLICY_INVALID: "AUDIT_VERIFICATION_POLICY_INVALID";
51
+ readonly REQUIRED_PROFILE_UNMET: "AUDIT_REQUIRED_PROFILE_UNMET";
47
52
  readonly EXPLICITLY_REDACTED: "AUDIT_EXPLICITLY_REDACTED";
48
53
  readonly EXPLICITLY_DISPOSED: "AUDIT_EXPLICITLY_DISPOSED";
49
54
  readonly EXPLICITLY_UNAVAILABLE: "AUDIT_EXPLICITLY_UNAVAILABLE";
50
55
  }>;
56
+ /**
57
+ * Marks every dimension the policy's `requiredAuditProfile` depends on as
58
+ * invalid unless it is `valid`: AAP-1 needs cryptographic integrity, AAP-2
59
+ * adds chain integrity, AAP-3 adds checkpoint integrity, and AAP-4 adds
60
+ * observation integrity backed by a supporting anchor receipt.
61
+ */
62
+ export declare function applyRequiredAuditProfile(report: AuditVerificationReportV1, policy: AuditVerificationPolicyV1, evidence?: {
63
+ supportingAnchors: boolean;
64
+ }): AuditVerificationReportV1;
51
65
  export interface AuditArtifactVerifierOptions {
52
66
  hasher: AuditHasher;
53
67
  signatures: AuditSignatureVerifier;
54
68
  verifiedAt?: () => number;
69
+ /** How far an observation may be dated ahead of `verifiedAt` (default 120 s). */
70
+ maxClockSkewMs?: number;
55
71
  authorization?: AuditAuthorizationVerifier;
56
72
  }
73
+ /** Supporting artifacts that let a verifier resolve checkpoint-bounded key validity. */
74
+ export interface AuditVerificationContext {
75
+ /** Checkpoints that policy `validFromCheckpoint`/`validUntilCheckpoint` digests may name. */
76
+ checkpoints?: readonly SignedAuditCheckpointV1[];
77
+ }
78
+ /** Artifacts whose signing keys a verification relied on. */
79
+ export interface AuditSignedArtifacts {
80
+ entries?: readonly SignedAuditEntryV1[];
81
+ checkpoints?: readonly SignedAuditCheckpointV1[];
82
+ observations?: readonly AuditObservationReceiptV1[];
83
+ /** The exporter that signed a replay-bundle manifest. */
84
+ exporter?: SignerRef;
85
+ }
57
86
  /** Optional collateral verifier kept separate from structural/cryptographic verification. */
58
87
  export interface AuditAuthorizationVerifier {
59
88
  verifyAsObserved(entries: readonly SignedAuditEntryV1[], policy: AuditVerificationPolicyV1): Promise<AuditVerificationDimension>;
@@ -63,11 +92,34 @@ export interface AuditAuthorizationVerifier {
63
92
  export declare class AuditArtifactVerifier {
64
93
  private readonly options;
65
94
  constructor(options: AuditArtifactVerifierOptions);
66
- verifyEntries(entries: readonly unknown[], policy: AuditVerificationPolicyV1 | unknown): Promise<AuditVerificationReportV1>;
67
- verifyCheckpoint(checkpoint: SignedAuditCheckpointV1, entries: readonly SignedAuditEntryV1[], policy: AuditVerificationPolicyV1): Promise<AuditVerificationDimension>;
68
- verifyObservation(checkpoint: SignedAuditCheckpointV1, receipt: AuditObservationReceiptV1, policy: AuditVerificationPolicyV1): Promise<AuditVerificationDimension>;
95
+ verifyEntries(entries: readonly unknown[], policy: AuditVerificationPolicyV1 | unknown, context?: AuditVerificationContext): Promise<AuditVerificationReportV1>;
96
+ /**
97
+ * Evaluates the `current` and `both` key revocation modes: whether every key
98
+ * these artifacts were signed with is still valid at `verifiedAt`. The
99
+ * as-observed check, at signing time and ledger position, stays in the
100
+ * integrity dimensions under every mode, because revocation does not rewrite
101
+ * what was observed; this result belongs in `currentAuthorization`, which the
102
+ * report keeps separate from it. Returns `undefined` under `as_observed`, and
103
+ * `indeterminate` when the verifier has no `verifiedAt` clock.
104
+ */
105
+ verifyCurrentKeys(policy: AuditVerificationPolicyV1, artifacts: AuditSignedArtifacts): AuditVerificationDimension | undefined;
106
+ /** Verifies a checkpoint and recomputes its root from the complete journal prefix. */
107
+ verifyCheckpoint(checkpoint: SignedAuditCheckpointV1, entries: readonly SignedAuditEntryV1[], policy: AuditVerificationPolicyV1, context?: AuditVerificationContext): Promise<AuditVerificationDimension>;
108
+ /**
109
+ * Verifies a checkpoint's schema, suite, issuer trust, digest, signature, and
110
+ * declared range without its leaves. It proves only what the recorder
111
+ * signed; entries are bound to it separately by inclusion proofs.
112
+ */
113
+ verifySignedCheckpoint(checkpoint: SignedAuditCheckpointV1, policy: AuditVerificationPolicyV1, context?: AuditVerificationContext): Promise<AuditVerificationDimension>;
114
+ verifyObservation(checkpoint: SignedAuditCheckpointV1, receipt: AuditObservationReceiptV1, policy: AuditVerificationPolicyV1, context?: AuditVerificationContext): Promise<AuditVerificationDimension>;
115
+ private checkSignedCheckpoint;
116
+ /**
117
+ * Indexes candidate checkpoints by their recomputed digest. A policy names a
118
+ * boundary by digest, which commits to the checkpoint core, so a matching
119
+ * core authenticates the boundary's ledger epoch and tree size by itself.
120
+ */
121
+ private boundaries;
69
122
  private verifyEntry;
70
123
  private verifyChainPosition;
71
124
  }
72
125
  export declare function mergeAuditDimensions(...values: readonly AuditVerificationDimension[]): AuditVerificationDimension;
73
- //# sourceMappingURL=verifier.d.ts.map
@@ -9,6 +9,8 @@ export const AUDIT_REASON_CODES = Object.freeze({
9
9
  UNSUPPORTED_SUITE: 'AUDIT_UNSUPPORTED_SUITE',
10
10
  UNSUPPORTED_ALGORITHM: 'AUDIT_UNSUPPORTED_ALGORITHM',
11
11
  UNTRUSTED_RECORDER: 'AUDIT_UNTRUSTED_RECORDER',
12
+ KEY_BOUNDARY_UNRESOLVED: 'AUDIT_KEY_BOUNDARY_UNRESOLVED',
13
+ KEY_NOT_CURRENT: 'AUDIT_KEY_NOT_CURRENT',
12
14
  SIGNATURE_INVALID: 'AUDIT_SIGNATURE_INVALID',
13
15
  EVENT_DIGEST_MISMATCH: 'AUDIT_EVENT_DIGEST_MISMATCH',
14
16
  EVIDENCE_MANIFEST_DIGEST_MISMATCH: 'AUDIT_EVIDENCE_MANIFEST_DIGEST_MISMATCH',
@@ -26,12 +28,14 @@ export const AUDIT_REASON_CODES = Object.freeze({
26
28
  CHECKPOINT_CHAIN_MISMATCH: 'AUDIT_CHECKPOINT_CHAIN_MISMATCH',
27
29
  CHECKPOINT_FORK_DETECTED: 'AUDIT_CHECKPOINT_FORK_DETECTED',
28
30
  MERKLE_PROOF_INVALID: 'AUDIT_MERKLE_PROOF_INVALID',
31
+ MERKLE_PROOF_MISSING: 'AUDIT_MERKLE_PROOF_MISSING',
29
32
  OBSERVER_EVIDENCE_MISSING: 'AUDIT_OBSERVER_EVIDENCE_MISSING',
30
33
  OBSERVATION_DIGEST_MISMATCH: 'AUDIT_OBSERVATION_DIGEST_MISMATCH',
31
34
  OBSERVATION_SIGNATURE_INVALID: 'AUDIT_OBSERVATION_SIGNATURE_INVALID',
32
35
  OBSERVATION_SCOPE_MISMATCH: 'AUDIT_OBSERVATION_SCOPE_MISMATCH',
33
36
  UNTRUSTED_OBSERVER: 'AUDIT_UNTRUSTED_OBSERVER',
34
37
  OBSERVATION_STALE: 'AUDIT_OBSERVATION_STALE',
38
+ OBSERVATION_FUTURE_DATED: 'AUDIT_OBSERVATION_FUTURE_DATED',
35
39
  OBSERVATION_CHAIN_MISMATCH: 'AUDIT_OBSERVATION_CHAIN_MISMATCH',
36
40
  UNTRUSTED_SUPPORTING_ANCHOR: 'AUDIT_UNTRUSTED_SUPPORTING_ANCHOR',
37
41
  SUPPORTING_ANCHOR_INVALID: 'AUDIT_SUPPORTING_ANCHOR_INVALID',
@@ -47,13 +51,35 @@ export const AUDIT_REASON_CODES = Object.freeze({
47
51
  BUNDLE_SELECTION_INCOMPLETE: 'AUDIT_BUNDLE_SELECTION_INCOMPLETE',
48
52
  VERIFICATION_POLICY_MISMATCH: 'AUDIT_VERIFICATION_POLICY_MISMATCH',
49
53
  VERIFICATION_POLICY_INVALID: 'AUDIT_VERIFICATION_POLICY_INVALID',
54
+ REQUIRED_PROFILE_UNMET: 'AUDIT_REQUIRED_PROFILE_UNMET',
50
55
  EXPLICITLY_REDACTED: 'AUDIT_EXPLICITLY_REDACTED',
51
56
  EXPLICITLY_DISPOSED: 'AUDIT_EXPLICITLY_DISPOSED',
52
57
  EXPLICITLY_UNAVAILABLE: 'AUDIT_EXPLICITLY_UNAVAILABLE',
53
58
  });
59
+ /** Reasons that mean "not decidable from the supplied collateral", never "wrong". */
60
+ const INDETERMINATE_REASONS = new Set([
61
+ AUDIT_REASON_CODES.NOT_EVALUATED,
62
+ AUDIT_REASON_CODES.KEY_BOUNDARY_UNRESOLVED,
63
+ ]);
64
+ /** Matches the proof verifier's default timestamp tolerance. */
65
+ const DEFAULT_MAX_CLOCK_SKEW_MS = 120_000;
66
+ /** Dimensions each audit assurance profile requires to be `valid`, in level order. */
67
+ const PROFILE_DIMENSIONS = [
68
+ 'cryptographicIntegrity',
69
+ 'chainIntegrity',
70
+ 'checkpointIntegrity',
71
+ 'anchorIntegrity',
72
+ ];
54
73
  function dimension(verdict, reasonCodes = []) {
55
74
  return { verdict, reasonCodes: [...new Set(reasonCodes)].sort() };
56
75
  }
76
+ function verdictOf(reasons) {
77
+ if (reasons.size === 0)
78
+ return 'valid';
79
+ return [...reasons].every((reason) => INDETERMINATE_REASONS.has(reason))
80
+ ? 'indeterminate'
81
+ : 'invalid';
82
+ }
57
83
  function sameSigner(left, right) {
58
84
  return left.did === right.did && left.kid === right.kid && left.alg === right.alg;
59
85
  }
@@ -61,6 +87,58 @@ function keyIsValidAt(policy, at) {
61
87
  return (policy.validFrom === undefined || at >= policy.validFrom) &&
62
88
  (policy.validUntil === undefined || at <= policy.validUntil);
63
89
  }
90
+ /**
91
+ * Checkpoint bounds place an artifact by the tree size it first appears in:
92
+ * `sequence + 1` for an entry, `treeSize` for a checkpoint or an observation.
93
+ * A key valid until checkpoint C covers positions up to C's tree size; a key
94
+ * valid from C covers positions after it. A boundary that is missing, or
95
+ * belongs to another ledger epoch, cannot place the artifact.
96
+ */
97
+ function positionWithin(bounds, ledger, position, boundaries) {
98
+ const resolve = (digest) => {
99
+ if (digest === undefined)
100
+ return undefined;
101
+ const boundary = boundaries.get(digest);
102
+ return boundary?.ledgerId === ledger.ledgerId &&
103
+ boundary.ledgerEpochId === ledger.ledgerEpochId
104
+ ? boundary.treeSize
105
+ : null;
106
+ };
107
+ const from = resolve(bounds.validFromCheckpoint);
108
+ const until = resolve(bounds.validUntilCheckpoint);
109
+ if ((typeof from === 'bigint' && position <= from) ||
110
+ (typeof until === 'bigint' && position > until))
111
+ return 'outside';
112
+ return from === null || until === null ? 'unresolved' : 'within';
113
+ }
114
+ function strictest(...values) {
115
+ if (values.includes('outside'))
116
+ return 'outside';
117
+ return values.includes('unresolved') ? 'unresolved' : 'within';
118
+ }
119
+ function keyTrust(keys, signer, at, ledger, position, boundaries, epochBounds = {}) {
120
+ const epoch = positionWithin(epochBounds, ledger, position, boundaries);
121
+ let best = 'outside';
122
+ for (const key of keys) {
123
+ if (!sameSigner(key.signer, signer) || !keyIsValidAt(key, at))
124
+ continue;
125
+ const status = strictest(epoch, positionWithin(key, ledger, position, boundaries));
126
+ if (status === 'within')
127
+ return status;
128
+ if (status === 'unresolved')
129
+ best = status;
130
+ }
131
+ return best;
132
+ }
133
+ /**
134
+ * Whether the policy still lists the signer as valid at `now`. A checkpoint
135
+ * bound names a checkpoint that already exists, so a key valid only until one
136
+ * has been retired, while one valid from one has already started.
137
+ */
138
+ function keyIsCurrent(keys, signer, now) {
139
+ return keys.some((key) => sameSigner(key.signer, signer) && keyIsValidAt(key, now) &&
140
+ key.validUntilCheckpoint === undefined);
141
+ }
64
142
  function exactJson(left, right) {
65
143
  try {
66
144
  return canonicalizeJson(left) === canonicalizeJson(right);
@@ -87,17 +165,41 @@ function invalidPolicyReport(policy) {
87
165
  currentAuthorization: dimension('indeterminate', [AUDIT_REASON_CODES.NOT_EVALUATED]),
88
166
  };
89
167
  }
168
+ /**
169
+ * Marks every dimension the policy's `requiredAuditProfile` depends on as
170
+ * invalid unless it is `valid`: AAP-1 needs cryptographic integrity, AAP-2
171
+ * adds chain integrity, AAP-3 adds checkpoint integrity, and AAP-4 adds
172
+ * observation integrity backed by a supporting anchor receipt.
173
+ */
174
+ export function applyRequiredAuditProfile(report, policy, evidence = { supportingAnchors: false }) {
175
+ if (policy.requiredAuditProfile === undefined)
176
+ return report;
177
+ const level = Number(policy.requiredAuditProfile.slice(-1));
178
+ const result = { ...report };
179
+ for (const name of PROFILE_DIMENSIONS.slice(0, level)) {
180
+ const unmet = report[name].verdict !== 'valid' ||
181
+ (name === 'anchorIntegrity' && !evidence.supportingAnchors);
182
+ if (unmet) {
183
+ result[name] = dimension('invalid', [
184
+ ...report[name].reasonCodes,
185
+ AUDIT_REASON_CODES.REQUIRED_PROFILE_UNMET,
186
+ ]);
187
+ }
188
+ }
189
+ return result;
190
+ }
90
191
  /** Pure historical verifier. It never reads live nonce state or applies current freshness. */
91
192
  export class AuditArtifactVerifier {
92
193
  options;
93
194
  constructor(options) {
94
195
  this.options = options;
95
196
  }
96
- async verifyEntries(entries, policy) {
197
+ async verifyEntries(entries, policy, context = {}) {
97
198
  if (!auditVerificationPolicySchema.safeParse(policy).success) {
98
199
  return invalidPolicyReport(policy);
99
200
  }
100
201
  const verificationPolicy = policy;
202
+ const boundaries = await this.boundaries(context.checkpoints ?? []);
101
203
  const cryptoReasons = new Set();
102
204
  const chainReasons = new Set();
103
205
  const validatedEntries = [];
@@ -113,7 +215,7 @@ export class AuditArtifactVerifier {
113
215
  }
114
216
  const entry = parsed.data;
115
217
  const index = validatedEntries.length;
116
- await this.verifyEntry(entry, verificationPolicy, cryptoReasons);
218
+ await this.verifyEntry(entry, verificationPolicy, boundaries, cryptoReasons);
117
219
  this.verifyChainPosition(entry, validatedEntries[index - 1], index, chainReasons);
118
220
  validatedEntries.push(entry);
119
221
  }
@@ -133,48 +235,57 @@ export class AuditArtifactVerifier {
133
235
  this.options.authorization.verifyAsObserved(validatedEntries, verificationPolicy),
134
236
  this.options.authorization.verifyCurrent(validatedEntries, verificationPolicy),
135
237
  ]);
136
- return {
238
+ const currentKeys = this.verifyCurrentKeys(verificationPolicy, { entries: validatedEntries });
239
+ return applyRequiredAuditProfile({
137
240
  schema: 'https://schema.kya-os.org/v1/protocol/audit/verification-report/v1.0.0',
138
241
  policyId: verificationPolicy.policyId,
139
242
  ...(this.options.verifiedAt === undefined ? {} : { verifiedAt: this.options.verifiedAt() }),
140
- cryptographicIntegrity: dimension(cryptoReasons.size === 0 && entries.length > 0 ? 'valid' : 'invalid', cryptoReasons),
243
+ cryptographicIntegrity: dimension(entries.length > 0 ? verdictOf(cryptoReasons) : 'invalid', cryptoReasons),
141
244
  chainIntegrity: dimension(chainReasons.size === 0 && entries.length > 0 ? 'valid' : 'invalid', chainReasons),
142
245
  checkpointIntegrity: dimension('indeterminate', [AUDIT_REASON_CODES.CHECKPOINT_MISSING]),
143
246
  anchorIntegrity: dimension('indeterminate', [AUDIT_REASON_CODES.OBSERVER_EVIDENCE_MISSING]),
144
247
  scopeEvidenceCompleteness: dimension(entries.length > 0 ? 'indeterminate' : 'invalid', [AUDIT_REASON_CODES.NOT_EVALUATED]),
145
248
  authorizedAsObserved,
146
- currentAuthorization,
147
- };
249
+ currentAuthorization: currentKeys === undefined
250
+ ? currentAuthorization
251
+ : mergeAuditDimensions(currentAuthorization, currentKeys),
252
+ }, verificationPolicy);
148
253
  }
149
- async verifyCheckpoint(checkpoint, entries, policy) {
150
- const reasons = new Set();
151
- if (!auditVerificationPolicySchema.safeParse(policy).success) {
152
- return dimension('invalid', [AUDIT_REASON_CODES.VERIFICATION_POLICY_INVALID]);
153
- }
154
- const parsedCheckpoint = signedAuditCheckpointSchema.safeParse(checkpoint);
155
- if (!parsedCheckpoint.success) {
156
- return dimension('invalid', [AUDIT_REASON_CODES.SCHEMA_INVALID]);
157
- }
158
- const validated = parsedCheckpoint.data;
159
- const core = validated.core;
160
- if (!policy.acceptedIntegritySuites.includes(core.integritySuite)) {
161
- reasons.add(AUDIT_REASON_CODES.UNSUPPORTED_SUITE);
162
- }
163
- if (!policy.acceptedAlgorithms.includes(core.issuer.alg)) {
164
- reasons.add(AUDIT_REASON_CODES.UNSUPPORTED_ALGORITHM);
165
- }
166
- const epochPolicy = policy.trustedLedgerEpochs.find((candidate) => candidate.ledgerId === core.ledgerId &&
167
- candidate.ledgerEpochId === core.ledgerEpochId);
168
- if (!epochPolicy?.recorderKeys.some((candidate) => sameSigner(candidate.signer, core.issuer) && keyIsValidAt(candidate, core.createdAt))) {
169
- reasons.add(AUDIT_REASON_CODES.UNTRUSTED_RECORDER);
170
- }
171
- const expectedDigest = await hashAuditValue(this.options.hasher, AUDIT_DIGEST_DOMAINS.checkpoint, core);
172
- if (expectedDigest !== validated.checkpointDigest) {
173
- reasons.add(AUDIT_REASON_CODES.CHECKPOINT_DIGEST_MISMATCH);
174
- }
175
- if (!(await this.options.signatures.verify(canonicalizeJsonBytes(core), validated.jws, core.issuer))) {
176
- reasons.add(AUDIT_REASON_CODES.CHECKPOINT_SIGNATURE_INVALID);
177
- }
254
+ /**
255
+ * Evaluates the `current` and `both` key revocation modes: whether every key
256
+ * these artifacts were signed with is still valid at `verifiedAt`. The
257
+ * as-observed check, at signing time and ledger position, stays in the
258
+ * integrity dimensions under every mode, because revocation does not rewrite
259
+ * what was observed; this result belongs in `currentAuthorization`, which the
260
+ * report keeps separate from it. Returns `undefined` under `as_observed`, and
261
+ * `indeterminate` when the verifier has no `verifiedAt` clock.
262
+ */
263
+ verifyCurrentKeys(policy, artifacts) {
264
+ if (policy.keyRevocationMode === 'as_observed')
265
+ return undefined;
266
+ const now = this.options.verifiedAt?.();
267
+ if (now === undefined)
268
+ return dimension('indeterminate', [AUDIT_REASON_CODES.NOT_EVALUATED]);
269
+ const recorderKeys = (ledger) => policy.trustedLedgerEpochs.find((candidate) => candidate.ledgerId === ledger.ledgerId &&
270
+ candidate.ledgerEpochId === ledger.ledgerEpochId)?.recorderKeys ?? [];
271
+ const current = [
272
+ ...(artifacts.entries ?? []).map((entry) => keyIsCurrent(recorderKeys(entry.core), entry.core.recorder, now)),
273
+ ...(artifacts.checkpoints ?? []).map((checkpoint) => keyIsCurrent(recorderKeys(checkpoint.core), checkpoint.core.issuer, now)),
274
+ ...(artifacts.observations ?? []).map((receipt) => keyIsCurrent(policy.trustedObservers, receipt.core.observer, now)),
275
+ ...(artifacts.exporter === undefined
276
+ ? []
277
+ : [keyIsCurrent(policy.authorizedExporters.flatMap((exporter) => exporter.signerKeys), artifacts.exporter, now)]),
278
+ ];
279
+ return current.every(Boolean)
280
+ ? dimension('valid')
281
+ : dimension('invalid', [AUDIT_REASON_CODES.KEY_NOT_CURRENT]);
282
+ }
283
+ /** Verifies a checkpoint and recomputes its root from the complete journal prefix. */
284
+ async verifyCheckpoint(checkpoint, entries, policy, context = {}) {
285
+ const checked = await this.checkSignedCheckpoint(checkpoint, policy, context);
286
+ if (checked.kind === 'rejected')
287
+ return checked.result;
288
+ const { core, reasons } = checked;
178
289
  const expectedSize = Number(core.treeSize);
179
290
  const first = entries[0];
180
291
  const last = entries[entries.length - 1];
@@ -193,11 +304,26 @@ export class AuditArtifactVerifier {
193
304
  if (root !== core.rootDigest)
194
305
  reasons.add(AUDIT_REASON_CODES.CHECKPOINT_ROOT_MISMATCH);
195
306
  }
196
- return dimension(reasons.size === 0 ? 'valid' : 'invalid', reasons);
307
+ return dimension(verdictOf(reasons), reasons);
197
308
  }
198
- async verifyObservation(checkpoint, receipt, policy) {
309
+ /**
310
+ * Verifies a checkpoint's schema, suite, issuer trust, digest, signature, and
311
+ * declared range without its leaves. It proves only what the recorder
312
+ * signed; entries are bound to it separately by inclusion proofs.
313
+ */
314
+ async verifySignedCheckpoint(checkpoint, policy, context = {}) {
315
+ const checked = await this.checkSignedCheckpoint(checkpoint, policy, context);
316
+ if (checked.kind === 'rejected')
317
+ return checked.result;
318
+ const { core, reasons } = checked;
319
+ if (core.firstSequence !== '0' ||
320
+ BigInt(core.lastSequence) + 1n !== BigInt(core.treeSize)) {
321
+ reasons.add(AUDIT_REASON_CODES.CHECKPOINT_RANGE_MISMATCH);
322
+ }
323
+ return dimension(verdictOf(reasons), reasons);
324
+ }
325
+ async verifyObservation(checkpoint, receipt, policy, context = {}) {
199
326
  const reasons = new Set();
200
- let freshnessIndeterminate = false;
201
327
  if (!auditVerificationPolicySchema.safeParse(policy).success) {
202
328
  return dimension('invalid', [AUDIT_REASON_CODES.VERIFICATION_POLICY_INVALID]);
203
329
  }
@@ -222,15 +348,23 @@ export class AuditArtifactVerifier {
222
348
  if (!policy.acceptedAlgorithms.includes(core.observer.alg)) {
223
349
  reasons.add(AUDIT_REASON_CODES.UNSUPPORTED_ALGORITHM);
224
350
  }
225
- if (!policy.trustedObservers.some((candidate) => sameSigner(candidate.signer, core.observer) &&
226
- keyIsValidAt(candidate, core.observedAt))) {
351
+ const boundaries = await this.boundaries([
352
+ ...(context.checkpoints ?? []),
353
+ validatedCheckpoint,
354
+ ]);
355
+ const trust = keyTrust(policy.trustedObservers, core.observer, core.observedAt, core, BigInt(core.treeSize), boundaries);
356
+ if (trust === 'outside')
227
357
  reasons.add(AUDIT_REASON_CODES.UNTRUSTED_OBSERVER);
228
- }
358
+ if (trust === 'unresolved')
359
+ reasons.add(AUDIT_REASON_CODES.KEY_BOUNDARY_UNRESOLVED);
229
360
  if (policy.requiredCheckpointFreshnessMs !== undefined) {
230
361
  const now = this.options.verifiedAt?.();
231
362
  if (now === undefined) {
232
363
  reasons.add(AUDIT_REASON_CODES.NOT_EVALUATED);
233
- freshnessIndeterminate = true;
364
+ }
365
+ else if (core.observedAt > now + (this.options.maxClockSkewMs ?? DEFAULT_MAX_CLOCK_SKEW_MS)) {
366
+ // A future-dated observation would otherwise count as perfectly fresh.
367
+ reasons.add(AUDIT_REASON_CODES.OBSERVATION_FUTURE_DATED);
234
368
  }
235
369
  else if (now - core.observedAt > policy.requiredCheckpointFreshnessMs) {
236
370
  reasons.add(AUDIT_REASON_CODES.OBSERVATION_STALE);
@@ -243,11 +377,67 @@ export class AuditArtifactVerifier {
243
377
  if (!(await this.options.signatures.verify(canonicalizeJsonBytes(core), validatedReceipt.jws, core.observer))) {
244
378
  reasons.add(AUDIT_REASON_CODES.OBSERVATION_SIGNATURE_INVALID);
245
379
  }
246
- const onlyIndeterminate = freshnessIndeterminate &&
247
- [...reasons].every((reason) => reason === AUDIT_REASON_CODES.NOT_EVALUATED);
248
- return dimension(reasons.size === 0 ? 'valid' : onlyIndeterminate ? 'indeterminate' : 'invalid', reasons);
380
+ return dimension(verdictOf(reasons), reasons);
381
+ }
382
+ async checkSignedCheckpoint(checkpoint, policy, context) {
383
+ if (!auditVerificationPolicySchema.safeParse(policy).success) {
384
+ return {
385
+ kind: 'rejected',
386
+ result: dimension('invalid', [AUDIT_REASON_CODES.VERIFICATION_POLICY_INVALID]),
387
+ };
388
+ }
389
+ const parsedCheckpoint = signedAuditCheckpointSchema.safeParse(checkpoint);
390
+ if (!parsedCheckpoint.success) {
391
+ return {
392
+ kind: 'rejected',
393
+ result: dimension('invalid', [AUDIT_REASON_CODES.SCHEMA_INVALID]),
394
+ };
395
+ }
396
+ const reasons = new Set();
397
+ const validated = parsedCheckpoint.data;
398
+ const core = validated.core;
399
+ if (!policy.acceptedIntegritySuites.includes(core.integritySuite)) {
400
+ reasons.add(AUDIT_REASON_CODES.UNSUPPORTED_SUITE);
401
+ }
402
+ if (!policy.acceptedAlgorithms.includes(core.issuer.alg)) {
403
+ reasons.add(AUDIT_REASON_CODES.UNSUPPORTED_ALGORITHM);
404
+ }
405
+ const epochPolicy = policy.trustedLedgerEpochs.find((candidate) => candidate.ledgerId === core.ledgerId &&
406
+ candidate.ledgerEpochId === core.ledgerEpochId);
407
+ const trust = keyTrust(epochPolicy?.recorderKeys ?? [], core.issuer, core.createdAt, core, BigInt(core.treeSize), await this.boundaries([...(context.checkpoints ?? []), validated]), epochPolicy);
408
+ if (trust === 'outside')
409
+ reasons.add(AUDIT_REASON_CODES.UNTRUSTED_RECORDER);
410
+ if (trust === 'unresolved')
411
+ reasons.add(AUDIT_REASON_CODES.KEY_BOUNDARY_UNRESOLVED);
412
+ const expectedDigest = await hashAuditValue(this.options.hasher, AUDIT_DIGEST_DOMAINS.checkpoint, core);
413
+ if (expectedDigest !== validated.checkpointDigest) {
414
+ reasons.add(AUDIT_REASON_CODES.CHECKPOINT_DIGEST_MISMATCH);
415
+ }
416
+ if (!(await this.options.signatures.verify(canonicalizeJsonBytes(core), validated.jws, core.issuer))) {
417
+ reasons.add(AUDIT_REASON_CODES.CHECKPOINT_SIGNATURE_INVALID);
418
+ }
419
+ return { kind: 'checked', core, reasons };
420
+ }
421
+ /**
422
+ * Indexes candidate checkpoints by their recomputed digest. A policy names a
423
+ * boundary by digest, which commits to the checkpoint core, so a matching
424
+ * core authenticates the boundary's ledger epoch and tree size by itself.
425
+ */
426
+ async boundaries(checkpoints) {
427
+ const result = new Map();
428
+ for (const candidate of checkpoints) {
429
+ if (!signedAuditCheckpointSchema.safeParse(candidate).success)
430
+ continue;
431
+ const core = candidate.core;
432
+ result.set(await hashAuditValue(this.options.hasher, AUDIT_DIGEST_DOMAINS.checkpoint, core), {
433
+ ledgerId: core.ledgerId,
434
+ ledgerEpochId: core.ledgerEpochId,
435
+ treeSize: BigInt(core.treeSize),
436
+ });
437
+ }
438
+ return result;
249
439
  }
250
- async verifyEntry(entry, policy, reasons) {
440
+ async verifyEntry(entry, policy, boundaries, reasons) {
251
441
  if (!policy.acceptedIntegritySuites.includes(entry.core.integritySuite)) {
252
442
  reasons.add(AUDIT_REASON_CODES.UNSUPPORTED_SUITE);
253
443
  }
@@ -256,10 +446,11 @@ export class AuditArtifactVerifier {
256
446
  }
257
447
  const epochPolicy = policy.trustedLedgerEpochs.find((candidate) => candidate.ledgerId === entry.core.ledgerId &&
258
448
  candidate.ledgerEpochId === entry.core.ledgerEpochId);
259
- const trustedKey = epochPolicy?.recorderKeys.find((candidate) => sameSigner(candidate.signer, entry.core.recorder) &&
260
- keyIsValidAt(candidate, entry.core.recordedAt));
261
- if (trustedKey === undefined)
449
+ const trust = keyTrust(epochPolicy?.recorderKeys ?? [], entry.core.recorder, entry.core.recordedAt, entry.core, BigInt(entry.core.sequence) + 1n, boundaries, epochPolicy);
450
+ if (trust === 'outside')
262
451
  reasons.add(AUDIT_REASON_CODES.UNTRUSTED_RECORDER);
452
+ if (trust === 'unresolved')
453
+ reasons.add(AUDIT_REASON_CODES.KEY_BOUNDARY_UNRESOLVED);
263
454
  const eventDigest = await digestAuditEvent(this.options.hasher, entry.core.event);
264
455
  if (eventDigest !== entry.core.eventDigest || eventDigest !== entry.eventDigest) {
265
456
  reasons.add(AUDIT_REASON_CODES.EVENT_DIGEST_MISMATCH);
@@ -1 +1 @@
1
- {"version":3,"file":"verifier.js","sourceRoot":"","sources":["../../src/audit/verifier.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verifier.js","sourceRoot":"","sources":["../../src/audit/verifier.ts"],"names":[],"mappings":"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"}
@@ -39,6 +39,12 @@ export interface AuthHandshakeConfig {
39
39
  };
40
40
  authorization: {
41
41
  authorizationUrl: string;
42
+ /**
43
+ * Fallback lifetime in milliseconds for the challenge's advertised
44
+ * `expiresAt`, used only when the token store cannot report the expiry of
45
+ * the token it just created. The store's own expiry is advertised otherwise,
46
+ * so the challenge never outlives its token.
47
+ */
42
48
  resumeTokenTtl?: number;
43
49
  /**
44
50
  * How to handle agents with no reputation history (404 from reputation
@@ -100,6 +106,12 @@ export declare class MemoryResumeTokenStore implements ResumeTokenStore {
100
106
  } | null>;
101
107
  fulfill(token: string): Promise<void>;
102
108
  clear(): void;
109
+ /**
110
+ * Every token gets the same TTL, so insertion order is expiry order: drop
111
+ * from the front until the first live token. Each token is dropped once, so
112
+ * the cost is amortized constant per create().
113
+ */
114
+ private sweepExpired;
103
115
  }
104
116
  /**
105
117
  * Verify agent delegation or return authorization hints.
@@ -116,4 +128,3 @@ export declare class MemoryResumeTokenStore implements ResumeTokenStore {
116
128
  */
117
129
  export declare function verifyOrHints(agentDid: string, scopes: string[], config: AuthHandshakeConfig): Promise<VerifyOrHintsResult>;
118
130
  export declare function hasSensitiveScopes(scopes: string[]): boolean;
119
- //# sourceMappingURL=handshake.d.ts.map