@kya-os/mcp 1.6.1 → 1.9.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 (282) hide show
  1. package/CHANGELOG.md +117 -0
  2. package/README.md +228 -3
  3. package/dist/authz/index.d.ts +1 -0
  4. package/dist/authz/index.d.ts.map +1 -1
  5. package/dist/authz/index.js +1 -0
  6. package/dist/authz/index.js.map +1 -1
  7. package/dist/authz/oidc/oidc-adapter.d.ts +10 -2
  8. package/dist/authz/oidc/oidc-adapter.d.ts.map +1 -1
  9. package/dist/authz/oidc/oidc-adapter.js +18 -9
  10. package/dist/authz/oidc/oidc-adapter.js.map +1 -1
  11. package/dist/authz/oidc/pending-flow-store.d.ts +80 -0
  12. package/dist/authz/oidc/pending-flow-store.d.ts.map +1 -0
  13. package/dist/authz/oidc/pending-flow-store.js +82 -0
  14. package/dist/authz/oidc/pending-flow-store.js.map +1 -0
  15. package/dist/card/build.d.ts +41 -0
  16. package/dist/card/build.d.ts.map +1 -0
  17. package/dist/card/build.js +47 -0
  18. package/dist/card/build.js.map +1 -0
  19. package/dist/card/builder.d.ts +99 -0
  20. package/dist/card/builder.d.ts.map +1 -0
  21. package/dist/card/builder.js +147 -0
  22. package/dist/card/builder.js.map +1 -0
  23. package/dist/card/cimd.d.ts +92 -0
  24. package/dist/card/cimd.d.ts.map +1 -0
  25. package/dist/card/cimd.js +225 -0
  26. package/dist/card/cimd.js.map +1 -0
  27. package/dist/card/delegation.d.ts +145 -0
  28. package/dist/card/delegation.d.ts.map +1 -0
  29. package/dist/card/delegation.js +293 -0
  30. package/dist/card/delegation.js.map +1 -0
  31. package/dist/card/emit.d.ts +133 -0
  32. package/dist/card/emit.d.ts.map +1 -0
  33. package/dist/card/emit.js +127 -0
  34. package/dist/card/emit.js.map +1 -0
  35. package/dist/card/index.d.ts +43 -0
  36. package/dist/card/index.d.ts.map +1 -0
  37. package/dist/card/index.js +46 -0
  38. package/dist/card/index.js.map +1 -0
  39. package/dist/card/middleware.d.ts +112 -0
  40. package/dist/card/middleware.d.ts.map +1 -0
  41. package/dist/card/middleware.js +121 -0
  42. package/dist/card/middleware.js.map +1 -0
  43. package/dist/card/proof/build.d.ts +22 -0
  44. package/dist/card/proof/build.d.ts.map +1 -0
  45. package/dist/card/proof/build.js +55 -0
  46. package/dist/card/proof/build.js.map +1 -0
  47. package/dist/card/proof/canonical.d.ts +66 -0
  48. package/dist/card/proof/canonical.d.ts.map +1 -0
  49. package/dist/card/proof/canonical.js +131 -0
  50. package/dist/card/proof/canonical.js.map +1 -0
  51. package/dist/card/proof/http-sig.d.ts +69 -0
  52. package/dist/card/proof/http-sig.d.ts.map +1 -0
  53. package/dist/card/proof/http-sig.js +101 -0
  54. package/dist/card/proof/http-sig.js.map +1 -0
  55. package/dist/card/proof/index.d.ts +25 -0
  56. package/dist/card/proof/index.d.ts.map +1 -0
  57. package/dist/card/proof/index.js +25 -0
  58. package/dist/card/proof/index.js.map +1 -0
  59. package/dist/card/proof/nonce-cache.d.ts +67 -0
  60. package/dist/card/proof/nonce-cache.d.ts.map +1 -0
  61. package/dist/card/proof/nonce-cache.js +88 -0
  62. package/dist/card/proof/nonce-cache.js.map +1 -0
  63. package/dist/card/proof/signer.d.ts +32 -0
  64. package/dist/card/proof/signer.d.ts.map +1 -0
  65. package/dist/card/proof/signer.js +59 -0
  66. package/dist/card/proof/signer.js.map +1 -0
  67. package/dist/card/proof/types.d.ts +219 -0
  68. package/dist/card/proof/types.d.ts.map +1 -0
  69. package/dist/card/proof/types.js +87 -0
  70. package/dist/card/proof/types.js.map +1 -0
  71. package/dist/card/proof/verify.d.ts +27 -0
  72. package/dist/card/proof/verify.d.ts.map +1 -0
  73. package/dist/card/proof/verify.js +236 -0
  74. package/dist/card/proof/verify.js.map +1 -0
  75. package/dist/card/resolve.d.ts +97 -0
  76. package/dist/card/resolve.d.ts.map +1 -0
  77. package/dist/card/resolve.js +223 -0
  78. package/dist/card/resolve.js.map +1 -0
  79. package/dist/card/revocation.d.ts +96 -0
  80. package/dist/card/revocation.d.ts.map +1 -0
  81. package/dist/card/revocation.js +190 -0
  82. package/dist/card/revocation.js.map +1 -0
  83. package/dist/card/schema.d.ts +177 -0
  84. package/dist/card/schema.d.ts.map +1 -0
  85. package/dist/card/schema.js +119 -0
  86. package/dist/card/schema.js.map +1 -0
  87. package/dist/card/verify.d.ts +144 -0
  88. package/dist/card/verify.d.ts.map +1 -0
  89. package/dist/card/verify.js +132 -0
  90. package/dist/card/verify.js.map +1 -0
  91. package/dist/delegation/bitstring.d.ts +9 -7
  92. package/dist/delegation/bitstring.d.ts.map +1 -1
  93. package/dist/delegation/bitstring.js +70 -37
  94. package/dist/delegation/bitstring.js.map +1 -1
  95. package/dist/delegation/did-linkage.d.ts +23 -0
  96. package/dist/delegation/did-linkage.d.ts.map +1 -0
  97. package/dist/delegation/did-linkage.js +57 -0
  98. package/dist/delegation/did-linkage.js.map +1 -0
  99. package/dist/delegation/did-resolver-registry.d.ts +7 -0
  100. package/dist/delegation/did-resolver-registry.d.ts.map +1 -0
  101. package/dist/delegation/did-resolver-registry.js +20 -0
  102. package/dist/delegation/did-resolver-registry.js.map +1 -0
  103. package/dist/delegation/did-web-resolver.d.ts +29 -18
  104. package/dist/delegation/did-web-resolver.d.ts.map +1 -1
  105. package/dist/delegation/did-web-resolver.js +65 -35
  106. package/dist/delegation/did-web-resolver.js.map +1 -1
  107. package/dist/delegation/index.d.ts +3 -0
  108. package/dist/delegation/index.d.ts.map +1 -1
  109. package/dist/delegation/index.js +3 -0
  110. package/dist/delegation/index.js.map +1 -1
  111. package/dist/delegation/statuslist-manager.d.ts.map +1 -1
  112. package/dist/delegation/statuslist-manager.js +16 -1
  113. package/dist/delegation/statuslist-manager.js.map +1 -1
  114. package/dist/delegation/vc-jwt-verify.d.ts +61 -0
  115. package/dist/delegation/vc-jwt-verify.d.ts.map +1 -0
  116. package/dist/delegation/vc-jwt-verify.js +131 -0
  117. package/dist/delegation/vc-jwt-verify.js.map +1 -0
  118. package/dist/delegation/vc-verification-checks.d.ts +50 -0
  119. package/dist/delegation/vc-verification-checks.d.ts.map +1 -0
  120. package/dist/delegation/vc-verification-checks.js +212 -0
  121. package/dist/delegation/vc-verification-checks.js.map +1 -0
  122. package/dist/delegation/vc-verifier.d.ts +24 -61
  123. package/dist/delegation/vc-verifier.d.ts.map +1 -1
  124. package/dist/delegation/vc-verifier.js +57 -180
  125. package/dist/delegation/vc-verifier.js.map +1 -1
  126. package/dist/delegation/vc-verifier.types.d.ts +88 -0
  127. package/dist/delegation/vc-verifier.types.d.ts.map +1 -0
  128. package/dist/delegation/vc-verifier.types.js +9 -0
  129. package/dist/delegation/vc-verifier.types.js.map +1 -0
  130. package/dist/index.d.ts +8 -4
  131. package/dist/index.d.ts.map +1 -1
  132. package/dist/index.js +10 -3
  133. package/dist/index.js.map +1 -1
  134. package/dist/integrations/cheqd/dlr.d.ts +44 -0
  135. package/dist/integrations/cheqd/dlr.d.ts.map +1 -0
  136. package/dist/integrations/cheqd/dlr.js +86 -0
  137. package/dist/integrations/cheqd/dlr.js.map +1 -0
  138. package/dist/integrations/cheqd/index.d.ts +5 -0
  139. package/dist/integrations/cheqd/index.d.ts.map +1 -0
  140. package/dist/integrations/cheqd/index.js +5 -0
  141. package/dist/integrations/cheqd/index.js.map +1 -0
  142. package/dist/integrations/cheqd/linkage.d.ts +20 -0
  143. package/dist/integrations/cheqd/linkage.d.ts.map +1 -0
  144. package/dist/integrations/cheqd/linkage.js +32 -0
  145. package/dist/integrations/cheqd/linkage.js.map +1 -0
  146. package/dist/integrations/cheqd/registrar.d.ts +85 -0
  147. package/dist/integrations/cheqd/registrar.d.ts.map +1 -0
  148. package/dist/integrations/cheqd/registrar.js +304 -0
  149. package/dist/integrations/cheqd/registrar.js.map +1 -0
  150. package/dist/integrations/cheqd/resolver.d.ts +38 -0
  151. package/dist/integrations/cheqd/resolver.d.ts.map +1 -0
  152. package/dist/integrations/cheqd/resolver.js +156 -0
  153. package/dist/integrations/cheqd/resolver.js.map +1 -0
  154. package/dist/middleware/index.d.ts +2 -0
  155. package/dist/middleware/index.d.ts.map +1 -1
  156. package/dist/middleware/index.js +5 -0
  157. package/dist/middleware/index.js.map +1 -1
  158. package/dist/middleware/kya-os-transport.d.ts +2 -1
  159. package/dist/middleware/kya-os-transport.d.ts.map +1 -1
  160. package/dist/middleware/kya-os-transport.js +2 -1
  161. package/dist/middleware/kya-os-transport.js.map +1 -1
  162. package/dist/middleware/with-kya-os-server.d.ts +21 -4
  163. package/dist/middleware/with-kya-os-server.d.ts.map +1 -1
  164. package/dist/middleware/with-kya-os-server.js +4 -0
  165. package/dist/middleware/with-kya-os-server.js.map +1 -1
  166. package/dist/middleware/with-kya-os.config-types.d.ts +139 -0
  167. package/dist/middleware/with-kya-os.config-types.d.ts.map +1 -0
  168. package/dist/middleware/with-kya-os.config-types.js +9 -0
  169. package/dist/middleware/with-kya-os.config-types.js.map +1 -0
  170. package/dist/middleware/with-kya-os.d.ts +10 -238
  171. package/dist/middleware/with-kya-os.d.ts.map +1 -1
  172. package/dist/middleware/with-kya-os.delegation-gate.d.ts +19 -0
  173. package/dist/middleware/with-kya-os.delegation-gate.d.ts.map +1 -0
  174. package/dist/middleware/with-kya-os.delegation-gate.js +175 -0
  175. package/dist/middleware/with-kya-os.delegation-gate.js.map +1 -0
  176. package/dist/middleware/with-kya-os.delegation-verify.d.ts +51 -0
  177. package/dist/middleware/with-kya-os.delegation-verify.d.ts.map +1 -0
  178. package/dist/middleware/with-kya-os.delegation-verify.js +165 -0
  179. package/dist/middleware/with-kya-os.delegation-verify.js.map +1 -0
  180. package/dist/middleware/with-kya-os.deps.d.ts +40 -0
  181. package/dist/middleware/with-kya-os.deps.d.ts.map +1 -0
  182. package/dist/middleware/with-kya-os.deps.js +9 -0
  183. package/dist/middleware/with-kya-os.deps.js.map +1 -0
  184. package/dist/middleware/with-kya-os.grants.d.ts +30 -0
  185. package/dist/middleware/with-kya-os.grants.d.ts.map +1 -0
  186. package/dist/middleware/with-kya-os.grants.js +145 -0
  187. package/dist/middleware/with-kya-os.grants.js.map +1 -0
  188. package/dist/middleware/with-kya-os.helpers.d.ts +24 -0
  189. package/dist/middleware/with-kya-os.helpers.d.ts.map +1 -0
  190. package/dist/middleware/with-kya-os.helpers.js +57 -0
  191. package/dist/middleware/with-kya-os.helpers.js.map +1 -0
  192. package/dist/middleware/with-kya-os.js +65 -703
  193. package/dist/middleware/with-kya-os.js.map +1 -1
  194. package/dist/middleware/with-kya-os.policy-gate.d.ts +16 -0
  195. package/dist/middleware/with-kya-os.policy-gate.d.ts.map +1 -0
  196. package/dist/middleware/with-kya-os.policy-gate.js +98 -0
  197. package/dist/middleware/with-kya-os.policy-gate.js.map +1 -0
  198. package/dist/middleware/with-kya-os.protocol.d.ts +29 -0
  199. package/dist/middleware/with-kya-os.protocol.d.ts.map +1 -0
  200. package/dist/middleware/with-kya-os.protocol.js +121 -0
  201. package/dist/middleware/with-kya-os.protocol.js.map +1 -0
  202. package/dist/middleware/with-kya-os.session.d.ts +32 -0
  203. package/dist/middleware/with-kya-os.session.d.ts.map +1 -0
  204. package/dist/middleware/with-kya-os.session.js +201 -0
  205. package/dist/middleware/with-kya-os.session.js.map +1 -0
  206. package/dist/middleware/with-kya-os.types.d.ts +178 -0
  207. package/dist/middleware/with-kya-os.types.d.ts.map +1 -0
  208. package/dist/middleware/with-kya-os.types.js +13 -0
  209. package/dist/middleware/with-kya-os.types.js.map +1 -0
  210. package/dist/proof/generator.d.ts +21 -0
  211. package/dist/proof/generator.d.ts.map +1 -1
  212. package/dist/proof/generator.js +21 -0
  213. package/dist/proof/generator.js.map +1 -1
  214. package/dist/proof/index.d.ts +1 -1
  215. package/dist/proof/index.d.ts.map +1 -1
  216. package/dist/proof/index.js +1 -1
  217. package/dist/proof/index.js.map +1 -1
  218. package/dist/proof/verifier.d.ts +26 -3
  219. package/dist/proof/verifier.d.ts.map +1 -1
  220. package/dist/proof/verifier.js +54 -24
  221. package/dist/proof/verifier.js.map +1 -1
  222. package/dist/providers/grant-store.d.ts +10 -1
  223. package/dist/providers/grant-store.d.ts.map +1 -1
  224. package/dist/providers/grant-store.js.map +1 -1
  225. package/dist/providers/runtime-fetch.d.ts +8 -0
  226. package/dist/providers/runtime-fetch.d.ts.map +1 -1
  227. package/dist/providers/runtime-fetch.js +17 -0
  228. package/dist/providers/runtime-fetch.js.map +1 -1
  229. package/dist/providers/web-crypto.d.ts.map +1 -1
  230. package/dist/providers/web-crypto.js +15 -7
  231. package/dist/providers/web-crypto.js.map +1 -1
  232. package/dist/session/index.d.ts +1 -0
  233. package/dist/session/index.d.ts.map +1 -1
  234. package/dist/session/index.js +1 -0
  235. package/dist/session/index.js.map +1 -1
  236. package/dist/session/manager.d.ts +17 -6
  237. package/dist/session/manager.d.ts.map +1 -1
  238. package/dist/session/manager.js +16 -26
  239. package/dist/session/manager.js.map +1 -1
  240. package/dist/session/session-store.d.ts +78 -0
  241. package/dist/session/session-store.d.ts.map +1 -0
  242. package/dist/session/session-store.js +79 -0
  243. package/dist/session/session-store.js.map +1 -0
  244. package/dist/types/protocol.d.ts +9 -3
  245. package/dist/types/protocol.d.ts.map +1 -1
  246. package/dist/types/protocol.js.map +1 -1
  247. package/dist/utils/guards.d.ts +2 -0
  248. package/dist/utils/guards.d.ts.map +1 -0
  249. package/dist/utils/guards.js +4 -0
  250. package/dist/utils/guards.js.map +1 -0
  251. package/dist/utils/index.d.ts +3 -0
  252. package/dist/utils/index.d.ts.map +1 -1
  253. package/dist/utils/index.js +3 -0
  254. package/dist/utils/index.js.map +1 -1
  255. package/dist/utils/ip-classifier.d.ts +12 -0
  256. package/dist/utils/ip-classifier.d.ts.map +1 -0
  257. package/dist/utils/ip-classifier.js +153 -0
  258. package/dist/utils/ip-classifier.js.map +1 -0
  259. package/dist/utils/safe-fetch-transports.d.ts +40 -0
  260. package/dist/utils/safe-fetch-transports.d.ts.map +1 -0
  261. package/dist/utils/safe-fetch-transports.js +121 -0
  262. package/dist/utils/safe-fetch-transports.js.map +1 -0
  263. package/dist/utils/safe-fetch-types.d.ts +66 -0
  264. package/dist/utils/safe-fetch-types.d.ts.map +1 -0
  265. package/dist/utils/safe-fetch-types.js +10 -0
  266. package/dist/utils/safe-fetch-types.js.map +1 -0
  267. package/dist/utils/safe-fetch.d.ts +40 -0
  268. package/dist/utils/safe-fetch.d.ts.map +1 -0
  269. package/dist/utils/safe-fetch.js +188 -0
  270. package/dist/utils/safe-fetch.js.map +1 -0
  271. package/dist/utils/statuslist-purpose.d.ts +12 -0
  272. package/dist/utils/statuslist-purpose.d.ts.map +1 -0
  273. package/dist/utils/statuslist-purpose.js +19 -0
  274. package/dist/utils/statuslist-purpose.js.map +1 -0
  275. package/dist/utils/url.d.ts +2 -0
  276. package/dist/utils/url.d.ts.map +1 -0
  277. package/dist/utils/url.js +8 -0
  278. package/dist/utils/url.js.map +1 -0
  279. package/package.json +25 -5
  280. package/schemas/README.md +2 -1
  281. package/schemas/card-delegation-credential.json +239 -0
  282. package/schemas/kya-os-card.schema.json +284 -0
