@suveren/gateway 0.39.0 → 0.41.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 (1039) hide show
  1. package/dist/control-plane/index.mjs +182 -37
  2. package/dist/mcp-server/http.mjs +356 -72
  3. package/dist/ui/assets/index-CO-dj98E.js +123 -0
  4. package/dist/ui/assets/index-DM9WXky8.css +1 -0
  5. package/dist/ui/index.html +2 -2
  6. package/node_modules/@hap/core/README.md +3 -3
  7. package/node_modules/@hap/core/dist/index.d.mts +567 -123
  8. package/node_modules/@hap/core/dist/index.d.ts +567 -123
  9. package/node_modules/@hap/core/dist/index.js +869 -23
  10. package/node_modules/@hap/core/dist/index.mjs +829 -22
  11. package/node_modules/@hap/core/node_modules/@hpke/core/LICENSE +21 -0
  12. package/node_modules/@hap/core/node_modules/@hpke/core/README.md +263 -0
  13. package/node_modules/@hap/core/node_modules/@hpke/core/esm/mod.d.ts +11 -0
  14. package/node_modules/@hap/core/node_modules/@hpke/core/esm/mod.d.ts.map +1 -0
  15. package/node_modules/@hap/core/node_modules/@hpke/core/esm/mod.js +6 -0
  16. package/node_modules/@hap/core/node_modules/@hpke/core/esm/package.json +3 -0
  17. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/aeads/aesGcm.d.ts +80 -0
  18. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/aeads/aesGcm.d.ts.map +1 -0
  19. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/aeads/aesGcm.js +167 -0
  20. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/aeads/exportOnly.d.ts +34 -0
  21. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/aeads/exportOnly.d.ts.map +1 -0
  22. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/aeads/exportOnly.js +56 -0
  23. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/cipherSuiteNative.d.ts +145 -0
  24. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/cipherSuiteNative.d.ts.map +1 -0
  25. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/cipherSuiteNative.js +326 -0
  26. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/encryptionContext.d.ts +15 -0
  27. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/encryptionContext.d.ts.map +1 -0
  28. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/encryptionContext.js +68 -0
  29. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/exporterContext.d.ts +19 -0
  30. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/exporterContext.d.ts.map +1 -0
  31. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/exporterContext.js +62 -0
  32. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/interfaces/aeadParams.d.ts +17 -0
  33. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/interfaces/aeadParams.d.ts.map +1 -0
  34. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/interfaces/aeadParams.js +1 -0
  35. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/interfaces/cipherSuiteParams.d.ts +13 -0
  36. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/interfaces/cipherSuiteParams.d.ts.map +1 -0
  37. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/interfaces/cipherSuiteParams.js +1 -0
  38. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/interfaces/encapsulator.d.ts +8 -0
  39. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/interfaces/encapsulator.d.ts.map +1 -0
  40. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/interfaces/encapsulator.js +1 -0
  41. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/interfaces/encryptionContext.d.ts +40 -0
  42. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/interfaces/encryptionContext.d.ts.map +1 -0
  43. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/interfaces/encryptionContext.js +1 -0
  44. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/interfaces/exporter.d.ts +17 -0
  45. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/interfaces/exporter.d.ts.map +1 -0
  46. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/interfaces/exporter.js +1 -0
  47. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/interfaces/keyInfo.d.ts +7 -0
  48. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/interfaces/keyInfo.d.ts.map +1 -0
  49. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/interfaces/keyInfo.js +1 -0
  50. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/interfaces/responses.d.ts +10 -0
  51. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/interfaces/responses.d.ts.map +1 -0
  52. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/interfaces/responses.js +1 -0
  53. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/kems/dhkemNative.d.ts +26 -0
  54. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/kems/dhkemNative.d.ts.map +1 -0
  55. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/kems/dhkemNative.js +112 -0
  56. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/kems/dhkemPrimitives/x25519.d.ts +24 -0
  57. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/kems/dhkemPrimitives/x25519.d.ts.map +1 -0
  58. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/kems/dhkemPrimitives/x25519.js +214 -0
  59. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/kems/dhkemPrimitives/x448.d.ts +24 -0
  60. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/kems/dhkemPrimitives/x448.d.ts.map +1 -0
  61. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/kems/dhkemPrimitives/x448.js +214 -0
  62. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/kems/dhkemX25519.d.ts +38 -0
  63. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/kems/dhkemX25519.d.ts.map +1 -0
  64. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/kems/dhkemX25519.js +66 -0
  65. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/kems/dhkemX448.d.ts +38 -0
  66. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/kems/dhkemX448.d.ts.map +1 -0
  67. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/kems/dhkemX448.js +66 -0
  68. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/mutex.d.ts +5 -0
  69. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/mutex.d.ts.map +1 -0
  70. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/mutex.js +28 -0
  71. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/native.d.ts +236 -0
  72. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/native.d.ts.map +1 -0
  73. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/native.js +235 -0
  74. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/recipientContext.d.ts +6 -0
  75. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/recipientContext.d.ts.map +1 -0
  76. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/recipientContext.js +38 -0
  77. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/senderContext.d.ts +11 -0
  78. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/senderContext.d.ts.map +1 -0
  79. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/senderContext.js +45 -0
  80. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/utils/emitNotSupported.d.ts +2 -0
  81. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/utils/emitNotSupported.d.ts.map +1 -0
  82. package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/utils/emitNotSupported.js +6 -0
  83. package/node_modules/@hap/core/node_modules/@hpke/core/package.json +46 -0
  84. package/node_modules/@hap/core/node_modules/@hpke/core/script/mod.d.ts +11 -0
  85. package/node_modules/@hap/core/node_modules/@hpke/core/script/mod.d.ts.map +1 -0
  86. package/node_modules/@hap/core/node_modules/@hpke/core/script/mod.js +47 -0
  87. package/node_modules/@hap/core/node_modules/@hpke/core/script/package.json +3 -0
  88. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/aeads/aesGcm.d.ts +80 -0
  89. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/aeads/aesGcm.d.ts.map +1 -0
  90. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/aeads/aesGcm.js +183 -0
  91. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/aeads/exportOnly.d.ts +34 -0
  92. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/aeads/exportOnly.d.ts.map +1 -0
  93. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/aeads/exportOnly.js +70 -0
  94. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/cipherSuiteNative.d.ts +145 -0
  95. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/cipherSuiteNative.d.ts.map +1 -0
  96. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/cipherSuiteNative.js +340 -0
  97. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/encryptionContext.d.ts +15 -0
  98. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/encryptionContext.d.ts.map +1 -0
  99. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/encryptionContext.js +82 -0
  100. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/exporterContext.d.ts +19 -0
  101. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/exporterContext.d.ts.map +1 -0
  102. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/exporterContext.js +78 -0
  103. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/interfaces/aeadParams.d.ts +17 -0
  104. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/interfaces/aeadParams.d.ts.map +1 -0
  105. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/interfaces/aeadParams.js +12 -0
  106. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/interfaces/cipherSuiteParams.d.ts +13 -0
  107. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/interfaces/cipherSuiteParams.d.ts.map +1 -0
  108. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/interfaces/cipherSuiteParams.js +12 -0
  109. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/interfaces/encapsulator.d.ts +8 -0
  110. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/interfaces/encapsulator.d.ts.map +1 -0
  111. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/interfaces/encapsulator.js +12 -0
  112. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/interfaces/encryptionContext.d.ts +40 -0
  113. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/interfaces/encryptionContext.d.ts.map +1 -0
  114. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/interfaces/encryptionContext.js +12 -0
  115. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/interfaces/exporter.d.ts +17 -0
  116. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/interfaces/exporter.d.ts.map +1 -0
  117. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/interfaces/exporter.js +12 -0
  118. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/interfaces/keyInfo.d.ts +7 -0
  119. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/interfaces/keyInfo.d.ts.map +1 -0
  120. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/interfaces/keyInfo.js +12 -0
  121. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/interfaces/responses.d.ts +10 -0
  122. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/interfaces/responses.d.ts.map +1 -0
  123. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/interfaces/responses.js +12 -0
  124. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/kems/dhkemNative.d.ts +26 -0
  125. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/kems/dhkemNative.d.ts.map +1 -0
  126. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/kems/dhkemNative.js +128 -0
  127. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/kems/dhkemPrimitives/x25519.d.ts +24 -0
  128. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/kems/dhkemPrimitives/x25519.d.ts.map +1 -0
  129. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/kems/dhkemPrimitives/x25519.js +228 -0
  130. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/kems/dhkemPrimitives/x448.d.ts +24 -0
  131. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/kems/dhkemPrimitives/x448.d.ts.map +1 -0
  132. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/kems/dhkemPrimitives/x448.js +228 -0
  133. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/kems/dhkemX25519.d.ts +38 -0
  134. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/kems/dhkemX25519.d.ts.map +1 -0
  135. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/kems/dhkemX25519.js +80 -0
  136. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/kems/dhkemX448.d.ts +38 -0
  137. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/kems/dhkemX448.d.ts.map +1 -0
  138. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/kems/dhkemX448.js +80 -0
  139. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/mutex.d.ts +5 -0
  140. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/mutex.d.ts.map +1 -0
  141. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/mutex.js +42 -0
  142. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/native.d.ts +236 -0
  143. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/native.d.ts.map +1 -0
  144. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/native.js +255 -0
  145. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/recipientContext.d.ts +6 -0
  146. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/recipientContext.d.ts.map +1 -0
  147. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/recipientContext.js +52 -0
  148. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/senderContext.d.ts +11 -0
  149. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/senderContext.d.ts.map +1 -0
  150. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/senderContext.js +59 -0
  151. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/utils/emitNotSupported.d.ts +2 -0
  152. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/utils/emitNotSupported.d.ts.map +1 -0
  153. package/node_modules/@hap/core/node_modules/@hpke/core/script/src/utils/emitNotSupported.js +19 -0
  154. package/node_modules/@hap/core/package.json +2 -1
  155. package/node_modules/@hap/core/src/canonicalize.ts +9 -0
  156. package/node_modules/@hap/core/src/commitment-modes.ts +21 -9
  157. package/node_modules/@hap/core/src/errors.ts +24 -8
  158. package/node_modules/@hap/core/src/gatekeeper.ts +52 -8
  159. package/node_modules/@hap/core/src/index.ts +5 -1
  160. package/node_modules/@hap/core/src/issuance.ts +250 -0
  161. package/node_modules/@hap/core/src/mandate.ts +52 -14
  162. package/node_modules/@hap/core/src/owner-signature.ts +86 -39
  163. package/node_modules/@hap/core/src/profile.ts +45 -0
  164. package/node_modules/@hap/core/src/proposal-content.ts +219 -0
  165. package/node_modules/@hap/core/src/ticket-projection.ts +167 -0
  166. package/node_modules/@hap/core/src/ticket.ts +254 -20
  167. package/node_modules/@hap/core/src/types.ts +33 -5
  168. package/node_modules/@hap/core/src/verifier-policy.ts +178 -0
  169. package/node_modules/@hap/core/src/versions.ts +50 -19
  170. package/node_modules/@hono/node-server/dist/index.cjs +31 -6
  171. package/node_modules/@hono/node-server/dist/index.mjs +31 -6
  172. package/node_modules/@hono/node-server/package.json +1 -1
  173. package/node_modules/@hpke/common/esm/package.json +5 -1
  174. package/node_modules/@hpke/common/esm/src/curve/montgomery.d.ts +2 -2
  175. package/node_modules/@hpke/common/esm/src/curve/montgomery.d.ts.map +1 -1
  176. package/node_modules/@hpke/common/esm/src/curve/montgomery.js +41 -26
  177. package/node_modules/@hpke/common/esm/src/hash/sha3.d.ts.map +1 -1
  178. package/node_modules/@hpke/common/esm/src/hash/sha3.js +0 -15
  179. package/node_modules/@hpke/common/esm/src/kdfs/hkdf.d.ts +2 -1
  180. package/node_modules/@hpke/common/esm/src/kdfs/hkdf.d.ts.map +1 -1
  181. package/node_modules/@hpke/common/esm/src/kdfs/hkdf.js +12 -2
  182. package/node_modules/@hpke/common/esm/src/kems/dhkemPrimitives/xCurve.d.ts.map +1 -1
  183. package/node_modules/@hpke/common/esm/src/kems/dhkemPrimitives/xCurve.js +14 -3
  184. package/node_modules/@hpke/common/esm/src/utils/misc.d.ts +6 -0
  185. package/node_modules/@hpke/common/esm/src/utils/misc.d.ts.map +1 -1
  186. package/node_modules/@hpke/common/esm/src/utils/misc.js +43 -10
  187. package/node_modules/@hpke/common/esm/src/utils/noble.d.ts +1 -1
  188. package/node_modules/@hpke/common/esm/src/utils/noble.d.ts.map +1 -1
  189. package/node_modules/@hpke/common/esm/src/utils/noble.js +21 -10
  190. package/node_modules/@hpke/common/package.json +5 -1
  191. package/node_modules/@hpke/common/script/src/curve/montgomery.d.ts +2 -2
  192. package/node_modules/@hpke/common/script/src/curve/montgomery.d.ts.map +1 -1
  193. package/node_modules/@hpke/common/script/src/curve/montgomery.js +40 -25
  194. package/node_modules/@hpke/common/script/src/hash/sha3.d.ts.map +1 -1
  195. package/node_modules/@hpke/common/script/src/hash/sha3.js +0 -15
  196. package/node_modules/@hpke/common/script/src/kdfs/hkdf.d.ts +2 -1
  197. package/node_modules/@hpke/common/script/src/kdfs/hkdf.d.ts.map +1 -1
  198. package/node_modules/@hpke/common/script/src/kdfs/hkdf.js +12 -2
  199. package/node_modules/@hpke/common/script/src/kems/dhkemPrimitives/xCurve.d.ts.map +1 -1
  200. package/node_modules/@hpke/common/script/src/kems/dhkemPrimitives/xCurve.js +13 -2
  201. package/node_modules/@hpke/common/script/src/utils/misc.d.ts +6 -0
  202. package/node_modules/@hpke/common/script/src/utils/misc.d.ts.map +1 -1
  203. package/node_modules/@hpke/common/script/src/utils/misc.js +43 -9
  204. package/node_modules/@hpke/common/script/src/utils/noble.d.ts +1 -1
  205. package/node_modules/@hpke/common/script/src/utils/noble.d.ts.map +1 -1
  206. package/node_modules/@hpke/common/script/src/utils/noble.js +22 -11
  207. package/node_modules/@hpke/core/README.md +56 -56
  208. package/node_modules/@hpke/core/esm/package.json +2 -1
  209. package/node_modules/@hpke/core/esm/src/kems/dhkemPrimitives/x25519.d.ts +3 -21
  210. package/node_modules/@hpke/core/esm/src/kems/dhkemPrimitives/x25519.d.ts.map +1 -1
  211. package/node_modules/@hpke/core/esm/src/kems/dhkemPrimitives/x25519.js +3 -201
  212. package/node_modules/@hpke/core/esm/src/kems/dhkemPrimitives/x448.d.ts +3 -21
  213. package/node_modules/@hpke/core/esm/src/kems/dhkemPrimitives/x448.d.ts.map +1 -1
  214. package/node_modules/@hpke/core/esm/src/kems/dhkemPrimitives/x448.js +3 -201
  215. package/node_modules/@hpke/core/esm/src/kems/dhkemPrimitives/xCurveNative.d.ts +26 -0
  216. package/node_modules/@hpke/core/esm/src/kems/dhkemPrimitives/xCurveNative.d.ts.map +1 -0
  217. package/node_modules/@hpke/core/esm/src/kems/dhkemPrimitives/xCurveNative.js +216 -0
  218. package/node_modules/@hpke/core/package.json +6 -2
  219. package/node_modules/@hpke/core/script/src/kems/dhkemPrimitives/x25519.d.ts +3 -21
  220. package/node_modules/@hpke/core/script/src/kems/dhkemPrimitives/x25519.d.ts.map +1 -1
  221. package/node_modules/@hpke/core/script/src/kems/dhkemPrimitives/x25519.js +4 -202
  222. package/node_modules/@hpke/core/script/src/kems/dhkemPrimitives/x448.d.ts +3 -21
  223. package/node_modules/@hpke/core/script/src/kems/dhkemPrimitives/x448.d.ts.map +1 -1
  224. package/node_modules/@hpke/core/script/src/kems/dhkemPrimitives/x448.js +4 -202
  225. package/node_modules/@hpke/core/script/src/kems/dhkemPrimitives/xCurveNative.d.ts +26 -0
  226. package/node_modules/@hpke/core/script/src/kems/dhkemPrimitives/xCurveNative.d.ts.map +1 -0
  227. package/node_modules/@hpke/core/script/src/kems/dhkemPrimitives/xCurveNative.js +230 -0
  228. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/mcp.d.ts.map +1 -1
  229. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/mcp.js +10 -0
  230. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/mcp.js.map +1 -1
  231. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/transport.d.ts +8 -8
  232. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/transport.d.ts.map +1 -1
  233. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.d.ts.map +1 -1
  234. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js +10 -0
  235. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js.map +1 -1
  236. package/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/transport.d.ts +8 -8
  237. package/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/transport.d.ts.map +1 -1
  238. package/node_modules/@modelcontextprotocol/sdk/package.json +1 -1
  239. package/node_modules/@types/node/README.md +1 -1
  240. package/node_modules/@types/node/package.json +2 -2
  241. package/node_modules/@types/node/zlib.d.ts +752 -0
  242. package/node_modules/encodeurl/README.md +14 -0
  243. package/node_modules/encodeurl/index.js +5 -10
  244. package/node_modules/encodeurl/package.json +10 -6
  245. package/node_modules/express-rate-limit/dist/index.cjs +7 -3
  246. package/node_modules/express-rate-limit/dist/index.mjs +7 -3
  247. package/node_modules/express-rate-limit/package.json +10 -10
  248. package/node_modules/follow-redirects/README.md +27 -1
  249. package/node_modules/follow-redirects/index.js +1 -5
  250. package/node_modules/follow-redirects/package.json +1 -1
  251. package/node_modules/hono/README.md +2 -3
  252. package/node_modules/hono/dist/cjs/adapter/bun/serve-static.js +1 -1
  253. package/node_modules/hono/dist/cjs/adapter/bun/websocket.js +1 -1
  254. package/node_modules/hono/dist/cjs/context.js +1 -1
  255. package/node_modules/hono/dist/cjs/helper/css/common.js +11 -8
  256. package/node_modules/hono/dist/cjs/helper/css/index.js +1 -1
  257. package/node_modules/hono/dist/cjs/helper/route/index.js +3 -1
  258. package/node_modules/hono/dist/cjs/hono-base.js +4 -10
  259. package/node_modules/hono/dist/cjs/hono.js +0 -1
  260. package/node_modules/hono/dist/cjs/jsx/base.js +1 -1
  261. package/node_modules/hono/dist/cjs/middleware/basic-auth/index.js +1 -1
  262. package/node_modules/hono/dist/cjs/middleware/bearer-auth/index.js +9 -1
  263. package/node_modules/hono/dist/cjs/middleware/csrf/index.js +2 -2
  264. package/node_modules/hono/dist/cjs/middleware/jwk/jwk.js +2 -2
  265. package/node_modules/hono/dist/cjs/middleware/jwt/jwt.js +2 -2
  266. package/node_modules/hono/dist/cjs/middleware/mount/index.js +4 -4
  267. package/node_modules/hono/dist/cjs/middleware/serve-static/index.js +3 -1
  268. package/node_modules/hono/dist/cjs/router/reg-exp-router/node.js +13 -11
  269. package/node_modules/hono/dist/cjs/router/reg-exp-router/prepared-router.js +4 -4
  270. package/node_modules/hono/dist/cjs/router/reg-exp-router/router.js +39 -51
  271. package/node_modules/hono/dist/cjs/router/reg-exp-router/trie.js +15 -5
  272. package/node_modules/hono/dist/cjs/router/trie-router/node.js +2 -2
  273. package/node_modules/hono/dist/cjs/utils/jwt/jwt.js +2 -1
  274. package/node_modules/hono/dist/cjs/utils/mount.js +35 -0
  275. package/node_modules/hono/dist/cjs/utils/url.js +21 -6
  276. package/node_modules/hono/dist/cjs/validator/validator.js +1 -1
  277. package/node_modules/hono/dist/context.js +1 -1
  278. package/node_modules/hono/dist/helper/css/common.js +11 -8
  279. package/node_modules/hono/dist/helper/css/index.js +1 -1
  280. package/node_modules/hono/dist/helper/route/index.js +3 -1
  281. package/node_modules/hono/dist/hono-base.js +4 -10
  282. package/node_modules/hono/dist/hono.js +0 -1
  283. package/node_modules/hono/dist/jsx/base.js +1 -1
  284. package/node_modules/hono/dist/middleware/basic-auth/index.js +1 -1
  285. package/node_modules/hono/dist/middleware/bearer-auth/index.js +9 -1
  286. package/node_modules/hono/dist/middleware/csrf/index.js +2 -2
  287. package/node_modules/hono/dist/middleware/jwk/jwk.js +2 -2
  288. package/node_modules/hono/dist/middleware/jwt/jwt.js +2 -2
  289. package/node_modules/hono/dist/middleware/language/language.js +1 -1
  290. package/node_modules/hono/dist/middleware/mount/index.js +4 -4
  291. package/node_modules/hono/dist/middleware/serve-static/index.js +3 -1
  292. package/node_modules/hono/dist/router/reg-exp-router/node.js +13 -11
  293. package/node_modules/hono/dist/router/reg-exp-router/prepared-router.js +5 -5
  294. package/node_modules/hono/dist/router/reg-exp-router/router.js +40 -52
  295. package/node_modules/hono/dist/router/reg-exp-router/trie.js +15 -5
  296. package/node_modules/hono/dist/router/trie-router/node.js +2 -2
  297. package/node_modules/hono/dist/types/adapter/aws-lambda/conninfo.d.ts +1 -1
  298. package/node_modules/hono/dist/types/adapter/bun/conninfo.d.ts +1 -1
  299. package/node_modules/hono/dist/types/adapter/bun/ssg.d.ts +1 -1
  300. package/node_modules/hono/dist/types/adapter/cloudflare-pages/conninfo.d.ts +1 -1
  301. package/node_modules/hono/dist/types/adapter/cloudflare-workers/conninfo.d.ts +1 -1
  302. package/node_modules/hono/dist/types/adapter/deno/conninfo.d.ts +1 -1
  303. package/node_modules/hono/dist/types/adapter/deno/ssg.d.ts +1 -1
  304. package/node_modules/hono/dist/types/adapter/lambda-edge/conninfo.d.ts +1 -1
  305. package/node_modules/hono/dist/types/adapter/netlify/conninfo.d.ts +1 -1
  306. package/node_modules/hono/dist/types/adapter/vercel/conninfo.d.ts +1 -1
  307. package/node_modules/hono/dist/types/helper/testing/index.d.ts +2 -1
  308. package/node_modules/hono/dist/types/hono-base.d.ts +21 -9
  309. package/node_modules/hono/dist/types/index.d.ts +1 -1
  310. package/node_modules/hono/dist/types/jsx/components.d.ts +2 -2
  311. package/node_modules/hono/dist/types/jsx/context.d.ts +2 -2
  312. package/node_modules/hono/dist/types/jsx/dom/components.d.ts +2 -2
  313. package/node_modules/hono/dist/types/jsx/dom/css.d.ts +2 -2
  314. package/node_modules/hono/dist/types/jsx/streaming.d.ts +4 -3
  315. package/node_modules/hono/dist/types/middleware/bearer-auth/index.d.ts +2 -1
  316. package/node_modules/hono/dist/types/middleware/ip-restriction/index.d.ts +3 -3
  317. package/node_modules/hono/dist/types/middleware/jsx-renderer/index.d.ts +3 -3
  318. package/node_modules/hono/dist/types/middleware/mount/index.d.ts +1 -0
  319. package/node_modules/hono/dist/types/router/reg-exp-router/node.d.ts +3 -3
  320. package/node_modules/hono/dist/types/router/reg-exp-router/trie.d.ts +1 -1
  321. package/node_modules/hono/dist/types/utils/ipaddr.d.ts +1 -1
  322. package/node_modules/hono/dist/types/utils/mount.d.ts +4 -0
  323. package/node_modules/hono/dist/types/utils/url.d.ts +1 -0
  324. package/node_modules/hono/dist/utils/jwt/jwt.js +2 -1
  325. package/node_modules/hono/dist/utils/mount.js +34 -0
  326. package/node_modules/hono/dist/utils/url.js +21 -7
  327. package/node_modules/hono/dist/validator/validator.js +1 -1
  328. package/node_modules/hono/package.json +1 -1
  329. package/node_modules/http-proxy-middleware/dist/handlers/fix-request-body.js +2 -2
  330. package/node_modules/http-proxy-middleware/package.json +1 -1
  331. package/node_modules/ip-address/README.md +39 -39
  332. package/node_modules/ip-address/dist/common.js +2 -2
  333. package/node_modules/ip-address/dist/common.js.map +1 -1
  334. package/node_modules/ip-address/dist/ipv6.js +1 -1
  335. package/node_modules/ip-address/dist/ipv6.js.map +1 -1
  336. package/node_modules/ip-address/package.json +2 -2
  337. package/node_modules/jose/dist/types/jwt/decrypt.d.ts +3 -0
  338. package/node_modules/jose/dist/types/jwt/unsecured.d.ts +2 -0
  339. package/node_modules/jose/dist/types/jwt/verify.d.ts +3 -0
  340. package/node_modules/jose/dist/types/types.d.ts +8 -0
  341. package/node_modules/jose/dist/types/util/decode_jwt.d.ts +1 -0
  342. package/node_modules/jose/dist/webapi/jwks/remote.js +3 -1
  343. package/node_modules/jose/dist/webapi/lib/deflate.js +2 -1
  344. package/node_modules/jose/dist/webapi/lib/jwt_claims_set.js +2 -1
  345. package/node_modules/jose/package.json +1 -1
  346. package/node_modules/postcss/lib/input.js +1 -1
  347. package/node_modules/postcss/lib/lazy-result.js +1 -1
  348. package/node_modules/postcss/lib/no-work-result.js +1 -1
  349. package/node_modules/postcss/lib/node.js +2 -2
  350. package/node_modules/postcss/lib/processor.js +1 -1
  351. package/node_modules/postcss/lib/warning.js +1 -0
  352. package/node_modules/postcss/package.json +1 -1
  353. package/node_modules/qs/CHANGELOG.md +29 -22
  354. package/node_modules/qs/dist/qs.js +14 -14
  355. package/node_modules/qs/eslint.config.mjs +6 -0
  356. package/node_modules/qs/lib/stringify.js +1 -1
  357. package/node_modules/qs/package.json +5 -5
  358. package/node_modules/qs/test/stringify.js +74 -0
  359. package/node_modules/zod/README.md +34 -24
  360. package/node_modules/zod/compile.cjs +96 -0
  361. package/node_modules/zod/compile.d.cts +1 -0
  362. package/node_modules/zod/compile.d.ts +1 -0
  363. package/node_modules/zod/compile.js +52 -0
  364. package/node_modules/zod/index.cjs +22 -3
  365. package/node_modules/zod/index.d.cts +3 -4
  366. package/node_modules/zod/index.d.ts +3 -4
  367. package/node_modules/zod/index.js +7 -4
  368. package/node_modules/zod/locales/index.cjs +36 -0
  369. package/node_modules/zod/locales/index.d.cts +1 -0
  370. package/node_modules/zod/locales/index.d.ts +1 -0
  371. package/node_modules/zod/locales/index.js +1 -0
  372. package/node_modules/zod/locales/package.json +7 -0
  373. package/node_modules/zod/mini/index.cjs +51 -0
  374. package/node_modules/zod/mini/index.d.cts +3 -0
  375. package/node_modules/zod/mini/index.d.ts +3 -0
  376. package/node_modules/zod/mini/index.js +3 -0
  377. package/node_modules/zod/mini/package.json +7 -0
  378. package/node_modules/zod/package.json +44 -15
  379. package/node_modules/zod/src/compile.ts +56 -0
  380. package/node_modules/zod/src/index.ts +7 -4
  381. package/node_modules/zod/src/locales/index.ts +1 -0
  382. package/node_modules/zod/src/mini/index.ts +3 -0
  383. package/node_modules/zod/src/v3/ZodError.ts +23 -13
  384. package/node_modules/zod/src/v3/helpers/errorUtil.ts +1 -1
  385. package/node_modules/zod/src/v3/tests/all-errors.test.ts +3 -3
  386. package/node_modules/zod/src/v3/tests/complex.test.ts +17 -3
  387. package/node_modules/zod/src/v3/tests/error.test.ts +35 -0
  388. package/node_modules/zod/src/v3/tests/function.test.ts +7 -3
  389. package/node_modules/zod/src/v3/tests/intersection.test.ts +18 -0
  390. package/node_modules/zod/src/v3/tests/language-server.test.ts +1 -2
  391. package/node_modules/zod/src/v3/tests/nan.test.ts +5 -2
  392. package/node_modules/zod/src/v3/tests/object.test.ts +10 -13
  393. package/node_modules/zod/src/v3/tests/partials.test.ts +3 -3
  394. package/node_modules/zod/src/v3/tests/readonly.test.ts +0 -80
  395. package/node_modules/zod/src/v3/tests/string.test.ts +8 -2
  396. package/node_modules/zod/src/v3/types.ts +8 -6
  397. package/node_modules/zod/src/v4/classic/checks.ts +3 -0
  398. package/node_modules/zod/src/v4/classic/compat.ts +30 -18
  399. package/node_modules/zod/src/v4/classic/deep-partial.ts +76 -0
  400. package/node_modules/zod/src/v4/classic/errors.ts +61 -39
  401. package/node_modules/zod/src/v4/classic/external.ts +18 -11
  402. package/node_modules/zod/src/v4/classic/from-json-schema.ts +944 -0
  403. package/node_modules/zod/src/v4/classic/in-out.ts +45 -0
  404. package/node_modules/zod/src/v4/classic/index.ts +2 -2
  405. package/node_modules/zod/src/v4/classic/iso.ts +2 -72
  406. package/node_modules/zod/src/v4/classic/parse.ts +57 -2
  407. package/node_modules/zod/src/v4/classic/schemas.ts +1258 -375
  408. package/node_modules/zod/src/v4/classic/tests/apply.test.ts +86 -0
  409. package/node_modules/zod/src/v4/classic/tests/array.test.ts +35 -8
  410. package/node_modules/zod/src/v4/classic/tests/assignability.test.ts +192 -0
  411. package/node_modules/zod/src/v4/classic/tests/bigint.test.ts +36 -1
  412. package/node_modules/zod/src/v4/classic/tests/brand.test.ts +43 -0
  413. package/node_modules/zod/src/v4/classic/tests/catch.test.ts +357 -5
  414. package/node_modules/zod/src/v4/classic/tests/codec-examples.test.ts +572 -0
  415. package/node_modules/zod/src/v4/classic/tests/codec.test.ts +704 -0
  416. package/node_modules/zod/src/v4/classic/tests/continuability.test.ts +27 -5
  417. package/node_modules/zod/src/v4/classic/tests/credit-card.test.ts +76 -0
  418. package/node_modules/zod/src/v4/classic/tests/cyclic-data.test.ts +985 -0
  419. package/node_modules/zod/src/v4/classic/tests/date.test.ts +67 -6
  420. package/node_modules/zod/src/v4/classic/tests/datetime.test.ts +37 -17
  421. package/node_modules/zod/src/v4/classic/tests/deep-partial.test.ts +380 -0
  422. package/node_modules/zod/src/v4/classic/tests/default-locale.test.ts +32 -0
  423. package/node_modules/zod/src/v4/classic/tests/default.test.ts +142 -0
  424. package/node_modules/zod/src/v4/classic/tests/describe-meta-checks.test.ts +27 -0
  425. package/node_modules/zod/src/v4/classic/tests/detached-methods.test.ts +221 -0
  426. package/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +333 -10
  427. package/node_modules/zod/src/v4/classic/tests/enum.test.ts +20 -0
  428. package/node_modules/zod/src/v4/classic/tests/error-utils.test.ts +394 -4
  429. package/node_modules/zod/src/v4/classic/tests/error.test.ts +403 -6
  430. package/node_modules/zod/src/v4/classic/tests/file.test.ts +9 -4
  431. package/node_modules/zod/src/v4/classic/tests/firstparty.test.ts +4 -0
  432. package/node_modules/zod/src/v4/classic/tests/fix-json-issue.test.ts +26 -0
  433. package/node_modules/zod/src/v4/classic/tests/from-json-schema.test.ts +1467 -0
  434. package/node_modules/zod/src/v4/classic/tests/function.test.ts +160 -37
  435. package/node_modules/zod/src/v4/classic/tests/global-config.test.ts +32 -0
  436. package/node_modules/zod/src/v4/classic/tests/hash.test.ts +67 -0
  437. package/node_modules/zod/src/v4/classic/tests/iban.test.ts +81 -0
  438. package/node_modules/zod/src/v4/classic/tests/in-out.test.ts +159 -0
  439. package/node_modules/zod/src/v4/classic/tests/index.test.ts +134 -5
  440. package/node_modules/zod/src/v4/classic/tests/instance-footprint.test.ts +319 -0
  441. package/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +93 -0
  442. package/node_modules/zod/src/v4/classic/tests/intersection.test.ts +168 -5
  443. package/node_modules/zod/src/v4/classic/tests/issue-schema.test.ts +215 -0
  444. package/node_modules/zod/src/v4/classic/tests/jitless-allows-eval.test.ts +39 -0
  445. package/node_modules/zod/src/v4/classic/tests/json.test.ts +4 -3
  446. package/node_modules/zod/src/v4/classic/tests/lazy.test.ts +36 -1
  447. package/node_modules/zod/src/v4/classic/tests/literal.test.ts +37 -1
  448. package/node_modules/zod/src/v4/classic/tests/locales_ka.test.ts +29 -0
  449. package/node_modules/zod/src/v4/classic/tests/locales_ro.test.ts +24 -0
  450. package/node_modules/zod/src/v4/classic/tests/map.test.ts +153 -0
  451. package/node_modules/zod/src/v4/classic/tests/nonoptional.test.ts +15 -0
  452. package/node_modules/zod/src/v4/classic/tests/number.test.ts +161 -7
  453. package/node_modules/zod/src/v4/classic/tests/object.test.ts +457 -14
  454. package/node_modules/zod/src/v4/classic/tests/optin-ladder.test.ts +235 -0
  455. package/node_modules/zod/src/v4/classic/tests/optional.test.ts +255 -12
  456. package/node_modules/zod/src/v4/classic/tests/partial.test.ts +350 -0
  457. package/node_modules/zod/src/v4/classic/tests/pickomit.test.ts +89 -5
  458. package/node_modules/zod/src/v4/classic/tests/pipe.test.ts +25 -5
  459. package/node_modules/zod/src/v4/classic/tests/prefault.test.ts +107 -0
  460. package/node_modules/zod/src/v4/classic/tests/preprocess-types.test.ts +44 -0
  461. package/node_modules/zod/src/v4/classic/tests/preprocess.test.ts +74 -21
  462. package/node_modules/zod/src/v4/classic/tests/promise.test.ts +1 -1
  463. package/node_modules/zod/src/v4/classic/tests/properties.test.ts +141 -0
  464. package/node_modules/zod/src/v4/classic/tests/readonly.test.ts +1 -69
  465. package/node_modules/zod/src/v4/classic/tests/record.test.ts +553 -10
  466. package/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +352 -1
  467. package/node_modules/zod/src/v4/classic/tests/redos.test.ts +68 -0
  468. package/node_modules/zod/src/v4/classic/tests/refine.test.ts +229 -68
  469. package/node_modules/zod/src/v4/classic/tests/registries.test.ts +40 -1
  470. package/node_modules/zod/src/v4/classic/tests/set.test.ts +20 -3
  471. package/node_modules/zod/src/v4/classic/tests/standard-schema.test.ts +96 -0
  472. package/node_modules/zod/src/v4/classic/tests/string-formats.test.ts +16 -0
  473. package/node_modules/zod/src/v4/classic/tests/string.test.ts +568 -9
  474. package/node_modules/zod/src/v4/classic/tests/stringbool.test.ts +58 -0
  475. package/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +70 -16
  476. package/node_modules/zod/src/v4/classic/tests/to-json-schema-methods.test.ts +438 -0
  477. package/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +3409 -990
  478. package/node_modules/zod/src/v4/classic/tests/transform.test.ts +128 -0
  479. package/node_modules/zod/src/v4/classic/tests/tuple.test.ts +353 -5
  480. package/node_modules/zod/src/v4/classic/tests/union.test.ts +219 -3
  481. package/node_modules/zod/src/v4/classic/tests/url.test.ts +13 -0
  482. package/node_modules/zod/src/v4/classic/tests/validate.test.ts +645 -0
  483. package/node_modules/zod/src/v4/classic/tests/validations.test.ts +2 -2
  484. package/node_modules/zod/src/v4/core/api.ts +442 -161
  485. package/node_modules/zod/src/v4/core/checks.ts +134 -151
  486. package/node_modules/zod/src/v4/core/compile.ts +2322 -0
  487. package/node_modules/zod/src/v4/core/core.ts +146 -50
  488. package/node_modules/zod/src/v4/core/doc.ts +18 -10
  489. package/node_modules/zod/src/v4/core/errors.ts +221 -102
  490. package/node_modules/zod/src/v4/core/index.ts +5 -1
  491. package/node_modules/zod/src/v4/core/json-schema-generator.ts +131 -0
  492. package/node_modules/zod/src/v4/core/json-schema-processors.ts +934 -0
  493. package/node_modules/zod/src/v4/core/json-schema.ts +9 -4
  494. package/node_modules/zod/src/v4/core/memoizer.ts +331 -0
  495. package/node_modules/zod/src/v4/core/parse.ts +252 -37
  496. package/node_modules/zod/src/v4/core/regexes.ts +112 -30
  497. package/node_modules/zod/src/v4/core/registries.ts +19 -10
  498. package/node_modules/zod/src/v4/core/schemas.ts +1972 -588
  499. package/node_modules/zod/src/v4/core/standard-schema.ts +114 -19
  500. package/node_modules/zod/src/v4/core/tests/cached.test.ts +54 -0
  501. package/node_modules/zod/src/v4/core/tests/compile-differential.test.ts +1004 -0
  502. package/node_modules/zod/src/v4/core/tests/compile-generative.test.ts +445 -0
  503. package/node_modules/zod/src/v4/core/tests/compile-global.test.ts +89 -0
  504. package/node_modules/zod/src/v4/core/tests/compile-off-by-default.test.ts +26 -0
  505. package/node_modules/zod/src/v4/core/tests/compile-stats.test.ts +34 -0
  506. package/node_modules/zod/src/v4/core/tests/compile.test.ts +2036 -0
  507. package/node_modules/zod/src/v4/core/tests/email-regex.test.ts +140 -0
  508. package/node_modules/zod/src/v4/core/tests/extend.test.ts +59 -0
  509. package/node_modules/zod/src/v4/core/tests/locales/el.test.ts +214 -0
  510. package/node_modules/zod/src/v4/core/tests/locales/en.test.ts +1 -1
  511. package/node_modules/zod/src/v4/core/tests/locales/es.test.ts +180 -0
  512. package/node_modules/zod/src/v4/core/tests/locales/fr.test.ts +72 -0
  513. package/node_modules/zod/src/v4/core/tests/locales/he.test.ts +379 -0
  514. package/node_modules/zod/src/v4/core/tests/locales/hr.test.ts +163 -0
  515. package/node_modules/zod/src/v4/core/tests/locales/nl.test.ts +46 -0
  516. package/node_modules/zod/src/v4/core/tests/locales/parity.test.ts +42 -0
  517. package/node_modules/zod/src/v4/core/tests/locales/tg.test.ts +85 -0
  518. package/node_modules/zod/src/v4/core/tests/locales/tk.test.ts +69 -0
  519. package/node_modules/zod/src/v4/core/tests/locales/tr.test.ts +2 -2
  520. package/node_modules/zod/src/v4/core/tests/locales/uz.test.ts +105 -0
  521. package/node_modules/zod/src/v4/core/tests/polyfill-collision.test.ts +46 -0
  522. package/node_modules/zod/src/v4/core/tests/record-constructor.test.ts +125 -0
  523. package/node_modules/zod/src/v4/core/tests/recursive-tuples.test.ts +45 -0
  524. package/node_modules/zod/src/v4/core/tests/treeshake.test.ts +51 -0
  525. package/node_modules/zod/src/v4/core/tests/url-no-canparse.test.ts +133 -0
  526. package/node_modules/zod/src/v4/core/to-json-schema.ts +706 -826
  527. package/node_modules/zod/src/v4/core/util.ts +675 -157
  528. package/node_modules/zod/src/v4/core/versions.ts +2 -2
  529. package/node_modules/zod/src/v4/core/visit.ts +193 -0
  530. package/node_modules/zod/src/v4/index.ts +3 -3
  531. package/node_modules/zod/src/v4/locales/ar.ts +22 -27
  532. package/node_modules/zod/src/v4/locales/az.ts +22 -27
  533. package/node_modules/zod/src/v4/locales/be.ts +31 -27
  534. package/node_modules/zod/src/v4/locales/bg.ts +133 -0
  535. package/node_modules/zod/src/v4/locales/bn.ts +123 -0
  536. package/node_modules/zod/src/v4/locales/ca.ts +22 -28
  537. package/node_modules/zod/src/v4/locales/ckb.ts +140 -0
  538. package/node_modules/zod/src/v4/locales/cs.ts +26 -45
  539. package/node_modules/zod/src/v4/locales/da.ts +128 -0
  540. package/node_modules/zod/src/v4/locales/de.ts +24 -27
  541. package/node_modules/zod/src/v4/locales/el.ts +124 -0
  542. package/node_modules/zod/src/v4/locales/en.ts +38 -29
  543. package/node_modules/zod/src/v4/locales/eo.ts +25 -27
  544. package/node_modules/zod/src/v4/locales/es.ts +53 -33
  545. package/node_modules/zod/src/v4/locales/fa.ts +24 -27
  546. package/node_modules/zod/src/v4/locales/fi.ts +22 -27
  547. package/node_modules/zod/src/v4/locales/fr-CA.ts +22 -27
  548. package/node_modules/zod/src/v4/locales/fr.ts +58 -43
  549. package/node_modules/zod/src/v4/locales/gu.ts +123 -0
  550. package/node_modules/zod/src/v4/locales/he.ts +208 -80
  551. package/node_modules/zod/src/v4/locales/hi.ts +126 -0
  552. package/node_modules/zod/src/v4/locales/hr.ts +135 -0
  553. package/node_modules/zod/src/v4/locales/hu.ts +24 -28
  554. package/node_modules/zod/src/v4/locales/hy.ts +175 -0
  555. package/node_modules/zod/src/v4/locales/id.ts +22 -27
  556. package/node_modules/zod/src/v4/locales/index.ts +24 -0
  557. package/node_modules/zod/src/v4/locales/is.ts +124 -0
  558. package/node_modules/zod/src/v4/locales/it.ts +24 -28
  559. package/node_modules/zod/src/v4/locales/ja.ts +24 -27
  560. package/node_modules/zod/src/v4/locales/ka.ts +128 -0
  561. package/node_modules/zod/src/v4/locales/kh.ts +3 -122
  562. package/node_modules/zod/src/v4/locales/km.ts +124 -0
  563. package/node_modules/zod/src/v4/locales/kn.ts +126 -0
  564. package/node_modules/zod/src/v4/locales/ko.ts +22 -27
  565. package/node_modules/zod/src/v4/locales/lt.ts +243 -0
  566. package/node_modules/zod/src/v4/locales/mk.ts +24 -28
  567. package/node_modules/zod/src/v4/locales/ms.ts +23 -27
  568. package/node_modules/zod/src/v4/locales/ne.ts +128 -0
  569. package/node_modules/zod/src/v4/locales/nl.ts +37 -37
  570. package/node_modules/zod/src/v4/locales/nn.ts +121 -0
  571. package/node_modules/zod/src/v4/locales/no.ts +26 -29
  572. package/node_modules/zod/src/v4/locales/ota.ts +25 -28
  573. package/node_modules/zod/src/v4/locales/pl.ts +24 -27
  574. package/node_modules/zod/src/v4/locales/ps.ts +24 -26
  575. package/node_modules/zod/src/v4/locales/pt-BR.ts +161 -0
  576. package/node_modules/zod/src/v4/locales/pt.ts +107 -71
  577. package/node_modules/zod/src/v4/locales/ro.ts +132 -0
  578. package/node_modules/zod/src/v4/locales/ru.ts +31 -27
  579. package/node_modules/zod/src/v4/locales/sk.ts +123 -0
  580. package/node_modules/zod/src/v4/locales/sl.ts +24 -27
  581. package/node_modules/zod/src/v4/locales/sv.ts +26 -29
  582. package/node_modules/zod/src/v4/locales/ta.ts +25 -27
  583. package/node_modules/zod/src/v4/locales/tg.ts +135 -0
  584. package/node_modules/zod/src/v4/locales/th.ts +25 -27
  585. package/node_modules/zod/src/v4/locales/tk.ts +113 -0
  586. package/node_modules/zod/src/v4/locales/tr.ts +22 -27
  587. package/node_modules/zod/src/v4/locales/ua.ts +3 -122
  588. package/node_modules/zod/src/v4/locales/uk.ts +122 -0
  589. package/node_modules/zod/src/v4/locales/ur.ts +25 -27
  590. package/node_modules/zod/src/v4/locales/uz.ts +120 -0
  591. package/node_modules/zod/src/v4/locales/vi.ts +24 -27
  592. package/node_modules/zod/src/v4/locales/yo.ts +129 -0
  593. package/node_modules/zod/src/v4/locales/zh-CN.ts +25 -27
  594. package/node_modules/zod/src/v4/locales/zh-TW.ts +22 -27
  595. package/node_modules/zod/src/v4/mini/checks.ts +1 -0
  596. package/node_modules/zod/src/v4/mini/coerce.ts +5 -0
  597. package/node_modules/zod/src/v4/mini/deep-partial.ts +73 -0
  598. package/node_modules/zod/src/v4/mini/external.ts +15 -3
  599. package/node_modules/zod/src/v4/mini/in-out.ts +45 -0
  600. package/node_modules/zod/src/v4/mini/iso.ts +8 -4
  601. package/node_modules/zod/src/v4/mini/parse.ts +16 -1
  602. package/node_modules/zod/src/v4/mini/schemas.ts +586 -114
  603. package/node_modules/zod/src/v4/mini/tests/apply.test.ts +57 -0
  604. package/node_modules/zod/src/v4/mini/tests/assignability.test.ts +63 -2
  605. package/node_modules/zod/src/v4/mini/tests/brand.test.ts +43 -0
  606. package/node_modules/zod/src/v4/mini/tests/checks.test.ts +14 -0
  607. package/node_modules/zod/src/v4/mini/tests/codec.test.ts +582 -0
  608. package/node_modules/zod/src/v4/mini/tests/computed.test.ts +12 -18
  609. package/node_modules/zod/src/v4/mini/tests/cyclic-data.test.ts +84 -0
  610. package/node_modules/zod/src/v4/mini/tests/deep-partial.test.ts +54 -0
  611. package/node_modules/zod/src/v4/mini/tests/error.test.ts +24 -5
  612. package/node_modules/zod/src/v4/mini/tests/functions.test.ts +7 -36
  613. package/node_modules/zod/src/v4/mini/tests/index.test.ts +281 -6
  614. package/node_modules/zod/src/v4/mini/tests/number.test.ts +15 -1
  615. package/node_modules/zod/src/v4/mini/tests/object.test.ts +116 -9
  616. package/node_modules/zod/src/v4/mini/tests/prototypes.test.ts +1 -1
  617. package/node_modules/zod/src/v4/mini/tests/recursive-types.test.ts +68 -2
  618. package/node_modules/zod/src/v4/mini/tests/standard-schema.test.ts +50 -0
  619. package/node_modules/zod/src/v4/mini/tests/string.test.ts +98 -1
  620. package/node_modules/zod/src/v4-mini/index.ts +3 -1
  621. package/node_modules/zod/v3/ZodError.cjs +42 -13
  622. package/node_modules/zod/v3/ZodError.d.cts +6 -6
  623. package/node_modules/zod/v3/ZodError.d.ts +6 -6
  624. package/node_modules/zod/v3/ZodError.js +23 -13
  625. package/node_modules/zod/v3/errors.cjs +19 -0
  626. package/node_modules/zod/v3/external.cjs +19 -0
  627. package/node_modules/zod/v3/helpers/enumUtil.cjs +19 -0
  628. package/node_modules/zod/v3/helpers/errorUtil.cjs +20 -1
  629. package/node_modules/zod/v3/helpers/errorUtil.js +1 -1
  630. package/node_modules/zod/v3/helpers/parseUtil.cjs +19 -0
  631. package/node_modules/zod/v3/helpers/partialUtil.cjs +19 -0
  632. package/node_modules/zod/v3/helpers/typeAliases.cjs +19 -0
  633. package/node_modules/zod/v3/helpers/util.cjs +19 -0
  634. package/node_modules/zod/v3/index.cjs +19 -0
  635. package/node_modules/zod/v3/locales/en.cjs +1 -0
  636. package/node_modules/zod/v3/locales/en.d.cts +1 -1
  637. package/node_modules/zod/v3/package.json +7 -0
  638. package/node_modules/zod/v3/standard-schema.cjs +19 -0
  639. package/node_modules/zod/v3/types.cjs +28 -5
  640. package/node_modules/zod/v3/types.d.cts +4 -1
  641. package/node_modules/zod/v3/types.d.ts +4 -1
  642. package/node_modules/zod/v3/types.js +9 -5
  643. package/node_modules/zod/v4/classic/checks.cjs +22 -1
  644. package/node_modules/zod/v4/classic/checks.d.cts +1 -1
  645. package/node_modules/zod/v4/classic/checks.d.ts +1 -1
  646. package/node_modules/zod/v4/classic/checks.js +1 -1
  647. package/node_modules/zod/v4/classic/coerce.cjs +19 -0
  648. package/node_modules/zod/v4/classic/compat.cjs +24 -1
  649. package/node_modules/zod/v4/classic/compat.d.cts +13 -11
  650. package/node_modules/zod/v4/classic/compat.d.ts +13 -11
  651. package/node_modules/zod/v4/classic/compat.js +4 -0
  652. package/node_modules/zod/v4/classic/deep-partial.cjs +58 -0
  653. package/node_modules/zod/v4/classic/deep-partial.d.cts +14 -0
  654. package/node_modules/zod/v4/classic/deep-partial.d.ts +14 -0
  655. package/node_modules/zod/v4/classic/deep-partial.js +13 -0
  656. package/node_modules/zod/v4/classic/errors.cjs +63 -28
  657. package/node_modules/zod/v4/classic/errors.d.cts +3 -4
  658. package/node_modules/zod/v4/classic/errors.d.ts +3 -4
  659. package/node_modules/zod/v4/classic/errors.js +45 -29
  660. package/node_modules/zod/v4/classic/external.cjs +55 -28
  661. package/node_modules/zod/v4/classic/external.d.cts +8 -2
  662. package/node_modules/zod/v4/classic/external.d.ts +8 -2
  663. package/node_modules/zod/v4/classic/external.js +7 -8
  664. package/node_modules/zod/v4/classic/from-json-schema.cjs +926 -0
  665. package/node_modules/zod/v4/classic/from-json-schema.d.cts +12 -0
  666. package/node_modules/zod/v4/classic/from-json-schema.d.ts +12 -0
  667. package/node_modules/zod/v4/classic/from-json-schema.js +881 -0
  668. package/node_modules/zod/v4/classic/in-out.cjs +82 -0
  669. package/node_modules/zod/v4/classic/in-out.d.cts +8 -0
  670. package/node_modules/zod/v4/classic/in-out.d.ts +8 -0
  671. package/node_modules/zod/v4/classic/in-out.js +36 -0
  672. package/node_modules/zod/v4/classic/index.cjs +21 -2
  673. package/node_modules/zod/v4/classic/index.d.cts +1 -2
  674. package/node_modules/zod/v4/classic/index.d.ts +1 -2
  675. package/node_modules/zod/v4/classic/index.js +2 -2
  676. package/node_modules/zod/v4/classic/iso.cjs +30 -22
  677. package/node_modules/zod/v4/classic/iso.d.cts +2 -17
  678. package/node_modules/zod/v4/classic/iso.d.ts +2 -17
  679. package/node_modules/zod/v4/classic/iso.js +2 -17
  680. package/node_modules/zod/v4/classic/package.json +7 -0
  681. package/node_modules/zod/v4/classic/parse.cjs +32 -1
  682. package/node_modules/zod/v4/classic/parse.d.cts +21 -0
  683. package/node_modules/zod/v4/classic/parse.d.ts +21 -0
  684. package/node_modules/zod/v4/classic/parse.js +10 -0
  685. package/node_modules/zod/v4/classic/schemas.cjs +805 -238
  686. package/node_modules/zod/v4/classic/schemas.d.cts +241 -55
  687. package/node_modules/zod/v4/classic/schemas.d.ts +241 -55
  688. package/node_modules/zod/v4/classic/schemas.js +766 -237
  689. package/node_modules/zod/v4/core/api.cjs +284 -54
  690. package/node_modules/zod/v4/core/api.d.cts +133 -82
  691. package/node_modules/zod/v4/core/api.d.ts +133 -82
  692. package/node_modules/zod/v4/core/api.js +255 -54
  693. package/node_modules/zod/v4/core/checks.cjs +100 -130
  694. package/node_modules/zod/v4/core/checks.d.cts +32 -16
  695. package/node_modules/zod/v4/core/checks.d.ts +32 -16
  696. package/node_modules/zod/v4/core/checks.js +80 -129
  697. package/node_modules/zod/v4/core/compile.cjs +1916 -0
  698. package/node_modules/zod/v4/core/compile.d.cts +65 -0
  699. package/node_modules/zod/v4/core/compile.d.ts +65 -0
  700. package/node_modules/zod/v4/core/compile.js +1866 -0
  701. package/node_modules/zod/v4/core/core.cjs +120 -20
  702. package/node_modules/zod/v4/core/core.d.cts +40 -7
  703. package/node_modules/zod/v4/core/core.d.ts +40 -7
  704. package/node_modules/zod/v4/core/core.js +101 -21
  705. package/node_modules/zod/v4/core/doc.cjs +31 -9
  706. package/node_modules/zod/v4/core/doc.d.cts +4 -2
  707. package/node_modules/zod/v4/core/doc.d.ts +4 -2
  708. package/node_modules/zod/v4/core/doc.js +12 -9
  709. package/node_modules/zod/v4/core/errors.cjs +151 -60
  710. package/node_modules/zod/v4/core/errors.d.cts +41 -24
  711. package/node_modules/zod/v4/core/errors.d.ts +41 -24
  712. package/node_modules/zod/v4/core/errors.js +132 -60
  713. package/node_modules/zod/v4/core/index.cjs +28 -2
  714. package/node_modules/zod/v4/core/index.d.cts +5 -1
  715. package/node_modules/zod/v4/core/index.d.ts +5 -1
  716. package/node_modules/zod/v4/core/index.js +5 -1
  717. package/node_modules/zod/v4/core/json-schema-generator.cjs +122 -0
  718. package/node_modules/zod/v4/core/json-schema-generator.d.cts +65 -0
  719. package/node_modules/zod/v4/core/json-schema-generator.d.ts +65 -0
  720. package/node_modules/zod/v4/core/json-schema-generator.js +99 -0
  721. package/node_modules/zod/v4/core/json-schema-processors.cjs +929 -0
  722. package/node_modules/zod/v4/core/json-schema-processors.d.cts +65 -0
  723. package/node_modules/zod/v4/core/json-schema-processors.d.ts +65 -0
  724. package/node_modules/zod/v4/core/json-schema-processors.js +843 -0
  725. package/node_modules/zod/v4/core/json-schema.cjs +19 -0
  726. package/node_modules/zod/v4/core/json-schema.d.cts +6 -4
  727. package/node_modules/zod/v4/core/json-schema.d.ts +6 -4
  728. package/node_modules/zod/v4/core/memoizer.cjs +360 -0
  729. package/node_modules/zod/v4/core/memoizer.d.cts +15 -0
  730. package/node_modules/zod/v4/core/memoizer.d.ts +15 -0
  731. package/node_modules/zod/v4/core/memoizer.js +311 -0
  732. package/node_modules/zod/v4/core/package.json +7 -0
  733. package/node_modules/zod/v4/core/parse.cjs +183 -37
  734. package/node_modules/zod/v4/core/parse.d.cts +34 -7
  735. package/node_modules/zod/v4/core/parse.d.ts +34 -7
  736. package/node_modules/zod/v4/core/parse.js +154 -36
  737. package/node_modules/zod/v4/core/regexes.cjs +137 -31
  738. package/node_modules/zod/v4/core/regexes.d.cts +30 -2
  739. package/node_modules/zod/v4/core/regexes.d.ts +30 -2
  740. package/node_modules/zod/v4/core/regexes.js +90 -29
  741. package/node_modules/zod/v4/core/registries.cjs +26 -7
  742. package/node_modules/zod/v4/core/registries.d.cts +2 -2
  743. package/node_modules/zod/v4/core/registries.d.ts +2 -2
  744. package/node_modules/zod/v4/core/registries.js +9 -9
  745. package/node_modules/zod/v4/core/schemas.cjs +1373 -422
  746. package/node_modules/zod/v4/core/schemas.d.cts +276 -42
  747. package/node_modules/zod/v4/core/schemas.d.ts +276 -42
  748. package/node_modules/zod/v4/core/schemas.js +1341 -422
  749. package/node_modules/zod/v4/core/standard-schema.cjs +19 -0
  750. package/node_modules/zod/v4/core/standard-schema.d.cts +90 -19
  751. package/node_modules/zod/v4/core/standard-schema.d.ts +90 -19
  752. package/node_modules/zod/v4/core/to-json-schema.cjs +628 -801
  753. package/node_modules/zod/v4/core/to-json-schema.d.cts +103 -37
  754. package/node_modules/zod/v4/core/to-json-schema.d.ts +103 -37
  755. package/node_modules/zod/v4/core/to-json-schema.js +602 -800
  756. package/node_modules/zod/v4/core/util.cjs +580 -155
  757. package/node_modules/zod/v4/core/util.d.cts +98 -1
  758. package/node_modules/zod/v4/core/util.d.ts +98 -1
  759. package/node_modules/zod/v4/core/util.js +536 -156
  760. package/node_modules/zod/v4/core/versions.cjs +21 -2
  761. package/node_modules/zod/v4/core/versions.d.cts +1 -1
  762. package/node_modules/zod/v4/core/versions.d.ts +1 -1
  763. package/node_modules/zod/v4/core/versions.js +2 -2
  764. package/node_modules/zod/v4/core/visit.cjs +214 -0
  765. package/node_modules/zod/v4/core/visit.d.cts +30 -0
  766. package/node_modules/zod/v4/core/visit.d.ts +30 -0
  767. package/node_modules/zod/v4/core/visit.js +169 -0
  768. package/node_modules/zod/v4/index.cjs +34 -5
  769. package/node_modules/zod/v4/index.d.cts +2 -2
  770. package/node_modules/zod/v4/index.d.ts +2 -2
  771. package/node_modules/zod/v4/index.js +3 -2
  772. package/node_modules/zod/v4/locales/ar.cjs +20 -24
  773. package/node_modules/zod/v4/locales/ar.d.cts +2 -1
  774. package/node_modules/zod/v4/locales/ar.js +19 -24
  775. package/node_modules/zod/v4/locales/az.cjs +20 -24
  776. package/node_modules/zod/v4/locales/az.d.cts +2 -1
  777. package/node_modules/zod/v4/locales/az.js +19 -24
  778. package/node_modules/zod/v4/locales/be.cjs +29 -24
  779. package/node_modules/zod/v4/locales/be.d.cts +2 -1
  780. package/node_modules/zod/v4/locales/be.js +28 -24
  781. package/node_modules/zod/v4/locales/bg.cjs +152 -0
  782. package/node_modules/zod/v4/locales/bg.d.cts +5 -0
  783. package/node_modules/zod/v4/locales/bg.d.ts +4 -0
  784. package/node_modules/zod/v4/locales/bg.js +125 -0
  785. package/node_modules/zod/v4/locales/bn.cjs +140 -0
  786. package/node_modules/zod/v4/locales/bn.d.cts +5 -0
  787. package/node_modules/zod/v4/locales/bn.d.ts +4 -0
  788. package/node_modules/zod/v4/locales/bn.js +113 -0
  789. package/node_modules/zod/v4/locales/ca.cjs +20 -25
  790. package/node_modules/zod/v4/locales/ca.d.cts +2 -1
  791. package/node_modules/zod/v4/locales/ca.js +19 -25
  792. package/node_modules/zod/v4/locales/ckb.cjs +160 -0
  793. package/node_modules/zod/v4/locales/ckb.d.cts +5 -0
  794. package/node_modules/zod/v4/locales/ckb.d.ts +4 -0
  795. package/node_modules/zod/v4/locales/ckb.js +133 -0
  796. package/node_modules/zod/v4/locales/cs.cjs +24 -42
  797. package/node_modules/zod/v4/locales/cs.d.cts +2 -1
  798. package/node_modules/zod/v4/locales/cs.js +23 -42
  799. package/node_modules/zod/v4/locales/da.cjs +147 -0
  800. package/node_modules/zod/v4/locales/da.d.cts +5 -0
  801. package/node_modules/zod/v4/locales/da.d.ts +4 -0
  802. package/node_modules/zod/v4/locales/da.js +120 -0
  803. package/node_modules/zod/v4/locales/de.cjs +22 -24
  804. package/node_modules/zod/v4/locales/de.d.cts +2 -1
  805. package/node_modules/zod/v4/locales/de.js +21 -24
  806. package/node_modules/zod/v4/locales/el.cjs +139 -0
  807. package/node_modules/zod/v4/locales/el.d.cts +5 -0
  808. package/node_modules/zod/v4/locales/el.d.ts +4 -0
  809. package/node_modules/zod/v4/locales/el.js +112 -0
  810. package/node_modules/zod/v4/locales/en.cjs +35 -28
  811. package/node_modules/zod/v4/locales/en.d.cts +2 -2
  812. package/node_modules/zod/v4/locales/en.d.ts +0 -1
  813. package/node_modules/zod/v4/locales/en.js +34 -26
  814. package/node_modules/zod/v4/locales/eo.cjs +23 -26
  815. package/node_modules/zod/v4/locales/eo.d.cts +2 -2
  816. package/node_modules/zod/v4/locales/eo.d.ts +0 -1
  817. package/node_modules/zod/v4/locales/eo.js +22 -24
  818. package/node_modules/zod/v4/locales/es.cjs +51 -31
  819. package/node_modules/zod/v4/locales/es.d.cts +2 -1
  820. package/node_modules/zod/v4/locales/es.js +50 -31
  821. package/node_modules/zod/v4/locales/fa.cjs +22 -24
  822. package/node_modules/zod/v4/locales/fa.d.cts +2 -1
  823. package/node_modules/zod/v4/locales/fa.js +21 -24
  824. package/node_modules/zod/v4/locales/fi.cjs +20 -24
  825. package/node_modules/zod/v4/locales/fi.d.cts +2 -1
  826. package/node_modules/zod/v4/locales/fi.js +19 -24
  827. package/node_modules/zod/v4/locales/fr-CA.cjs +20 -24
  828. package/node_modules/zod/v4/locales/fr-CA.d.cts +2 -1
  829. package/node_modules/zod/v4/locales/fr-CA.js +19 -24
  830. package/node_modules/zod/v4/locales/fr.cjs +53 -39
  831. package/node_modules/zod/v4/locales/fr.d.cts +2 -1
  832. package/node_modules/zod/v4/locales/fr.js +52 -39
  833. package/node_modules/zod/v4/locales/gu.cjs +140 -0
  834. package/node_modules/zod/v4/locales/gu.d.cts +5 -0
  835. package/node_modules/zod/v4/locales/gu.d.ts +4 -0
  836. package/node_modules/zod/v4/locales/gu.js +113 -0
  837. package/node_modules/zod/v4/locales/he.cjs +183 -78
  838. package/node_modules/zod/v4/locales/he.d.cts +2 -1
  839. package/node_modules/zod/v4/locales/he.js +182 -78
  840. package/node_modules/zod/v4/locales/hi.cjs +138 -0
  841. package/node_modules/zod/v4/locales/hi.d.cts +5 -0
  842. package/node_modules/zod/v4/locales/hi.d.ts +4 -0
  843. package/node_modules/zod/v4/locales/hi.js +111 -0
  844. package/node_modules/zod/v4/locales/hr.cjs +153 -0
  845. package/node_modules/zod/v4/locales/hr.d.cts +5 -0
  846. package/node_modules/zod/v4/locales/hr.d.ts +4 -0
  847. package/node_modules/zod/v4/locales/hr.js +126 -0
  848. package/node_modules/zod/v4/locales/hu.cjs +22 -25
  849. package/node_modules/zod/v4/locales/hu.d.cts +2 -1
  850. package/node_modules/zod/v4/locales/hu.js +21 -25
  851. package/node_modules/zod/v4/locales/hy.cjs +185 -0
  852. package/node_modules/zod/v4/locales/hy.d.cts +5 -0
  853. package/node_modules/zod/v4/locales/hy.d.ts +4 -0
  854. package/node_modules/zod/v4/locales/hy.js +158 -0
  855. package/node_modules/zod/v4/locales/id.cjs +20 -24
  856. package/node_modules/zod/v4/locales/id.d.cts +2 -1
  857. package/node_modules/zod/v4/locales/id.js +19 -24
  858. package/node_modules/zod/v4/locales/index.cjs +69 -1
  859. package/node_modules/zod/v4/locales/index.d.cts +24 -0
  860. package/node_modules/zod/v4/locales/index.d.ts +24 -0
  861. package/node_modules/zod/v4/locales/index.js +24 -0
  862. package/node_modules/zod/v4/locales/is.cjs +141 -0
  863. package/node_modules/zod/v4/locales/is.d.cts +5 -0
  864. package/node_modules/zod/v4/locales/is.d.ts +4 -0
  865. package/node_modules/zod/v4/locales/is.js +114 -0
  866. package/node_modules/zod/v4/locales/it.cjs +22 -25
  867. package/node_modules/zod/v4/locales/it.d.cts +2 -1
  868. package/node_modules/zod/v4/locales/it.js +21 -25
  869. package/node_modules/zod/v4/locales/ja.cjs +22 -24
  870. package/node_modules/zod/v4/locales/ja.d.cts +2 -1
  871. package/node_modules/zod/v4/locales/ja.js +21 -24
  872. package/node_modules/zod/v4/locales/ka.cjs +144 -0
  873. package/node_modules/zod/v4/locales/ka.d.cts +5 -0
  874. package/node_modules/zod/v4/locales/ka.d.ts +4 -0
  875. package/node_modules/zod/v4/locales/ka.js +117 -0
  876. package/node_modules/zod/v4/locales/kh.cjs +6 -137
  877. package/node_modules/zod/v4/locales/kh.d.cts +2 -1
  878. package/node_modules/zod/v4/locales/kh.d.ts +1 -0
  879. package/node_modules/zod/v4/locales/kh.js +3 -115
  880. package/node_modules/zod/v4/locales/km.cjs +142 -0
  881. package/node_modules/zod/v4/locales/km.d.cts +5 -0
  882. package/node_modules/zod/v4/locales/km.d.ts +4 -0
  883. package/node_modules/zod/v4/locales/km.js +115 -0
  884. package/node_modules/zod/v4/locales/kn.cjs +143 -0
  885. package/node_modules/zod/v4/locales/kn.d.cts +5 -0
  886. package/node_modules/zod/v4/locales/kn.d.ts +4 -0
  887. package/node_modules/zod/v4/locales/kn.js +116 -0
  888. package/node_modules/zod/v4/locales/ko.cjs +20 -24
  889. package/node_modules/zod/v4/locales/ko.d.cts +2 -1
  890. package/node_modules/zod/v4/locales/ko.js +19 -24
  891. package/node_modules/zod/v4/locales/lt.cjs +234 -0
  892. package/node_modules/zod/v4/locales/lt.d.cts +5 -0
  893. package/node_modules/zod/v4/locales/lt.d.ts +4 -0
  894. package/node_modules/zod/v4/locales/lt.js +207 -0
  895. package/node_modules/zod/v4/locales/mk.cjs +22 -25
  896. package/node_modules/zod/v4/locales/mk.d.cts +2 -1
  897. package/node_modules/zod/v4/locales/mk.js +21 -25
  898. package/node_modules/zod/v4/locales/ms.cjs +21 -24
  899. package/node_modules/zod/v4/locales/ms.d.cts +2 -1
  900. package/node_modules/zod/v4/locales/ms.js +20 -24
  901. package/node_modules/zod/v4/locales/ne.cjs +138 -0
  902. package/node_modules/zod/v4/locales/ne.d.cts +5 -0
  903. package/node_modules/zod/v4/locales/ne.d.ts +4 -0
  904. package/node_modules/zod/v4/locales/ne.js +111 -0
  905. package/node_modules/zod/v4/locales/nl.cjs +31 -32
  906. package/node_modules/zod/v4/locales/nl.d.cts +2 -1
  907. package/node_modules/zod/v4/locales/nl.js +30 -32
  908. package/node_modules/zod/v4/locales/nn.cjs +140 -0
  909. package/node_modules/zod/v4/locales/nn.d.cts +5 -0
  910. package/node_modules/zod/v4/locales/nn.d.ts +4 -0
  911. package/node_modules/zod/v4/locales/nn.js +113 -0
  912. package/node_modules/zod/v4/locales/no.cjs +24 -26
  913. package/node_modules/zod/v4/locales/no.d.cts +2 -1
  914. package/node_modules/zod/v4/locales/no.js +23 -26
  915. package/node_modules/zod/v4/locales/ota.cjs +23 -25
  916. package/node_modules/zod/v4/locales/ota.d.cts +2 -1
  917. package/node_modules/zod/v4/locales/ota.js +22 -25
  918. package/node_modules/zod/v4/locales/package.json +7 -0
  919. package/node_modules/zod/v4/locales/pl.cjs +22 -24
  920. package/node_modules/zod/v4/locales/pl.d.cts +2 -1
  921. package/node_modules/zod/v4/locales/pl.js +21 -24
  922. package/node_modules/zod/v4/locales/ps.cjs +22 -24
  923. package/node_modules/zod/v4/locales/ps.d.cts +2 -1
  924. package/node_modules/zod/v4/locales/ps.js +21 -24
  925. package/node_modules/zod/v4/locales/pt-BR.cjs +170 -0
  926. package/node_modules/zod/v4/locales/pt-BR.d.cts +5 -0
  927. package/node_modules/zod/v4/locales/pt-BR.d.ts +4 -0
  928. package/node_modules/zod/v4/locales/pt-BR.js +143 -0
  929. package/node_modules/zod/v4/locales/pt.cjs +95 -68
  930. package/node_modules/zod/v4/locales/pt.d.cts +2 -1
  931. package/node_modules/zod/v4/locales/pt.js +94 -68
  932. package/node_modules/zod/v4/locales/ro.cjs +149 -0
  933. package/node_modules/zod/v4/locales/ro.d.cts +5 -0
  934. package/node_modules/zod/v4/locales/ro.d.ts +4 -0
  935. package/node_modules/zod/v4/locales/ro.js +122 -0
  936. package/node_modules/zod/v4/locales/ru.cjs +29 -24
  937. package/node_modules/zod/v4/locales/ru.d.cts +2 -1
  938. package/node_modules/zod/v4/locales/ru.js +28 -24
  939. package/node_modules/zod/v4/locales/sk.cjs +143 -0
  940. package/node_modules/zod/v4/locales/sk.d.cts +5 -0
  941. package/node_modules/zod/v4/locales/sk.d.ts +4 -0
  942. package/node_modules/zod/v4/locales/sk.js +116 -0
  943. package/node_modules/zod/v4/locales/sl.cjs +22 -24
  944. package/node_modules/zod/v4/locales/sl.d.cts +2 -1
  945. package/node_modules/zod/v4/locales/sl.js +21 -24
  946. package/node_modules/zod/v4/locales/sv.cjs +24 -26
  947. package/node_modules/zod/v4/locales/sv.d.cts +2 -1
  948. package/node_modules/zod/v4/locales/sv.js +23 -26
  949. package/node_modules/zod/v4/locales/ta.cjs +23 -24
  950. package/node_modules/zod/v4/locales/ta.d.cts +2 -1
  951. package/node_modules/zod/v4/locales/ta.js +22 -24
  952. package/node_modules/zod/v4/locales/tg.cjs +144 -0
  953. package/node_modules/zod/v4/locales/tg.d.cts +5 -0
  954. package/node_modules/zod/v4/locales/tg.d.ts +4 -0
  955. package/node_modules/zod/v4/locales/tg.js +117 -0
  956. package/node_modules/zod/v4/locales/th.cjs +23 -24
  957. package/node_modules/zod/v4/locales/th.d.cts +2 -1
  958. package/node_modules/zod/v4/locales/th.js +22 -24
  959. package/node_modules/zod/v4/locales/tk.cjs +134 -0
  960. package/node_modules/zod/v4/locales/tk.d.cts +5 -0
  961. package/node_modules/zod/v4/locales/tk.d.ts +4 -0
  962. package/node_modules/zod/v4/locales/tk.js +107 -0
  963. package/node_modules/zod/v4/locales/tr.cjs +20 -26
  964. package/node_modules/zod/v4/locales/tr.d.cts +2 -2
  965. package/node_modules/zod/v4/locales/tr.d.ts +0 -1
  966. package/node_modules/zod/v4/locales/tr.js +19 -24
  967. package/node_modules/zod/v4/locales/ua.cjs +6 -137
  968. package/node_modules/zod/v4/locales/ua.d.cts +2 -1
  969. package/node_modules/zod/v4/locales/ua.d.ts +1 -0
  970. package/node_modules/zod/v4/locales/ua.js +3 -115
  971. package/node_modules/zod/v4/locales/uk.cjs +140 -0
  972. package/node_modules/zod/v4/locales/uk.d.cts +5 -0
  973. package/node_modules/zod/v4/locales/uk.d.ts +4 -0
  974. package/node_modules/zod/v4/locales/uk.js +113 -0
  975. package/node_modules/zod/v4/locales/ur.cjs +23 -24
  976. package/node_modules/zod/v4/locales/ur.d.cts +2 -1
  977. package/node_modules/zod/v4/locales/ur.js +22 -24
  978. package/node_modules/zod/v4/locales/uz.cjs +140 -0
  979. package/node_modules/zod/v4/locales/uz.d.cts +5 -0
  980. package/node_modules/zod/v4/locales/uz.d.ts +4 -0
  981. package/node_modules/zod/v4/locales/uz.js +113 -0
  982. package/node_modules/zod/v4/locales/vi.cjs +22 -24
  983. package/node_modules/zod/v4/locales/vi.d.cts +2 -1
  984. package/node_modules/zod/v4/locales/vi.js +21 -24
  985. package/node_modules/zod/v4/locales/yo.cjs +139 -0
  986. package/node_modules/zod/v4/locales/yo.d.cts +5 -0
  987. package/node_modules/zod/v4/locales/yo.d.ts +4 -0
  988. package/node_modules/zod/v4/locales/yo.js +112 -0
  989. package/node_modules/zod/v4/locales/zh-CN.cjs +23 -24
  990. package/node_modules/zod/v4/locales/zh-CN.d.cts +2 -1
  991. package/node_modules/zod/v4/locales/zh-CN.js +22 -24
  992. package/node_modules/zod/v4/locales/zh-TW.cjs +20 -24
  993. package/node_modules/zod/v4/locales/zh-TW.d.cts +2 -1
  994. package/node_modules/zod/v4/locales/zh-TW.js +19 -24
  995. package/node_modules/zod/v4/mini/checks.cjs +21 -1
  996. package/node_modules/zod/v4/mini/checks.d.cts +1 -1
  997. package/node_modules/zod/v4/mini/checks.d.ts +1 -1
  998. package/node_modules/zod/v4/mini/checks.js +1 -1
  999. package/node_modules/zod/v4/mini/coerce.cjs +24 -0
  1000. package/node_modules/zod/v4/mini/coerce.js +5 -0
  1001. package/node_modules/zod/v4/mini/deep-partial.cjs +58 -0
  1002. package/node_modules/zod/v4/mini/deep-partial.d.cts +14 -0
  1003. package/node_modules/zod/v4/mini/deep-partial.d.ts +14 -0
  1004. package/node_modules/zod/v4/mini/deep-partial.js +13 -0
  1005. package/node_modules/zod/v4/mini/external.cjs +36 -3
  1006. package/node_modules/zod/v4/mini/external.d.cts +7 -2
  1007. package/node_modules/zod/v4/mini/external.d.ts +7 -2
  1008. package/node_modules/zod/v4/mini/external.js +4 -1
  1009. package/node_modules/zod/v4/mini/in-out.cjs +82 -0
  1010. package/node_modules/zod/v4/mini/in-out.d.cts +8 -0
  1011. package/node_modules/zod/v4/mini/in-out.d.ts +8 -0
  1012. package/node_modules/zod/v4/mini/in-out.js +36 -0
  1013. package/node_modules/zod/v4/mini/index.cjs +19 -0
  1014. package/node_modules/zod/v4/mini/iso.cjs +27 -4
  1015. package/node_modules/zod/v4/mini/iso.js +8 -4
  1016. package/node_modules/zod/v4/mini/package.json +7 -0
  1017. package/node_modules/zod/v4/mini/parse.cjs +30 -1
  1018. package/node_modules/zod/v4/mini/parse.d.cts +1 -1
  1019. package/node_modules/zod/v4/mini/parse.d.ts +1 -1
  1020. package/node_modules/zod/v4/mini/parse.js +1 -1
  1021. package/node_modules/zod/v4/mini/schemas.cjs +390 -82
  1022. package/node_modules/zod/v4/mini/schemas.d.cts +156 -32
  1023. package/node_modules/zod/v4/mini/schemas.d.ts +156 -32
  1024. package/node_modules/zod/v4/mini/schemas.js +329 -59
  1025. package/node_modules/zod/v4/package.json +7 -0
  1026. package/node_modules/zod/v4-mini/index.cjs +35 -1
  1027. package/node_modules/zod/v4-mini/index.d.cts +3 -1
  1028. package/node_modules/zod/v4-mini/index.d.ts +3 -1
  1029. package/node_modules/zod/v4-mini/index.js +3 -1
  1030. package/node_modules/zod/v4-mini/package.json +7 -0
  1031. package/package.json +4 -4
  1032. package/dist/ui/assets/index-DNNXeRpZ.js +0 -123
  1033. package/dist/ui/assets/index-Osk4E49r.css +0 -1
  1034. package/node_modules/zod/src/v4/core/config.ts +0 -15
  1035. package/node_modules/zod/src/v4/core/function.ts +0 -176
  1036. package/node_modules/zod/v4/core/function.cjs +0 -102
  1037. package/node_modules/zod/v4/core/function.d.cts +0 -52
  1038. package/node_modules/zod/v4/core/function.d.ts +0 -52
  1039. package/node_modules/zod/v4/core/function.js +0 -75
