@noy-db/hub 0.7.1-pre.0 → 0.8.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 (812) hide show
  1. package/CHANGELOG.md +147 -14
  2. package/LICENSE +202 -21
  3. package/NOTICE +1 -0
  4. package/README.md +5 -5
  5. package/codemods/0.8.0-pre.json +61 -0
  6. package/dist/api-OS747DS4.js +18 -0
  7. package/dist/as/index.js +11 -12
  8. package/dist/as/index.js.map +1 -1
  9. package/dist/at/index.js +9 -10
  10. package/dist/attestation/index.js +37 -26
  11. package/dist/attestation/index.js.map +1 -1
  12. package/dist/{backup-XKCXVKV3.js → backup-YE2VQ26S.js} +15 -16
  13. package/dist/backup-YE2VQ26S.js.map +1 -0
  14. package/dist/blobs/index.js +13 -14
  15. package/dist/blobs/index.js.map +1 -1
  16. package/dist/broker/index.js +12 -13
  17. package/dist/broker/index.js.map +1 -1
  18. package/dist/by/index.js +2 -2
  19. package/dist/capsule/contract.d.ts +159 -0
  20. package/dist/capsule/contract.js +95 -0
  21. package/dist/capsule/enclave-aes/bound.d.ts +52 -0
  22. package/dist/capsule/enclave-aes/capabilities.d.ts +2 -0
  23. package/dist/capsule/enclave-aes/classify/compare.d.ts +20 -0
  24. package/dist/{kernel/enclave → capsule/enclave-aes}/classify/find.d.ts +1 -1
  25. package/dist/{kernel/enclave → capsule/enclave-aes}/classify/reveal.d.ts +1 -1
  26. package/dist/{kernel/enclave → capsule/enclave-aes}/classify/verify.d.ts +2 -2
  27. package/dist/{kernel/enclave → capsule/enclave-aes}/classify/write.d.ts +1 -1
  28. package/dist/{kernel/enclave → capsule/enclave-aes}/crypto.d.ts +33 -129
  29. package/dist/capsule/enclave-aes/index.d.ts +113 -0
  30. package/dist/capsule/enclave-aes/index.js +335 -0
  31. package/dist/capsule/enclave-aes/index.js.map +1 -0
  32. package/dist/capsule/enclave-aes/primitives.d.ts +29 -0
  33. package/dist/capsule/index.d.ts +27 -0
  34. package/dist/capsule/plumbing/ct-equal.d.ts +11 -0
  35. package/dist/{kernel/enclave/record-keys → capsule/plumbing}/deterministic.d.ts +8 -21
  36. package/dist/capsule/plumbing/digest.d.ts +122 -0
  37. package/dist/{kernel/enclave/record-keys → capsule/plumbing}/envelope-body.d.ts +44 -48
  38. package/dist/capsule/plumbing/index.d.ts +100 -0
  39. package/dist/capsule/plumbing/lifecycle.d.ts +50 -0
  40. package/dist/{kernel/enclave/record-keys → capsule/plumbing}/record-codec.d.ts +80 -20
  41. package/dist/{kernel/enclave → capsule/plumbing}/record-envelope.d.ts +1 -1
  42. package/dist/capsule/plumbing/rekey-blob.d.ts +33 -0
  43. package/dist/capsule/plumbing/rekey.d.ts +44 -0
  44. package/dist/capsule/plumbing/sealed-slot.d.ts +22 -0
  45. package/dist/capsule/plumbing/sealed-slots.d.ts +37 -0
  46. package/dist/capsule/plumbing/sealing.d.ts +29 -0
  47. package/dist/capsule/plumbing/sign.d.ts +9 -0
  48. package/dist/{kernel/enclave/record-keys → capsule/plumbing}/tombstone.d.ts +2 -2
  49. package/dist/capsule-VOLX3QRQ.js +209 -0
  50. package/dist/cargo/index.js +39 -36
  51. package/dist/{chunk-Q2MPFCQ7.js → chunk-23D6M6VM.js} +5 -5
  52. package/dist/chunk-23D6M6VM.js.map +1 -0
  53. package/dist/{chunk-R7BX2NB3.js → chunk-244QBK7Z.js} +4 -4
  54. package/dist/chunk-244QBK7Z.js.map +1 -0
  55. package/dist/chunk-2AFX33YA.js +936 -0
  56. package/dist/chunk-2AFX33YA.js.map +1 -0
  57. package/dist/{chunk-MVMXZYXT.js → chunk-2GHDLTPE.js} +2 -2
  58. package/dist/{chunk-GYGLAVCX.js → chunk-2MG3SW7Q.js} +6 -2
  59. package/dist/chunk-2MG3SW7Q.js.map +1 -0
  60. package/dist/{chunk-XLMEZIAJ.js → chunk-2ODVB6LZ.js} +2 -2
  61. package/dist/{chunk-HJUWN7JN.js → chunk-2PVXF5CS.js} +33 -8
  62. package/dist/chunk-2PVXF5CS.js.map +1 -0
  63. package/dist/{chunk-YJRT5UQM.js → chunk-2RH777HH.js} +21 -20
  64. package/dist/{chunk-YJRT5UQM.js.map → chunk-2RH777HH.js.map} +1 -1
  65. package/dist/{chunk-7O3Y4PPD.js → chunk-37EPTBBR.js} +153 -16
  66. package/dist/chunk-37EPTBBR.js.map +1 -0
  67. package/dist/{chunk-2ENE6445.js → chunk-3A5DUZ56.js} +102 -16
  68. package/dist/chunk-3A5DUZ56.js.map +1 -0
  69. package/dist/chunk-3EWS67C7.js +461 -0
  70. package/dist/chunk-3EWS67C7.js.map +1 -0
  71. package/dist/{chunk-SGZAIJCV.js → chunk-3L2NBKDR.js} +4 -8
  72. package/dist/chunk-3L2NBKDR.js.map +1 -0
  73. package/dist/{chunk-YMUFFJCO.js → chunk-3TDUWVWB.js} +5 -2
  74. package/dist/chunk-3TDUWVWB.js.map +1 -0
  75. package/dist/{chunk-4GVM6QZA.js → chunk-3XJQBBZD.js} +26 -28
  76. package/dist/chunk-3XJQBBZD.js.map +1 -0
  77. package/dist/{chunk-4ZS56W5S.js → chunk-42ALPZ2B.js} +672 -664
  78. package/dist/chunk-42ALPZ2B.js.map +1 -0
  79. package/dist/chunk-4CIQDWRB.js +524 -0
  80. package/dist/chunk-4CIQDWRB.js.map +1 -0
  81. package/dist/{chunk-RMS3NEA3.js → chunk-4JPMZTJY.js} +2 -2
  82. package/dist/{chunk-P3MG6QCN.js → chunk-4T3SE27M.js} +5 -9
  83. package/dist/chunk-4T3SE27M.js.map +1 -0
  84. package/dist/chunk-4V3Q35WG.js +204 -0
  85. package/dist/chunk-4V3Q35WG.js.map +1 -0
  86. package/dist/{chunk-NQKIUNW5.js → chunk-52MGURXO.js} +2 -2
  87. package/dist/{chunk-EQEYOJBM.js → chunk-5A4345TG.js} +4 -4
  88. package/dist/chunk-5A4345TG.js.map +1 -0
  89. package/dist/{chunk-334WSVOW.js → chunk-5FE75J4S.js} +6 -6
  90. package/dist/chunk-5FE75J4S.js.map +1 -0
  91. package/dist/chunk-5KC7QYEC.js +565 -0
  92. package/dist/chunk-5KC7QYEC.js.map +1 -0
  93. package/dist/{chunk-RSGLUIO6.js → chunk-5UMK7GRI.js} +13 -12
  94. package/dist/chunk-5UMK7GRI.js.map +1 -0
  95. package/dist/chunk-5WWDGFOS.js +275 -0
  96. package/dist/chunk-5WWDGFOS.js.map +1 -0
  97. package/dist/{chunk-QPQUVOZ2.js → chunk-6QVKPHBF.js} +3 -5
  98. package/dist/chunk-6QVKPHBF.js.map +1 -0
  99. package/dist/{chunk-ACAQ2DSG.js → chunk-747G6CT3.js} +2 -2
  100. package/dist/chunk-747G6CT3.js.map +1 -0
  101. package/dist/{chunk-QTQUH4DS.js → chunk-7R2Q7CPL.js} +16 -16
  102. package/dist/chunk-7R2Q7CPL.js.map +1 -0
  103. package/dist/{chunk-UGTBXF5U.js → chunk-7XMHMVTS.js} +3 -3
  104. package/dist/{chunk-YJX7EOJD.js → chunk-A4XMIZT3.js} +6 -6
  105. package/dist/{chunk-YJX7EOJD.js.map → chunk-A4XMIZT3.js.map} +1 -1
  106. package/dist/{chunk-A66I4JOA.js → chunk-AEQGFRU4.js} +4 -4
  107. package/dist/chunk-AEQGFRU4.js.map +1 -0
  108. package/dist/chunk-AL6ML4LA.js +1558 -0
  109. package/dist/chunk-AL6ML4LA.js.map +1 -0
  110. package/dist/{chunk-BZ3534YM.js → chunk-AUKKUPVB.js} +2 -2
  111. package/dist/{chunk-CUZLNGD5.js → chunk-B2YY6WDD.js} +1 -1
  112. package/dist/chunk-B2YY6WDD.js.map +1 -0
  113. package/dist/chunk-BKT776R5.js +1 -0
  114. package/dist/chunk-BNWA3WG5.js +22 -0
  115. package/dist/chunk-BNWA3WG5.js.map +1 -0
  116. package/dist/{chunk-VXANTWBJ.js → chunk-BPWYQ25R.js} +92 -6
  117. package/dist/{chunk-VXANTWBJ.js.map → chunk-BPWYQ25R.js.map} +1 -1
  118. package/dist/{chunk-6LKOJBV6.js → chunk-BVCUTXE3.js} +2 -2
  119. package/dist/chunk-CY2CYVWZ.js +41 -0
  120. package/dist/chunk-CY2CYVWZ.js.map +1 -0
  121. package/dist/{chunk-M4YPHYEH.js → chunk-DHHGL42E.js} +70 -25
  122. package/dist/chunk-DHHGL42E.js.map +1 -0
  123. package/dist/{chunk-VTFVLCUH.js → chunk-DIZLQVAA.js} +2 -2
  124. package/dist/{chunk-G73UVHCA.js → chunk-DLD5LGDS.js} +11 -12
  125. package/dist/chunk-DLD5LGDS.js.map +1 -0
  126. package/dist/{chunk-WQBG4SZS.js → chunk-DQESF6RP.js} +60 -49
  127. package/dist/chunk-DQESF6RP.js.map +1 -0
  128. package/dist/{chunk-LWBCUYZW.js → chunk-E2N2T5ZO.js} +2 -2
  129. package/dist/{chunk-3PGS7TYR.js → chunk-EGVJ7TM4.js} +29 -32
  130. package/dist/chunk-EGVJ7TM4.js.map +1 -0
  131. package/dist/{chunk-JVIBCBC7.js → chunk-EJLV62NI.js} +2 -2
  132. package/dist/{chunk-KKEESNPE.js → chunk-EYG2CY2X.js} +126 -19
  133. package/dist/chunk-EYG2CY2X.js.map +1 -0
  134. package/dist/{enclave-55PAM4YO.js → chunk-EZGV6F47.js} +83 -56
  135. package/dist/chunk-EZGV6F47.js.map +1 -0
  136. package/dist/{chunk-CHQCZZWC.js → chunk-EZOAKKTB.js} +36 -27
  137. package/dist/chunk-EZOAKKTB.js.map +1 -0
  138. package/dist/chunk-F6NCB7KT.js +13 -0
  139. package/dist/chunk-F6NCB7KT.js.map +1 -0
  140. package/dist/chunk-FFJFE4T7.js +100 -0
  141. package/dist/chunk-FFJFE4T7.js.map +1 -0
  142. package/dist/{chunk-JMGDHKQF.js → chunk-FLPCETP6.js} +2 -2
  143. package/dist/chunk-FOEDQATO.js +53 -0
  144. package/dist/chunk-FOEDQATO.js.map +1 -0
  145. package/dist/{chunk-DGOZ4UZD.js → chunk-FVH5QYY2.js} +2 -2
  146. package/dist/{chunk-HIWCKBEY.js → chunk-G2MVBDFP.js} +54 -28
  147. package/dist/chunk-G2MVBDFP.js.map +1 -0
  148. package/dist/chunk-GMKGGY7V.js +234 -0
  149. package/dist/chunk-GMKGGY7V.js.map +1 -0
  150. package/dist/{chunk-EIPVYUEP.js → chunk-GQ4MF3CM.js} +3 -3
  151. package/dist/chunk-GQ4MF3CM.js.map +1 -0
  152. package/dist/{chunk-PEOZ34EM.js → chunk-GSAK56VF.js} +1 -1
  153. package/dist/chunk-GSAK56VF.js.map +1 -0
  154. package/dist/{chunk-5VCRVKOZ.js → chunk-GUZET4SG.js} +12 -4
  155. package/dist/chunk-GUZET4SG.js.map +1 -0
  156. package/dist/{chunk-JBDFMYKQ.js → chunk-GZT3NQRA.js} +2 -2
  157. package/dist/{chunk-K23VKTN4.js → chunk-H23XHRTT.js} +19 -34
  158. package/dist/chunk-H23XHRTT.js.map +1 -0
  159. package/dist/{chunk-TFR7DSOV.js → chunk-H427H63K.js} +2 -2
  160. package/dist/{chunk-DFMWUOU5.js → chunk-H7JBY4P7.js} +23 -32
  161. package/dist/chunk-H7JBY4P7.js.map +1 -0
  162. package/dist/{chunk-SKGMN35F.js → chunk-HS554XAF.js} +3 -3
  163. package/dist/chunk-HS554XAF.js.map +1 -0
  164. package/dist/{chunk-HK67PX4J.js → chunk-HW7CMKUG.js} +1 -1
  165. package/dist/chunk-HW7CMKUG.js.map +1 -0
  166. package/dist/{chunk-3BVH633C.js → chunk-IMQKWR46.js} +5 -7
  167. package/dist/chunk-IMQKWR46.js.map +1 -0
  168. package/dist/{chunk-R42NSZI6.js → chunk-IUBMZPHM.js} +7 -7
  169. package/dist/chunk-IUBMZPHM.js.map +1 -0
  170. package/dist/{chunk-CUQPWYRX.js → chunk-IUT3GWP3.js} +75 -386
  171. package/dist/chunk-IUT3GWP3.js.map +1 -0
  172. package/dist/{chunk-RF6D3Y5E.js → chunk-JDEYF3PJ.js} +4 -8
  173. package/dist/{chunk-RF6D3Y5E.js.map → chunk-JDEYF3PJ.js.map} +1 -1
  174. package/dist/{chunk-PPTHY5QO.js → chunk-JIBUPZHA.js} +99 -8
  175. package/dist/chunk-JIBUPZHA.js.map +1 -0
  176. package/dist/{chunk-SMH6SRX7.js → chunk-JOSPH3E5.js} +2 -2
  177. package/dist/chunk-JQYKPKG6.js +193 -0
  178. package/dist/chunk-JQYKPKG6.js.map +1 -0
  179. package/dist/{chunk-7APJ6CO6.js → chunk-JSMTXZR3.js} +45 -13
  180. package/dist/chunk-JSMTXZR3.js.map +1 -0
  181. package/dist/chunk-JWWYRR4Q.js +12 -0
  182. package/dist/chunk-JWWYRR4Q.js.map +1 -0
  183. package/dist/{chunk-BVN6KXL2.js → chunk-KZXDLBY6.js} +14 -9
  184. package/dist/chunk-KZXDLBY6.js.map +1 -0
  185. package/dist/chunk-LGNDFRYC.js +23 -0
  186. package/dist/chunk-LGNDFRYC.js.map +1 -0
  187. package/dist/{chunk-XKWGNJ26.js → chunk-LIOVX5TJ.js} +7 -11
  188. package/dist/chunk-LIOVX5TJ.js.map +1 -0
  189. package/dist/{chunk-AYX7AINO.js → chunk-LNSVGRHO.js} +5 -7
  190. package/dist/chunk-LNSVGRHO.js.map +1 -0
  191. package/dist/chunk-M5B2W6YY.js +293 -0
  192. package/dist/chunk-M5B2W6YY.js.map +1 -0
  193. package/dist/chunk-MBMTND6D.js +456 -0
  194. package/dist/chunk-MBMTND6D.js.map +1 -0
  195. package/dist/{chunk-3BZZJJMQ.js → chunk-MILI22XQ.js} +3 -3
  196. package/dist/{chunk-A2HKRLPV.js → chunk-MXKI4ABF.js} +18 -59
  197. package/dist/chunk-MXKI4ABF.js.map +1 -0
  198. package/dist/{chunk-ZYIYHJ5R.js → chunk-MXOQ5JCG.js} +869 -238
  199. package/dist/chunk-MXOQ5JCG.js.map +1 -0
  200. package/dist/{chunk-V7ZRRCRJ.js → chunk-N7EVQD5S.js} +9 -13
  201. package/dist/chunk-N7EVQD5S.js.map +1 -0
  202. package/dist/chunk-N7UDP5VU.js +757 -0
  203. package/dist/chunk-N7UDP5VU.js.map +1 -0
  204. package/dist/chunk-NBQ3KK6X.js +270 -0
  205. package/dist/chunk-NBQ3KK6X.js.map +1 -0
  206. package/dist/{chunk-ZORTV6NH.js → chunk-NCO25JZO.js} +88 -4
  207. package/dist/chunk-NCO25JZO.js.map +1 -0
  208. package/dist/chunk-NH2UOV3B.js +18 -0
  209. package/dist/chunk-NH2UOV3B.js.map +1 -0
  210. package/dist/chunk-NYMLINRP.js +28 -0
  211. package/dist/chunk-NYMLINRP.js.map +1 -0
  212. package/dist/{chunk-YYP7WSEB.js → chunk-O2IMQSNA.js} +2 -2
  213. package/dist/chunk-O46CHQT7.js +215 -0
  214. package/dist/chunk-O46CHQT7.js.map +1 -0
  215. package/dist/chunk-OIEO4WDL.js +27 -0
  216. package/dist/chunk-OIEO4WDL.js.map +1 -0
  217. package/dist/{chunk-TRGTKX5E.js → chunk-OKSTSITU.js} +27 -4
  218. package/dist/chunk-OKSTSITU.js.map +1 -0
  219. package/dist/chunk-OYW3I5M4.js +31 -0
  220. package/dist/chunk-OYW3I5M4.js.map +1 -0
  221. package/dist/{chunk-Q7HZX3IF.js → chunk-PD64727P.js} +2 -2
  222. package/dist/chunk-PD64727P.js.map +1 -0
  223. package/dist/{chunk-FET5XCAT.js → chunk-PP3K67AJ.js} +34 -6
  224. package/dist/chunk-PP3K67AJ.js.map +1 -0
  225. package/dist/chunk-Q2XRFWOI.js +40 -0
  226. package/dist/chunk-Q2XRFWOI.js.map +1 -0
  227. package/dist/{chunk-QIZPZMUI.js → chunk-Q4UHJ5SN.js} +2 -2
  228. package/dist/{chunk-FAHMLERK.js → chunk-QBLT6POL.js} +2 -2
  229. package/dist/chunk-QMWY2FDS.js +157 -0
  230. package/dist/chunk-QMWY2FDS.js.map +1 -0
  231. package/dist/{chunk-LH5A3ZPG.js → chunk-RB4DOPGZ.js} +150 -22
  232. package/dist/chunk-RB4DOPGZ.js.map +1 -0
  233. package/dist/chunk-RHVMZSUU.js +7 -0
  234. package/dist/chunk-RHVMZSUU.js.map +1 -0
  235. package/dist/{chunk-BUE2D7PX.js → chunk-SMV2HRDU.js} +2 -2
  236. package/dist/chunk-SUZKW6UR.js +25 -0
  237. package/dist/chunk-SUZKW6UR.js.map +1 -0
  238. package/dist/{chunk-7MG7SJT7.js → chunk-SV2PM2OY.js} +1 -1
  239. package/dist/chunk-SV2PM2OY.js.map +1 -0
  240. package/dist/{chunk-UXVWEX5L.js → chunk-SYNY3VB5.js} +6 -2
  241. package/dist/chunk-SYNY3VB5.js.map +1 -0
  242. package/dist/{chunk-4GFX6MPA.js → chunk-TEHHROZL.js} +6 -8
  243. package/dist/chunk-TEHHROZL.js.map +1 -0
  244. package/dist/chunk-TKVUE4JF.js +1289 -0
  245. package/dist/chunk-TKVUE4JF.js.map +1 -0
  246. package/dist/{chunk-SFAWCTEM.js → chunk-TZZBXPZK.js} +2 -2
  247. package/dist/{chunk-F3W6YMDC.js → chunk-U2FZNEWJ.js} +4 -4
  248. package/dist/chunk-U2FZNEWJ.js.map +1 -0
  249. package/dist/{chunk-BLN54W3L.js → chunk-UA372JHH.js} +56 -3
  250. package/dist/chunk-UA372JHH.js.map +1 -0
  251. package/dist/{chunk-6YXCPL4T.js → chunk-UEFOQH74.js} +2 -2
  252. package/dist/chunk-UEFOQH74.js.map +1 -0
  253. package/dist/{chunk-2N5ML6HT.js → chunk-UIYESRD6.js} +9 -11
  254. package/dist/chunk-UIYESRD6.js.map +1 -0
  255. package/dist/{chunk-UHHPLO3I.js → chunk-V3RWOOSO.js} +4 -4
  256. package/dist/{chunk-KTFRCC5C.js → chunk-V7ADQF5O.js} +82 -8
  257. package/dist/chunk-V7ADQF5O.js.map +1 -0
  258. package/dist/{chunk-453F654R.js → chunk-VAORSCSU.js} +3 -3
  259. package/dist/chunk-VAORSCSU.js.map +1 -0
  260. package/dist/{chunk-GPNTB4Y7.js → chunk-VFHCKG5M.js} +6 -10
  261. package/dist/chunk-VFHCKG5M.js.map +1 -0
  262. package/dist/{chunk-2577DKXB.js → chunk-VHBKYN2J.js} +3 -3
  263. package/dist/chunk-VHBKYN2J.js.map +1 -0
  264. package/dist/chunk-VHM7HCKB.js +220 -0
  265. package/dist/chunk-VHM7HCKB.js.map +1 -0
  266. package/dist/{chunk-ZHKOPKE3.js → chunk-VKI2EB3N.js} +3 -3
  267. package/dist/chunk-VKI2EB3N.js.map +1 -0
  268. package/dist/{chunk-UDHWDSRL.js → chunk-VMV5SBE4.js} +16 -17
  269. package/dist/chunk-VMV5SBE4.js.map +1 -0
  270. package/dist/{chunk-SPYWXKJN.js → chunk-VQDZYB2B.js} +3 -3
  271. package/dist/chunk-VQDZYB2B.js.map +1 -0
  272. package/dist/{chunk-Q2PU57HC.js → chunk-VVOLDVIR.js} +2 -2
  273. package/dist/{chunk-3VF3WQ4F.js → chunk-WPOYWFSE.js} +7 -7
  274. package/dist/{chunk-3VF3WQ4F.js.map → chunk-WPOYWFSE.js.map} +1 -1
  275. package/dist/{chunk-OTQZ7ZWU.js → chunk-WXE4W2U6.js} +7 -11
  276. package/dist/chunk-WXE4W2U6.js.map +1 -0
  277. package/dist/chunk-XBKH4FOC.js +195 -0
  278. package/dist/chunk-XBKH4FOC.js.map +1 -0
  279. package/dist/{chunk-TUFM4UZP.js → chunk-XQRFSKYM.js} +2 -2
  280. package/dist/{chunk-3V4KWFX7.js → chunk-XSPFDUDG.js} +58 -53
  281. package/dist/chunk-XSPFDUDG.js.map +1 -0
  282. package/dist/{chunk-GY4WYNNG.js → chunk-Y2RKVFKR.js} +2 -2
  283. package/dist/{chunk-UP4BECPY.js → chunk-Y3LPTBG7.js} +89 -27
  284. package/dist/chunk-Y3LPTBG7.js.map +1 -0
  285. package/dist/{chunk-4OZNXTO4.js → chunk-YRXFFWG4.js} +2 -2
  286. package/dist/classified/index.js +5 -5
  287. package/dist/{classified-marker-BWOFVYAC.js → classified-marker-SIYKUU5L.js} +3 -3
  288. package/dist/classified-marker-SIYKUU5L.js.map +1 -0
  289. package/dist/collection-facade-CS7CA2XO.js +47 -0
  290. package/dist/{computed-VPOKQK4N.js → computed-FAD7SED4.js} +3 -3
  291. package/dist/consent/index.js +10 -11
  292. package/dist/consent/index.js.map +1 -1
  293. package/dist/cover/index.js +10 -11
  294. package/dist/coverage/index.js +306 -0
  295. package/dist/coverage/index.js.map +1 -0
  296. package/dist/custody/index.js +12 -13
  297. package/dist/{dead-filter-PKQDLOT4.js → dead-filter-4F3LWYKH.js} +11 -3
  298. package/dist/dead-filter-4F3LWYKH.js.map +1 -0
  299. package/dist/debug/index.js +11 -2
  300. package/dist/debug/index.js.map +1 -1
  301. package/dist/{delegation-DS5NRILW.js → delegation-NANZDG4N.js} +13 -16
  302. package/dist/delegation-NANZDG4N.js.map +1 -0
  303. package/dist/derivations/index.js +25 -23
  304. package/dist/derive-XLOJVXPU.js +20 -0
  305. package/dist/directory/index.js +10 -11
  306. package/dist/{dispatch-IEPAVQUM.js → dispatch-H4HV32AM.js} +5 -5
  307. package/dist/{dispatch-Q6MWLOJY.js → dispatch-JDZNGEB3.js} +20 -21
  308. package/dist/dispatch-JDZNGEB3.js.map +1 -0
  309. package/dist/executor-FMPVN6DT.js +35 -0
  310. package/dist/executor-LBBBRTN5.js +8 -0
  311. package/dist/executor-OSRZST2U.js +8 -0
  312. package/dist/export-accessible-RAOJAAU5.js +22 -0
  313. package/dist/extract-partition-JD5CUSTG.js +37 -0
  314. package/dist/{fanout-sidecar-S3QL53YX.js → fanout-sidecar-L7NHPIOC.js} +13 -15
  315. package/dist/fanout-sidecar-L7NHPIOC.js.map +1 -0
  316. package/dist/find-JRN4RNQ5.js +10 -0
  317. package/dist/forget/index.js +9 -10
  318. package/dist/forget/index.js.map +1 -1
  319. package/dist/guards/index.js +4 -4
  320. package/dist/history/index.js +13 -14
  321. package/dist/history/index.js.map +1 -1
  322. package/dist/i18n/index.js +14 -15
  323. package/dist/i18n/index.js.map +1 -1
  324. package/dist/index.d.ts +36 -14
  325. package/dist/index.js +970 -163
  326. package/dist/index.js.map +1 -1
  327. package/dist/indexing/index.js +13 -5
  328. package/dist/indexing/index.js.map +1 -1
  329. package/dist/introspection/index.js +11 -12
  330. package/dist/issue-YIVBZUTH.js +19 -0
  331. package/dist/ivf-flat-UZ6DQDLS.js +314 -0
  332. package/dist/ivf-flat-UZ6DQDLS.js.map +1 -0
  333. package/dist/{json-schema-V3M5MUCM.js → json-schema-3SHX72CC.js} +2 -1
  334. package/dist/json-schema-3SHX72CC.js.map +1 -0
  335. package/dist/kernel/attestation-types.d.ts +62 -0
  336. package/dist/kernel/collection-config.d.ts +5 -68
  337. package/dist/kernel/collection.d.ts +30 -9
  338. package/dist/kernel/cutover-transform.d.ts +1 -1
  339. package/dist/kernel/errors.d.ts +257 -38
  340. package/dist/kernel/generation-map.d.ts +48 -0
  341. package/dist/kernel/merge-authority.d.ts +1 -1
  342. package/dist/kernel/noydb.d.ts +6 -1
  343. package/dist/kernel/paths.d.ts +29 -5
  344. package/dist/kernel/prepared-write.d.ts +1 -1
  345. package/dist/kernel/present-cache.d.ts +58 -0
  346. package/dist/kernel/query/all.d.ts +7 -0
  347. package/dist/kernel/query/builder.d.ts +601 -270
  348. package/dist/kernel/query/civil-date.d.ts +64 -0
  349. package/dist/kernel/query/cursor.d.ts +40 -0
  350. package/dist/kernel/query/distinct-key.d.ts +98 -0
  351. package/dist/kernel/query/hydration.d.ts +76 -0
  352. package/dist/kernel/query/index.d.ts +31 -15
  353. package/dist/kernel/query/internal/core.d.ts +30 -0
  354. package/dist/kernel/query/internal/hooks.d.ts +22 -0
  355. package/dist/kernel/query/internal/maintenance.d.ts +43 -0
  356. package/dist/kernel/query/live/incremental.d.ts +314 -0
  357. package/dist/kernel/query/live/index.d.ts +22 -0
  358. package/dist/kernel/query/live/install.d.ts +2 -0
  359. package/dist/kernel/query/{live.d.ts → live/live.d.ts} +39 -9
  360. package/dist/kernel/query/live/methods.d.ts +107 -0
  361. package/dist/kernel/query/predicate.d.ts +119 -1
  362. package/dist/kernel/query/reduce/date-trunc.d.ts +75 -0
  363. package/dist/kernel/query/reduce/index.d.ts +36 -0
  364. package/dist/kernel/query/reduce/install.d.ts +2 -0
  365. package/dist/kernel/query/reduce/methods.d.ts +259 -0
  366. package/dist/kernel/query/reduce/scan-methods.d.ts +121 -0
  367. package/dist/kernel/query/relate/explain.d.ts +199 -0
  368. package/dist/kernel/query/relate/index.d.ts +48 -0
  369. package/dist/kernel/query/relate/install.d.ts +2 -0
  370. package/dist/kernel/query/relate/join-on.d.ts +126 -0
  371. package/dist/kernel/query/relate/join-reduce.d.ts +16 -0
  372. package/dist/kernel/query/relate/join.d.ts +452 -0
  373. package/dist/kernel/query/relate/methods.d.ts +426 -0
  374. package/dist/kernel/query/relate/partition.d.ts +87 -0
  375. package/dist/kernel/query/relate/scan-methods.d.ts +163 -0
  376. package/dist/kernel/query/relate/traverse.d.ts +109 -0
  377. package/dist/kernel/query/scan-builder.d.ts +79 -176
  378. package/dist/kernel/query/sort-key.d.ts +52 -0
  379. package/dist/kernel/secret-mode.d.ts +1 -1
  380. package/dist/kernel/tx-write-gate.d.ts +77 -0
  381. package/dist/kernel/types.d.ts +113 -8
  382. package/dist/kernel/validation.d.ts +27 -10
  383. package/dist/kernel/vault.d.ts +11 -6
  384. package/dist/kernel/via/compose.d.ts +3 -0
  385. package/dist/kernel/via/index.d.ts +56 -0
  386. package/dist/kernel/via/pipeline.d.ts +48 -0
  387. package/dist/kernel/write-queue.d.ts +17 -0
  388. package/dist/{ledger-EDXFFZQL.js → ledger-5ZMGE44K.js} +11 -12
  389. package/dist/liberate-WZSZM2W6.js +24 -0
  390. package/dist/link-set-MFXC24VK.js +29 -0
  391. package/dist/{managed-secret-NCWEMPUQ.js → managed-secret-MFTFT22X.js} +10 -11
  392. package/dist/materialized-views/index.js +30 -24
  393. package/dist/{migrate-cek-5ENH64AA.js → migrate-cek-DZRFFOHW.js} +2 -2
  394. package/dist/money/index.js +5 -5
  395. package/dist/noydb-ITIGNKUF.js +96 -0
  396. package/dist/overlay-views/index.js +4 -4
  397. package/dist/periods/index.js +12 -13
  398. package/dist/pod/index.js +74 -67
  399. package/dist/{pod-handle-ECVCDIXW.js → pod-handle-A3LET7NO.js} +10 -11
  400. package/dist/pod-handle-A3LET7NO.js.map +1 -0
  401. package/dist/policy/index.js +10 -11
  402. package/dist/port/on/index.d.ts +1 -1
  403. package/dist/port/to/index.d.ts +1 -1
  404. package/dist/port/with/blob-strategy.d.ts +10 -1
  405. package/dist/port/with/classified-strategy.d.ts +1 -1
  406. package/dist/port/with/collection-options.d.ts +6 -1
  407. package/dist/port/with/collection-registries.d.ts +1 -1
  408. package/dist/port/with/coverage-strategy.d.ts +83 -0
  409. package/dist/port/with/lookup-strategy.d.ts +2 -2
  410. package/dist/port/with/service-bus.d.ts +46 -0
  411. package/dist/port/with/strategies.d.ts +2 -0
  412. package/dist/portability/index.js +8 -8
  413. package/dist/{post-register-3IPCSG6Q.js → post-register-7ND27CF2.js} +6 -6
  414. package/dist/post-register-7ND27CF2.js.map +1 -0
  415. package/dist/query/all/index.js +31 -0
  416. package/dist/query/index.js +20 -32
  417. package/dist/query/live/index.js +21 -0
  418. package/dist/query/live/index.js.map +1 -0
  419. package/dist/query/reduce/index.js +33 -0
  420. package/dist/query/reduce/index.js.map +1 -0
  421. package/dist/query/relate/index.js +56 -0
  422. package/dist/query/relate/index.js.map +1 -0
  423. package/dist/reduce/index.js +72 -18
  424. package/dist/reduce/index.js.map +1 -1
  425. package/dist/register-DT5HZ2LZ.js +30 -0
  426. package/dist/registry-BHRZGZHF.js +8 -0
  427. package/dist/registry-ET6ZFFWA.js +34 -0
  428. package/dist/registry-HXFGLGTG.js +8 -0
  429. package/dist/registry-THCPDEOD.js +23 -0
  430. package/dist/request-withdrawal-AV2MJJKY.js +30 -0
  431. package/dist/{reveal-QZDHSGD4.js → reveal-B2TLP4JQ.js} +10 -9
  432. package/dist/reveal-B2TLP4JQ.js.map +1 -0
  433. package/dist/revoke-6DWIEOCV.js +24 -0
  434. package/dist/satellites/index.js +1 -1
  435. package/dist/schema-update/index.js +2 -2
  436. package/dist/sealed-record/index.js +16 -18
  437. package/dist/sealed-record/index.js.map +1 -1
  438. package/dist/search/index.js +11 -5
  439. package/dist/{seed-X5CC22CQ.js → seed-XNSE4U3S.js} +15 -18
  440. package/dist/seed-XNSE4U3S.js.map +1 -0
  441. package/dist/sequence/index.js +9 -10
  442. package/dist/session/index.js +9 -10
  443. package/dist/session/index.js.map +1 -1
  444. package/dist/shadow/index.js +2 -2
  445. package/dist/signer-MHGW3OIL.js +23 -0
  446. package/dist/snapshots/index.js +11 -11
  447. package/dist/stale-6GCFMOOR.js +28 -0
  448. package/dist/storage-BYN5LO6Z.js +21 -0
  449. package/dist/storage-BYN5LO6Z.js.map +1 -0
  450. package/dist/store/index.js +1 -1
  451. package/dist/{store-coordination-provider-4WZAIRHC.js → store-coordination-provider-C4BPT5XF.js} +11 -12
  452. package/dist/store-coordination-provider-C4BPT5XF.js.map +1 -0
  453. package/dist/sync/index.js +10 -11
  454. package/dist/sync/index.js.map +1 -1
  455. package/dist/team/index.js +17 -16
  456. package/dist/tiers/index.js +13 -12
  457. package/dist/to/index.js +2 -2
  458. package/dist/transactions/index.js +3 -3
  459. package/dist/util/index.js +1 -1
  460. package/dist/vault-head/index.js +11 -14
  461. package/dist/vault-head/index.js.map +1 -1
  462. package/dist/{verify-6MDTIUEV.js → verify-UKALW7C2.js} +14 -12
  463. package/dist/verify-UKALW7C2.js.map +1 -0
  464. package/dist/via/blob/index.d.ts +1 -0
  465. package/dist/via/classified/binding.d.ts +2 -2
  466. package/dist/via/classified/config-drift.d.ts +2 -2
  467. package/dist/via/classified/errors.d.ts +1 -1
  468. package/dist/via/geo/binding.d.ts +31 -0
  469. package/dist/via/geo/descriptor.d.ts +54 -0
  470. package/dist/via/geo/geohash.d.ts +95 -0
  471. package/dist/via/geo/index.d.ts +13 -0
  472. package/dist/via/geo/where.d.ts +50 -0
  473. package/dist/via/i18n/core.d.ts +1 -1
  474. package/dist/via/lookup/handle.d.ts +4 -4
  475. package/dist/via/lookup/registry.d.ts +1 -1
  476. package/dist/via/lookup/snapshot.d.ts +3 -3
  477. package/dist/walk-4VPK7AS4.js +20 -0
  478. package/dist/walk-4VPK7AS4.js.map +1 -0
  479. package/dist/with-audit/attestation/index.d.ts +2 -1
  480. package/dist/with-audit/attestation/issue.d.ts +2 -2
  481. package/dist/with-audit/attestation/revoke.d.ts +2 -2
  482. package/dist/with-audit/attestation/scheme.d.ts +7 -0
  483. package/dist/with-audit/attestation/signer.d.ts +1 -1
  484. package/dist/with-audit/attestation/strategy.d.ts +2 -2
  485. package/dist/with-audit/attestation/types.d.ts +10 -0
  486. package/dist/with-audit/attestation/vault-facade.d.ts +2 -2
  487. package/dist/with-audit/attestation/verifier.d.ts +6 -0
  488. package/dist/with-audit/consent/consent.d.ts +1 -1
  489. package/dist/with-audit/consent/strategy.d.ts +1 -1
  490. package/dist/with-audit/coverage/accounting.d.ts +112 -0
  491. package/dist/with-audit/coverage/active.d.ts +29 -0
  492. package/dist/with-audit/coverage/index.d.ts +61 -0
  493. package/dist/with-audit/coverage/sketch.d.ts +75 -0
  494. package/dist/with-audit/forget/subject-index.d.ts +1 -1
  495. package/dist/with-audit/periods/periods.d.ts +55 -7
  496. package/dist/with-audit/periods/reserved-collections.d.ts +3 -0
  497. package/dist/with-audit/periods/vault-facade.d.ts +18 -1
  498. package/dist/with-audit/sealed-record/index.d.ts +2 -2
  499. package/dist/with-audit/sealed-record/strategy.d.ts +1 -1
  500. package/dist/with-audit/tiers/index.d.ts +53 -2
  501. package/dist/with-audit/tiers/strategy.d.ts +8 -0
  502. package/dist/with-cargo/adopt-partition.d.ts +1 -1
  503. package/dist/with-cargo/extract-partition.d.ts +1 -1
  504. package/dist/with-cargo/floor.d.ts +3 -3
  505. package/dist/with-commit/history/history.d.ts +2 -2
  506. package/dist/with-commit/history/index.d.ts +1 -1
  507. package/dist/with-commit/history/ledger/store.d.ts +1 -1
  508. package/dist/with-commit/history/strategy.d.ts +1 -1
  509. package/dist/with-commit/history/time-machine.d.ts +1 -1
  510. package/dist/with-commit/numbering/index.d.ts +1 -1
  511. package/dist/with-commit/sequence/index.d.ts +1 -1
  512. package/dist/with-commit/tx/invariants.d.ts +1 -1
  513. package/dist/with-commit/tx/transaction.d.ts +13 -3
  514. package/dist/with-commit/vault-head/head.d.ts +1 -1
  515. package/dist/with-commit/vault-head/index.d.ts +1 -1
  516. package/dist/with-commit/vault-head/strategy.d.ts +1 -1
  517. package/dist/with-commit/vault-head/verify.d.ts +1 -1
  518. package/dist/with-formula/derivations/dispatch.d.ts +1 -1
  519. package/dist/with-formula/derivations/fanout-sidecar.d.ts +1 -1
  520. package/dist/with-formula/materialized-views/dependency-analyzer.d.ts +4 -3
  521. package/dist/with-formula/materialized-views/emit-memo.d.ts +40 -0
  522. package/dist/with-formula/materialized-views/executor.d.ts +8 -0
  523. package/dist/with-formula/materialized-views/index.d.ts +1 -1
  524. package/dist/with-formula/materialized-views/registry.d.ts +15 -0
  525. package/dist/with-formula/materialized-views/types.d.ts +106 -14
  526. package/dist/with-formula/materialized-views/window-stage.d.ts +11 -0
  527. package/dist/with-formula/overlay-views/types.d.ts +1 -1
  528. package/dist/with-formula/overlay-views/virtual-collection.d.ts +13 -4
  529. package/dist/with-lookup/embeddings/chunks.d.ts +79 -0
  530. package/dist/with-lookup/embeddings/descriptor.d.ts +21 -0
  531. package/dist/with-lookup/embeddings/index.d.ts +3 -0
  532. package/dist/with-lookup/embeddings/ivf-flat.d.ts +93 -0
  533. package/dist/with-lookup/embeddings/vector-index.d.ts +73 -0
  534. package/dist/with-lookup/embeddings/vector-set.d.ts +94 -1
  535. package/dist/with-lookup/embeddings/with-vector-index.d.ts +67 -0
  536. package/dist/with-lookup/indexing/collection-facade.d.ts +86 -3
  537. package/dist/with-lookup/indexing/compound-indexes.d.ts +129 -0
  538. package/dist/with-lookup/indexing/eager-indexes.d.ts +170 -1
  539. package/dist/with-lookup/indexing/index-snapshot.d.ts +62 -0
  540. package/dist/with-lookup/indexing/lazy-builder.d.ts +33 -0
  541. package/dist/with-lookup/indexing/persisted-field-indexes.d.ts +104 -0
  542. package/dist/with-lookup/indexing/persisted-indexes.d.ts +12 -0
  543. package/dist/with-lookup/indexing/sorted-indexes.d.ts +117 -0
  544. package/dist/with-lookup/indexing/unique-constraints.d.ts +106 -23
  545. package/dist/with-lookup/reduce/active.d.ts +2 -24
  546. package/dist/with-lookup/reduce/group-core.d.ts +43 -0
  547. package/dist/with-lookup/reduce/groupby.d.ts +195 -36
  548. package/dist/with-lookup/reduce/incremental-group.d.ts +153 -0
  549. package/dist/with-lookup/reduce/index.d.ts +26 -5
  550. package/dist/with-lookup/reduce/reducers.d.ts +255 -1
  551. package/dist/with-lookup/reduce/reduction.d.ts +44 -13
  552. package/dist/with-lookup/reduce/strategy.d.ts +43 -3
  553. package/dist/with-lookup/reduce/window.d.ts +262 -0
  554. package/dist/with-lookup/search/collection-facade.d.ts +45 -9
  555. package/dist/with-lookup/search/index-store.d.ts +5 -3
  556. package/dist/with-lookup/search/index.d.ts +4 -2
  557. package/dist/with-lookup/search/inverted-index.d.ts +38 -2
  558. package/dist/with-lookup/search/persisted-index-store.d.ts +5 -2
  559. package/dist/with-lookup/search/phrase.d.ts +28 -0
  560. package/dist/with-lookup/search/retrieve-types.d.ts +57 -1
  561. package/dist/with-lookup/search/serialize.d.ts +29 -3
  562. package/dist/with-lookup/search/strategy.d.ts +2 -6
  563. package/dist/with-party/broker/index.d.ts +3 -3
  564. package/dist/with-party/directory/cover/index.d.ts +1 -1
  565. package/dist/with-party/directory/cover/storage.d.ts +1 -1
  566. package/dist/with-party/directory/cover/types.d.ts +1 -1
  567. package/dist/with-party/directory/index.d.ts +1 -1
  568. package/dist/with-party/directory/types.d.ts +1 -1
  569. package/dist/with-party/directory/user-envelope/api.d.ts +1 -1
  570. package/dist/with-party/directory/user-envelope/storage.d.ts +1 -1
  571. package/dist/with-party/policy/engine.d.ts +1 -1
  572. package/dist/with-party/policy/index.d.ts +1 -1
  573. package/dist/with-party/policy/presets.d.ts +1 -1
  574. package/dist/with-party/team/authenticators.d.ts +91 -1
  575. package/dist/with-party/team/delegation.d.ts +1 -1
  576. package/dist/with-party/team/echo-secret.d.ts +2 -2
  577. package/dist/with-party/team/index.d.ts +4 -3
  578. package/dist/with-party/team/keyring.d.ts +2 -2
  579. package/dist/with-party/team/magic-link-grant.d.ts +1 -1
  580. package/dist/with-party/team/managed-secret.d.ts +1 -1
  581. package/dist/with-party/team/noydb-facade.d.ts +12 -3
  582. package/dist/with-party/team/recovery.d.ts +1 -1
  583. package/dist/with-party/team/roster-tag.d.ts +1 -1
  584. package/dist/with-party/team/rotate-recover.d.ts +1 -1
  585. package/dist/with-party/team/wrapped-deks.d.ts +1 -1
  586. package/dist/with-pod/format.d.ts +1 -1
  587. package/dist/with-pod/index.d.ts +1 -1
  588. package/dist/with-pod/pod.d.ts +1 -1
  589. package/dist/with-shape/blobs/blob-compaction.d.ts +17 -1
  590. package/dist/with-shape/blobs/blob-intent.d.ts +1 -1
  591. package/dist/with-shape/blobs/blob-set.d.ts +23 -4
  592. package/dist/with-shape/blobs/legacy-sweep.d.ts +35 -0
  593. package/dist/with-shape/introspection/describe.d.ts +7 -1
  594. package/dist/with-shape/introspection/field-meta.d.ts +18 -0
  595. package/dist/with-shape/introspection/types.d.ts +57 -1
  596. package/dist/with-shape/introspection/walk.d.ts +1 -1
  597. package/dist/with-shape/links/lazy-handle.d.ts +1 -1
  598. package/dist/with-shape/links/link-set.d.ts +1 -1
  599. package/dist/with-shape/links/vault-facade.d.ts +1 -1
  600. package/dist/with-shape/manifest/derive.d.ts +1 -1
  601. package/dist/with-shape/manifest/storage.d.ts +1 -1
  602. package/dist/with-shape/persisted-schemas/register.d.ts +1 -1
  603. package/dist/with-shape/persisted-schemas/storage.d.ts +1 -1
  604. package/dist/with-shape/satellites/dead-filter.d.ts +1 -1
  605. package/dist/with-shape/satellites/declare.d.ts +1 -1
  606. package/dist/with-shape/satellites/marker.d.ts +1 -1
  607. package/dist/with-shape/satellites/post-register.d.ts +1 -1
  608. package/dist/with-store/partitioned/index.d.ts +337 -0
  609. package/dist/with-sync/change-broadcast.d.ts +153 -0
  610. package/dist/with-sync/presence.d.ts +5 -10
  611. package/dist/withdraw-accessible-HL7GACUE.js +27 -0
  612. package/dist/withdraw-accessible-HL7GACUE.js.map +1 -0
  613. package/package.json +48 -12
  614. package/dist/api-WYW4YEQG.js +0 -19
  615. package/dist/backup-XKCXVKV3.js.map +0 -1
  616. package/dist/chunk-2577DKXB.js.map +0 -1
  617. package/dist/chunk-2ENE6445.js.map +0 -1
  618. package/dist/chunk-2N5ML6HT.js.map +0 -1
  619. package/dist/chunk-334WSVOW.js.map +0 -1
  620. package/dist/chunk-3BVH633C.js.map +0 -1
  621. package/dist/chunk-3PGS7TYR.js.map +0 -1
  622. package/dist/chunk-3V4KWFX7.js.map +0 -1
  623. package/dist/chunk-453F654R.js.map +0 -1
  624. package/dist/chunk-4GFX6MPA.js.map +0 -1
  625. package/dist/chunk-4GVM6QZA.js.map +0 -1
  626. package/dist/chunk-4ZS56W5S.js.map +0 -1
  627. package/dist/chunk-5VCRVKOZ.js.map +0 -1
  628. package/dist/chunk-6YXCPL4T.js.map +0 -1
  629. package/dist/chunk-7APJ6CO6.js.map +0 -1
  630. package/dist/chunk-7MG2LHO5.js +0 -1616
  631. package/dist/chunk-7MG2LHO5.js.map +0 -1
  632. package/dist/chunk-7MG7SJT7.js.map +0 -1
  633. package/dist/chunk-7O3Y4PPD.js.map +0 -1
  634. package/dist/chunk-A2HKRLPV.js.map +0 -1
  635. package/dist/chunk-A66I4JOA.js.map +0 -1
  636. package/dist/chunk-ACAQ2DSG.js.map +0 -1
  637. package/dist/chunk-ATL3ZVXT.js +0 -151
  638. package/dist/chunk-ATL3ZVXT.js.map +0 -1
  639. package/dist/chunk-AYX7AINO.js.map +0 -1
  640. package/dist/chunk-BLN54W3L.js.map +0 -1
  641. package/dist/chunk-BRLKZUBT.js +0 -95
  642. package/dist/chunk-BRLKZUBT.js.map +0 -1
  643. package/dist/chunk-BTDR2PXY.js +0 -29
  644. package/dist/chunk-BTDR2PXY.js.map +0 -1
  645. package/dist/chunk-BVN6KXL2.js.map +0 -1
  646. package/dist/chunk-CHQCZZWC.js.map +0 -1
  647. package/dist/chunk-CUQPWYRX.js.map +0 -1
  648. package/dist/chunk-CUZLNGD5.js.map +0 -1
  649. package/dist/chunk-DFMWUOU5.js.map +0 -1
  650. package/dist/chunk-EIPVYUEP.js.map +0 -1
  651. package/dist/chunk-EQEYOJBM.js.map +0 -1
  652. package/dist/chunk-F3W6YMDC.js.map +0 -1
  653. package/dist/chunk-FET5XCAT.js.map +0 -1
  654. package/dist/chunk-G73UVHCA.js.map +0 -1
  655. package/dist/chunk-GPNTB4Y7.js.map +0 -1
  656. package/dist/chunk-GYGLAVCX.js.map +0 -1
  657. package/dist/chunk-HIWCKBEY.js.map +0 -1
  658. package/dist/chunk-HJUWN7JN.js.map +0 -1
  659. package/dist/chunk-HK67PX4J.js.map +0 -1
  660. package/dist/chunk-HPVZCW43.js +0 -479
  661. package/dist/chunk-HPVZCW43.js.map +0 -1
  662. package/dist/chunk-I3ISCYT7.js +0 -159
  663. package/dist/chunk-I3ISCYT7.js.map +0 -1
  664. package/dist/chunk-K23VKTN4.js.map +0 -1
  665. package/dist/chunk-KKEESNPE.js.map +0 -1
  666. package/dist/chunk-KTFRCC5C.js.map +0 -1
  667. package/dist/chunk-LH5A3ZPG.js.map +0 -1
  668. package/dist/chunk-LP7BEXCT.js +0 -32
  669. package/dist/chunk-LP7BEXCT.js.map +0 -1
  670. package/dist/chunk-M4YPHYEH.js.map +0 -1
  671. package/dist/chunk-NSITFOCJ.js +0 -99
  672. package/dist/chunk-NSITFOCJ.js.map +0 -1
  673. package/dist/chunk-OTQZ7ZWU.js.map +0 -1
  674. package/dist/chunk-P3MG6QCN.js.map +0 -1
  675. package/dist/chunk-PEOZ34EM.js.map +0 -1
  676. package/dist/chunk-PPTHY5QO.js.map +0 -1
  677. package/dist/chunk-Q2MPFCQ7.js.map +0 -1
  678. package/dist/chunk-Q7HZX3IF.js.map +0 -1
  679. package/dist/chunk-QPQUVOZ2.js.map +0 -1
  680. package/dist/chunk-QTQUH4DS.js.map +0 -1
  681. package/dist/chunk-R42NSZI6.js.map +0 -1
  682. package/dist/chunk-R7BX2NB3.js.map +0 -1
  683. package/dist/chunk-RSGLUIO6.js.map +0 -1
  684. package/dist/chunk-RTBJ5IOO.js +0 -87
  685. package/dist/chunk-RTBJ5IOO.js.map +0 -1
  686. package/dist/chunk-SGZAIJCV.js.map +0 -1
  687. package/dist/chunk-SKGMN35F.js.map +0 -1
  688. package/dist/chunk-SPYWXKJN.js.map +0 -1
  689. package/dist/chunk-SZJ3DLZA.js +0 -66
  690. package/dist/chunk-SZJ3DLZA.js.map +0 -1
  691. package/dist/chunk-TRGTKX5E.js.map +0 -1
  692. package/dist/chunk-UDHWDSRL.js.map +0 -1
  693. package/dist/chunk-UP4BECPY.js.map +0 -1
  694. package/dist/chunk-UXVWEX5L.js.map +0 -1
  695. package/dist/chunk-V7ZRRCRJ.js.map +0 -1
  696. package/dist/chunk-WQBG4SZS.js.map +0 -1
  697. package/dist/chunk-XKWGNJ26.js.map +0 -1
  698. package/dist/chunk-YMUFFJCO.js.map +0 -1
  699. package/dist/chunk-ZHKOPKE3.js.map +0 -1
  700. package/dist/chunk-ZN4FD4PE.js +0 -364
  701. package/dist/chunk-ZN4FD4PE.js.map +0 -1
  702. package/dist/chunk-ZORTV6NH.js.map +0 -1
  703. package/dist/chunk-ZYIYHJ5R.js.map +0 -1
  704. package/dist/classified-marker-BWOFVYAC.js.map +0 -1
  705. package/dist/collection-facade-JSJYIKS4.js +0 -45
  706. package/dist/dead-filter-PKQDLOT4.js.map +0 -1
  707. package/dist/delegation-DS5NRILW.js.map +0 -1
  708. package/dist/derive-E642AOUB.js +0 -21
  709. package/dist/dispatch-Q6MWLOJY.js.map +0 -1
  710. package/dist/executor-5NIMLSKZ.js +0 -8
  711. package/dist/executor-7UQ3BZ4F.js +0 -29
  712. package/dist/executor-AQVXV5GZ.js +0 -8
  713. package/dist/export-accessible-ORMKLA3E.js +0 -22
  714. package/dist/extract-partition-NKYO3WNG.js +0 -37
  715. package/dist/fanout-sidecar-S3QL53YX.js.map +0 -1
  716. package/dist/find-NOGJ25VX.js +0 -10
  717. package/dist/issue-3DTQ7VJJ.js +0 -18
  718. package/dist/json-schema-V3M5MUCM.js.map +0 -1
  719. package/dist/kernel/enclave/classify/compare.d.ts +0 -10
  720. package/dist/kernel/enclave/index.d.ts +0 -87
  721. package/dist/kernel/enclave/record-keys/lifecycle.d.ts +0 -124
  722. package/dist/kernel/enclave/record-keys/rekey-blob.d.ts +0 -88
  723. package/dist/kernel/enclave/record-keys/rekey.d.ts +0 -91
  724. package/dist/kernel/enclave/record-keys/sealed-slot.d.ts +0 -14
  725. package/dist/kernel/enclave/record-keys/sealed-slots.d.ts +0 -123
  726. package/dist/kernel/enclave/record-keys/sealing.d.ts +0 -70
  727. package/dist/kernel/query/join.d.ts +0 -232
  728. package/dist/liberate-V35QUHJP.js +0 -24
  729. package/dist/link-set-2TTM3IZC.js +0 -30
  730. package/dist/noydb-62MX4QUG.js +0 -90
  731. package/dist/pod-handle-ECVCDIXW.js.map +0 -1
  732. package/dist/post-register-3IPCSG6Q.js.map +0 -1
  733. package/dist/register-HHLXEQDN.js +0 -31
  734. package/dist/registry-23WF3TGH.js +0 -8
  735. package/dist/registry-4AYVUNXK.js +0 -8
  736. package/dist/registry-JS3YFQQM.js +0 -18
  737. package/dist/registry-XX2Z7B46.js +0 -32
  738. package/dist/request-withdrawal-CHPATE4G.js +0 -30
  739. package/dist/reveal-QZDHSGD4.js.map +0 -1
  740. package/dist/revoke-7M2VW4ON.js +0 -23
  741. package/dist/seed-X5CC22CQ.js.map +0 -1
  742. package/dist/signer-SJQJVSM6.js +0 -24
  743. package/dist/stale-BZS6H2RY.js +0 -29
  744. package/dist/storage-RW4QBS23.js +0 -22
  745. package/dist/store-coordination-provider-4WZAIRHC.js.map +0 -1
  746. package/dist/verify-6MDTIUEV.js.map +0 -1
  747. package/dist/walk-ZURCH6RZ.js +0 -21
  748. package/dist/withdraw-accessible-PXR4IXDX.js +0 -27
  749. /package/dist/{api-WYW4YEQG.js.map → api-OS747DS4.js.map} +0 -0
  750. /package/dist/{computed-VPOKQK4N.js.map → capsule/contract.js.map} +0 -0
  751. /package/dist/{kernel/enclave → capsule/enclave-aes}/broker/proof.d.ts +0 -0
  752. /package/dist/{kernel/enclave → capsule/enclave-aes}/classify/bidx.d.ts +0 -0
  753. /package/dist/{kernel/enclave → capsule/enclave-aes}/classify/digest.d.ts +0 -0
  754. /package/dist/{kernel/enclave → capsule/enclave-aes}/classify/vdig.d.ts +0 -0
  755. /package/dist/{kernel/enclave/classify → capsule/plumbing}/kofn.d.ts +0 -0
  756. /package/dist/{kernel/enclave/classify → capsule/plumbing}/normalize.d.ts +0 -0
  757. /package/dist/{kernel/enclave → capsule/plumbing}/record-aad.d.ts +0 -0
  758. /package/dist/{collection-facade-JSJYIKS4.js.map → capsule-VOLX3QRQ.js.map} +0 -0
  759. /package/dist/{chunk-MVMXZYXT.js.map → chunk-2GHDLTPE.js.map} +0 -0
  760. /package/dist/{chunk-XLMEZIAJ.js.map → chunk-2ODVB6LZ.js.map} +0 -0
  761. /package/dist/{chunk-RMS3NEA3.js.map → chunk-4JPMZTJY.js.map} +0 -0
  762. /package/dist/{chunk-NQKIUNW5.js.map → chunk-52MGURXO.js.map} +0 -0
  763. /package/dist/{chunk-UGTBXF5U.js.map → chunk-7XMHMVTS.js.map} +0 -0
  764. /package/dist/{chunk-BZ3534YM.js.map → chunk-AUKKUPVB.js.map} +0 -0
  765. /package/dist/{derive-E642AOUB.js.map → chunk-BKT776R5.js.map} +0 -0
  766. /package/dist/{chunk-6LKOJBV6.js.map → chunk-BVCUTXE3.js.map} +0 -0
  767. /package/dist/{chunk-VTFVLCUH.js.map → chunk-DIZLQVAA.js.map} +0 -0
  768. /package/dist/{chunk-LWBCUYZW.js.map → chunk-E2N2T5ZO.js.map} +0 -0
  769. /package/dist/{chunk-JVIBCBC7.js.map → chunk-EJLV62NI.js.map} +0 -0
  770. /package/dist/{chunk-JMGDHKQF.js.map → chunk-FLPCETP6.js.map} +0 -0
  771. /package/dist/{chunk-DGOZ4UZD.js.map → chunk-FVH5QYY2.js.map} +0 -0
  772. /package/dist/{chunk-JBDFMYKQ.js.map → chunk-GZT3NQRA.js.map} +0 -0
  773. /package/dist/{chunk-TFR7DSOV.js.map → chunk-H427H63K.js.map} +0 -0
  774. /package/dist/{chunk-SMH6SRX7.js.map → chunk-JOSPH3E5.js.map} +0 -0
  775. /package/dist/{chunk-3BZZJJMQ.js.map → chunk-MILI22XQ.js.map} +0 -0
  776. /package/dist/{chunk-YYP7WSEB.js.map → chunk-O2IMQSNA.js.map} +0 -0
  777. /package/dist/{chunk-QIZPZMUI.js.map → chunk-Q4UHJ5SN.js.map} +0 -0
  778. /package/dist/{chunk-FAHMLERK.js.map → chunk-QBLT6POL.js.map} +0 -0
  779. /package/dist/{chunk-BUE2D7PX.js.map → chunk-SMV2HRDU.js.map} +0 -0
  780. /package/dist/{chunk-SFAWCTEM.js.map → chunk-TZZBXPZK.js.map} +0 -0
  781. /package/dist/{chunk-UHHPLO3I.js.map → chunk-V3RWOOSO.js.map} +0 -0
  782. /package/dist/{chunk-Q2PU57HC.js.map → chunk-VVOLDVIR.js.map} +0 -0
  783. /package/dist/{chunk-TUFM4UZP.js.map → chunk-XQRFSKYM.js.map} +0 -0
  784. /package/dist/{chunk-GY4WYNNG.js.map → chunk-Y2RKVFKR.js.map} +0 -0
  785. /package/dist/{chunk-4OZNXTO4.js.map → chunk-YRXFFWG4.js.map} +0 -0
  786. /package/dist/{enclave-55PAM4YO.js.map → collection-facade-CS7CA2XO.js.map} +0 -0
  787. /package/dist/{executor-5NIMLSKZ.js.map → computed-FAD7SED4.js.map} +0 -0
  788. /package/dist/{executor-7UQ3BZ4F.js.map → derive-XLOJVXPU.js.map} +0 -0
  789. /package/dist/{dispatch-IEPAVQUM.js.map → dispatch-H4HV32AM.js.map} +0 -0
  790. /package/dist/{executor-AQVXV5GZ.js.map → executor-FMPVN6DT.js.map} +0 -0
  791. /package/dist/{export-accessible-ORMKLA3E.js.map → executor-LBBBRTN5.js.map} +0 -0
  792. /package/dist/{extract-partition-NKYO3WNG.js.map → executor-OSRZST2U.js.map} +0 -0
  793. /package/dist/{find-NOGJ25VX.js.map → export-accessible-RAOJAAU5.js.map} +0 -0
  794. /package/dist/{issue-3DTQ7VJJ.js.map → extract-partition-JD5CUSTG.js.map} +0 -0
  795. /package/dist/{ledger-EDXFFZQL.js.map → find-JRN4RNQ5.js.map} +0 -0
  796. /package/dist/{liberate-V35QUHJP.js.map → issue-YIVBZUTH.js.map} +0 -0
  797. /package/dist/{link-set-2TTM3IZC.js.map → ledger-5ZMGE44K.js.map} +0 -0
  798. /package/dist/{managed-secret-NCWEMPUQ.js.map → liberate-WZSZM2W6.js.map} +0 -0
  799. /package/dist/{noydb-62MX4QUG.js.map → link-set-MFXC24VK.js.map} +0 -0
  800. /package/dist/{register-HHLXEQDN.js.map → managed-secret-MFTFT22X.js.map} +0 -0
  801. /package/dist/{migrate-cek-5ENH64AA.js.map → migrate-cek-DZRFFOHW.js.map} +0 -0
  802. /package/dist/{registry-23WF3TGH.js.map → noydb-ITIGNKUF.js.map} +0 -0
  803. /package/dist/{registry-4AYVUNXK.js.map → query/all/index.js.map} +0 -0
  804. /package/dist/{registry-JS3YFQQM.js.map → register-DT5HZ2LZ.js.map} +0 -0
  805. /package/dist/{registry-XX2Z7B46.js.map → registry-BHRZGZHF.js.map} +0 -0
  806. /package/dist/{request-withdrawal-CHPATE4G.js.map → registry-ET6ZFFWA.js.map} +0 -0
  807. /package/dist/{revoke-7M2VW4ON.js.map → registry-HXFGLGTG.js.map} +0 -0
  808. /package/dist/{signer-SJQJVSM6.js.map → registry-THCPDEOD.js.map} +0 -0
  809. /package/dist/{stale-BZS6H2RY.js.map → request-withdrawal-AV2MJJKY.js.map} +0 -0
  810. /package/dist/{storage-RW4QBS23.js.map → revoke-6DWIEOCV.js.map} +0 -0
  811. /package/dist/{walk-ZURCH6RZ.js.map → signer-MHGW3OIL.js.map} +0 -0
  812. /package/dist/{withdraw-accessible-PXR4IXDX.js.map → stale-6GCFMOOR.js.map} +0 -0
