@noy-db/hub 0.3.0-pre.9 → 0.4.0-pre.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 (968) hide show
  1. package/dist/aggregate/index.js +5 -5
  2. package/dist/api-3A3S4SHH.js +20 -0
  3. package/dist/as/index.js +11 -11
  4. package/dist/attestation/index.js +18 -18
  5. package/dist/backup-YPUEKIJC.js +242 -0
  6. package/dist/backup-YPUEKIJC.js.map +1 -0
  7. package/dist/blobs/index.js +13 -11
  8. package/dist/blobs/index.js.map +1 -1
  9. package/dist/broker/index.js +92 -0
  10. package/dist/broker/index.js.map +1 -0
  11. package/dist/bundle/index.js +25 -22
  12. package/dist/bundle/index.js.map +1 -1
  13. package/dist/by/index.js +2 -2
  14. package/dist/cargo/index.js +31 -32
  15. package/dist/chunk-2PCAVW2I.js +50 -0
  16. package/dist/chunk-3ELCWU56.js +344 -0
  17. package/dist/chunk-3ELCWU56.js.map +1 -0
  18. package/dist/chunk-4GPE63GU.js +111 -0
  19. package/dist/chunk-4GPE63GU.js.map +1 -0
  20. package/dist/chunk-554KLAAN.js +778 -0
  21. package/dist/chunk-5PFOMHTB.js +135 -0
  22. package/dist/chunk-5WZXVULX.js +209 -0
  23. package/dist/chunk-6HPG2YNX.js +38 -0
  24. package/dist/chunk-6HY2X62D.js +69 -0
  25. package/dist/chunk-6NQMXTYC.js +123 -0
  26. package/dist/chunk-6XE5TMPR.js +367 -0
  27. package/dist/chunk-A4FXFAKF.js +45 -0
  28. package/dist/chunk-A5BDDEXK.js +1537 -0
  29. package/dist/chunk-A5BDDEXK.js.map +1 -0
  30. package/dist/chunk-ANATMTOA.js +205 -0
  31. package/dist/chunk-BOKIKJJB.js +94 -0
  32. package/dist/chunk-CJ5KKU6X.js +49 -0
  33. package/dist/chunk-CZTLE22N.js +381 -0
  34. package/dist/chunk-CZTLE22N.js.map +1 -0
  35. package/dist/chunk-DDHM2TLX.js +164 -0
  36. package/dist/chunk-DDHM2TLX.js.map +1 -0
  37. package/dist/chunk-DRWBEDYO.js +37 -0
  38. package/dist/chunk-DRWBEDYO.js.map +1 -0
  39. package/dist/chunk-DSBQODMZ.js +202 -0
  40. package/dist/chunk-EO43ANYJ.js +382 -0
  41. package/dist/chunk-EWPOHMN2.js +255 -0
  42. package/dist/chunk-FH52K7EG.js +50 -0
  43. package/dist/chunk-FH52K7EG.js.map +1 -0
  44. package/dist/chunk-FXZDAV62.js +826 -0
  45. package/dist/chunk-FXZDAV62.js.map +1 -0
  46. package/dist/chunk-GDG5VVYG.js +167 -0
  47. package/dist/chunk-GDG5VVYG.js.map +1 -0
  48. package/dist/chunk-GULTLPFB.js +621 -0
  49. package/dist/chunk-GULTLPFB.js.map +1 -0
  50. package/dist/chunk-GWKAVKHI.js +71 -0
  51. package/dist/chunk-H2KSZMIX.js +164 -0
  52. package/dist/chunk-HOONYZY2.js +404 -0
  53. package/dist/chunk-HQBM64EE.js +957 -0
  54. package/dist/chunk-HQBM64EE.js.map +1 -0
  55. package/dist/chunk-IAO54J4R.js +333 -0
  56. package/dist/chunk-IAO54J4R.js.map +1 -0
  57. package/dist/chunk-IFJTPAQQ.js +150 -0
  58. package/dist/chunk-IFJTPAQQ.js.map +1 -0
  59. package/dist/chunk-IGJCYUT5.js +99 -0
  60. package/dist/chunk-IGJCYUT5.js.map +1 -0
  61. package/dist/chunk-IK43HLDQ.js +739 -0
  62. package/dist/chunk-IK43HLDQ.js.map +1 -0
  63. package/dist/chunk-ISMV2QVG.js +54 -0
  64. package/dist/chunk-IY23KFNZ.js +95 -0
  65. package/dist/chunk-JBBSYJHP.js +129 -0
  66. package/dist/chunk-JFCV5QIK.js +117 -0
  67. package/dist/chunk-JK733I5V.js +23 -0
  68. package/dist/chunk-JK733I5V.js.map +1 -0
  69. package/dist/chunk-JRBNCUNT.js +371 -0
  70. package/dist/chunk-JRBNCUNT.js.map +1 -0
  71. package/dist/chunk-JVBO4SZL.js +29 -0
  72. package/dist/chunk-JVBO4SZL.js.map +1 -0
  73. package/dist/chunk-KPZS5QAQ.js +151 -0
  74. package/dist/chunk-KPZS5QAQ.js.map +1 -0
  75. package/dist/chunk-KS6SAVCZ.js +247 -0
  76. package/dist/chunk-KS6SAVCZ.js.map +1 -0
  77. package/dist/chunk-LVGTA624.js +480 -0
  78. package/dist/chunk-LVGTA624.js.map +1 -0
  79. package/dist/chunk-M75ZZHSR.js +30 -0
  80. package/dist/chunk-MT62YSPZ.js +392 -0
  81. package/dist/chunk-MT62YSPZ.js.map +1 -0
  82. package/dist/chunk-N6WF5PKC.js +29 -0
  83. package/dist/chunk-NCCBLYEB.js +150 -0
  84. package/dist/chunk-OCVM6KDH.js +99 -0
  85. package/dist/chunk-ONTBCHCP.js +80 -0
  86. package/dist/chunk-PK6JIDQ4.js +14425 -0
  87. package/dist/chunk-PK6JIDQ4.js.map +1 -0
  88. package/dist/chunk-QDPZWTN2.js +74 -0
  89. package/dist/chunk-QDPZWTN2.js.map +1 -0
  90. package/dist/chunk-R3BLCFD2.js +130 -0
  91. package/dist/chunk-RA5VTXXG.js +173 -0
  92. package/dist/chunk-RA5VTXXG.js.map +1 -0
  93. package/dist/chunk-RDXW3OBQ.js +21 -0
  94. package/dist/chunk-RFI7GGFO.js +230 -0
  95. package/dist/chunk-RJ6K6K5M.js +36 -0
  96. package/dist/chunk-RJ6K6K5M.js.map +1 -0
  97. package/dist/chunk-RNG4VRP4.js +75 -0
  98. package/dist/chunk-RTEK4C4I.js +41 -0
  99. package/dist/chunk-S3BFKGET.js +369 -0
  100. package/dist/chunk-S3BFKGET.js.map +1 -0
  101. package/dist/chunk-S6Q37VGE.js +30 -0
  102. package/dist/chunk-SMIRGMS7.js +30 -0
  103. package/dist/chunk-SMIRGMS7.js.map +1 -0
  104. package/dist/chunk-SV6EAJEP.js +86 -0
  105. package/dist/chunk-T36RFODW.js +180 -0
  106. package/dist/chunk-T36RFODW.js.map +1 -0
  107. package/dist/chunk-T3GY65MA.js +367 -0
  108. package/dist/chunk-TAGR72IR.js +515 -0
  109. package/dist/chunk-TAGR72IR.js.map +1 -0
  110. package/dist/chunk-THVIPWRF.js +495 -0
  111. package/dist/chunk-THVIPWRF.js.map +1 -0
  112. package/dist/chunk-TIGPQDYP.js +14 -0
  113. package/dist/chunk-U6JMEH2P.js +261 -0
  114. package/dist/chunk-UC2ETWF3.js +34 -0
  115. package/dist/chunk-UDSR4X4L.js +235 -0
  116. package/dist/chunk-UHNGNKLV.js +2782 -0
  117. package/dist/chunk-UHNGNKLV.js.map +1 -0
  118. package/dist/chunk-VAIS3SOM.js +74 -0
  119. package/dist/chunk-VCBHAE4R.js +124 -0
  120. package/dist/chunk-VCTXU4AT.js +32 -0
  121. package/dist/chunk-VCTXU4AT.js.map +1 -0
  122. package/dist/chunk-VEALDPHW.js +524 -0
  123. package/dist/chunk-VEALDPHW.js.map +1 -0
  124. package/dist/chunk-VKCADNMR.js +589 -0
  125. package/dist/chunk-VRBTNCM4.js +720 -0
  126. package/dist/chunk-VRBTNCM4.js.map +1 -0
  127. package/dist/chunk-VYYM3MEN.js +98 -0
  128. package/dist/chunk-VYYM3MEN.js.map +1 -0
  129. package/dist/chunk-W2OG6JOL.js +1554 -0
  130. package/dist/chunk-W2OG6JOL.js.map +1 -0
  131. package/dist/chunk-W4TCUGQR.js +1128 -0
  132. package/dist/chunk-W4TCUGQR.js.map +1 -0
  133. package/dist/chunk-WG4QBZDN.js +283 -0
  134. package/dist/chunk-WG4QBZDN.js.map +1 -0
  135. package/dist/chunk-WHXXI3W5.js +135 -0
  136. package/dist/chunk-WHXXI3W5.js.map +1 -0
  137. package/dist/chunk-WKGF2TJR.js +45 -0
  138. package/dist/chunk-WNGGJWF7.js +36 -0
  139. package/dist/chunk-WOM2HTML.js +59 -0
  140. package/dist/chunk-WQIYTNJV.js +70 -0
  141. package/dist/chunk-WZSHL6DQ.js +59 -0
  142. package/dist/chunk-XDIAFPUM.js +42 -0
  143. package/dist/chunk-XJMBYYQK.js +40 -0
  144. package/dist/chunk-XTHCN77N.js +91 -0
  145. package/dist/chunk-XUW3PXHU.js +248 -0
  146. package/dist/chunk-XUW3PXHU.js.map +1 -0
  147. package/dist/chunk-YCH5GBN6.js +99 -0
  148. package/dist/chunk-YTGDPCPW.js +155 -0
  149. package/dist/chunk-YZQOGE2L.js +23 -0
  150. package/dist/chunk-Z4PD65VQ.js +265 -0
  151. package/dist/chunk-Z4PD65VQ.js.map +1 -0
  152. package/dist/chunk-ZXEZCY6F.js +85 -0
  153. package/dist/classified/index.js +5 -5
  154. package/dist/classified-marker-QWMASIT7.js +28 -0
  155. package/dist/classified-marker-QWMASIT7.js.map +1 -0
  156. package/dist/collection-facade-KMBWNCYP.js +44 -0
  157. package/dist/computed-DSMPXG2Y.js +11 -0
  158. package/dist/consent/index.js +9 -9
  159. package/dist/cover-QJRXINN5.js +52 -0
  160. package/dist/crdt/index.js +1 -1
  161. package/dist/dead-filter-66VGI6JV.js +28 -0
  162. package/dist/delegation-SU6CV3W7.js +25 -0
  163. package/dist/derivations/index.js +12 -12
  164. package/dist/derive-6RWU4EOA.js +21 -0
  165. package/dist/enclave-TKPN2G2U.js +141 -0
  166. package/dist/executor-KGNLJD6M.js +9 -0
  167. package/dist/executor-UX4FASYZ.js +26 -0
  168. package/dist/executor-XGIS6CR7.js +9 -0
  169. package/dist/export-accessible-LKW3QV22.js +23 -0
  170. package/dist/extract-partition-UP2ARO75.js +38 -0
  171. package/dist/fanout-sidecar-B5LVUMQX.js +74 -0
  172. package/dist/find-YS6XWB46.js +11 -0
  173. package/dist/forget/index.js +10 -10
  174. package/dist/forget/index.js.map +1 -1
  175. package/dist/guards/index.js +6 -6
  176. package/dist/history/index.js +14 -11
  177. package/dist/history/index.js.map +1 -1
  178. package/dist/i18n/index.js +21 -19
  179. package/dist/i18n/index.js.map +1 -1
  180. package/dist/index.d.ts +310 -1493
  181. package/dist/index.js +331 -191
  182. package/dist/index.js.map +1 -1
  183. package/dist/indexing/index.js +7 -7
  184. package/dist/indexing/index.js.map +1 -1
  185. package/dist/issue-3ACYX7LO.js +19 -0
  186. package/dist/kernel/best-effort-revert.d.ts +52 -0
  187. package/dist/kernel/cache/index.d.ts +10 -0
  188. package/dist/kernel/cache/lru.d.ts +97 -0
  189. package/dist/kernel/cache/policy.d.ts +32 -0
  190. package/dist/kernel/collection-config.d.ts +809 -0
  191. package/dist/kernel/collection.d.ts +1522 -0
  192. package/dist/kernel/constants.d.ts +18 -0
  193. package/dist/kernel/debug.d.ts +25 -0
  194. package/dist/kernel/enclave/broker/proof.d.ts +154 -0
  195. package/dist/kernel/enclave/classify/bidx.d.ts +77 -0
  196. package/dist/kernel/enclave/classify/compare.d.ts +10 -0
  197. package/dist/kernel/enclave/classify/digest.d.ts +8 -0
  198. package/dist/kernel/enclave/classify/find.d.ts +36 -0
  199. package/dist/kernel/enclave/classify/kofn.d.ts +7 -0
  200. package/dist/kernel/enclave/classify/normalize.d.ts +7 -0
  201. package/dist/kernel/enclave/classify/reveal.d.ts +10 -0
  202. package/dist/kernel/enclave/classify/vdig.d.ts +39 -0
  203. package/dist/kernel/enclave/classify/verify.d.ts +36 -0
  204. package/dist/kernel/enclave/classify/write.d.ts +8 -0
  205. package/dist/kernel/enclave/crypto.d.ts +263 -0
  206. package/dist/kernel/enclave/index.d.ts +79 -0
  207. package/dist/kernel/enclave/record-keys/deterministic.d.ts +55 -0
  208. package/dist/kernel/enclave/record-keys/envelope-body.d.ts +79 -0
  209. package/dist/kernel/enclave/record-keys/lifecycle.d.ts +107 -0
  210. package/dist/kernel/enclave/record-keys/record-codec.d.ts +328 -0
  211. package/dist/kernel/enclave/record-keys/sealed-slot.d.ts +14 -0
  212. package/dist/kernel/enclave/record-keys/sealed-slots.d.ts +123 -0
  213. package/dist/kernel/enclave/record-keys/sealing.d.ts +70 -0
  214. package/dist/kernel/enclave/record-keys/tombstone.d.ts +57 -0
  215. package/dist/kernel/env-check.d.ts +1 -0
  216. package/dist/kernel/errors.d.ts +1927 -0
  217. package/dist/kernel/events.d.ts +11 -0
  218. package/dist/kernel/lazy-count.d.ts +13 -0
  219. package/dist/kernel/memory-store.d.ts +17 -0
  220. package/dist/kernel/mutation.d.ts +14 -0
  221. package/dist/kernel/noydb.d.ts +836 -0
  222. package/dist/kernel/paths.d.ts +25 -0
  223. package/dist/kernel/query/builder.d.ts +520 -0
  224. package/dist/kernel/query/index.d.ts +31 -0
  225. package/dist/kernel/query/join.d.ts +205 -0
  226. package/dist/kernel/query/live.d.ts +111 -0
  227. package/dist/kernel/query/predicate.d.ts +139 -0
  228. package/dist/kernel/query/scan-builder.d.ts +334 -0
  229. package/dist/kernel/refs.d.ts +205 -0
  230. package/dist/kernel/schema.d.ts +134 -0
  231. package/dist/kernel/sync-policy.d.ts +188 -0
  232. package/dist/kernel/tier-visibility.d.ts +54 -0
  233. package/dist/kernel/types.d.ts +3245 -0
  234. package/dist/kernel/util/discriminant.d.ts +58 -0
  235. package/dist/kernel/util/index.d.ts +14 -0
  236. package/dist/kernel/util/sanitize-filename.d.ts +75 -0
  237. package/dist/kernel/validation.d.ts +130 -0
  238. package/dist/kernel/vault.d.ts +1744 -0
  239. package/dist/kernel/via/compose.d.ts +144 -0
  240. package/dist/kernel/via/dispatch.d.ts +195 -0
  241. package/dist/kernel/via/graph-wiring.d.ts +145 -0
  242. package/dist/kernel/via/graph.d.ts +166 -0
  243. package/dist/kernel/via/index.d.ts +200 -0
  244. package/dist/kernel/via/pipeline.d.ts +266 -0
  245. package/dist/kernel/via/reconcile.d.ts +153 -0
  246. package/dist/kernel/via/taint-binding.d.ts +66 -0
  247. package/dist/kernel/write-queue.d.ts +46 -0
  248. package/dist/ledger-PTK7XZYT.js +42 -0
  249. package/dist/legacy/bundle.d.ts +30 -0
  250. package/dist/legacy/kernel.d.ts +33 -0
  251. package/dist/liberate-MQQXBUCY.js +24 -0
  252. package/dist/link-set-SLJHDNRB.js +31 -0
  253. package/dist/materialized-views/index.js +20 -17
  254. package/dist/noydb-ANIW5FLE.js +69 -0
  255. package/dist/on/index.js +9 -9
  256. package/dist/overlay-views/index.js +4 -4
  257. package/dist/periods/index.js +12 -12
  258. package/dist/pod/index.js +13 -11
  259. package/dist/policy-YDLCOX4P.js +41 -0
  260. package/dist/port/as/index.d.ts +26 -0
  261. package/dist/port/at/index.d.ts +18 -0
  262. package/dist/port/by/default-provider.d.ts +9 -0
  263. package/dist/port/by/index.d.ts +17 -0
  264. package/dist/port/by/types.d.ts +86 -0
  265. package/dist/port/in/index.d.ts +21 -0
  266. package/dist/port/on/index.d.ts +27 -0
  267. package/dist/port/to/index.d.ts +19 -0
  268. package/dist/port/ui/index.d.ts +21 -0
  269. package/dist/port/with/blob-strategy.d.ts +98 -0
  270. package/dist/port/with/broker-strategy.d.ts +84 -0
  271. package/dist/port/with/capabilities.d.ts +31 -0
  272. package/dist/port/with/classified-marker.d.ts +9 -0
  273. package/dist/port/with/classified-strategy.d.ts +62 -0
  274. package/dist/port/with/computed-strategy.d.ts +19 -0
  275. package/dist/port/with/i18n-strategy.d.ts +175 -0
  276. package/dist/port/with/index.d.ts +18 -0
  277. package/dist/port/with/lazy-strategy.d.ts +48 -0
  278. package/dist/port/with/lookup-strategy.d.ts +129 -0
  279. package/dist/port/with/service-bus.d.ts +156 -0
  280. package/dist/port/with/team-strategy.d.ts +36 -0
  281. package/dist/port/with/write-hooks.d.ts +34 -0
  282. package/dist/portability/index.js +8 -8
  283. package/dist/post-register-2YHSADFI.js +60 -0
  284. package/dist/post-register-2YHSADFI.js.map +1 -0
  285. package/dist/purge-scope-FGNNLWHD.js +24 -0
  286. package/dist/purge-scope-FGNNLWHD.js.map +1 -0
  287. package/dist/query/index.js +12 -10
  288. package/dist/read-only-facade-CHCKSEPD.js +8 -0
  289. package/dist/register-PAM3ASRZ.js +23 -0
  290. package/dist/registry-4S2U2TR4.js +19 -0
  291. package/dist/registry-NPOWJHC4.js +9 -0
  292. package/dist/registry-VZ3CCI2R.js +18 -0
  293. package/dist/request-withdrawal-DI3H5WUI.js +31 -0
  294. package/dist/reveal-HWO4YMTJ.js +38 -0
  295. package/dist/reveal-HWO4YMTJ.js.map +1 -0
  296. package/dist/revoke-R5CZSVUT.js +24 -0
  297. package/dist/satellites/index.js +1 -1
  298. package/dist/sealed-record/index.js +12 -12
  299. package/dist/seed-3ZMF5EQA.js +231 -0
  300. package/dist/seed-3ZMF5EQA.js.map +1 -0
  301. package/dist/session/index.js +9 -9
  302. package/dist/shadow/index.js +2 -2
  303. package/dist/signer-MBVHW4WE.js +25 -0
  304. package/dist/snapshots/index.js +10 -10
  305. package/dist/stale-VZL4OGUB.js +29 -0
  306. package/dist/storage-3MEJUENZ.js +23 -0
  307. package/dist/store-coordination-provider-FKX3F6TQ.js +142 -0
  308. package/dist/sync/index.js +9 -9
  309. package/dist/team/index.js +15 -15
  310. package/dist/tiers/index.js +14 -10
  311. package/dist/to/index.js +1 -2
  312. package/dist/tx/index.js +3 -3
  313. package/dist/util/index.js +1 -1
  314. package/dist/verify-26Y5GNMK.js +140 -0
  315. package/dist/verify-26Y5GNMK.js.map +1 -0
  316. package/dist/via/blob/active.d.ts +34 -0
  317. package/dist/via/blob/binding.d.ts +86 -0
  318. package/dist/via/blob/index.d.ts +34 -0
  319. package/dist/via/classified/active.d.ts +3 -0
  320. package/dist/via/classified/binding.d.ts +83 -0
  321. package/dist/via/classified/config-drift.d.ts +34 -0
  322. package/dist/via/classified/descriptor.d.ts +66 -0
  323. package/dist/via/classified/errors.d.ts +19 -0
  324. package/dist/via/classified/guards.d.ts +23 -0
  325. package/dist/via/classified/index.d.ts +11 -0
  326. package/dist/via/classified/presets.d.ts +65 -0
  327. package/dist/via/classified/resolve.d.ts +9 -0
  328. package/dist/via/classified/strategy.d.ts +11 -0
  329. package/dist/via/classified/validators.d.ts +3 -0
  330. package/dist/via/classified/write.d.ts +4 -0
  331. package/dist/via/computed/binding.d.ts +34 -0
  332. package/dist/via/computed/descriptor.d.ts +35 -0
  333. package/dist/via/i18n/active.d.ts +28 -0
  334. package/dist/via/i18n/binding.d.ts +36 -0
  335. package/dist/via/i18n/core.d.ts +267 -0
  336. package/dist/via/i18n/densify.d.ts +24 -0
  337. package/dist/via/i18n/dictionary.d.ts +200 -0
  338. package/dist/via/i18n/index.d.ts +21 -0
  339. package/dist/via/i18n/policy.d.ts +44 -0
  340. package/dist/via/i18n/script.d.ts +26 -0
  341. package/dist/via/i18n/strategy.d.ts +13 -0
  342. package/dist/via/lookup/active.d.ts +19 -0
  343. package/dist/via/lookup/binding.d.ts +99 -0
  344. package/dist/via/lookup/descriptor.d.ts +123 -0
  345. package/dist/via/lookup/handle.d.ts +220 -0
  346. package/dist/via/lookup/index.d.ts +17 -0
  347. package/dist/via/lookup/registry.d.ts +228 -0
  348. package/dist/via/lookup/snapshot.d.ts +67 -0
  349. package/dist/via/money/arith.d.ts +68 -0
  350. package/dist/via/money/binding.d.ts +21 -0
  351. package/dist/via/money/branded.d.ts +61 -0
  352. package/dist/via/money/descriptor.d.ts +73 -0
  353. package/dist/via/money/fixed-point.d.ts +51 -0
  354. package/dist/via/money/index.d.ts +15 -0
  355. package/dist/via/money/iso4217.d.ts +6 -0
  356. package/dist/via/money/money-reducer.d.ts +33 -0
  357. package/dist/via/money/normalize.d.ts +105 -0
  358. package/dist/via/money/paths.d.ts +61 -0
  359. package/dist/via/money/where.d.ts +127 -0
  360. package/dist/walk-IPLXE36W.js +241 -0
  361. package/dist/with/index.js +11 -11
  362. package/dist/with-audit/attestation/active.d.ts +10 -0
  363. package/dist/with-audit/attestation/index.d.ts +16 -0
  364. package/dist/with-audit/attestation/issue.d.ts +29 -0
  365. package/dist/with-audit/attestation/revoke.d.ts +15 -0
  366. package/dist/with-audit/attestation/signer.d.ts +33 -0
  367. package/dist/with-audit/attestation/strategy.d.ts +44 -0
  368. package/dist/with-audit/attestation/vault-facade.d.ts +62 -0
  369. package/dist/with-audit/consent/active.d.ts +14 -0
  370. package/dist/with-audit/consent/consent.d.ts +114 -0
  371. package/dist/with-audit/consent/index.d.ts +14 -0
  372. package/dist/with-audit/consent/strategy.d.ts +36 -0
  373. package/dist/with-audit/forget/active.d.ts +31 -0
  374. package/dist/with-audit/forget/index.d.ts +28 -0
  375. package/dist/with-audit/forget/purge-scope.d.ts +54 -0
  376. package/dist/with-audit/forget/strategy.d.ts +199 -0
  377. package/dist/with-audit/forget/subject-index.d.ts +83 -0
  378. package/dist/with-audit/guards/executor.d.ts +26 -0
  379. package/dist/with-audit/guards/immutable-guard.d.ts +63 -0
  380. package/dist/with-audit/guards/index.d.ts +10 -0
  381. package/dist/with-audit/guards/read-only-facade.d.ts +31 -0
  382. package/dist/with-audit/guards/registry.d.ts +83 -0
  383. package/dist/with-audit/guards/transition-guard.d.ts +82 -0
  384. package/dist/with-audit/guards/types.d.ts +134 -0
  385. package/dist/with-audit/guards/with-guard.d.ts +15 -0
  386. package/dist/with-audit/periods/active.d.ts +11 -0
  387. package/dist/with-audit/periods/index.d.ts +18 -0
  388. package/dist/with-audit/periods/periods.d.ts +417 -0
  389. package/dist/with-audit/periods/strategy.d.ts +32 -0
  390. package/dist/with-audit/periods/vault-facade.d.ts +95 -0
  391. package/dist/with-audit/portability/active.d.ts +11 -0
  392. package/dist/with-audit/portability/export-accessible.d.ts +46 -0
  393. package/dist/with-audit/portability/index.d.ts +18 -0
  394. package/dist/with-audit/portability/request-withdrawal.d.ts +85 -0
  395. package/dist/with-audit/portability/strategy.d.ts +31 -0
  396. package/dist/with-audit/portability/withdraw-accessible.d.ts +82 -0
  397. package/dist/with-audit/sealed-record/active.d.ts +9 -0
  398. package/dist/with-audit/sealed-record/index.d.ts +55 -0
  399. package/dist/with-audit/sealed-record/strategy.d.ts +34 -0
  400. package/dist/with-audit/sealed-record/types.d.ts +27 -0
  401. package/dist/with-audit/tiers/active.d.ts +9 -0
  402. package/dist/with-audit/tiers/index.d.ts +394 -0
  403. package/dist/with-audit/tiers/strategy.d.ts +36 -0
  404. package/dist/with-cargo/active.d.ts +11 -0
  405. package/dist/with-cargo/adopt-partition.d.ts +81 -0
  406. package/dist/with-cargo/decrypt-partition.d.ts +19 -0
  407. package/dist/with-cargo/describe-extraction.d.ts +41 -0
  408. package/dist/with-cargo/extract-partition.d.ts +155 -0
  409. package/dist/with-cargo/index.d.ts +33 -0
  410. package/dist/with-cargo/strategy.d.ts +30 -0
  411. package/dist/with-cargo/vault-diff.d.ts +144 -0
  412. package/dist/with-cargo/walk-closure.d.ts +67 -0
  413. package/dist/with-commit/crdt/active.d.ts +25 -0
  414. package/dist/with-commit/crdt/crdt.d.ts +42 -0
  415. package/dist/with-commit/crdt/index.d.ts +16 -0
  416. package/dist/with-commit/crdt/strategy.d.ts +25 -0
  417. package/dist/with-commit/history/active.d.ts +40 -0
  418. package/dist/with-commit/history/diff.d.ts +23 -0
  419. package/dist/with-commit/history/history.d.ts +73 -0
  420. package/dist/with-commit/history/index.d.ts +30 -0
  421. package/dist/with-commit/history/ledger/constants.d.ts +37 -0
  422. package/dist/with-commit/history/ledger/entry.d.ts +195 -0
  423. package/dist/with-commit/history/ledger/hash.d.ts +30 -0
  424. package/dist/with-commit/history/ledger/index.d.ts +19 -0
  425. package/dist/with-commit/history/ledger/patch.d.ts +99 -0
  426. package/dist/with-commit/history/ledger/store.d.ts +356 -0
  427. package/dist/with-commit/history/strategy.d.ts +136 -0
  428. package/dist/with-commit/history/time-machine.d.ts +202 -0
  429. package/dist/with-commit/numbering/descriptor.d.ts +27 -0
  430. package/dist/with-commit/numbering/index.d.ts +69 -0
  431. package/dist/with-commit/sequence/active.d.ts +10 -0
  432. package/dist/with-commit/sequence/index.d.ts +150 -0
  433. package/dist/with-commit/sequence/strategy.d.ts +26 -0
  434. package/dist/with-commit/tx/active.d.ts +27 -0
  435. package/dist/with-commit/tx/dry-run.d.ts +29 -0
  436. package/dist/with-commit/tx/elevated-handle.d.ts +59 -0
  437. package/dist/with-commit/tx/index.d.ts +13 -0
  438. package/dist/with-commit/tx/invariants.d.ts +68 -0
  439. package/dist/with-commit/tx/strategy.d.ts +23 -0
  440. package/dist/with-commit/tx/transaction.d.ts +212 -0
  441. package/dist/with-fork/archive/engine.d.ts +71 -0
  442. package/dist/with-fork/archive/index.d.ts +23 -0
  443. package/dist/with-fork/shadow/active.d.ts +6 -0
  444. package/dist/with-fork/shadow/index.d.ts +14 -0
  445. package/dist/with-fork/shadow/strategy.d.ts +28 -0
  446. package/dist/with-fork/shadow/vault-frame.d.ts +93 -0
  447. package/dist/with-fork/snapshots/active.d.ts +20 -0
  448. package/dist/with-fork/snapshots/engine.d.ts +36 -0
  449. package/dist/with-fork/snapshots/index.d.ts +5 -0
  450. package/dist/with-fork/snapshots/noydb-facade.d.ts +64 -0
  451. package/dist/with-fork/snapshots/policy.d.ts +23 -0
  452. package/dist/with-fork/snapshots/scheduler.d.ts +34 -0
  453. package/dist/with-fork/snapshots/strategy.d.ts +48 -0
  454. package/dist/with-formula/computed/index.d.ts +48 -0
  455. package/dist/with-formula/computed/lazy.d.ts +13 -0
  456. package/dist/with-formula/derivations/executor.d.ts +61 -0
  457. package/dist/with-formula/derivations/fanout-sidecar.d.ts +75 -0
  458. package/dist/with-formula/derivations/index.d.ts +6 -0
  459. package/dist/with-formula/derivations/registry.d.ts +67 -0
  460. package/dist/with-formula/derivations/stale.d.ts +39 -0
  461. package/dist/with-formula/derivations/strategy-hash.d.ts +1 -0
  462. package/dist/with-formula/derivations/types.d.ts +248 -0
  463. package/dist/with-formula/derivations/with-derivation.d.ts +10 -0
  464. package/dist/with-formula/derivations/with-rollup.d.ts +34 -0
  465. package/dist/with-formula/materialized-views/dependency-analyzer.d.ts +73 -0
  466. package/dist/with-formula/materialized-views/executor.d.ts +80 -0
  467. package/dist/with-formula/materialized-views/index.d.ts +11 -0
  468. package/dist/with-formula/materialized-views/query-hash.d.ts +23 -0
  469. package/dist/with-formula/materialized-views/registry.d.ts +128 -0
  470. package/dist/with-formula/materialized-views/stale.d.ts +113 -0
  471. package/dist/with-formula/materialized-views/types.d.ts +399 -0
  472. package/dist/with-formula/materialized-views/with-materialized-view.d.ts +28 -0
  473. package/dist/with-formula/overlay-views/index.d.ts +5 -0
  474. package/dist/with-formula/overlay-views/registry.d.ts +42 -0
  475. package/dist/with-formula/overlay-views/types.d.ts +97 -0
  476. package/dist/with-formula/overlay-views/virtual-collection.d.ts +90 -0
  477. package/dist/with-formula/overlay-views/with-overlayed-view.d.ts +9 -0
  478. package/dist/with-lookup/aggregate/active.d.ts +33 -0
  479. package/dist/with-lookup/aggregate/aggregation.d.ts +166 -0
  480. package/dist/with-lookup/aggregate/canonical-key.d.ts +16 -0
  481. package/dist/with-lookup/aggregate/groupby.d.ts +280 -0
  482. package/dist/with-lookup/aggregate/index.d.ts +23 -0
  483. package/dist/with-lookup/aggregate/reducers.d.ts +257 -0
  484. package/dist/with-lookup/aggregate/strategy.d.ts +59 -0
  485. package/dist/with-lookup/embeddings/cosine.d.ts +2 -0
  486. package/dist/with-lookup/embeddings/descriptor.d.ts +8 -0
  487. package/dist/with-lookup/embeddings/index.d.ts +4 -0
  488. package/dist/with-lookup/embeddings/vec-id.d.ts +47 -0
  489. package/dist/with-lookup/embeddings/vector-set.d.ts +19 -0
  490. package/dist/with-lookup/indexing/active.d.ts +30 -0
  491. package/dist/with-lookup/indexing/collection-facade.d.ts +157 -0
  492. package/dist/with-lookup/indexing/eager-indexes.d.ts +122 -0
  493. package/dist/with-lookup/indexing/index.d.ts +27 -0
  494. package/dist/with-lookup/indexing/lazy-builder.d.ts +102 -0
  495. package/dist/with-lookup/indexing/persisted-indexes.d.ts +229 -0
  496. package/dist/with-lookup/indexing/strategy.d.ts +56 -0
  497. package/dist/with-lookup/indexing/unique-constraints.d.ts +74 -0
  498. package/dist/with-lookup/search/active.d.ts +10 -0
  499. package/dist/with-lookup/search/build-docs.d.ts +15 -0
  500. package/dist/with-lookup/search/collection-facade.d.ts +163 -0
  501. package/dist/with-lookup/search/fuse.d.ts +22 -0
  502. package/dist/with-lookup/search/index-store.d.ts +19 -0
  503. package/dist/with-lookup/search/index.d.ts +19 -0
  504. package/dist/with-lookup/search/inverted-index.d.ts +47 -0
  505. package/dist/with-lookup/search/persisted-index-store.d.ts +121 -0
  506. package/dist/with-lookup/search/retrieve-types.d.ts +29 -0
  507. package/dist/with-lookup/search/scan.d.ts +28 -0
  508. package/dist/with-lookup/search/segment.d.ts +15 -0
  509. package/dist/with-lookup/search/serialize.d.ts +4 -0
  510. package/dist/with-lookup/search/snippet.d.ts +5 -0
  511. package/dist/with-lookup/search/strategy.d.ts +41 -0
  512. package/dist/with-lookup/search/tokenize.d.ts +12 -0
  513. package/dist/with-party/auth-introspection/index.d.ts +44 -0
  514. package/dist/with-party/broker/active.d.ts +23 -0
  515. package/dist/with-party/broker/index.d.ts +28 -0
  516. package/dist/with-party/broker/seed.d.ts +77 -0
  517. package/dist/with-party/custody/active.d.ts +10 -0
  518. package/dist/with-party/custody/index.d.ts +69 -0
  519. package/dist/with-party/custody/liberate.d.ts +64 -0
  520. package/dist/with-party/custody/strategy.d.ts +48 -0
  521. package/dist/with-party/directory/cover/custom.d.ts +34 -0
  522. package/dist/with-party/directory/cover/index.d.ts +19 -0
  523. package/dist/with-party/directory/cover/schema.d.ts +39 -0
  524. package/dist/with-party/directory/cover/storage.d.ts +71 -0
  525. package/dist/with-party/directory/cover/types.d.ts +149 -0
  526. package/dist/with-party/directory/index.d.ts +11 -0
  527. package/dist/with-party/directory/storage.d.ts +33 -0
  528. package/dist/with-party/directory/types.d.ts +43 -0
  529. package/dist/with-party/directory/user-envelope/api.d.ts +201 -0
  530. package/dist/with-party/directory/user-envelope/index.d.ts +12 -0
  531. package/dist/with-party/directory/user-envelope/storage.d.ts +54 -0
  532. package/dist/with-party/directory/visibility.d.ts +47 -0
  533. package/dist/with-party/policy/engine.d.ts +60 -0
  534. package/dist/with-party/policy/index.d.ts +15 -0
  535. package/dist/with-party/policy/noydb-facade.d.ts +39 -0
  536. package/dist/with-party/policy/presets.d.ts +38 -0
  537. package/dist/with-party/policy/storage.d.ts +31 -0
  538. package/dist/with-party/session/active.d.ts +34 -0
  539. package/dist/with-party/session/dev-unlock.d.ts +128 -0
  540. package/dist/with-party/session/index.d.ts +23 -0
  541. package/dist/with-party/session/session-policy.d.ts +92 -0
  542. package/dist/with-party/session/session.d.ts +131 -0
  543. package/dist/with-party/session/strategy.d.ts +42 -0
  544. package/dist/with-party/session/unlock-state.d.ts +47 -0
  545. package/dist/with-party/sync/index.d.ts +31 -0
  546. package/dist/with-party/tab-coordination.d.ts +73 -0
  547. package/dist/with-party/tab-write-relay.d.ts +39 -0
  548. package/dist/with-party/team/active.d.ts +13 -0
  549. package/dist/with-party/team/authenticators.d.ts +95 -0
  550. package/dist/with-party/team/deed.d.ts +97 -0
  551. package/dist/with-party/team/delegation.d.ts +88 -0
  552. package/dist/with-party/team/index.d.ts +38 -0
  553. package/dist/with-party/team/keyring.d.ts +318 -0
  554. package/dist/with-party/team/magic-link-grant.d.ts +152 -0
  555. package/dist/with-party/team/managed-passphrase.d.ts +280 -0
  556. package/dist/with-party/team/noydb-facade.d.ts +484 -0
  557. package/dist/with-party/team/peer-recover.d.ts +81 -0
  558. package/dist/with-party/team/presence.d.ts +81 -0
  559. package/dist/with-party/team/recovery.d.ts +191 -0
  560. package/dist/with-party/team/reserved-secret-collections.d.ts +41 -0
  561. package/dist/with-party/team/rotate-recover.d.ts +275 -0
  562. package/dist/with-party/team/shamir-recovery-provider.d.ts +15 -0
  563. package/dist/with-party/team/strategy.d.ts +9 -0
  564. package/dist/with-party/team/sync-active.d.ts +33 -0
  565. package/dist/with-party/team/sync-credentials.d.ts +113 -0
  566. package/dist/with-party/team/sync-strategy.d.ts +67 -0
  567. package/dist/with-party/team/sync-transaction.d.ts +39 -0
  568. package/dist/with-party/team/sync.d.ts +174 -0
  569. package/dist/with-party/team/tiers.d.ts +39 -0
  570. package/dist/with-party/team/wrapped-deks.d.ts +86 -0
  571. package/dist/with-pod/backup.d.ts +74 -0
  572. package/dist/with-pod/bundle.d.ts +416 -0
  573. package/dist/with-pod/format.d.ts +207 -0
  574. package/dist/with-pod/index.d.ts +21 -0
  575. package/dist/with-pod/pod-store.d.ts +54 -0
  576. package/dist/with-pod/ulid.d.ts +64 -0
  577. package/dist/with-shape/blobs/blob-compaction.d.ts +170 -0
  578. package/dist/with-shape/blobs/blob-intent.d.ts +153 -0
  579. package/dist/with-shape/blobs/blob-set.d.ts +1286 -0
  580. package/dist/with-shape/blobs/export-blobs.d.ts +110 -0
  581. package/dist/with-shape/blobs/import-external.d.ts +50 -0
  582. package/dist/with-shape/blobs/mime-magic.d.ts +48 -0
  583. package/dist/with-shape/blobs/object-projection.d.ts +70 -0
  584. package/dist/with-shape/introspection/describe.d.ts +237 -0
  585. package/dist/with-shape/introspection/field-meta.d.ts +61 -0
  586. package/dist/with-shape/introspection/fields.d.ts +14 -0
  587. package/dist/with-shape/introspection/index.d.ts +12 -0
  588. package/dist/with-shape/introspection/json-schema.d.ts +13 -0
  589. package/dist/with-shape/introspection/meta.d.ts +22 -0
  590. package/dist/with-shape/introspection/projection.d.ts +13 -0
  591. package/dist/with-shape/introspection/types.d.ts +154 -0
  592. package/dist/with-shape/introspection/walk.d.ts +50 -0
  593. package/dist/with-shape/links/lazy-handle.d.ts +36 -0
  594. package/dist/with-shape/links/link-set.d.ts +67 -0
  595. package/dist/with-shape/links/names.d.ts +65 -0
  596. package/dist/with-shape/links/vault-facade.d.ts +211 -0
  597. package/dist/with-shape/persisted-schemas/canonicalize.d.ts +11 -0
  598. package/dist/with-shape/persisted-schemas/derive.d.ts +29 -0
  599. package/dist/with-shape/persisted-schemas/index.d.ts +21 -0
  600. package/dist/with-shape/persisted-schemas/register.d.ts +66 -0
  601. package/dist/with-shape/persisted-schemas/storage.d.ts +61 -0
  602. package/dist/with-shape/persisted-schemas/types.d.ts +54 -0
  603. package/dist/with-shape/satellites/dead-filter.d.ts +21 -0
  604. package/dist/with-shape/satellites/declare.d.ts +60 -0
  605. package/dist/with-shape/satellites/existence.d.ts +5 -0
  606. package/dist/with-shape/satellites/fanout.d.ts +38 -0
  607. package/dist/with-shape/satellites/forget.d.ts +47 -0
  608. package/dist/with-shape/satellites/index.d.ts +3 -0
  609. package/dist/with-shape/satellites/joined.d.ts +19 -0
  610. package/dist/with-shape/satellites/marker.d.ts +10 -0
  611. package/dist/with-shape/satellites/migrate-cek.d.ts +26 -0
  612. package/dist/with-shape/satellites/post-register.d.ts +6 -0
  613. package/dist/with-shape/satellites/proxy.d.ts +37 -0
  614. package/dist/with-shape/satellites/raw-target.d.ts +14 -0
  615. package/dist/with-shape/satellites/registry.d.ts +19 -0
  616. package/dist/with-shape/satellites/types.d.ts +37 -0
  617. package/dist/with-shape/satellites/validate.d.ts +17 -0
  618. package/dist/with-shape/schema-update/client-registry.d.ts +35 -0
  619. package/dist/with-shape/schema-update/cutover.d.ts +5 -0
  620. package/dist/with-shape/schema-update/delta.d.ts +2 -0
  621. package/dist/with-shape/schema-update/dispatch.d.ts +3 -0
  622. package/dist/with-shape/schema-update/fence-controller.d.ts +62 -0
  623. package/dist/with-shape/schema-update/fence-watcher.d.ts +37 -0
  624. package/dist/with-shape/schema-update/fence.d.ts +15 -0
  625. package/dist/with-shape/schema-update/gate.d.ts +16 -0
  626. package/dist/with-shape/schema-update/index.d.ts +6 -0
  627. package/dist/with-shape/schema-update/store-coordination-provider.d.ts +29 -0
  628. package/dist/with-shape/schema-update/strategies.d.ts +12 -0
  629. package/dist/with-shape/schema-update/types.d.ts +53 -0
  630. package/dist/with-store/index.d.ts +15 -0
  631. package/dist/with-store/lazy/active.d.ts +12 -0
  632. package/dist/with-store/lazy/index.d.ts +14 -0
  633. package/dist/with-store/lazy/strategy.d.ts +9 -0
  634. package/dist/with-store/route-store.d.ts +259 -0
  635. package/dist/with-store/store-middleware.d.ts +189 -0
  636. package/dist/withdraw-accessible-TZDATQVR.js +28 -0
  637. package/package.json +47 -55
  638. package/dist/adapter/index.d.ts +0 -4
  639. package/dist/adapter/index.js +0 -15
  640. package/dist/aggregate/index.d.ts +0 -41
  641. package/dist/api-HV4PDUWF.js +0 -20
  642. package/dist/as/index.d.ts +0 -6
  643. package/dist/at/index.d.ts +0 -4
  644. package/dist/attestation/index.d.ts +0 -19
  645. package/dist/backup-ODXO7OGA.js +0 -225
  646. package/dist/backup-ODXO7OGA.js.map +0 -1
  647. package/dist/blobs/index.d.ts +0 -43
  648. package/dist/bundle/index.d.ts +0 -121
  649. package/dist/bundle-DlSxo31R.d.ts +0 -548
  650. package/dist/by/index.d.ts +0 -1
  651. package/dist/cargo/index.d.ts +0 -8
  652. package/dist/chunk-2644KEGW.js +0 -247
  653. package/dist/chunk-2644KEGW.js.map +0 -1
  654. package/dist/chunk-2HVUKRNE.js +0 -21
  655. package/dist/chunk-2KOSJTMU.js +0 -69
  656. package/dist/chunk-2UQ4RMHV.js +0 -167
  657. package/dist/chunk-2UQ4RMHV.js.map +0 -1
  658. package/dist/chunk-2XE6LIXT.js +0 -515
  659. package/dist/chunk-2XE6LIXT.js.map +0 -1
  660. package/dist/chunk-34RRRIC3.js +0 -71
  661. package/dist/chunk-3C5CKXFI.js +0 -621
  662. package/dist/chunk-3C5CKXFI.js.map +0 -1
  663. package/dist/chunk-3I4KYWNP.js +0 -30
  664. package/dist/chunk-42KVY3OC.js +0 -86
  665. package/dist/chunk-4C4WBS4V.js +0 -13822
  666. package/dist/chunk-4C4WBS4V.js.map +0 -1
  667. package/dist/chunk-4G3IT7J7.js +0 -280
  668. package/dist/chunk-4G3IT7J7.js.map +0 -1
  669. package/dist/chunk-4RQ62VSR.js +0 -53
  670. package/dist/chunk-4RQ62VSR.js.map +0 -1
  671. package/dist/chunk-4ZSGSRBI.js +0 -1221
  672. package/dist/chunk-4ZSGSRBI.js.map +0 -1
  673. package/dist/chunk-5GAX2QOH.js +0 -132
  674. package/dist/chunk-5GAX2QOH.js.map +0 -1
  675. package/dist/chunk-5SAZMBW7.js +0 -202
  676. package/dist/chunk-5TZZUL5X.js +0 -30
  677. package/dist/chunk-6CU3FN74.js +0 -777
  678. package/dist/chunk-6G2SCQYS.js +0 -29
  679. package/dist/chunk-6G2SCQYS.js.map +0 -1
  680. package/dist/chunk-6MWUANRF.js +0 -29
  681. package/dist/chunk-6S7T6WC4.js +0 -111
  682. package/dist/chunk-6S7T6WC4.js.map +0 -1
  683. package/dist/chunk-6ULCYCMU.js +0 -74
  684. package/dist/chunk-7HAPHVRJ.js +0 -1695
  685. package/dist/chunk-7HAPHVRJ.js.map +0 -1
  686. package/dist/chunk-7IZQTCTR.js +0 -382
  687. package/dist/chunk-7ZANJ6JZ.js +0 -265
  688. package/dist/chunk-7ZANJ6JZ.js.map +0 -1
  689. package/dist/chunk-A2APWS32.js +0 -150
  690. package/dist/chunk-A2APWS32.js.map +0 -1
  691. package/dist/chunk-A4MAD6PO.js +0 -99
  692. package/dist/chunk-ANDBBA2P.js +0 -36
  693. package/dist/chunk-ANDBBA2P.js.map +0 -1
  694. package/dist/chunk-AUR7MRHA.js +0 -404
  695. package/dist/chunk-AYGZMQP5.js +0 -75
  696. package/dist/chunk-BGIZAFY7.js +0 -1
  697. package/dist/chunk-CJEMA2Z6.js +0 -230
  698. package/dist/chunk-CTSFKDGA.js +0 -40
  699. package/dist/chunk-CU62BBRB.js +0 -1465
  700. package/dist/chunk-CU62BBRB.js.map +0 -1
  701. package/dist/chunk-CWCCYH34.js +0 -23
  702. package/dist/chunk-DEYAO3N6.js +0 -589
  703. package/dist/chunk-DFIBOSOQ.js +0 -85
  704. package/dist/chunk-E5AHO65E.js +0 -150
  705. package/dist/chunk-FC3XK5JT.js +0 -99
  706. package/dist/chunk-FGOGS7CE.js +0 -662
  707. package/dist/chunk-FGOGS7CE.js.map +0 -1
  708. package/dist/chunk-GX2BYNCT.js +0 -117
  709. package/dist/chunk-GZ2MOPVX.js +0 -291
  710. package/dist/chunk-GZ2MOPVX.js.map +0 -1
  711. package/dist/chunk-H57P2SJB.js +0 -126
  712. package/dist/chunk-H57P2SJB.js.map +0 -1
  713. package/dist/chunk-HBTT7YQX.js +0 -94
  714. package/dist/chunk-HOCEGVGQ.js +0 -36
  715. package/dist/chunk-ICV32FPK.js +0 -50
  716. package/dist/chunk-IIP5WFVT.js +0 -462
  717. package/dist/chunk-IIP5WFVT.js.map +0 -1
  718. package/dist/chunk-IUKGIB2Q.js +0 -91
  719. package/dist/chunk-IWTYFS3D.js +0 -129
  720. package/dist/chunk-JC5R7P44.js +0 -355
  721. package/dist/chunk-JC5R7P44.js.map +0 -1
  722. package/dist/chunk-K2WCO3NX.js +0 -1
  723. package/dist/chunk-KBBWY46Y.js +0 -14
  724. package/dist/chunk-KBF5GSGX.js +0 -367
  725. package/dist/chunk-KCG3BHFG.js +0 -99
  726. package/dist/chunk-KCG3BHFG.js.map +0 -1
  727. package/dist/chunk-KNXN47MO.js +0 -155
  728. package/dist/chunk-KNXN47MO.js.map +0 -1
  729. package/dist/chunk-KWLD2D75.js +0 -38
  730. package/dist/chunk-KXKLKJW4.js +0 -49
  731. package/dist/chunk-KYC4LIEU.js +0 -123
  732. package/dist/chunk-LEOXZY36.js +0 -130
  733. package/dist/chunk-M5I354EE.js +0 -235
  734. package/dist/chunk-MK2BSS44.js +0 -34
  735. package/dist/chunk-MSVY7ULZ.js +0 -70
  736. package/dist/chunk-NNWK3PSY.js +0 -135
  737. package/dist/chunk-NSZ6J5DF.js +0 -59
  738. package/dist/chunk-NUEFXLZU.js +0 -59
  739. package/dist/chunk-NYVQCZ54.js +0 -261
  740. package/dist/chunk-OQAODTYR.js +0 -45
  741. package/dist/chunk-OV4CMJGR.js +0 -164
  742. package/dist/chunk-PEDZFFKW.js +0 -41
  743. package/dist/chunk-PF3FQCCF.js +0 -164
  744. package/dist/chunk-PF3FQCCF.js.map +0 -1
  745. package/dist/chunk-Q2KVKTC2.js +0 -823
  746. package/dist/chunk-Q2KVKTC2.js.map +0 -1
  747. package/dist/chunk-QJR3W3MF.js +0 -23
  748. package/dist/chunk-QJR3W3MF.js.map +0 -1
  749. package/dist/chunk-QTXQ6RNZ.js +0 -255
  750. package/dist/chunk-RJ5522XX.js +0 -453
  751. package/dist/chunk-RJ5522XX.js.map +0 -1
  752. package/dist/chunk-RMUXPHIH.js +0 -930
  753. package/dist/chunk-RMUXPHIH.js.map +0 -1
  754. package/dist/chunk-S6AQXDN4.js +0 -155
  755. package/dist/chunk-SSFC3IYA.js +0 -275
  756. package/dist/chunk-SSFC3IYA.js.map +0 -1
  757. package/dist/chunk-SZCHEDML.js +0 -209
  758. package/dist/chunk-TDPEJINP.js +0 -188
  759. package/dist/chunk-TDPEJINP.js.map +0 -1
  760. package/dist/chunk-TQ3REHVF.js +0 -95
  761. package/dist/chunk-TQ3REHVF.js.map +0 -1
  762. package/dist/chunk-UNJU345Q.js +0 -32
  763. package/dist/chunk-UNJU345Q.js.map +0 -1
  764. package/dist/chunk-V7RNIND6.js +0 -265
  765. package/dist/chunk-V7RNIND6.js.map +0 -1
  766. package/dist/chunk-VJ3NQK4K.js +0 -205
  767. package/dist/chunk-WNA6T3MA.js +0 -686
  768. package/dist/chunk-WNA6T3MA.js.map +0 -1
  769. package/dist/chunk-WVCQ75OK.js +0 -124
  770. package/dist/chunk-WXSYDNBT.js +0 -39
  771. package/dist/chunk-WXSYDNBT.js.map +0 -1
  772. package/dist/chunk-X66MXMR5.js +0 -42
  773. package/dist/chunk-XHD3L3JO.js +0 -930
  774. package/dist/chunk-XHD3L3JO.js.map +0 -1
  775. package/dist/chunk-XJK2WIYN.js +0 -430
  776. package/dist/chunk-XJK2WIYN.js.map +0 -1
  777. package/dist/chunk-XQ7UYPVN.js +0 -95
  778. package/dist/chunk-Y2OCKFZ3.js +0 -80
  779. package/dist/chunk-YBFOBRTO.js +0 -367
  780. package/dist/chunk-YLN33ADH.js +0 -97
  781. package/dist/chunk-YLN33ADH.js.map +0 -1
  782. package/dist/chunk-Z5YFRMG5.js +0 -45
  783. package/dist/chunk-ZWQFOXBR.js +0 -54
  784. package/dist/classified/index.d.ts +0 -16
  785. package/dist/classified-marker-IO5EBW7Q.js +0 -24
  786. package/dist/classified-marker-IO5EBW7Q.js.map +0 -1
  787. package/dist/collection-facade-3RAXG2OU.js +0 -38
  788. package/dist/computed-R62HGCO4.js +0 -11
  789. package/dist/consent/index.d.ts +0 -22
  790. package/dist/crdt/index.d.ts +0 -33
  791. package/dist/dead-filter-VNA4M3GP.js +0 -28
  792. package/dist/decrypt-partition-IHtxEnTi.d.ts +0 -21
  793. package/dist/delegation-ZKII5UBI.js +0 -25
  794. package/dist/derivations/index.d.ts +0 -69
  795. package/dist/derive-5D2C3WG4.js +0 -21
  796. package/dist/describe/index.d.ts +0 -4
  797. package/dist/describe/index.js +0 -1
  798. package/dist/dev-unlock-DDTafVO6.d.ts +0 -263
  799. package/dist/discriminant-BN9REW3o.d.ts +0 -60
  800. package/dist/enclave-EUBEJGPG.js +0 -125
  801. package/dist/executor-IL7SRNUZ.js +0 -23
  802. package/dist/executor-OUA2Y6YC.js +0 -9
  803. package/dist/executor-WAEI6PDV.js +0 -9
  804. package/dist/export-accessible-O55RKAGC.js +0 -23
  805. package/dist/extract-partition-VBGCBA6Q.js +0 -36
  806. package/dist/fanout-sidecar-CI5BCMQM.js +0 -74
  807. package/dist/find-FISGUWSK.js +0 -11
  808. package/dist/forget/index.d.ts +0 -36
  809. package/dist/guards/index.d.ts +0 -34
  810. package/dist/hash-DBkZfIBW.d.ts +0 -72
  811. package/dist/history/index.d.ts +0 -60
  812. package/dist/i18n/index.d.ts +0 -56
  813. package/dist/in/index.d.ts +0 -4
  814. package/dist/index-B9QdHytu.d.ts +0 -123
  815. package/dist/index-CyclmyDr.d.ts +0 -122
  816. package/dist/index-DzhNI2vE.d.ts +0 -23260
  817. package/dist/indexing/index.d.ts +0 -38
  818. package/dist/issue-EQAWIYFQ.js +0 -19
  819. package/dist/kernel/index.d.ts +0 -31
  820. package/dist/kernel/index.js +0 -60
  821. package/dist/lazy/index.d.ts +0 -20
  822. package/dist/ledger-AJA2SR3C.js +0 -42
  823. package/dist/liberate-SEGR4JLY.js +0 -24
  824. package/dist/link-set-YBAC2DQT.js +0 -31
  825. package/dist/materialized-views/index.d.ts +0 -182
  826. package/dist/mime-magic-CbV1quyp.d.ts +0 -103
  827. package/dist/noydb-AMEOU456.js +0 -65
  828. package/dist/on/index.d.ts +0 -4
  829. package/dist/overlay-views/index.d.ts +0 -97
  830. package/dist/periods/index.d.ts +0 -19
  831. package/dist/pod/index.d.ts +0 -62
  832. package/dist/policy-SDGRWVIL.js +0 -41
  833. package/dist/portability/index.d.ts +0 -19
  834. package/dist/post-register-MROIUA5O.js +0 -55
  835. package/dist/post-register-MROIUA5O.js.map +0 -1
  836. package/dist/public-envelope-J5PLQOW2.js +0 -32
  837. package/dist/query/index.d.ts +0 -4
  838. package/dist/read-only-facade-UCYNRE56.js +0 -8
  839. package/dist/register-OVJKW7BS.js +0 -23
  840. package/dist/registry-5RJSK5AJ.js +0 -9
  841. package/dist/registry-DQRNTWRL.js +0 -18
  842. package/dist/registry-LTGLERS7.js +0 -19
  843. package/dist/request-withdrawal-27O77D2V.js +0 -31
  844. package/dist/reveal-LT3I2K4P.js +0 -38
  845. package/dist/reveal-LT3I2K4P.js.map +0 -1
  846. package/dist/revoke-4N45G7D2.js +0 -24
  847. package/dist/revoke-4N45G7D2.js.map +0 -1
  848. package/dist/satellites/index.d.ts +0 -4
  849. package/dist/sealed-record/index.d.ts +0 -68
  850. package/dist/session/index.d.ts +0 -43
  851. package/dist/shadow/index.d.ts +0 -14
  852. package/dist/signer-XJCOV7JD.js +0 -25
  853. package/dist/signer-XJCOV7JD.js.map +0 -1
  854. package/dist/snapshots/index.d.ts +0 -25
  855. package/dist/stale-IYYXEH3U.js +0 -14
  856. package/dist/stale-IYYXEH3U.js.map +0 -1
  857. package/dist/storage-Y44CAPE6.js +0 -23
  858. package/dist/storage-Y44CAPE6.js.map +0 -1
  859. package/dist/store-coordination-provider-WKGAE2WI.js +0 -142
  860. package/dist/subject-index-CyOgGMJL.d.ts +0 -380
  861. package/dist/sync/index.d.ts +0 -40
  862. package/dist/team/index.d.ts +0 -154
  863. package/dist/tiers/index.d.ts +0 -4
  864. package/dist/to/index.d.ts +0 -4
  865. package/dist/transition-guard-BOUkzQU4.d.ts +0 -165
  866. package/dist/tx/index.d.ts +0 -34
  867. package/dist/ui/index.d.ts +0 -4
  868. package/dist/ulid-DRH25k3y.d.ts +0 -66
  869. package/dist/util/index.d.ts +0 -79
  870. package/dist/validators-B3SalxlJ.d.ts +0 -101
  871. package/dist/vault-diff-Dt9NkLzw.d.ts +0 -147
  872. package/dist/verify-GH6CWVSW.js +0 -139
  873. package/dist/verify-GH6CWVSW.js.map +0 -1
  874. package/dist/walk-76UCFXYV.js +0 -241
  875. package/dist/with/index.d.ts +0 -37
  876. package/dist/with-materialized-view-BP33v1Z6.d.ts +0 -27
  877. package/dist/with-overlayed-view-DntFpOKN.d.ts +0 -12
  878. package/dist/with-rollup-ClCHO6-4.d.ts +0 -47
  879. package/dist/withdraw-accessible-6J2UH3IN.js +0 -28
  880. package/dist/withdraw-accessible-6J2UH3IN.js.map +0 -1
  881. /package/dist/{adapter/index.js.map → api-3A3S4SHH.js.map} +0 -0
  882. /package/dist/{chunk-ICV32FPK.js.map → chunk-2PCAVW2I.js.map} +0 -0
  883. /package/dist/{chunk-6CU3FN74.js.map → chunk-554KLAAN.js.map} +0 -0
  884. /package/dist/{chunk-NNWK3PSY.js.map → chunk-5PFOMHTB.js.map} +0 -0
  885. /package/dist/{chunk-SZCHEDML.js.map → chunk-5WZXVULX.js.map} +0 -0
  886. /package/dist/{chunk-KWLD2D75.js.map → chunk-6HPG2YNX.js.map} +0 -0
  887. /package/dist/{chunk-2KOSJTMU.js.map → chunk-6HY2X62D.js.map} +0 -0
  888. /package/dist/{chunk-KYC4LIEU.js.map → chunk-6NQMXTYC.js.map} +0 -0
  889. /package/dist/{chunk-KBF5GSGX.js.map → chunk-6XE5TMPR.js.map} +0 -0
  890. /package/dist/{chunk-Z5YFRMG5.js.map → chunk-A4FXFAKF.js.map} +0 -0
  891. /package/dist/{chunk-VJ3NQK4K.js.map → chunk-ANATMTOA.js.map} +0 -0
  892. /package/dist/{chunk-HBTT7YQX.js.map → chunk-BOKIKJJB.js.map} +0 -0
  893. /package/dist/{chunk-KXKLKJW4.js.map → chunk-CJ5KKU6X.js.map} +0 -0
  894. /package/dist/{chunk-5SAZMBW7.js.map → chunk-DSBQODMZ.js.map} +0 -0
  895. /package/dist/{chunk-7IZQTCTR.js.map → chunk-EO43ANYJ.js.map} +0 -0
  896. /package/dist/{chunk-QTXQ6RNZ.js.map → chunk-EWPOHMN2.js.map} +0 -0
  897. /package/dist/{chunk-34RRRIC3.js.map → chunk-GWKAVKHI.js.map} +0 -0
  898. /package/dist/{chunk-OV4CMJGR.js.map → chunk-H2KSZMIX.js.map} +0 -0
  899. /package/dist/{chunk-AUR7MRHA.js.map → chunk-HOONYZY2.js.map} +0 -0
  900. /package/dist/{chunk-ZWQFOXBR.js.map → chunk-ISMV2QVG.js.map} +0 -0
  901. /package/dist/{chunk-XQ7UYPVN.js.map → chunk-IY23KFNZ.js.map} +0 -0
  902. /package/dist/{chunk-IWTYFS3D.js.map → chunk-JBBSYJHP.js.map} +0 -0
  903. /package/dist/{chunk-GX2BYNCT.js.map → chunk-JFCV5QIK.js.map} +0 -0
  904. /package/dist/{chunk-5TZZUL5X.js.map → chunk-M75ZZHSR.js.map} +0 -0
  905. /package/dist/{chunk-6MWUANRF.js.map → chunk-N6WF5PKC.js.map} +0 -0
  906. /package/dist/{chunk-E5AHO65E.js.map → chunk-NCCBLYEB.js.map} +0 -0
  907. /package/dist/{chunk-A4MAD6PO.js.map → chunk-OCVM6KDH.js.map} +0 -0
  908. /package/dist/{chunk-Y2OCKFZ3.js.map → chunk-ONTBCHCP.js.map} +0 -0
  909. /package/dist/{chunk-LEOXZY36.js.map → chunk-R3BLCFD2.js.map} +0 -0
  910. /package/dist/{chunk-2HVUKRNE.js.map → chunk-RDXW3OBQ.js.map} +0 -0
  911. /package/dist/{chunk-CJEMA2Z6.js.map → chunk-RFI7GGFO.js.map} +0 -0
  912. /package/dist/{chunk-AYGZMQP5.js.map → chunk-RNG4VRP4.js.map} +0 -0
  913. /package/dist/{chunk-PEDZFFKW.js.map → chunk-RTEK4C4I.js.map} +0 -0
  914. /package/dist/{chunk-3I4KYWNP.js.map → chunk-S6Q37VGE.js.map} +0 -0
  915. /package/dist/{chunk-42KVY3OC.js.map → chunk-SV6EAJEP.js.map} +0 -0
  916. /package/dist/{chunk-YBFOBRTO.js.map → chunk-T3GY65MA.js.map} +0 -0
  917. /package/dist/{chunk-KBBWY46Y.js.map → chunk-TIGPQDYP.js.map} +0 -0
  918. /package/dist/{chunk-NYVQCZ54.js.map → chunk-U6JMEH2P.js.map} +0 -0
  919. /package/dist/{chunk-MK2BSS44.js.map → chunk-UC2ETWF3.js.map} +0 -0
  920. /package/dist/{chunk-M5I354EE.js.map → chunk-UDSR4X4L.js.map} +0 -0
  921. /package/dist/{chunk-6ULCYCMU.js.map → chunk-VAIS3SOM.js.map} +0 -0
  922. /package/dist/{chunk-WVCQ75OK.js.map → chunk-VCBHAE4R.js.map} +0 -0
  923. /package/dist/{chunk-DEYAO3N6.js.map → chunk-VKCADNMR.js.map} +0 -0
  924. /package/dist/{chunk-OQAODTYR.js.map → chunk-WKGF2TJR.js.map} +0 -0
  925. /package/dist/{chunk-HOCEGVGQ.js.map → chunk-WNGGJWF7.js.map} +0 -0
  926. /package/dist/{chunk-NSZ6J5DF.js.map → chunk-WOM2HTML.js.map} +0 -0
  927. /package/dist/{chunk-MSVY7ULZ.js.map → chunk-WQIYTNJV.js.map} +0 -0
  928. /package/dist/{chunk-NUEFXLZU.js.map → chunk-WZSHL6DQ.js.map} +0 -0
  929. /package/dist/{chunk-X66MXMR5.js.map → chunk-XDIAFPUM.js.map} +0 -0
  930. /package/dist/{chunk-CTSFKDGA.js.map → chunk-XJMBYYQK.js.map} +0 -0
  931. /package/dist/{chunk-IUKGIB2Q.js.map → chunk-XTHCN77N.js.map} +0 -0
  932. /package/dist/{chunk-FC3XK5JT.js.map → chunk-YCH5GBN6.js.map} +0 -0
  933. /package/dist/{chunk-S6AQXDN4.js.map → chunk-YTGDPCPW.js.map} +0 -0
  934. /package/dist/{chunk-CWCCYH34.js.map → chunk-YZQOGE2L.js.map} +0 -0
  935. /package/dist/{chunk-DFIBOSOQ.js.map → chunk-ZXEZCY6F.js.map} +0 -0
  936. /package/dist/{api-HV4PDUWF.js.map → collection-facade-KMBWNCYP.js.map} +0 -0
  937. /package/dist/{chunk-BGIZAFY7.js.map → computed-DSMPXG2Y.js.map} +0 -0
  938. /package/dist/{chunk-K2WCO3NX.js.map → cover-QJRXINN5.js.map} +0 -0
  939. /package/dist/{dead-filter-VNA4M3GP.js.map → dead-filter-66VGI6JV.js.map} +0 -0
  940. /package/dist/{collection-facade-3RAXG2OU.js.map → delegation-SU6CV3W7.js.map} +0 -0
  941. /package/dist/{computed-R62HGCO4.js.map → derive-6RWU4EOA.js.map} +0 -0
  942. /package/dist/{delegation-ZKII5UBI.js.map → enclave-TKPN2G2U.js.map} +0 -0
  943. /package/dist/{derive-5D2C3WG4.js.map → executor-KGNLJD6M.js.map} +0 -0
  944. /package/dist/{describe/index.js.map → executor-UX4FASYZ.js.map} +0 -0
  945. /package/dist/{enclave-EUBEJGPG.js.map → executor-XGIS6CR7.js.map} +0 -0
  946. /package/dist/{executor-IL7SRNUZ.js.map → export-accessible-LKW3QV22.js.map} +0 -0
  947. /package/dist/{executor-OUA2Y6YC.js.map → extract-partition-UP2ARO75.js.map} +0 -0
  948. /package/dist/{fanout-sidecar-CI5BCMQM.js.map → fanout-sidecar-B5LVUMQX.js.map} +0 -0
  949. /package/dist/{executor-WAEI6PDV.js.map → find-YS6XWB46.js.map} +0 -0
  950. /package/dist/{export-accessible-O55RKAGC.js.map → issue-3ACYX7LO.js.map} +0 -0
  951. /package/dist/{extract-partition-VBGCBA6Q.js.map → ledger-PTK7XZYT.js.map} +0 -0
  952. /package/dist/{find-FISGUWSK.js.map → liberate-MQQXBUCY.js.map} +0 -0
  953. /package/dist/{issue-EQAWIYFQ.js.map → link-set-SLJHDNRB.js.map} +0 -0
  954. /package/dist/{kernel/index.js.map → noydb-ANIW5FLE.js.map} +0 -0
  955. /package/dist/{ledger-AJA2SR3C.js.map → policy-YDLCOX4P.js.map} +0 -0
  956. /package/dist/{liberate-SEGR4JLY.js.map → read-only-facade-CHCKSEPD.js.map} +0 -0
  957. /package/dist/{link-set-YBAC2DQT.js.map → register-PAM3ASRZ.js.map} +0 -0
  958. /package/dist/{noydb-AMEOU456.js.map → registry-4S2U2TR4.js.map} +0 -0
  959. /package/dist/{policy-SDGRWVIL.js.map → registry-NPOWJHC4.js.map} +0 -0
  960. /package/dist/{public-envelope-J5PLQOW2.js.map → registry-VZ3CCI2R.js.map} +0 -0
  961. /package/dist/{read-only-facade-UCYNRE56.js.map → request-withdrawal-DI3H5WUI.js.map} +0 -0
  962. /package/dist/{register-OVJKW7BS.js.map → revoke-R5CZSVUT.js.map} +0 -0
  963. /package/dist/{registry-5RJSK5AJ.js.map → signer-MBVHW4WE.js.map} +0 -0
  964. /package/dist/{registry-DQRNTWRL.js.map → stale-VZL4OGUB.js.map} +0 -0
  965. /package/dist/{registry-LTGLERS7.js.map → storage-3MEJUENZ.js.map} +0 -0
  966. /package/dist/{store-coordination-provider-WKGAE2WI.js.map → store-coordination-provider-FKX3F6TQ.js.map} +0 -0
  967. /package/dist/{walk-76UCFXYV.js.map → walk-IPLXE36W.js.map} +0 -0
  968. /package/dist/{request-withdrawal-27O77D2V.js.map → withdraw-accessible-TZDATQVR.js.map} +0 -0