@@ -30,6 +30,7 @@
30
30
  * ```
31
31
  */
32
32
  import { FetchProvider } from "./base.js";
33
+ import { type DIDResolverRegistry } from "../delegation/did-resolver-registry.js";
33
34
  import type { DIDDocument } from "../delegation/vc-verifier.js";
34
35
  import type { StatusList2021Credential, DelegationRecord } from "../types/protocol.js";
35
36
  export interface RuntimeFetchProviderOptions {
@@ -39,10 +40,17 @@ export interface RuntimeFetchProviderOptions {
39
40
  * trusted internal deployments.
40
41
  */
41
42
  allowPrivateNetworkHosts?: boolean;
43
+ /**
44
+ * Optional DID method resolver registry. Entries dispatch by DID method before
45
+ * built-in did:key and did:web fallback. A factory receives this fetch provider
46
+ * so network-backed resolvers can share the same fetch implementation.
47
+ */
48
+ didResolvers?: DIDResolverRegistry;
42
49
  }
43
50
  export declare class RuntimeFetchProvider extends FetchProvider {
44
51
  private readonly didKeyResolver;
45
52
  private didWebResolver;
53
+ private readonly didResolvers;
46
54
  private readonly allowPrivateNetworkHosts;
47
55
  constructor(options?: RuntimeFetchProviderOptions);
48
56
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-fetch.d.ts","sourceRoot":"","sources":["../../src/providers/runtime-fetch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAO1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EACV,wBAAwB,EACxB,gBAAgB,EACjB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,WAAW,2BAA2B;IAC1C;;;;OAIG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC;AAED,qBAAa,oBAAqB,SAAQ,aAAa;IACrD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA0B;IACzD,OAAO,CAAC,cAAc,CAAsD;IAC5E,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAU;gBAEvC,OAAO,CAAC,EAAE,2BAA2B;IAMjD;;;;;OAKG;IACG,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAkB1D;;;;;OAKG;IACG,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,GAAG,IAAI,CAAC;IAgB5E;;;;OAIG;IACG,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAIpE,yEAAyE;IACnE,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;IAO9D,iFAAiF;IACjF,OAAO,CAAC,eAAe;CAYxB;AAED;;;;;;;GAOG;AACH,qBAAa,iBAAkB,SAAQ,aAAa;IAC5C,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAGrD,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,GAAG,IAAI,CAAC;IAGvE,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAG9D,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;CAGjE"}
1
+ {"version":3,"file":"runtime-fetch.d.ts","sourceRoot":"","sources":["../../src/providers/runtime-fetch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAO1C,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,wCAAwC,CAAC;AAEhD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EACV,wBAAwB,EACxB,gBAAgB,EACjB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,WAAW,2BAA2B;IAC1C;;;;OAIG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC;;;;OAIG;IACH,YAAY,CAAC,EAAE,mBAAmB,CAAC;CACpC;AAED,qBAAa,oBAAqB,SAAQ,aAAa;IACrD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA0B;IACzD,OAAO,CAAC,cAAc,CAAsD;IAC5E,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwE;IACrG,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAU;gBAEvC,OAAO,CAAC,EAAE,2BAA2B;IAOjD;;;;;OAKG;IACG,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IA+B1D;;;;;OAKG;IACG,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,GAAG,IAAI,CAAC;IAgB5E;;;;OAIG;IACG,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAIpE,yEAAyE;IACnE,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;IAO9D,iFAAiF;IACjF,OAAO,CAAC,eAAe;CAYxB;AAED;;;;;;;GAOG;AACH,qBAAa,iBAAkB,SAAQ,aAAa;IAC5C,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAGrD,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,GAAG,IAAI,CAAC;IAGvE,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAG9D,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;CAGjE"}
@@ -32,14 +32,18 @@
32
32
  import { FetchProvider } from "./base.js";
33
33
  import { createDidKeyResolver } from "../delegation/did-key-resolver.js";
34
34
  import { createDidWebResolver, isDidWeb, didWebToUrl, } from "../delegation/did-web-resolver.js";
35
+ import { buildDidResolverRegistry, } from "../delegation/did-resolver-registry.js";
36
+ import { getDidMethod } from "../utils/did-helpers.js";
35
37
  export class RuntimeFetchProvider extends FetchProvider {
36
38
  didKeyResolver = createDidKeyResolver();
37
39
  didWebResolver;
40
+ didResolvers;
38
41
  allowPrivateNetworkHosts;
39
42
  constructor(options) {
40
43
  super();
41
44
  this.allowPrivateNetworkHosts =
42
45
  options?.allowPrivateNetworkHosts ?? false;
46
+ this.didResolvers = buildDidResolverRegistry(options?.didResolvers, this);
43
47
  }
44
48
  /**
45
49
  * Resolve a DID to its DID Document. did:key is decoded locally (no network);
@@ -48,6 +52,19 @@ export class RuntimeFetchProvider extends FetchProvider {
48
52
  * resolution failure (never throws).
49
53
  */
50
54
  async resolveDID(did) {
55
+ const method = getDidMethod(did);
56
+ const configuredResolver = method ? this.didResolvers[method] : undefined;
57
+ if (configuredResolver) {
58
+ try {
59
+ const resolved = await configuredResolver.resolve(did);
60
+ if (resolved) {
61
+ return resolved;
62
+ }
63
+ }
64
+ catch {
65
+ return null;
66
+ }
67
+ }
51
68
  if (did.startsWith("did:key:")) {
52
69
  return this.didKeyResolver.resolve(did);
53
70
  }
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-fetch.js","sourceRoot":"","sources":["../../src/providers/runtime-fetch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime-fetch.js","sourceRoot":"","sources":["../../src/providers/runtime-fetch.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"web-crypto.d.ts","sourceRoot":"","sources":["../../src/providers/web-crypto.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AA4B3C,qBAAa,iBAAkB,SAAQ,cAAc;IAC7C,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAYrE,MAAM,CACV,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE,UAAU,EACrB,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,OAAO,CAAC;IAWb,eAAe,IAAI,OAAO,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAerE,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAKvC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;CAGvD"}
1
+ {"version":3,"file":"web-crypto.d.ts","sourceRoot":"","sources":["../../src/providers/web-crypto.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AA8C3C,qBAAa,iBAAkB,SAAQ,cAAc;IAC7C,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAYrE,MAAM,CACV,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE,UAAU,EACrB,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,OAAO,CAAC;IAsBb,eAAe,IAAI,OAAO,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAarE,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAKvC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;CAGvD"}
@@ -43,6 +43,16 @@ function toHex(bytes) {
43
43
  out += b.toString(16).padStart(2, "0");
44
44
  return out;
45
45
  }
46
+ // WebCrypto's BufferSource requires a Uint8Array backed by a concrete
47
+ // ArrayBuffer (not the wider ArrayBufferLike a bare `Uint8Array` type
48
+ // admits). `.slice()` always allocates a fresh ArrayBuffer, so it doubles
49
+ // as the narrowing conversion.
50
+ function toBufferSource(bytes) {
51
+ return bytes.slice();
52
+ }
53
+ function isKeyPair(key) {
54
+ return "privateKey" in key && "publicKey" in key;
55
+ }
46
56
  export class WebCryptoProvider extends CryptoProvider {
47
57
  async sign(data, privateKeyBase64) {
48
58
  const raw = base64ToBytes(privateKeyBase64);
@@ -52,14 +62,14 @@ export class WebCryptoProvider extends CryptoProvider {
52
62
  pkcs8.set(ED25519_PKCS8_PREFIX, 0);
53
63
  pkcs8.set(seed, ED25519_PKCS8_PREFIX.length);
54
64
  const key = await getCrypto().subtle.importKey("pkcs8", pkcs8, { name: ALG }, false, ["sign"]);
55
- const sig = await getCrypto().subtle.sign({ name: ALG }, key, data);
65
+ const sig = await getCrypto().subtle.sign({ name: ALG }, key, toBufferSource(data));
56
66
  return new Uint8Array(sig);
57
67
  }
58
68
  async verify(data, signature, publicKeyBase64) {
59
69
  try {
60
70
  const raw = base64ToBytes(publicKeyBase64);
61
- const key = await getCrypto().subtle.importKey("raw", raw, { name: ALG }, false, ["verify"]);
62
- return await getCrypto().subtle.verify({ name: ALG }, key, signature, data);
71
+ const key = await getCrypto().subtle.importKey("raw", toBufferSource(raw), { name: ALG }, false, ["verify"]);
72
+ return await getCrypto().subtle.verify({ name: ALG }, key, toBufferSource(signature), toBufferSource(data));
63
73
  }
64
74
  catch {
65
75
  // Never throw on a bad key/signature — verification simply fails.
@@ -68,9 +78,7 @@ export class WebCryptoProvider extends CryptoProvider {
68
78
  }
69
79
  async generateKeyPair() {
70
80
  const kp = await getCrypto().subtle.generateKey({ name: ALG }, true, ["sign", "verify"]);
71
- // generateKey returns CryptoKey | CryptoKeyPair; narrow to the pair without
72
- // naming the DOM type (this file compiles without a DOM lib — see getCrypto).
73
- if (!("publicKey" in kp)) {
81
+ if (!isKeyPair(kp)) {
74
82
  throw new Error("WebCryptoProvider: expected an Ed25519 key pair from generateKey");
75
83
  }
76
84
  const rawPub = new Uint8Array(await getCrypto().subtle.exportKey("raw", kp.publicKey));
@@ -81,7 +89,7 @@ export class WebCryptoProvider extends CryptoProvider {
81
89
  return { privateKey: bytesToBase64(seed), publicKey: bytesToBase64(rawPub) };
82
90
  }
83
91
  async hash(data) {
84
- const digest = new Uint8Array(await getCrypto().subtle.digest("SHA-256", data));
92
+ const digest = new Uint8Array(await getCrypto().subtle.digest("SHA-256", toBufferSource(data)));
85
93
  return `sha256:${toHex(digest)}`;
86
94
  }
87
95
  async randomBytes(length) {
@@ -1 +1 @@
1
- {"version":3,"file":"web-crypto.js","sourceRoot":"","sources":["../../src/providers/web-crypto.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"web-crypto.js","sourceRoot":"","sources":["../../src/providers/web-crypto.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
1
  export { SessionManager, createHandshakeRequest, validateHandshakeFormat, type SessionConfig, type HandshakeResult, } from './manager.js';
2
+ export { SessionStore, MemorySessionStore, type MemorySessionStoreOptions, } from './session-store.js';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/session/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,sBAAsB,EACtB,uBAAuB,EACvB,KAAK,aAAa,EAClB,KAAK,eAAe,GACrB,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/session/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,sBAAsB,EACtB,uBAAuB,EACvB,KAAK,aAAa,EAClB,KAAK,eAAe,GACrB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,KAAK,yBAAyB,GAC/B,MAAM,oBAAoB,CAAC"}
@@ -1,2 +1,3 @@
1
1
  export { SessionManager, createHandshakeRequest, validateHandshakeFormat, } from './manager.js';
2
+ export { SessionStore, MemorySessionStore, } from './session-store.js';
2
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/session/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,sBAAsB,EACtB,uBAAuB,GAGxB,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/session/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,sBAAsB,EACtB,uBAAuB,GAGxB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,YAAY,EACZ,kBAAkB,GAEnB,MAAM,oBAAoB,CAAC"}
@@ -11,6 +11,7 @@
11
11
  import { type KyaOsErrorCode } from "../errors.js";
12
12
  import type { HandshakeRequest, SessionContext, NonceCache, MetaPolicy } from '../types/protocol.js';
13
13
  import type { CryptoProvider } from '../providers/base.js';
14
+ import { SessionStore } from './session-store.js';
14
15
  export interface SessionConfig {
15
16
  timestampSkewSeconds?: number;
16
17
  sessionTtlMinutes?: number;
@@ -19,7 +20,20 @@ export interface SessionConfig {
19
20
  serverDid?: string;
20
21
  /** Maximum number of concurrent sessions. Oldest sessions are evicted when exceeded. Default: 10000 */
21
22
  maxSessions?: number;
22
- /** Policy for _meta field validation in proof verification. Default: 'strict' */
23
+ /**
24
+ * Optional pluggable session store. Defaults to an in-memory
25
+ * {@link MemorySessionStore} that reproduces the prior single-process
26
+ * behavior. Inject a durable {@link SessionStore} (Redis / Durable Object /
27
+ * DB) to make sessions survive restarts and resolve across instances (enables
28
+ * the wallet-less cross-instance retry + proof-nonce continuity).
29
+ */
30
+ sessionStore?: SessionStore;
31
+ /**
32
+ * Policy for non-KYA-OS `_meta` keys during proof verification (SEP-414).
33
+ * Default 'strict' IGNORES foreign keys (never hashed, trusted, or rejected);
34
+ * 'allow-extensions' surfaces them. Neither rejects coexisting reserved keys
35
+ * such as `io.modelcontextprotocol/*` or `traceparent`. See {@link MetaPolicy}.
36
+ */
23
37
  metaPolicy?: MetaPolicy;