@@ -0,0 +1,293 @@
1
+ import {
2
+ getAtPath
3
+ } from "./chunk-OKSTSITU.js";
4
+ import {
5
+ EmbeddingModelMismatchError
6
+ } from "./chunk-37EPTBBR.js";
7
+
8
+ // src/with-lookup/embeddings/descriptor.ts
9
+ function embeddingSourceText(record, source) {
10
+ const fields = typeof source === "string" ? [source] : source;
11
+ const parts = [];
12
+ for (const f of fields) {
13
+ for (const leaf of getAtPath(record, f)) {
14
+ if (typeof leaf === "string" && leaf !== "") parts.push(leaf);
15
+ }
16
+ }
17
+ return parts.join(" ");
18
+ }
19
+
20
+ // src/with-lookup/embeddings/vec-id.ts
21
+ function encodeVecId(collection, recordId) {
22
+ if (collection.includes("/")) {
23
+ throw new Error(
24
+ `encodeVecId: collection name "${collection}" must not contain "/" \u2014 it would make the "${collection}/${recordId}" _vec id ambiguous against another collection's rows.`
25
+ );
26
+ }
27
+ return `${collection}/${recordId}`;
28
+ }
29
+ function decodeVecId(collection, vecId) {
30
+ const prefix = `${collection}/`;
31
+ if (!vecId.startsWith(prefix)) return null;
32
+ return vecId.slice(prefix.length);
33
+ }
34
+ function isVecIdFor(collection, vecId) {
35
+ return vecId.startsWith(`${collection}/`);
36
+ }
37
+
38
+ // src/with-lookup/embeddings/chunks.ts
39
+ function normalizeChunkSpans(spans, textLength) {
40
+ const out = [];
41
+ for (const s of spans) {
42
+ if (!Number.isInteger(s.start) || !Number.isInteger(s.end)) continue;
43
+ if (s.start < 0 || s.end > textLength || s.end <= s.start) continue;
44
+ out.push({ id: s.id ?? `c${out.length}`, start: s.start, end: s.end });
45
+ }
46
+ return out;
47
+ }
48
+ async function deriveChunkVectors(text, descriptor) {
49
+ if (!descriptor.chunk) return [];
50
+ const spans = normalizeChunkSpans(descriptor.chunk(text), text.length);
51
+ if (spans.length === 0) return [];
52
+ const out = [];
53
+ for (const span of spans) {
54
+ out.push({ ...span, vec: await descriptor.encode(text.slice(span.start, span.end)) });
55
+ }
56
+ return out;
57
+ }
58
+
59
+ // src/with-lookup/embeddings/cosine.ts
60
+ function cosine(a, b) {
61
+ if (a.length !== b.length) return 0;
62
+ let dot = 0, na = 0, nb = 0;
63
+ for (let i = 0; i < a.length; i++) {
64
+ const x = a[i], y = b[i];
65
+ dot += x * y;
66
+ na += x * x;
67
+ nb += y * y;
68
+ }
69
+ if (na === 0 || nb === 0) return 0;
70
+ return dot / (Math.sqrt(na) * Math.sqrt(nb));
71
+ }
72
+
73
+ // src/with-lookup/embeddings/vector-set.ts
74
+ function pointsIn(v) {
75
+ if (v.chunks && v.chunks.length > 0) return v.chunks.length;
76
+ return v.vec ? 1 : 0;
77
+ }
78
+ var VectorSet = class {
79
+ /**
80
+ * `indexConfig` is `withVectorIndex()`'s return value, taken from the
81
+ * collection's `embeddings.index`. Absent — the overwhelmingly common case —
82
+ * and this class behaves exactly as it did before #1360 part 2.
83
+ */
84
+ constructor(indexConfig) {
85
+ this.indexConfig = indexConfig;
86
+ }
87
+ indexConfig;
88
+ vectors;
89
+ /** id → position in `vectors`, so an incremental write is O(1), not O(n). */
90
+ posById = /* @__PURE__ */ new Map();
91
+ /** model → live record count, so the model guard is O(1) per query on the indexed path. */
92
+ modelCounts = /* @__PURE__ */ new Map();
93
+ points = 0;
94
+ index;
95
+ indexing;
96
+ /**
97
+ * Set when a build produced NO partitions — a corpus of nothing but
98
+ * zero-norm or mismatched-dimension vectors. An empty index answers every
99
+ * query with `[]`, which is a WRONG answer rather than a slow one (the exact
100
+ * path scores those vectors 0 and returns them), so the set falls back to
101
+ * brute force and does not retry the build on every query.
102
+ */
103
+ indexUnusable = false;
104
+ get loaded() {
105
+ return this.vectors !== void 0;
106
+ }
107
+ /** Live VECTOR count (chunks included) — what `minVectors` is compared against. */
108
+ get pointCount() {
109
+ return this.points;
110
+ }
111
+ /** Test/benchmark introspection: whether an approximate index is currently serving queries. */
112
+ get indexed() {
113
+ return this.index !== void 0;
114
+ }
115
+ async ensureLoaded(load) {
116
+ if (this.vectors !== void 0) return;
117
+ const loaded = await load();
118
+ this.vectors = loaded;
119
+ this.posById = /* @__PURE__ */ new Map();
120
+ this.modelCounts = /* @__PURE__ */ new Map();
121
+ this.points = 0;
122
+ for (let i = 0; i < loaded.length; i++) {
123
+ const v = loaded[i];
124
+ this.posById.set(v.id, i);
125
+ this.points += pointsIn(v);
126
+ this.modelCounts.set(v.model, (this.modelCounts.get(v.model) ?? 0) + 1);
127
+ }
128
+ this.index = void 0;
129
+ this.indexUnusable = false;
130
+ }
131
+ markDirty() {
132
+ this.vectors = void 0;
133
+ this.posById = /* @__PURE__ */ new Map();
134
+ this.modelCounts = /* @__PURE__ */ new Map();
135
+ this.points = 0;
136
+ this.index = void 0;
137
+ this.indexing = void 0;
138
+ this.indexUnusable = false;
139
+ }
140
+ /**
141
+ * Incrementally insert or replace one record's vectors.
142
+ *
143
+ * This is what makes an approximate index viable at all here. `markDirty()`
144
+ * drops the whole set, so before #1360 part 2 every `put()` cost a full
145
+ * re-load on the next query — survivable for a brute-force scan that has no
146
+ * build step, fatal for an index whose build is tens of query-equivalents.
147
+ * `embedOnWrite` already holds the vectors it just encoded, so it can hand
148
+ * them over instead of throwing the set away.
149
+ *
150
+ * No-op when the set is not loaded: an unloaded set is already "dirty", and
151
+ * the next query loads everything from the sidecars anyway.
152
+ */
153
+ upsert(vector) {
154
+ const all = this.vectors;
155
+ if (all === void 0) return;
156
+ const at = this.posById.get(vector.id);
157
+ if (at !== void 0) {
158
+ const prev = all[at];
159
+ this.points -= pointsIn(prev);
160
+ this.decModel(prev.model);
161
+ all[at] = vector;
162
+ } else {
163
+ this.posById.set(vector.id, all.length);
164
+ all.push(vector);
165
+ }
166
+ this.points += pointsIn(vector);
167
+ this.modelCounts.set(vector.model, (this.modelCounts.get(vector.model) ?? 0) + 1);
168
+ this.index?.upsert(vector);
169
+ }
170
+ /**
171
+ * Incrementally drop one record's vectors. Removal is a SWAP with the last
172
+ * element, not a splice: `vectors` order is whatever `adapter.list()`
173
+ * returned and has never been part of any contract, so preserving it would
174
+ * buy nothing and cost an O(n) index rebuild on every `forget()`.
175
+ */
176
+ removeRecord(id) {
177
+ const all = this.vectors;
178
+ if (all === void 0) return;
179
+ const at = this.posById.get(id);
180
+ if (at === void 0) return;
181
+ const removed = all[at];
182
+ this.points -= pointsIn(removed);
183
+ this.decModel(removed.model);
184
+ const last = all.pop();
185
+ if (at < all.length) {
186
+ all[at] = last;
187
+ this.posById.set(last.id, at);
188
+ }
189
+ this.posById.delete(id);
190
+ this.index?.remove(id);
191
+ }
192
+ decModel(model) {
193
+ const n = (this.modelCounts.get(model) ?? 0) - 1;
194
+ if (n <= 0) this.modelCounts.delete(model);
195
+ else this.modelCounts.set(model, n);
196
+ }
197
+ /**
198
+ * Brute-force cosine kNN, one hit per RECORD. **Always exact.**
199
+ *
200
+ * #1360 best-chunk folding: a chunked record contributes its single BEST
201
+ * chunk score, never one hit per chunk and never a sum. Summing would make a
202
+ * long document outrank a short exact match purely for having more chunks —
203
+ * the folding is what keeps the score comparable across record lengths, and
204
+ * what keeps `k` a count of records rather than of fragments.
205
+ */
206
+ cosineTopK(query, k, opts = {}) {
207
+ const all = this.vectors ?? [];
208
+ const minScore = opts.minScore ?? -Infinity;
209
+ const hits = [];
210
+ for (const v of all) {
211
+ if (opts.expectModel !== void 0 && v.model !== opts.expectModel) {
212
+ throw new EmbeddingModelMismatchError(opts.expectModel, v.model);
213
+ }
214
+ if (v.chunks && v.chunks.length > 0) {
215
+ let best;
216
+ let bestScore = -Infinity;
217
+ for (const c of v.chunks) {
218
+ const s = cosine(query, c.vec);
219
+ if (s > bestScore) {
220
+ bestScore = s;
221
+ best = c;
222
+ }
223
+ }
224
+ if (best !== void 0 && bestScore >= minScore) {
225
+ hits.push({ id: v.id, score: bestScore, chunk: { id: best.id, start: best.start, end: best.end } });
226
+ }
227
+ continue;
228
+ }
229
+ if (!v.vec) continue;
230
+ const score = cosine(query, v.vec);
231
+ if (score >= minScore) hits.push({ id: v.id, score });
232
+ }
233
+ hits.sort((a, b) => b.score - a.score);
234
+ return hits.slice(0, k);
235
+ }
236
+ /**
237
+ * kNN under the collection's policy: approximate when an index is opted in
238
+ * AND the corpus is at or above `minVectors`, exact otherwise.
239
+ *
240
+ * ⭐ The default below the threshold is EXACT, deliberately: an index that
241
+ * builds on a 300-vector collection pays a build the queries can never
242
+ * amortise, and buys a recall cliff for a scan that was already sub-millisecond.
243
+ */
244
+ async topK(query, k, opts = {}) {
245
+ const cfg = this.indexConfig;
246
+ if (opts.exact === true || cfg === void 0 || this.indexUnusable || this.points < cfg.minVectors) {
247
+ return this.cosineTopK(query, k, opts);
248
+ }
249
+ if (opts.expectModel !== void 0) {
250
+ for (const model of this.modelCounts.keys()) {
251
+ if (model !== opts.expectModel) throw new EmbeddingModelMismatchError(opts.expectModel, model);
252
+ }
253
+ }
254
+ await this.ensureIndex(cfg);
255
+ const idx = this.index;
256
+ if (idx === void 0) return this.cosineTopK(query, k, opts);
257
+ return idx.search(query, k, {
258
+ ...opts.minScore !== void 0 ? { minScore: opts.minScore } : {},
259
+ ...opts.nprobe !== void 0 ? { nprobe: opts.nprobe } : {}
260
+ });
261
+ }
262
+ /** Build (or rebuild, once churn has made it stale) the index. Concurrency-safe. */
263
+ async ensureIndex(cfg) {
264
+ if (this.index !== void 0 && !this.index.stale) return;
265
+ if (this.indexing !== void 0) return this.indexing;
266
+ const build = (async () => {
267
+ const idx = await cfg.create();
268
+ idx.build(this.vectors ?? []);
269
+ if (idx.nlist === 0) {
270
+ this.indexUnusable = true;
271
+ this.index = void 0;
272
+ return;
273
+ }
274
+ this.index = idx;
275
+ })();
276
+ this.indexing = build;
277
+ try {
278
+ await build;
279
+ } finally {
280
+ this.indexing = void 0;
281
+ }
282
+ }
283
+ };
284
+
285
+ export {
286
+ embeddingSourceText,
287
+ VectorSet,
288
+ encodeVecId,
289
+ decodeVecId,
290
+ isVecIdFor,
291
+ deriveChunkVectors
292
+ };
293
+ //# sourceMappingURL=chunk-M5B2W6YY.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/with-lookup/embeddings/descriptor.ts","../src/with-lookup/embeddings/vec-id.ts","../src/with-lookup/embeddings/chunks.ts","../src/with-lookup/embeddings/cosine.ts","../src/with-lookup/embeddings/vector-set.ts"],"sourcesContent":["/** Per-collection embedding config (L2). The encode hook is host/remote — no bundled model. */\nimport { getAtPath } from '../../via/i18n/core.js'\nimport type { EmbeddingChunkSpan } from './chunks.js'\nimport type { VectorIndexConfig } from './vector-index.js'\n\nexport interface EmbeddingDescriptor {\n readonly source: string | readonly string[]\n readonly encode: (text: string) => Promise<Float32Array>\n readonly dim: number\n readonly model: string\n /**\n * Optional sub-document splitter (#1360). Given the record's joined source\n * text (`embeddingSourceText(record, source)`), return the spans to encode\n * separately — `start`/`end` are character offsets into THAT string. When\n * declared and non-empty, the record is scored by its BEST chunk and the\n * winning span comes back on the hit; when absent or empty, the record keeps\n * exactly one whole-text vector, as before.\n */\n readonly chunk?: (text: string) => readonly EmbeddingChunkSpan[]\n /**\n * Opt into the approximate vector index (#1360 part 2) with\n * `index: withVectorIndex()`. Absent — the default — and every semantic\n * query is an exact brute-force cosine scan, unchanged.\n *\n * Opting in is not an instruction to index NOW: the index is built only once\n * the collection holds at least `minVectors` vectors, and any single query\n * can still demand exactness with `{ exact: true }`.\n */\n readonly index?: VectorIndexConfig\n}\n\n/** Concatenate the record's source-field text (skips empties; supports nested/[]-wildcard paths). */\nexport function embeddingSourceText(record: Record<string, unknown>, source: string | readonly string[]): string {\n const fields = typeof source === 'string' ? [source] : source\n const parts: string[] = []\n for (const f of fields) {\n for (const leaf of getAtPath(record, f)) {\n if (typeof leaf === 'string' && leaf !== '') parts.push(leaf)\n }\n }\n return parts.join(' ')\n}\n","/**\n * Collection-namespaced `_vec` side-car ids (#726).\n *\n * `_vec` embedding side-cars used to be keyed by the bare record id,\n * vault-wide — two collections sharing a record id shared one `_vec` row.\n * This was verified to be a clobber/crash bug, NOT a confidentiality leak:\n * every collection has its own DEK, and AES-GCM auth-tag verification means\n * decrypting a foreign collection's `_vec` row under the wrong DEK throws\n * `TamperedError` rather than returning wrong plaintext — no disclosure\n * mechanism exists. The real bug was id collision: a same-id write/forget in\n * one collection could clobber or delete the other collection's row, and a\n * collection whose `similarTo()` / cold semantic `retrieve()` encountered a\n * foreign same-id row crashed with an uncaught `TamperedError` (a DoS). The\n * store-collection bucket stays the literal `'_vec'`; the id becomes\n * composite: `${collection}/${recordId}`. Mirrors `encodeIdxId`\n * (`../indexing/persisted-indexes.js`).\n *\n * Decode is deliberately NOT split-on-`/`: the collection is always known\n * at the decode site (`ctx.name`), so `decodeVecId` strips that known\n * prefix — correct even when `recordId` itself contains `/`.\n *\n * Precondition: `collection` itself must not contain `/` — otherwise\n * `${collection}/${recordId}` is ambiguous (e.g. collection `'a'` would\n * misattribute collection `'a/b'`'s rows via prefix match in `isVecIdFor`).\n * Collection names are NOT currently restricted to a `/`-free charset by\n * `vault.collection()`, so `encodeVecId` enforces the precondition itself,\n * failing loud at the write boundary rather than silently misencoding.\n */\n\n/**\n * Encode the `_vec` side-car id for a (collection, recordId) pair.\n * Format: `<collection>/<recordId>` — no escaping; `recordId` may contain `/`.\n *\n * Throws if `collection` contains `/`: that would make the composite id\n * ambiguous against `isVecIdFor`'s prefix match (collection `'a'` would\n * appear to own collection `'a/b'`'s rows), reintroducing the clobber/crash\n * risk the namespacing fix exists to close.\n */\nexport function encodeVecId(collection: string, recordId: string): string {\n if (collection.includes('/')) {\n throw new Error(\n `encodeVecId: collection name \"${collection}\" must not contain \"/\" — ` +\n `it would make the \"${collection}/${recordId}\" _vec id ambiguous against another collection's rows.`,\n )\n }\n return `${collection}/${recordId}`\n}\n\n/**\n * Decode a `_vec` id back to the bare record id, given the KNOWN owning\n * collection — strips the `<collection>/` prefix rather than splitting on\n * `/`, so a `recordId` containing `/` round-trips correctly. Returns `null`\n * if `vecId` does not belong to `collection`.\n */\nexport function decodeVecId(collection: string, vecId: string): string | null {\n const prefix = `${collection}/`\n if (!vecId.startsWith(prefix)) return null\n return vecId.slice(prefix.length)\n}\n\n/** Predicate form of {@link decodeVecId} — used to filter `list()` results. */\nexport function isVecIdFor(collection: string, vecId: string): boolean {\n return vecId.startsWith(`${collection}/`)\n}\n","/**\n * Sub-document chunking (#1360) — multiple vectors per record.\n *\n * A long document encoded as ONE vector averages its topics away: a contract\n * whose fortieth clause is the only relevant one scores like a contract about\n * nothing in particular. Chunking encodes SPANS of the record's source text\n * separately, and scores a record by its BEST chunk.\n *\n * ## What a span indexes into — the load-bearing definition\n *\n * `start` / `end` are **character offsets into\n * `embeddingSourceText(record, descriptor.source)`** — the joined source text,\n * NOT into any single field. When `source` names several fields the text is\n * their `' '`-join, so an offset can sit past a join boundary; that is exactly\n * why the offsets are defined against the join and not against a field. The\n * consumer reconstructs the snippet with the same call:\n *\n * ```ts\n * const text = embeddingSourceText(record, descriptor.source)\n * const snippet = text.slice(hit.chunk.start, hit.chunk.end)\n * ```\n *\n * `similarTo()` does precisely that to fill `hit.snippet`, so a returned span\n * is checkable against the record the consumer already holds.\n *\n * ## What is deliberately NOT here\n *\n * No bundled splitter. The splitter is host-supplied like `encode` — chunking\n * a legal clause, a markdown section and a chat transcript are different\n * problems and hub has no business guessing.\n *\n * The approximate index that was deferred here HAS since been built — it is\n * `ivf-flat.ts`, opted into with `withVectorIndex()`, and it is OFF by default\n * (see `vector-set.ts`'s `topK`). This file's own multiplier is what gated it:\n * chunking stores one vector per chunk, so a corpus of R records at C chunks\n * each brute-forces R·C vectors, and the index threshold counts VECTORS.\n * ⛔ Managed plaintext vector backends (pgvector, Vectorize, Qdrant) remain\n * excluded BY DECISION, and building an in-hub index does not reopen that: the\n * backend would hold plaintext vectors, and embedding inversion leaks the text\n * back out. The index built here never leaves the hub and is never persisted.\n */\nimport type { EmbeddingDescriptor } from './descriptor.js'\n\n/** A span the host's splitter proposes: `[start, end)` into the joined source text. */\nexport interface EmbeddingChunkSpan {\n readonly start: number\n readonly end: number\n /** Stable chunk id; defaults to `c<index>` when the splitter does not supply one. */\n readonly id?: string\n}\n\n/** A chunk as it is stored and returned — a span with a resolved id, no vector. */\nexport interface EmbeddingChunk {\n readonly id: string\n readonly start: number\n readonly end: number\n}\n\n/** A chunk plus its vector, as held in memory by {@link VectorSet}. */\nexport interface StoredChunk extends EmbeddingChunk {\n readonly vec: Float32Array\n}\n\n/**\n * Normalise the splitter's output: drop empty/inverted/out-of-range spans,\n * resolve ids. Invalid spans are DROPPED rather than thrown on — a splitter is\n * host code running over host text, and one degenerate span (a trailing\n * separator, a zero-width match) must not fail the write; a record that ends up\n * with no usable span falls back to the whole-record vector, which is the\n * pre-#1360 behaviour and never worse than not indexing the record at all.\n */\nexport function normalizeChunkSpans(spans: readonly EmbeddingChunkSpan[], textLength: number): EmbeddingChunk[] {\n const out: EmbeddingChunk[] = []\n for (const s of spans) {\n if (!Number.isInteger(s.start) || !Number.isInteger(s.end)) continue\n if (s.start < 0 || s.end > textLength || s.end <= s.start) continue\n out.push({ id: s.id ?? `c${out.length}`, start: s.start, end: s.end })\n }\n return out\n}\n\n/**\n * Encode each chunk of `text` under the descriptor's `encode` hook.\n * Returns `[]` when no `chunk` hook is declared or it yields no usable span —\n * the caller then stores the single whole-record vector, unchanged.\n *\n * Dimension is checked per chunk by the caller (it owns the error's field\n * name), so this stays a pure derive.\n */\nexport async function deriveChunkVectors(\n text: string,\n descriptor: EmbeddingDescriptor,\n): Promise<(EmbeddingChunk & { vec: Float32Array })[]> {\n if (!descriptor.chunk) return []\n const spans = normalizeChunkSpans(descriptor.chunk(text), text.length)\n if (spans.length === 0) return []\n const out: (EmbeddingChunk & { vec: Float32Array })[] = []\n for (const span of spans) {\n out.push({ ...span, vec: await descriptor.encode(text.slice(span.start, span.end)) })\n }\n return out\n}\n","/** Cosine similarity in [-1,1]; 0 on zero-norm or length mismatch (no NaN). (L2) */\nexport function cosine(a: Float32Array | number[], b: Float32Array | number[]): number {\n if (a.length !== b.length) return 0\n let dot = 0, na = 0, nb = 0\n for (let i = 0; i < a.length; i++) {\n const x = a[i]!, y = b[i]!\n dot += x * y; na += x * x; nb += y * y\n }\n if (na === 0 || nb === 0) return 0\n return dot / (Math.sqrt(na) * Math.sqrt(nb))\n}\n","/** In-memory vector set for L2 semantic retrieval. Loaded once per session from\n * decrypted _vec sidecars (injected loader), brute-force cosine kNN, model-guarded.\n * #1360 part 2 adds an OPT-IN approximate index in front of the brute force. */\nimport { cosine } from './cosine.js'\nimport type { EmbeddingChunk, StoredChunk } from './chunks.js'\nimport type { VectorIndex, VectorIndexConfig } from './vector-index.js'\nimport { EmbeddingModelMismatchError } from '../../kernel/errors.js'\n\n/**\n * One record's vectors. Exactly one of `vec` (whole-record, the pre-#1360\n * shape) and `chunks` (sub-document, #1360) is populated by the loader; a row\n * with neither is inert and scores nothing.\n */\nexport interface StoredVector {\n readonly id: string\n readonly model: string\n readonly vec?: Float32Array\n /** #1360 — sub-document chunks. When present, the record is scored by its BEST chunk. */\n readonly chunks?: readonly StoredChunk[]\n}\nexport interface VectorHit {\n readonly id: string\n readonly score: number\n /** #1360 — the winning chunk's span, when the record was scored via chunks. */\n readonly chunk?: EmbeddingChunk\n}\n\n/** Options accepted by {@link VectorSet.topK}. */\nexport interface VectorTopKOptions {\n readonly minScore?: number\n readonly expectModel?: string\n /**\n * Force the exact brute-force scan for this query, whatever the corpus size\n * and whatever `index` the descriptor declares. Exactness stays REACHABLE:\n * an approximate default that cannot be turned off is a correctness change\n * dressed as a performance one.\n */\n readonly exact?: boolean\n /** Per-query recall dial; overrides the configured `nprobe`. Ignored on the exact path. */\n readonly nprobe?: number\n}\n\n/** Points contributed by one stored record — chunked records contribute one per chunk. */\nfunction pointsIn(v: StoredVector): number {\n if (v.chunks && v.chunks.length > 0) return v.chunks.length\n return v.vec ? 1 : 0\n}\n\nexport class VectorSet {\n private vectors: StoredVector[] | undefined\n /** id → position in `vectors`, so an incremental write is O(1), not O(n). */\n private posById = new Map<string, number>()\n /** model → live record count, so the model guard is O(1) per query on the indexed path. */\n private modelCounts = new Map<string, number>()\n private points = 0\n private index: VectorIndex | undefined\n private indexing: Promise<void> | undefined\n /**\n * Set when a build produced NO partitions — a corpus of nothing but\n * zero-norm or mismatched-dimension vectors. An empty index answers every\n * query with `[]`, which is a WRONG answer rather than a slow one (the exact\n * path scores those vectors 0 and returns them), so the set falls back to\n * brute force and does not retry the build on every query.\n */\n private indexUnusable = false\n\n /**\n * `indexConfig` is `withVectorIndex()`'s return value, taken from the\n * collection's `embeddings.index`. Absent — the overwhelmingly common case —\n * and this class behaves exactly as it did before #1360 part 2.\n */\n constructor(private readonly indexConfig?: VectorIndexConfig) {}\n\n get loaded(): boolean { return this.vectors !== undefined }\n /** Live VECTOR count (chunks included) — what `minVectors` is compared against. */\n get pointCount(): number { return this.points }\n /** Test/benchmark introspection: whether an approximate index is currently serving queries. */\n get indexed(): boolean { return this.index !== undefined }\n\n async ensureLoaded(load: () => Promise<StoredVector[]>): Promise<void> {\n if (this.vectors !== undefined) return\n const loaded = await load()\n this.vectors = loaded\n this.posById = new Map()\n this.modelCounts = new Map()\n this.points = 0\n for (let i = 0; i < loaded.length; i++) {\n const v = loaded[i]!\n this.posById.set(v.id, i)\n this.points += pointsIn(v)\n this.modelCounts.set(v.model, (this.modelCounts.get(v.model) ?? 0) + 1)\n }\n this.index = undefined\n this.indexUnusable = false\n }\n\n markDirty(): void {\n this.vectors = undefined\n this.posById = new Map()\n this.modelCounts = new Map()\n this.points = 0\n this.index = undefined\n this.indexing = undefined\n this.indexUnusable = false\n }\n\n /**\n * Incrementally insert or replace one record's vectors.\n *\n * This is what makes an approximate index viable at all here. `markDirty()`\n * drops the whole set, so before #1360 part 2 every `put()` cost a full\n * re-load on the next query — survivable for a brute-force scan that has no\n * build step, fatal for an index whose build is tens of query-equivalents.\n * `embedOnWrite` already holds the vectors it just encoded, so it can hand\n * them over instead of throwing the set away.\n *\n * No-op when the set is not loaded: an unloaded set is already \"dirty\", and\n * the next query loads everything from the sidecars anyway.\n */\n upsert(vector: StoredVector): void {\n const all = this.vectors\n if (all === undefined) return\n const at = this.posById.get(vector.id)\n if (at !== undefined) {\n const prev = all[at]!\n this.points -= pointsIn(prev)\n this.decModel(prev.model)\n all[at] = vector\n } else {\n this.posById.set(vector.id, all.length)\n all.push(vector)\n }\n this.points += pointsIn(vector)\n this.modelCounts.set(vector.model, (this.modelCounts.get(vector.model) ?? 0) + 1)\n this.index?.upsert(vector)\n }\n\n /**\n * Incrementally drop one record's vectors. Removal is a SWAP with the last\n * element, not a splice: `vectors` order is whatever `adapter.list()`\n * returned and has never been part of any contract, so preserving it would\n * buy nothing and cost an O(n) index rebuild on every `forget()`.\n */\n removeRecord(id: string): void {\n const all = this.vectors\n if (all === undefined) return\n const at = this.posById.get(id)\n if (at === undefined) return\n const removed = all[at]!\n this.points -= pointsIn(removed)\n this.decModel(removed.model)\n const last = all.pop()!\n if (at < all.length) { all[at] = last; this.posById.set(last.id, at) }\n this.posById.delete(id)\n this.index?.remove(id)\n }\n\n private decModel(model: string): void {\n const n = (this.modelCounts.get(model) ?? 0) - 1\n if (n <= 0) this.modelCounts.delete(model)\n else this.modelCounts.set(model, n)\n }\n\n /**\n * Brute-force cosine kNN, one hit per RECORD. **Always exact.**\n *\n * #1360 best-chunk folding: a chunked record contributes its single BEST\n * chunk score, never one hit per chunk and never a sum. Summing would make a\n * long document outrank a short exact match purely for having more chunks —\n * the folding is what keeps the score comparable across record lengths, and\n * what keeps `k` a count of records rather than of fragments.\n */\n cosineTopK(query: Float32Array, k: number, opts: { minScore?: number; expectModel?: string } = {}): VectorHit[] {\n const all = this.vectors ?? []\n const minScore = opts.minScore ?? -Infinity\n const hits: VectorHit[] = []\n for (const v of all) {\n if (opts.expectModel !== undefined && v.model !== opts.expectModel) {\n throw new EmbeddingModelMismatchError(opts.expectModel, v.model)\n }\n if (v.chunks && v.chunks.length > 0) {\n let best: StoredChunk | undefined\n let bestScore = -Infinity\n for (const c of v.chunks) {\n const s = cosine(query, c.vec)\n if (s > bestScore) { bestScore = s; best = c }\n }\n if (best !== undefined && bestScore >= minScore) {\n hits.push({ id: v.id, score: bestScore, chunk: { id: best.id, start: best.start, end: best.end } })\n }\n continue\n }\n if (!v.vec) continue\n const score = cosine(query, v.vec)\n if (score >= minScore) hits.push({ id: v.id, score })\n }\n hits.sort((a, b) => b.score - a.score)\n return hits.slice(0, k)\n }\n\n /**\n * kNN under the collection's policy: approximate when an index is opted in\n * AND the corpus is at or above `minVectors`, exact otherwise.\n *\n * ⭐ The default below the threshold is EXACT, deliberately: an index that\n * builds on a 300-vector collection pays a build the queries can never\n * amortise, and buys a recall cliff for a scan that was already sub-millisecond.\n */\n async topK(query: Float32Array, k: number, opts: VectorTopKOptions = {}): Promise<VectorHit[]> {\n const cfg = this.indexConfig\n if (opts.exact === true || cfg === undefined || this.indexUnusable || this.points < cfg.minVectors) {\n return this.cosineTopK(query, k, opts)\n }\n // The exact path throws per-vector on a model mismatch as it scans; the\n // indexed path never scans every vector, so the same guard has to be a set\n // membership test. Same error, same trigger, O(1).\n if (opts.expectModel !== undefined) {\n for (const model of this.modelCounts.keys()) {\n if (model !== opts.expectModel) throw new EmbeddingModelMismatchError(opts.expectModel, model)\n }\n }\n await this.ensureIndex(cfg)\n const idx = this.index\n if (idx === undefined) return this.cosineTopK(query, k, opts)\n return idx.search(query, k, {\n ...(opts.minScore !== undefined ? { minScore: opts.minScore } : {}),\n ...(opts.nprobe !== undefined ? { nprobe: opts.nprobe } : {}),\n })\n }\n\n /** Build (or rebuild, once churn has made it stale) the index. Concurrency-safe. */\n private async ensureIndex(cfg: VectorIndexConfig): Promise<void> {\n if (this.index !== undefined && !this.index.stale) return\n if (this.indexing !== undefined) return this.indexing\n const build = (async () => {\n const idx = await cfg.create()\n idx.build(this.vectors ?? [])\n if (idx.nlist === 0) { this.indexUnusable = true; this.index = undefined; return }\n this.index = idx\n })()\n this.indexing = build\n try { await build } finally { this.indexing = undefined }\n }\n}\n"],"mappings":"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","names":[]}