@@ -0,0 +1,121 @@
1
+ /**
2
+ * Persisted backend for the L1 lexical index (L1.5). Crypto-free: the
3
+ * collection injects load/save/remove + a fingerprint provider. In-memory while
4
+ * live (L1 behavior); persists an opaque snapshot via a debounced flush, and
5
+ * validates a loaded blob against a {count,maxVersion} fingerprint so a stale
6
+ * blob is never used — only rebuilt.
7
+ *
8
+ * #725: a debounced save (encrypt + adapter.put) racing a purge (removePersisted,
9
+ * called by elevate's tier purge and forget's erasure) is guarded by an epoch counter
10
+ * — see the `epoch` field doc for the mechanism and why it also closes the issue's
11
+ * variant (b) for free. Residual gap, structurally unavoidable without a durable
12
+ * write-ahead log: a process CRASH strictly between a stale save's `adapter.put`
13
+ * landing and its compensating `remove()` running (or between the compensating
14
+ * remove landing and `pendingCompensation` being persisted somewhere durable — it is
15
+ * in-memory only) leaves the resurrected blob at rest until the next natural
16
+ * rebuild-persist. This is on par with the gate-before-put optimization's own crash
17
+ * residual (a crash between `isStale()` returning false and the put landing) — both
18
+ * are eliminated only by making the purge and the save's commit point transactional
19
+ * with the store, which is out of scope for an in-memory debounce layer over an
20
+ * arbitrary opaque-blob backend.
21
+ */
22
+ import { InvertedIndex, type IndexDoc } from './inverted-index.js';
23
+ import type { IndexStore } from './index-store.js';
24
+ export interface Fingerprint {
25
+ readonly count: number;
26
+ readonly maxVersion: number;
27
+ }
28
+ export interface PersistedIndexCallbacks {
29
+ load(): Promise<{
30
+ json: string;
31
+ fingerprint: Fingerprint;
32
+ } | null>;
33
+ /** `isStale()` reflects whether a purge (removePersisted) has landed since this
34
+ * save's epoch was captured — check it AFTER any async encrypt step and BEFORE
35
+ * the actual adapter.put, skipping the write when true (#725 review: shrinks the
36
+ * at-rest window for purge-beats-encrypt orderings to zero). Belt-and-suspenders:
37
+ * PersistedIndexStore's own post-save epoch check (persist(), below) is the
38
+ * backstop that catches every other ordering, including a purge landing during
39
+ * the put itself. */
40
+ save(json: string, fp: Fingerprint, isStale: () => boolean): Promise<void>;
41
+ remove(): Promise<void>;
42
+ currentFingerprint(): Fingerprint;
43
+ debounceMs?: number;
44
+ }
45
+ export declare class PersistedIndexStore implements IndexStore {
46
+ private readonly cb;
47
+ private index;
48
+ private timer;
49
+ private lastBuild;
50
+ private readonly debounceMs;
51
+ /**
52
+ * Bumped by every purge (removePersisted). A save() captured under a since-stale
53
+ * epoch undoes its own effect once it settles, however it interleaves with the
54
+ * purge's own delete — a delete can never be overtaken by a save that was
55
+ * scheduled before it (#725).
56
+ *
57
+ * Subsumes the issue's variant (b) (a stale, pre-purge in-memory index getting
58
+ * paired with a live, post-purge fingerprint and TRUSTED by a cold load, defeating
59
+ * the fingerprint backstop) for free — no separate handling needed: removePersisted()
60
+ * always resets `index` to undefined in the SAME synchronous step that bumps the
61
+ * epoch (below), and the only two paths that can repopulate `index` (ensureBuilt's
62
+ * cold rebuild, rebuildAndPersist's rebuild) do so strictly from `lastBuild()`, which
63
+ * the collection wires to read its LIVE cache at call time — not a frozen snapshot.
64
+ * Cache eviction (the collection dropping the purged/forgotten record) always
65
+ * precedes removePersisted() in both the elevate and forget call paths (#721's
66
+ * syncCache eviction / forget's tombstone write both land before syncSearch /
67
+ * _purgeSearchIndex runs). So any rebuild that executes strictly after
68
+ * removePersisted() — the only way `index` becomes defined again post-purge —
69
+ * necessarily observes the post-purge cache, and any rebuild that predates
70
+ * removePersisted() has its `index` wiped by it. There is no ordering in which a
71
+ * stale (pre-purge) index survives to be skip-rebuilt and persisted under a
72
+ * matching live fingerprint. Regression-pinned in
73
+ * `search-persisted-index-store.test.ts` ("variant (b) is subsumed...").
74
+ */
75
+ private epoch;
76
+ /**
77
+ * Set when a compensating/purging remove() (`compensate()` undoing a stale
78
+ * save, or `removePersisted()`'s own purge, #764) fails. Unlike the routine
79
+ * best-effort swallow on the debounced flush path (markDirty's timer
80
+ * .catch(), below — safe there because the fingerprint backstop forces a
81
+ * rebuild on the next cold load), a failed removal leaves a resurrected or
82
+ * un-purged blob at rest whose fingerprint can still match the live cache —
83
+ * a cold load would TRUST it, not rebuild past it. So this is never silently
84
+ * dropped: every subsequent store entrypoint (ensureBuilt, rebuildAndPersist,
85
+ * removePersisted) retries the remove first and refuses to proceed past it
86
+ * until it succeeds (#725 review), and the raw adapter error is wrapped in
87
+ * {@link PersistedIndexCompensationError} (#764) so a caller can catch a
88
+ * stuck removal deliberately instead of an indistinguishable adapter error.
89
+ * A crash between a landed put and its compensating remove (before this
90
+ * flag or a retry can run) is a residual gap — see the class doc.
91
+ */
92
+ private pendingCompensation;
93
+ constructor(cb: PersistedIndexCallbacks);
94
+ get built(): boolean;
95
+ ensureBuilt(build: () => ReadonlyArray<IndexDoc>): Promise<InvertedIndex>;
96
+ markDirty(): void;
97
+ /** Force an immediate persist (cancels any pending debounce). */
98
+ flush(): Promise<void>;
99
+ /** Delete the persisted blob and drop the in-memory index (forget/erasure/tier
100
+ * move). A failed purge is wrapped in {@link PersistedIndexCompensationError}
101
+ * (#764) and left sticky (`pendingCompensation`) so the next store entrypoint
102
+ * retries it — never silently dropped, same posture #725 established for a
103
+ * stale save's own compensating remove. */
104
+ removePersisted(): Promise<void>;
105
+ /** Rebuild using the last known build thunk, then persist. */
106
+ private rebuildAndPersist;
107
+ /** Persist the current index, then undo it if a purge (removePersisted) landed
108
+ * while the save was in flight — a delete can never be overtaken by a save
109
+ * that was scheduled before it (#725). A failed undo does not silently vanish:
110
+ * see `pendingCompensation`. */
111
+ private persist;
112
+ /** Undo a stale save. Failure is sticky, not swallowed: see `pendingCompensation`.
113
+ * Wraps the raw adapter error in {@link PersistedIndexCompensationError} (#764) so
114
+ * a caller (e.g. the tier ops' `syncTierSearch`) can catch a stuck compensation
115
+ * deliberately instead of treating it as an indistinguishable adapter failure. */
116
+ private compensate;
117
+ /** Retries a sticky compensation before any store entrypoint proceeds. Failure
118
+ * re-wraps the raw adapter error the same way `compensate()` does (#764) — the
119
+ * flag stays set (untouched here) so the NEXT entrypoint retries again. */
120
+ private retryPendingCompensation;
121
+ }
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Public option / result types for `collection.retrieve()` (L1). Kept in
3
+ * the search service so collection.ts holds only thin call-sites; re-exported
4
+ * from the search barrel and the hub root.
5
+ */
6
+ import type { Query } from '../../kernel/query/builder.js';
7
+ export interface RetrieveOptions<T = unknown> {
8
+ readonly limit?: number;
9
+ readonly match?: 'any' | 'all';
10
+ readonly prefix?: boolean;
11
+ readonly snippetWindow?: number;
12
+ readonly fields?: readonly string[];
13
+ readonly includeRecord?: boolean;
14
+ /** Retrieval strategy; defaults to 'lexical'. 'hybrid' fuses lexical+semantic (L3). */
15
+ readonly mode?: 'lexical' | 'semantic' | 'hybrid';
16
+ /** L2 — minimum cosine score for semantic hits (semantic mode only). */
17
+ readonly minScore?: number;
18
+ /** L3 — intersect hits with a structured query (retrieve ∩ where). Eager-mode only. */
19
+ readonly within?: Query<T>;
20
+ }
21
+ export interface RetrieveHit<T> {
22
+ readonly id: string;
23
+ readonly score: number;
24
+ readonly rank: number;
25
+ readonly field: string;
26
+ readonly snippet: string;
27
+ readonly locale?: string;
28
+ readonly record?: T;
29
+ }
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Scan-mode full-text search — ranks **already-decrypted** records by
3
+ * BM25 against a tokenized query. Pure client-side: nothing is written to the
4
+ * store, so this adds **zero** leakage (unlike a store-usable blind index,
5
+ * which is a separate, gated opt-in).
6
+ *
7
+ * O(n) over the collection; intended for small/medium collections (the pilot's
8
+ * scale) where moving the existing userland scan into the DB is the win.
9
+ */
10
+ import { type Tokenizer } from './tokenize.js';
11
+ export interface SearchOptions {
12
+ /** Top-N by score (default: all matches). */
13
+ readonly limit?: number;
14
+ /** `'any'` (default) = OR of query terms; `'all'` = every term must match. */
15
+ readonly match?: 'any' | 'all';
16
+ /** Treat the LAST query term as a prefix (typeahead). */
17
+ readonly prefix?: boolean;
18
+ }
19
+ export interface SearchResult<T> {
20
+ readonly id: string;
21
+ readonly score: number;
22
+ readonly record: T;
23
+ }
24
+ export interface SearchEntry<T> {
25
+ readonly id: string;
26
+ readonly record: T;
27
+ }
28
+ export declare function searchScan<T>(entries: ReadonlyArray<SearchEntry<T>>, field: string, query: string, opts?: SearchOptions, tokenizer?: Tokenizer): SearchResult<T>[];
@@ -0,0 +1,15 @@
1
+ /**
2
+ * i18n word tokenizer for the L1 lexical index. Uses Intl.Segmenter
3
+ * (standard ECMAScript — hub-portable) to dictionary-segment Thai/Lao/Khmer/CJK,
4
+ * which the word-run `tokenize` cannot. Terms are matched in NFKC-lowercased form;
5
+ * offsets index the ORIGINAL text so snippets slice the user's text.
6
+ */
7
+ import type { Tokenizer } from './tokenize.js';
8
+ export interface Token {
9
+ readonly term: string;
10
+ readonly offset: number;
11
+ }
12
+ /** Word-like tokens with NFKC-lowercased terms + original-text char offsets. */
13
+ export declare const segmentTokens: (text: string) => Token[];
14
+ /** Term-only tokenizer (the public `Tokenizer` shape) — for queries. */
15
+ export declare const segmentTokenizer: Tokenizer;
@@ -0,0 +1,4 @@
1
+ /** (De)serialize an InvertedIndex to/from a JSON string for persistence (L1.5). */
2
+ import { InvertedIndex } from './inverted-index.js';
3
+ export declare function serializeIndex(idx: InvertedIndex): string;
4
+ export declare function deserializeIndex(json: string): InvertedIndex;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Minimal-disclosure snippet: a char-window around a match offset (L1).
3
+ * Unicode-safe (operates on code points). `…` marks each truncated end.
4
+ */
5
+ export declare function extractSnippet(text: string, offset: number, window?: number): string;
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Search capability strategy — the on-demand collection-level retrieval
3
+ * operations the `Collection` routes through: scan-mode full-text `search`,
4
+ * unified `retrieve` (lexical | semantic | hybrid), raw-vector `similarTo`, and
5
+ * the lexical-index lifecycle (`warmIndex` / `flushIndex`). The active engine
6
+ * ({@link withSearch}) dynamically imports the search/retrieval facade (keeping
7
+ * it out of the floor bundle); {@link NO_SEARCH} throws.
8
+ *
9
+ * The embedding write-hook (`embedOnWrite`) is paired here too: opting into
10
+ * `withSearch()` enables both the query surface AND the put()-time vector
11
+ * compute — a vector that no gated `similarTo` / semantic `retrieve` could read
12
+ * is dead weight, so embedding compute is not separately gatable. `Collection`
13
+ * always assembles the per-call {@link SearchContext} and delegates here, so an
14
+ * un-opted-in caller hits `NO_SEARCH`'s throw.
15
+ * @internal
16
+ */
17
+ import type { SearchContext } from './collection-facade.js';
18
+ import type { SearchOptions, SearchResult } from './index.js';
19
+ import type { RetrieveOptions, RetrieveHit } from './retrieve-types.js';
20
+ export interface SearchStrategy {
21
+ search<T>(ctx: SearchContext<T>, field: string, query: string, opts?: SearchOptions): Promise<SearchResult<T>[]>;
22
+ retrieve<T>(ctx: SearchContext<T>, query: string, opts?: RetrieveOptions<T>): Promise<RetrieveHit<T>[]>;
23
+ similarTo<T>(ctx: SearchContext<T>, vector: Float32Array, opts?: {
24
+ k?: number;
25
+ minScore?: number;
26
+ includeRecord?: boolean;
27
+ }): Promise<RetrieveHit<T>[]>;
28
+ warmIndex<T>(ctx: SearchContext<T>): Promise<void>;
29
+ flushIndex<T>(ctx: SearchContext<T>): Promise<void>;
30
+ embedOnWrite<T>(ctx: SearchContext<T>, id: string, record: T, version: number): Promise<void>;
31
+ rebuildEmbeddings<T>(ctx: SearchContext<T>): Promise<{
32
+ rebuilt: number;
33
+ skipped: number;
34
+ }>;
35
+ }
36
+ /**
37
+ * No-op stub — the floor default. Every capability method (and the embedding
38
+ * write-hook) throws {@link SearchNotEnabledError}; opt in with
39
+ * `searchStrategy: withSearch()` in createNoydb. @internal
40
+ */
41
+ export declare const NO_SEARCH: SearchStrategy;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Default text tokenizer for scan-mode search.
3
+ *
4
+ * NFKC-normalize → lowercase → split on Unicode letter/number runs. This is a
5
+ * word-boundary tokenizer: it does **not** segment scripts written without
6
+ * inter-word spaces (Thai, Lao, Khmer, CJK) — those collapse to one token per
7
+ * run. For such data, a dictionary/ICU segmenter is the right `tokenizer`
8
+ * (the engine takes one as a parameter); substring/`contains` matching is the
9
+ * pragmatic fallback until then.
10
+ */
11
+ export type Tokenizer = (text: string) => string[];
12
+ export declare const tokenize: Tokenizer;
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Authentication introspection.
3
+ *
4
+ * Three surfaces over the configured tier model and the actual
5
+ * per-user enrollment state:
6
+ *
7
+ * 1. **Vault-wide English summary** — {@link describeAuthConfig}.
8
+ * 2. **Vault-wide Mermaid diagram** — {@link diagramAuthConfig}.
9
+ * 3. **Per-user introspection** — {@link describeUserAuth}, gated by
10
+ * the `view-user-auth` policy gate (off by default).
11
+ *
12
+ * The per-user surface is held to a strict allowlist — fields not on
13
+ * the allowlist are dropped, never rendered. The negative test in
14
+ * `auth-introspection.test.ts` exercises the allowlist by feeding a
15
+ * contrived keyring with fake "secret" fields and asserting that none
16
+ * of them appear in the output.
17
+ *
18
+ * @module
19
+ */
20
+ import type { NoydbStore } from '../../kernel/types.js';
21
+ /** Vault-wide English summary of the configured authentication graph. */
22
+ export declare function describeAuthConfig(store: NoydbStore, vault: string): Promise<string>;
23
+ /**
24
+ * Render the vault's auth graph as Mermaid `flowchart TB` source. The
25
+ * caller pipes this through Mermaid (CLI or browser) to get an SVG.
26
+ */
27
+ export declare function diagramAuthConfig(store: NoydbStore, vault: string): Promise<string>;
28
+ /**
29
+ * Render the per-user enrollment summary. Returns an empty
30
+ * (non-throwing) string when the user has no keyring file — never
31
+ * confirms or denies the existence of the user from the document
32
+ * alone.
33
+ *
34
+ * Sanitization is strict: only the slot list, enrollment dates, and
35
+ * recovery-profile counts are rendered. WebAuthn cred ids, OIDC
36
+ * subject ids, password hashes, recovery codes, TOTP secrets — all
37
+ * dropped at the allowlist boundary, not redacted.
38
+ */
39
+ export declare function describeUserAuth(store: NoydbStore, vault: string, userId: string): Promise<string>;
40
+ /** Bulk variant for owner dashboards. */
41
+ export declare function describeAllUsersAuth(store: NoydbStore, vault: string): Promise<Array<{
42
+ userId: string;
43
+ description: string;
44
+ }>>;
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Enable the credential-broker capability (#479, spec §5).
3
+ *
4
+ * Pass to `createNoydb({ brokerStrategy: withBroker(config) })` to make
5
+ * `vault.broker()` live. Each method dynamic-imports the seed lifecycle
6
+ * engine (`./seed.js`) — mirroring `via/classified/active.ts`'s per-method
7
+ * dynamic-import seam — so `with-party/broker/seed.ts` (the heavy module:
8
+ * the CAS enrol, quiesce-then-swap rotate, and the challenge/response round
9
+ * trip) is reachable only through the `@noy-db/hub/broker` subpath and
10
+ * never enters the single-user floor bundle.
11
+ *
12
+ * The single-flight, per-vault-per-profile refresh cache (H-6/I6) lives
13
+ * HERE, in this factory's closure — shared across every `credentialSource(profile)`
14
+ * call for this one broker instance (in turn shared across every vault of a
15
+ * `createNoydb()` instance — `vault.broker()` passes the SAME `BrokerStrategy`
16
+ * for all of them), so `rotate()` can quiesce it (await any in-flight
17
+ * round-trip, then drop it) before the seed swap. The cache key is
18
+ * `${vault}\0${profile}` — keyed by vault FIRST, or two vaults sharing this
19
+ * one strategy would collide and hand vault-B a cached credential minted
20
+ * (and STS-scoped) for vault-A.
21
+ */
22
+ import type { BrokerStrategy, BrokerConfig } from '../../port/with/broker-strategy.js';
23
+ export declare function withBroker(config: BrokerConfig): BrokerStrategy;
@@ -0,0 +1,28 @@
1
+ /**
2
+ * `@noy-db/hub/broker` — subpath export for the credential-broker capability
3
+ * (#479, credential-broker spec). Apps that never call `vault.broker()` can
4
+ * exclude this subpath entirely: the floor default `NO_BROKER` throws, and
5
+ * this module's real engine (`with-party/broker/{seed,active}.ts`) is only
6
+ * ever reached through `withBroker()`'s dynamic imports, so it never enters
7
+ * a floor bundle.
8
+ *
9
+ * Also re-exports the host-side helpers (`issueChallenge`, `verifyBrokerProof`)
10
+ * from the enclave barrel, so a Lambda/Worker implementing the reference
11
+ * broker host can import just this one subpath and get everything it
12
+ * needs, `crypto.subtle`-only.
13
+ */
14
+ export { withBroker } from './active.js';
15
+ export { NO_BROKER, type BrokerStrategy, type BrokerCtx, type BrokerConfig, type CredentialBrokerHandle, } from '../../port/with/broker-strategy.js';
16
+ export { BrokerNotEnabledError, BrokerEnrolmentError, BrokerProofError } from '../../kernel/errors.js';
17
+ import { verifyBrokerProof } from '../../kernel/enclave/index.js';
18
+ import type { IssuedChallenge, VerifyBrokerProofArgs } from '../../kernel/enclave/index.js';
19
+ /**
20
+ * {@link issueChallengeRaw} (the enclave's mechanical primitive) with a
21
+ * `[10s, 60s]` TTL clamp applied, so a reference host built on this barrel
22
+ * gets a safe challenge TTL without having to know the bounds itself.
23
+ */
24
+ export declare function issueChallenge(opts?: {
25
+ ttlMs?: number;
26
+ }): IssuedChallenge;
27
+ export { verifyBrokerProof };
28
+ export type { VerifyBrokerProofArgs };
@@ -0,0 +1,77 @@
1
+ /**
2
+ * `_broker` reserved-collection seed lifecycle (#479, credential-broker
3
+ * spec §2/§3). Modeled on `with-party/team/sync-credentials.ts`: a
4
+ * `_`-prefixed reserved collection, record id = `brokerId`, encrypted under
5
+ * the collection's own DEK, `requireAdminAccess` role gate (owner/admin
6
+ * only — custodian intentionally excluded, same rationale as
7
+ * `_sync_credentials`: this is transport-auth material, not the
8
+ * custodian's operational scope).
9
+ *
10
+ * Three operations, each a free function taking a {@link BrokerSeedCtx}
11
+ * (the {@link BrokerCtx} threaded through `with-party/broker/active.ts`,
12
+ * augmented there with the `config` its closure was built with):
13
+ *
14
+ * - {@link enrollSeed} — two-phase commit (I9): create-if-absent CAS the
15
+ * seed (I4), then register its derived proof key with the broker host,
16
+ * then (only on a 2xx) mark the record `registered: true`. A seed
17
+ * persisted whose `/enroll` POST failed stays `registered: false` so a
18
+ * later `credentialSource()` fails fast instead of degrading into an
19
+ * opaque `BrokerProofError` (I9/V23).
20
+ * - {@link rotateSeed} — quiesce-then-swap (I5): mint a fresh seed,
21
+ * register-new-first, THEN overwrite the local record — closing the
22
+ * torn-proof window a naive local-overwrite-then-register order would
23
+ * open. The single-flight cache quiesce itself (await in-flight, bump
24
+ * epoch) is the caller's job (`with-party/broker/active.ts`) since the
25
+ * cache lives in that closure, not here.
26
+ * - {@link mintStoreCredentials} — the challenge/response round trip
27
+ * (`/challenge` then `/credentials`) that produces one `StoreCredentials`
28
+ * value; the single-flight cache wrapping it lives in `active.ts`.
29
+ *
30
+ * First-seed creation calls `ensureCollectionDEK`, which throws
31
+ * (`ValidationError`) when the keyring's KEK is `null` (PIN quick-resume /
32
+ * session-restore) — this module intercepts that and re-surfaces it as
33
+ * {@link BrokerEnrolmentError} (R-B8/I3): *enrol* needs the KEK; *use* of an
34
+ * already-enrolled seed needs only the DEK.
35
+ *
36
+ * @module
37
+ */
38
+ import type { StoreCredentials } from '../../kernel/types.js';
39
+ import type { BrokerSeedCtx } from '../../port/with/broker-strategy.js';
40
+ /** The `_broker/<brokerId>` record payload (spec §3). */
41
+ export interface BrokerSeedRecord {
42
+ readonly brokerId: string;
43
+ /** base64(32 random bytes). */
44
+ readonly seed: string;
45
+ readonly endpoint: string;
46
+ readonly createdAt: string;
47
+ /** `true` only once `/enroll` has returned a 2xx for this seed (I9). */
48
+ readonly registered: boolean;
49
+ }
50
+ /**
51
+ * Enrol (idempotent, two-phase commit — I9): create-if-absent the `_broker`
52
+ * seed (I4), derive+register its proof key with the broker host, and only
53
+ * on a 2xx mark the record `registered: true`. Requires owner/admin role
54
+ * and (for first-seed creation only) the KEK.
55
+ */
56
+ export declare function enrollSeed(ctx: BrokerSeedCtx): Promise<void>;
57
+ /**
58
+ * Rotate (quiesce-then-swap — I5): mint a fresh seed, register its proof
59
+ * key with the broker host FIRST, then overwrite the local `_broker`
60
+ * record. The broker host is expected to accept both the old and new
61
+ * registration for a short grace window, so an in-flight proof computed
62
+ * under the old key (from before rotation started) still verifies. Cache
63
+ * quiescing (awaiting any in-flight round-trip, bumping the refresh-cache
64
+ * epoch) is the caller's job — `with-party/broker/active.ts` — since the
65
+ * cache lives in that closure, not here.
66
+ */
67
+ export declare function rotateSeed(ctx: BrokerSeedCtx): Promise<void>;
68
+ /**
69
+ * The challenge/response round trip: `POST /challenge`, derive+sign the
70
+ * proof from the decrypted seed, `POST /credentials`. One network round
71
+ * trip per call — the single-flight/cache wrapping lives in `active.ts`.
72
+ *
73
+ * Fails fast with {@link BrokerEnrolmentError} if the seed hasn't completed
74
+ * enrolment yet (`registered !== true` — I9/V23), never degrading into an
75
+ * opaque {@link BrokerProofError}.
76
+ */
77
+ export declare function mintStoreCredentials(ctx: BrokerSeedCtx, profile?: string): Promise<StoreCredentials>;
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Enable the sovereign-custody (FR-6) capability.
3
+ * Pass to `createNoydb({ custodyStrategy: withCustody() })` to make
4
+ * `db.grantCustodian` / `db.revokeCustodian` (and the `vault.custody.*` facade
5
+ * that delegates to them) plus `vault.custody.liberate()` live. The heavy
6
+ * `liberateVault` ceremony is dynamically imported here, so it is reached only
7
+ * via opt-in; grant/revoke run the host's own gate + keyring engine.
8
+ */
9
+ import type { CustodyStrategy } from './strategy.js';
10
+ export declare function withCustody(): CustodyStrategy;
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Public `vault.custody.*` API surface (FR-6).
3
+ *
4
+ * The custody namespace is the vault-instance face of the FR-6 sovereign-custody
5
+ * model — it mirrors `vault.user.*` exactly: a thin delegation shell with NO
6
+ * business logic. The Vault constructs one `CustodyApi` per session, injecting
7
+ * closures that bind the vault name / keyring into the genuinely-core
8
+ * implementations (`Noydb.grantCustodian` / `Noydb.revokeCustodian` and the
9
+ * `liberateVault` ceremony). Each method just forwards to its injected callback.
10
+ *
11
+ * Three operations:
12
+ * - `grantCustodian(opts)` — owner-only: mint a `custodian` who operates the
13
+ * vault fully but can never grant / rotate / sever / extract.
14
+ * - `revokeCustodian(opts)` — owner-only: remove a custodian.
15
+ * - `liberate(opts)` — custodian-only: audited claim of ownership over a
16
+ * sealed-owner (Deed) vault (mints a DISTINCT new owner; ledger-audited).
17
+ *
18
+ * Provisioning a Deed (`createDeedOwner`) is deliberately NOT on this class: it
19
+ * is a store-level operation that mints the vault's first owner, so there is no
20
+ * vault instance (and thus no custody namespace) yet — it stays the exported
21
+ * `team/deed.ts` function.
22
+ *
23
+ * @see docs/superpowers/specs/2026-06-17-fr6-deed-custodian-liberate-design.md
24
+ * @module
25
+ */
26
+ import type { GrantOptions, RevokeOptions, FactorProofBundle } from '../../kernel/types.js';
27
+ import type { LiberateOptions, LiberateResult } from './liberate.js';
28
+ /** Options for `vault.custody.grantCustodian` — a grant with the role fixed to `custodian`. */
29
+ export type GrantCustodianOptions = Omit<GrantOptions, 'role'>;
30
+ export { withCustody } from './active.js';
31
+ export { NO_CUSTODY, type CustodyStrategy, type CustodyHost } from './strategy.js';
32
+ export { CustodyNotEnabledError } from '../../kernel/errors.js';
33
+ /**
34
+ * Implementation behind `vault.custody`. Constructed once per Vault. Holds the
35
+ * injected, vault-bound implementations in closure; every method delegates with
36
+ * no added logic (the owner-only / custodian-only / gate checks all live in the
37
+ * injected implementations — `Noydb.grantCustodian` etc. and `liberateVault`).
38
+ */
39
+ export declare class CustodyApi {
40
+ /** Bound `Noydb.grantCustodian(this.name, ...)` — owner-only, gated. */
41
+ private readonly _grantCustodian;
42
+ /** Bound `Noydb.revokeCustodian(this.name, ...)` — owner-only, gated. */
43
+ private readonly _revokeCustodian;
44
+ /** Bound `liberateVault(this, ...)` — custodian-only audited ownership claim. */
45
+ private readonly _liberate;
46
+ constructor(
47
+ /** Bound `Noydb.grantCustodian(this.name, ...)` — owner-only, gated. */
48
+ _grantCustodian: (options: GrantCustodianOptions, factors?: FactorProofBundle) => Promise<void>,
49
+ /** Bound `Noydb.revokeCustodian(this.name, ...)` — owner-only, gated. */
50
+ _revokeCustodian: (options: RevokeOptions, factors?: FactorProofBundle) => Promise<void>,
51
+ /** Bound `liberateVault(this, ...)` — custodian-only audited ownership claim. */
52
+ _liberate: (opts: LiberateOptions) => Promise<LiberateResult>);
53
+ /**
54
+ * Owner-only: grant the FR-6 `custodian` role. The custodian operates every
55
+ * collection (rw + access) but is provably unable to grant / revoke / rotate /
56
+ * extract-and-sever. Defended in depth (gate + owner-only role check) inside
57
+ * the injected `Noydb.grantCustodian`.
58
+ */
59
+ grantCustodian(options: GrantCustodianOptions, factors?: FactorProofBundle): Promise<void>;
60
+ /** Owner-only: revoke a custodian. */
61
+ revokeCustodian(options: RevokeOptions, factors?: FactorProofBundle): Promise<void>;
62
+ /**
63
+ * Custodian-only: the audited claim of ownership over a sealed-owner (Deed)
64
+ * vault. Mints a DISTINCT new owner re-wrapping the incumbent DEKs under a
65
+ * fresh KEK (the latent owner is never impersonated), ledger-audited. See
66
+ * {@link liberateVault}.
67
+ */
68
+ liberate(opts: LiberateOptions): Promise<LiberateResult>;
69
+ }
@@ -0,0 +1,64 @@
1
+ /**
2
+ * `liberateVault` — the audited claim of ownership over a
3
+ * sealed-owner (Deed) vault. The inverse of withdrawal.
4
+ *
5
+ * A **Deed** vault's owner credential is sealed under a non-firm provider, so
6
+ * the firm-side **custodian** (which holds every collection DEK and operates
7
+ * the vault fully) can never reach `KEK_owner`. Liberation is the ONLY route
8
+ * by which a custodian assumes ownership, and it is deliberately a manual,
9
+ * audited ceremony:
10
+ *
11
+ * 1. gate `'liberate-vault'` (fail-closed)
12
+ * 2. caller MUST be the `custodian` (the de-facto authority holding the DEKs)
13
+ * 3. freeze a PRE-liberation EVIDENCE snapshot (hash-pinned in the ledger) —
14
+ * but PRESERVE the live data for the new owner (see the freeze decision
15
+ * below)
16
+ * 4. mint a NEW owner keyring re-wrapping the incumbent DEKs under the new
17
+ * owner's KEK
18
+ * 5. lifecycle ledger `liberation-claimed:<newOwnerId>:<legalBasis>`
19
+ * 6. stamp the `_meta/deed` marker with `liberatedAt`
20
+ *
21
+ * ## Security: the inalienability floor
22
+ *
23
+ * Liberation **mints a new owner from the custodian's DEKs** — it does NOT
24
+ * unseal the original sealed owner. The old sealed-owner credential is left
25
+ * untouched and ORPHANED (its `_keyring/<id>` file remains, its KEK is still
26
+ * sealed under the non-firm provider), never impersonated. The new owner is a
27
+ * DISTINCT principal under a fresh KEK derived from `newOwnerPassphrase`. This
28
+ * preserves the inalienability floor: the act of claiming ownership is itself
29
+ * auditable and produces a different principal, rather than silently assuming
30
+ * the latent owner's identity.
31
+ *
32
+ * ## Freeze decision: snapshot-only, not freeze-and-delete
33
+ *
34
+ * `freezeAndDeleteClosure` (withdraw-accessible.ts) writes a hash-pinned
35
+ * snapshot and THEN delete-closures the live records — correct for a
36
+ * destructive withdrawal, WRONG for liberation. Liberation transfers
37
+ * operational continuity; it must leave the live data intact for the new
38
+ * owner. We therefore call the snapshot-only core `freezeSnapshotOnly`
39
+ * (factored out of that module; the freeze-AND-delete withdrawal path is
40
+ * unchanged) to pin the evidence snapshot while preserving the records.
41
+ *
42
+ * @module
43
+ */
44
+ import type { Vault } from '../../kernel/vault.js';
45
+ import type { FactorProofBundle } from '../../kernel/types.js';
46
+ import type { FrozenSnapshotRef } from '../../with-audit/portability/withdraw-accessible.js';
47
+ export interface LiberateOptions {
48
+ /** The id of the new owner principal the custodian mints by claiming ownership. */
49
+ readonly newOwnerId: string;
50
+ /** The passphrase that derives the new owner's KEK (the DEKs are re-wrapped under it). */
51
+ readonly newOwnerPassphrase: string;
52
+ /** Legal/contractual basis recorded in the audit (e.g. 'contractual-handover'). */
53
+ readonly legalBasis: string;
54
+ readonly factors?: FactorProofBundle;
55
+ }
56
+ export interface LiberateResult {
57
+ /** The hash-pinned pre-liberation evidence snapshot. */
58
+ readonly snapshot: FrozenSnapshotRef;
59
+ }
60
+ /**
61
+ * Audited claim of ownership over a sealed-owner vault by its custodian. See
62
+ * the module doc for the full ceremony + security rationale.
63
+ */
64
+ export declare function liberateVault(vault: Vault, opts: LiberateOptions): Promise<LiberateResult>;
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Sovereign-custody (FR-6) capability strategy — the three on-demand
3
+ * operations the custody surface routes through: minting a custodian
4
+ * (`grantCustodian`), removing one (`revokeCustodian`), and the audited
5
+ * ownership-claim ceremony (`liberate`). The active engine ({@link withCustody})
6
+ * runs the grant/revoke impls the host exposes and dynamically imports the
7
+ * heavy `liberateVault` ceremony (keeping it out of the floor bundle);
8
+ * {@link NO_CUSTODY} throws.
9
+ *
10
+ * `Noydb.grantCustodian` / `Noydb.revokeCustodian` delegate here (passing
11
+ * themselves as the {@link CustodyHost}), and `vault.custody.liberate` delegates
12
+ * here with its {@link Vault}. An un-opted-in caller hits `NO_CUSTODY`'s throw.
13
+ *
14
+ * Note: the lower-level `liberateVault` FREE FUNCTION (exported from
15
+ * `custody/liberate.ts`) stays ungated — it has no `createNoydb` instance to
16
+ * gate against (the same carve-out as the `openSealedRecord` host opener). Only
17
+ * the instance surfaces (`db.grantCustodian` / `db.revokeCustodian` /
18
+ * `vault.custody.*`) are the capability.
19
+ * @internal
20
+ */
21
+ import type { GrantOptions, RevokeOptions, FactorProofBundle, NoydbStore } from '../../kernel/types.js';
22
+ import type { Vault } from '../../kernel/vault.js';
23
+ import type { UnlockedKeyring } from '../team/keyring.js';
24
+ import type { GrantCustodianOptions } from './index.js';
25
+ import type { LiberateOptions, LiberateResult } from './liberate.js';
26
+ /**
27
+ * The grant/revoke engine the strategy runs when opted in — implemented by
28
+ * `Noydb` (`_grantCustodianImpl` / `_revokeCustodianImpl` hold the gate +
29
+ * keyring logic; the public `grantCustodian` / `revokeCustodian` route through
30
+ * the strategy). Since the #267 team split the keyring grant/revoke engines
31
+ * are passed IN by `withCustody()` (statically linked there, not in the
32
+ * kernel) so the single-user floor never carries them.
33
+ */
34
+ export interface CustodyHost {
35
+ _grantCustodianImpl(engine: (adapter: NoydbStore, vault: string, callerKeyring: UnlockedKeyring, options: GrantOptions) => Promise<void>, vault: string, options: GrantCustodianOptions, factors?: FactorProofBundle): Promise<void>;
36
+ _revokeCustodianImpl(engine: (adapter: NoydbStore, vault: string, callerKeyring: UnlockedKeyring, options: RevokeOptions) => Promise<void>, vault: string, options: RevokeOptions, factors?: FactorProofBundle): Promise<void>;
37
+ }
38
+ export interface CustodyStrategy {
39
+ grantCustodian(host: CustodyHost, vault: string, options: GrantCustodianOptions, factors?: FactorProofBundle): Promise<void>;
40
+ revokeCustodian(host: CustodyHost, vault: string, options: RevokeOptions, factors?: FactorProofBundle): Promise<void>;
41
+ liberate(vault: Vault, opts: LiberateOptions): Promise<LiberateResult>;
42
+ }
43
+ /**
44
+ * No-op stub — the floor default. Every custody operation throws
45
+ * {@link CustodyNotEnabledError}; opt in with `custodyStrategy: withCustody()`
46
+ * in createNoydb. @internal
47
+ */
48
+ export declare const NO_CUSTODY: CustodyStrategy;