24
38
  }
25
39
  export interface HandshakeResult {
@@ -34,9 +48,7 @@ export interface HandshakeResult {
34
48
  export declare class SessionManager {
35
49
  private config;
36
50
  private cryptoProvider;
37
- private sessions;
38
- private sessionInsertionOrder;
39
- private maxSessions;
51
+ private sessionStore;
40
52
  constructor(cryptoProvider: CryptoProvider, config?: SessionConfig);
41
53
  setServerDid(serverDid: string): void;
42
54
  /**
@@ -67,7 +79,6 @@ export declare class SessionManager {
67
79
  private normalizeClientInfoString;
68
80
  private buildClientInfo;
69
81
  static generateNonce(): string;
70
- private evictIfNeeded;
71
82
  cleanup(): Promise<void>;
72
83
  getStats(): {
73
84
  activeSessions: number;
@@ -78,7 +89,7 @@ export declare class SessionManager {
78
89
  cacheType: string;
79
90
  };
80
91
  };
81
- clearSessions(): void;
92
+ clearSessions(): Promise<void>;
82
93
  }
83
94
  export declare function createHandshakeRequest(audience: string): HandshakeRequest;
84
95
  export declare function validateHandshakeFormat(request: unknown): request is HandshakeRequest;
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/session/manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAsB,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AACvE,OAAO,KAAK,EACV,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,UAAU,EACX,MAAM,sBAAsB,CAAC;AAK9B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAI3D,MAAM,WAAW,aAAa;IAC5B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uGAAuG;IACvG,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iFAAiF;IACjF,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,cAAc,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAIZ;IACF,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,QAAQ,CAAqC;IACrD,OAAO,CAAC,qBAAqB,CAAgB;IAC7C,OAAO,CAAC,WAAW,CAAS;gBAEhB,cAAc,EAAE,cAAc,EAAE,MAAM,GAAE,aAAkB;IAuBtE,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAIrC;;;;;;;;;;OAUG;IACG,iBAAiB,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;IAsF5E;;;;;;;;;OASG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;YA2BrD,iBAAiB;YAWjB,gBAAgB;IAQ9B,OAAO,CAAC,yBAAyB;YAMnB,eAAe;IA2B7B,MAAM,CAAC,aAAa,IAAI,MAAM;IAa9B,OAAO,CAAC,aAAa;IASf,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA0B9B,QAAQ,IAAI;QACV,cAAc,EAAE,MAAM,CAAC;QACvB,MAAM,EAAE;YACN,oBAAoB,EAAE,MAAM,CAAC;YAC7B,iBAAiB,EAAE,MAAM,CAAC;YAC1B,uBAAuB,CAAC,EAAE,MAAM,CAAC;YACjC,SAAS,EAAE,MAAM,CAAC;SACnB,CAAC;KACH;IAYD,aAAa,IAAI,IAAI;CAItB;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,CAMzE;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,gBAAgB,CAYrF"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/session/manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAsB,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AACvE,OAAO,KAAK,EACV,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,UAAU,EACX,MAAM,sBAAsB,CAAC;AAK9B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,EAAE,YAAY,EAAsB,MAAM,oBAAoB,CAAC;AAGtE,MAAM,WAAW,aAAa;IAC5B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uGAAuG;IACvG,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B;;;;;OAKG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,cAAc,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAIZ;IACF,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,YAAY,CAAe;gBAEvB,cAAc,EAAE,cAAc,EAAE,MAAM,GAAE,aAAkB;IAyBtE,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAIrC;;;;;;;;;;OAUG;IACG,iBAAiB,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;IAoF5E;;;;;;;;;OASG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;YA2BrD,iBAAiB;YAWjB,gBAAgB;IAQ9B,OAAO,CAAC,yBAAyB;YAMnB,eAAe;IA2B7B,MAAM,CAAC,aAAa,IAAI,MAAM;IAaxB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAuB9B,QAAQ,IAAI;QACV,cAAc,EAAE,MAAM,CAAC;QACvB,MAAM,EAAE;YACN,oBAAoB,EAAE,MAAM,CAAC;YAC7B,iBAAiB,EAAE,MAAM,CAAC;YAC1B,uBAAuB,CAAC,EAAE,MAAM,CAAC;YACjC,SAAS,EAAE,MAAM,CAAC;SACnB,CAAC;KACH;IAYK,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;CAGrC;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,CAMzE;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,gBAAgB,CAYrF"}
@@ -11,16 +11,17 @@
11
11
  import { KYA_OS_ERROR_CODES } from "../errors.js";
12
12
  import { AUTH_NONCE_TTL_MS, ANON_NONCE_TTL_MS, } from '../types/protocol.js';
13
13
  import { MemoryNonceCacheProvider } from '../providers/memory.js';
14
+ import { MemorySessionStore } from './session-store.js';
14
15
  import { logger } from '../logging/index.js';
15
16
  export class SessionManager {
16
17
  config;
17
18
  cryptoProvider;
18
- sessions = new Map();
19
- sessionInsertionOrder = [];
20
- maxSessions;
19
+ sessionStore;
21
20
  constructor(cryptoProvider, config = {}) {
22
21
  this.cryptoProvider = cryptoProvider;
23
- this.maxSessions = config.maxSessions ?? 10_000;
22
+ this.sessionStore =
23
+ config.sessionStore ??
24
+ new MemorySessionStore({ maxSessions: config.maxSessions ?? 10_000 });
24
25
  this.config = {
25
26
  timestampSkewSeconds: config.timestampSkewSeconds ?? 120,
26
27
  sessionTtlMinutes: config.sessionTtlMinutes ?? 30,
@@ -107,9 +108,7 @@ export class SessionManager {
107
108
  ...(this.config.serverDid && { serverDid: this.config.serverDid }),
108
109
  ...(clientInfo && { clientInfo }),
109
110
  };
110
- this.evictIfNeeded();
111
- this.sessions.set(sessionId, session);
112
- this.sessionInsertionOrder.push(sessionId);
111
+ await this.sessionStore.set(sessionId, session);
113
112
  return { success: true, session };
114
113
  }
115
114
  catch (error) {
@@ -133,26 +132,26 @@ export class SessionManager {
133
132
  * @returns Session context if valid, null if expired or not found
134
133
  */
135
134
  async getSession(sessionId) {
136
- const session = this.sessions.get(sessionId);
135
+ const session = await this.sessionStore.get(sessionId);
137
136
  if (!session)
138
137
  return null;
139
138
  const now = Math.floor(Date.now() / 1000);
140
139
  const idleTimeSeconds = now - session.lastActivity;
141
140
  const maxIdleSeconds = session.ttlMinutes * 60;
142
141
  if (idleTimeSeconds > maxIdleSeconds) {
143
- this.sessions.delete(sessionId);
142
+ await this.sessionStore.delete(sessionId);
144
143
  return null;
145
144
  }
146
145
  if (this.config.absoluteSessionLifetime !== undefined) {
147
146
  const sessionAgeSeconds = now - session.createdAt;
148
147
  const maxAgeSeconds = this.config.absoluteSessionLifetime * 60;
149
148
  if (sessionAgeSeconds > maxAgeSeconds) {
150
- this.sessions.delete(sessionId);
149
+ await this.sessionStore.delete(sessionId);
151
150
  return null;
152
151
  }
153
152
  }
154
153
  session.lastActivity = now;
155
- this.sessions.set(sessionId, session);
154
+ await this.sessionStore.set(sessionId, session);
156
155
  return session;
157
156
  }
158
157
  async generateSessionId() {
@@ -210,17 +209,9 @@ export class SessionManager {
210
209
  .replace(/\//g, '_')
211
210
  .replace(/=/g, '');
212
211
  }
213
- evictIfNeeded() {
214
- while (this.sessions.size >= this.maxSessions && this.sessionInsertionOrder.length > 0) {
215
- const oldest = this.sessionInsertionOrder.shift();
216
- if (oldest) {
217
- this.sessions.delete(oldest);
218
- }
219
- }
220
- }
221
212
  async cleanup() {
222
213
  const now = Math.floor(Date.now() / 1000);
223
- for (const [sessionId, session] of this.sessions.entries()) {
214
+ for (const [sessionId, session] of await this.sessionStore.entries()) {
224
215
  const idleTimeSeconds = now - session.lastActivity;
225
216
  const maxIdleSeconds = session.ttlMinutes * 60;
226
217
  let expired = idleTimeSeconds > maxIdleSeconds;
@@ -230,15 +221,15 @@ export class SessionManager {
230
221
  expired = sessionAgeSeconds > maxAgeSeconds;
231
222
  }
232
223
  if (expired) {
233
- this.sessions.delete(sessionId);
224
+ await this.sessionStore.delete(sessionId);
234
225
  }
235
226
  }
236
- this.sessionInsertionOrder = this.sessionInsertionOrder.filter(id => this.sessions.has(id));
227
+ await this.sessionStore.cleanup();
237
228
  await this.config.nonceCache.cleanup();
238
229
  }
239
230
  getStats() {
240
231
  return {
241
- activeSessions: this.sessions.size,
232
+ activeSessions: this.sessionStore.size(),
242
233
  config: {
243
234
  timestampSkewSeconds: this.config.timestampSkewSeconds,
244
235
  sessionTtlMinutes: this.config.sessionTtlMinutes,
@@ -247,9 +238,8 @@ export class SessionManager {
247
238
  },
248
239
  };
249
240
  }
250
- clearSessions() {
251
- this.sessions.clear();
252
- this.sessionInsertionOrder = [];
241
+ async clearSessions() {
242
+ await this.sessionStore.clear();
253
243
  }
254
244
  }
255
245
  export function createHandshakeRequest(audience) {
@@ -1 +1 @@
1
- {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/session/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/session/manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * SessionStore — the optional provider seam for KYA-OS session persistence.
3
+ *
4
+ * The KYA-OS session is a convenience layer (a stable context for proof-nonce
5
+ * generation and wallet-less `getBySession` grant resolution), NOT the durable
6
+ * authority — that is the per-request holder-of-key proof (§7) and the
7
+ * DID-anchored grant (§6). So this seam is OPTIONAL: it defaults to an in-memory
8
+ * implementation wrapping a Map, exactly reproducing the prior single-process
9
+ * behavior. Inject a Redis / Durable Object / database-backed store to make
10
+ * sessions (and therefore the wallet-less cross-instance retry and proof-nonce
11
+ * continuity) survive restarts and resolve across load-balanced instances —
12
+ * mirroring the {@link NonceCacheProvider} / GrantStore precedent.
13
+ *
14
+ * Expiry POLICY (idle TTL, absolute lifetime) lives in the SessionManager, which
15
+ * owns the session config; the store is plain persistence. The manager sweeps
16
+ * expired records by iterating {@link SessionStore.entries} and deleting them, so
17
+ * a durable backing MAY instead rely on a backend TTL and return `[]` from
18
+ * `entries()`.
19
+ */
20
+ import type { SessionContext } from '../types/protocol.js';
21
+ /**
22
+ * Persistence seam for KYA-OS sessions. Implementations store a session by id,
23
+ * read it back, delete it, enumerate for the manager's TTL sweep, and report a
24
+ * best-effort count.
25
+ */
26
+ export declare abstract class SessionStore {
27
+ /** Read a session by id, or undefined if absent. */
28
+ abstract get(sessionId: string): Promise<SessionContext | undefined>;
29
+ /** Persist (or replace) a session. Implementations enforce their own capacity. */
30
+ abstract set(sessionId: string, session: SessionContext): Promise<void>;
31
+ /** Delete a session by id. */
32
+ abstract delete(sessionId: string): Promise<void>;
33
+ /**
34
+ * Snapshot of all (sessionId, session) entries — the SessionManager's TTL
35
+ * sweep iterates this. Durable backings that rely on a backend TTL MAY return
36
+ * an empty array.
37
+ */
38
+ abstract entries(): Promise<Array<[string, SessionContext]>>;
39
+ /** Maintenance hook (e.g. compact bookkeeping / drop expired). */
40
+ abstract cleanup(): Promise<void>;
41
+ /** Remove all sessions (admin / test reset). */
42
+ abstract clear(): Promise<void>;
43
+ /**
44
+ * Best-effort current count for diagnostics: exact for the in-memory impl,
45
+ * a last-known/approximate value for durable backings.
46
+ */
47
+ abstract size(): number;
48
+ }
49
+ export interface MemorySessionStoreOptions {
50
+ /**
51
+ * Maximum concurrent sessions. The oldest (by insertion order) are evicted
52
+ * when the limit is reached, matching the prior SessionManager behavior.
53
+ * Default: 10000.
54
+ */
55
+ maxSessions?: number;
56
+ }
57
+ /**
58
+ * In-memory {@link SessionStore} — the dev/reference implementation, wrapping a
59
+ * Map plus insertion-order eviction. This is the default and reproduces the
60
+ * prior single-process session behavior bit-for-bit. NOT for multi-instance
61
+ * deployments: sessions are lost on restart and not shared across instances.
62
+ */
63
+ export declare class MemorySessionStore extends SessionStore {
64
+ private readonly sessions;
65
+ private insertionOrder;
66
+ private readonly maxSessions;
67
+ constructor(options?: MemorySessionStoreOptions);
68
+ get(sessionId: string): Promise<SessionContext | undefined>;
69
+ set(sessionId: string, session: SessionContext): Promise<void>;
70
+ delete(sessionId: string): Promise<void>;
71
+ entries(): Promise<Array<[string, SessionContext]>>;
72
+ cleanup(): Promise<void>;
73
+ clear(): Promise<void>;
74
+ size(): number;
75
+ /** Evict oldest sessions (insertion order) until below capacity. */
76
+ private evictIfNeeded;
77
+ }
78
+ //# sourceMappingURL=session-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-store.d.ts","sourceRoot":"","sources":["../../src/session/session-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D;;;;GAIG;AACH,8BAAsB,YAAY;IAChC,oDAAoD;IACpD,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IACpE,kFAAkF;IAClF,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IACvE,8BAA8B;IAC9B,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IACjD;;;;OAIG;IACH,QAAQ,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;IAC5D,kEAAkE;IAClE,QAAQ,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IACjC,gDAAgD;IAChD,QAAQ,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAC/B;;;OAGG;IACH,QAAQ,CAAC,IAAI,IAAI,MAAM;CACxB;AAED,MAAM,WAAW,yBAAyB;IACxC;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;GAKG;AACH,qBAAa,kBAAmB,SAAQ,YAAY;IAClD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqC;IAC9D,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;gBAEzB,OAAO,GAAE,yBAA8B;IAK7C,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAI3D,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ9D,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMxC,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;IAInD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAK5B,IAAI,IAAI,MAAM;IAId,oEAAoE;IACpE,OAAO,CAAC,aAAa;CAOtB"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * SessionStore — the optional provider seam for KYA-OS session persistence.
3
+ *
4
+ * The KYA-OS session is a convenience layer (a stable context for proof-nonce
5
+ * generation and wallet-less `getBySession` grant resolution), NOT the durable
6
+ * authority — that is the per-request holder-of-key proof (§7) and the
7
+ * DID-anchored grant (§6). So this seam is OPTIONAL: it defaults to an in-memory
8
+ * implementation wrapping a Map, exactly reproducing the prior single-process
9
+ * behavior. Inject a Redis / Durable Object / database-backed store to make
10
+ * sessions (and therefore the wallet-less cross-instance retry and proof-nonce
11
+ * continuity) survive restarts and resolve across load-balanced instances —
12
+ * mirroring the {@link NonceCacheProvider} / GrantStore precedent.
13
+ *
14
+ * Expiry POLICY (idle TTL, absolute lifetime) lives in the SessionManager, which
15
+ * owns the session config; the store is plain persistence. The manager sweeps
16
+ * expired records by iterating {@link SessionStore.entries} and deleting them, so
17
+ * a durable backing MAY instead rely on a backend TTL and return `[]` from
18
+ * `entries()`.
19
+ */
20
+ /**
21
+ * Persistence seam for KYA-OS sessions. Implementations store a session by id,
22
+ * read it back, delete it, enumerate for the manager's TTL sweep, and report a
23
+ * best-effort count.
24
+ */
25
+ export class SessionStore {
26
+ }
27
+ /**
28
+ * In-memory {@link SessionStore} — the dev/reference implementation, wrapping a
29
+ * Map plus insertion-order eviction. This is the default and reproduces the
30
+ * prior single-process session behavior bit-for-bit. NOT for multi-instance
31
+ * deployments: sessions are lost on restart and not shared across instances.
32
+ */
33
+ export class MemorySessionStore extends SessionStore {
34
+ sessions = new Map();
35
+ insertionOrder = [];
36
+ maxSessions;
37
+ constructor(options = {}) {
38
+ super();
39
+ this.maxSessions = options.maxSessions ?? 10_000;
40
+ }
41
+ async get(sessionId) {
42
+ return this.sessions.get(sessionId);
43
+ }
44
+ async set(sessionId, session) {
45
+ if (!this.sessions.has(sessionId)) {
46
+ this.evictIfNeeded();
47
+ this.insertionOrder.push(sessionId);
48
+ }
49
+ this.sessions.set(sessionId, session);
50
+ }
51
+ async delete(sessionId) {
52
+ this.sessions.delete(sessionId);
53
+ // insertionOrder is compacted lazily in cleanup()/evictIfNeeded — a deleted
54
+ // id left behind is simply skipped, never resurrected.
55
+ }
56
+ async entries() {
57
+ return [...this.sessions.entries()];
58
+ }
59
+ async cleanup() {
60
+ this.insertionOrder = this.insertionOrder.filter((id) => this.sessions.has(id));
61
+ }
62
+ async clear() {
63
+ this.sessions.clear();
64
+ this.insertionOrder = [];
65
+ }
66
+ size() {
67
+ return this.sessions.size;
68
+ }
69
+ /** Evict oldest sessions (insertion order) until below capacity. */
70
+ evictIfNeeded() {
71
+ while (this.sessions.size >= this.maxSessions && this.insertionOrder.length > 0) {
72
+ const oldest = this.insertionOrder.shift();
73
+ // Skip ids already deleted; only a live id counts as an eviction.
74
+ if (oldest !== undefined)
75
+ this.sessions.delete(oldest);
76
+ }
77
+ }
78
+ }
79
+ //# sourceMappingURL=session-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-store.js","sourceRoot":"","sources":["../../src/session/session-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH;;;;GAIG;AACH,MAAM,OAAgB,YAAY;CAsBjC;AAWD;;;;;GAKG;AACH,MAAM,OAAO,kBAAmB,SAAQ,YAAY;IACjC,QAAQ,GAAG,IAAI,GAAG,EAA0B,CAAC;IACtD,cAAc,GAAa,EAAE,CAAC;IACrB,WAAW,CAAS;IAErC,YAAY,UAAqC,EAAE;QACjD,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,MAAM,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,SAAiB;QACzB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,SAAiB,EAAE,OAAuB;QAClD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtC,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,SAAiB;QAC5B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAChC,4EAA4E;QAC5E,uDAAuD;IACzD,CAAC;IAED,KAAK,CAAC,OAAO;QACX,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAClF,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;IAC3B,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC5B,CAAC;IAED,oEAAoE;IAC5D,aAAa;QACnB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChF,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;YAC3C,kEAAkE;YAClE,IAAI,MAAM,KAAK,SAAS;gBAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;CACF"}
@@ -220,9 +220,15 @@ export declare const AUTH_NONCE_TTL_MS = 120000;
220
220
  /** Nonce TTL for anonymous handshakes (without agentDid) */
221
221
  export declare const ANON_NONCE_TTL_MS = 60000;
222
222
  /**
223
- * Policy for _meta field validation in proof verification.
224
- * - 'strict': reject responses with _meta keys other than 'proof'
225
- * - 'allow-extensions': permit additional keys in _meta (not included in hashes)
223
+ * Policy for non-KYA-OS `_meta` keys during proof verification (MCP 2026-07-28 /
224
+ * SEP-414). `_meta` is shared real estate, so both policies share one zero-trust
225
+ * boundary — only the KYA-OS proof key is ever hashed or trusted, and no foreign
226
+ * key is ever a cause for rejection.
227
+ * - 'strict' (default): non-KYA-OS keys (including reserved
228
+ * `io.modelcontextprotocol/*` and W3C trace-context keys) are ignored — never
229
+ * hashed, trusted, or rejected.
230
+ * - 'allow-extensions': identical trust boundary, but non-KYA-OS keys are
231
+ * surfaced to the application layer instead of discarded.
226
232
  */
227
233
  export type MetaPolicy = 'strict' | 'allow-extensions';
228
234
  export interface ProofMeta {