@@ -744,12 +744,19 @@ async function postInternal(path, body) {
744
744
  clearTimeout(timer);
745
745
  }
746
746
  }
747
- async function cpEncryptContent(toolArgs, recipientUserIds) {
748
- const data = await postInternal("/internal/encrypt-content", { toolArgs, recipientUserIds });
747
+ async function cpEncryptContent(toolArgs, recipientUserIds, readers) {
748
+ const data = await postInternal("/internal/encrypt-content", { toolArgs, recipientUserIds, ...readers ? { readers } : {} });
749
749
  return data;
750
750
  }
751
751
  async function cpDecryptContent(wire) {
752
- const data = await postInternal("/internal/decrypt-content", { ciphertext: wire.ciphertext, keys: wire.keys });
752
+ const data = await postInternal("/internal/decrypt-content", {
753
+ ciphertext: wire.ciphertext,
754
+ // Both names: under a 0.8 mandate `encrypted_keys` is keyed by DID and
755
+ // `keys` by account id; the control plane finds this user's wrap by either.
756
+ keys: { ...wire.keys ?? {}, ...wire.encrypted_keys ?? {} },
757
+ // v0.8 rule 8: the control plane checks the decrypted content against the fingerprint.
758
+ ...wire.proposalContentHash ? { proposalContentHash: wire.proposalContentHash } : wire.hash ? { hash: wire.hash } : {}
759
+ });
753
760
  return data.plaintext;
754
761
  }
755
762
 
@@ -983,7 +990,10 @@ var SPClient = class {
983
990
  const { proposalContentHash, ...rest } = data;
984
991
  const body = JSON.stringify({
985
992
  ...rest,
986
- ...proposalContentHash ? { proposal_content_hash: proposalContentHash } : {}
993
+ // v0.8 wire name is `proposalContentHash`; today's AS reads the
994
+ // Suveren-internal `proposal_content_hash`. Both are sent through the
995
+ // transition (same value); the AS of Track B reads the normative one.
996
+ ...proposalContentHash ? { proposal_content_hash: proposalContentHash, proposalContentHash } : {}
987
997
  });
988
998
  const maxAttempts = data.idempotencyKey || data.proposalId ? this.receiptRetry.maxAttempts : 1;
989
999
  let lastError;
@@ -1037,7 +1047,7 @@ var SPClient = class {
1037
1047
  * read it; the caller reports who cannot.
1038
1048
  */
1039
1049
  async submitProposal(data) {
1040
- const { content, unreadableFor } = await cpEncryptContent(data.toolArgs, data.recipientUserIds);
1050
+ const { content, unreadableFor } = await cpEncryptContent(data.toolArgs, data.recipientUserIds, data.readers);
1041
1051
  const res = await this.fetch("/api/proposals", {
1042
1052
  method: "POST",
1043
1053
  body: JSON.stringify({
@@ -1046,8 +1056,18 @@ var SPClient = class {
1046
1056
  path: data.path,
1047
1057
  pending_domains: data.pendingDomains,
1048
1058
  tool: data.tool,
1059
+ // v0.8 normative object, beside the Suveren-internal fields today's AS
1060
+ // reads: `content` carries `encrypted_keys`/`readers`/`unreadable` with
1061
+ // the legacy `keys`/`hash`; the fingerprint travels as
1062
+ // `proposalContentHash`; the operation as `action` + `actionType`.
1049
1063
  content,
1064
+ proposalContentHash: content.hash,
1065
+ action: data.tool,
1066
+ ...data.actionType ? { actionType: data.actionType } : {},
1067
+ ...data.mandateId ? { mandateId: data.mandateId } : {},
1068
+ ...data.boundsHash ? { boundsHash: data.boundsHash } : {},
1050
1069
  execution_context: data.executionContext,
1070
+ executionContext: data.executionContext,
1051
1071
  // Phase 6
1052
1072
  ...data.pendingApprovers && data.pendingApprovers.length > 0 ? { pending_approvers: data.pendingApprovers } : {},
1053
1073
  ...data.createdBy ? { created_by: data.createdBy } : {}
@@ -1331,6 +1351,7 @@ var AttestationCache = class {
1331
1351
  }
1332
1352
  let signedCommitmentMode;
1333
1353
  let subjects;
1354
+ let mandateId;
1334
1355
  const firstBlob = result.attestations[0]?.blob;
1335
1356
  if (firstBlob) {
1336
1357
  try {
@@ -1341,6 +1362,39 @@ var AttestationCache = class {
1341
1362
  signedCommitmentMode = void 0;
1342
1363
  }
1343
1364
  }
1365
+ const mandateIds = [];
1366
+ let mandateVersion;
1367
+ const nowSec4 = Math.floor(Date.now() / 1e3);
1368
+ for (const a of result.attestations) {
1369
+ if (!a.blob) continue;
1370
+ try {
1371
+ const id = decodeMandateBlob(a.blob).payload.mandate_id;
1372
+ if (typeof id !== "string") continue;
1373
+ if (!mandateIds.includes(id)) mandateIds.push(id);
1374
+ if (mandateId === void 0 && a.expires_at > nowSec4) {
1375
+ mandateId = id;
1376
+ const v = decodeMandateBlob(a.blob).payload.version;
1377
+ if (typeof v === "string") mandateVersion = v;
1378
+ }
1379
+ } catch {
1380
+ }
1381
+ }
1382
+ mandateId ??= mandateIds[0];
1383
+ let proposalReaders;
1384
+ let latestIssuedAt = -Infinity;
1385
+ for (const a of result.attestations) {
1386
+ if (!a.blob) continue;
1387
+ try {
1388
+ const p = decodeMandateBlob(a.blob).payload;
1389
+ const ownerDid = p.mandate_owners?.[0]?.did;
1390
+ if (typeof p.version !== "string" || typeof ownerDid !== "string") continue;
1391
+ const issuedAt = typeof p.issued_at === "number" ? p.issued_at : 0;
1392
+ if (issuedAt < latestIssuedAt) continue;
1393
+ latestIssuedAt = issuedAt;
1394
+ proposalReaders = { version: p.version, ownerDid, deciders: [...p.above_cap_approvers ?? []] };
1395
+ } catch {
1396
+ }
1397
+ }
1344
1398
  const auth = {
1345
1399
  authorizationId: result.authorization_id,
1346
1400
  boundsHash: result.bounds_hash,
@@ -1362,6 +1416,10 @@ var AttestationCache = class {
1362
1416
  attestedDomains: result.attested_domains ?? [],
1363
1417
  deferredCommitmentDomains: result.deferred_commitment_domains ?? [],
1364
1418
  signedCommitmentMode,
1419
+ mandateId,
1420
+ mandateIds,
1421
+ mandateVersion,
1422
+ proposalReaders,
1365
1423
  subjects,
1366
1424
  complete: result.complete,
1367
1425
  groupId
@@ -2169,17 +2227,69 @@ var ExecutionJournal = class {
2169
2227
  }
2170
2228
  /** Look a ticket up. Always reads from disk — another process may have written. */
2171
2229
  get(ticketId) {
2172
- return this.load().entries.find((e) => e.ticketId === ticketId);
2230
+ return this.load().entries.find((e) => e.ticketId === ticketId && ticketId !== "");
2231
+ }
2232
+ /** The row for a request (idempotencyKey / proposalId), whatever its state. */
2233
+ getByRequest(requestKey) {
2234
+ return this.load().entries.find((e) => e.requestKey === requestKey);
2235
+ }
2236
+ /**
2237
+ * v0.8 — record that a ticket is about to be REQUESTED for this request,
2238
+ * before the request leaves the machine (*One execution per ticket*, rule 1).
2239
+ * A lost response then leaves a `requested` row: "the ticket never arrived,
2240
+ * so the action cannot have started" — the one case a replayed ticket may
2241
+ * run (rule 2). Idempotent for the same request key: a retry of the request
2242
+ * itself keeps the one row.
2243
+ */
2244
+ requested(entry) {
2245
+ const file = this.load();
2246
+ if (file.entries.some((e) => e.requestKey === entry.requestKey)) return;
2247
+ file.entries.push({
2248
+ ticketId: "",
2249
+ ...entry,
2250
+ state: "requested",
2251
+ startedAt: nowSec(),
2252
+ pid: process.pid
2253
+ });
2254
+ this.persist(file);
2173
2255
  }
2174
2256
  /**
2175
- * Record intent to execute under `ticketId`. Refuses if any row for that
2176
- * ticket already exists, whatever its state — deciding what an existing row
2177
- * means is the caller's job, and it differs by state (see commitments.ts).
2257
+ * Close a `requested` row whose ticket was never issued (the AS refused).
2258
+ * Nothing ran; the row records that the request was judged and refused.
2259
+ */
2260
+ refusedBeforeTicket(requestKey, outcome, detail) {
2261
+ const file = this.load();
2262
+ const row = file.entries.find((e) => e.requestKey === requestKey && e.state === "requested");
2263
+ if (!row) return;
2264
+ row.state = "failed";
2265
+ row.outcome = outcome;
2266
+ if (detail !== void 0) row.detail = detail.length > DETAIL_CAP ? detail.slice(0, DETAIL_CAP) : detail;
2267
+ row.finishedAt = nowSec();
2268
+ this.persist(file);
2269
+ }
2270
+ /**
2271
+ * Claim the ticket for execution — the atomic move to `intent` ("started")
2272
+ * BEFORE the downstream call (*One execution per ticket*, rule 2). Refuses
2273
+ * if a row for that ticket already exists, whatever its state — deciding
2274
+ * what an existing row means is the caller's job, and it differs by state
2275
+ * (see commitments.ts). With a `requestKey`, a row for the SAME request that
2276
+ * is already `intent`/`done`/`failed` refuses too — a second ticket with a
2277
+ * new id for the same request is not executed again; a `requested` row is
2278
+ * upgraded in place.
2178
2279
  */
2179
2280
  begin(entry) {
2180
2281
  const file = this.load();
2181
- const existing = file.entries.find((e) => e.ticketId === entry.ticketId);
2282
+ const existing = file.entries.find((e) => e.ticketId === entry.ticketId && e.ticketId !== "");
2182
2283
  if (existing) return { ok: false, existing };
2284
+ if (entry.requestKey) {
2285
+ const sameRequest = file.entries.find((e) => e.requestKey === entry.requestKey);
2286
+ if (sameRequest && sameRequest.state !== "requested") return { ok: false, existing: sameRequest };
2287
+ if (sameRequest) {
2288
+ Object.assign(sameRequest, entry, { state: "intent", startedAt: nowSec(), pid: process.pid });
2289
+ this.persist(file);
2290
+ return { ok: true };
2291
+ }
2292
+ }
2183
2293
  file.entries.push({
2184
2294
  ...entry,
2185
2295
  state: "intent",
@@ -2431,7 +2541,8 @@ var ProposalSubmissionStore = class {
2431
2541
  authorizationId: entry.authorizationId,
2432
2542
  profileId: entry.profileId,
2433
2543
  submittedAt: nowSec3(),
2434
- ...entry.previewHash ? { previewHash: entry.previewHash } : {}
2544
+ ...entry.previewHash ? { previewHash: entry.previewHash } : {},
2545
+ ...entry.actionType ? { actionType: entry.actionType } : {}
2435
2546
  });
2436
2547
  this.persist(file);
2437
2548
  }
@@ -3230,7 +3341,7 @@ var ReportStore = class {
3230
3341
  };
3231
3342
 
3232
3343
  // src/lib/shared-state.ts
3233
- import { PROTOCOL_VERSION } from "@hap/core";
3344
+ import { SUPPORTED_VERSIONS } from "@hap/core";
3234
3345
  var SharedState = class {
3235
3346
  spClient;
3236
3347
  cache;
@@ -3259,7 +3370,7 @@ var SharedState = class {
3259
3370
  * again whenever the AS URL this process pairs with changes — which, in
3260
3371
  * practice, only happens across a restart; see bin/http.ts's
3261
3372
  * `repairIfAsUrlChanged`). Non-null means the AS this gateway is paired
3262
- * with does not list {@link PROTOCOL_VERSION} among its
3373
+ * with shares no version with SUPPORTED_VERSIONS among its
3263
3374
  * `supportedVersions` — every gated tool call MUST refuse with this
3264
3375
  * message rather than reach the AS at all (checked in tool-proxy.ts,
3265
3376
  * before anything else). `null` until the first check completes, which
@@ -3269,6 +3380,16 @@ var SharedState = class {
3269
3380
  * unreachable at boot must not permanently brick the gateway).
3270
3381
  */
3271
3382
  asVersionRefusal = null;
3383
+ /** v0.8: whether the paired Authority Server lists 0.8 among its supportedVersions —
3384
+ * read once at start-up ({@link checkAsCompat}); false until known. Where the wire
3385
+ * shape differs between a 0.7 and a 0.8 AS (today: nothing), this is the switch. */
3386
+ asSpeaks08 = false;
3387
+ /** v0.8: the paired AS's supportedVersions as read at start-up; null until
3388
+ * known. A mandate whose signed version is not in it can no longer be
3389
+ * exercised (protocol.md → Version negotiation, rule 3: a v0.8 AS issues no
3390
+ * ticket against a v0.7 mandate) and is shown as needing to be signed again
3391
+ * before any call is refused for it. */
3392
+ asSupportedVersions = null;
3272
3393
  /**
3273
3394
  * @param dataDir Passed to the AttestationCache so it can enforce AS key
3274
3395
  * pinning (as-pairing.ts), and to the SPClient so it can enforce opt-in
@@ -3309,8 +3430,11 @@ var SharedState = class {
3309
3430
  return;
3310
3431
  }
3311
3432
  const supported = Array.isArray(compat.supportedVersions) ? compat.supportedVersions : [];
3312
- if (!supported.includes(PROTOCOL_VERSION)) {
3313
- this.asVersionRefusal = supported.length > 0 ? `This Authority Server supports protocol version(s) [${supported.join(", ")}], not ${PROTOCOL_VERSION}. Update the gateway or the Authority Server so the two agree, then restart. No gated action can run until then.` : `This Authority Server's /api/as/compat does not name a supportedVersions list (it answered ${JSON.stringify(compat.protocolVersion ?? "unknown")}), so it cannot be confirmed to support protocol ${PROTOCOL_VERSION}. Update the gateway or the Authority Server, then restart. No gated action can run until then.`;
3433
+ const common = SUPPORTED_VERSIONS.filter((v) => supported.includes(v));
3434
+ this.asSpeaks08 = supported.includes("0.8");
3435
+ this.asSupportedVersions = supported.filter((v) => typeof v === "string");
3436
+ if (common.length === 0) {
3437
+ this.asVersionRefusal = supported.length > 0 ? `This Authority Server supports protocol version(s) [${supported.join(", ")}], none of [${SUPPORTED_VERSIONS.join(", ")}] this gateway speaks. Update the gateway or the Authority Server so the two agree, then restart. No gated action can run until then.` : `This Authority Server's /api/as/compat does not name a supportedVersions list (it answered ${JSON.stringify(compat.protocolVersion ?? "unknown")}), so it cannot be confirmed to support any of protocol [${SUPPORTED_VERSIONS.join(", ")}]. Update the gateway or the Authority Server, then restart. No gated action can run until then.`;
3314
3438
  console.error(`[Suveren MCP] ${this.asVersionRefusal}`);
3315
3439
  } else {
3316
3440
  this.asVersionRefusal = null;
@@ -3400,7 +3524,7 @@ var SharedState = class {
3400
3524
  gateContent: gateEntry?.gateContent ?? null,
3401
3525
  context: auth.context ?? gateEntry?.context,
3402
3526
  contextHash: auth.contextHash ?? gateEntry?.contextHash,
3403
- needsReapproval: this.cache.needsReapproval(auth.authorizationId)
3527
+ needsReapproval: this.cache.needsReapproval(auth.authorizationId) || this.asSupportedVersions !== null && this.asSupportedVersions.length > 0 && typeof auth.mandateVersion === "string" && !this.asSupportedVersions.includes(auth.mandateVersion)
3404
3528
  };
3405
3529
  }).filter((auth) => auth.gateContent !== null);
3406
3530
  }
@@ -6418,7 +6542,13 @@ function attachTicketId(tool, args, ticketId) {
6418
6542
  }
6419
6543
 
6420
6544
  // src/lib/ticket-verify.ts
6421
- import { verifyTicketSignature } from "@hap/core";
6545
+ import {
6546
+ verifyTicketSignature,
6547
+ verifyTicketAgainstRequest,
6548
+ verifyTicketApprovals,
6549
+ decodeMandateBlob as decodeMandateBlob2,
6550
+ HapError
6551
+ } from "@hap/core";
6422
6552
  var TicketBindingMismatchError = class extends Error {
6423
6553
  constructor(message) {
6424
6554
  super(message);
@@ -6427,6 +6557,17 @@ var TicketBindingMismatchError = class extends Error {
6427
6557
  };
6428
6558
  var TICKET_MAX_AGE_SECONDS = 5 * 60;
6429
6559
  var TICKET_MAX_CLOCK_SKEW_SECONDS = 30;
6560
+ function mandateForTicket(attestations, ticketMandateId) {
6561
+ if (typeof ticketMandateId !== "string") return void 0;
6562
+ for (const a of attestations ?? []) {
6563
+ try {
6564
+ const m = decodeMandateBlob2(a.blob);
6565
+ if (m.payload.mandate_id === ticketMandateId) return m;
6566
+ } catch {
6567
+ }
6568
+ }
6569
+ return void 0;
6570
+ }
6430
6571
  async function verifyTicket(cache, receipt, expected) {
6431
6572
  const trustedIssuer = await cache.getTrustedIssuer();
6432
6573
  if (typeof receipt.signature !== "string" || !receipt.signature) {
@@ -6485,20 +6626,70 @@ async function verifyTicket(cache, receipt, expected) {
6485
6626
  if (typeof timestamp !== "number" || !Number.isFinite(timestamp)) {
6486
6627
  throw new TicketBindingMismatchError("Ticket carries no valid timestamp \u2014 refusing to execute.");
6487
6628
  }
6488
- const nowSec4 = Math.floor(Date.now() / 1e3);
6489
- const ageSec = nowSec4 - timestamp;
6490
- if (ageSec > TICKET_MAX_AGE_SECONDS) {
6491
- throw new TicketBindingMismatchError(
6492
- `Ticket is ${ageSec}s old, older than the ${TICKET_MAX_AGE_SECONDS}s freshness window \u2014 refusing to execute.`
6493
- );
6629
+ if (expected.replay !== true) {
6630
+ const nowSec4 = Math.floor(Date.now() / 1e3);
6631
+ const ageSec = nowSec4 - timestamp;
6632
+ if (ageSec > TICKET_MAX_AGE_SECONDS) {
6633
+ throw new TicketBindingMismatchError(
6634
+ `Ticket is ${ageSec}s old, older than the ${TICKET_MAX_AGE_SECONDS}s freshness window \u2014 refusing to execute.`
6635
+ );
6636
+ }
6637
+ if (ageSec < -TICKET_MAX_CLOCK_SKEW_SECONDS) {
6638
+ throw new TicketBindingMismatchError(
6639
+ `Ticket is timestamped ${-ageSec}s in the future, beyond the ${TICKET_MAX_CLOCK_SKEW_SECONDS}s clock-skew tolerance \u2014 refusing to execute.`
6640
+ );
6641
+ }
6494
6642
  }
6495
- if (ageSec < -TICKET_MAX_CLOCK_SKEW_SECONDS) {
6496
- throw new TicketBindingMismatchError(
6497
- `Ticket is timestamped ${-ageSec}s in the future, beyond the ${TICKET_MAX_CLOCK_SKEW_SECONDS}s clock-skew tolerance \u2014 refusing to execute.`
6643
+ const ticket = receipt;
6644
+ let acceptedMandateId = expected.mandateId;
6645
+ if (expected.mandateIds && expected.mandateIds.length > 0) {
6646
+ if (typeof ticket.mandateId !== "string" || !expected.mandateIds.includes(ticket.mandateId)) {
6647
+ throw new TicketBindingMismatchError(
6648
+ `TICKET_REQUEST_MISMATCH: ticket mandateId ${String(ticket.mandateId)} is not a mandate of this grant \u2014 refusing to execute.`
6649
+ );
6650
+ }
6651
+ acceptedMandateId = ticket.mandateId;
6652
+ }
6653
+ try {
6654
+ verifyTicketAgainstRequest(
6655
+ ticket,
6656
+ {
6657
+ profileId: expected.profileId ?? ticket.profileId,
6658
+ actionType: expected.actionType ?? ticket.actionType,
6659
+ boundsHash: expected.boundsHash ?? ticket.boundsHash,
6660
+ executionContext: expected.executionContext ?? ticket.executionContext ?? {},
6661
+ mandateId: acceptedMandateId,
6662
+ idempotencyKey: expected.idempotencyKey,
6663
+ contentHash: expected.contentHash ?? ticket.contentHash,
6664
+ contentBinding: expected.contentBinding !== void 0 ? expected.contentBinding : ticket.contentBinding,
6665
+ proposalId: expected.proposalId ?? ticket.proposalId,
6666
+ // A v0.7 ticket has no `proposalContentHash` (today's Authority Server
6667
+ // binds the fingerprint on the request only); a v0.8 ticket MUST carry
6668
+ // the one this call sent.
6669
+ proposalContentHash: ticket.version === "0.7" ? ticket.proposalContentHash : expected.proposalContentHash ?? ticket.proposalContentHash
6670
+ },
6671
+ { mandate: expected.mandate, replay: expected.replay === true }
6498
6672
  );
6673
+ } catch (err) {
6674
+ if (err instanceof HapError) {
6675
+ throw new TicketBindingMismatchError(`${err.message} \u2014 refusing to execute.`);
6676
+ }
6677
+ throw err;
6678
+ }
6679
+ if (expected.mandate && (ticket.approvalSignature || (ticket.approvalSignatures?.length ?? 0) > 0)) {
6680
+ try {
6681
+ await verifyTicketApprovals(ticket, expected.mandate);
6682
+ } catch (err) {
6683
+ throw new TicketBindingMismatchError(
6684
+ `${err instanceof Error ? err.message : String(err)} \u2014 the approval does not cover this operation; refusing to execute.`
6685
+ );
6686
+ }
6499
6687
  }
6500
6688
  }
6501
6689
 
6690
+ // src/lib/tool-proxy.ts
6691
+ import { wireExecutionContext as hapWireExecutionContext, checkExecutionValues, missingSumFields } from "@hap/core";
6692
+
6502
6693
  // src/lib/who-label.ts
6503
6694
  var UNKNOWN_DECIDER = "the person";
6504
6695
  async function resolveWhoLabel(archive, domainKey, userId) {
@@ -6720,21 +6911,8 @@ function profileMatches(profileId, shortName2) {
6720
6911
  }
6721
6912
  function wireExecutionContext(profileId, execution) {
6722
6913
  const profile = getProfile5(profileId);
6723
- const allowed = /* @__PURE__ */ new Set(["action_type"]);
6724
- const fields = profile?.boundsSchema?.fields;
6725
- if (fields) {
6726
- for (const fieldDef of Object.values(fields)) {
6727
- const bt = fieldDef.boundType;
6728
- if (bt && (bt.kind === "per_transaction" || bt.kind === "cumulative_sum") && bt.of) {
6729
- allowed.add(bt.of);
6730
- }
6731
- }
6732
- }
6733
- const out = {};
6734
- for (const [key, value] of Object.entries(execution)) {
6735
- if (allowed.has(key)) out[key] = value;
6736
- }
6737
- return out;
6914
+ if (!profile) return {};
6915
+ return hapWireExecutionContext(execution, profile);
6738
6916
  }
6739
6917
  function countBoundsFor(profileId, actionType) {
6740
6918
  const fields = getProfile5(profileId)?.boundsSchema?.fields;
@@ -6898,7 +7076,7 @@ function isStaleMandateRefusal(err) {
6898
7076
  }
6899
7077
  function isVersionUnsupportedRefusal(err) {
6900
7078
  const errors = err.body?.errors;
6901
- return err.statusCode === 409 && errors?.[0]?.code === "VERSION_UNSUPPORTED";
7079
+ return errors?.[0]?.code === "VERSION_UNSUPPORTED";
6902
7080
  }
6903
7081
  function createGatedToolHandlerInner(tool, integrationManager2, state2) {
6904
7082
  if (!tool.gating || !tool.gating.profile) {
@@ -7004,7 +7182,8 @@ function createGatedToolHandlerInner(tool, integrationManager2, state2) {
7004
7182
  ageBoundField
7005
7183
  ) : null;
7006
7184
  const isTeam = typeof state2.cache?.isTeamGroup === "function" ? state2.cache.isTeamGroup(matchingAuths[0]?.groupId) : void 0;
7007
- readMaxAge = isTeam === true && signedAge !== null ? localAge !== null ? Math.min(localAge, signedAge) : signedAge : localAge ?? signedAge;
7185
+ const ceilingMarked = ageBoundField !== null && boundsSchema?.fields?.[ageBoundField]?.enforcedBy === "gatekeeper" && matchingAuths.some((a) => a.mandateVersion === "0.8");
7186
+ readMaxAge = (ceilingMarked || isTeam === true) && signedAge !== null ? localAge !== null ? Math.min(localAge, signedAge) : signedAge : localAge ?? signedAge;
7008
7187
  if (readMaxAge === null) {
7009
7188
  return denyRead(
7010
7189
  state2,
@@ -7209,6 +7388,32 @@ function createGatedToolHandlerInner(tool, integrationManager2, state2) {
7209
7388
  return { content: [{ type: "text", text: noMandateRefusal(tool.namespacedName, mandateLabel) }], isError: true };
7210
7389
  }
7211
7390
  if (matchingAuths.length === 0) return noEligibleMandate(refusals);
7391
+ {
7392
+ const profileDefs = [...new Set(matchingAuths.map((a) => a.profileId))].map((id) => getProfile5(id)).filter((d) => d !== void 0);
7393
+ for (const profileDef of profileDefs) {
7394
+ try {
7395
+ checkExecutionValues(hapWireExecutionContext(execution, profileDef), profileDef);
7396
+ } catch (err) {
7397
+ const detail = err instanceof Error ? err.message : String(err);
7398
+ const field = /executionContext\.([A-Za-z0-9_]+)/.exec(detail)?.[1];
7399
+ const bounds = field ? Object.entries(profileDef.boundsSchema?.fields ?? {}).filter(([, def]) => def.boundType?.of === field).map(([name]) => name) : [];
7400
+ recordBlocked(state2, tool, {
7401
+ kind: "bound",
7402
+ detail,
7403
+ ...field ? { field } : {},
7404
+ who: "gateway",
7405
+ code: "MALFORMED_TICKET_REQUEST"
7406
+ });
7407
+ return {
7408
+ content: [{
7409
+ type: "text",
7410
+ text: `Blocked by Gatekeeper: ${field ? `"${field}" is not a number of zero or more` : "a value a bound reads is not a number of zero or more"}${bounds.length > 0 ? ` (read by ${bounds.join(", ")})` : ""} \u2014 ${detail}. Correct the request and try again.`
7411
+ }],
7412
+ isError: true
7413
+ };
7414
+ }
7415
+ }
7416
+ }
7212
7417
  const blockingFails = await failedBlockingChecks(integrationManager2, tool.integrationId, tool.originalName, args);
7213
7418
  if (blockingFails.length > 0) {
7214
7419
  recordBlocked(state2, tool, {
@@ -7366,7 +7571,12 @@ function createGatedToolHandlerInner(tool, integrationManager2, state2) {
7366
7571
  tool: tool.namespacedName,
7367
7572
  toolArgs: enrichedArgs,
7368
7573
  executionContext: wireExecCtx,
7369
- recipientUserIds
7574
+ recipientUserIds,
7575
+ // v0.8 — the normative proposal object (protocol.md → Proposals).
7576
+ mandateId: auth.mandateId,
7577
+ boundsHash: auth.boundsHash,
7578
+ actionType: declaredActionType,
7579
+ ...v08ProposalReaders(auth)
7370
7580
  });
7371
7581
  const previewHash = await computeSubmissionPreviewHash(
7372
7582
  integrationManager2,
@@ -7381,7 +7591,8 @@ function createGatedToolHandlerInner(tool, integrationManager2, state2) {
7381
7591
  executionContext: wireExecCtx,
7382
7592
  authorizationId: authzId,
7383
7593
  profileId: auth.profileId,
7384
- previewHash
7594
+ previewHash,
7595
+ actionType: declaredActionType
7385
7596
  });
7386
7597
  return {
7387
7598
  content: [{
@@ -7415,16 +7626,44 @@ Tell the person what you proposed and that it waits for their approval in the ga
7415
7626
  finalArgs = finalized.args;
7416
7627
  rebuildTransport = finalized.rebuildTransport;
7417
7628
  }
7629
+ if (auth.signedCommitmentMode === "automatic" && auth.mandateVersion === "0.8") {
7630
+ const profileDef = getProfile5(auth.profileId);
7631
+ const missing = profileDef ? missingSumFields(wireExecutionContext(auth.profileId, execution), profileDef, declaredActionType) : [];
7632
+ if (missing.length > 0) {
7633
+ const detail = `"${missing[0].field}" is required by the bound ${missing[0].bound} for "${declaredActionType}" calls, but this call carries none.`;
7634
+ recordBlocked(state2, tool, {
7635
+ kind: "bound",
7636
+ detail,
7637
+ field: missing[0].field,
7638
+ who: "gateway",
7639
+ code: "BOUND_EXCEEDED"
7640
+ });
7641
+ return {
7642
+ content: [{
7643
+ type: "text",
7644
+ text: `Blocked by Gatekeeper: ${detail} Without it the spend cannot be counted against the mandate, so nothing ran.`
7645
+ }],
7646
+ isError: true
7647
+ };
7648
+ }
7649
+ }
7418
7650
  let receiptId;
7651
+ let autoRequestKey;
7419
7652
  try {
7420
7653
  const actionType = declaredActionType;
7421
7654
  const binding = computeContentBinding(auth.profileId, tool, finalArgs, actionType);
7422
7655
  const idempotencyKey = randomUUID();
7423
7656
  const wireExecCtx = wireExecutionContext(auth.profileId, execution);
7424
- const { receipt } = await state2.spClient.postReceipt({
7657
+ state2.executionJournal?.requested?.({ requestKey: idempotencyKey, tool: tool.namespacedName, argsHash: hashToolArgs(finalArgs) });
7658
+ autoRequestKey = idempotencyKey;
7659
+ const { receipt, idempotent } = await state2.spClient.postReceipt({
7425
7660
  authorizationId: authzId,
7426
7661
  // Optional cross-check — the AS fails closed on a mismatch.
7427
7662
  boundsHash: auth.boundsHash,
7663
+ // v0.8 — the mandate this call runs under, by its signed id, so a
7664
+ // revoked mandate and its replacement (same bounds_hash) cannot be
7665
+ // confused (Ticket Request Schema, rule 1).
7666
+ mandateId: auth.mandateId,
7428
7667
  profileId: auth.profileId,
7429
7668
  action: tool.namespacedName,
7430
7669
  actionType,
@@ -7444,9 +7683,15 @@ Tell the person what you proposed and that it waits for their approval in the ga
7444
7683
  executionContext: wireExecCtx,
7445
7684
  authorizationId: authzId,
7446
7685
  profileId: auth.profileId,
7686
+ actionType,
7687
+ boundsHash: auth.boundsHash,
7688
+ mandateId: auth.mandateId,
7689
+ mandateIds: auth.mandateIds,
7690
+ mandate: mandateForTicket(auth.attestations, receipt?.mandateId),
7447
7691
  idempotencyKey,
7448
7692
  contentHash: binding?.contentHash,
7449
- contentBinding: binding?.contentBinding
7693
+ contentBinding: binding?.contentBinding,
7694
+ replay: idempotent
7450
7695
  });
7451
7696
  await state2.archiveReceipt(receipt, {
7452
7697
  authorizationId: authzId,
@@ -7469,6 +7714,10 @@ Tell the person what you proposed and that it waits for their approval in the ga
7469
7714
  sentArgs: finalArgs
7470
7715
  });
7471
7716
  } catch (err) {
7717
+ if (autoRequestKey && !receiptId) {
7718
+ const refusalCode = err instanceof SPReceiptError ? err.body?.errors?.[0]?.code ?? "TICKET_REFUSED" : "REQUEST_FAILED";
7719
+ state2.executionJournal?.refusedBeforeTicket?.(autoRequestKey, "as_refused", refusalCode);
7720
+ }
7472
7721
  if (err instanceof AsKeyMismatchError || err instanceof TicketBindingMismatchError) {
7473
7722
  void notifyControlPlane("as-key-mismatch");
7474
7723
  return {
@@ -7499,7 +7748,7 @@ Tell the person what you proposed and that it waits for their approval in the ga
7499
7748
  return {
7500
7749
  content: [{
7501
7750
  type: "text",
7502
- text: `Blocked: mandate ${auth.authorizationId} needs re-approval \u2014 the Authority Server no longer verifies its protocol version. Ask the decision owner to re-approve it (see list-authorizations). ${err.message}`
7751
+ text: `Blocked: mandate ${auth.authorizationId} must be signed again \u2014 the Authority Server no longer accepts its protocol version. Ask the mandate owner to sign it again (Mandates page \u2192 Sign again; see list-authorizations). ${err.message}`
7503
7752
  }],
7504
7753
  isError: true
7505
7754
  };
@@ -7570,7 +7819,12 @@ Tell the person what you proposed and that it waits for their approval in the ga
7570
7819
  executionContext: wireExecCtx,
7571
7820
  pendingApprovers: uniqueApprovers,
7572
7821
  recipientUserIds,
7573
- ...ownerId ? { createdBy: ownerId } : {}
7822
+ ...ownerId ? { createdBy: ownerId } : {},
7823
+ // v0.8 — the normative proposal object (protocol.md → Proposals).
7824
+ mandateId: auth.mandateId,
7825
+ boundsHash: auth.boundsHash,
7826
+ actionType: declaredActionType,
7827
+ ...v08ProposalReaders(auth)
7574
7828
  });
7575
7829
  const previewHash = await computeSubmissionPreviewHash(
7576
7830
  integrationManager2,
@@ -7585,7 +7839,8 @@ Tell the person what you proposed and that it waits for their approval in the ga
7585
7839
  executionContext: wireExecCtx,
7586
7840
  authorizationId: authzId,
7587
7841
  profileId: auth.profileId,
7588
- previewHash
7842
+ previewHash,
7843
+ actionType: declaredActionType
7589
7844
  });
7590
7845
  return {
7591
7846
  content: [{
@@ -7651,6 +7906,7 @@ Proposal ID: ${proposal.id}. Use check-pending-commitments to track status.` + a
7651
7906
  if (receiptId) {
7652
7907
  const begun = state2.executionJournal.begin({
7653
7908
  ticketId: receiptId,
7909
+ requestKey: autoRequestKey,
7654
7910
  tool: tool.namespacedName,
7655
7911
  argsHash: hashToolArgs(finalArgs)
7656
7912
  });
@@ -7692,6 +7948,11 @@ function recordAutomaticOutcome(state2, ticketId, result, thrown) {
7692
7948
  console.error(`[Suveren MCP] Could not record the execution result for ticket ${ticketId}:`, err);
7693
7949
  }
7694
7950
  }
7951
+ function v08ProposalReaders(auth) {
7952
+ const r = auth.proposalReaders;
7953
+ if (!r || r.version !== "0.8") return {};
7954
+ return { readers: { ownerDid: r.ownerDid, deciders: r.deciders } };
7955
+ }
7695
7956
  function noMandateRefusal(toolName, profile) {
7696
7957
  return `Refused: no mandate covers ${toolName} (${shortProfile(profile)}). Nothing was done. Ask the person to grant a ${shortProfile(profile)} mandate in the gateway, then try again. No ticket was requested.`;
7697
7958
  }
@@ -7799,11 +8060,11 @@ function buildMandateBrief(opts) {
7799
8060
  const needingReapproval = active.filter((a) => a.needsReapproval);
7800
8061
  if (needingReapproval.length > 0) {
7801
8062
  lines.push("");
7802
- lines.push("=== NEEDS RE-APPROVAL ===");
8063
+ lines.push("=== MUST BE SIGNED AGAIN ===");
7803
8064
  lines.push("");
7804
8065
  for (const auth of needingReapproval) {
7805
8066
  lines.push(
7806
- `[${shortProfileName(auth.profileId)}] ${auth.authorizationId}: the Authority Server no longer verifies this mandate's protocol version. Ask the decision owner to re-approve it.`
8067
+ `[${shortProfileName(auth.profileId)}] ${auth.authorizationId}: the Authority Server no longer accepts this mandate's protocol version. Ask the mandate owner to sign it again (Mandates page \u2192 Sign again).`
7807
8068
  );
7808
8069
  }
7809
8070
  lines.push("");
@@ -7963,10 +8224,10 @@ function listAuthorizationsHandler(state2, integrationManager2, contextDir) {
7963
8224
  const earliestExpiry = Math.min(...auth.attestations.map((a) => a.expiresAt));
7964
8225
  const remainingMin = Math.max(0, Math.round((earliestExpiry - now) / 60));
7965
8226
  const boundsDesc = Object.entries(auth.frame).filter(([key]) => key !== "profile" && key !== "path").map(([key, value]) => `${key}: ${value}`).join(", ");
7966
- const statusLabel = !auth.complete ? " (PENDING)" : auth.needsReapproval ? " (NEEDS RE-APPROVAL)" : "";
8227
+ const statusLabel = !auth.complete ? " (PENDING)" : auth.needsReapproval ? " (MUST BE SIGNED AGAIN)" : "";
7967
8228
  output2.push(`[${auth.path}] ${auth.profileId} (${remainingMin} min remaining)${statusLabel}`);
7968
8229
  if (auth.needsReapproval) {
7969
- output2.push(" The Authority Server no longer verifies this mandate's protocol version. Ask the decision owner to re-approve it.");
8230
+ output2.push(" The Authority Server no longer accepts this mandate's protocol version. Ask the mandate owner to sign it again (Mandates page \u2192 Sign again).");
7970
8231
  }
7971
8232
  output2.push("");
7972
8233
  output2.push(` Bounds: ${boundsDesc}`);
@@ -8030,11 +8291,11 @@ function listAuthorizationsHandler(state2, integrationManager2, contextDir) {
8030
8291
  const remainingMin = Math.max(0, Math.round((earliestExpiry - now) / 60));
8031
8292
  const boundsDesc = Object.entries(auth.frame).filter(([key]) => key !== "profile" && key !== "path").map(([key, value]) => `${key}: ${value}`).join(", ");
8032
8293
  if (auth.complete) {
8033
- const statusLabel = auth.needsReapproval ? " (NEEDS RE-APPROVAL)" : "";
8294
+ const statusLabel = auth.needsReapproval ? " (MUST BE SIGNED AGAIN)" : "";
8034
8295
  const lines = [` [${auth.path}] ${auth.profileId} \u2014 ${remainingMin} min remaining${statusLabel}`];
8035
8296
  lines.push(` Bounds: ${boundsDesc}`);
8036
8297
  if (auth.needsReapproval) {
8037
- lines.push(" The Authority Server no longer verifies this mandate's protocol version. Ask the decision owner to re-approve it.");
8298
+ lines.push(" The Authority Server no longer accepts this mandate's protocol version. Ask the mandate owner to sign it again (Mandates page \u2192 Sign again).");
8038
8299
  }
8039
8300
  if ((auth.deferredCommitmentDomains ?? []).length > 0) {
8040
8301
  lines.push(" Mode: review (each action requires your approval)");
@@ -8268,12 +8529,6 @@ async function executeCommitted(proposal, state2, integrationManager2) {
8268
8529
  const integrationId = proposal.tool.slice(0, sep);
8269
8530
  const toolName = proposal.tool.slice(sep + 2);
8270
8531
  const discovered = integrationManager2.getAllTools().find((t) => t.integrationId === integrationId && t.originalName === toolName);
8271
- const proposalActionType = typeof proposal.executionContext.action_type === "string" ? proposal.executionContext.action_type : void 0;
8272
- if (!proposalActionType) {
8273
- console.error(
8274
- `[Suveren MCP] Warning: proposal ${proposal.id} has no action_type in executionContext. Bounds check may be skipped. Fix the integration manifest for ${proposal.tool}.`
8275
- );
8276
- }
8277
8532
  const cachedAuth = state2.cache.getAllAuthorizations().find((a) => a.authorizationId === proposal.authorizationId);
8278
8533
  const submitted = state2.proposalSubmissions.get(proposal.id);
8279
8534
  if (!submitted) {
@@ -8285,6 +8540,12 @@ async function executeCommitted(proposal, state2, integrationManager2) {
8285
8540
  }
8286
8541
  return { text: buildSkippedProposalNote(proposal.id), skipped: true };
8287
8542
  }
8543
+ const proposalActionType = submitted.actionType ?? (typeof proposal.executionContext.action_type === "string" ? proposal.executionContext.action_type : void 0);
8544
+ if (!proposalActionType) {
8545
+ console.error(
8546
+ `[Suveren MCP] Warning: proposal ${proposal.id} has no action_type. Bounds check may be skipped. Fix the integration manifest for ${proposal.tool}.`
8547
+ );
8548
+ }
8288
8549
  let toolArgs;
8289
8550
  try {
8290
8551
  toolArgs = await resolveProposalToolArgs(proposal);
@@ -8321,18 +8582,29 @@ async function executeCommitted(proposal, state2, integrationManager2) {
8321
8582
  toolArgs,
8322
8583
  proposalActionType
8323
8584
  );
8585
+ state2.executionJournal?.requested?.({
8586
+ requestKey: proposal.id,
8587
+ proposalId: proposal.id,
8588
+ tool: proposal.tool,
8589
+ argsHash: hashToolArgs(toolArgs)
8590
+ });
8324
8591
  const { receipt: r, idempotent } = await state2.spClient.postReceipt({
8325
8592
  authorizationId: proposal.authorizationId,
8326
8593
  // Optional cross-check — the AS fails closed on a mismatch. Parity
8327
8594
  // with the automatic path (tool-proxy.ts).
8328
8595
  boundsHash: cachedAuth?.boundsHash,
8596
+ // v0.8 — the mandate by its signed id (Ticket Request Schema, rule 1).
8597
+ mandateId: cachedAuth?.mandateId,
8329
8598
  profileId: proposal.profileId,
8330
8599
  action: proposal.tool,
8331
8600
  actionType: proposalActionType,
8332
8601
  executionContext: proposal.executionContext,
8333
8602
  amount: typeof proposal.executionContext.amount === "number" ? proposal.executionContext.amount : void 0,
8334
8603
  proposalId: proposal.id,
8335
- toolArgs,
8604
+ // v0.8 (Ticket Request Schema; Proposals, rule 1): the content itself
8605
+ // never travels on the ticket request — only its fingerprint below.
8606
+ // Today's AS matches by `proposal_content_hash` first, so dropping the
8607
+ // readable `toolArgs` it used to receive changes nothing it checks.
8336
8608
  // PE1 — the fingerprint of what THIS gateway resolved (decrypted, or
8337
8609
  // read plain on a legacy row) and is about to execute. The AS compares
8338
8610
  // it against its own stored content_hash and refuses without echoing
@@ -8370,19 +8642,21 @@ async function executeCommitted(proposal, state2, integrationManager2) {
8370
8642
  };
8371
8643
  }
8372
8644
  if (code === "PROPOSAL_REFUSED") {
8645
+ state2.executionJournal?.refusedBeforeTicket?.(proposal.id, "as_refused", `${code}: ${err.message}`);
8373
8646
  return {
8374
8647
  text: `Proposal ${proposal.id}: the Authority Server refused this proposal's ticket earlier \u2014 ${err.message} Nothing ran. Do not retry the same values; ask the person (e.g. for a higher limit).`,
8375
8648
  isError: true
8376
8649
  };
8377
8650
  }
8378
- if (err.statusCode === 409 && code === "VERSION_UNSUPPORTED") {
8651
+ if (code === "VERSION_UNSUPPORTED") {
8379
8652
  state2.cache.markNeedsReapproval(proposal.authorizationId);
8380
8653
  return {
8381
- text: `Proposal ${proposal.id}: blocked \u2014 mandate ${proposal.authorizationId} needs re-approval \u2014 the Authority Server no longer verifies its protocol version. Ask the decision owner to re-approve it (see list-authorizations). ${err.message}`,
8654
+ text: `Proposal ${proposal.id}: blocked \u2014 mandate ${proposal.authorizationId} must be signed again \u2014 the Authority Server no longer accepts its protocol version. Ask the mandate owner to sign it again (Mandates page \u2192 Sign again; see list-authorizations). ${err.message}`,
8382
8655
  isError: true
8383
8656
  };
8384
8657
  }
8385
8658
  if (proposal.id) {
8659
+ state2.executionJournal?.refusedBeforeTicket?.(proposal.id, "as_refused", `${code ?? "TICKET_REFUSED"}: ${err.message}`);
8386
8660
  const asRefusedTicketId = `as_refused:${proposal.id}`;
8387
8661
  const begun2 = state2.executionJournal.begin({
8388
8662
  ticketId: asRefusedTicketId,
@@ -8412,6 +8686,7 @@ async function executeCommitted(proposal, state2, integrationManager2) {
8412
8686
  }
8413
8687
  const begun = state2.executionJournal.begin({
8414
8688
  ticketId: receiptId,
8689
+ requestKey: proposal.id,
8415
8690
  proposalId: proposal.id,
8416
8691
  tool: proposal.tool,
8417
8692
  argsHash: hashToolArgs(toolArgs)
@@ -8435,9 +8710,18 @@ async function executeCommitted(proposal, state2, integrationManager2) {
8435
8710
  executionContext: proposal.executionContext,
8436
8711
  authorizationId: proposal.authorizationId,
8437
8712
  profileId: proposal.profileId,
8713
+ actionType: proposalActionType,
8714
+ boundsHash: cachedAuth?.boundsHash,
8715
+ mandateId: cachedAuth?.mandateId,
8716
+ mandateIds: cachedAuth?.mandateIds,
8717
+ // v0.8 — lets the ticket's version be checked against its mandate and
8718
+ // the approval signatures be verified under the deciders' own DIDs.
8719
+ mandate: mandateForTicket(cachedAuth?.attestations, receipt.mandateId),
8438
8720
  proposalId: proposal.id,
8721
+ proposalContentHash: computeProposalContentHash(toolArgs),
8439
8722
  contentHash: binding?.contentHash,
8440
- contentBinding: binding?.contentBinding
8723
+ contentBinding: binding?.contentBinding,
8724
+ replay: replayed
8441
8725
  });
8442
8726
  await state2.archiveReceipt(receipt, {
8443
8727
  authorizationId: proposal.authorizationId,
@@ -8577,7 +8861,7 @@ Result: ${resultText}` };
8577
8861
  }
8578
8862
  function localOutcomeOfExecuted(proposal, state2) {
8579
8863
  const entry = state2.executionJournal?.findByProposal?.(proposal.id);
8580
- if (!entry) return null;
8864
+ if (!entry || entry.state === "requested") return null;
8581
8865
  const integration = proposal.tool.split("__")[0];
8582
8866
  if (entry.state === "done") {
8583
8867
  const stored = state2.executionResults?.get(proposal.id);
@@ -8808,7 +9092,7 @@ function convert(schema, depth) {
8808
9092
  if (s.properties && typeof s.properties === "object") {
8809
9093
  t = z.object(shapeOf(s, depth + 1)).passthrough();
8810
9094
  } else {
8811
- t = z.record(z.unknown());
9095
+ t = z.record(z.string(), z.unknown());
8812
9096
  }
8813
9097
  break;
8814
9098
  }
@@ -9010,7 +9294,7 @@ var AgentContactStore = class {
9010
9294
 
9011
9295
  // src/lib/gate-content.ts
9012
9296
  import { computeIntentHash } from "@hap/core";
9013
- import { decodeMandateBlob as decodeMandateBlob2 } from "@hap/core";
9297
+ import { decodeMandateBlob as decodeMandateBlob3 } from "@hap/core";
9014
9298
  function hashGateContent(text) {
9015
9299
  return computeIntentHash(text);
9016
9300
  }
@@ -9019,7 +9303,7 @@ function verifyGateContentHashes(content, auth) {
9019
9303
  if (auth.attestations.length === 0) {
9020
9304
  return { valid: false, errors: ["No attestations available to verify against"] };
9021
9305
  }
9022
- const attestation = decodeMandateBlob2(auth.attestations[0].blob);
9306
+ const attestation = decodeMandateBlob3(auth.attestations[0].blob);
9023
9307
  const expectedHashes = attestation.payload.gate_content_hashes;
9024
9308
  if (!expectedHashes?.intent) {
9025
9309
  return { valid: false, errors: ["Attestation does not contain intent hash"] };
@@ -11505,7 +11789,7 @@ function registerBuiltins(deps, factories = BUILTIN_FACTORIES) {
11505
11789
  }
11506
11790
 
11507
11791
  // bin/http.ts
11508
- import { decodeMandateBlob as decodeMandateBlob3 } from "@hap/core";
11792
+ import { decodeMandateBlob as decodeMandateBlob4 } from "@hap/core";
11509
11793
 
11510
11794
  // src/lib/committed-executor.ts
11511
11795
  import { existsSync as existsSync21, mkdirSync as mkdirSync16, readFileSync as readFileSync22, unlinkSync as unlinkSync8, writeFileSync as writeFileSync16 } from "fs";
@@ -12170,7 +12454,7 @@ app.get("/internal/evidence", internalOnly, (_req, res) => {
12170
12454
  ...a,
12171
12455
  attestations: a.attestations.map((att) => {
12172
12456
  try {
12173
- return { ...att, decoded: decodeMandateBlob3(att.blob) };
12457
+ return { ...att, decoded: decodeMandateBlob4(att.blob) };
12174
12458
  } catch {
12175
12459
  return att;
12176
12460
  }